diff --git a/.gitignore b/.gitignore index c8beda86..a400ce86 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ selenium-debug.log .idea/ config/local.json config/local.*.json +docs/site/ diff --git a/README.md b/README.md index d4569a91..b291e3ec 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,11 @@ This is a fork of Pleroma-FE from the Pleroma project, with support for new Akko # For Translators -To translate Pleroma-FE, add your language to [src/i18n/messages.js](https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/src/i18n/messages.js). Pleroma-FE will set your language by your browser locale, but you can temporarily force it in the code by changing the locale in main.js. +The [Weblate UI](https://translate.akkoma.dev/projects/akkoma/pleroma-fe/) is recommended for adding or modifying translations for Pleroma-FE. + +Alternatively, edit/create `src/i18n/$LANGUAGE_CODE.json` (where `$LANGUAGE_CODE` is the [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for your language), then add your language to [src/i18n/messages.js](https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/src/i18n/messages.js) if it doesn't already exist there. + +Pleroma-FE will set your language by your browser locale, but you can temporarily force it in the code by changing the locale in main.js. # FOR ADMINS diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js index 615464a5..e03848ac 100644 --- a/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -29,7 +29,7 @@ module.exports = { } }, resolve: { - extensions: ['.js', '.jsx', '.vue'], + extensions: ['.js', '.jsx', '.vue', '.mjs'], modules: [ path.join(__dirname, '../node_modules') ], @@ -67,6 +67,11 @@ module.exports = { path.resolve(__dirname, '../src/i18n') ] }, + { + test: /\.mjs$/, + include: /node_modules/, + type: "javascript/auto" + }, { test: /\.vue$/, loader: 'vue-loader', diff --git a/config/index.js b/config/index.js index 023d4c9b..443c4a67 100644 --- a/config/index.js +++ b/config/index.js @@ -61,7 +61,17 @@ module.exports = { target, changeOrigin: true, cookieDomainRewrite: 'localhost' - } + }, + '/static/stickers.json': { + target, + changeOrigin: true, + cookieDomainRewrite: 'localhost' + }, + '/static/stickers': { + target, + changeOrigin: true, + cookieDomainRewrite: 'localhost' + }, }, // CSS Sourcemaps off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README diff --git a/docs/docs/stickers.md b/docs/docs/stickers.md new file mode 100644 index 00000000..ac4a1eca --- /dev/null +++ b/docs/docs/stickers.md @@ -0,0 +1,53 @@ +# Adding stickers + +Pleroma-fe supports stickers, which are essentially little images stored server-side +which can be selected by a user to automatically attach them to a post. + +There's no explicit setting for these, they just rely on the existence of certain files. + +## Initialising the sticker config file + +You're probably serving pleroma-fe from your instance's `instance/static/` directory - +this directy can also override files served at a given path. + +The first thing we need to do is set up our `stickers.json` file. At `instance/static/static/stickers.json`, +put a file that looks like this + +```json +{ + "myPack": "/static/stickers/myPack" +} +``` + +This file is a mapping from name to pack directory location. It says "we have a pack called myPack, look for +it at `/static/stickers/myPack`". You can add as many packs as you like in this manner. + +## Creating the pack + +First, create your pack directory + +```bash +mkdir -p instance/static/static/stickers/myPack +``` + +Now you need to give it some config. + +At `instance/static/static/stickers/myPack/pack.json`, put a file that looks like: + +```json +{ + "title": "myPack", + "author": "me for i am very cool", + "tabIcon": "tab.png", + "stickers": [ + "mySticker.png" + ] +} +``` + +This should be relatively self-explanatory, it declares a pack with a title `myPack` which has only one sticker in it. +The `tabIcon` will appear on the sticker picker itself as a representative of the pack. + +You can add as many stickers as you like. They should all be in the same directory as your `pack.json`. + +Now you should find that there's a sticky note icon on the emoji picker on pleroma-fe that allows you to attach stickers. diff --git a/docs/site/404.html b/docs/site/404.html deleted file mode 100644 index 72b37321..00000000 --- a/docs/site/404.html +++ /dev/null @@ -1,479 +0,0 @@ - - - - - - - - - - - - - - - - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- - - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - -
-
-
- - -
-
- -

404 - Not found

- -
- -
-
- -
- - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/docs/site/CONFIGURATION/index.html b/docs/site/CONFIGURATION/index.html deleted file mode 100644 index 316c3404..00000000 --- a/docs/site/CONFIGURATION/index.html +++ /dev/null @@ -1,1103 +0,0 @@ - - - - - - - - - - - - - - - - Pleroma-FE configuration and customization for instance administrators - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - - - - -
-
- - - - -

Pleroma-FE configuration and customization for instance administrators

- -

Where configuration is stored

-

PleromaFE gets its configuration from several sources, in order of preference (the one above overrides ones below it)

-
    -
  1. /api/statusnet/config.json - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses pleromafe field of it. For more info on changing config on BE, look here
  2. -
  3. /static/config.json - this is a static FE-provided file, containing only FE specific configuration. This file is completely optional and could be removed but is useful as a fallback if some configuration JSON property isn't present in BE-provided config. It's also a reference point to check what default configuration are and what JSON properties even exist. In local dev mode it could be used to override BE configuration, more about that in HACKING.md. File is located here.
  4. -
  5. Built-in defaults. Those are hard-coded defaults that are used when /static/config.json is not available and BE-provided configuration JSON is missing some JSON properties. ( Code )
  6. -
-

Instance-defaults

-

Important note that some configurations are treated as "instance default" - it means user is able to change this configuration for themselves. Currently, defaults are only applied for new visitors and people who haven't changed the option in question. If you change some instance default option, there is a chance it won't affect some users.

-

There's currently no mechanism for user-settings synchronization across several browsers, user essentially means visitor, most user settings are stored in local storage/IndexedDB and not tied to an account in any way.

-

Options

-

alwaysShowSubjectInput

-

true - will always show subject line input, false - only show when it's not empty (i.e. replying). To hide subject line input completely, set it to false and subjectLineBehavior to "noop"

-

background

-

Default image background. Be aware of using too big images as they may take longer to load. Currently image is fitted with background-size: cover which means "scaled and cropped", currently left-aligned. De-facto instance default, user can choose their own background, if they remove their own background, instance default will be used instead.

-

collapseMessageWithSubject

-

Collapse post content when post has a subject line (content warning). Instance-default.

-

disableChat

-

hides the chat (TODO: even if it's enabled on backend)

-

greentext

-

Changes lines prefixed with the > character to have a green text color

-

hideFilteredStatuses

-

Removes filtered statuses from timelines.

-

hideMutedPosts

-

Removes muted statuses from timelines.

-

hidePostStats

-

Hide repeats/favorites counters for posts.

-

hideSitename

-

Hide instance name in header.

-

hideUserStats

-

Hide followers/friends counters for users.

-

loginMethod

-

"password" - show simple password field -"token" - show button to log in with external method (will redirect to login form, more details in BE documentation)

-

logo, logoMask, logoMargin

-

Instance logo, could be any image, including svg. By default it assumes logo used will be monochrome-with-alpha one, this is done to be compatible with both light and dark themes, so that white logo designed with dark theme in mind won't be invisible over light theme, this is done via CSS3 Masking. Basically - it will take alpha channel of the image and fill non-transparent areas of it with solid color. If you really want colorful logo - it can be done by setting logoMask to false.

-

logoMargin 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.

-

minimalScopesMode

-

Limit scope selection to Direct, User default and Scope of post replying to. This also makes it impossible to reply to a DM with a non-DM post from PleromaFE.

-

nsfwCensorImage

-

Use custom image for NSFW'd images

-

postContentType

-

Default post formatting option (markdown/bbcode/plaintext/etc...)

-

redirectRootNoLogin, redirectRootLogin

-

These two settings should point to where FE should redirect visitor when they login/open up website root

-

scopeCopy

-

Copy post scope (visibility) when replying to a post. Instance-default.

-

sidebarRight

-

Change alignment of sidebar and panels to the right. Defaults to false.

-

showFeaturesPanel

-

Show panel showcasing instance features/settings to logged-out visitors

-

showInstanceSpecificPanel

-

This allows you to include arbitrary HTML content in a panel below navigation menu. PleromaFE looks for an html page instance/panel.html, by default it's not provided in FE, but BE bundles some default one. De-facto instance-defaults, since user can hide instance-specific panel.

-

subjectLineBehavior

-

How to handle subject line (CW) when replying to a post. -* "email" - like EMail - prepend re: to subject line if it doesn't already start with it. -* "masto" - like Mastodon - copy it as is. -* "noop" - do not copy -Instance-default.

-

theme

-

Default theme used for new users. De-facto instance-default, user can change theme.

-

webPushNotifications

-

Enables PushAPI - based notifications for users. Instance-default.

-

Indirect configuration

-

Some features are configured depending on how backend is configured. In general the approach is "if backend allows it there's no need to hide it, if backend doesn't allow it there's no need to show it.

-

Chat

-

TODO somewhat broken, see: disableChat chat can be disabled by disabling it in backend

-

Private Mode

-

If the private instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users.

-

Rich text formatting in post formatting

-

Rich text formatting options are displayed depending on how many formatting options are enabled on backend, if you don't want your users to use rich text at all you can only allow "text/plain" one, frontend then will only display post text format as a label instead of dropdown (just so that users know for example if you only allow Markdown, only BBCode or only Plain text)

-

Who to follow

-

This is a panel intended for users to find people to follow based on randomness or on post contents. Being potentially privacy unfriendly feature it needs to be enabled and configured in backend to be enabled.

- - -
- -
-
- -
- - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/docs/site/HACKING/index.html b/docs/site/HACKING/index.html deleted file mode 100644 index 3c393005..00000000 --- a/docs/site/HACKING/index.html +++ /dev/null @@ -1,797 +0,0 @@ - - - - - - - - - - - - - - - - Hacking, tweaking, contributing - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - - - - -
-
- - - - -

Hacking, tweaking, contributing

-

What PleromaFE even is, how it works

-

PleromaFE is an SPA (Single-Page Application) backed by Vue framework. It means that it's just a nearly-empty HTML page with bunch of JavaScript that actually generates and controls DOM (i.e. html elements) in Runtime. Currently, there's no way around it - you have to have Javascript enabled in the browser to make it work, there is a theoretical possibility to generate some HTML server-side but it's not implemented yet.

-

You can serve static html page and everything from any HTTP(S) server but currently it will try to access /api/ path at same domain it's running on, meaning that as of right now you cannot put it on one domain and access the other without proxying requests.

-

Development server does exactly that - it serves static html page with javascript and all other assets, adds some code to automatically reload when changes to code are made and proxies requests to some other server.

-

Setting up develop server

-

Setting up development server is fairly straight-forward.

-
    -
  1. On your system you must have Node.js version 8 and newer installed. For older systems or systems that do not package node you can try NodeSource repositories. Windows support theoretically possible but isn't tested.
  2. -
  3. For fetching dependencies and running basic tasks you will Yarn installed.
  4. -
  5. Clone the repository, cd into it and run yarn to fetch dependencies.
  6. -
  7. If you want to point development server at some instance you will need to copy config/local.example.json to config/local.json and change the target to point at instance you want, otherwise it will point to localhost:4000 which is default address for locally-run Pleroma Backend
  8. -
  9. Run yarn dev - it will start the server.
  10. -
  11. Open localhost:8080 in your browser, it might take a while initially until everything is built first time.
  12. -
-

Setting up production build

-

This could be a bit trickier, you basically need steps 1-4 from develop build instructions, and run yarn build which will compile and copy eveything needed for production into dist folder. As said before, this technically could be used anywhere with some details.

-

Replacing your instance's frontend with custom FE build

-

This is the most easiest way to use and test FE build: you just need to copy or symlink contents of dist folder into backend's static directory, by default it is located in instance/static, or in /var/lib/pleroma/static for OTP release installations, create it if it doesn't exist already. Be aware that running yarn build wipes the contents of dist folder.

-

Running production build locally or on a separate server

-

This is highly experimental and only tried once, with no actual simple solution available yet

-

You will need an HTTP server that can proxy requests for /api, /instance, /nodeinfo and show index.html for every 404 page.

-

For nginx you'll probably need something like this:

-
server {
-  listen 80 default_server;
-
-  index index.html index.htm index.nginx-debian.html;
-
-  root /var/www/html
-
-  location /api {
-    proxy_pass https://example.tld;
-  }
-
-  location /instance {
-    proxy_pass https://example.tld;
-  }
-
-  location /nodeinfo {
-    proxy_pass https://example.tld;
-  }
-
-  location / {
-    try_files $uri $uri/ /index.html;
-  }
-}
-
-

(ed. note: this is close to what i used last time i had to do it, it may not work and need additions, i basically adjusted default nginx server in debian)

-

Basic architecture

-

API, Data, Operations

-

In 99% cases PleromaFE uses MastoAPI with Pleroma Extensions to fetch the data. The rest is either QvitterAPI leftovers or pleroma-exclusive APIs. QvitterAPI doesn't exactly have documentation and uses different JSON structure and sometimes different parameters and workflows, this could be a good reference though. Some pleroma-exclusive API may still be using QvitterAPI JSON structure.

-

PleromaFE supports both formats by transforming them into internal format which is basically QvitterAPI one with some additions and renaming. All data is passed trough Entity Normalizer which can serve as a reference of API and what's actually used, it's also a host for all the hacks and data transformation.

-

For most part, PleromaFE tries to store all the info it can get in global vuex store - every user and post are passed trough updating mechanism where data is either added or merged with existing data, reactively updating the information throughout UI, so if in newest request user's post counter increased, it will be instantly updated in open user profile cards. This is also used to find users, posts and sometimes to build timelines and/or request parameters.

-

PleromaFE also tries to persist this store, however only stable data is stored, such as user authentication and preferences, user highlights. Persistence is performed by saving and loading chunk of vuex store in browser's LocalStorage/IndexedDB.

-

TODO: Refactor API code and document it here

-

Themes

-

PleromaFE uses custom theme "framework" which is pretty much just a style tag rendered by vue which only contains CSS3 variables. Every color used in UI should be derived from theme. Theme is stored in a JSON object containing color, opacity, shadow and font information, with most of it being optional.

-

The most basic theme can consist of 4 to 8 "basic colors", which is also what previous version of themes allowed, with all other colors being derived from those basic colors, i.e. "light background" will be "background" color lightened/darkened, "panel header" will be same as "foreground". The idea is that you can specify just basic color palette and everything else will be generated automatically, but if you really need to tweak some specific color - you can.

-

As said before - older version only allowed 4 to 8 colors, it also used arrays instead of objects, we still support that. The basic colors are: background, foreground, text, links, red, orange, blue, green. First 4 are mandatory, last 4 have default fallbacks since ever more ancient theme formats only had 4 colors.

-

Note that with older version themes used different internal naming when persisting state.

-

Themes are meant to be backwards and somewhat forwards compatible - new colors should properly inherit from some existing one, making it compatible with older versions. When loading newer version of theme all unrecognized colors will be ignored, which for most part should be fine, however adding new features (gradients, masks, whatever it might be) might be breaky.

-

Lastly, pleroma provides some contrast information and generates readable text color automatically, which is done by tracking background/text color pairs and their contrast - if contrast too low it will try to use background color with inverted lightness, if it's still unacceptable it will fall back to pure black/white.

-

Still Image

-

Most images are wrapped in a component called StillImage, which does one simple thing - tries to detect if image is a GIF and if it is (and user has enabled relevant setting) it will show <canvas> with that image instead of actual image. It uses standard method to render an image into canvas which renders first frame of a GIF if it's animated (obviously because canvas by itself isn't animated and you'd need to animate it yourself in JS), it will show actual image on hover. Statuses also allow playing animated avatars when you hover over a post, not just image itself.

-

Contributing

-

Feel free to contribute, most preferred way is by starting a Merge Request in GitLab. Please try to use descriptive names for your branches and merge requests, avoid naming them "fix-issue-777" "777" and so on.

- - -
- -
-
- -
- - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/docs/site/assets/example_emoji.png b/docs/site/assets/example_emoji.png deleted file mode 100644 index 0a22a256..00000000 Binary files a/docs/site/assets/example_emoji.png and /dev/null differ diff --git a/docs/site/assets/example_markdown.png b/docs/site/assets/example_markdown.png deleted file mode 100644 index 3b9df753..00000000 Binary files a/docs/site/assets/example_markdown.png and /dev/null differ diff --git a/docs/site/assets/images/favicon.png b/docs/site/assets/images/favicon.png deleted file mode 100644 index 1cf13b9f..00000000 Binary files a/docs/site/assets/images/favicon.png and /dev/null differ diff --git a/docs/site/assets/javascripts/bundle.6c7ad80a.min.js b/docs/site/assets/javascripts/bundle.6c7ad80a.min.js deleted file mode 100644 index 1455c205..00000000 --- a/docs/site/assets/javascripts/bundle.6c7ad80a.min.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict";(()=>{var ra=Object.create;var xr=Object.defineProperty;var na=Object.getOwnPropertyDescriptor;var oa=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,ia=Object.getPrototypeOf,Sr=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var an=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,U=(e,t)=>{for(var r in t||(t={}))Sr.call(t,r)&&an(e,r,t[r]);if(kt)for(var r of kt(t))sn.call(t,r)&&an(e,r,t[r]);return e};var cn=(e,t)=>{var r={};for(var n in e)Sr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&kt)for(var n of kt(e))t.indexOf(n)<0&&sn.call(e,n)&&(r[n]=e[n]);return r};var gt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var aa=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of oa(t))!Sr.call(e,o)&&o!==r&&xr(e,o,{get:()=>t[o],enumerable:!(n=na(t,o))||n.enumerable});return e};var Ye=(e,t,r)=>(r=e!=null?ra(ia(e)):{},aa(t||!e||!e.__esModule?xr(r,"default",{value:e,enumerable:!0}):r,e));var un=gt((wr,fn)=>{(function(e,t){typeof wr=="object"&&typeof fn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(wr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(w){return!!(w&&w!==document&&w.nodeName!=="HTML"&&w.nodeName!=="BODY"&&"classList"in w&&"contains"in w.classList)}function c(w){var Ue=w.type,He=w.tagName;return!!(He==="INPUT"&&a[Ue]&&!w.readOnly||He==="TEXTAREA"&&!w.readOnly||w.isContentEditable)}function f(w){w.classList.contains("focus-visible")||(w.classList.add("focus-visible"),w.setAttribute("data-focus-visible-added",""))}function u(w){!w.hasAttribute("data-focus-visible-added")||(w.classList.remove("focus-visible"),w.removeAttribute("data-focus-visible-added"))}function p(w){w.metaKey||w.altKey||w.ctrlKey||(s(r.activeElement)&&f(r.activeElement),n=!0)}function l(w){n=!1}function d(w){!s(w.target)||(n||c(w.target))&&f(w.target)}function h(w){!s(w.target)||(w.target.classList.contains("focus-visible")||w.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(w.target))}function b(w){document.visibilityState==="hidden"&&(o&&(n=!0),F())}function F(){document.addEventListener("mousemove",W),document.addEventListener("mousedown",W),document.addEventListener("mouseup",W),document.addEventListener("pointermove",W),document.addEventListener("pointerdown",W),document.addEventListener("pointerup",W),document.addEventListener("touchmove",W),document.addEventListener("touchstart",W),document.addEventListener("touchend",W)}function G(){document.removeEventListener("mousemove",W),document.removeEventListener("mousedown",W),document.removeEventListener("mouseup",W),document.removeEventListener("pointermove",W),document.removeEventListener("pointerdown",W),document.removeEventListener("pointerup",W),document.removeEventListener("touchmove",W),document.removeEventListener("touchstart",W),document.removeEventListener("touchend",W)}function W(w){w.target.nodeName&&w.target.nodeName.toLowerCase()==="html"||(n=!1,G())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",l,!0),document.addEventListener("pointerdown",l,!0),document.addEventListener("touchstart",l,!0),document.addEventListener("visibilitychange",b,!0),F(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var pn=gt(Er=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(f){return!1}},r=t(),n=function(f){var u={next:function(){var p=f.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(f){return encodeURIComponent(f).replace(/%20/g,"+")},i=function(f){return decodeURIComponent(String(f).replace(/\+/g," "))},a=function(){var f=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var l=typeof p;if(l!=="undefined")if(l==="string")p!==""&&this._fromString(p);else if(p instanceof f){var d=this;p.forEach(function(G,W){d.append(W,G)})}else if(p!==null&&l==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),f._entries&&(f._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(c,f){typeof c!="string"&&(c=String(c)),f&&typeof f!="string"&&(f=String(f));var u=document,p;if(f&&(e.location===void 0||f!==e.location.href)){f=f.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=f,u.head.appendChild(p);try{if(p.href.indexOf(f)!==0)throw new Error(p.href)}catch(w){throw new Error("URL unable to set base "+f+" due to "+w)}}var l=u.createElement("a");l.href=c,p&&(u.body.appendChild(l),l.href=l.href);var d=u.createElement("input");if(d.type="url",d.value=c,l.protocol===":"||!/:/.test(l.href)||!d.checkValidity()&&!f)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:l});var h=new e.URLSearchParams(this.search),b=!0,F=!0,G=this;["append","delete","set"].forEach(function(w){var Ue=h[w];h[w]=function(){Ue.apply(h,arguments),b&&(F=!1,G.search=h.toString(),F=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var W=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==W&&(W=this.search,F&&(b=!1,this.searchParams._fromString(this.search),b=!0))}})},a=i.prototype,s=function(c){Object.defineProperty(a,c,{get:function(){return this._anchorElement[c]},set:function(f){this._anchorElement[c]=f},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(c){s(c)}),Object.defineProperty(a,"search",{get:function(){return this._anchorElement.search},set:function(c){this._anchorElement.search=c,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(a,{toString:{get:function(){var c=this;return function(){return c.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(c){this._anchorElement.href=c,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(c){this._anchorElement.pathname=c},enumerable:!0},origin:{get:function(){var c={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],f=this._anchorElement.port!=c&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(f?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(c){},enumerable:!0},username:{get:function(){return""},set:function(c){},enumerable:!0}}),i.createObjectURL=function(c){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(c){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er)});var kn=gt((Ds,It)=>{/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var ln,mn,dn,hn,bn,vn,gn,yn,xn,Ht,Or,Sn,wn,En,tt,On,_n,Tn,Mn,Ln,An,Cn,Rn,Pt;(function(e){var t=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof It=="object"&&typeof It.exports=="object"?e(r(t,r(It.exports))):e(r(t));function r(n,o){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(i,a){return n[i]=o?o(i,a):a}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])};ln=function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");t(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)},mn=Object.assign||function(n){for(var o,i=1,a=arguments.length;i=0;u--)(f=n[u])&&(c=(s<3?f(c):s>3?f(o,i,c):f(o,i))||c);return s>3&&c&&Object.defineProperty(o,i,c),c},bn=function(n,o){return function(i,a){o(i,a,n)}},vn=function(n,o){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,o)},gn=function(n,o,i,a){function s(c){return c instanceof i?c:new i(function(f){f(c)})}return new(i||(i=Promise))(function(c,f){function u(d){try{l(a.next(d))}catch(h){f(h)}}function p(d){try{l(a.throw(d))}catch(h){f(h)}}function l(d){d.done?c(d.value):s(d.value).then(u,p)}l((a=a.apply(n,o||[])).next())})},yn=function(n,o){var i={label:0,sent:function(){if(c[0]&1)throw c[1];return c[1]},trys:[],ops:[]},a,s,c,f;return f={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(f[Symbol.iterator]=function(){return this}),f;function u(l){return function(d){return p([l,d])}}function p(l){if(a)throw new TypeError("Generator is already executing.");for(;i;)try{if(a=1,s&&(c=l[0]&2?s.return:l[0]?s.throw||((c=s.return)&&c.call(s),0):s.next)&&!(c=c.call(s,l[1])).done)return c;switch(s=0,c&&(l=[l[0]&2,c.value]),l[0]){case 0:case 1:c=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,s=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(c=i.trys,!(c=c.length>0&&c[c.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!c||l[1]>c[0]&&l[1]=n.length&&(n=void 0),{value:n&&n[a++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},Or=function(n,o){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var a=i.call(n),s,c=[],f;try{for(;(o===void 0||o-- >0)&&!(s=a.next()).done;)c.push(s.value)}catch(u){f={error:u}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(f)throw f.error}}return c},Sn=function(){for(var n=[],o=0;o1||u(b,F)})})}function u(b,F){try{p(a[b](F))}catch(G){h(c[0][3],G)}}function p(b){b.value instanceof tt?Promise.resolve(b.value.v).then(l,d):h(c[0][2],b)}function l(b){u("next",b)}function d(b){u("throw",b)}function h(b,F){b(F),c.shift(),c.length&&u(c[0][0],c[0][1])}},_n=function(n){var o,i;return o={},a("next"),a("throw",function(s){throw s}),a("return"),o[Symbol.iterator]=function(){return this},o;function a(s,c){o[s]=n[s]?function(f){return(i=!i)?{value:tt(n[s](f)),done:s==="return"}:c?c(f):f}:c}},Tn=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n[Symbol.asyncIterator],i;return o?o.call(n):(n=typeof Ht=="function"?Ht(n):n[Symbol.iterator](),i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i);function a(c){i[c]=n[c]&&function(f){return new Promise(function(u,p){f=n[c](f),s(u,p,f.done,f.value)})}}function s(c,f,u,p){Promise.resolve(p).then(function(l){c({value:l,done:u})},f)}},Mn=function(n,o){return Object.defineProperty?Object.defineProperty(n,"raw",{value:o}):n.raw=o,n};var r=Object.create?function(n,o){Object.defineProperty(n,"default",{enumerable:!0,value:o})}:function(n,o){n.default=o};Ln=function(n){if(n&&n.__esModule)return n;var o={};if(n!=null)for(var i in n)i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)&&Pt(o,n,i);return r(o,n),o},An=function(n){return n&&n.__esModule?n:{default:n}},Cn=function(n,o,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof o=="function"?n!==o||!a:!o.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(n):a?a.value:o.get(n)},Rn=function(n,o,i,a,s){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof o=="function"?n!==o||!s:!o.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?s.call(n,i):s?s.value=i:o.set(n,i),i},e("__extends",ln),e("__assign",mn),e("__rest",dn),e("__decorate",hn),e("__param",bn),e("__metadata",vn),e("__awaiter",gn),e("__generator",yn),e("__exportStar",xn),e("__createBinding",Pt),e("__values",Ht),e("__read",Or),e("__spread",Sn),e("__spreadArrays",wn),e("__spreadArray",En),e("__await",tt),e("__asyncGenerator",On),e("__asyncDelegator",_n),e("__asyncValues",Tn),e("__makeTemplateObject",Mn),e("__importStar",Ln),e("__importDefault",An),e("__classPrivateFieldGet",Cn),e("__classPrivateFieldSet",Rn)})});var Kr=gt((Lt,Yr)=>{/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */(function(t,r){typeof Lt=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Lt=="object"?Lt.ClipboardJS=r():t.ClipboardJS=r()})(Lt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return ta}});var a=i(279),s=i.n(a),c=i(370),f=i.n(c),u=i(817),p=i.n(u);function l(I){try{return document.execCommand(I)}catch(E){return!1}}var d=function(E){var S=p()(E);return l("cut"),S},h=d;function b(I){var E=document.documentElement.getAttribute("dir")==="rtl",S=document.createElement("textarea");S.style.fontSize="12pt",S.style.border="0",S.style.padding="0",S.style.margin="0",S.style.position="absolute",S.style[E?"right":"left"]="-9999px";var R=window.pageYOffset||document.documentElement.scrollTop;return S.style.top="".concat(R,"px"),S.setAttribute("readonly",""),S.value=I,S}var F=function(E,S){var R=b(E);S.container.appendChild(R);var H=p()(R);return l("copy"),R.remove(),H},G=function(E){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},R="";return typeof E=="string"?R=F(E,S):E instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(E==null?void 0:E.type)?R=F(E.value,S):(R=p()(E),l("copy")),R},W=G;function w(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?w=function(S){return typeof S}:w=function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},w(I)}var Ue=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=E.action,R=S===void 0?"copy":S,H=E.container,z=E.target,Oe=E.text;if(R!=="copy"&&R!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(z!==void 0)if(z&&w(z)==="object"&&z.nodeType===1){if(R==="copy"&&z.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(R==="cut"&&(z.hasAttribute("readonly")||z.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Oe)return W(Oe,{container:H});if(z)return R==="cut"?h(z):W(z,{container:H})},He=Ue;function Ce(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ce=function(S){return typeof S}:Ce=function(S){return S&&typeof Symbol=="function"&&S.constructor===Symbol&&S!==Symbol.prototype?"symbol":typeof S},Ce(I)}function Yi(I,E){if(!(I instanceof E))throw new TypeError("Cannot call a class as a function")}function on(I,E){for(var S=0;S0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof H.action=="function"?H.action:this.defaultAction,this.target=typeof H.target=="function"?H.target:this.defaultTarget,this.text=typeof H.text=="function"?H.text:this.defaultText,this.container=Ce(H.container)==="object"?H.container:document.body}},{key:"listenClick",value:function(H){var z=this;this.listener=f()(H,"click",function(Oe){return z.onClick(Oe)})}},{key:"onClick",value:function(H){var z=H.delegateTarget||H.currentTarget,Oe=this.action(z)||"copy",Rt=He({action:Oe,container:this.container,target:this.target(z),text:this.text(z)});this.emit(Rt?"success":"error",{action:Oe,text:Rt,trigger:z,clearSelection:function(){z&&z.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(H){return yr("action",H)}},{key:"defaultTarget",value:function(H){var z=yr("target",H);if(z)return document.querySelector(z)}},{key:"defaultText",value:function(H){return yr("text",H)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(H){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return W(H,z)}},{key:"cut",value:function(H){return h(H)}},{key:"isSupported",value:function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],z=typeof H=="string"?[H]:H,Oe=!!document.queryCommandSupported;return z.forEach(function(Rt){Oe=Oe&&!!document.queryCommandSupported(Rt)}),Oe}}]),S}(s()),ta=ea},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,c){for(;s&&s.nodeType!==o;){if(typeof s.matches=="function"&&s.matches(c))return s;s=s.parentNode}}n.exports=a},438:function(n,o,i){var a=i(828);function s(u,p,l,d,h){var b=f.apply(this,arguments);return u.addEventListener(l,b,h),{destroy:function(){u.removeEventListener(l,b,h)}}}function c(u,p,l,d,h){return typeof u.addEventListener=="function"?s.apply(null,arguments):typeof l=="function"?s.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(b){return s(b,p,l,d,h)}))}function f(u,p,l,d){return function(h){h.delegateTarget=a(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=c},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(n,o,i){var a=i(879),s=i(438);function c(l,d,h){if(!l&&!d&&!h)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(l))return f(l,d,h);if(a.nodeList(l))return u(l,d,h);if(a.string(l))return p(l,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function f(l,d,h){return l.addEventListener(d,h),{destroy:function(){l.removeEventListener(d,h)}}}function u(l,d,h){return Array.prototype.forEach.call(l,function(b){b.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(l,function(b){b.removeEventListener(d,h)})}}}function p(l,d,h){return s(document.body,l,d,h)}n.exports=c},817:function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),f=document.createRange();f.selectNodeContents(i),c.removeAllRanges(),c.addRange(f),a=c.toString()}return a}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,a,s){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var c=this;function f(){c.off(i,f),a.apply(s,arguments)}return f._=a,this.on(i,f,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),c=0,f=s.length;for(c;c{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var Ss=/["'&<>]/;yi.exports=ws;function ws(e){var t=""+e,r=Ss.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,a=o.isStopped,s=o.observers;return i||a?_r:(this.currentObservers=null,s.push(r),new Re(function(){n.currentObservers=null,Pe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new $;return r.source=this,r},t.create=function(r,n){return new qn(r,n)},t}($);var qn=function(e){te(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:_r},t}(_);var xt={now:function(){return(xt.delegate||Date).now()},delegate:void 0};var St=function(e){te(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=xt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,s=n._timestampProvider,c=n._windowTime;o||(i.push(r),!a&&i.push(s.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,s=a.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=at.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){if(o===void 0&&(o=0),o!=null&&o>0||o==null&&this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);r.actions.some(function(i){return i.id===n})||(at.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Nt);var Kn=function(e){te(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(zt);var Te=new Kn(Yn);var k=new $(function(e){return e.complete()});function qt(e){return e&&T(e.schedule)}function kr(e){return e[e.length-1]}function De(e){return T(kr(e))?e.pop():void 0}function ye(e){return qt(kr(e))?e.pop():void 0}function Qt(e,t){return typeof kr(e)=="number"?e.pop():t}var st=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Yt(e){return T(e==null?void 0:e.then)}function Kt(e){return T(e[it])}function Bt(e){return Symbol.asyncIterator&&T(e==null?void 0:e[Symbol.asyncIterator])}function Gt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ha(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Jt=ha();function Xt(e){return T(e==null?void 0:e[Jt])}function Zt(e){return In(this,arguments,function(){var r,n,o,i;return $t(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,jt(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,jt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,jt(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function er(e){return T(e==null?void 0:e.getReader)}function N(e){if(e instanceof $)return e;if(e!=null){if(Kt(e))return ba(e);if(st(e))return va(e);if(Yt(e))return ga(e);if(Bt(e))return Bn(e);if(Xt(e))return ya(e);if(er(e))return xa(e)}throw Gt(e)}function ba(e){return new $(function(t){var r=e[it]();if(T(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function va(e){return new $(function(t){for(var r=0;r=2,!0))}function ne(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new _}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,c=s===void 0?!0:s;return function(f){var u=null,p=null,l=null,d=0,h=!1,b=!1,F=function(){p==null||p.unsubscribe(),p=null},G=function(){F(),u=l=null,h=b=!1},W=function(){var w=u;G(),w==null||w.unsubscribe()};return v(function(w,Ue){d++,!b&&!h&&F();var He=l=l!=null?l:r();Ue.add(function(){d--,d===0&&!b&&!h&&(p=Ur(W,c))}),He.subscribe(Ue),u||(u=new ot({next:function(Ce){return He.next(Ce)},error:function(Ce){b=!0,F(),p=Ur(G,o,Ce),He.error(Ce)},complete:function(){h=!0,F(),p=Ur(G,a),He.complete()}}),ie(w).subscribe(u))})(f)}}function Ur(e,t){for(var r=[],n=2;ne.next(document)),e}function B(e,t=document){return Array.from(t.querySelectorAll(e))}function Q(e,t=document){let r=pe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function pe(e,t=document){return t.querySelector(e)||void 0}function Ne(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function nr(e){return A(g(document.body,"focusin"),g(document.body,"focusout")).pipe(Xe(1),m(()=>{let t=Ne();return typeof t!="undefined"?e.contains(t):!1}),q(e===Ne()),K())}function ze(e){return{x:e.offsetLeft,y:e.offsetTop}}function vo(e){return A(g(window,"load"),g(window,"resize")).pipe($e(0,Te),m(()=>ze(e)),q(ze(e)))}function or(e){return{x:e.scrollLeft,y:e.scrollTop}}function pt(e){return A(g(e,"scroll"),g(window,"resize")).pipe($e(0,Te),m(()=>or(e)),q(or(e)))}var yo=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!zr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Va?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!zr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=Wa.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),xo=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),wo=typeof WeakMap!="undefined"?new WeakMap:new yo,Eo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Na.getInstance(),n=new Za(t,r,this);wo.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Eo.prototype[e]=function(){var t;return(t=wo.get(this))[e].apply(t,arguments)}});var es=function(){return typeof ir.ResizeObserver!="undefined"?ir.ResizeObserver:Eo}(),Oo=es;var _o=new _,ts=j(()=>P(new Oo(e=>{for(let t of e)_o.next(t)}))).pipe(x(e=>A(xe,P(e)).pipe(C(()=>e.disconnect()))),X(1));function Ae(e){return{width:e.offsetWidth,height:e.offsetHeight}}function de(e){return ts.pipe(O(t=>t.observe(e)),x(t=>_o.pipe(M(({target:r})=>r===e),C(()=>t.unobserve(e)),m(()=>Ae(e)))),q(Ae(e)))}function mt(e){return{width:e.scrollWidth,height:e.scrollHeight}}var To=new _,rs=j(()=>P(new IntersectionObserver(e=>{for(let t of e)To.next(t)},{threshold:0}))).pipe(x(e=>A(xe,P(e)).pipe(C(()=>e.disconnect()))),X(1));function cr(e){return rs.pipe(O(t=>t.observe(e)),x(t=>To.pipe(M(({target:r})=>r===e),C(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Mo(e,t=16){return pt(e).pipe(m(({y:r})=>{let n=Ae(e),o=mt(e);return r>=o.height-n.height-t}),K())}var fr={drawer:Q("[data-md-toggle=drawer]"),search:Q("[data-md-toggle=search]")};function Lo(e){return fr[e].checked}function qe(e,t){fr[e].checked!==t&&fr[e].click()}function dt(e){let t=fr[e];return g(t,"change").pipe(m(()=>t.checked),q(t.checked))}function ns(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ao(){return g(window,"keydown").pipe(M(e=>!(e.metaKey||e.ctrlKey)),m(e=>({mode:Lo("search")?"search":"global",type:e.key,claim(){e.preventDefault(),e.stopPropagation()}})),M(({mode:e,type:t})=>{if(e==="global"){let r=Ne();if(typeof r!="undefined")return!ns(r,t)}return!0}),ne())}function Se(){return new URL(location.href)}function ur(e){location.href=e.href}function Co(){return new _}function Ro(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Ro(e,r)}function L(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)Ro(n,o);return n}function ko(e,t){let r=t;if(e.length>r){for(;e[r]!==" "&&--r>0;);return`${e.substring(0,r)}...`}return e}function pr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Ho(){return location.hash.substring(1)}function Po(e){let t=L("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function os(){return g(window,"hashchange").pipe(m(Ho),q(Ho()),M(e=>e.length>0),X(1))}function Io(){return os().pipe(m(e=>pe(`[id="${e}"]`)),M(e=>typeof e!="undefined"))}function qr(e){let t=matchMedia(e);return rr(r=>t.addListener(()=>r(t.matches))).pipe(q(t.matches))}function $o(){let e=matchMedia("print");return A(g(window,"beforeprint").pipe(m(()=>!0)),g(window,"afterprint").pipe(m(()=>!1))).pipe(q(e.matches))}function Qr(e,t){return e.pipe(x(r=>r?t():k))}function lr(e,t={credentials:"same-origin"}){return ie(fetch(`${e}`,t)).pipe(ce(()=>k),x(r=>r.status!==200?Et(()=>new Error(r.statusText)):P(r)))}function ke(e,t){return lr(e,t).pipe(x(r=>r.json()),X(1))}function jo(e,t){let r=new DOMParser;return lr(e,t).pipe(x(n=>n.text()),m(n=>r.parseFromString(n,"text/xml")),X(1))}function Fo(e){let t=L("script",{src:e});return j(()=>(document.head.appendChild(t),A(g(t,"load"),g(t,"error").pipe(x(()=>Et(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),C(()=>document.head.removeChild(t)),re(1))))}function Uo(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Do(){return A(g(window,"scroll",{passive:!0}),g(window,"resize",{passive:!0})).pipe(m(Uo),q(Uo()))}function Wo(){return{width:innerWidth,height:innerHeight}}function Vo(){return g(window,"resize",{passive:!0}).pipe(m(Wo),q(Wo()))}function No(){return Y([Do(),Vo()]).pipe(m(([e,t])=>({offset:e,size:t})),X(1))}function mr(e,{viewport$:t,header$:r}){let n=t.pipe(J("size")),o=Y([n,r]).pipe(m(()=>ze(e)));return Y([r,t,o]).pipe(m(([{height:i},{offset:a,size:s},{x:c,y:f}])=>({offset:{x:a.x-c,y:a.y-f+i},size:s})))}function zo(e,{tx$:t}){let r=g(e,"message").pipe(m(({data:n})=>n));return t.pipe(Mt(()=>r,{leading:!0,trailing:!0}),O(n=>e.postMessage(n)),x(()=>r),ne())}var is=Q("#__config"),ht=JSON.parse(is.textContent);ht.base=`${new URL(ht.base,Se())}`;function he(){return ht}function oe(e){return ht.features.includes(e)}function ee(e,t){return typeof t!="undefined"?ht.translations[e].replace("#",t.toString()):ht.translations[e]}function we(e,t=document){return Q(`[data-md-component=${e}]`,t)}function ae(e,t=document){return B(`[data-md-component=${e}]`,t)}var ti=Ye(Kr());function qo(e){return L("aside",{class:"md-annotation",tabIndex:0},L("div",{class:"md-annotation__inner md-tooltip"},L("div",{class:"md-tooltip__inner md-typeset"})),L("span",{class:"md-annotation__index"},L("span",{"data-md-annotation-id":e})))}function Qo(e){return L("button",{class:"md-clipboard md-icon",title:ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Br(e,t){let r=t&2,n=t&1,o=Object.keys(e.terms).filter(a=>!e.terms[a]).reduce((a,s)=>[...a,L("del",null,s)," "],[]).slice(0,-1),i=new URL(e.location);return oe("search.highlight")&&i.searchParams.set("h",Object.entries(e.terms).filter(([,a])=>a).reduce((a,[s])=>`${a} ${s}`.trim(),"")),L("a",{href:`${i}`,class:"md-search-result__link",tabIndex:-1},L("article",{class:["md-search-result__article",...r?["md-search-result__article--document"]:[]].join(" "),"data-md-score":e.score.toFixed(2)},r>0&&L("div",{class:"md-search-result__icon md-icon"}),L("h1",{class:"md-search-result__title"},e.title),n>0&&e.text.length>0&&L("p",{class:"md-search-result__teaser"},ko(e.text,320)),e.tags&&e.tags.map(a=>L("span",{class:"md-tag"},a)),n>0&&o.length>0&&L("p",{class:"md-search-result__terms"},ee("search.result.term.missing"),": ",...o)))}function Yo(e){let t=e[0].score,r=[...e],n=r.findIndex(f=>!f.location.includes("#")),[o]=r.splice(n,1),i=r.findIndex(f=>f.scoreBr(f,1)),...s.length?[L("details",{class:"md-search-result__more"},L("summary",{tabIndex:-1},s.length>0&&s.length===1?ee("search.result.more.one"):ee("search.result.more.other",s.length)),...s.map(f=>Br(f,1)))]:[]];return L("li",{class:"md-search-result__item"},c)}function Ko(e){return L("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>L("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?pr(r):r)))}function Gr(e){let t=`tabbed-control tabbed-control--${e}`;return L("div",{class:t,hidden:!0},L("button",{class:"tabbed-button",tabIndex:-1}))}function Bo(e){return L("div",{class:"md-typeset__scrollwrap"},L("div",{class:"md-typeset__table"},e))}function as(e){let t=he(),r=new URL(`../${e.version}/`,t.base);return L("li",{class:"md-version__item"},L("a",{href:`${r}`,class:"md-version__link"},e.title))}function Go(e,t){return L("div",{class:"md-version"},L("button",{class:"md-version__current","aria-label":ee("select.version.title")},t.title),L("ul",{class:"md-version__list"},e.map(as)))}function ss(e,t){let r=j(()=>Y([vo(e),pt(t)])).pipe(m(([{x:n,y:o},i])=>{let{width:a}=Ae(e);return{x:n-i.x+a/2,y:o-i.y}}));return nr(e).pipe(x(n=>r.pipe(m(o=>({active:n,offset:o})),re(+!n||1/0))))}function Jo(e,t){return j(()=>{let r=new _;r.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}});let n=r.pipe(fe(1));cr(e).pipe(Z(n)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),r.pipe(Vr(500,Te),m(()=>t.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}});let o=Q(":scope > :last-child",e),i=g(o,"mousedown",{once:!0});return r.pipe(x(({active:a})=>a?i:k),O(a=>a.preventDefault())).subscribe(()=>e.blur()),ss(e,t).pipe(O(a=>r.next(a)),C(()=>r.complete()),m(a=>U({ref:e},a)))})}function cs(e){let t=[];for(let r of B(".c, .c1, .cm",e)){let n,o=r.firstChild;if(o instanceof Text)for(;n=/\((\d+)\)/.exec(o.textContent);){let i=o.splitText(n.index);o=i.splitText(n[0].length),t.push(i)}}return t}function Xo(e,t){t.append(...Array.from(e.childNodes))}function Zo(e,t,{print$:r}){let n=new Map;for(let o of cs(t)){let[,i]=o.textContent.match(/\((\d+)\)/);pe(`li:nth-child(${i})`,e)&&(n.set(+i,qo(+i)),o.replaceWith(n.get(+i)))}return n.size===0?k:j(()=>{let o=new _;return r.pipe(Z(o.pipe(fe(1)))).subscribe(i=>{e.hidden=!i;for(let[a,s]of n){let c=Q(".md-typeset",s),f=Q(`li:nth-child(${a})`,e);i?Xo(c,f):Xo(f,c)}}),A(...[...n].map(([,i])=>Jo(i,t))).pipe(C(()=>o.complete()),ne())})}var fs=0;function ri(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return ri(t)}}function ei(e){return de(e).pipe(m(({width:t})=>({scrollable:mt(e).width>t})),J("scrollable"))}function ni(e,t){let{matches:r}=matchMedia("(hover)"),n=j(()=>{let o=new _;if(o.subscribe(({scrollable:a})=>{a&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}),ti.default.isSupported()){let a=e.closest("pre");a.id=`__code_${++fs}`,a.insertBefore(Qo(a.id),e)}let i=e.closest(".highlight");if(i instanceof HTMLElement){let a=ri(i);if(typeof a!="undefined"&&(i.classList.contains("annotate")||oe("content.code.annotate"))){let s=Zo(a,e,t);return ei(e).pipe(O(c=>o.next(c)),C(()=>o.complete()),m(c=>U({ref:e},c)),Ze(de(i).pipe(Z(o.pipe(fe(1))),m(({width:c,height:f})=>c&&f),K(),x(c=>c?s:k))))}}return ei(e).pipe(O(a=>o.next(a)),C(()=>o.complete()),m(a=>U({ref:e},a)))});return cr(e).pipe(M(o=>o),re(1),x(()=>n))}var oi=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:transparent}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}defs #flowchart-circleEnd,defs #flowchart-circleStart,defs #flowchart-crossEnd,defs #flowchart-crossStart,defs #flowchart-pointEnd,defs #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}.actor,defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{stroke:var(--md-mermaid-node-fg-color)}text.actor>tspan{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-default-fg-color--lighter)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-edge-color)}.loopText>tspan,.messageText{font-family:var(--md-mermaid-font-family)!important}#arrowhead path,.loopText>tspan,.messageText{fill:var(--md-mermaid-edge-color);stroke:none}.loopLine{stroke:var(--md-mermaid-node-fg-color)}.labelBox,.loopLine{fill:var(--md-mermaid-node-bg-color)}.labelBox{stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-node-fg-color);font-family:var(--md-mermaid-font-family)}";var Jr,ps=0;function ls(){return typeof mermaid=="undefined"||mermaid instanceof Element?Fo("https://unpkg.com/mermaid@9.0.1/dist/mermaid.min.js"):P(void 0)}function ii(e){return e.classList.remove("mermaid"),Jr||(Jr=ls().pipe(O(()=>mermaid.initialize({startOnLoad:!1,themeCSS:oi})),m(()=>{}),X(1))),Jr.subscribe(()=>{e.classList.add("mermaid");let t=`__mermaid_${ps++}`,r=L("div",{class:"mermaid"});mermaid.mermaidAPI.render(t,e.textContent,n=>{let o=r.attachShadow({mode:"closed"});o.innerHTML=n,e.replaceWith(r)})}),Jr.pipe(m(()=>({ref:e})))}function ms(e,{target$:t,print$:r}){let n=!0;return A(t.pipe(m(o=>o.closest("details:not([open])")),M(o=>e===o),m(()=>({action:"open",reveal:!0}))),r.pipe(M(o=>o||!n),O(()=>n=e.open),m(o=>({action:o?"open":"close"}))))}function ai(e,t){return j(()=>{let r=new _;return r.subscribe(({action:n,reveal:o})=>{n==="open"?e.setAttribute("open",""):e.removeAttribute("open"),o&&e.scrollIntoView()}),ms(e,t).pipe(O(n=>r.next(n)),C(()=>r.complete()),m(n=>U({ref:e},n)))})}var si=L("table");function ci(e){return e.replaceWith(si),si.replaceWith(Bo(e)),P({ref:e})}function ds(e){let t=B(":scope > input",e),r=t.find(n=>n.checked)||t[0];return A(...t.map(n=>g(n,"change").pipe(m(()=>Q(`label[for="${n.id}"]`))))).pipe(q(Q(`label[for="${r.id}"]`)),m(n=>({active:n})))}function fi(e){let t=Gr("prev");e.append(t);let r=Gr("next");e.append(r);let n=Q(".tabbed-labels",e);return j(()=>{let o=new _,i=o.pipe(fe(1));return Y([o,de(e)]).pipe($e(1,Te),Z(i)).subscribe({next([{active:a},s]){let c=ze(a),{width:f}=Ae(a);e.style.setProperty("--md-indicator-x",`${c.x}px`),e.style.setProperty("--md-indicator-width",`${f}px`);let u=or(n);(c.xu.x+s.width)&&n.scrollTo({left:Math.max(0,c.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),Y([pt(n),de(n)]).pipe(Z(i)).subscribe(([a,s])=>{let c=mt(n);t.hidden=a.x<16,r.hidden=a.x>c.width-s.width-16}),A(g(t,"click").pipe(m(()=>-1)),g(r,"click").pipe(m(()=>1))).pipe(Z(i)).subscribe(a=>{let{width:s}=Ae(n);n.scrollBy({left:s*a,behavior:"smooth"})}),oe("content.tabs.link")&&o.pipe(Le(1)).subscribe(({active:a})=>{let s=a.innerText.trim();for(let f of B("[data-tabs]"))for(let u of B(":scope > input",f))if(Q(`label[for="${u.id}"]`).innerText.trim()===s){u.click();break}let c=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([s,...c])])}),ds(e).pipe(O(a=>o.next(a)),C(()=>o.complete()),m(a=>U({ref:e},a)))}).pipe(Be(ue))}function ui(e,{target$:t,print$:r}){return A(...B("pre:not(.mermaid) > code",e).map(n=>ni(n,{print$:r})),...B("pre.mermaid",e).map(n=>ii(n)),...B("table:not([class])",e).map(n=>ci(n)),...B("details",e).map(n=>ai(n,{target$:t,print$:r})),...B("[data-tabs]",e).map(n=>fi(n)))}function hs(e,{alert$:t}){return t.pipe(x(r=>A(P(!0),P(!1).pipe(Fe(2e3))).pipe(m(n=>({message:r,active:n})))))}function pi(e,t){let r=Q(".md-typeset",e);return j(()=>{let n=new _;return n.subscribe(({message:o,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=o}),hs(e,t).pipe(O(o=>n.next(o)),C(()=>n.complete()),m(o=>U({ref:e},o)))})}function bs({viewport$:e}){if(!oe("header.autohide"))return P(!1);let t=e.pipe(m(({offset:{y:o}})=>o),Me(2,1),m(([o,i])=>[oMath.abs(i-o.y)>100),m(([,[o]])=>o),K()),n=dt("search");return Y([e,n]).pipe(m(([{offset:o},i])=>o.y>400&&!i),K(),x(o=>o?r:P(!1)),q(!1))}function li(e,t){return j(()=>Y([de(e),bs(t)])).pipe(m(([{height:r},n])=>({height:r,hidden:n})),K((r,n)=>r.height===n.height&&r.hidden===n.hidden),X(1))}function mi(e,{header$:t,main$:r}){return j(()=>{let n=new _,o=n.pipe(fe(1));return n.pipe(J("active"),Je(t)).subscribe(([{active:i},{hidden:a}])=>{e.classList.toggle("md-header--shadow",i&&!a),e.hidden=a}),r.subscribe(n),t.pipe(Z(o),m(i=>U({ref:e},i)))})}function vs(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:n}})=>{let{height:o}=Ae(e);return{active:n>=o}}),J("active"))}function di(e,t){return j(()=>{let r=new _;r.subscribe(({active:o})=>{e.classList.toggle("md-header__title--active",o)});let n=pe("article h1");return typeof n=="undefined"?k:vs(n,t).pipe(O(o=>r.next(o)),C(()=>r.complete()),m(o=>U({ref:e},o)))})}function hi(e,{viewport$:t,header$:r}){let n=r.pipe(m(({height:i})=>i),K()),o=n.pipe(x(()=>de(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),J("bottom"))));return Y([n,o,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:c},size:{height:f}}])=>(f=Math.max(0,f-Math.max(0,a-c,i)-Math.max(0,f+c-s)),{offset:a-i,height:f,active:a-i<=c})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function gs(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return P(...e).pipe(se(r=>g(r,"change").pipe(m(()=>r))),q(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),X(1))}function bi(e){return j(()=>{let t=new _;t.subscribe(n=>{document.body.setAttribute("data-md-color-switching","");for(let[o,i]of Object.entries(n.color))document.body.setAttribute(`data-md-color-${o}`,i);for(let o=0;o{document.body.removeAttribute("data-md-color-switching")});let r=B("input",e);return gs(r).pipe(O(n=>t.next(n)),C(()=>t.complete()),m(n=>U({ref:e},n)))})}var Xr=Ye(Kr());function ys(e){e.setAttribute("data-md-copying","");let t=e.innerText;return e.removeAttribute("data-md-copying"),t}function vi({alert$:e}){Xr.default.isSupported()&&new $(t=>{new Xr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ys(Q(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(O(t=>{t.trigger.focus()}),m(()=>ee("clipboard.copied"))).subscribe(e)}function xs(e){if(e.length<2)return[""];let[t,r]=[...e].sort((o,i)=>o.length-i.length).map(o=>o.replace(/[^/]+$/,"")),n=0;if(t===r)n=t.length;else for(;t.charCodeAt(n)===r.charCodeAt(n);)n++;return e.map(o=>o.replace(t.slice(0,n),""))}function dr(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return P(t);{let r=he();return jo(new URL("sitemap.xml",e||r.base)).pipe(m(n=>xs(B("loc",n).map(o=>o.textContent))),ce(()=>k),je([]),O(n=>__md_set("__sitemap",n,sessionStorage,e)))}}function gi({document$:e,location$:t,viewport$:r}){let n=he();if(location.protocol==="file:")return;"scrollRestoration"in history&&(history.scrollRestoration="manual",g(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}));let o=pe("link[rel=icon]");typeof o!="undefined"&&(o.href=o.href);let i=dr().pipe(m(f=>f.map(u=>`${new URL(u,n.base)}`)),x(f=>g(document.body,"click").pipe(M(u=>!u.metaKey&&!u.ctrlKey),x(u=>{if(u.target instanceof Element){let p=u.target.closest("a");if(p&&!p.target){let l=new URL(p.href);if(l.search="",l.hash="",l.pathname!==location.pathname&&f.includes(l.toString()))return u.preventDefault(),P({url:new URL(p.href)})}}return xe}))),ne()),a=g(window,"popstate").pipe(M(f=>f.state!==null),m(f=>({url:new URL(location.href),offset:f.state})),ne());A(i,a).pipe(K((f,u)=>f.url.href===u.url.href),m(({url:f})=>f)).subscribe(t);let s=t.pipe(J("pathname"),x(f=>lr(f.href).pipe(ce(()=>(ur(f),xe)))),ne());i.pipe(ut(s)).subscribe(({url:f})=>{history.pushState({},"",`${f}`)});let c=new DOMParser;s.pipe(x(f=>f.text()),m(f=>c.parseFromString(f,"text/html"))).subscribe(e),e.pipe(Le(1)).subscribe(f=>{for(let u of["title","link[rel=canonical]","meta[name=author]","meta[name=description]","[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...oe("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let p=pe(u),l=pe(u,f);typeof p!="undefined"&&typeof l!="undefined"&&p.replaceWith(l)}}),e.pipe(Le(1),m(()=>we("container")),x(f=>B("script",f)),Ir(f=>{let u=L("script");if(f.src){for(let p of f.getAttributeNames())u.setAttribute(p,f.getAttribute(p));return f.replaceWith(u),new $(p=>{u.onload=()=>p.complete()})}else return u.textContent=f.textContent,f.replaceWith(u),k})).subscribe(),A(i,a).pipe(ut(e)).subscribe(({url:f,offset:u})=>{f.hash&&!u?Po(f.hash):window.scrollTo(0,(u==null?void 0:u.y)||0)}),r.pipe(Tt(i),Xe(250),J("offset")).subscribe(({offset:f})=>{history.replaceState(f,"")}),A(i,a).pipe(Me(2,1),M(([f,u])=>f.url.pathname===u.url.pathname),m(([,f])=>f)).subscribe(({offset:f})=>{window.scrollTo(0,(f==null?void 0:f.y)||0)})}var Es=Ye(Zr());var xi=Ye(Zr());function en(e,t){let r=new RegExp(e.separator,"img"),n=(o,i,a)=>`${i}${a}`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator})(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(t?(0,xi.default)(a):a).replace(i,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Si(e){return e.split(/"([^"]+)"/g).map((t,r)=>r&1?t.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):t).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").trim()}function bt(e){return e.type===1}function wi(e){return e.type===2}function vt(e){return e.type===3}function _s({config:e,docs:t}){e.lang.length===1&&e.lang[0]==="en"&&(e.lang=[ee("search.config.lang")]),e.separator==="[\\s\\-]+"&&(e.separator=ee("search.config.separator"));let n={pipeline:ee("search.config.pipeline").split(/\s*,\s*/).filter(Boolean),suggestions:oe("search.suggest")};return{config:e,docs:t,options:n}}function Ei(e,t){let r=he(),n=new Worker(e),o=new _,i=zo(n,{tx$:o}).pipe(m(a=>{if(vt(a))for(let s of a.data.items)for(let c of s)c.location=`${new URL(c.location,r.base)}`;return a}),ne());return ie(t).pipe(m(a=>({type:0,data:_s(a)}))).subscribe(o.next.bind(o)),{tx$:o,rx$:i}}function Oi({document$:e}){let t=he(),r=ke(new URL("../versions.json",t.base)).pipe(ce(()=>k)),n=r.pipe(m(o=>{let[,i]=t.base.match(/([^/]+)\/?$/);return o.find(({version:a,aliases:s})=>a===i||s.includes(i))||o[0]}));r.pipe(m(o=>new Map(o.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),x(o=>g(document.body,"click").pipe(M(i=>!i.metaKey&&!i.ctrlKey),ge(n),x(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&o.has(s.href)){let c=s.href;return!i.target.closest(".md-version")&&o.get(c)===a?k:(i.preventDefault(),P(c))}}return k}),x(i=>{let{version:a}=o.get(i);return dr(new URL(i)).pipe(m(s=>{let f=Se().href.replace(t.base,"");return s.includes(f)?new URL(`../${a}/${f}`,t.base):new URL(i)}))})))).subscribe(o=>ur(o)),Y([r,n]).subscribe(([o,i])=>{Q(".md-header__topic").appendChild(Go(o,i))}),e.pipe(x(()=>n)).subscribe(o=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){let s=((a=t.version)==null?void 0:a.default)||"latest";i=!o.aliases.includes(s),__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function Ts(e,{rx$:t}){let r=(__search==null?void 0:__search.transform)||Si,{searchParams:n}=Se();n.has("q")&&qe("search",!0);let o=t.pipe(M(bt),re(1),m(()=>n.get("q")||""));dt("search").pipe(M(s=>!s),re(1)).subscribe(()=>{let s=new URL(location.href);s.searchParams.delete("q"),history.replaceState({},"",`${s}`)}),o.subscribe(s=>{s&&(e.value=s,e.focus())});let i=nr(e),a=A(g(e,"keyup"),g(e,"focus").pipe(Fe(1)),o).pipe(m(()=>r(e.value)),q(""),K());return Y([a,i]).pipe(m(([s,c])=>({value:s,focus:c})),X(1))}function _i(e,{tx$:t,rx$:r}){let n=new _,o=n.pipe(fe(1));return n.pipe(J("value"),m(({value:i})=>({type:2,data:i}))).subscribe(t.next.bind(t)),n.pipe(J("focus")).subscribe(({focus:i})=>{i?(qe("search",i),e.placeholder=""):e.placeholder=ee("search.placeholder")}),g(e.form,"reset").pipe(Z(o)).subscribe(()=>e.focus()),Ts(e,{tx$:t,rx$:r}).pipe(O(i=>n.next(i)),C(()=>n.complete()),m(i=>U({ref:e},i)),ne())}function Ti(e,{rx$:t},{query$:r}){let n=new _,o=Mo(e.parentElement).pipe(M(Boolean)),i=Q(":scope > :first-child",e),a=Q(":scope > :last-child",e),s=t.pipe(M(bt),re(1));return n.pipe(ge(r),Tt(s)).subscribe(([{items:f},{value:u}])=>{if(u)switch(f.length){case 0:i.textContent=ee("search.result.none");break;case 1:i.textContent=ee("search.result.one");break;default:i.textContent=ee("search.result.other",pr(f.length))}else i.textContent=ee("search.result.placeholder")}),n.pipe(O(()=>a.innerHTML=""),x(({items:f})=>A(P(...f.slice(0,10)),P(...f.slice(10)).pipe(Me(4),Nr(o),x(([u])=>u))))).subscribe(f=>a.appendChild(Yo(f))),t.pipe(M(vt),m(({data:f})=>f)).pipe(O(f=>n.next(f)),C(()=>n.complete()),m(f=>U({ref:e},f)))}function Ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let n=Se();return n.hash="",n.searchParams.delete("h"),n.searchParams.set("q",r),{url:n}}))}function Mi(e,t){let r=new _;return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),g(e,"click").subscribe(n=>n.preventDefault()),Ms(e,t).pipe(O(n=>r.next(n)),C(()=>r.complete()),m(n=>U({ref:e},n)))}function Li(e,{rx$:t},{keyboard$:r}){let n=new _,o=we("search-query"),i=A(g(o,"keydown"),g(o,"focus")).pipe(Ie(ue),m(()=>o.value),K());return n.pipe(Je(i),m(([{suggestions:s},c])=>{let f=c.split(/([\s-]+)/);if((s==null?void 0:s.length)&&f[f.length-1]){let u=s[s.length-1];u.startsWith(f[f.length-1])&&(f[f.length-1]=u)}else f.length=0;return f})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(M(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&o.selectionStart===o.value.length&&(o.value=e.innerText);break}}),t.pipe(M(vt),m(({data:s})=>s)).pipe(O(s=>n.next(s)),C(()=>n.complete()),m(()=>({ref:e})))}function Ai(e,{index$:t,keyboard$:r}){let n=he();try{let o=(__search==null?void 0:__search.worker)||n.search,i=Ei(o,t),a=we("search-query",e),s=we("search-result",e),{tx$:c,rx$:f}=i;c.pipe(M(wi),ut(f.pipe(M(bt))),re(1)).subscribe(c.next.bind(c)),r.pipe(M(({mode:l})=>l==="search")).subscribe(l=>{let d=Ne();switch(l.type){case"Enter":if(d===a){let h=new Map;for(let b of B(":first-child [href]",s)){let F=b.firstElementChild;h.set(b,parseFloat(F.getAttribute("data-md-score")))}if(h.size){let[[b]]=[...h].sort(([,F],[,G])=>G-F);b.click()}l.claim()}break;case"Escape":case"Tab":qe("search",!1),a.blur();break;case"ArrowUp":case"ArrowDown":if(typeof d=="undefined")a.focus();else{let h=[a,...B(":not(details) > [href], summary, details[open] [href]",s)],b=Math.max(0,(Math.max(0,h.indexOf(d))+h.length+(l.type==="ArrowUp"?-1:1))%h.length);h[b].focus()}l.claim();break;default:a!==Ne()&&a.focus()}}),r.pipe(M(({mode:l})=>l==="global")).subscribe(l=>{switch(l.type){case"f":case"s":case"/":a.focus(),a.select(),l.claim();break}});let u=_i(a,i),p=Ti(s,i,{query$:u});return A(u,p).pipe(Ze(...ae("search-share",e).map(l=>Mi(l,{query$:u})),...ae("search-suggest",e).map(l=>Li(l,i,{keyboard$:r}))))}catch(o){return e.hidden=!0,xe}}function Ci(e,{index$:t,location$:r}){return Y([t,r.pipe(q(Se()),M(n=>!!n.searchParams.get("h")))]).pipe(m(([n,o])=>en(n.config,!0)(o.searchParams.get("h"))),m(n=>{var a;let o=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let c=s.textContent,f=n(c);f.length>c.length&&o.set(s,f)}for(let[s,c]of o){let{childNodes:f}=L("span",null,c);s.replaceWith(...Array.from(f))}return{ref:e,nodes:o}}))}function Ls(e,{viewport$:t,main$:r}){let n=e.parentElement,o=n.offsetTop-n.parentElement.offsetTop;return Y([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(o,Math.max(0,s-i))-o,{height:a,locked:s>=i+o})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function tn(e,n){var o=n,{header$:t}=o,r=cn(o,["header$"]);let i=Q(".md-sidebar__scrollwrap",e),{y:a}=ze(i);return j(()=>{let s=new _;return s.pipe($e(0,Te),ge(t)).subscribe({next([{height:c},{height:f}]){i.style.height=`${c-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),Ls(e,r).pipe(O(c=>s.next(c)),C(()=>s.complete()),m(c=>U({ref:e},c)))})}function Ri(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return Ot(ke(`${r}/releases/latest`).pipe(ce(()=>k),m(n=>({version:n.tag_name})),je({})),ke(r).pipe(ce(()=>k),m(n=>({stars:n.stargazers_count,forks:n.forks_count})),je({}))).pipe(m(([n,o])=>U(U({},n),o)))}else{let r=`https://api.github.com/users/${e}`;return ke(r).pipe(m(n=>({repositories:n.public_repos})),je({}))}}function ki(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return ke(r).pipe(ce(()=>k),m(({star_count:n,forks_count:o})=>({stars:n,forks:o})),je({}))}function Hi(e){let[t]=e.match(/(git(?:hub|lab))/i)||[];switch(t.toLowerCase()){case"github":let[,r,n]=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);return Ri(r,n);case"gitlab":let[,o,i]=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i);return ki(o,i);default:return k}}var As;function Cs(e){return As||(As=j(()=>{let t=__md_get("__source",sessionStorage);return t?P(t):Hi(e.href).pipe(O(r=>__md_set("__source",r,sessionStorage)))}).pipe(ce(()=>k),M(t=>Object.keys(t).length>0),m(t=>({facts:t})),X(1)))}function Pi(e){let t=Q(":scope > :last-child",e);return j(()=>{let r=new _;return r.subscribe(({facts:n})=>{t.appendChild(Ko(n)),t.classList.add("md-source__repository--active")}),Cs(e).pipe(O(n=>r.next(n)),C(()=>r.complete()),m(n=>U({ref:e},n)))})}function Rs(e,{viewport$:t,header$:r}){return de(document.body).pipe(x(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:n}})=>({hidden:n>=10})),J("hidden"))}function Ii(e,t){return j(()=>{let r=new _;return r.subscribe({next({hidden:n}){e.hidden=n},complete(){e.hidden=!1}}),(oe("navigation.tabs.sticky")?P({hidden:!1}):Rs(e,t)).pipe(O(n=>r.next(n)),C(()=>r.complete()),m(n=>U({ref:e},n)))})}function ks(e,{viewport$:t,header$:r}){let n=new Map,o=B("[href^=\\#]",e);for(let s of o){let c=decodeURIComponent(s.hash.substring(1)),f=pe(`[id="${c}"]`);typeof f!="undefined"&&n.set(s,f)}let i=r.pipe(J("height"),m(({height:s})=>{let c=we("main"),f=Q(":scope > :first-child",c);return s+.8*(f.offsetTop-c.offsetTop)}),ne());return de(document.body).pipe(J("height"),x(s=>j(()=>{let c=[];return P([...n].reduce((f,[u,p])=>{for(;c.length&&n.get(c[c.length-1]).tagName>=p.tagName;)c.pop();let l=p.offsetTop;for(;!l&&p.parentElement;)p=p.parentElement,l=p.offsetTop;return f.set([...c=[...c,u]].reverse(),l)},new Map))}).pipe(m(c=>new Map([...c].sort(([,f],[,u])=>f-u))),Je(i),x(([c,f])=>t.pipe(Fr(([u,p],{offset:{y:l},size:d})=>{let h=l+d.height>=Math.floor(s.height);for(;p.length;){let[,b]=p[0];if(b-f=l&&!h)p=[u.pop(),...p];else break}return[u,p]},[[],[...c]]),K((u,p)=>u[0]===p[0]&&u[1]===p[1])))))).pipe(m(([s,c])=>({prev:s.map(([f])=>f),next:c.map(([f])=>f)})),q({prev:[],next:[]}),Me(2,1),m(([s,c])=>s.prev.length{let o=new _,i=o.pipe(fe(1));return o.subscribe(({prev:a,next:s})=>{for(let[c]of s)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[f]]of a.entries())f.classList.add("md-nav__link--passed"),f.classList.toggle("md-nav__link--active",c===a.length-1)}),oe("navigation.tracking")&&t.pipe(Z(i),J("offset"),Xe(250),Le(1),Z(n.pipe(Le(1))),_t({delay:250}),ge(o)).subscribe(([,{prev:a}])=>{let s=Se(),c=a[a.length-1];if(c&&c.length){let[f]=c,{hash:u}=new URL(f.href);s.hash!==u&&(s.hash=u,history.replaceState({},"",`${s}`))}else s.hash="",history.replaceState({},"",`${s}`)}),ks(e,{viewport$:t,header$:r}).pipe(O(a=>o.next(a)),C(()=>o.complete()),m(a=>U({ref:e},a)))})}function Hs(e,{viewport$:t,main$:r,target$:n}){let o=t.pipe(m(({offset:{y:a}})=>a),Me(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return Y([i,o]).pipe(m(([a,s])=>!(a&&s)),K(),Z(n.pipe(Le(1))),jr(!0),_t({delay:250}),m(a=>({hidden:a})))}function ji(e,{viewport$:t,header$:r,main$:n,target$:o}){let i=new _,a=i.pipe(fe(1));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(Z(a),J("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),Hs(e,{viewport$:t,main$:n,target$:o}).pipe(O(s=>i.next(s)),C(()=>i.complete()),m(s=>U({ref:e},s)))}function Fi({document$:e,tablet$:t}){e.pipe(x(()=>B(".md-toggle--indeterminate, [data-md-state=indeterminate]")),O(r=>{r.indeterminate=!0,r.checked=!1}),se(r=>g(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ge(t)).subscribe(([r,n])=>{r.classList.remove("md-toggle--indeterminate"),n&&(r.checked=!1)})}function Ps(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Ui({document$:e}){e.pipe(x(()=>B("[data-md-scrollfix]")),O(t=>t.removeAttribute("data-md-scrollfix")),M(Ps),se(t=>g(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Di({viewport$:e,tablet$:t}){Y([dt("search"),t]).pipe(m(([r,n])=>r&&!n),x(r=>P(r).pipe(Fe(r?400:100))),ge(e)).subscribe(([r,{offset:{y:n}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${n}px`;else{let o=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",o&&window.scrollTo(0,o)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let n=e[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?t.insertBefore(this.previousSibling,n):t.replaceChild(n,this)}}}));document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var et=bo(),br=Co(),At=Io(),rn=Ao(),Ee=No(),vr=qr("(min-width: 960px)"),Vi=qr("(min-width: 1220px)"),Ni=$o(),zi=he(),qi=document.forms.namedItem("search")?(__search==null?void 0:__search.index)||ke(new URL("search/search_index.json",zi.base)):xe,nn=new _;vi({alert$:nn});oe("navigation.instant")&&gi({document$:et,location$:br,viewport$:Ee});var Wi;((Wi=zi.version)==null?void 0:Wi.provider)==="mike"&&Oi({document$:et});A(br,At).pipe(Fe(125)).subscribe(()=>{qe("drawer",!1),qe("search",!1)});rn.pipe(M(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=pe("[href][rel=prev]");typeof t!="undefined"&&t.click();break;case"n":case".":let r=pe("[href][rel=next]");typeof r!="undefined"&&r.click();break}});Fi({document$:et,tablet$:vr});Ui({document$:et});Di({viewport$:Ee,tablet$:vr});var Qe=li(we("header"),{viewport$:Ee}),hr=et.pipe(m(()=>we("main")),x(e=>hi(e,{viewport$:Ee,header$:Qe})),X(1)),Is=A(...ae("dialog").map(e=>pi(e,{alert$:nn})),...ae("header").map(e=>mi(e,{viewport$:Ee,header$:Qe,main$:hr})),...ae("palette").map(e=>bi(e)),...ae("search").map(e=>Ai(e,{index$:qi,keyboard$:rn})),...ae("source").map(e=>Pi(e))),$s=j(()=>A(...ae("content").map(e=>ui(e,{target$:At,print$:Ni})),...ae("content").map(e=>oe("search.highlight")?Ci(e,{index$:qi,location$:br}):k),...ae("header-title").map(e=>di(e,{viewport$:Ee,header$:Qe})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Qr(Vi,()=>tn(e,{viewport$:Ee,header$:Qe,main$:hr})):Qr(vr,()=>tn(e,{viewport$:Ee,header$:Qe,main$:hr}))),...ae("tabs").map(e=>Ii(e,{viewport$:Ee,header$:Qe})),...ae("toc").map(e=>$i(e,{viewport$:Ee,header$:Qe,target$:At})),...ae("top").map(e=>ji(e,{viewport$:Ee,header$:Qe,main$:hr,target$:At})))),Qi=et.pipe(x(()=>$s),Ze(Is),X(1));Qi.subscribe();window.document$=et;window.location$=br;window.target$=At;window.keyboard$=rn;window.viewport$=Ee;window.tablet$=vr;window.screen$=Vi;window.print$=Ni;window.alert$=nn;window.component$=Qi;})(); -//# sourceMappingURL=bundle.6c7ad80a.min.js.map - diff --git a/docs/site/assets/javascripts/bundle.6c7ad80a.min.js.map b/docs/site/assets/javascripts/bundle.6c7ad80a.min.js.map deleted file mode 100644 index 1a973ec0..00000000 --- a/docs/site/assets/javascripts/bundle.6c7ad80a.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 3, - "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/url-polyfill/url-polyfill.js", "node_modules/rxjs/node_modules/tslib/tslib.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "node_modules/array-flat-polyfill/index.mjs", "src/assets/javascripts/bundle.ts", "node_modules/unfetch/polyfill/index.js", "node_modules/rxjs/node_modules/tslib/modules/index.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/concatMap.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/assets/javascripts/browser/document/index.ts", "src/assets/javascripts/browser/element/_/index.ts", "src/assets/javascripts/browser/element/focus/index.ts", "src/assets/javascripts/browser/element/offset/_/index.ts", "src/assets/javascripts/browser/element/offset/content/index.ts", "node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js", "src/assets/javascripts/browser/element/size/_/index.ts", "src/assets/javascripts/browser/element/size/content/index.ts", "src/assets/javascripts/browser/element/visibility/index.ts", "src/assets/javascripts/browser/toggle/index.ts", "src/assets/javascripts/browser/keyboard/index.ts", "src/assets/javascripts/browser/location/_/index.ts", "src/assets/javascripts/utilities/h/index.ts", "src/assets/javascripts/utilities/string/index.ts", "src/assets/javascripts/browser/location/hash/index.ts", "src/assets/javascripts/browser/media/index.ts", "src/assets/javascripts/browser/request/index.ts", "src/assets/javascripts/browser/script/index.ts", "src/assets/javascripts/browser/viewport/offset/index.ts", "src/assets/javascripts/browser/viewport/size/index.ts", "src/assets/javascripts/browser/viewport/_/index.ts", "src/assets/javascripts/browser/viewport/at/index.ts", "src/assets/javascripts/browser/worker/index.ts", "src/assets/javascripts/_/index.ts", "src/assets/javascripts/components/_/index.ts", "src/assets/javascripts/components/content/code/_/index.ts", "src/assets/javascripts/templates/annotation/index.tsx", "src/assets/javascripts/templates/clipboard/index.tsx", "src/assets/javascripts/templates/search/index.tsx", "src/assets/javascripts/templates/source/index.tsx", "src/assets/javascripts/templates/tabbed/index.tsx", "src/assets/javascripts/templates/table/index.tsx", "src/assets/javascripts/templates/version/index.tsx", "src/assets/javascripts/components/content/annotation/_/index.ts", "src/assets/javascripts/components/content/annotation/list/index.ts", "src/assets/javascripts/components/content/code/mermaid/index.ts", "src/assets/javascripts/components/content/details/index.ts", "src/assets/javascripts/components/content/table/index.ts", "src/assets/javascripts/components/content/tabs/index.ts", "src/assets/javascripts/components/content/_/index.ts", "src/assets/javascripts/components/dialog/index.ts", "src/assets/javascripts/components/header/_/index.ts", "src/assets/javascripts/components/header/title/index.ts", "src/assets/javascripts/components/main/index.ts", "src/assets/javascripts/components/palette/index.ts", "src/assets/javascripts/integrations/clipboard/index.ts", "src/assets/javascripts/integrations/sitemap/index.ts", "src/assets/javascripts/integrations/instant/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/transform/index.ts", "src/assets/javascripts/integrations/search/worker/message/index.ts", "src/assets/javascripts/integrations/search/worker/_/index.ts", "src/assets/javascripts/integrations/version/index.ts", "src/assets/javascripts/components/search/query/index.ts", "src/assets/javascripts/components/search/result/index.ts", "src/assets/javascripts/components/search/share/index.ts", "src/assets/javascripts/components/search/suggest/index.ts", "src/assets/javascripts/components/search/_/index.ts", "src/assets/javascripts/components/search/highlight/index.ts", "src/assets/javascripts/components/sidebar/index.ts", "src/assets/javascripts/components/source/facts/github/index.ts", "src/assets/javascripts/components/source/facts/gitlab/index.ts", "src/assets/javascripts/components/source/facts/_/index.ts", "src/assets/javascripts/components/source/_/index.ts", "src/assets/javascripts/components/tabs/index.ts", "src/assets/javascripts/components/toc/index.ts", "src/assets/javascripts/components/top/index.ts", "src/assets/javascripts/patches/indeterminate/index.ts", "src/assets/javascripts/patches/scrollfix/index.ts", "src/assets/javascripts/patches/scrolllock/index.ts", "src/assets/javascripts/polyfills/index.ts"], - "sourceRoot": "../../../..", - "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "(function(global) {\r\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\r\n\r\n var checkIfIteratorIsSupported = function() {\r\n try {\r\n return !!Symbol.iterator;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var iteratorSupported = checkIfIteratorIsSupported();\r\n\r\n var createIterator = function(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift();\r\n return { done: value === void 0, value: value };\r\n }\r\n };\r\n\r\n if (iteratorSupported) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator;\r\n };\r\n }\r\n\r\n return iterator;\r\n };\r\n\r\n /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\r\n var serializeParam = function(value) {\r\n return encodeURIComponent(value).replace(/%20/g, '+');\r\n };\r\n\r\n var deserializeParam = function(value) {\r\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\r\n };\r\n\r\n var polyfillURLSearchParams = function() {\r\n\r\n var URLSearchParams = function(searchString) {\r\n Object.defineProperty(this, '_entries', { writable: true, value: {} });\r\n var typeofSearchString = typeof searchString;\r\n\r\n if (typeofSearchString === 'undefined') {\r\n // do nothing\r\n } else if (typeofSearchString === 'string') {\r\n if (searchString !== '') {\r\n this._fromString(searchString);\r\n }\r\n } else if (searchString instanceof URLSearchParams) {\r\n var _this = this;\r\n searchString.forEach(function(value, name) {\r\n _this.append(name, value);\r\n });\r\n } else if ((searchString !== null) && (typeofSearchString === 'object')) {\r\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\r\n for (var i = 0; i < searchString.length; i++) {\r\n var entry = searchString[i];\r\n if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {\r\n this.append(entry[0], entry[1]);\r\n } else {\r\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\r\n }\r\n }\r\n } else {\r\n for (var key in searchString) {\r\n if (searchString.hasOwnProperty(key)) {\r\n this.append(key, searchString[key]);\r\n }\r\n }\r\n }\r\n } else {\r\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\r\n }\r\n };\r\n\r\n var proto = URLSearchParams.prototype;\r\n\r\n proto.append = function(name, value) {\r\n if (name in this._entries) {\r\n this._entries[name].push(String(value));\r\n } else {\r\n this._entries[name] = [String(value)];\r\n }\r\n };\r\n\r\n proto.delete = function(name) {\r\n delete this._entries[name];\r\n };\r\n\r\n proto.get = function(name) {\r\n return (name in this._entries) ? this._entries[name][0] : null;\r\n };\r\n\r\n proto.getAll = function(name) {\r\n return (name in this._entries) ? this._entries[name].slice(0) : [];\r\n };\r\n\r\n proto.has = function(name) {\r\n return (name in this._entries);\r\n };\r\n\r\n proto.set = function(name, value) {\r\n this._entries[name] = [String(value)];\r\n };\r\n\r\n proto.forEach = function(callback, thisArg) {\r\n var entries;\r\n for (var name in this._entries) {\r\n if (this._entries.hasOwnProperty(name)) {\r\n entries = this._entries[name];\r\n for (var i = 0; i < entries.length; i++) {\r\n callback.call(thisArg, entries[i], name, this);\r\n }\r\n }\r\n }\r\n };\r\n\r\n proto.keys = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push(name);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.values = function() {\r\n var items = [];\r\n this.forEach(function(value) {\r\n items.push(value);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.entries = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n if (iteratorSupported) {\r\n proto[Symbol.iterator] = proto.entries;\r\n }\r\n\r\n proto.toString = function() {\r\n var searchArray = [];\r\n this.forEach(function(value, name) {\r\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\r\n });\r\n return searchArray.join('&');\r\n };\r\n\r\n\r\n global.URLSearchParams = URLSearchParams;\r\n };\r\n\r\n var checkIfURLSearchParamsSupported = function() {\r\n try {\r\n var URLSearchParams = global.URLSearchParams;\r\n\r\n return (\r\n (new URLSearchParams('?a=1').toString() === 'a=1') &&\r\n (typeof URLSearchParams.prototype.set === 'function') &&\r\n (typeof URLSearchParams.prototype.entries === 'function')\r\n );\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n if (!checkIfURLSearchParamsSupported()) {\r\n polyfillURLSearchParams();\r\n }\r\n\r\n var proto = global.URLSearchParams.prototype;\r\n\r\n if (typeof proto.sort !== 'function') {\r\n proto.sort = function() {\r\n var _this = this;\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n if (!_this._entries) {\r\n _this.delete(name);\r\n }\r\n });\r\n items.sort(function(a, b) {\r\n if (a[0] < b[0]) {\r\n return -1;\r\n } else if (a[0] > b[0]) {\r\n return +1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n if (_this._entries) { // force reset because IE keeps keys index\r\n _this._entries = {};\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n this.append(items[i][0], items[i][1]);\r\n }\r\n };\r\n }\r\n\r\n if (typeof proto._fromString !== 'function') {\r\n Object.defineProperty(proto, '_fromString', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function(searchString) {\r\n if (this._entries) {\r\n this._entries = {};\r\n } else {\r\n var keys = [];\r\n this.forEach(function(value, name) {\r\n keys.push(name);\r\n });\r\n for (var i = 0; i < keys.length; i++) {\r\n this.delete(keys[i]);\r\n }\r\n }\r\n\r\n searchString = searchString.replace(/^\\?/, '');\r\n var attributes = searchString.split('&');\r\n var attribute;\r\n for (var i = 0; i < attributes.length; i++) {\r\n attribute = attributes[i].split('=');\r\n this.append(\r\n deserializeParam(attribute[0]),\r\n (attribute.length > 1) ? deserializeParam(attribute[1]) : ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n // HTMLAnchorElement\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n\r\n(function(global) {\r\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\r\n\r\n var checkIfURLIsSupported = function() {\r\n try {\r\n var u = new global.URL('b', 'http://a');\r\n u.pathname = 'c d';\r\n return (u.href === 'http://a/c%20d') && u.searchParams;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var polyfillURL = function() {\r\n var _URL = global.URL;\r\n\r\n var URL = function(url, base) {\r\n if (typeof url !== 'string') url = String(url);\r\n if (base && typeof base !== 'string') base = String(base);\r\n\r\n // Only create another document if the base is different from current location.\r\n var doc = document, baseElement;\r\n if (base && (global.location === void 0 || base !== global.location.href)) {\r\n base = base.toLowerCase();\r\n doc = document.implementation.createHTMLDocument('');\r\n baseElement = doc.createElement('base');\r\n baseElement.href = base;\r\n doc.head.appendChild(baseElement);\r\n try {\r\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\r\n } catch (err) {\r\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\r\n }\r\n }\r\n\r\n var anchorElement = doc.createElement('a');\r\n anchorElement.href = url;\r\n if (baseElement) {\r\n doc.body.appendChild(anchorElement);\r\n anchorElement.href = anchorElement.href; // force href to refresh\r\n }\r\n\r\n var inputElement = doc.createElement('input');\r\n inputElement.type = 'url';\r\n inputElement.value = url;\r\n\r\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || (!inputElement.checkValidity() && !base)) {\r\n throw new TypeError('Invalid URL');\r\n }\r\n\r\n Object.defineProperty(this, '_anchorElement', {\r\n value: anchorElement\r\n });\r\n\r\n\r\n // create a linked searchParams which reflect its changes on URL\r\n var searchParams = new global.URLSearchParams(this.search);\r\n var enableSearchUpdate = true;\r\n var enableSearchParamsUpdate = true;\r\n var _this = this;\r\n ['append', 'delete', 'set'].forEach(function(methodName) {\r\n var method = searchParams[methodName];\r\n searchParams[methodName] = function() {\r\n method.apply(searchParams, arguments);\r\n if (enableSearchUpdate) {\r\n enableSearchParamsUpdate = false;\r\n _this.search = searchParams.toString();\r\n enableSearchParamsUpdate = true;\r\n }\r\n };\r\n });\r\n\r\n Object.defineProperty(this, 'searchParams', {\r\n value: searchParams,\r\n enumerable: true\r\n });\r\n\r\n var search = void 0;\r\n Object.defineProperty(this, '_updateSearchParams', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function() {\r\n if (this.search !== search) {\r\n search = this.search;\r\n if (enableSearchParamsUpdate) {\r\n enableSearchUpdate = false;\r\n this.searchParams._fromString(this.search);\r\n enableSearchUpdate = true;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var proto = URL.prototype;\r\n\r\n var linkURLWithAnchorAttribute = function(attributeName) {\r\n Object.defineProperty(proto, attributeName, {\r\n get: function() {\r\n return this._anchorElement[attributeName];\r\n },\r\n set: function(value) {\r\n this._anchorElement[attributeName] = value;\r\n },\r\n enumerable: true\r\n });\r\n };\r\n\r\n ['hash', 'host', 'hostname', 'port', 'protocol']\r\n .forEach(function(attributeName) {\r\n linkURLWithAnchorAttribute(attributeName);\r\n });\r\n\r\n Object.defineProperty(proto, 'search', {\r\n get: function() {\r\n return this._anchorElement['search'];\r\n },\r\n set: function(value) {\r\n this._anchorElement['search'] = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperties(proto, {\r\n\r\n 'toString': {\r\n get: function() {\r\n var _this = this;\r\n return function() {\r\n return _this.href;\r\n };\r\n }\r\n },\r\n\r\n 'href': {\r\n get: function() {\r\n return this._anchorElement.href.replace(/\\?$/, '');\r\n },\r\n set: function(value) {\r\n this._anchorElement.href = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'pathname': {\r\n get: function() {\r\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\r\n },\r\n set: function(value) {\r\n this._anchorElement.pathname = value;\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'origin': {\r\n get: function() {\r\n // get expected port from protocol\r\n var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];\r\n // add port to origin if, expected port is different than actual port\r\n // and it is not empty f.e http://foo:8080\r\n // 8080 != 80 && 8080 != ''\r\n var addPortToOrigin = this._anchorElement.port != expectedPort &&\r\n this._anchorElement.port !== '';\r\n\r\n return this._anchorElement.protocol +\r\n '//' +\r\n this._anchorElement.hostname +\r\n (addPortToOrigin ? (':' + this._anchorElement.port) : '');\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'password': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'username': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n });\r\n\r\n URL.createObjectURL = function(blob) {\r\n return _URL.createObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n URL.revokeObjectURL = function(url) {\r\n return _URL.revokeObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n global.URL = URL;\r\n\r\n };\r\n\r\n if (!checkIfURLIsSupported()) {\r\n polyfillURL();\r\n }\r\n\r\n if ((global.location !== void 0) && !('origin' in global.location)) {\r\n var getOrigin = function() {\r\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');\r\n };\r\n\r\n try {\r\n Object.defineProperty(global.location, 'origin', {\r\n get: getOrigin,\r\n enumerable: true\r\n });\r\n } catch (e) {\r\n setInterval(function() {\r\n global.location.origin = getOrigin();\r\n }, 100);\r\n }\r\n }\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "Array.prototype.flat||Object.defineProperty(Array.prototype,\"flat\",{configurable:!0,value:function r(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(a,e){return Array.isArray(e)?a.push.apply(a,r.call(e,t-1)):a.push(e),a},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,\"flatMap\",{configurable:!0,value:function(r){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"array-flat-polyfill\"\nimport \"focus-visible\"\nimport \"unfetch/polyfill\"\nimport \"url-polyfill\"\n\nimport {\n EMPTY,\n NEVER,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getOptionalElement,\n requestJSON,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountBackToTop,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantLoading,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget()\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? __search?.index || requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up instant loading, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantLoading({ document$, location$, viewport$ })\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n/* Set up patches */\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, { viewport$, header$, target$ })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.component$ = component$ /* Component observable */\n", "self.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},r.onerror=s,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});\n", "import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n};\r\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ReplaySubject,\n Subject,\n fromEvent\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents are implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted.\n *\n * @returns Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject(1)\n fromEvent(document, \"DOMContentLoaded\", { once: true })\n .subscribe(() => document$.next(document))\n\n /* Return document */\n return document$\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * Note that this function assumes that the element is present. If unsure if an\n * element is existent, use the `getOptionalElement` function instead.\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T {\n const el = getOptionalElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n\n /* Return element */\n return el\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an optional element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getOptionalElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T] | undefined\n\nexport function getOptionalElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getOptionalElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement || undefined\n : undefined\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * Previously, this function used `focus` and `blur` events to determine whether\n * an element is focused, but this doesn't work if there are focusable elements\n * within the elements itself. A better solutions are `focusin` and `focusout`\n * events, which bubble up the tree and allow for more fine-grained control.\n *\n * `debounceTime` is necessary, because when a focus change happens inside an\n * element, the observable would first emit `false` and then `true` again.\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(document.body, \"focusin\"),\n fromEvent(document.body, \"focusout\")\n )\n .pipe(\n debounceTime(1),\n map(() => {\n const active = getActiveElement()\n return typeof active !== \"undefined\"\n ? el.contains(active)\n : false\n }),\n startWith(el === getActiveElement()),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.offsetLeft,\n y: el.offsetTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(window, \"load\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { ElementOffset } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content offset (= scroll offset)\n *\n * @param el - Element\n *\n * @returns Element content offset\n */\nexport function getElementContentOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element content offset\n *\n * @param el - Element\n *\n * @returns Element content offset observable\n */\nexport function watchElementContentOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementContentOffset(el)),\n startWith(getElementContentOffset(el))\n )\n}\n", "/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * Sadly, we can't use the `DOMRect` objects returned by the observer, because\n * we need the emitted values to be consistent with `getElementSize`, which will\n * return the used values (rounded) and not actual values (unrounded). Thus, we\n * use the `offset*` properties. See the linked GitHub issue.\n *\n * @see https://bit.ly/3m0k3he - GitHub issue\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(() => getElementSize(el))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ElementSize } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content size (= scroll width and height)\n *\n * @param el - Element\n *\n * @returns Element content size\n */\nexport function getElementContentSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport {\n getElementContentSize,\n getElementSize,\n watchElementContentOffset\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Intersection observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Intersection observer observable\n *\n * This observable will create an `IntersectionObserver` on first subscription\n * and will automatically terminate it when there are no more subscribers.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new IntersectionObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n }, {\n threshold: 0\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element visibility\n *\n * @param el - Element\n *\n * @returns Element visibility observable\n */\nexport function watchElementVisibility(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ isIntersecting }) => isIntersecting)\n )\n )\n )\n}\n\n/**\n * Watch element boundary\n *\n * This function returns an observable which emits whether the bottom content\n * boundary (= scroll offset) of an element is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element boundary observable\n */\nexport function watchElementBoundary(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementContentOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getElement } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElement(\"[data-md-toggle=drawer]\"),\n search: getElement(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n share\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../element\"\nimport { getToggle } from \"../toggle\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard {\n mode: KeyboardMode /* Keyboard mode */\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n * @param type - Key type\n *\n * @returns Test result\n */\nfunction isSusceptibleToKeyboard(\n el: HTMLElement, type: string\n): boolean {\n switch (el.constructor) {\n\n /* Input elements */\n case HTMLInputElement:\n /* @ts-expect-error - omit unnecessary type cast */\n if (el.type === \"radio\")\n return /^Arrow/.test(type)\n else\n return true\n\n /* Select element and textarea */\n case HTMLSelectElement:\n case HTMLTextAreaElement:\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @returns Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n } as Keyboard)),\n filter(({ mode, type }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active, type)\n }\n return true\n }),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function returns a `URL` object (and not `Location`) to normalize the\n * typings across the application. Furthermore, locations need to be tracked\n * without setting them and `Location` is a singleton which represents the\n * current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new Subject()\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @template T - Element type\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: T, attributes?: Attributes | null, ...children: Child[]\n): HTMLElementTagNameMap[T]\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes)) {\n if (typeof attributes[attr] === \"undefined\")\n continue\n\n /* Set default attribute or boolean */\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else\n el.setAttribute(attr, \"\")\n }\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el as T\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith\n} from \"rxjs\"\n\nimport { getOptionalElement } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @returns Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = h(\"a\", { href: hash })\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @returns Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n shareReplay(1)\n )\n}\n\n/**\n * Watch location target\n *\n * @returns Location target observable\n */\nexport function watchLocationTarget(): Observable {\n return watchLocationHash()\n .pipe(\n map(id => getOptionalElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\")\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n fromEvent,\n fromEventPattern,\n map,\n merge,\n startWith,\n switchMap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * Note that although `MediaQueryList.addListener` is deprecated we have to\n * use it, because it's the only way to ensure proper downward compatibility.\n *\n * @see https://bit.ly/3dUBH2m - GitHub issue\n *\n * @param query - Media query\n *\n * @returns Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next => (\n media.addListener(() => next(media.matches))\n ))\n .pipe(\n startWith(media.matches)\n )\n}\n\n/**\n * Watch print mode\n *\n * @returns Print observable\n */\nexport function watchPrint(): Observable {\n const media = matchMedia(\"print\")\n return merge(\n fromEvent(window, \"beforeprint\").pipe(map(() => true)),\n fromEvent(window, \"afterprint\").pipe(map(() => false))\n )\n .pipe(\n startWith(media.matches)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Toggle an observable with a media observable\n *\n * @template T - Data type\n *\n * @param query$ - Media observable\n * @param factory - Observable factory\n *\n * @returns Toggled observable\n */\nexport function at(\n query$: Observable, factory: () => Observable\n): Observable {\n return query$\n .pipe(\n switchMap(active => active ? factory() : EMPTY)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n from,\n map,\n of,\n shareReplay,\n switchMap,\n throwError\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * If the request fails (e.g. when dispatched from `file://` locations), the\n * observable will complete without emitting a value.\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Response observable\n */\nexport function request(\n url: URL | string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(`${url}`, options))\n .pipe(\n catchError(() => EMPTY),\n switchMap(res => res.status !== 200\n ? throwError(() => new Error(res.statusText))\n : of(res)\n )\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: URL | string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: URL | string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n throwError\n} from \"rxjs\"\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create and load a `script` element\n *\n * This function returns an observable that will emit when the script was\n * successfully loaded, or throw an error if it didn't.\n *\n * @param src - Script URL\n *\n * @returns Script observable\n */\nexport function watchScript(src: string): Observable {\n const script = h(\"script\", { src })\n return defer(() => {\n document.head.appendChild(script)\n return merge(\n fromEvent(script, \"load\"),\n fromEvent(script, \"error\")\n .pipe(\n switchMap(() => (\n throwError(() => new ReferenceError(`Invalid script: ${src}`))\n ))\n )\n )\n .pipe(\n map(() => undefined),\n finalize(() => document.head.removeChild(script)),\n take(1)\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @returns Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, scrollX),\n y: Math.max(0, scrollY)\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @returns Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @returns Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @returns Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n map,\n shareReplay\n} from \"rxjs\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @returns Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilKeyChanged,\n map\n} from \"rxjs\"\n\nimport { Header } from \"~/components\"\n\nimport { getElementOffset } from \"../../element\"\nimport { Viewport } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
/* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @returns Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map(() => getElementOffset(el))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n fromEvent,\n map,\n share,\n switchMap,\n tap,\n throttle\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that sends all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @returns Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEvent(worker, \"message\")\n .pipe(\n map(({ data }) => data as T)\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMap(() => rx$),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"content.code.annotate\" /* Code annotations */\n | \"content.tabs.link\" /* Link content tabs */\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.indexes\" /* Section pages */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Section navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"navigation.tabs.sticky\" /* Tabs navigation (sticky) */\n | \"navigation.top\" /* Back-to-top button */\n | \"navigation.tracking\" /* Anchor tracking */\n | \"search.highlight\" /* Search highlighting */\n | \"search.share\" /* Search sharing */\n | \"search.suggest\" /* Search suggestions */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n | \"select.version.title\" /* Version selector */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Versioning\n */\nexport interface Versioning {\n provider: \"mike\" /* Version provider */\n default?: string /* Default version */\n}\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n version?: Versioning /* Versioning */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElement(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = `${new URL(config.base, getLocation())}`\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Positional value, if any\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type\n */\nexport type ComponentType =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"content\" /* Content */\n | \"dialog\" /* Dialog */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"header-topic\" /* Header topic */\n | \"main\" /* Main area */\n | \"outdated\" /* Version warning */\n | \"palette\" /* Color palette */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-result\" /* Search results */\n | \"search-share\" /* Search sharing */\n | \"search-suggest\" /* Search suggestions */\n | \"sidebar\" /* Sidebar */\n | \"skip\" /* Skip link */\n | \"source\" /* Repository information */\n | \"tabs\" /* Navigation tabs */\n | \"toc\" /* Table of contents */\n | \"top\" /* Back-to-top button */\n\n/**\n * Component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type map\n */\ninterface ComponentTypeMap {\n \"announce\": HTMLElement /* Announcement bar */\n \"container\": HTMLElement /* Container */\n \"content\": HTMLElement /* Content */\n \"dialog\": HTMLElement /* Dialog */\n \"header\": HTMLElement /* Header */\n \"header-title\": HTMLElement /* Header title */\n \"header-topic\": HTMLElement /* Header topic */\n \"main\": HTMLElement /* Main area */\n \"outdated\": HTMLElement /* Version warning */\n \"palette\": HTMLElement /* Color palette */\n \"search\": HTMLElement /* Search */\n \"search-query\": HTMLInputElement /* Search input */\n \"search-result\": HTMLElement /* Search results */\n \"search-share\": HTMLAnchorElement /* Search sharing */\n \"search-suggest\": HTMLElement /* Search suggestions */\n \"sidebar\": HTMLElement /* Sidebar */\n \"skip\": HTMLAnchorElement /* Skip link */\n \"source\": HTMLAnchorElement /* Repository information */\n \"tabs\": HTMLElement /* Navigation tabs */\n \"toc\": HTMLElement /* Table of contents */\n \"top\": HTMLAnchorElement /* Back-to-top button */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T] {\n return getElement(`[data-md-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T][] {\n return getElements(`[data-md-component=${type}]`, node)\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n mergeWith,\n switchMap,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElementContentSize,\n watchElementSize,\n watchElementVisibility\n} from \"~/browser\"\nimport { renderClipboardButton } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotationList\n} from \"../../annotation\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Code block\n */\nexport interface CodeBlock {\n scrollable: boolean /* Code block overflows */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Global sequence number for Clipboard.js integration\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find candidate list element directly following a code block\n *\n * @param el - Code block element\n *\n * @returns List element or nothing\n */\nfunction findCandidateList(el: HTMLElement): HTMLElement | undefined {\n if (el.nextElementSibling) {\n const sibling = el.nextElementSibling as HTMLElement\n if (sibling.tagName === \"OL\")\n return sibling\n\n /* Skip empty paragraphs - see https://bit.ly/3r4ZJ2O */\n else if (sibling.tagName === \"P\" && !sibling.children.length)\n return findCandidateList(sibling)\n }\n\n /* Everything else */\n return undefined\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch code block\n *\n * This function monitors size changes of the viewport, as well as switches of\n * content tabs with embedded code blocks, as both may trigger overflow.\n *\n * @param el - Code block element\n *\n * @returns Code block observable\n */\nexport function watchCodeBlock(\n el: HTMLElement\n): Observable {\n return watchElementSize(el)\n .pipe(\n map(({ width }) => {\n const content = getElementContentSize(el)\n return {\n scrollable: content.width > width\n }\n }),\n distinctUntilKeyChanged(\"scrollable\")\n )\n}\n\n/**\n * Mount code block\n *\n * This function ensures that an overflowing code block is focusable through\n * keyboard, so it can be scrolled without a mouse to improve on accessibility.\n * Furthermore, if code annotations are enabled, they are mounted if and only\n * if the code block is currently visible, e.g., not in a hidden content tab.\n *\n * @param el - Code block element\n * @param options - Options\n *\n * @returns Code block and annotation component observable\n */\nexport function mountCodeBlock(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const { matches: hover } = matchMedia(\"(hover)\")\n\n /* Defer mounting of code block - see https://bit.ly/3vHVoVD */\n const factory$ = defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ scrollable }) => {\n if (scrollable && hover)\n el.setAttribute(\"tabindex\", \"0\")\n else\n el.removeAttribute(\"tabindex\")\n })\n\n /* Render button for Clipboard.js integration */\n if (ClipboardJS.isSupported()) {\n const parent = el.closest(\"pre\")!\n parent.id = `__code_${++sequence}`\n parent.insertBefore(\n renderClipboardButton(parent.id),\n el\n )\n }\n\n /* Handle code annotations */\n const container = el.closest(\".highlight\")\n if (container instanceof HTMLElement) {\n const list = findCandidateList(container)\n\n /* Mount code annotations, if enabled */\n if (typeof list !== \"undefined\" && (\n container.classList.contains(\"annotate\") ||\n feature(\"content.code.annotate\")\n )) {\n const annotations$ = mountAnnotationList(list, el, options)\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n mergeWith(\n watchElementSize(container)\n .pipe(\n takeUntil(push$.pipe(takeLast(1))),\n map(({ width, height }) => width && height),\n distinctUntilChanged(),\n switchMap(active => active ? annotations$ : EMPTY)\n )\n )\n )\n }\n }\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n\n /* Mount code block on first sight */\n return watchElementVisibility(el)\n .pipe(\n filter(visible => visible),\n take(1),\n switchMap(() => factory$)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an empty annotation\n *\n * @param id - Annotation identifier\n *\n * @returns Element\n */\nexport function renderAnnotation(id: number): HTMLElement {\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @returns Element\n */\nexport function renderClipboardButton(id: string): HTMLElement {\n return (\n code`}\n >\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ComponentChild } from \"preact\"\n\nimport { feature, translation } from \"~/_\"\nimport {\n SearchDocument,\n SearchMetadata,\n SearchResultItem\n} from \"~/integrations/search\"\nimport { h, truncate } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Render flag\n */\nconst enum Flag {\n TEASER = 1, /* Render teaser */\n PARENT = 2 /* Render as parent */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper function\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search document\n *\n * @param document - Search document\n * @param flag - Render flags\n *\n * @returns Element\n */\nfunction renderSearchDocument(\n document: SearchDocument & SearchMetadata, flag: Flag\n): HTMLElement {\n const parent = flag & Flag.PARENT\n const teaser = flag & Flag.TEASER\n\n /* Render missing query terms */\n const missing = Object.keys(document.terms)\n .filter(key => !document.terms[key])\n .reduce((list, key) => [\n ...list, {key}, \" \"\n ], [])\n .slice(0, -1)\n\n /* Assemble query string for highlighting */\n const url = new URL(document.location)\n if (feature(\"search.highlight\"))\n url.searchParams.set(\"h\", Object.entries(document.terms)\n .filter(([, match]) => match)\n .reduce((highlight, [value]) => `${highlight} ${value}`.trim(), \"\")\n )\n\n /* Render article or section, depending on flags */\n return (\n \n \n {parent > 0 &&
}\n

{document.title}

\n {teaser > 0 && document.text.length > 0 &&\n

\n {truncate(document.text, 320)}\n

\n }\n {document.tags && document.tags.map(tag => (\n {tag}\n ))}\n {teaser > 0 && missing.length > 0 &&\n

\n {translation(\"search.result.term.missing\")}: {...missing}\n

\n }\n \n
\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @returns Element\n */\nexport function renderSearchResultItem(\n result: SearchResultItem\n): HTMLElement {\n const threshold = result[0].score\n const docs = [...result]\n\n /* Find and extract parent article */\n const parent = docs.findIndex(doc => !doc.location.includes(\"#\"))\n const [article] = docs.splice(parent, 1)\n\n /* Determine last index above threshold */\n let index = docs.findIndex(doc => doc.score < threshold)\n if (index === -1)\n index = docs.length\n\n /* Partition sections */\n const best = docs.slice(0, index)\n const more = docs.slice(index)\n\n /* Render children */\n const children = [\n renderSearchDocument(article, Flag.PARENT | +(!parent && index === 0)),\n ...best.map(section => renderSearchDocument(section, Flag.TEASER)),\n ...more.length ? [\n
\n \n {more.length > 0 && more.length === 1\n ? translation(\"search.result.more.one\")\n : translation(\"search.result.more.other\", more.length)\n }\n \n {...more.map(section => renderSearchDocument(section, Flag.TEASER))}\n
\n ] : []\n ]\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"~/components\"\nimport { h, round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render repository facts\n *\n * @param facts - Repository facts\n *\n * @returns Element\n */\nexport function renderSourceFacts(facts: SourceFacts): HTMLElement {\n return (\n
      \n {Object.entries(facts).map(([key, value]) => (\n
    • \n {typeof value === \"number\" ? round(value) : value}\n
    • \n ))}\n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabbed control type\n */\ntype TabbedControlType =\n | \"prev\"\n | \"next\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render control for content tabs\n *\n * @param type - Control type\n *\n * @returns Element\n */\nexport function renderTabbedControl(\n type: TabbedControlType\n): HTMLElement {\n const classes = `tabbed-control tabbed-control--${type}`\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @returns Element\n */\nexport function renderTable(table: HTMLElement): HTMLElement {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { configuration, translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Version\n */\nexport interface Version {\n version: string /* Version identifier */\n title: string /* Version title */\n aliases: string[] /* Version aliases */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version\n *\n * @param version - Version\n *\n * @returns Element\n */\nfunction renderVersion(version: Version): HTMLElement {\n const config = configuration()\n\n /* Ensure trailing slash, see https://bit.ly/3rL5u3f */\n const url = new URL(`../${version.version}/`, config.base)\n return (\n
  • \n \n {version.title}\n \n
  • \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version selector\n *\n * @param versions - Versions\n * @param active - Active version\n *\n * @returns Element\n */\nexport function renderVersionSelector(\n versions: Version[], active: Version\n): HTMLElement {\n return (\n
    \n \n {active.title}\n \n
      \n {versions.map(renderVersion)}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n animationFrameScheduler,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n switchMap,\n take,\n takeLast,\n takeUntil,\n tap,\n throttleTime\n} from \"rxjs\"\n\nimport {\n ElementOffset,\n getElement,\n getElementSize,\n watchElementContentOffset,\n watchElementFocus,\n watchElementOffset,\n watchElementVisibility\n} from \"~/browser\"\n\nimport { Component } from \"../../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Annotation\n */\nexport interface Annotation {\n active: boolean /* Annotation is active */\n offset: ElementOffset /* Annotation offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation observable\n */\nexport function watchAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable {\n const offset$ = defer(() => combineLatest([\n watchElementOffset(el),\n watchElementContentOffset(container)\n ]))\n .pipe(\n map(([{ x, y }, scroll]) => {\n const { width } = getElementSize(el)\n return ({\n x: x - scroll.x + width / 2,\n y: y - scroll.y\n })\n })\n )\n\n /* Actively watch annotation on focus */\n return watchElementFocus(el)\n .pipe(\n switchMap(active => offset$\n .pipe(\n map(offset => ({ active, offset })),\n take(+!active || Infinity)\n )\n )\n )\n}\n\n/**\n * Mount annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ offset }) {\n el.style.setProperty(\"--md-tooltip-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-tooltip-y\", `${offset.y}px`)\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-x\")\n el.style.removeProperty(\"--md-tooltip-y\")\n }\n })\n\n /* Start animation only when annotation is visible */\n const done$ = push$.pipe(takeLast(1))\n watchElementVisibility(el)\n .pipe(\n takeUntil(done$)\n )\n .subscribe(visible => {\n el.toggleAttribute(\"data-md-visible\", visible)\n })\n\n /* Track relative origin of tooltip */\n push$\n .pipe(\n throttleTime(500, animationFrameScheduler),\n map(() => container.getBoundingClientRect()),\n map(({ x }) => x)\n )\n .subscribe({\n\n /* Handle emission */\n next(origin) {\n if (origin)\n el.style.setProperty(\"--md-tooltip-0\", `${-origin}px`)\n else\n el.style.removeProperty(\"--md-tooltip-0\")\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-0\")\n }\n })\n\n /* Close open annotation on click */\n const index = getElement(\":scope > :last-child\", el)\n const blur$ = fromEvent(index, \"mousedown\", { once: true })\n push$\n .pipe(\n switchMap(({ active }) => active ? blur$ : EMPTY),\n tap(ev => ev.preventDefault())\n )\n .subscribe(() => el.blur())\n\n /* Create and return component */\n return watchAnnotation(el, container)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n merge,\n share,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport {\n getElement,\n getElements,\n getOptionalElement\n} from \"~/browser\"\nimport { renderAnnotation } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotation\n} from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find all annotation markers in the given code block\n *\n * @param container - Containing element\n *\n * @returns Annotation markers\n */\nfunction findAnnotationMarkers(container: HTMLElement): Text[] {\n const markers: Text[] = []\n for (const comment of getElements(\".c, .c1, .cm\", container)) {\n let match: RegExpExecArray | null\n\n /* Split text at marker and add to list */\n let text = comment.firstChild as Text\n if (text instanceof Text)\n while ((match = /\\((\\d+)\\)/.exec(text.textContent!))) {\n const marker = text.splitText(match.index)\n text = marker.splitText(match[0].length)\n markers.push(marker)\n }\n }\n return markers\n}\n\n/**\n * Swap the child nodes of two elements\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction swap(source: HTMLElement, target: HTMLElement): void {\n target.append(...Array.from(source.childNodes))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount annotation list\n *\n * This function analyzes the containing code block and checks for markers\n * referring to elements in the given annotation list. If no markers are found,\n * the list is left untouched. Otherwise, list elements are rendered as\n * annotations inside the code block.\n *\n * @param el - Annotation list element\n * @param container - Containing element\n * @param options - Options\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotationList(\n el: HTMLElement, container: HTMLElement, { print$ }: MountOptions\n): Observable> {\n\n /* Find and replace all markers with empty annotations */\n const annotations = new Map()\n for (const marker of findAnnotationMarkers(container)) {\n const [, id] = marker.textContent!.match(/\\((\\d+)\\)/)!\n if (getOptionalElement(`li:nth-child(${id})`, el)) {\n annotations.set(+id, renderAnnotation(+id))\n marker.replaceWith(annotations.get(+id)!)\n }\n }\n\n /* Keep list if there are no annotations to render */\n if (annotations.size === 0)\n return EMPTY\n\n /* Create and return component */\n return defer(() => {\n const done$ = new Subject()\n\n /* Handle print mode - see https://bit.ly/3rgPdpt */\n print$\n .pipe(\n takeUntil(done$.pipe(takeLast(1)))\n )\n .subscribe(active => {\n el.hidden = !active\n\n /* Show annotations in code block or list (print) */\n for (const [id, annotation] of annotations) {\n const inner = getElement(\".md-typeset\", annotation)\n const child = getElement(`li:nth-child(${id})`, el)\n if (!active)\n swap(child, inner)\n else\n swap(inner, child)\n }\n })\n\n /* Create and return component */\n return merge(...[...annotations]\n .map(([, annotation]) => (\n mountAnnotation(annotation, container)\n ))\n )\n .pipe(\n finalize(() => done$.complete()),\n share()\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { watchScript } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../../_\"\n\nimport themeCSS from \"./index.css\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid diagram\n */\nexport interface Mermaid {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid instance observable\n */\nlet mermaid$: Observable\n\n/**\n * Global sequence number for diagrams\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch Mermaid script\n *\n * @returns Mermaid scripts observable\n */\nfunction fetchScripts(): Observable {\n return typeof mermaid === \"undefined\" || mermaid instanceof Element\n ? watchScript(\"https://unpkg.com/mermaid@9.0.1/dist/mermaid.min.js\")\n : of(undefined)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount Mermaid diagram\n *\n * @param el - Code block element\n *\n * @returns Mermaid diagram component observable\n */\nexport function mountMermaid(\n el: HTMLElement\n): Observable> {\n el.classList.remove(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n mermaid$ ||= fetchScripts()\n .pipe(\n tap(() => mermaid.initialize({\n startOnLoad: false,\n themeCSS\n })),\n map(() => undefined),\n shareReplay(1)\n )\n\n /* Render diagram */\n mermaid$.subscribe(() => {\n el.classList.add(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n const id = `__mermaid_${sequence++}`\n const host = h(\"div\", { class: \"mermaid\" })\n mermaid.mermaidAPI.render(id, el.textContent, (svg: string) => {\n\n /* Create a shadow root and inject diagram */\n const shadow = host.attachShadow({ mode: \"closed\" })\n shadow.innerHTML = svg\n\n /* Replace code block with diagram */\n el.replaceWith(host)\n })\n })\n\n /* Create and return component */\n return mermaid$\n .pipe(\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Details\n */\nexport interface Details {\n action: \"open\" | \"close\" /* Details state */\n reveal?: boolean /* Details is revealed */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch details\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details observable\n */\nexport function watchDetails(\n el: HTMLDetailsElement, { target$, print$ }: WatchOptions\n): Observable
    {\n let open = true\n return merge(\n\n /* Open and focus details on location target */\n target$\n .pipe(\n map(target => target.closest(\"details:not([open])\")!),\n filter(details => el === details),\n map(() => ({\n action: \"open\", reveal: true\n }) as Details)\n ),\n\n /* Open details on print and close afterwards */\n print$\n .pipe(\n filter(active => active || !open),\n tap(() => open = el.open),\n map(active => ({\n action: active ? \"open\" : \"close\"\n }) as Details)\n )\n )\n}\n\n/**\n * Mount details\n *\n * This function ensures that `details` tags are opened on anchor jumps and\n * prior to printing, so the whole content of the page is visible.\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details component observable\n */\nexport function mountDetails(\n el: HTMLDetailsElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n push$.subscribe(({ action, reveal }) => {\n if (action === \"open\")\n el.setAttribute(\"open\", \"\")\n else\n el.removeAttribute(\"open\")\n if (reveal)\n el.scrollIntoView()\n })\n\n /* Create and return component */\n return watchDetails(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, of } from \"rxjs\"\n\nimport { renderTable } from \"~/templates\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Data table\n */\nexport interface DataTable {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Sentinel for replacement\n */\nconst sentinel = h(\"table\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount data table\n *\n * This function wraps a data table in another scrollable container, so it can\n * be smoothly scrolled on smaller screen sizes and won't break the layout.\n *\n * @param el - Data table element\n *\n * @returns Data table component observable\n */\nexport function mountDataTable(\n el: HTMLElement\n): Observable> {\n el.replaceWith(sentinel)\n sentinel.replaceWith(renderTable(el))\n\n /* Create and return component */\n return of({ ref: el })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n asyncScheduler,\n auditTime,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n skip,\n startWith,\n subscribeOn,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElement,\n getElementContentOffset,\n getElementContentSize,\n getElementOffset,\n getElementSize,\n getElements,\n watchElementContentOffset,\n watchElementSize\n} from \"~/browser\"\nimport { renderTabbedControl } from \"~/templates\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content tabs\n */\nexport interface ContentTabs {\n active: HTMLLabelElement /* Active tab label */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs observable\n */\nexport function watchContentTabs(\n el: HTMLElement\n): Observable {\n const inputs = getElements(\":scope > input\", el)\n const initial = inputs.find(input => input.checked) || inputs[0]\n return merge(...inputs.map(input => fromEvent(input, \"change\")\n .pipe(\n map(() => getElement(`label[for=\"${input.id}\"]`))\n )\n ))\n .pipe(\n startWith(getElement(`label[for=\"${initial.id}\"]`)),\n map(active => ({ active }))\n )\n}\n\n/**\n * Mount content tabs\n *\n * This function scrolls the active tab into view. While this functionality is\n * provided by browsers as part of `scrollInfoView`, browsers will always also\n * scroll the vertical axis, which we do not want. Thus, we decided to provide\n * this functionality ourselves.\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs component observable\n */\nexport function mountContentTabs(\n el: HTMLElement\n): Observable> {\n\n /* Render content tab previous button for pagination */\n const prev = renderTabbedControl(\"prev\")\n el.append(prev)\n\n /* Render content tab next button for pagination */\n const next = renderTabbedControl(\"next\")\n el.append(next)\n\n /* Mount component on subscription */\n const container = getElement(\".tabbed-labels\", el)\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n combineLatest([push$, watchElementSize(el)])\n .pipe(\n auditTime(1, animationFrameScheduler),\n takeUntil(done$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ active }, size]) {\n const offset = getElementOffset(active)\n const { width } = getElementSize(active)\n\n /* Set tab indicator offset and width */\n el.style.setProperty(\"--md-indicator-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-indicator-width\", `${width}px`)\n\n /* Scroll container to active content tab */\n const content = getElementContentOffset(container)\n if (\n offset.x < content.x ||\n offset.x + width > content.x + size.width\n )\n container.scrollTo({\n left: Math.max(0, offset.x - 16),\n behavior: \"smooth\"\n })\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-indicator-x\")\n el.style.removeProperty(\"--md-indicator-width\")\n }\n })\n\n /* Hide content tab buttons on borders */\n combineLatest([\n watchElementContentOffset(container),\n watchElementSize(container)\n ])\n .pipe(\n takeUntil(done$)\n )\n .subscribe(([offset, size]) => {\n const content = getElementContentSize(container)\n prev.hidden = offset.x < 16\n next.hidden = offset.x > content.width - size.width - 16\n })\n\n /* Paginate content tab container on click */\n merge(\n fromEvent(prev, \"click\").pipe(map(() => -1)),\n fromEvent(next, \"click\").pipe(map(() => +1))\n )\n .pipe(\n takeUntil(done$)\n )\n .subscribe(direction => {\n const { width } = getElementSize(container)\n container.scrollBy({\n left: width * direction,\n behavior: \"smooth\"\n })\n })\n\n /* Set up linking of content tabs, if enabled */\n if (feature(\"content.tabs.link\"))\n push$.pipe(skip(1))\n .subscribe(({ active }) => {\n const tab = active.innerText.trim()\n for (const set of getElements(\"[data-tabs]\"))\n for (const input of getElements(\n \":scope > input\", set\n )) {\n const label = getElement(`label[for=\"${input.id}\"]`)\n if (label.innerText.trim() === tab) {\n input.click()\n break\n }\n }\n\n /* Persist active tabs in local storage */\n const tabs = __md_get(\"__tabs\") || []\n __md_set(\"__tabs\", [...new Set([tab, ...tabs])])\n })\n\n /* Create and return component */\n return watchContentTabs(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n .pipe(\n subscribeOn(asyncScheduler)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Annotation } from \"../annotation\"\nimport {\n CodeBlock,\n Mermaid,\n mountCodeBlock,\n mountMermaid\n} from \"../code\"\nimport {\n Details,\n mountDetails\n} from \"../details\"\nimport {\n DataTable,\n mountDataTable\n} from \"../table\"\nimport {\n ContentTabs,\n mountContentTabs\n} from \"../tabs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content\n */\nexport type Content =\n | Annotation\n | ContentTabs\n | CodeBlock\n | Mermaid\n | DataTable\n | Details\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount content\n *\n * This function mounts all components that are found in the content of the\n * actual article, including code blocks, data tables and details.\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Content component observable\n */\nexport function mountContent(\n el: HTMLElement, { target$, print$ }: MountOptions\n): Observable> {\n return merge(\n\n /* Code blocks */\n ...getElements(\"pre:not(.mermaid) > code\", el)\n .map(child => mountCodeBlock(child, { print$ })),\n\n /* Mermaid diagrams */\n ...getElements(\"pre.mermaid\", el)\n .map(child => mountMermaid(child)),\n\n /* Data tables */\n ...getElements(\"table:not([class])\", el)\n .map(child => mountDataTable(child)),\n\n /* Details */\n ...getElements(\"details\", el)\n .map(child => mountDetails(child, { target$, print$ })),\n\n /* Content tabs */\n ...getElements(\"[data-tabs]\", el)\n .map(child => mountContentTabs(child))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n delay,\n finalize,\n map,\n merge,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Dialog\n */\nexport interface Dialog {\n message: string /* Dialog message */\n active: boolean /* Dialog is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n alert$: Subject /* Alert subject */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch dialog\n *\n * @param _el - Dialog element\n * @param options - Options\n *\n * @returns Dialog observable\n */\nexport function watchDialog(\n _el: HTMLElement, { alert$ }: WatchOptions\n): Observable {\n return alert$\n .pipe(\n switchMap(message => merge(\n of(true),\n of(false).pipe(delay(2000))\n )\n .pipe(\n map(active => ({ message, active }))\n )\n )\n )\n}\n\n/**\n * Mount dialog\n *\n * This function reveals the dialog in the right corner when a new alert is\n * emitted through the subject that is passed as part of the options.\n *\n * @param el - Dialog element\n * @param options - Options\n *\n * @returns Dialog component observable\n */\nexport function mountDialog(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const inner = getElement(\".md-typeset\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ message, active }) => {\n el.classList.toggle(\"md-dialog--active\", active)\n inner.textContent = message\n })\n\n /* Create and return component */\n return watchDialog(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n combineLatestWith,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n of,\n shareReplay,\n startWith,\n switchMap,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchToggle\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Main } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n height: number /* Header visible height */\n hidden: boolean /* Header is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute whether the header is hidden\n *\n * If the user scrolls past a certain threshold, the header can be hidden when\n * scrolling down, and shown when scrolling up.\n *\n * @param options - Options\n *\n * @returns Toggle observable\n */\nfunction isHidden({ viewport$ }: WatchOptions): Observable {\n if (!feature(\"header.autohide\"))\n return of(false)\n\n /* Compute direction and turning point */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => [a < b, b] as const),\n distinctUntilKeyChanged(0)\n )\n\n /* Compute whether header should be hidden */\n const hidden$ = combineLatest([viewport$, direction$])\n .pipe(\n filter(([{ offset }, [, y]]) => Math.abs(y - offset.y) > 100),\n map(([, [direction]]) => direction),\n distinctUntilChanged()\n )\n\n /* Compute threshold for hiding */\n const search$ = watchToggle(\"search\")\n return combineLatest([viewport$, search$])\n .pipe(\n map(([{ offset }, search]) => offset.y > 400 && !search),\n distinctUntilChanged(),\n switchMap(active => active ? hidden$ : of(false)),\n startWith(false)\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header observable\n */\nexport function watchHeader(\n el: HTMLElement, options: WatchOptions\n): Observable
    {\n return defer(() => combineLatest([\n watchElementSize(el),\n isHidden(options)\n ]))\n .pipe(\n map(([{ height }, hidden]) => ({\n height,\n hidden\n })),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.hidden === b.hidden\n )),\n shareReplay(1)\n )\n}\n\n/**\n * Mount header\n *\n * This function manages the different states of the header, i.e. whether it's\n * hidden or rendered with a shadow. This depends heavily on the main area.\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header component observable\n */\nexport function mountHeader(\n el: HTMLElement, { header$, main$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n const done$ = push$.pipe(takeLast(1))\n push$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n combineLatestWith(header$)\n )\n .subscribe(([{ active }, { hidden }]) => {\n el.classList.toggle(\"md-header--shadow\", active && !hidden)\n el.hidden = hidden\n })\n\n /* Link to main area */\n main$.subscribe(push$)\n\n /* Create and return component */\n return header$\n .pipe(\n takeUntil(done$),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElementSize,\n getOptionalElement,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Header } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface HeaderTitle {\n active: boolean /* Header title is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header title\n *\n * @param el - Heading element\n * @param options - Options\n *\n * @returns Header title observable\n */\nexport function watchHeaderTitle(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchViewportAt(el, { viewport$, header$ })\n .pipe(\n map(({ offset: { y } }) => {\n const { height } = getElementSize(el)\n return {\n active: y >= height\n }\n }),\n distinctUntilKeyChanged(\"active\")\n )\n}\n\n/**\n * Mount header title\n *\n * This function swaps the header title from the site title to the title of the\n * current page when the user scrolls past the first headline.\n *\n * @param el - Header title element\n * @param options - Options\n *\n * @returns Header title component observable\n */\nexport function mountHeaderTitle(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ active }) => {\n el.classList.toggle(\"md-header__title--active\", active)\n })\n\n /* Obtain headline, if any */\n const heading = getOptionalElement(\"article h1\")\n if (typeof heading === \"undefined\")\n return EMPTY\n\n /* Create and return component */\n return watchHeaderTitle(heading, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchElementSize\n} from \"~/browser\"\n\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Main area is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @returns Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(({ height }) => height),\n distinctUntilChanged()\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n })),\n distinctUntilKeyChanged(\"bottom\")\n )\n )\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged((a, b) => (\n a.offset === b.offset &&\n a.height === b.height &&\n a.active === b.active\n ))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n defer,\n finalize,\n fromEvent,\n map,\n mergeMap,\n observeOn,\n of,\n shareReplay,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Palette colors\n */\nexport interface PaletteColor {\n scheme?: string /* Color scheme */\n primary?: string /* Primary color */\n accent?: string /* Accent color */\n}\n\n/**\n * Palette\n */\nexport interface Palette {\n index: number /* Palette index */\n color: PaletteColor /* Palette colors */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch color palette\n *\n * @param inputs - Color palette element\n *\n * @returns Color palette observable\n */\nexport function watchPalette(\n inputs: HTMLInputElement[]\n): Observable {\n const current = __md_get(\"__palette\") || {\n index: inputs.findIndex(input => matchMedia(\n input.getAttribute(\"data-md-color-media\")!\n ).matches)\n }\n\n /* Emit changes in color palette */\n return of(...inputs)\n .pipe(\n mergeMap(input => fromEvent(input, \"change\")\n .pipe(\n map(() => input)\n )\n ),\n startWith(inputs[Math.max(0, current.index)]),\n map(input => ({\n index: inputs.indexOf(input),\n color: {\n scheme: input.getAttribute(\"data-md-color-scheme\"),\n primary: input.getAttribute(\"data-md-color-primary\"),\n accent: input.getAttribute(\"data-md-color-accent\")\n }\n } as Palette)),\n shareReplay(1)\n )\n}\n\n/**\n * Mount color palette\n *\n * @param el - Color palette element\n *\n * @returns Color palette component observable\n */\nexport function mountPalette(\n el: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(palette => {\n document.body.setAttribute(\"data-md-color-switching\", \"\")\n\n /* Set color palette */\n for (const [key, value] of Object.entries(palette.color))\n document.body.setAttribute(`data-md-color-${key}`, value)\n\n /* Toggle visibility */\n for (let index = 0; index < inputs.length; index++) {\n const label = inputs[index].nextElementSibling\n if (label instanceof HTMLElement)\n label.hidden = palette.index !== index\n }\n\n /* Persist preference in local storage */\n __md_set(\"__palette\", palette)\n })\n\n /* Revert transition durations after color switch */\n push$.pipe(observeOn(asyncScheduler))\n .subscribe(() => {\n document.body.removeAttribute(\"data-md-color-switching\")\n })\n\n /* Create and return component */\n const inputs = getElements(\"input\", el)\n return watchPalette(inputs)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n Observable,\n Subject,\n map,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Extract text to copy\n *\n * @param el - HTML element\n *\n * @returns Extracted text\n */\nfunction extract(el: HTMLElement): string {\n el.setAttribute(\"data-md-copying\", \"\")\n const text = el.innerText\n el.removeAttribute(\"data-md-copying\")\n return text\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up Clipboard.js integration\n *\n * @param options - Options\n */\nexport function setupClipboardJS(\n { alert$ }: SetupOptions\n): void {\n if (ClipboardJS.isSupported()) {\n new Observable(subscriber => {\n new ClipboardJS(\"[data-clipboard-target], [data-clipboard-text]\", {\n text: el => (\n el.getAttribute(\"data-clipboard-text\")! ||\n extract(getElement(\n el.getAttribute(\"data-clipboard-target\")!\n ))\n )\n })\n .on(\"success\", ev => subscriber.next(ev))\n })\n .pipe(\n tap(ev => {\n const trigger = ev.trigger as HTMLElement\n trigger.focus()\n }),\n map(() => translation(\"clipboard.copied\"))\n )\n .subscribe(alert$)\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n of,\n tap\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport { getElements, requestXML } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sitemap, i.e. a list of URLs\n */\nexport type Sitemap = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Preprocess a list of URLs\n *\n * This function replaces the `site_url` in the sitemap with the actual base\n * URL, to allow instant loading to work in occasions like Netlify previews.\n *\n * @param urls - URLs\n *\n * @returns URL path parts\n */\nfunction preprocess(urls: Sitemap): Sitemap {\n if (urls.length < 2)\n return [\"\"]\n\n /* Take the first two URLs and remove everything after the last slash */\n const [root, next] = [...urls]\n .sort((a, b) => a.length - b.length)\n .map(url => url.replace(/[^/]+$/, \"\"))\n\n /* Compute common prefix */\n let index = 0\n if (root === next)\n index = root.length\n else\n while (root.charCodeAt(index) === next.charCodeAt(index))\n index++\n\n /* Remove common prefix and return in original order */\n return urls.map(url => url.replace(root.slice(0, index), \"\"))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the sitemap for the given base URL\n *\n * @param base - Base URL\n *\n * @returns Sitemap observable\n */\nexport function fetchSitemap(base?: URL): Observable {\n const cached = __md_get(\"__sitemap\", sessionStorage, base)\n if (cached) {\n return of(cached)\n } else {\n const config = configuration()\n return requestXML(new URL(\"sitemap.xml\", base || config.base))\n .pipe(\n map(sitemap => preprocess(getElements(\"loc\", sitemap)\n .map(node => node.textContent!)\n )),\n catchError(() => EMPTY), // @todo refactor instant loading\n defaultIfEmpty([]),\n tap(sitemap => __md_set(\"__sitemap\", sitemap, sessionStorage, base))\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n bufferCount,\n catchError,\n concatMap,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n sample,\n share,\n skip,\n skipUntil,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"~/_\"\nimport {\n Viewport,\n ViewportOffset,\n getElements,\n getOptionalElement,\n request,\n setLocation,\n setLocationHash\n} from \"~/browser\"\nimport { getComponentElement } from \"~/components\"\nimport { h } from \"~/utilities\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\nexport interface HistoryState {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, location$, viewport$ }: SetupOptions\n): void {\n const config = configuration()\n if (location.protocol === \"file:\")\n return\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n }\n\n /* Hack: ensure absolute favicon link to omit 404s when switching */\n const favicon = getOptionalElement(\"link[rel=icon]\")\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href\n\n /* Intercept internal navigation */\n const push$ = fetchSitemap()\n .pipe(\n map(paths => paths.map(path => `${new URL(path, config.base)}`)),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n switchMap(ev => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target) {\n const url = new URL(el.href)\n\n /* Canonicalize URL */\n url.search = \"\"\n url.hash = \"\"\n\n /* Check if URL should be intercepted */\n if (\n url.pathname !== location.pathname &&\n urls.includes(url.toString())\n ) {\n ev.preventDefault()\n return of({\n url: new URL(el.href)\n })\n }\n }\n }\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Intercept history back and forward */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((a, b) => a.url.href === b.url.href),\n map(({ url }) => url)\n )\n .subscribe(location$)\n\n /* Fetch document via `XMLHTTPRequest` */\n const response$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n switchMap(url => request(url.href)\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Set new location via `history.pushState` */\n push$\n .pipe(\n sample(response$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", `${url}`)\n })\n\n /* Parse and emit fetched document */\n const dom = new DOMParser()\n response$\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Replace meta tags and components */\n document$\n .pipe(\n skip(1)\n )\n .subscribe(replacement => {\n for (const selector of [\n\n /* Meta tags */\n \"title\",\n \"link[rel=canonical]\",\n \"meta[name=author]\",\n \"meta[name=description]\",\n\n /* Components */\n \"[data-md-component=announce]\",\n \"[data-md-component=container]\",\n \"[data-md-component=header-topic]\",\n \"[data-md-component=outdated]\",\n \"[data-md-component=logo]\",\n \"[data-md-component=skip]\",\n ...feature(\"navigation.tabs.sticky\")\n ? [\"[data-md-component=tabs]\"]\n : []\n ]) {\n const source = getOptionalElement(selector)\n const target = getOptionalElement(selector, replacement)\n if (\n typeof source !== \"undefined\" &&\n typeof target !== \"undefined\"\n ) {\n source.replaceWith(target)\n }\n }\n })\n\n /* Re-evaluate scripts */\n document$\n .pipe(\n skip(1),\n map(() => getComponentElement(\"container\")),\n switchMap(el => getElements(\"script\", el)),\n concatMap(el => {\n const script = h(\"script\")\n if (el.src) {\n for (const name of el.getAttributeNames())\n script.setAttribute(name, el.getAttribute(name)!)\n el.replaceWith(script)\n\n /* Complete when script is loaded */\n return new Observable(observer => {\n script.onload = () => observer.complete()\n })\n\n /* Complete immediately */\n } else {\n script.textContent = el.textContent\n el.replaceWith(script)\n return EMPTY\n }\n })\n )\n .subscribe()\n\n /* Emit history state change */\n merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n .subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n window.scrollTo(0, offset?.y || 0)\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n skipUntil(push$),\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(push$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([a, b]) => a.url.pathname === b.url.pathname),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n window.scrollTo(0, offset?.y || 0)\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @returns Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * 1. Search for terms in quotation marks and prepend a `+` modifier to denote\n * that the resulting document must contain all terms, converting the query\n * to an `AND` query (as opposed to the default `OR` behavior). While users\n * may expect terms enclosed in quotation marks to map to span queries, i.e.\n * for which order is important, Lunr.js doesn't support them, so the best\n * we can do is to convert the terms to an `AND` query.\n *\n * 2. Replace control characters which are not located at the beginning of the\n * query or preceded by white space, or are not followed by a non-whitespace\n * character or are at the end of the query string. Furthermore, filter\n * unmatched quotation marks.\n *\n * 3. Trim excess whitespace from left and right.\n *\n * @param query - Query value\n *\n * @returns Transformed query value\n */\nexport function defaultTransform(query: string): string {\n return query\n .split(/\"([^\"]+)\"/g) /* => 1 */\n .map((terms, index) => index & 1\n ? terms.replace(/^\\b|^(?![^\\x00-\\x7F]|$)|\\s+/g, \" +\")\n : terms\n )\n .join(\"\")\n .replace(/\"|(?:^|\\s+)[*+\\-:^~]+(?=\\s+|$)/g, \"\") /* => 2 */\n .trim() /* => 3 */\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * Message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * Message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * Message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ObservableInput,\n Subject,\n from,\n map,\n share\n} from \"rxjs\"\n\nimport { configuration, feature, translation } from \"~/_\"\nimport { WorkerHandler, watchWorker } from \"~/browser\"\n\nimport { SearchIndex } from \"../../_\"\nimport {\n SearchOptions,\n SearchPipeline\n} from \"../../options\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search worker\n */\nexport type SearchWorker = WorkerHandler\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @returns Search index\n */\nfunction setupSearchIndex({ config, docs }: SearchIndex): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [\n translation(\"search.config.lang\")\n ]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\\\s\\\\-]+\")\n config.separator = translation(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translation(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(Boolean) as SearchPipeline\n\n /* Determine search options */\n const options: SearchOptions = {\n pipeline,\n suggestions: feature(\"search.suggest\")\n }\n\n /* Return search index after defaulting */\n return { config, docs, options }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search worker\n *\n * This function creates a web worker to set up and query the search index,\n * which is done using Lunr.js. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param index - Search index observable input\n *\n * @returns Search worker\n */\nexport function setupSearchWorker(\n url: string, index: ObservableInput\n): SearchWorker {\n const config = configuration()\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n map(message => {\n if (isSearchResultMessage(message)) {\n for (const result of message.data.items)\n for (const document of result)\n document.location = `${new URL(document.location, config.base)}`\n }\n return message\n }),\n share()\n )\n\n /* Set up search index */\n from(index)\n .pipe(\n map(data => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(data)\n } as SearchSetupMessage))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return search worker */\n return { tx$, rx$ }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Subject,\n catchError,\n combineLatest,\n filter,\n fromEvent,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n getElement,\n getLocation,\n requestJSON,\n setLocation\n} from \"~/browser\"\nimport { getComponentElements } from \"~/components\"\nimport {\n Version,\n renderVersionSelector\n} from \"~/templates\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up version selector\n *\n * @param options - Options\n */\nexport function setupVersionSelector(\n { document$ }: SetupOptions\n): void {\n const config = configuration()\n const versions$ = requestJSON(\n new URL(\"../versions.json\", config.base)\n )\n .pipe(\n catchError(() => EMPTY) // @todo refactor instant loading\n )\n\n /* Determine current version */\n const current$ = versions$\n .pipe(\n map(versions => {\n const [, current] = config.base.match(/([^/]+)\\/?$/)!\n return versions.find(({ version, aliases }) => (\n version === current || aliases.includes(current)\n )) || versions[0]\n })\n )\n\n /* Intercept inter-version navigation */\n versions$\n .pipe(\n map(versions => new Map(versions.map(version => [\n `${new URL(`../${version.version}/`, config.base)}`,\n version\n ]))),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n withLatestFrom(current$),\n switchMap(([ev, current]) => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && urls.has(el.href)) {\n const url = el.href\n // This is a temporary hack to detect if a version inside the\n // version selector or on another part of the site was clicked.\n // If we're inside the version selector, we definitely want to\n // find the same page, as we might have different deployments\n // due to aliases. However, if we're outside the version\n // selector, we must abort here, because we might otherwise\n // interfere with instant loading. We need to refactor this\n // at some point together with instant loading.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/4012\n if (!ev.target.closest(\".md-version\")) {\n const version = urls.get(url)!\n if (version === current)\n return EMPTY\n }\n ev.preventDefault()\n return of(url)\n }\n }\n return EMPTY\n }),\n switchMap(url => {\n const { version } = urls.get(url)!\n return fetchSitemap(new URL(url))\n .pipe(\n map(sitemap => {\n const location = getLocation()\n const path = location.href.replace(config.base, \"\")\n return sitemap.includes(path)\n ? new URL(`../${version}/${path}`, config.base)\n : new URL(url)\n })\n )\n })\n )\n )\n )\n .subscribe(url => setLocation(url))\n\n /* Render version selector and warning */\n combineLatest([versions$, current$])\n .subscribe(([versions, current]) => {\n const topic = getElement(\".md-header__topic\")\n topic.appendChild(renderVersionSelector(versions, current))\n })\n\n /* Integrate outdated version banner with instant loading */\n document$.pipe(switchMap(() => current$))\n .subscribe(current => {\n\n /* Check if version state was already determined */\n let outdated = __md_get(\"__outdated\", sessionStorage)\n if (outdated === null) {\n const latest = config.version?.default || \"latest\"\n outdated = !current.aliases.includes(latest)\n\n /* Persist version state in session storage */\n __md_set(\"__outdated\", outdated, sessionStorage)\n }\n\n /* Unhide outdated version banner */\n if (outdated)\n for (const warning of getComponentElements(\"outdated\"))\n warning.hidden = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n combineLatest,\n delay,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n share,\n shareReplay,\n startWith,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getLocation,\n setToggle,\n watchElementFocus,\n watchToggle\n} from \"~/browser\"\nimport {\n SearchMessageType,\n SearchQueryMessage,\n SearchWorker,\n defaultTransform,\n isSearchReadyMessage\n} from \"~/integrations\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { rx$ }: SearchWorker\n): Observable {\n const fn = __search?.transform || defaultTransform\n\n /* Immediately show search dialog */\n const { searchParams } = getLocation()\n if (searchParams.has(\"q\"))\n setToggle(\"search\", true)\n\n /* Intercept query parameter (deep link) */\n const param$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1),\n map(() => searchParams.get(\"q\") || \"\")\n )\n\n /* Remove query parameter when search is closed */\n watchToggle(\"search\")\n .pipe(\n filter(active => !active),\n take(1)\n )\n .subscribe(() => {\n const url = new URL(location.href)\n url.searchParams.delete(\"q\")\n history.replaceState({}, \"\", `${url}`)\n })\n\n /* Set query from parameter */\n param$.subscribe(value => { // TODO: not ideal - find a better way\n if (value) {\n el.value = value\n el.focus()\n }\n })\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1)),\n param$\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(\"\"),\n distinctUntilChanged(),\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount search query\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query component observable\n */\nexport function mountSearchQuery(\n el: HTMLInputElement, { tx$, rx$ }: SearchWorker\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n\n /* Handle value changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Handle focus changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus) {\n setToggle(\"search\", focus)\n el.placeholder = \"\"\n } else {\n el.placeholder = translation(\"search.placeholder\")\n }\n })\n\n /* Handle reset */\n fromEvent(el.form!, \"reset\")\n .pipe(\n takeUntil(done$)\n )\n .subscribe(() => el.focus())\n\n /* Create and return component */\n return watchSearchQuery(el, { tx$, rx$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n filter,\n finalize,\n map,\n merge,\n of,\n skipUntil,\n switchMap,\n take,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getElement,\n watchElementBoundary\n} from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"~/integrations\"\nimport { renderSearchResultItem } from \"~/templates\"\nimport { round } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result list\n *\n * This function performs a lazy rendering of the search results, depending on\n * the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchResult(\n el: HTMLElement, { rx$ }: SearchWorker, { query$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const boundary$ = watchElementBoundary(el.parentElement!)\n .pipe(\n filter(Boolean)\n )\n\n /* Retrieve nested components */\n const meta = getElement(\":scope > :first-child\", el)\n const list = getElement(\":scope > :last-child\", el)\n\n /* Wait until search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1)\n )\n\n /* Update search result metadata */\n push$\n .pipe(\n withLatestFrom(query$),\n skipUntil(ready$)\n )\n .subscribe(([{ items }, { value }]) => {\n if (value) {\n switch (items.length) {\n\n /* No results */\n case 0:\n meta.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n meta.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n meta.textContent = translation(\n \"search.result.other\",\n round(items.length)\n )\n }\n } else {\n meta.textContent = translation(\"search.result.placeholder\")\n }\n })\n\n /* Update search result list */\n push$\n .pipe(\n tap(() => list.innerHTML = \"\"),\n switchMap(({ items }) => merge(\n of(...items.slice(0, 10)),\n of(...items.slice(10))\n .pipe(\n bufferCount(4),\n zipWith(boundary$),\n switchMap(([chunk]) => chunk)\n )\n ))\n )\n .subscribe(result => list.appendChild(\n renderSearchResultItem(result)\n ))\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n fromEvent,\n map,\n tap\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search sharing\n */\nexport interface SearchShare {\n url: URL /* Deep link for sharing */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n query$: Observable /* Search query observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search sharing\n *\n * @param _el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing observable\n */\nexport function watchSearchShare(\n _el: HTMLElement, { query$ }: WatchOptions\n): Observable {\n return query$\n .pipe(\n map(({ value }) => {\n const url = getLocation()\n url.hash = \"\"\n url.searchParams.delete(\"h\")\n url.searchParams.set(\"q\", value)\n return { url }\n })\n )\n}\n\n/**\n * Mount search sharing\n *\n * @param el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing component observable\n */\nexport function mountSearchShare(\n el: HTMLAnchorElement, options: MountOptions\n): Observable> {\n const push$ = new Subject()\n push$.subscribe(({ url }) => {\n el.setAttribute(\"data-clipboard-text\", el.href)\n el.href = `${url}`\n })\n\n /* Prevent following of link */\n fromEvent(el, \"click\")\n .subscribe(ev => ev.preventDefault())\n\n /* Create and return component */\n return watchSearchShare(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n combineLatestWith,\n distinctUntilChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n observeOn,\n tap\n} from \"rxjs\"\n\nimport { Keyboard } from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchResultMessage\n} from \"~/integrations\"\n\nimport { Component, getComponentElement } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search suggestions\n */\nexport interface SearchSuggest {}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search suggestions\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchSuggest(\n el: HTMLElement, { rx$ }: SearchWorker, { keyboard$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n\n /* Retrieve query component and track all changes */\n const query = getComponentElement(\"search-query\")\n const query$ = merge(\n fromEvent(query, \"keydown\"),\n fromEvent(query, \"focus\")\n )\n .pipe(\n observeOn(asyncScheduler),\n map(() => query.value),\n distinctUntilChanged(),\n )\n\n /* Update search suggestions */\n push$\n .pipe(\n combineLatestWith(query$),\n map(([{ suggestions }, value]) => {\n const words = value.split(/([\\s-]+)/)\n if (suggestions?.length && words[words.length - 1]) {\n const last = suggestions[suggestions.length - 1]\n if (last.startsWith(words[words.length - 1]))\n words[words.length - 1] = last\n } else {\n words.length = 0\n }\n return words\n })\n )\n .subscribe(words => el.innerHTML = words\n .join(\"\")\n .replace(/\\s/g, \" \")\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Right arrow: accept current suggestion */\n case \"ArrowRight\":\n if (\n el.innerText.length &&\n query.selectionStart === query.value.length\n )\n query.value = el.innerText\n break\n }\n })\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n ObservableInput,\n filter,\n merge,\n mergeWith,\n sample,\n take\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n Keyboard,\n getActiveElement,\n getElements,\n setToggle\n} from \"~/browser\"\nimport {\n SearchIndex,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage,\n setupSearchWorker\n} from \"~/integrations\"\n\nimport {\n Component,\n getComponentElement,\n getComponentElements\n} from \"../../_\"\nimport {\n SearchQuery,\n mountSearchQuery\n} from \"../query\"\nimport { mountSearchResult } from \"../result\"\nimport {\n SearchShare,\n mountSearchShare\n} from \"../share\"\nimport {\n SearchSuggest,\n mountSearchSuggest\n} from \"../suggest\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport type Search =\n | SearchQuery\n | SearchResult\n | SearchShare\n | SearchSuggest\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search\n *\n * This function sets up the search functionality, including the underlying\n * web worker and all keyboard bindings.\n *\n * @param el - Search element\n * @param options - Options\n *\n * @returns Search component observable\n */\nexport function mountSearch(\n el: HTMLElement, { index$, keyboard$ }: MountOptions\n): Observable> {\n const config = configuration()\n try {\n const url = __search?.worker || config.search\n const worker = setupSearchWorker(url, index$)\n\n /* Retrieve query and result components */\n const query = getComponentElement(\"search-query\", el)\n const result = getComponentElement(\"search-result\", el)\n\n /* Re-emit query when search is ready */\n const { tx$, rx$ } = worker\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(rx$.pipe(filter(isSearchReadyMessage))),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: go to first (best) result */\n case \"Enter\":\n if (active === query) {\n const anchors = new Map()\n for (const anchor of getElements(\n \":first-child [href]\", result\n )) {\n const article = anchor.firstElementChild!\n anchors.set(anchor, parseFloat(\n article.getAttribute(\"data-md-score\")!\n ))\n }\n\n /* Go to result with highest score, if any */\n if (anchors.size) {\n const [[best]] = [...anchors].sort(([, a], [, b]) => b - a)\n best.click()\n }\n\n /* Otherwise omit form submission */\n key.claim()\n }\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n query.blur()\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n query.focus()\n } else {\n const els = [query, ...getElements(\n \":not(details) > [href], summary, details[open] [href]\",\n result\n )]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n els[i].focus()\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n query.focus()\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n query.focus()\n query.select()\n\n /* Prevent scrolling of page */\n key.claim()\n break\n }\n })\n\n /* Create and return component */\n const query$ = mountSearchQuery(query, worker)\n const result$ = mountSearchResult(result, worker, { query$ })\n return merge(query$, result$)\n .pipe(\n mergeWith(\n\n /* Search sharing */\n ...getComponentElements(\"search-share\", el)\n .map(child => mountSearchShare(child, { query$ })),\n\n /* Search suggestions */\n ...getComponentElements(\"search-suggest\", el)\n .map(child => mountSearchSuggest(child, worker, { keyboard$ }))\n )\n )\n\n /* Gracefully handle broken search */\n } catch (err) {\n el.hidden = true\n return NEVER\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n ObservableInput,\n combineLatest,\n filter,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\nimport {\n SearchIndex,\n setupSearchHighlighter\n} from \"~/integrations\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlighting\n */\nexport interface SearchHighlight {\n nodes: Map /* Map of replacements */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search highlighting\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Search highlighting component observable\n */\nexport function mountSearchHiglight(\n el: HTMLElement, { index$, location$ }: MountOptions\n): Observable> {\n return combineLatest([\n index$,\n location$\n .pipe(\n startWith(getLocation()),\n filter(url => !!url.searchParams.get(\"h\"))\n )\n ])\n .pipe(\n map(([index, url]) => setupSearchHighlighter(index.config, true)(\n url.searchParams.get(\"h\")!\n )),\n map(fn => {\n const nodes = new Map()\n\n /* Traverse text nodes and collect matches */\n const it = document.createNodeIterator(el, NodeFilter.SHOW_TEXT)\n for (let node = it.nextNode(); node; node = it.nextNode()) {\n if (node.parentElement?.offsetHeight) {\n const original = node.textContent!\n const replaced = fn(original)\n if (replaced.length > original.length)\n nodes.set(node as ChildNode, replaced)\n }\n }\n\n /* Replace original nodes with matches */\n for (const [node, text] of nodes) {\n const { childNodes } = h(\"span\", null, text)\n node.replaceWith(...Array.from(childNodes))\n }\n\n /* Return component */\n return { ref: el, nodes }\n })\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n defer,\n distinctUntilChanged,\n finalize,\n map,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElement,\n getElementOffset\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar\n */\nexport interface Sidebar {\n height: number /* Sidebar height */\n locked: boolean /* Sidebar is locked */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport$, main$ }: WatchOptions\n): Observable {\n const parent = el.parentElement!\n const adjust =\n parent.offsetTop -\n parent.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n locked: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.locked === b.locked\n ))\n )\n}\n\n/**\n * Mount sidebar\n *\n * This function doesn't set the height of the actual sidebar, but of its first\n * child \u2013 the `.md-sidebar__scrollwrap` element in order to mitigiate jittery\n * sidebars when the footer is scrolled into view. At some point we switched\n * from `absolute` / `fixed` positioning to `sticky` positioning, significantly\n * reducing jitter in some browsers (respectively Firefox and Safari) when\n * scrolling from the top. However, top-aligned sticky positioning means that\n * the sidebar snaps to the bottom when the end of the container is reached.\n * This is what leads to the mentioned jitter, as the sidebar's height may be\n * updated too slowly.\n *\n * This behaviour can be mitigiated by setting the height of the sidebar to `0`\n * while preserving the padding, and the height on its first element.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar component observable\n */\nexport function mountSidebar(\n el: HTMLElement, { header$, ...options }: MountOptions\n): Observable> {\n const inner = getElement(\".md-sidebar__scrollwrap\", el)\n const { y } = getElementOffset(inner)\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n auditTime(0, animationFrameScheduler),\n withLatestFrom(header$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ height }, { height: offset }]) {\n inner.style.height = `${height - 2 * y}px`\n el.style.top = `${offset}px`\n },\n\n /* Handle complete */\n complete() {\n inner.style.height = \"\"\n el.style.top = \"\"\n }\n })\n\n /* Create and return component */\n return watchSidebar(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n zip\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * GitHub release (partial)\n */\ninterface Release {\n tag_name: string /* Tag name */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub repository facts\n *\n * @param user - GitHub user or organization\n * @param repo - GitHub repository\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n if (typeof repo !== \"undefined\") {\n const url = `https://api.github.com/repos/${user}/${repo}`\n return zip(\n\n /* Fetch version */\n requestJSON(`${url}/releases/latest`)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(release => ({\n version: release.tag_name\n })),\n defaultIfEmpty({})\n ),\n\n /* Fetch stars and forks */\n requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(info => ({\n stars: info.stargazers_count,\n forks: info.forks_count\n })),\n defaultIfEmpty({})\n )\n )\n .pipe(\n map(([release, info]) => ({ ...release, ...info }))\n )\n\n /* User or organization */\n } else {\n const url = `https://api.github.com/users/${user}`\n return requestJSON(url)\n .pipe(\n map(info => ({\n repositories: info.public_repos\n })),\n defaultIfEmpty({})\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab repository facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n const url = `https://${base}/api/v4/projects/${encodeURIComponent(project)}`\n return requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(({ star_count, forks_count }) => ({\n stars: star_count,\n forks: forks_count\n })),\n defaultIfEmpty({})\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable } from \"rxjs\"\n\nimport { fetchSourceFactsFromGitHub } from \"../github\"\nimport { fetchSourceFactsFromGitLab } from \"../gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository facts for repositories\n */\nexport interface RepositoryFacts {\n stars?: number /* Number of stars */\n forks?: number /* Number of forks */\n version?: string /* Latest version */\n}\n\n/**\n * Repository facts for organizations\n */\nexport interface OrganizationFacts {\n repositories?: number /* Number of repositories */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Repository facts\n */\nexport type SourceFacts =\n | RepositoryFacts\n | OrganizationFacts\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch repository facts\n *\n * @param url - Repository URL\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^/]+)\\/?([^/]+)?/i)!\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^/]*gitlab[^/]+)\\/(.+?)\\/?$/i)!\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return EMPTY\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n catchError,\n defer,\n filter,\n finalize,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\nimport { renderSourceFacts } from \"~/templates\"\n\nimport { Component } from \"../../_\"\nimport {\n SourceFacts,\n fetchSourceFacts\n} from \"../facts\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information\n */\nexport interface Source {\n facts: SourceFacts /* Repository facts */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information observable\n */\nlet fetch$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch repository information\n *\n * This function tries to read the repository facts from session storage, and\n * if unsuccessful, fetches them from the underlying provider.\n *\n * @param el - Repository information element\n *\n * @returns Repository information observable\n */\nexport function watchSource(\n el: HTMLAnchorElement\n): Observable {\n return fetch$ ||= defer(() => {\n const cached = __md_get(\"__source\", sessionStorage)\n if (cached)\n return of(cached)\n else\n return fetchSourceFacts(el.href)\n .pipe(\n tap(facts => __md_set(\"__source\", facts, sessionStorage))\n )\n })\n .pipe(\n catchError(() => EMPTY),\n filter(facts => Object.keys(facts).length > 0),\n map(facts => ({ facts })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount repository information\n *\n * @param el - Repository information element\n *\n * @returns Repository information component observable\n */\nexport function mountSource(\n el: HTMLAnchorElement\n): Observable> {\n const inner = getElement(\":scope > :last-child\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ facts }) => {\n inner.appendChild(renderSourceFacts(facts))\n inner.classList.add(\"md-source__repository--active\")\n })\n\n /* Create and return component */\n return watchSource(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation tabs\n */\nexport interface Tabs {\n hidden: boolean /* Navigation tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation tabs\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs observable\n */\nexport function watchTabs(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchElementSize(document.body)\n .pipe(\n switchMap(() => watchViewportAt(el, { header$, viewport$ })),\n map(({ offset: { y } }) => {\n return {\n hidden: y >= 10\n }\n }),\n distinctUntilKeyChanged(\"hidden\")\n )\n}\n\n/**\n * Mount navigation tabs\n *\n * This function hides the navigation tabs when scrolling past the threshold\n * and makes them reappear in a nice CSS animation when scrolling back up.\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs component observable\n */\nexport function mountTabs(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n },\n\n /* Handle complete */\n complete() {\n el.hidden = false\n }\n })\n\n /* Create and return component */\n return (\n feature(\"navigation.tabs.sticky\")\n ? of({ hidden: false })\n : watchTabs(el, options)\n )\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatestWith,\n debounceTime,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n repeat,\n scan,\n share,\n skip,\n startWith,\n switchMap,\n takeLast,\n takeUntil,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n getElement,\n getElements,\n getLocation,\n getOptionalElement,\n watchElementSize\n} from \"~/browser\"\n\nimport {\n Component,\n getComponentElement\n} from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport interface TableOfContents {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * This is effectively a scroll spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the table of contents\n * needs to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const table = new Map()\n\n /* Compute anchor-to-target mapping */\n const anchors = getElements(\"[href^=\\\\#]\", el)\n for (const anchor of anchors) {\n const id = decodeURIComponent(anchor.hash.substring(1))\n const target = getOptionalElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(anchor, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n map(({ height }) => {\n const main = getComponentElement(\"main\")\n const grid = getElement(\":scope > :first-child\", main)\n return height + 0.8 * (\n grid.offsetTop -\n main.offsetTop\n )\n }),\n share()\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n switchMap(body => defer(() => {\n let path: HTMLAnchorElement[] = []\n return of([...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n [...path = [...path, anchor]].reverse(),\n offset\n )\n }, new Map()))\n })\n .pipe(\n\n /* Sort index by vertical offset (see https://bit.ly/30z6QSO) */\n map(index => new Map([...index].sort(([, a], [, b]) => a - b))),\n combineLatestWith(adjust$),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(([index, adjust]) => viewport$\n .pipe(\n scan(([prev, next], { offset: { y }, size }) => {\n const last = y + size.height >= Math.floor(body.height)\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y || last) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y && !last) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => (\n a[0] === b[0] &&\n a[1] === b[1]\n ))\n )\n )\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents component observable\n */\nexport function mountTableOfContents(\n el: HTMLElement, { viewport$, header$, target$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe(({ prev, next }) => {\n\n /* Look forward */\n for (const [anchor] of next) {\n anchor.classList.remove(\"md-nav__link--passed\")\n anchor.classList.remove(\"md-nav__link--active\")\n }\n\n /* Look backward */\n for (const [index, [anchor]] of prev.entries()) {\n anchor.classList.add(\"md-nav__link--passed\")\n anchor.classList.toggle(\n \"md-nav__link--active\",\n index === prev.length - 1\n )\n }\n })\n\n /* Set up anchor tracking, if enabled */\n if (feature(\"navigation.tracking\"))\n viewport$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"offset\"),\n debounceTime(250),\n skip(1),\n takeUntil(target$.pipe(skip(1))),\n repeat({ delay: 250 }),\n withLatestFrom(push$)\n )\n .subscribe(([, { prev }]) => {\n const url = getLocation()\n\n /* Set hash fragment to active anchor */\n const anchor = prev[prev.length - 1]\n if (anchor && anchor.length) {\n const [active] = anchor\n const { hash } = new URL(active.href)\n if (url.hash !== hash) {\n url.hash = hash\n history.replaceState({}, \"\", `${url}`)\n }\n\n /* Reset anchor when at the top */\n } else {\n url.hash = \"\"\n history.replaceState({}, \"\", `${url}`)\n }\n })\n\n /* Create and return component */\n return watchTableOfContents(el, { viewport$, header$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n endWith,\n finalize,\n map,\n repeat,\n skip,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { Viewport } from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Back-to-top button\n */\nexport interface BackToTop {\n hidden: boolean /* Back-to-top button is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch back-to-top\n *\n * @param _el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top observable\n */\nexport function watchBackToTop(\n _el: HTMLElement, { viewport$, main$, target$ }: WatchOptions\n): Observable {\n\n /* Compute direction */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => a > b && b > 0),\n distinctUntilChanged()\n )\n\n /* Compute whether main area is active */\n const active$ = main$\n .pipe(\n map(({ active }) => active)\n )\n\n /* Compute threshold for hiding */\n return combineLatest([active$, direction$])\n .pipe(\n map(([active, direction]) => !(active && direction)),\n distinctUntilChanged(),\n takeUntil(target$.pipe(skip(1))),\n endWith(true),\n repeat({ delay: 250 }),\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount back-to-top\n *\n * @param el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top component observable\n */\nexport function mountBackToTop(\n el: HTMLElement, { viewport$, header$, main$, target$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n if (hidden) {\n el.setAttribute(\"tabindex\", \"-1\")\n el.blur()\n } else {\n el.removeAttribute(\"tabindex\")\n }\n },\n\n /* Handle complete */\n complete() {\n el.style.top = \"\"\n el.hidden = true\n el.removeAttribute(\"tabindex\")\n }\n })\n\n /* Watch header height */\n header$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"height\")\n )\n .subscribe(({ height }) => {\n el.style.top = `${height + 16}px`\n })\n\n /* Create and return component */\n return watchBackToTop(el, { viewport$, main$, target$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n takeWhile,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch indeterminate checkboxes\n *\n * This function replaces the indeterminate \"pseudo state\" with the actual\n * indeterminate state, which is used to keep navigation always expanded.\n *\n * @param options - Options\n */\nexport function patchIndeterminate(\n { document$, tablet$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\n // @todo `data-md-state` is deprecated and removed in v9\n \".md-toggle--indeterminate, [data-md-state=indeterminate]\"\n )),\n tap(el => {\n el.indeterminate = true\n el.checked = false\n }),\n mergeMap(el => fromEvent(el, \"change\")\n .pipe(\n takeWhile(() => el.classList.contains(\"md-toggle--indeterminate\")),\n map(() => el)\n )\n ),\n withLatestFrom(tablet$)\n )\n .subscribe(([el, tablet]) => {\n el.classList.remove(\"md-toggle--indeterminate\")\n if (tablet)\n el.checked = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @returns Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\"[data-md-scrollfix]\")),\n tap(el => el.removeAttribute(\"data-md-scrollfix\")),\n filter(isAppleDevice),\n mergeMap(el => fromEvent(el, \"touchstart\")\n .pipe(\n map(() => el)\n )\n )\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n delay,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchToggle\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch the document body to lock when search is open\n *\n * For mobile and tablet viewports, the search is rendered full screen, which\n * leads to scroll leaking when at the top or bottom of the search result. This\n * function locks the body when the search is in full screen mode, and restores\n * the scroll position when leaving.\n *\n * @param options - Options\n */\nexport function patchScrolllock(\n { viewport$, tablet$ }: PatchOptions\n): void {\n combineLatest([watchToggle(\"search\"), tablet$])\n .pipe(\n map(([active, tablet]) => active && !tablet),\n switchMap(active => of(active)\n .pipe(\n delay(active ? 400 : 100)\n )\n ),\n withLatestFrom(viewport$)\n )\n .subscribe(([active, { offset: { y }}]) => {\n if (active) {\n document.body.setAttribute(\"data-md-scrolllock\", \"\")\n document.body.style.top = `-${y}px`\n } else {\n const value = -1 * parseInt(document.body.style.top, 10)\n document.body.removeAttribute(\"data-md-scrolllock\")\n document.body.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n"], - "mappings": "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", - "names": [] -} diff --git a/docs/site/assets/javascripts/lunr/min/lunr.ar.min.js b/docs/site/assets/javascripts/lunr/min/lunr.ar.min.js deleted file mode 100644 index 248ddc5d..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.ar.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.de.min.js b/docs/site/assets/javascripts/lunr/min/lunr.de.min.js deleted file mode 100644 index f3b5c108..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.de.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `German` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.du.min.js b/docs/site/assets/javascripts/lunr/min/lunr.du.min.js deleted file mode 100644 index 49a0f3f0..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.du.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Dutch` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.es.min.js b/docs/site/assets/javascripts/lunr/min/lunr.es.min.js deleted file mode 100644 index 2989d342..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.es.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Spanish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.fi.min.js b/docs/site/assets/javascripts/lunr/min/lunr.fi.min.js deleted file mode 100644 index 29f5dfce..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.fi.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Finnish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.fr.min.js b/docs/site/assets/javascripts/lunr/min/lunr.fr.min.js deleted file mode 100644 index 68cd0094..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.fr.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `French` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.hi.min.js b/docs/site/assets/javascripts/lunr/min/lunr.hi.min.js deleted file mode 100644 index 7dbc4140..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.hi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.hu.min.js b/docs/site/assets/javascripts/lunr/min/lunr.hu.min.js deleted file mode 100644 index ed9d909f..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.hu.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Hungarian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.it.min.js b/docs/site/assets/javascripts/lunr/min/lunr.it.min.js deleted file mode 100644 index 344b6a3c..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.it.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Italian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.ja.min.js b/docs/site/assets/javascripts/lunr/min/lunr.ja.min.js deleted file mode 100644 index 5f254ebe..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.ja.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.no.min.js b/docs/site/assets/javascripts/lunr/min/lunr.no.min.js deleted file mode 100644 index 92bc7e4e..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.no.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Norwegian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.pt.min.js b/docs/site/assets/javascripts/lunr/min/lunr.pt.min.js deleted file mode 100644 index 6c16996d..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.pt.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Portuguese` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.ro.min.js b/docs/site/assets/javascripts/lunr/min/lunr.ro.min.js deleted file mode 100644 index 72771401..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.ro.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Romanian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.ru.min.js b/docs/site/assets/javascripts/lunr/min/lunr.ru.min.js deleted file mode 100644 index 186cc485..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.ru.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Russian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.sv.min.js b/docs/site/assets/javascripts/lunr/min/lunr.sv.min.js deleted file mode 100644 index 3e5eb640..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.sv.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Swedish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.th.min.js b/docs/site/assets/javascripts/lunr/min/lunr.th.min.js deleted file mode 100644 index dee3aac6..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.th.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.tr.min.js b/docs/site/assets/javascripts/lunr/min/lunr.tr.min.js deleted file mode 100644 index 563f6ec1..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.tr.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Lunr languages, `Turkish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.vi.min.js b/docs/site/assets/javascripts/lunr/min/lunr.vi.min.js deleted file mode 100644 index 22aed28c..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.vi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/min/lunr.zh.min.js b/docs/site/assets/javascripts/lunr/min/lunr.zh.min.js deleted file mode 100644 index 7727bbe2..00000000 --- a/docs/site/assets/javascripts/lunr/min/lunr.zh.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/tinyseg.js b/docs/site/assets/javascripts/lunr/tinyseg.js deleted file mode 100644 index 167fa6dd..00000000 --- a/docs/site/assets/javascripts/lunr/tinyseg.js +++ /dev/null @@ -1,206 +0,0 @@ -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -;(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function () { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - - return function(lunr) { - // TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript - // (c) 2008 Taku Kudo - // TinySegmenter is freely distributable under the terms of a new BSD licence. - // For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt - - function TinySegmenter() { - var patterns = { - "[一二三四五六七八九十百千万億兆]":"M", - "[一-龠々〆ヵヶ]":"H", - "[ぁ-ん]":"I", - "[ァ-ヴーア-ン゙ー]":"K", - "[a-zA-Za-zA-Z]":"A", - "[0-90-9]":"N" - } - this.chartype_ = []; - for (var i in patterns) { - var regexp = new RegExp(i); - this.chartype_.push([regexp, patterns[i]]); - } - - this.BIAS__ = -332 - this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378}; - this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920}; - this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266}; - this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352}; - this.BP2__ = {"BO":60,"OO":-1762}; - this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965}; - this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146}; - this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699}; - this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973}; - this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682}; - this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669}; - this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990}; - this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832}; - this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649}; - this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393}; - this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841}; - this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68}; - this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591}; - this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685}; - this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156}; - this.TW1__ = {"につい":-4681,"東京都":2026}; - this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216}; - this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287}; - this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865}; - this.UC1__ = {"A":484,"K":93,"M":645,"O":-505}; - this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646}; - this.UC3__ = {"A":-1370,"I":2311}; - this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646}; - this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831}; - this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387}; - this.UP1__ = {"O":-214}; - this.UP2__ = {"B":69,"O":935}; - this.UP3__ = {"B":189}; - this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422}; - this.UQ2__ = {"BH":216,"BI":113,"OK":1759}; - this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212}; - this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135}; - this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568}; - this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278}; - this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637}; - this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343}; - this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496}; - - return this; - } - TinySegmenter.prototype.ctype_ = function(str) { - for (var i in this.chartype_) { - if (str.match(this.chartype_[i][0])) { - return this.chartype_[i][1]; - } - } - return "O"; - } - - TinySegmenter.prototype.ts_ = function(v) { - if (v) { return v; } - return 0; - } - - TinySegmenter.prototype.segment = function(input) { - if (input == null || input == undefined || input == "") { - return []; - } - var result = []; - var seg = ["B3","B2","B1"]; - var ctype = ["O","O","O"]; - var o = input.split(""); - for (i = 0; i < o.length; ++i) { - seg.push(o[i]); - ctype.push(this.ctype_(o[i])) - } - seg.push("E1"); - seg.push("E2"); - seg.push("E3"); - ctype.push("O"); - ctype.push("O"); - ctype.push("O"); - var word = seg[3]; - var p1 = "U"; - var p2 = "U"; - var p3 = "U"; - for (var i = 4; i < seg.length - 3; ++i) { - var score = this.BIAS__; - var w1 = seg[i-3]; - var w2 = seg[i-2]; - var w3 = seg[i-1]; - var w4 = seg[i]; - var w5 = seg[i+1]; - var w6 = seg[i+2]; - var c1 = ctype[i-3]; - var c2 = ctype[i-2]; - var c3 = ctype[i-1]; - var c4 = ctype[i]; - var c5 = ctype[i+1]; - var c6 = ctype[i+2]; - score += this.ts_(this.UP1__[p1]); - score += this.ts_(this.UP2__[p2]); - score += this.ts_(this.UP3__[p3]); - score += this.ts_(this.BP1__[p1 + p2]); - score += this.ts_(this.BP2__[p2 + p3]); - score += this.ts_(this.UW1__[w1]); - score += this.ts_(this.UW2__[w2]); - score += this.ts_(this.UW3__[w3]); - score += this.ts_(this.UW4__[w4]); - score += this.ts_(this.UW5__[w5]); - score += this.ts_(this.UW6__[w6]); - score += this.ts_(this.BW1__[w2 + w3]); - score += this.ts_(this.BW2__[w3 + w4]); - score += this.ts_(this.BW3__[w4 + w5]); - score += this.ts_(this.TW1__[w1 + w2 + w3]); - score += this.ts_(this.TW2__[w2 + w3 + w4]); - score += this.ts_(this.TW3__[w3 + w4 + w5]); - score += this.ts_(this.TW4__[w4 + w5 + w6]); - score += this.ts_(this.UC1__[c1]); - score += this.ts_(this.UC2__[c2]); - score += this.ts_(this.UC3__[c3]); - score += this.ts_(this.UC4__[c4]); - score += this.ts_(this.UC5__[c5]); - score += this.ts_(this.UC6__[c6]); - score += this.ts_(this.BC1__[c2 + c3]); - score += this.ts_(this.BC2__[c3 + c4]); - score += this.ts_(this.BC3__[c4 + c5]); - score += this.ts_(this.TC1__[c1 + c2 + c3]); - score += this.ts_(this.TC2__[c2 + c3 + c4]); - score += this.ts_(this.TC3__[c3 + c4 + c5]); - score += this.ts_(this.TC4__[c4 + c5 + c6]); - // score += this.ts_(this.TC5__[c4 + c5 + c6]); - score += this.ts_(this.UQ1__[p1 + c1]); - score += this.ts_(this.UQ2__[p2 + c2]); - score += this.ts_(this.UQ3__[p3 + c3]); - score += this.ts_(this.BQ1__[p2 + c2 + c3]); - score += this.ts_(this.BQ2__[p2 + c3 + c4]); - score += this.ts_(this.BQ3__[p3 + c2 + c3]); - score += this.ts_(this.BQ4__[p3 + c3 + c4]); - score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]); - score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]); - score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]); - score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]); - var p = "O"; - if (score > 0) { - result.push(word); - word = ""; - p = "B"; - } - p1 = p2; - p2 = p3; - p3 = p; - word += seg[i]; - } - result.push(word); - - return result; - } - - lunr.TinySegmenter = TinySegmenter; - }; - -})); \ No newline at end of file diff --git a/docs/site/assets/javascripts/lunr/wordcut.js b/docs/site/assets/javascripts/lunr/wordcut.js deleted file mode 100644 index 146f4b44..00000000 --- a/docs/site/assets/javascripts/lunr/wordcut.js +++ /dev/null @@ -1,6708 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.lunr || (g.lunr = {})).wordcut = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1; - }) - this.addWords(words, false) - } - if(finalize){ - this.finalizeDict(); - } - }, - - dictSeek: function (l, r, ch, strOffset, pos) { - var ans = null; - while (l <= r) { - var m = Math.floor((l + r) / 2), - dict_item = this.dict[m], - len = dict_item.length; - if (len <= strOffset) { - l = m + 1; - } else { - var ch_ = dict_item[strOffset]; - if (ch_ < ch) { - l = m + 1; - } else if (ch_ > ch) { - r = m - 1; - } else { - ans = m; - if (pos == LEFT) { - r = m - 1; - } else { - l = m + 1; - } - } - } - } - return ans; - }, - - isFinal: function (acceptor) { - return this.dict[acceptor.l].length == acceptor.strOffset; - }, - - createAcceptor: function () { - return { - l: 0, - r: this.dict.length - 1, - strOffset: 0, - isFinal: false, - dict: this, - transit: function (ch) { - return this.dict.transit(this, ch); - }, - isError: false, - tag: "DICT", - w: 1, - type: "DICT" - }; - }, - - transit: function (acceptor, ch) { - var l = this.dictSeek(acceptor.l, - acceptor.r, - ch, - acceptor.strOffset, - LEFT); - if (l !== null) { - var r = this.dictSeek(l, - acceptor.r, - ch, - acceptor.strOffset, - RIGHT); - acceptor.l = l; - acceptor.r = r; - acceptor.strOffset++; - acceptor.isFinal = this.isFinal(acceptor); - } else { - acceptor.isError = true; - } - return acceptor; - }, - - sortuniq: function(a){ - return a.sort().filter(function(item, pos, arr){ - return !pos || item != arr[pos - 1]; - }) - }, - - flatten: function(a){ - //[[1,2],[3]] -> [1,2,3] - return [].concat.apply([], a); - } -}; -module.exports = WordcutDict; - -}).call(this,"/dist/tmp") -},{"glob":16,"path":22}],3:[function(require,module,exports){ -var WordRule = { - createAcceptor: function(tag) { - if (tag["WORD_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - var lch = ch.toLowerCase(); - if (lch >= "a" && lch <= "z") { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "WORD_RULE", - type: "WORD_RULE", - w: 1}; - } -}; - -var NumberRule = { - createAcceptor: function(tag) { - if (tag["NUMBER_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (ch >= "0" && ch <= "9") { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "NUMBER_RULE", - type: "NUMBER_RULE", - w: 1}; - } -}; - -var SpaceRule = { - tag: "SPACE_RULE", - createAcceptor: function(tag) { - - if (tag["SPACE_RULE"]) - return null; - - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (ch == " " || ch == "\t" || ch == "\r" || ch == "\n" || - ch == "\u00A0" || ch=="\u2003"//nbsp and emsp - ) { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: SpaceRule.tag, - w: 1, - type: "SPACE_RULE"}; - } -} - -var SingleSymbolRule = { - tag: "SINSYM", - createAcceptor: function(tag) { - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (this.strOffset == 0 && ch.match(/^[\@\(\)\/\,\-\."`]$/)) { - this.isFinal = true; - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "SINSYM", - w: 1, - type: "SINSYM"}; - } -} - - -var LatinRules = [WordRule, SpaceRule, SingleSymbolRule, NumberRule]; - -module.exports = LatinRules; - -},{}],4:[function(require,module,exports){ -var _ = require("underscore") - , WordcutCore = require("./wordcut_core"); -var PathInfoBuilder = { - - /* - buildByPartAcceptors: function(path, acceptors, i) { - var - var genInfos = partAcceptors.reduce(function(genInfos, acceptor) { - - }, []); - - return genInfos; - } - */ - - buildByAcceptors: function(path, finalAcceptors, i) { - var self = this; - var infos = finalAcceptors.map(function(acceptor) { - var p = i - acceptor.strOffset + 1 - , _info = path[p]; - - var info = {p: p, - mw: _info.mw + (acceptor.mw === undefined ? 0 : acceptor.mw), - w: acceptor.w + _info.w, - unk: (acceptor.unk ? acceptor.unk : 0) + _info.unk, - type: acceptor.type}; - - if (acceptor.type == "PART") { - for(var j = p + 1; j <= i; j++) { - path[j].merge = p; - } - info.merge = p; - } - - return info; - }); - return infos.filter(function(info) { return info; }); - }, - - fallback: function(path, leftBoundary, text, i) { - var _info = path[leftBoundary]; - if (text[i].match(/[\u0E48-\u0E4E]/)) { - if (leftBoundary != 0) - leftBoundary = path[leftBoundary].p; - return {p: leftBoundary, - mw: 0, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; -/* } else if(leftBoundary > 0 && path[leftBoundary].type !== "UNK") { - leftBoundary = path[leftBoundary].p; - return {p: leftBoundary, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; */ - } else { - return {p: leftBoundary, - mw: _info.mw, - w: 1 + _info.w, - unk: 1 + _info.unk, - type: "UNK"}; - } - }, - - build: function(path, finalAcceptors, i, leftBoundary, text) { - var basicPathInfos = this.buildByAcceptors(path, finalAcceptors, i); - if (basicPathInfos.length > 0) { - return basicPathInfos; - } else { - return [this.fallback(path, leftBoundary, text, i)]; - } - } -}; - -module.exports = function() { - return _.clone(PathInfoBuilder); -} - -},{"./wordcut_core":8,"underscore":25}],5:[function(require,module,exports){ -var _ = require("underscore"); - - -var PathSelector = { - selectPath: function(paths) { - var path = paths.reduce(function(selectedPath, path) { - if (selectedPath == null) { - return path; - } else { - if (path.unk < selectedPath.unk) - return path; - if (path.unk == selectedPath.unk) { - if (path.mw < selectedPath.mw) - return path - if (path.mw == selectedPath.mw) { - if (path.w < selectedPath.w) - return path; - } - } - return selectedPath; - } - }, null); - return path; - }, - - createPath: function() { - return [{p:null, w:0, unk:0, type: "INIT", mw:0}]; - } -}; - -module.exports = function() { - return _.clone(PathSelector); -}; - -},{"underscore":25}],6:[function(require,module,exports){ -function isMatch(pat, offset, ch) { - if (pat.length <= offset) - return false; - var _ch = pat[offset]; - return _ch == ch || - (_ch.match(/[กข]/) && ch.match(/[ก-ฮ]/)) || - (_ch.match(/[มบ]/) && ch.match(/[ก-ฮ]/)) || - (_ch.match(/\u0E49/) && ch.match(/[\u0E48-\u0E4B]/)); -} - -var Rule0 = { - pat: "เหก็ม", - createAcceptor: function(tag) { - return {strOffset: 0, - isFinal: false, - transit: function(ch) { - if (isMatch(Rule0.pat, this.strOffset,ch)) { - this.isFinal = (this.strOffset + 1 == Rule0.pat.length); - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "THAI_RULE", - type: "THAI_RULE", - w: 1}; - } -}; - -var PartRule = { - createAcceptor: function(tag) { - return {strOffset: 0, - patterns: [ - "แก", "เก", "ก้", "กก์", "กา", "กี", "กิ", "กืก" - ], - isFinal: false, - transit: function(ch) { - var offset = this.strOffset; - this.patterns = this.patterns.filter(function(pat) { - return isMatch(pat, offset, ch); - }); - - if (this.patterns.length > 0) { - var len = 1 + offset; - this.isFinal = this.patterns.some(function(pat) { - return pat.length == len; - }); - this.strOffset++; - } else { - this.isError = true; - } - return this; - }, - isError: false, - tag: "PART", - type: "PART", - unk: 1, - w: 1}; - } -}; - -var ThaiRules = [Rule0, PartRule]; - -module.exports = ThaiRules; - -},{}],7:[function(require,module,exports){ -var sys = require("sys") - , WordcutDict = require("./dict") - , WordcutCore = require("./wordcut_core") - , PathInfoBuilder = require("./path_info_builder") - , PathSelector = require("./path_selector") - , Acceptors = require("./acceptors") - , latinRules = require("./latin_rules") - , thaiRules = require("./thai_rules") - , _ = require("underscore"); - - -var Wordcut = Object.create(WordcutCore); -Wordcut.defaultPathInfoBuilder = PathInfoBuilder; -Wordcut.defaultPathSelector = PathSelector; -Wordcut.defaultAcceptors = Acceptors; -Wordcut.defaultLatinRules = latinRules; -Wordcut.defaultThaiRules = thaiRules; -Wordcut.defaultDict = WordcutDict; - - -Wordcut.initNoDict = function(dict_path) { - var self = this; - self.pathInfoBuilder = new self.defaultPathInfoBuilder; - self.pathSelector = new self.defaultPathSelector; - self.acceptors = new self.defaultAcceptors; - self.defaultLatinRules.forEach(function(rule) { - self.acceptors.creators.push(rule); - }); - self.defaultThaiRules.forEach(function(rule) { - self.acceptors.creators.push(rule); - }); -}; - -Wordcut.init = function(dict_path, withDefault, additionalWords) { - withDefault = withDefault || false; - this.initNoDict(); - var dict = _.clone(this.defaultDict); - dict.init(dict_path, withDefault, additionalWords); - this.acceptors.creators.push(dict); -}; - -module.exports = Wordcut; - -},{"./acceptors":1,"./dict":2,"./latin_rules":3,"./path_info_builder":4,"./path_selector":5,"./thai_rules":6,"./wordcut_core":8,"sys":28,"underscore":25}],8:[function(require,module,exports){ -var WordcutCore = { - - buildPath: function(text) { - var self = this - , path = self.pathSelector.createPath() - , leftBoundary = 0; - self.acceptors.reset(); - for (var i = 0; i < text.length; i++) { - var ch = text[i]; - self.acceptors.transit(ch); - - var possiblePathInfos = self - .pathInfoBuilder - .build(path, - self.acceptors.getFinalAcceptors(), - i, - leftBoundary, - text); - var selectedPath = self.pathSelector.selectPath(possiblePathInfos) - - path.push(selectedPath); - if (selectedPath.type !== "UNK") { - leftBoundary = i; - } - } - return path; - }, - - pathToRanges: function(path) { - var e = path.length - 1 - , ranges = []; - - while (e > 0) { - var info = path[e] - , s = info.p; - - if (info.merge !== undefined && ranges.length > 0) { - var r = ranges[ranges.length - 1]; - r.s = info.merge; - s = r.s; - } else { - ranges.push({s:s, e:e}); - } - e = s; - } - return ranges.reverse(); - }, - - rangesToText: function(text, ranges, delimiter) { - return ranges.map(function(r) { - return text.substring(r.s, r.e); - }).join(delimiter); - }, - - cut: function(text, delimiter) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - return this - .rangesToText(text, ranges, - (delimiter === undefined ? "|" : delimiter)); - }, - - cutIntoRanges: function(text, noText) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - - if (!noText) { - ranges.forEach(function(r) { - r.text = text.substring(r.s, r.e); - }); - } - return ranges; - }, - - cutIntoArray: function(text) { - var path = this.buildPath(text) - , ranges = this.pathToRanges(path); - - return ranges.map(function(r) { - return text.substring(r.s, r.e) - }); - } -}; - -module.exports = WordcutCore; - -},{}],9:[function(require,module,exports){ -// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 -// -// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! -// -// Originally from narwhal.js (http://narwhaljs.org) -// Copyright (c) 2009 Thomas Robinson <280north.com> -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the 'Software'), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -// sell copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -// when used in node, this will actually load the util module we depend on -// versus loading the builtin util module as happens otherwise -// this is a bug in node module loading as far as I am concerned -var util = require('util/'); - -var pSlice = Array.prototype.slice; -var hasOwn = Object.prototype.hasOwnProperty; - -// 1. The assert module provides functions that throw -// AssertionError's when particular conditions are not met. The -// assert module must conform to the following interface. - -var assert = module.exports = ok; - -// 2. The AssertionError is defined in assert. -// new assert.AssertionError({ message: message, -// actual: actual, -// expected: expected }) - -assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; - this.actual = options.actual; - this.expected = options.expected; - this.operator = options.operator; - if (options.message) { - this.message = options.message; - this.generatedMessage = false; - } else { - this.message = getMessage(this); - this.generatedMessage = true; - } - var stackStartFunction = options.stackStartFunction || fail; - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } - else { - // non v8 browsers so we can have a stacktrace - var err = new Error(); - if (err.stack) { - var out = err.stack; - - // try to strip useless frames - var fn_name = stackStartFunction.name; - var idx = out.indexOf('\n' + fn_name); - if (idx >= 0) { - // once we have located the function frame - // we need to strip out everything before it (and its line) - var next_line = out.indexOf('\n', idx + 1); - out = out.substring(next_line + 1); - } - - this.stack = out; - } - } -}; - -// assert.AssertionError instanceof Error -util.inherits(assert.AssertionError, Error); - -function replacer(key, value) { - if (util.isUndefined(value)) { - return '' + value; - } - if (util.isNumber(value) && !isFinite(value)) { - return value.toString(); - } - if (util.isFunction(value) || util.isRegExp(value)) { - return value.toString(); - } - return value; -} - -function truncate(s, n) { - if (util.isString(s)) { - return s.length < n ? s : s.slice(0, n); - } else { - return s; - } -} - -function getMessage(self) { - return truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + - self.operator + ' ' + - truncate(JSON.stringify(self.expected, replacer), 128); -} - -// At present only the three keys mentioned above are used and -// understood by the spec. Implementations or sub modules can pass -// other keys to the AssertionError's constructor - they will be -// ignored. - -// 3. All of the following functions must throw an AssertionError -// when a corresponding condition is not met, with a message that -// may be undefined if not provided. All assertion methods provide -// both the actual and expected values to the assertion error for -// display purposes. - -function fail(actual, expected, message, operator, stackStartFunction) { - throw new assert.AssertionError({ - message: message, - actual: actual, - expected: expected, - operator: operator, - stackStartFunction: stackStartFunction - }); -} - -// EXTENSION! allows for well behaved errors defined elsewhere. -assert.fail = fail; - -// 4. Pure assertion tests whether a value is truthy, as determined -// by !!guard. -// assert.ok(guard, message_opt); -// This statement is equivalent to assert.equal(true, !!guard, -// message_opt);. To test strictly for the value true, use -// assert.strictEqual(true, guard, message_opt);. - -function ok(value, message) { - if (!value) fail(value, true, message, '==', assert.ok); -} -assert.ok = ok; - -// 5. The equality assertion tests shallow, coercive equality with -// ==. -// assert.equal(actual, expected, message_opt); - -assert.equal = function equal(actual, expected, message) { - if (actual != expected) fail(actual, expected, message, '==', assert.equal); -}; - -// 6. The non-equality assertion tests for whether two objects are not equal -// with != assert.notEqual(actual, expected, message_opt); - -assert.notEqual = function notEqual(actual, expected, message) { - if (actual == expected) { - fail(actual, expected, message, '!=', assert.notEqual); - } -}; - -// 7. The equivalence assertion tests a deep equality relation. -// assert.deepEqual(actual, expected, message_opt); - -assert.deepEqual = function deepEqual(actual, expected, message) { - if (!_deepEqual(actual, expected)) { - fail(actual, expected, message, 'deepEqual', assert.deepEqual); - } -}; - -function _deepEqual(actual, expected) { - // 7.1. All identical values are equivalent, as determined by ===. - if (actual === expected) { - return true; - - } else if (util.isBuffer(actual) && util.isBuffer(expected)) { - if (actual.length != expected.length) return false; - - for (var i = 0; i < actual.length; i++) { - if (actual[i] !== expected[i]) return false; - } - - return true; - - // 7.2. If the expected value is a Date object, the actual value is - // equivalent if it is also a Date object that refers to the same time. - } else if (util.isDate(actual) && util.isDate(expected)) { - return actual.getTime() === expected.getTime(); - - // 7.3 If the expected value is a RegExp object, the actual value is - // equivalent if it is also a RegExp object with the same source and - // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). - } else if (util.isRegExp(actual) && util.isRegExp(expected)) { - return actual.source === expected.source && - actual.global === expected.global && - actual.multiline === expected.multiline && - actual.lastIndex === expected.lastIndex && - actual.ignoreCase === expected.ignoreCase; - - // 7.4. Other pairs that do not both pass typeof value == 'object', - // equivalence is determined by ==. - } else if (!util.isObject(actual) && !util.isObject(expected)) { - return actual == expected; - - // 7.5 For all other Object pairs, including Array objects, equivalence is - // determined by having the same number of owned properties (as verified - // with Object.prototype.hasOwnProperty.call), the same set of keys - // (although not necessarily the same order), equivalent values for every - // corresponding key, and an identical 'prototype' property. Note: this - // accounts for both named and indexed properties on Arrays. - } else { - return objEquiv(actual, expected); - } -} - -function isArguments(object) { - return Object.prototype.toString.call(object) == '[object Arguments]'; -} - -function objEquiv(a, b) { - if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b)) - return false; - // an identical 'prototype' property. - if (a.prototype !== b.prototype) return false; - // if one is a primitive, the other must be same - if (util.isPrimitive(a) || util.isPrimitive(b)) { - return a === b; - } - var aIsArgs = isArguments(a), - bIsArgs = isArguments(b); - if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) - return false; - if (aIsArgs) { - a = pSlice.call(a); - b = pSlice.call(b); - return _deepEqual(a, b); - } - var ka = objectKeys(a), - kb = objectKeys(b), - key, i; - // having the same number of owned properties (keys incorporates - // hasOwnProperty) - if (ka.length != kb.length) - return false; - //the same set of keys (although not necessarily the same order), - ka.sort(); - kb.sort(); - //~~~cheap key test - for (i = ka.length - 1; i >= 0; i--) { - if (ka[i] != kb[i]) - return false; - } - //equivalent values for every corresponding key, and - //~~~possibly expensive deep test - for (i = ka.length - 1; i >= 0; i--) { - key = ka[i]; - if (!_deepEqual(a[key], b[key])) return false; - } - return true; -} - -// 8. The non-equivalence assertion tests for any deep inequality. -// assert.notDeepEqual(actual, expected, message_opt); - -assert.notDeepEqual = function notDeepEqual(actual, expected, message) { - if (_deepEqual(actual, expected)) { - fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); - } -}; - -// 9. The strict equality assertion tests strict equality, as determined by ===. -// assert.strictEqual(actual, expected, message_opt); - -assert.strictEqual = function strictEqual(actual, expected, message) { - if (actual !== expected) { - fail(actual, expected, message, '===', assert.strictEqual); - } -}; - -// 10. The strict non-equality assertion tests for strict inequality, as -// determined by !==. assert.notStrictEqual(actual, expected, message_opt); - -assert.notStrictEqual = function notStrictEqual(actual, expected, message) { - if (actual === expected) { - fail(actual, expected, message, '!==', assert.notStrictEqual); - } -}; - -function expectedException(actual, expected) { - if (!actual || !expected) { - return false; - } - - if (Object.prototype.toString.call(expected) == '[object RegExp]') { - return expected.test(actual); - } else if (actual instanceof expected) { - return true; - } else if (expected.call({}, actual) === true) { - return true; - } - - return false; -} - -function _throws(shouldThrow, block, expected, message) { - var actual; - - if (util.isString(expected)) { - message = expected; - expected = null; - } - - try { - block(); - } catch (e) { - actual = e; - } - - message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + - (message ? ' ' + message : '.'); - - if (shouldThrow && !actual) { - fail(actual, expected, 'Missing expected exception' + message); - } - - if (!shouldThrow && expectedException(actual, expected)) { - fail(actual, expected, 'Got unwanted exception' + message); - } - - if ((shouldThrow && actual && expected && - !expectedException(actual, expected)) || (!shouldThrow && actual)) { - throw actual; - } -} - -// 11. Expected to throw an error: -// assert.throws(block, Error_opt, message_opt); - -assert.throws = function(block, /*optional*/error, /*optional*/message) { - _throws.apply(this, [true].concat(pSlice.call(arguments))); -}; - -// EXTENSION! This is annoying to write outside this module. -assert.doesNotThrow = function(block, /*optional*/message) { - _throws.apply(this, [false].concat(pSlice.call(arguments))); -}; - -assert.ifError = function(err) { if (err) {throw err;}}; - -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - if (hasOwn.call(obj, key)) keys.push(key); - } - return keys; -}; - -},{"util/":28}],10:[function(require,module,exports){ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} - -},{}],11:[function(require,module,exports){ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - - -},{"balanced-match":10,"concat-map":13}],12:[function(require,module,exports){ - -},{}],13:[function(require,module,exports){ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -},{}],14:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } - throw TypeError('Uncaught, unspecified "error" event.'); - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - handler.apply(this, args); - } - } else if (isObject(handler)) { - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - var m; - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - var ret; - if (!emitter._events || !emitter._events[type]) - ret = 0; - else if (isFunction(emitter._events[type])) - ret = 1; - else - ret = emitter._events[type].length; - return ret; -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],15:[function(require,module,exports){ -(function (process){ -exports.alphasort = alphasort -exports.alphasorti = alphasorti -exports.setopts = setopts -exports.ownProp = ownProp -exports.makeAbs = makeAbs -exports.finish = finish -exports.mark = mark -exports.isIgnored = isIgnored -exports.childrenIgnored = childrenIgnored - -function ownProp (obj, field) { - return Object.prototype.hasOwnProperty.call(obj, field) -} - -var path = require("path") -var minimatch = require("minimatch") -var isAbsolute = require("path-is-absolute") -var Minimatch = minimatch.Minimatch - -function alphasorti (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()) -} - -function alphasort (a, b) { - return a.localeCompare(b) -} - -function setupIgnores (self, options) { - self.ignore = options.ignore || [] - - if (!Array.isArray(self.ignore)) - self.ignore = [self.ignore] - - if (self.ignore.length) { - self.ignore = self.ignore.map(ignoreMap) - } -} - -function ignoreMap (pattern) { - var gmatcher = null - if (pattern.slice(-3) === '/**') { - var gpattern = pattern.replace(/(\/\*\*)+$/, '') - gmatcher = new Minimatch(gpattern) - } - - return { - matcher: new Minimatch(pattern), - gmatcher: gmatcher - } -} - -function setopts (self, pattern, options) { - if (!options) - options = {} - - // base-matching: just use globstar for that. - if (options.matchBase && -1 === pattern.indexOf("/")) { - if (options.noglobstar) { - throw new Error("base matching requires globstar") - } - pattern = "**/" + pattern - } - - self.silent = !!options.silent - self.pattern = pattern - self.strict = options.strict !== false - self.realpath = !!options.realpath - self.realpathCache = options.realpathCache || Object.create(null) - self.follow = !!options.follow - self.dot = !!options.dot - self.mark = !!options.mark - self.nodir = !!options.nodir - if (self.nodir) - self.mark = true - self.sync = !!options.sync - self.nounique = !!options.nounique - self.nonull = !!options.nonull - self.nosort = !!options.nosort - self.nocase = !!options.nocase - self.stat = !!options.stat - self.noprocess = !!options.noprocess - - self.maxLength = options.maxLength || Infinity - self.cache = options.cache || Object.create(null) - self.statCache = options.statCache || Object.create(null) - self.symlinks = options.symlinks || Object.create(null) - - setupIgnores(self, options) - - self.changedCwd = false - var cwd = process.cwd() - if (!ownProp(options, "cwd")) - self.cwd = cwd - else { - self.cwd = options.cwd - self.changedCwd = path.resolve(options.cwd) !== cwd - } - - self.root = options.root || path.resolve(self.cwd, "/") - self.root = path.resolve(self.root) - if (process.platform === "win32") - self.root = self.root.replace(/\\/g, "/") - - self.nomount = !!options.nomount - - // disable comments and negation unless the user explicitly - // passes in false as the option. - options.nonegate = options.nonegate === false ? false : true - options.nocomment = options.nocomment === false ? false : true - deprecationWarning(options) - - self.minimatch = new Minimatch(pattern, options) - self.options = self.minimatch.options -} - -// TODO(isaacs): remove entirely in v6 -// exported to reset in tests -exports.deprecationWarned -function deprecationWarning(options) { - if (!options.nonegate || !options.nocomment) { - if (process.noDeprecation !== true && !exports.deprecationWarned) { - var msg = 'glob WARNING: comments and negation will be disabled in v6' - if (process.throwDeprecation) - throw new Error(msg) - else if (process.traceDeprecation) - console.trace(msg) - else - console.error(msg) - - exports.deprecationWarned = true - } - } -} - -function finish (self) { - var nou = self.nounique - var all = nou ? [] : Object.create(null) - - for (var i = 0, l = self.matches.length; i < l; i ++) { - var matches = self.matches[i] - if (!matches || Object.keys(matches).length === 0) { - if (self.nonull) { - // do like the shell, and spit out the literal glob - var literal = self.minimatch.globSet[i] - if (nou) - all.push(literal) - else - all[literal] = true - } - } else { - // had matches - var m = Object.keys(matches) - if (nou) - all.push.apply(all, m) - else - m.forEach(function (m) { - all[m] = true - }) - } - } - - if (!nou) - all = Object.keys(all) - - if (!self.nosort) - all = all.sort(self.nocase ? alphasorti : alphasort) - - // at *some* point we statted all of these - if (self.mark) { - for (var i = 0; i < all.length; i++) { - all[i] = self._mark(all[i]) - } - if (self.nodir) { - all = all.filter(function (e) { - return !(/\/$/.test(e)) - }) - } - } - - if (self.ignore.length) - all = all.filter(function(m) { - return !isIgnored(self, m) - }) - - self.found = all -} - -function mark (self, p) { - var abs = makeAbs(self, p) - var c = self.cache[abs] - var m = p - if (c) { - var isDir = c === 'DIR' || Array.isArray(c) - var slash = p.slice(-1) === '/' - - if (isDir && !slash) - m += '/' - else if (!isDir && slash) - m = m.slice(0, -1) - - if (m !== p) { - var mabs = makeAbs(self, m) - self.statCache[mabs] = self.statCache[abs] - self.cache[mabs] = self.cache[abs] - } - } - - return m -} - -// lotta situps... -function makeAbs (self, f) { - var abs = f - if (f.charAt(0) === '/') { - abs = path.join(self.root, f) - } else if (isAbsolute(f) || f === '') { - abs = f - } else if (self.changedCwd) { - abs = path.resolve(self.cwd, f) - } else { - abs = path.resolve(f) - } - return abs -} - - -// Return true, if pattern ends with globstar '**', for the accompanying parent directory. -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents -function isIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -function childrenIgnored (self, path) { - if (!self.ignore.length) - return false - - return self.ignore.some(function(item) { - return !!(item.gmatcher && item.gmatcher.match(path)) - }) -} - -}).call(this,require('_process')) -},{"_process":24,"minimatch":20,"path":22,"path-is-absolute":23}],16:[function(require,module,exports){ -(function (process){ -// Approach: -// -// 1. Get the minimatch set -// 2. For each pattern in the set, PROCESS(pattern, false) -// 3. Store matches per-set, then uniq them -// -// PROCESS(pattern, inGlobStar) -// Get the first [n] items from pattern that are all strings -// Join these together. This is PREFIX. -// If there is no more remaining, then stat(PREFIX) and -// add to matches if it succeeds. END. -// -// If inGlobStar and PREFIX is symlink and points to dir -// set ENTRIES = [] -// else readdir(PREFIX) as ENTRIES -// If fail, END -// -// with ENTRIES -// If pattern[n] is GLOBSTAR -// // handle the case where the globstar match is empty -// // by pruning it out, and testing the resulting pattern -// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) -// // handle other cases. -// for ENTRY in ENTRIES (not dotfiles) -// // attach globstar + tail onto the entry -// // Mark that this entry is a globstar match -// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) -// -// else // not globstar -// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) -// Test ENTRY against pattern[n] -// If fails, continue -// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) -// -// Caveat: -// Cache all stats and readdirs results to minimize syscall. Since all -// we ever care about is existence and directory-ness, we can just keep -// `true` for files, and [children,...] for directories, or `false` for -// things that don't exist. - -module.exports = glob - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var inherits = require('inherits') -var EE = require('events').EventEmitter -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var globSync = require('./sync.js') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var inflight = require('inflight') -var util = require('util') -var childrenIgnored = common.childrenIgnored -var isIgnored = common.isIgnored - -var once = require('once') - -function glob (pattern, options, cb) { - if (typeof options === 'function') cb = options, options = {} - if (!options) options = {} - - if (options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return globSync(pattern, options) - } - - return new Glob(pattern, options, cb) -} - -glob.sync = globSync -var GlobSync = glob.GlobSync = globSync.GlobSync - -// old api surface -glob.glob = glob - -glob.hasMagic = function (pattern, options_) { - var options = util._extend({}, options_) - options.noprocess = true - - var g = new Glob(pattern, options) - var set = g.minimatch.set - if (set.length > 1) - return true - - for (var j = 0; j < set[0].length; j++) { - if (typeof set[0][j] !== 'string') - return true - } - - return false -} - -glob.Glob = Glob -inherits(Glob, EE) -function Glob (pattern, options, cb) { - if (typeof options === 'function') { - cb = options - options = null - } - - if (options && options.sync) { - if (cb) - throw new TypeError('callback provided to sync glob') - return new GlobSync(pattern, options) - } - - if (!(this instanceof Glob)) - return new Glob(pattern, options, cb) - - setopts(this, pattern, options) - this._didRealPath = false - - // process each pattern in the minimatch set - var n = this.minimatch.set.length - - // The matches are stored as {: true,...} so that - // duplicates are automagically pruned. - // Later, we do an Object.keys() on these. - // Keep them as a list so we can fill in when nonull is set. - this.matches = new Array(n) - - if (typeof cb === 'function') { - cb = once(cb) - this.on('error', cb) - this.on('end', function (matches) { - cb(null, matches) - }) - } - - var self = this - var n = this.minimatch.set.length - this._processing = 0 - this.matches = new Array(n) - - this._emitQueue = [] - this._processQueue = [] - this.paused = false - - if (this.noprocess) - return this - - if (n === 0) - return done() - - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false, done) - } - - function done () { - --self._processing - if (self._processing <= 0) - self._finish() - } -} - -Glob.prototype._finish = function () { - assert(this instanceof Glob) - if (this.aborted) - return - - if (this.realpath && !this._didRealpath) - return this._realpath() - - common.finish(this) - this.emit('end', this.found) -} - -Glob.prototype._realpath = function () { - if (this._didRealpath) - return - - this._didRealpath = true - - var n = this.matches.length - if (n === 0) - return this._finish() - - var self = this - for (var i = 0; i < this.matches.length; i++) - this._realpathSet(i, next) - - function next () { - if (--n === 0) - self._finish() - } -} - -Glob.prototype._realpathSet = function (index, cb) { - var matchset = this.matches[index] - if (!matchset) - return cb() - - var found = Object.keys(matchset) - var self = this - var n = found.length - - if (n === 0) - return cb() - - var set = this.matches[index] = Object.create(null) - found.forEach(function (p, i) { - // If there's a problem with the stat, then it means that - // one or more of the links in the realpath couldn't be - // resolved. just return the abs value in that case. - p = self._makeAbs(p) - fs.realpath(p, self.realpathCache, function (er, real) { - if (!er) - set[real] = true - else if (er.syscall === 'stat') - set[p] = true - else - self.emit('error', er) // srsly wtf right here - - if (--n === 0) { - self.matches[index] = set - cb() - } - }) - }) -} - -Glob.prototype._mark = function (p) { - return common.mark(this, p) -} - -Glob.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -Glob.prototype.abort = function () { - this.aborted = true - this.emit('abort') -} - -Glob.prototype.pause = function () { - if (!this.paused) { - this.paused = true - this.emit('pause') - } -} - -Glob.prototype.resume = function () { - if (this.paused) { - this.emit('resume') - this.paused = false - if (this._emitQueue.length) { - var eq = this._emitQueue.slice(0) - this._emitQueue.length = 0 - for (var i = 0; i < eq.length; i ++) { - var e = eq[i] - this._emitMatch(e[0], e[1]) - } - } - if (this._processQueue.length) { - var pq = this._processQueue.slice(0) - this._processQueue.length = 0 - for (var i = 0; i < pq.length; i ++) { - var p = pq[i] - this._processing-- - this._process(p[0], p[1], p[2], p[3]) - } - } - } -} - -Glob.prototype._process = function (pattern, index, inGlobStar, cb) { - assert(this instanceof Glob) - assert(typeof cb === 'function') - - if (this.aborted) - return - - this._processing++ - if (this.paused) { - this._processQueue.push([pattern, index, inGlobStar, cb]) - return - } - - //console.error('PROCESS %d', this._processing, pattern) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // see if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index, cb) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip _processing - if (childrenIgnored(this, read)) - return cb() - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) -} - -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return cb() - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return cb() - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this._emitMatch(index, e) - } - // This was the last one, and no stats were needed - return cb() - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) { - if (prefix !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - this._process([e].concat(remain), index, inGlobStar, cb) - } - cb() -} - -Glob.prototype._emitMatch = function (index, e) { - if (this.aborted) - return - - if (this.matches[index][e]) - return - - if (isIgnored(this, e)) - return - - if (this.paused) { - this._emitQueue.push([index, e]) - return - } - - var abs = this._makeAbs(e) - - if (this.nodir) { - var c = this.cache[abs] - if (c === 'DIR' || Array.isArray(c)) - return - } - - if (this.mark) - e = this._mark(e) - - this.matches[index][e] = true - - var st = this.statCache[abs] - if (st) - this.emit('stat', e, st) - - this.emit('match', e) -} - -Glob.prototype._readdirInGlobStar = function (abs, cb) { - if (this.aborted) - return - - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false, cb) - - var lstatkey = 'lstat\0' + abs - var self = this - var lstatcb = inflight(lstatkey, lstatcb_) - - if (lstatcb) - fs.lstat(abs, lstatcb) - - function lstatcb_ (er, lstat) { - if (er) - return cb() - - var isSym = lstat.isSymbolicLink() - self.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) { - self.cache[abs] = 'FILE' - cb() - } else - self._readdir(abs, false, cb) - } -} - -Glob.prototype._readdir = function (abs, inGlobStar, cb) { - if (this.aborted) - return - - cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) - if (!cb) - return - - //console.error('RD %j %j', +inGlobStar, abs) - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs, cb) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return cb() - - if (Array.isArray(c)) - return cb(null, c) - } - - var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) -} - -function readdirCb (self, abs, cb) { - return function (er, entries) { - if (er) - self._readdirError(abs, er, cb) - else - self._readdirEntries(abs, entries, cb) - } -} - -Glob.prototype._readdirEntries = function (abs, entries, cb) { - if (this.aborted) - return - - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - return cb(null, entries) -} - -Glob.prototype._readdirError = function (f, er, cb) { - if (this.aborted) - return - - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) { - this.emit('error', er) - // If the error is handled, then we abort - // if not, we threw out of here - this.abort() - } - if (!this.silent) - console.error('glob error', er) - break - } - - return cb() -} - -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { - var self = this - this._readdir(abs, inGlobStar, function (er, entries) { - self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) - }) -} - - -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { - //console.error('pgs2', prefix, remain[0], entries) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return cb() - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false, cb) - - var isSym = this.symlinks[abs] - var len = entries.length - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return cb() - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true, cb) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true, cb) - } - - cb() -} - -Glob.prototype._processSimple = function (prefix, index, cb) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var self = this - this._stat(prefix, function (er, exists) { - self._processSimple2(prefix, index, er, exists, cb) - }) -} -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { - - //console.error('ps2', prefix, exists) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return cb() - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this._emitMatch(index, prefix) - cb() -} - -// Returns either 'DIR', 'FILE', or false -Glob.prototype._stat = function (f, cb) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return cb() - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return cb(null, c) - - if (needDir && c === 'FILE') - return cb() - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (stat !== undefined) { - if (stat === false) - return cb(null, stat) - else { - var type = stat.isDirectory() ? 'DIR' : 'FILE' - if (needDir && type === 'FILE') - return cb() - else - return cb(null, type, stat) - } - } - - var self = this - var statcb = inflight('stat\0' + abs, lstatcb_) - if (statcb) - fs.lstat(abs, statcb) - - function lstatcb_ (er, lstat) { - if (lstat && lstat.isSymbolicLink()) { - // If it's a symlink, then treat it as the target, unless - // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { - if (er) - self._stat2(f, abs, null, lstat, cb) - else - self._stat2(f, abs, er, stat, cb) - }) - } else { - self._stat2(f, abs, er, lstat, cb) - } - } -} - -Glob.prototype._stat2 = function (f, abs, er, stat, cb) { - if (er) { - this.statCache[abs] = false - return cb() - } - - var needDir = f.slice(-1) === '/' - this.statCache[abs] = stat - - if (abs.slice(-1) === '/' && !stat.isDirectory()) - return cb(null, false, stat) - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return cb() - - return cb(null, c, stat) -} - -}).call(this,require('_process')) -},{"./common.js":15,"./sync.js":17,"_process":24,"assert":9,"events":14,"fs":12,"inflight":18,"inherits":19,"minimatch":20,"once":21,"path":22,"path-is-absolute":23,"util":28}],17:[function(require,module,exports){ -(function (process){ -module.exports = globSync -globSync.GlobSync = GlobSync - -var fs = require('fs') -var minimatch = require('minimatch') -var Minimatch = minimatch.Minimatch -var Glob = require('./glob.js').Glob -var util = require('util') -var path = require('path') -var assert = require('assert') -var isAbsolute = require('path-is-absolute') -var common = require('./common.js') -var alphasort = common.alphasort -var alphasorti = common.alphasorti -var setopts = common.setopts -var ownProp = common.ownProp -var childrenIgnored = common.childrenIgnored - -function globSync (pattern, options) { - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - return new GlobSync(pattern, options).found -} - -function GlobSync (pattern, options) { - if (!pattern) - throw new Error('must provide pattern') - - if (typeof options === 'function' || arguments.length === 3) - throw new TypeError('callback provided to sync glob\n'+ - 'See: https://github.com/isaacs/node-glob/issues/167') - - if (!(this instanceof GlobSync)) - return new GlobSync(pattern, options) - - setopts(this, pattern, options) - - if (this.noprocess) - return this - - var n = this.minimatch.set.length - this.matches = new Array(n) - for (var i = 0; i < n; i ++) { - this._process(this.minimatch.set[i], i, false) - } - this._finish() -} - -GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) - if (this.realpath) { - var self = this - this.matches.forEach(function (matchset, index) { - var set = self.matches[index] = Object.create(null) - for (var p in matchset) { - try { - p = self._makeAbs(p) - var real = fs.realpathSync(p, self.realpathCache) - set[real] = true - } catch (er) { - if (er.syscall === 'stat') - set[self._makeAbs(p)] = true - else - throw er - } - } - }) - } - common.finish(this) -} - - -GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) - - // Get the first [n] parts of pattern that are all strings. - var n = 0 - while (typeof pattern[n] === 'string') { - n ++ - } - // now n is the index of the first one that is *not* a string. - - // See if there's anything else - var prefix - switch (n) { - // if not, then this is rather simple - case pattern.length: - this._processSimple(pattern.join('/'), index) - return - - case 0: - // pattern *starts* with some non-trivial item. - // going to readdir(cwd), but not include the prefix in matches. - prefix = null - break - - default: - // pattern has some string bits in the front. - // whatever it starts with, whether that's 'absolute' like /foo/bar, - // or 'relative' like '../baz' - prefix = pattern.slice(0, n).join('/') - break - } - - var remain = pattern.slice(n) - - // get the list of entries. - var read - if (prefix === null) - read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { - if (!prefix || !isAbsolute(prefix)) - prefix = '/' + prefix - read = prefix - } else - read = prefix - - var abs = this._makeAbs(read) - - //if ignored, skip processing - if (childrenIgnored(this, read)) - return - - var isGlobStar = remain[0] === minimatch.GLOBSTAR - if (isGlobStar) - this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) - else - this._processReaddir(prefix, read, abs, remain, index, inGlobStar) -} - - -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { - var entries = this._readdir(abs, inGlobStar) - - // if the abs isn't a dir, then nothing can match! - if (!entries) - return - - // It will only match dot entries if it starts with a dot, or if - // dot is set. Stuff like @(.foo|.bar) isn't allowed. - var pn = remain[0] - var negate = !!this.minimatch.negate - var rawGlob = pn._glob - var dotOk = this.dot || rawGlob.charAt(0) === '.' - - var matchedEntries = [] - for (var i = 0; i < entries.length; i++) { - var e = entries[i] - if (e.charAt(0) !== '.' || dotOk) { - var m - if (negate && !prefix) { - m = !e.match(pn) - } else { - m = e.match(pn) - } - if (m) - matchedEntries.push(e) - } - } - - var len = matchedEntries.length - // If there are no matched entries, then nothing matches. - if (len === 0) - return - - // if this is the last remaining pattern bit, then no need for - // an additional stat *unless* the user has specified mark or - // stat explicitly. We know they exist, since readdir returned - // them. - - if (remain.length === 1 && !this.mark && !this.stat) { - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - if (prefix) { - if (prefix.slice(-1) !== '/') - e = prefix + '/' + e - else - e = prefix + e - } - - if (e.charAt(0) === '/' && !this.nomount) { - e = path.join(this.root, e) - } - this.matches[index][e] = true - } - // This was the last one, and no stats were needed - return - } - - // now test all matched entries as stand-ins for that part - // of the pattern. - remain.shift() - for (var i = 0; i < len; i ++) { - var e = matchedEntries[i] - var newPattern - if (prefix) - newPattern = [prefix, e] - else - newPattern = [e] - this._process(newPattern.concat(remain), index, inGlobStar) - } -} - - -GlobSync.prototype._emitMatch = function (index, e) { - var abs = this._makeAbs(e) - if (this.mark) - e = this._mark(e) - - if (this.matches[index][e]) - return - - if (this.nodir) { - var c = this.cache[this._makeAbs(e)] - if (c === 'DIR' || Array.isArray(c)) - return - } - - this.matches[index][e] = true - if (this.stat) - this._stat(e) -} - - -GlobSync.prototype._readdirInGlobStar = function (abs) { - // follow all symlinked directories forever - // just proceed as if this is a non-globstar situation - if (this.follow) - return this._readdir(abs, false) - - var entries - var lstat - var stat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - // lstat failed, doesn't exist - return null - } - - var isSym = lstat.isSymbolicLink() - this.symlinks[abs] = isSym - - // If it's not a symlink or a dir, then it's definitely a regular file. - // don't bother doing a readdir in that case. - if (!isSym && !lstat.isDirectory()) - this.cache[abs] = 'FILE' - else - entries = this._readdir(abs, false) - - return entries -} - -GlobSync.prototype._readdir = function (abs, inGlobStar) { - var entries - - if (inGlobStar && !ownProp(this.symlinks, abs)) - return this._readdirInGlobStar(abs) - - if (ownProp(this.cache, abs)) { - var c = this.cache[abs] - if (!c || c === 'FILE') - return null - - if (Array.isArray(c)) - return c - } - - try { - return this._readdirEntries(abs, fs.readdirSync(abs)) - } catch (er) { - this._readdirError(abs, er) - return null - } -} - -GlobSync.prototype._readdirEntries = function (abs, entries) { - // if we haven't asked to stat everything, then just - // assume that everything in there exists, so we can avoid - // having to stat it a second time. - if (!this.mark && !this.stat) { - for (var i = 0; i < entries.length; i ++) { - var e = entries[i] - if (abs === '/') - e = abs + e - else - e = abs + '/' + e - this.cache[e] = true - } - } - - this.cache[abs] = entries - - // mark and cache dir-ness - return entries -} - -GlobSync.prototype._readdirError = function (f, er) { - // handle errors, and cache the information - switch (er.code) { - case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 - case 'ENOTDIR': // totally normal. means it *does* exist. - this.cache[this._makeAbs(f)] = 'FILE' - break - - case 'ENOENT': // not terribly unusual - case 'ELOOP': - case 'ENAMETOOLONG': - case 'UNKNOWN': - this.cache[this._makeAbs(f)] = false - break - - default: // some unusual error. Treat as failure. - this.cache[this._makeAbs(f)] = false - if (this.strict) - throw er - if (!this.silent) - console.error('glob error', er) - break - } -} - -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { - - var entries = this._readdir(abs, inGlobStar) - - // no entries means not a dir, so it can never have matches - // foo.txt/** doesn't match foo.txt - if (!entries) - return - - // test without the globstar, and with every child both below - // and replacing the globstar. - var remainWithoutGlobStar = remain.slice(1) - var gspref = prefix ? [ prefix ] : [] - var noGlobStar = gspref.concat(remainWithoutGlobStar) - - // the noGlobStar pattern exits the inGlobStar state - this._process(noGlobStar, index, false) - - var len = entries.length - var isSym = this.symlinks[abs] - - // If it's a symlink, and we're in a globstar, then stop - if (isSym && inGlobStar) - return - - for (var i = 0; i < len; i++) { - var e = entries[i] - if (e.charAt(0) === '.' && !this.dot) - continue - - // these two cases enter the inGlobStar state - var instead = gspref.concat(entries[i], remainWithoutGlobStar) - this._process(instead, index, true) - - var below = gspref.concat(entries[i], remain) - this._process(below, index, true) - } -} - -GlobSync.prototype._processSimple = function (prefix, index) { - // XXX review this. Shouldn't it be doing the mounting etc - // before doing stat? kinda weird? - var exists = this._stat(prefix) - - if (!this.matches[index]) - this.matches[index] = Object.create(null) - - // If it doesn't exist, then just mark the lack of results - if (!exists) - return - - if (prefix && isAbsolute(prefix) && !this.nomount) { - var trail = /[\/\\]$/.test(prefix) - if (prefix.charAt(0) === '/') { - prefix = path.join(this.root, prefix) - } else { - prefix = path.resolve(this.root, prefix) - if (trail) - prefix += '/' - } - } - - if (process.platform === 'win32') - prefix = prefix.replace(/\\/g, '/') - - // Mark this as a match - this.matches[index][prefix] = true -} - -// Returns either 'DIR', 'FILE', or false -GlobSync.prototype._stat = function (f) { - var abs = this._makeAbs(f) - var needDir = f.slice(-1) === '/' - - if (f.length > this.maxLength) - return false - - if (!this.stat && ownProp(this.cache, abs)) { - var c = this.cache[abs] - - if (Array.isArray(c)) - c = 'DIR' - - // It exists, but maybe not how we need it - if (!needDir || c === 'DIR') - return c - - if (needDir && c === 'FILE') - return false - - // otherwise we have to stat, because maybe c=true - // if we know it exists, but not what it is. - } - - var exists - var stat = this.statCache[abs] - if (!stat) { - var lstat - try { - lstat = fs.lstatSync(abs) - } catch (er) { - return false - } - - if (lstat.isSymbolicLink()) { - try { - stat = fs.statSync(abs) - } catch (er) { - stat = lstat - } - } else { - stat = lstat - } - } - - this.statCache[abs] = stat - - var c = stat.isDirectory() ? 'DIR' : 'FILE' - this.cache[abs] = this.cache[abs] || c - - if (needDir && c !== 'DIR') - return false - - return c -} - -GlobSync.prototype._mark = function (p) { - return common.mark(this, p) -} - -GlobSync.prototype._makeAbs = function (f) { - return common.makeAbs(this, f) -} - -}).call(this,require('_process')) -},{"./common.js":15,"./glob.js":16,"_process":24,"assert":9,"fs":12,"minimatch":20,"path":22,"path-is-absolute":23,"util":28}],18:[function(require,module,exports){ -(function (process){ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} - -}).call(this,require('_process')) -},{"_process":24,"once":21,"wrappy":29}],19:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],20:[function(require,module,exports){ -module.exports = minimatch -minimatch.Minimatch = Minimatch - -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} - -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} -var expand = require('brace-expansion') - -var plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)'}, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' } -} - -// any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]' - -// * => any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} - -},{"brace-expansion":11,"path":22}],21:[function(require,module,exports){ -var wrappy = require('wrappy') -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - -},{"wrappy":29}],22:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this,require('_process')) -},{"_process":24}],23:[function(require,module,exports){ -(function (process){ -'use strict'; - -function posix(path) { - return path.charAt(0) === '/'; -} - -function win32(path) { - // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56 - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; - var result = splitDeviceRe.exec(path); - var device = result[1] || ''; - var isUnc = Boolean(device && device.charAt(1) !== ':'); - - // UNC paths are always absolute - return Boolean(result[2] || isUnc); -} - -module.exports = process.platform === 'win32' ? win32 : posix; -module.exports.posix = posix; -module.exports.win32 = win32; - -}).call(this,require('_process')) -},{"_process":24}],24:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],25:[function(require,module,exports){ -// Underscore.js 1.8.3 -// http://underscorejs.org -// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. - -(function() { - - // Baseline setup - // -------------- - - // Establish the root object, `window` in the browser, or `exports` on the server. - var root = this; - - // Save the previous value of the `_` variable. - var previousUnderscore = root._; - - // Save bytes in the minified (but not gzipped) version: - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - - // Create quick reference variables for speed access to core prototypes. - var - push = ArrayProto.push, - slice = ArrayProto.slice, - toString = ObjProto.toString, - hasOwnProperty = ObjProto.hasOwnProperty; - - // All **ECMAScript 5** native function implementations that we hope to use - // are declared here. - var - nativeIsArray = Array.isArray, - nativeKeys = Object.keys, - nativeBind = FuncProto.bind, - nativeCreate = Object.create; - - // Naked function reference for surrogate-prototype-swapping. - var Ctor = function(){}; - - // Create a safe reference to the Underscore object for use below. - var _ = function(obj) { - if (obj instanceof _) return obj; - if (!(this instanceof _)) return new _(obj); - this._wrapped = obj; - }; - - // Export the Underscore object for **Node.js**, with - // backwards-compatibility for the old `require()` API. If we're in - // the browser, add `_` as a global object. - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = _; - } - exports._ = _; - } else { - root._ = _; - } - - // Current version. - _.VERSION = '1.8.3'; - - // Internal function that returns an efficient (for current engines) version - // of the passed-in callback, to be repeatedly applied in other Underscore - // functions. - var optimizeCb = function(func, context, argCount) { - if (context === void 0) return func; - switch (argCount == null ? 3 : argCount) { - case 1: return function(value) { - return func.call(context, value); - }; - case 2: return function(value, other) { - return func.call(context, value, other); - }; - case 3: return function(value, index, collection) { - return func.call(context, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(context, accumulator, value, index, collection); - }; - } - return function() { - return func.apply(context, arguments); - }; - }; - - // A mostly-internal function to generate callbacks that can be applied - // to each element in a collection, returning the desired result — either - // identity, an arbitrary callback, a property matcher, or a property accessor. - var cb = function(value, context, argCount) { - if (value == null) return _.identity; - if (_.isFunction(value)) return optimizeCb(value, context, argCount); - if (_.isObject(value)) return _.matcher(value); - return _.property(value); - }; - _.iteratee = function(value, context) { - return cb(value, context, Infinity); - }; - - // An internal function for creating assigner functions. - var createAssigner = function(keysFunc, undefinedOnly) { - return function(obj) { - var length = arguments.length; - if (length < 2 || obj == null) return obj; - for (var index = 1; index < length; index++) { - var source = arguments[index], - keys = keysFunc(source), - l = keys.length; - for (var i = 0; i < l; i++) { - var key = keys[i]; - if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; - } - } - return obj; - }; - }; - - // An internal function for creating a new object that inherits from another. - var baseCreate = function(prototype) { - if (!_.isObject(prototype)) return {}; - if (nativeCreate) return nativeCreate(prototype); - Ctor.prototype = prototype; - var result = new Ctor; - Ctor.prototype = null; - return result; - }; - - var property = function(key) { - return function(obj) { - return obj == null ? void 0 : obj[key]; - }; - }; - - // Helper for collection methods to determine whether a collection - // should be iterated as an array or as an object - // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength - // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 - var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; - var getLength = property('length'); - var isArrayLike = function(collection) { - var length = getLength(collection); - return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; - }; - - // Collection Functions - // -------------------- - - // The cornerstone, an `each` implementation, aka `forEach`. - // Handles raw objects in addition to array-likes. Treats all - // sparse array-likes as if they were dense. - _.each = _.forEach = function(obj, iteratee, context) { - iteratee = optimizeCb(iteratee, context); - var i, length; - if (isArrayLike(obj)) { - for (i = 0, length = obj.length; i < length; i++) { - iteratee(obj[i], i, obj); - } - } else { - var keys = _.keys(obj); - for (i = 0, length = keys.length; i < length; i++) { - iteratee(obj[keys[i]], keys[i], obj); - } - } - return obj; - }; - - // Return the results of applying the iteratee to each element. - _.map = _.collect = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - results = Array(length); - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - results[index] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Create a reducing function iterating left or right. - function createReduce(dir) { - // Optimized iterator function as using arguments.length - // in the main function will deoptimize the, see #1991. - function iterator(obj, iteratee, memo, keys, index, length) { - for (; index >= 0 && index < length; index += dir) { - var currentKey = keys ? keys[index] : index; - memo = iteratee(memo, obj[currentKey], currentKey, obj); - } - return memo; - } - - return function(obj, iteratee, memo, context) { - iteratee = optimizeCb(iteratee, context, 4); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length, - index = dir > 0 ? 0 : length - 1; - // Determine the initial value if none is provided. - if (arguments.length < 3) { - memo = obj[keys ? keys[index] : index]; - index += dir; - } - return iterator(obj, iteratee, memo, keys, index, length); - }; - } - - // **Reduce** builds up a single result from a list of values, aka `inject`, - // or `foldl`. - _.reduce = _.foldl = _.inject = createReduce(1); - - // The right-associative version of reduce, also known as `foldr`. - _.reduceRight = _.foldr = createReduce(-1); - - // Return the first value which passes a truth test. Aliased as `detect`. - _.find = _.detect = function(obj, predicate, context) { - var key; - if (isArrayLike(obj)) { - key = _.findIndex(obj, predicate, context); - } else { - key = _.findKey(obj, predicate, context); - } - if (key !== void 0 && key !== -1) return obj[key]; - }; - - // Return all the elements that pass a truth test. - // Aliased as `select`. - _.filter = _.select = function(obj, predicate, context) { - var results = []; - predicate = cb(predicate, context); - _.each(obj, function(value, index, list) { - if (predicate(value, index, list)) results.push(value); - }); - return results; - }; - - // Return all the elements for which a truth test fails. - _.reject = function(obj, predicate, context) { - return _.filter(obj, _.negate(cb(predicate)), context); - }; - - // Determine whether all of the elements match a truth test. - // Aliased as `all`. - _.every = _.all = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (!predicate(obj[currentKey], currentKey, obj)) return false; - } - return true; - }; - - // Determine if at least one element in the object matches a truth test. - // Aliased as `any`. - _.some = _.any = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = !isArrayLike(obj) && _.keys(obj), - length = (keys || obj).length; - for (var index = 0; index < length; index++) { - var currentKey = keys ? keys[index] : index; - if (predicate(obj[currentKey], currentKey, obj)) return true; - } - return false; - }; - - // Determine if the array or object contains a given item (using `===`). - // Aliased as `includes` and `include`. - _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - if (typeof fromIndex != 'number' || guard) fromIndex = 0; - return _.indexOf(obj, item, fromIndex) >= 0; - }; - - // Invoke a method (with arguments) on every item in a collection. - _.invoke = function(obj, method) { - var args = slice.call(arguments, 2); - var isFunc = _.isFunction(method); - return _.map(obj, function(value) { - var func = isFunc ? method : value[method]; - return func == null ? func : func.apply(value, args); - }); - }; - - // Convenience version of a common use case of `map`: fetching a property. - _.pluck = function(obj, key) { - return _.map(obj, _.property(key)); - }; - - // Convenience version of a common use case of `filter`: selecting only objects - // containing specific `key:value` pairs. - _.where = function(obj, attrs) { - return _.filter(obj, _.matcher(attrs)); - }; - - // Convenience version of a common use case of `find`: getting the first object - // containing specific `key:value` pairs. - _.findWhere = function(obj, attrs) { - return _.find(obj, _.matcher(attrs)); - }; - - // Return the maximum element (or element-based computation). - _.max = function(obj, iteratee, context) { - var result = -Infinity, lastComputed = -Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value > result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed > lastComputed || computed === -Infinity && result === -Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Return the minimum element (or element-based computation). - _.min = function(obj, iteratee, context) { - var result = Infinity, lastComputed = Infinity, - value, computed; - if (iteratee == null && obj != null) { - obj = isArrayLike(obj) ? obj : _.values(obj); - for (var i = 0, length = obj.length; i < length; i++) { - value = obj[i]; - if (value < result) { - result = value; - } - } - } else { - iteratee = cb(iteratee, context); - _.each(obj, function(value, index, list) { - computed = iteratee(value, index, list); - if (computed < lastComputed || computed === Infinity && result === Infinity) { - result = value; - lastComputed = computed; - } - }); - } - return result; - }; - - // Shuffle a collection, using the modern version of the - // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). - _.shuffle = function(obj) { - var set = isArrayLike(obj) ? obj : _.values(obj); - var length = set.length; - var shuffled = Array(length); - for (var index = 0, rand; index < length; index++) { - rand = _.random(0, index); - if (rand !== index) shuffled[index] = shuffled[rand]; - shuffled[rand] = set[index]; - } - return shuffled; - }; - - // Sample **n** random values from a collection. - // If **n** is not specified, returns a single random element. - // The internal `guard` argument allows it to work with `map`. - _.sample = function(obj, n, guard) { - if (n == null || guard) { - if (!isArrayLike(obj)) obj = _.values(obj); - return obj[_.random(obj.length - 1)]; - } - return _.shuffle(obj).slice(0, Math.max(0, n)); - }; - - // Sort the object's values by a criterion produced by an iteratee. - _.sortBy = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - return _.pluck(_.map(obj, function(value, index, list) { - return { - value: value, - index: index, - criteria: iteratee(value, index, list) - }; - }).sort(function(left, right) { - var a = left.criteria; - var b = right.criteria; - if (a !== b) { - if (a > b || a === void 0) return 1; - if (a < b || b === void 0) return -1; - } - return left.index - right.index; - }), 'value'); - }; - - // An internal function used for aggregate "group by" operations. - var group = function(behavior) { - return function(obj, iteratee, context) { - var result = {}; - iteratee = cb(iteratee, context); - _.each(obj, function(value, index) { - var key = iteratee(value, index, obj); - behavior(result, value, key); - }); - return result; - }; - }; - - // Groups the object's values by a criterion. Pass either a string attribute - // to group by, or a function that returns the criterion. - _.groupBy = group(function(result, value, key) { - if (_.has(result, key)) result[key].push(value); else result[key] = [value]; - }); - - // Indexes the object's values by a criterion, similar to `groupBy`, but for - // when you know that your index values will be unique. - _.indexBy = group(function(result, value, key) { - result[key] = value; - }); - - // Counts instances of an object that group by a certain criterion. Pass - // either a string attribute to count by, or a function that returns the - // criterion. - _.countBy = group(function(result, value, key) { - if (_.has(result, key)) result[key]++; else result[key] = 1; - }); - - // Safely create a real, live array from anything iterable. - _.toArray = function(obj) { - if (!obj) return []; - if (_.isArray(obj)) return slice.call(obj); - if (isArrayLike(obj)) return _.map(obj, _.identity); - return _.values(obj); - }; - - // Return the number of elements in an object. - _.size = function(obj) { - if (obj == null) return 0; - return isArrayLike(obj) ? obj.length : _.keys(obj).length; - }; - - // Split a collection into two arrays: one whose elements all satisfy the given - // predicate, and one whose elements all do not satisfy the predicate. - _.partition = function(obj, predicate, context) { - predicate = cb(predicate, context); - var pass = [], fail = []; - _.each(obj, function(value, key, obj) { - (predicate(value, key, obj) ? pass : fail).push(value); - }); - return [pass, fail]; - }; - - // Array Functions - // --------------- - - // Get the first element of an array. Passing **n** will return the first N - // values in the array. Aliased as `head` and `take`. The **guard** check - // allows it to work with `_.map`. - _.first = _.head = _.take = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[0]; - return _.initial(array, array.length - n); - }; - - // Returns everything but the last entry of the array. Especially useful on - // the arguments object. Passing **n** will return all the values in - // the array, excluding the last N. - _.initial = function(array, n, guard) { - return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); - }; - - // Get the last element of an array. Passing **n** will return the last N - // values in the array. - _.last = function(array, n, guard) { - if (array == null) return void 0; - if (n == null || guard) return array[array.length - 1]; - return _.rest(array, Math.max(0, array.length - n)); - }; - - // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. - // Especially useful on the arguments object. Passing an **n** will return - // the rest N values in the array. - _.rest = _.tail = _.drop = function(array, n, guard) { - return slice.call(array, n == null || guard ? 1 : n); - }; - - // Trim out all falsy values from an array. - _.compact = function(array) { - return _.filter(array, _.identity); - }; - - // Internal implementation of a recursive `flatten` function. - var flatten = function(input, shallow, strict, startIndex) { - var output = [], idx = 0; - for (var i = startIndex || 0, length = getLength(input); i < length; i++) { - var value = input[i]; - if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { - //flatten current level of array or arguments object - if (!shallow) value = flatten(value, shallow, strict); - var j = 0, len = value.length; - output.length += len; - while (j < len) { - output[idx++] = value[j++]; - } - } else if (!strict) { - output[idx++] = value; - } - } - return output; - }; - - // Flatten out an array, either recursively (by default), or just one level. - _.flatten = function(array, shallow) { - return flatten(array, shallow, false); - }; - - // Return a version of the array that does not contain the specified value(s). - _.without = function(array) { - return _.difference(array, slice.call(arguments, 1)); - }; - - // Produce a duplicate-free version of the array. If the array has already - // been sorted, you have the option of using a faster algorithm. - // Aliased as `unique`. - _.uniq = _.unique = function(array, isSorted, iteratee, context) { - if (!_.isBoolean(isSorted)) { - context = iteratee; - iteratee = isSorted; - isSorted = false; - } - if (iteratee != null) iteratee = cb(iteratee, context); - var result = []; - var seen = []; - for (var i = 0, length = getLength(array); i < length; i++) { - var value = array[i], - computed = iteratee ? iteratee(value, i, array) : value; - if (isSorted) { - if (!i || seen !== computed) result.push(value); - seen = computed; - } else if (iteratee) { - if (!_.contains(seen, computed)) { - seen.push(computed); - result.push(value); - } - } else if (!_.contains(result, value)) { - result.push(value); - } - } - return result; - }; - - // Produce an array that contains the union: each distinct element from all of - // the passed-in arrays. - _.union = function() { - return _.uniq(flatten(arguments, true, true)); - }; - - // Produce an array that contains every item shared between all the - // passed-in arrays. - _.intersection = function(array) { - var result = []; - var argsLength = arguments.length; - for (var i = 0, length = getLength(array); i < length; i++) { - var item = array[i]; - if (_.contains(result, item)) continue; - for (var j = 1; j < argsLength; j++) { - if (!_.contains(arguments[j], item)) break; - } - if (j === argsLength) result.push(item); - } - return result; - }; - - // Take the difference between one array and a number of other arrays. - // Only the elements present in just the first array will remain. - _.difference = function(array) { - var rest = flatten(arguments, true, true, 1); - return _.filter(array, function(value){ - return !_.contains(rest, value); - }); - }; - - // Zip together multiple lists into a single array -- elements that share - // an index go together. - _.zip = function() { - return _.unzip(arguments); - }; - - // Complement of _.zip. Unzip accepts an array of arrays and groups - // each array's elements on shared indices - _.unzip = function(array) { - var length = array && _.max(array, getLength).length || 0; - var result = Array(length); - - for (var index = 0; index < length; index++) { - result[index] = _.pluck(array, index); - } - return result; - }; - - // Converts lists into objects. Pass either a single array of `[key, value]` - // pairs, or two parallel arrays of the same length -- one of keys, and one of - // the corresponding values. - _.object = function(list, values) { - var result = {}; - for (var i = 0, length = getLength(list); i < length; i++) { - if (values) { - result[list[i]] = values[i]; - } else { - result[list[i][0]] = list[i][1]; - } - } - return result; - }; - - // Generator function to create the findIndex and findLastIndex functions - function createPredicateIndexFinder(dir) { - return function(array, predicate, context) { - predicate = cb(predicate, context); - var length = getLength(array); - var index = dir > 0 ? 0 : length - 1; - for (; index >= 0 && index < length; index += dir) { - if (predicate(array[index], index, array)) return index; - } - return -1; - }; - } - - // Returns the first index on an array-like that passes a predicate test - _.findIndex = createPredicateIndexFinder(1); - _.findLastIndex = createPredicateIndexFinder(-1); - - // Use a comparator function to figure out the smallest index at which - // an object should be inserted so as to maintain order. Uses binary search. - _.sortedIndex = function(array, obj, iteratee, context) { - iteratee = cb(iteratee, context, 1); - var value = iteratee(obj); - var low = 0, high = getLength(array); - while (low < high) { - var mid = Math.floor((low + high) / 2); - if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; - } - return low; - }; - - // Generator function to create the indexOf and lastIndexOf functions - function createIndexFinder(dir, predicateFind, sortedIndex) { - return function(array, item, idx) { - var i = 0, length = getLength(array); - if (typeof idx == 'number') { - if (dir > 0) { - i = idx >= 0 ? idx : Math.max(idx + length, i); - } else { - length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; - } - } else if (sortedIndex && idx && length) { - idx = sortedIndex(array, item); - return array[idx] === item ? idx : -1; - } - if (item !== item) { - idx = predicateFind(slice.call(array, i, length), _.isNaN); - return idx >= 0 ? idx + i : -1; - } - for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { - if (array[idx] === item) return idx; - } - return -1; - }; - } - - // Return the position of the first occurrence of an item in an array, - // or -1 if the item is not included in the array. - // If the array is large and already in sort order, pass `true` - // for **isSorted** to use binary search. - _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); - _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); - - // Generate an integer Array containing an arithmetic progression. A port of - // the native Python `range()` function. See - // [the Python documentation](http://docs.python.org/library/functions.html#range). - _.range = function(start, stop, step) { - if (stop == null) { - stop = start || 0; - start = 0; - } - step = step || 1; - - var length = Math.max(Math.ceil((stop - start) / step), 0); - var range = Array(length); - - for (var idx = 0; idx < length; idx++, start += step) { - range[idx] = start; - } - - return range; - }; - - // Function (ahem) Functions - // ------------------ - - // Determines whether to execute a function as a constructor - // or a normal function with the provided arguments - var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { - if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); - var self = baseCreate(sourceFunc.prototype); - var result = sourceFunc.apply(self, args); - if (_.isObject(result)) return result; - return self; - }; - - // Create a function bound to a given object (assigning `this`, and arguments, - // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if - // available. - _.bind = function(func, context) { - if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); - if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); - var args = slice.call(arguments, 2); - var bound = function() { - return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); - }; - return bound; - }; - - // Partially apply a function by creating a version that has had some of its - // arguments pre-filled, without changing its dynamic `this` context. _ acts - // as a placeholder, allowing any combination of arguments to be pre-filled. - _.partial = function(func) { - var boundArgs = slice.call(arguments, 1); - var bound = function() { - var position = 0, length = boundArgs.length; - var args = Array(length); - for (var i = 0; i < length; i++) { - args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; - } - while (position < arguments.length) args.push(arguments[position++]); - return executeBound(func, bound, this, this, args); - }; - return bound; - }; - - // Bind a number of an object's methods to that object. Remaining arguments - // are the method names to be bound. Useful for ensuring that all callbacks - // defined on an object belong to it. - _.bindAll = function(obj) { - var i, length = arguments.length, key; - if (length <= 1) throw new Error('bindAll must be passed function names'); - for (i = 1; i < length; i++) { - key = arguments[i]; - obj[key] = _.bind(obj[key], obj); - } - return obj; - }; - - // Memoize an expensive function by storing its results. - _.memoize = function(func, hasher) { - var memoize = function(key) { - var cache = memoize.cache; - var address = '' + (hasher ? hasher.apply(this, arguments) : key); - if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); - return cache[address]; - }; - memoize.cache = {}; - return memoize; - }; - - // Delays a function for the given number of milliseconds, and then calls - // it with the arguments supplied. - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function(){ - return func.apply(null, args); - }, wait); - }; - - // Defers a function, scheduling it to run after the current call stack has - // cleared. - _.defer = _.partial(_.delay, _, 1); - - // Returns a function, that, when invoked, will only be triggered at most once - // during a given window of time. Normally, the throttled function will run - // as much as it can, without ever going more than once per `wait` duration; - // but if you'd like to disable the execution on the leading edge, pass - // `{leading: false}`. To disable execution on the trailing edge, ditto. - _.throttle = function(func, wait, options) { - var context, args, result; - var timeout = null; - var previous = 0; - if (!options) options = {}; - var later = function() { - previous = options.leading === false ? 0 : _.now(); - timeout = null; - result = func.apply(context, args); - if (!timeout) context = args = null; - }; - return function() { - var now = _.now(); - if (!previous && options.leading === false) previous = now; - var remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = now; - result = func.apply(context, args); - if (!timeout) context = args = null; - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }; - - // Returns a function, that, as long as it continues to be invoked, will not - // be triggered. The function will be called after it stops being called for - // N milliseconds. If `immediate` is passed, trigger the function on the - // leading edge, instead of the trailing. - _.debounce = function(func, wait, immediate) { - var timeout, args, context, timestamp, result; - - var later = function() { - var last = _.now() - timestamp; - - if (last < wait && last >= 0) { - timeout = setTimeout(later, wait - last); - } else { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - if (!timeout) context = args = null; - } - } - }; - - return function() { - context = this; - args = arguments; - timestamp = _.now(); - var callNow = immediate && !timeout; - if (!timeout) timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - - return result; - }; - }; - - // Returns the first function passed as an argument to the second, - // allowing you to adjust arguments, run code before and after, and - // conditionally execute the original function. - _.wrap = function(func, wrapper) { - return _.partial(wrapper, func); - }; - - // Returns a negated version of the passed-in predicate. - _.negate = function(predicate) { - return function() { - return !predicate.apply(this, arguments); - }; - }; - - // Returns a function that is the composition of a list of functions, each - // consuming the return value of the function that follows. - _.compose = function() { - var args = arguments; - var start = args.length - 1; - return function() { - var i = start; - var result = args[start].apply(this, arguments); - while (i--) result = args[i].call(this, result); - return result; - }; - }; - - // Returns a function that will only be executed on and after the Nth call. - _.after = function(times, func) { - return function() { - if (--times < 1) { - return func.apply(this, arguments); - } - }; - }; - - // Returns a function that will only be executed up to (but not including) the Nth call. - _.before = function(times, func) { - var memo; - return function() { - if (--times > 0) { - memo = func.apply(this, arguments); - } - if (times <= 1) func = null; - return memo; - }; - }; - - // Returns a function that will be executed at most one time, no matter how - // often you call it. Useful for lazy initialization. - _.once = _.partial(_.before, 2); - - // Object Functions - // ---------------- - - // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. - var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); - var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', - 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; - - function collectNonEnumProps(obj, keys) { - var nonEnumIdx = nonEnumerableProps.length; - var constructor = obj.constructor; - var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; - - // Constructor is a special case. - var prop = 'constructor'; - if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); - - while (nonEnumIdx--) { - prop = nonEnumerableProps[nonEnumIdx]; - if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { - keys.push(prop); - } - } - } - - // Retrieve the names of an object's own properties. - // Delegates to **ECMAScript 5**'s native `Object.keys` - _.keys = function(obj) { - if (!_.isObject(obj)) return []; - if (nativeKeys) return nativeKeys(obj); - var keys = []; - for (var key in obj) if (_.has(obj, key)) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve all the property names of an object. - _.allKeys = function(obj) { - if (!_.isObject(obj)) return []; - var keys = []; - for (var key in obj) keys.push(key); - // Ahem, IE < 9. - if (hasEnumBug) collectNonEnumProps(obj, keys); - return keys; - }; - - // Retrieve the values of an object's properties. - _.values = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var values = Array(length); - for (var i = 0; i < length; i++) { - values[i] = obj[keys[i]]; - } - return values; - }; - - // Returns the results of applying the iteratee to each element of the object - // In contrast to _.map it returns an object - _.mapObject = function(obj, iteratee, context) { - iteratee = cb(iteratee, context); - var keys = _.keys(obj), - length = keys.length, - results = {}, - currentKey; - for (var index = 0; index < length; index++) { - currentKey = keys[index]; - results[currentKey] = iteratee(obj[currentKey], currentKey, obj); - } - return results; - }; - - // Convert an object into a list of `[key, value]` pairs. - _.pairs = function(obj) { - var keys = _.keys(obj); - var length = keys.length; - var pairs = Array(length); - for (var i = 0; i < length; i++) { - pairs[i] = [keys[i], obj[keys[i]]]; - } - return pairs; - }; - - // Invert the keys and values of an object. The values must be serializable. - _.invert = function(obj) { - var result = {}; - var keys = _.keys(obj); - for (var i = 0, length = keys.length; i < length; i++) { - result[obj[keys[i]]] = keys[i]; - } - return result; - }; - - // Return a sorted list of the function names available on the object. - // Aliased as `methods` - _.functions = _.methods = function(obj) { - var names = []; - for (var key in obj) { - if (_.isFunction(obj[key])) names.push(key); - } - return names.sort(); - }; - - // Extend a given object with all the properties in passed-in object(s). - _.extend = createAssigner(_.allKeys); - - // Assigns a given object with all the own properties in the passed-in object(s) - // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) - _.extendOwn = _.assign = createAssigner(_.keys); - - // Returns the first key on an object that passes a predicate test - _.findKey = function(obj, predicate, context) { - predicate = cb(predicate, context); - var keys = _.keys(obj), key; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; - if (predicate(obj[key], key, obj)) return key; - } - }; - - // Return a copy of the object only containing the whitelisted properties. - _.pick = function(object, oiteratee, context) { - var result = {}, obj = object, iteratee, keys; - if (obj == null) return result; - if (_.isFunction(oiteratee)) { - keys = _.allKeys(obj); - iteratee = optimizeCb(oiteratee, context); - } else { - keys = flatten(arguments, false, false, 1); - iteratee = function(value, key, obj) { return key in obj; }; - obj = Object(obj); - } - for (var i = 0, length = keys.length; i < length; i++) { - var key = keys[i]; - var value = obj[key]; - if (iteratee(value, key, obj)) result[key] = value; - } - return result; - }; - - // Return a copy of the object without the blacklisted properties. - _.omit = function(obj, iteratee, context) { - if (_.isFunction(iteratee)) { - iteratee = _.negate(iteratee); - } else { - var keys = _.map(flatten(arguments, false, false, 1), String); - iteratee = function(value, key) { - return !_.contains(keys, key); - }; - } - return _.pick(obj, iteratee, context); - }; - - // Fill in a given object with default properties. - _.defaults = createAssigner(_.allKeys, true); - - // Creates an object that inherits from the given prototype object. - // If additional properties are provided then they will be added to the - // created object. - _.create = function(prototype, props) { - var result = baseCreate(prototype); - if (props) _.extendOwn(result, props); - return result; - }; - - // Create a (shallow-cloned) duplicate of an object. - _.clone = function(obj) { - if (!_.isObject(obj)) return obj; - return _.isArray(obj) ? obj.slice() : _.extend({}, obj); - }; - - // Invokes interceptor with the obj, and then returns obj. - // The primary purpose of this method is to "tap into" a method chain, in - // order to perform operations on intermediate results within the chain. - _.tap = function(obj, interceptor) { - interceptor(obj); - return obj; - }; - - // Returns whether an object has a given set of `key:value` pairs. - _.isMatch = function(object, attrs) { - var keys = _.keys(attrs), length = keys.length; - if (object == null) return !length; - var obj = Object(object); - for (var i = 0; i < length; i++) { - var key = keys[i]; - if (attrs[key] !== obj[key] || !(key in obj)) return false; - } - return true; - }; - - - // Internal recursive comparison function for `isEqual`. - var eq = function(a, b, aStack, bStack) { - // Identical objects are equal. `0 === -0`, but they aren't identical. - // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). - if (a === b) return a !== 0 || 1 / a === 1 / b; - // A strict comparison is necessary because `null == undefined`. - if (a == null || b == null) return a === b; - // Unwrap any wrapped objects. - if (a instanceof _) a = a._wrapped; - if (b instanceof _) b = b._wrapped; - // Compare `[[Class]]` names. - var className = toString.call(a); - if (className !== toString.call(b)) return false; - switch (className) { - // Strings, numbers, regular expressions, dates, and booleans are compared by value. - case '[object RegExp]': - // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') - case '[object String]': - // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is - // equivalent to `new String("5")`. - return '' + a === '' + b; - case '[object Number]': - // `NaN`s are equivalent, but non-reflexive. - // Object(NaN) is equivalent to NaN - if (+a !== +a) return +b !== +b; - // An `egal` comparison is performed for other numeric values. - return +a === 0 ? 1 / +a === 1 / b : +a === +b; - case '[object Date]': - case '[object Boolean]': - // Coerce dates and booleans to numeric primitive values. Dates are compared by their - // millisecond representations. Note that invalid dates with millisecond representations - // of `NaN` are not equivalent. - return +a === +b; - } - - var areArrays = className === '[object Array]'; - if (!areArrays) { - if (typeof a != 'object' || typeof b != 'object') return false; - - // Objects with different constructors are not equivalent, but `Object`s or `Array`s - // from different frames are. - var aCtor = a.constructor, bCtor = b.constructor; - if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && - _.isFunction(bCtor) && bCtor instanceof bCtor) - && ('constructor' in a && 'constructor' in b)) { - return false; - } - } - // Assume equality for cyclic structures. The algorithm for detecting cyclic - // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. - - // Initializing stack of traversed objects. - // It's done here since we only need them for objects and arrays comparison. - aStack = aStack || []; - bStack = bStack || []; - var length = aStack.length; - while (length--) { - // Linear search. Performance is inversely proportional to the number of - // unique nested structures. - if (aStack[length] === a) return bStack[length] === b; - } - - // Add the first object to the stack of traversed objects. - aStack.push(a); - bStack.push(b); - - // Recursively compare objects and arrays. - if (areArrays) { - // Compare array lengths to determine if a deep comparison is necessary. - length = a.length; - if (length !== b.length) return false; - // Deep compare the contents, ignoring non-numeric properties. - while (length--) { - if (!eq(a[length], b[length], aStack, bStack)) return false; - } - } else { - // Deep compare objects. - var keys = _.keys(a), key; - length = keys.length; - // Ensure that both objects contain the same number of properties before comparing deep equality. - if (_.keys(b).length !== length) return false; - while (length--) { - // Deep compare each member - key = keys[length]; - if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; - } - } - // Remove the first object from the stack of traversed objects. - aStack.pop(); - bStack.pop(); - return true; - }; - - // Perform a deep comparison to check if two objects are equal. - _.isEqual = function(a, b) { - return eq(a, b); - }; - - // Is a given array, string, or object empty? - // An "empty" object has no enumerable own-properties. - _.isEmpty = function(obj) { - if (obj == null) return true; - if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; - return _.keys(obj).length === 0; - }; - - // Is a given value a DOM element? - _.isElement = function(obj) { - return !!(obj && obj.nodeType === 1); - }; - - // Is a given value an array? - // Delegates to ECMA5's native Array.isArray - _.isArray = nativeIsArray || function(obj) { - return toString.call(obj) === '[object Array]'; - }; - - // Is a given variable an object? - _.isObject = function(obj) { - var type = typeof obj; - return type === 'function' || type === 'object' && !!obj; - }; - - // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. - _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { - _['is' + name] = function(obj) { - return toString.call(obj) === '[object ' + name + ']'; - }; - }); - - // Define a fallback version of the method in browsers (ahem, IE < 9), where - // there isn't any inspectable "Arguments" type. - if (!_.isArguments(arguments)) { - _.isArguments = function(obj) { - return _.has(obj, 'callee'); - }; - } - - // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, - // IE 11 (#1621), and in Safari 8 (#1929). - if (typeof /./ != 'function' && typeof Int8Array != 'object') { - _.isFunction = function(obj) { - return typeof obj == 'function' || false; - }; - } - - // Is a given object a finite number? - _.isFinite = function(obj) { - return isFinite(obj) && !isNaN(parseFloat(obj)); - }; - - // Is the given value `NaN`? (NaN is the only number which does not equal itself). - _.isNaN = function(obj) { - return _.isNumber(obj) && obj !== +obj; - }; - - // Is a given value a boolean? - _.isBoolean = function(obj) { - return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; - }; - - // Is a given value equal to null? - _.isNull = function(obj) { - return obj === null; - }; - - // Is a given variable undefined? - _.isUndefined = function(obj) { - return obj === void 0; - }; - - // Shortcut function for checking if an object has a given property directly - // on itself (in other words, not on a prototype). - _.has = function(obj, key) { - return obj != null && hasOwnProperty.call(obj, key); - }; - - // Utility Functions - // ----------------- - - // Run Underscore.js in *noConflict* mode, returning the `_` variable to its - // previous owner. Returns a reference to the Underscore object. - _.noConflict = function() { - root._ = previousUnderscore; - return this; - }; - - // Keep the identity function around for default iteratees. - _.identity = function(value) { - return value; - }; - - // Predicate-generating functions. Often useful outside of Underscore. - _.constant = function(value) { - return function() { - return value; - }; - }; - - _.noop = function(){}; - - _.property = property; - - // Generates a function for a given object that returns a given property. - _.propertyOf = function(obj) { - return obj == null ? function(){} : function(key) { - return obj[key]; - }; - }; - - // Returns a predicate for checking whether an object has a given set of - // `key:value` pairs. - _.matcher = _.matches = function(attrs) { - attrs = _.extendOwn({}, attrs); - return function(obj) { - return _.isMatch(obj, attrs); - }; - }; - - // Run a function **n** times. - _.times = function(n, iteratee, context) { - var accum = Array(Math.max(0, n)); - iteratee = optimizeCb(iteratee, context, 1); - for (var i = 0; i < n; i++) accum[i] = iteratee(i); - return accum; - }; - - // Return a random integer between min and max (inclusive). - _.random = function(min, max) { - if (max == null) { - max = min; - min = 0; - } - return min + Math.floor(Math.random() * (max - min + 1)); - }; - - // A (possibly faster) way to get the current timestamp as an integer. - _.now = Date.now || function() { - return new Date().getTime(); - }; - - // List of HTML entities for escaping. - var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - var unescapeMap = _.invert(escapeMap); - - // Functions for escaping and unescaping strings to/from HTML interpolation. - var createEscaper = function(map) { - var escaper = function(match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped - var source = '(?:' + _.keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function(string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; - }; - _.escape = createEscaper(escapeMap); - _.unescape = createEscaper(unescapeMap); - - // If the value of the named `property` is a function then invoke it with the - // `object` as context; otherwise, return it. - _.result = function(object, property, fallback) { - var value = object == null ? void 0 : object[property]; - if (value === void 0) { - value = fallback; - } - return _.isFunction(value) ? value.call(object) : value; - }; - - // Generate a unique integer id (unique within the entire client session). - // Useful for temporary DOM ids. - var idCounter = 0; - _.uniqueId = function(prefix) { - var id = ++idCounter + ''; - return prefix ? prefix + id : id; - }; - - // By default, Underscore uses ERB-style template delimiters, change the - // following template settings to use alternative delimiters. - _.templateSettings = { - evaluate : /<%([\s\S]+?)%>/g, - interpolate : /<%=([\s\S]+?)%>/g, - escape : /<%-([\s\S]+?)%>/g - }; - - // When customizing `templateSettings`, if you don't want to define an - // interpolation, evaluation or escaping regex, we need one that is - // guaranteed not to match. - var noMatch = /(.)^/; - - // Certain characters need to be escaped so that they can be put into a - // string literal. - var escapes = { - "'": "'", - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - var escaper = /\\|'|\r|\n|\u2028|\u2029/g; - - var escapeChar = function(match) { - return '\\' + escapes[match]; - }; - - // JavaScript micro-templating, similar to John Resig's implementation. - // Underscore templating handles arbitrary delimiters, preserves whitespace, - // and correctly escapes quotes within interpolated code. - // NB: `oldSettings` only exists for backwards compatibility. - _.template = function(text, settings, oldSettings) { - if (!settings && oldSettings) settings = oldSettings; - settings = _.defaults({}, settings, _.templateSettings); - - // Combine delimiters into one regular expression via alternation. - var matcher = RegExp([ - (settings.escape || noMatch).source, - (settings.interpolate || noMatch).source, - (settings.evaluate || noMatch).source - ].join('|') + '|$', 'g'); - - // Compile the template source, escaping string literals appropriately. - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escaper, escapeChar); - index = offset + match.length; - - if (escape) { - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; - } else if (interpolate) { - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; - } else if (evaluate) { - source += "';\n" + evaluate + "\n__p+='"; - } - - // Adobe VMs need the match returned to produce the correct offest. - return match; - }); - source += "';\n"; - - // If a variable is not specified, place data values in local scope. - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = "var __t,__p='',__j=Array.prototype.join," + - "print=function(){__p+=__j.call(arguments,'');};\n" + - source + 'return __p;\n'; - - try { - var render = new Function(settings.variable || 'obj', '_', source); - } catch (e) { - e.source = source; - throw e; - } - - var template = function(data) { - return render.call(this, data, _); - }; - - // Provide the compiled source as a convenience for precompilation. - var argument = settings.variable || 'obj'; - template.source = 'function(' + argument + '){\n' + source + '}'; - - return template; - }; - - // Add a "chain" function. Start chaining a wrapped Underscore object. - _.chain = function(obj) { - var instance = _(obj); - instance._chain = true; - return instance; - }; - - // OOP - // --------------- - // If Underscore is called as a function, it returns a wrapped object that - // can be used OO-style. This wrapper holds altered versions of all the - // underscore functions. Wrapped objects may be chained. - - // Helper function to continue chaining intermediate results. - var result = function(instance, obj) { - return instance._chain ? _(obj).chain() : obj; - }; - - // Add your own custom functions to the Underscore object. - _.mixin = function(obj) { - _.each(_.functions(obj), function(name) { - var func = _[name] = obj[name]; - _.prototype[name] = function() { - var args = [this._wrapped]; - push.apply(args, arguments); - return result(this, func.apply(_, args)); - }; - }); - }; - - // Add all of the Underscore functions to the wrapper object. - _.mixin(_); - - // Add all mutator Array functions to the wrapper. - _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - var obj = this._wrapped; - method.apply(obj, arguments); - if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; - return result(this, obj); - }; - }); - - // Add all accessor Array functions to the wrapper. - _.each(['concat', 'join', 'slice'], function(name) { - var method = ArrayProto[name]; - _.prototype[name] = function() { - return result(this, method.apply(this._wrapped, arguments)); - }; - }); - - // Extracts the result from a wrapped and chained object. - _.prototype.value = function() { - return this._wrapped; - }; - - // Provide unwrapping proxy for some methods used in engine operations - // such as arithmetic and JSON stringification. - _.prototype.valueOf = _.prototype.toJSON = _.prototype.value; - - _.prototype.toString = function() { - return '' + this._wrapped; - }; - - // AMD registration happens at the end for compatibility with AMD loaders - // that may not enforce next-turn semantics on modules. Even though general - // practice for AMD registration is to be anonymous, underscore registers - // as a named module because, like jQuery, it is a base library that is - // popular enough to be bundled in a third party lib, but not be part of - // an AMD load request. Those cases could generate an error when an - // anonymous define() is called outside of a loader request. - if (typeof define === 'function' && define.amd) { - define('underscore', [], function() { - return _; - }); - } -}.call(this)); - -},{}],26:[function(require,module,exports){ -arguments[4][19][0].apply(exports,arguments) -},{"dup":19}],27:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],28:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":27,"_process":24,"inherits":26}],29:[function(require,module,exports){ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - -},{}]},{},[7])(7) -}); \ No newline at end of file diff --git a/docs/site/assets/javascripts/workers/search.b97dbffb.min.js b/docs/site/assets/javascripts/workers/search.b97dbffb.min.js deleted file mode 100644 index 8201c5e5..00000000 --- a/docs/site/assets/javascripts/workers/search.b97dbffb.min.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict";(()=>{var ge=Object.create;var W=Object.defineProperty,ye=Object.defineProperties,me=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyDescriptors,xe=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols,Se=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var J=(t,e,r)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,M=(t,e)=>{for(var r in e||(e={}))X.call(e,r)&&J(t,r,e[r]);if(G)for(var r of G(e))Qe.call(e,r)&&J(t,r,e[r]);return t},Z=(t,e)=>ye(t,ve(e));var K=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var be=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of xe(e))!X.call(t,i)&&i!==r&&W(t,i,{get:()=>e[i],enumerable:!(n=me(e,i))||n.enumerable});return t};var H=(t,e,r)=>(r=t!=null?ge(Se(t)):{},be(e||!t||!t.__esModule?W(r,"default",{value:t,enumerable:!0}):r,t));var z=(t,e,r)=>new Promise((n,i)=>{var s=u=>{try{a(r.next(u))}catch(c){i(c)}},o=u=>{try{a(r.throw(u))}catch(c){i(c)}},a=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,o);a((r=r.apply(t,e)).next())});var re=K((ee,te)=>{/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,c],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(r+=n[c+1]*i[h+1],c+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new t.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),i.push({node:g,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ee=="object"?te.exports=r():e.lunr=r()}(this,function(){return t})})()});var q=K((Re,ne)=>{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var Le=/["'&<>]/;ne.exports=we;function we(t){var e=""+t,r=Le.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s=0;r--){let n=t[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));var ie=H(q());function se(t){let e=new Map,r=new Set;for(let n of t){let[i,s]=n.location.split("#"),o=n.location,a=n.title,u=n.tags,c=(0,ie.default)(n.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){let h=e.get(i);r.has(h)?e.set(o,{location:o,title:a,text:c,parent:h}):(h.title=n.title,h.text=c,r.add(h))}else e.set(o,M({location:o,title:a,text:c},u&&{tags:u}))}return e}var oe=H(q());function ae(t,e){let r=new RegExp(t.separator,"img"),n=(i,s,o)=>`${s}${o}`;return i=>{i=i.replace(/[\s*+\-:~^]+/g," ").trim();let s=new RegExp(`(^|${t.separator})(${i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return o=>(e?(0,oe.default)(o):o).replace(s,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ue(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ce(t,e){var i;let r=new Set(t),n={};for(let s=0;s!n.has(i)))]}var U=class{constructor({config:e,docs:r,options:n}){this.options=n,this.documents=se(r),this.highlight=ae(e,!1),lunr.tokenizer.separator=new RegExp(e.separator),this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let i=Ee(["trimmer","stopWordFilter","stemmer"],n.pipeline);for(let s of e.lang.map(o=>o==="en"?lunr:lunr[o]))for(let o of i)this.pipeline.remove(s[o]),this.searchPipeline.remove(s[o]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text"),this.field("tags",{boost:1e6,extractor:s=>{let{tags:o=[]}=s;return o.reduce((a,u)=>[...a,...lunr.tokenizer(u)],[])}});for(let s of r)this.add(s,{boost:s.boost})})}search(e){if(e)try{let r=this.highlight(e),n=ue(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,tags:m,parent:Q}=h,p=ce(n,Object.keys(c.metadata)),d=+!Q+ +Object.values(p).every(w=>w);o.push(Z(M({location:y,title:r(g),text:r(b)},m&&{tags:m.map(r)}),{score:u*(1+d),terms:p}))}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return M({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var Y;function ke(t){return z(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Te(t){return z(this,null,function*(){switch(t.type){case 0:return yield ke(t.data.config),Y=new U(t.data),{type:1};case 2:return{type:3,data:Y?Y.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=le.default;addEventListener("message",t=>z(void 0,null,function*(){postMessage(yield Te(t.data))}));})(); -//# sourceMappingURL=search.b97dbffb.min.js.map - diff --git a/docs/site/assets/javascripts/workers/search.b97dbffb.min.js.map b/docs/site/assets/javascripts/workers/search.b97dbffb.min.js.map deleted file mode 100644 index 5764b1b3..00000000 --- a/docs/site/assets/javascripts/workers/search.b97dbffb.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 3, - "sources": ["node_modules/lunr/lunr.js", "node_modules/escape-html/index.js", "src/assets/javascripts/integrations/search/worker/main/index.ts", "src/assets/javascripts/polyfills/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/_/index.ts", "src/assets/javascripts/integrations/search/_/index.ts"], - "sourceRoot": "../../../..", - "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport \"~/polyfills\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for usage with `iframe-worker` polyfill\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous polyfilled implementation. The\n * cool thing is that awaiting a non-Promise is a noop, so extending the type\n * definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages, which are defined through the search index configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search index configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchIndexConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = document.querySelector(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: index ? index.search(message.data) : { items: [] }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new (lunr as any).Query([\"title\", \"text\"])\n const parser = new (lunr as any).QueryParser(value, query)\n\n /* Parse and return query clauses */\n parser.parse()\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term as any))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchDocumentMap,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\nimport { SearchOptions } from \"../options\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n tags?: string[] /* Document tags */\n boost?: number /* Document boost */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n options: SearchOptions /* Search options */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search metadata\n */\nexport interface SearchMetadata {\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result document\n */\nexport type SearchResultDocument = SearchDocument & SearchMetadata\n\n/**\n * Search result item\n */\nexport type SearchResultItem = SearchResultDocument[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchResultItem[] /* Search result items */\n suggestions?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as Lunr.js itself\n * only stores the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n this.options = options\n\n /* Set up document map and highlighter factory */\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config, false)\n\n /* Set separator for tokenizer */\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Create search index */\n this.index = lunr(function () {\n\n /* Set up multi-language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], options.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n language === \"en\" ? lunr : (lunr as any)[language]\n ))) {\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n }\n\n /* Set up reference */\n this.ref(\"location\")\n\n /* Set up fields */\n this.field(\"title\", { boost: 1e3 })\n this.field(\"text\")\n this.field(\"tags\", { boost: 1e6, extractor: doc => {\n const { tags = [] } = doc as SearchDocument\n return tags.reduce((list, tag) => [\n ...list,\n ...lunr.tokenizer(tag)\n ], [] as lunr.Token[])\n } })\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc, { boost: doc.boost })\n })\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param query - Query value\n *\n * @returns Search results\n */\n public search(query: string): SearchResult {\n if (query) {\n try {\n const highlight = this.highlight(query)\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(`${query}*`)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n const document = this.documents.get(ref)\n if (typeof document !== \"undefined\") {\n const { location, title, text, tags, parent } = document\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!parent + +Object.values(terms).every(t => t)\n item.push({\n location,\n title: highlight(title),\n text: highlight(text),\n ...tags && { tags: tags.map(highlight) },\n score: score * (1 + boost),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by page */\n .reduce((items, result) => {\n const document = this.documents.get(result.location)\n if (typeof document !== \"undefined\") {\n const ref = \"parent\" in document\n ? document.parent!.location\n : document.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Generate search suggestions, if desired */\n let suggestions: string[] | undefined\n if (this.options.suggestions) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggestions = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return items and suggestions */\n return {\n items: [...groups.values()],\n ...typeof suggestions !== \"undefined\" && { suggestions }\n }\n\n /* Log errors to console (for now) */\n } catch {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return { items: [] }\n }\n}\n"], - "mappings": "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", - "names": [] -} diff --git a/docs/site/assets/stylesheets/main.1d29e8d0.min.css b/docs/site/assets/stylesheets/main.1d29e8d0.min.css deleted file mode 100644 index 2730c642..00000000 --- a/docs/site/assets/stylesheets/main.1d29e8d0.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root,[data-md-color-scheme=default]{--md-default-fg-color:rgba(0,0,0,.87);--md-default-fg-color--light:rgba(0,0,0,.54);--md-default-fg-color--lighter:rgba(0,0,0,.32);--md-default-fg-color--lightest:rgba(0,0,0,.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,.7);--md-default-bg-color--lighter:hsla(0,0%,100%,.3);--md-default-bg-color--lightest:hsla(0,0%,100%,.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7);--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,.5);--md-typeset-del-color:rgba(245,80,61,.15);--md-typeset-ins-color:rgba(11,213,112,.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:rgba(0,0,0,.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,.3);--md-footer-bg-color:rgba(0,0,0,.87);--md-footer-bg-color--dark:rgba(0,0,0,.32);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35)}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}body,input{font-feature-settings:"kern","liga";font-family:var(--md-text-font-family)}body,code,input,kbd,pre{color:var(--md-typeset-color)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:-webkit-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}.md-typeset abbr[title]:-moz-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}[dir=ltr] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:is(:focus,:hover):after{left:0}[dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{right:0}.md-typeset abbr[title]:is(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){margin-bottom:.5em;margin-top:.5em}.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset ol li :-webkit-any(ul,ol),[dir=ltr] .md-typeset ul li :-webkit-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :-moz-any(ul,ol),[dir=ltr] .md-typeset ul li :-moz-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :is(ul,ol),[dir=ltr] .md-typeset ul li :is(ul,ol){margin-left:.625em}[dir=rtl] .md-typeset ol li :-webkit-any(ul,ol),[dir=rtl] .md-typeset ul li :-webkit-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :-moz-any(ul,ol),[dir=rtl] .md-typeset ul li :-moz-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :is(ul,ol),[dir=rtl] .md-typeset ul li :is(ul,ol){margin-right:.625em}.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :is(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :is(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :is(th,td):not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) th a{color:inherit}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:-webkit-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:-moz-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:is(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{float:right;margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}[dir=rtl] .md-content__button{float:left}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:-webkit-any(:focus,:hover){opacity:.7}.md-footer__link:-moz-any(:focus,:hover){opacity:.7}.md-footer__link:is(:focus,:hover){opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:is(:focus,:hover){color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:is(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:-webkit-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:-moz-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:is(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :is(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:is(:checked,:indeterminate)~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;float:right;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{font-weight:700;margin-top:0;padding:0 .6rem;pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link--index [href]{pointer-events:auto}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){.md-search__inner{float:right;padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:transparent;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>*{margin-left:.2rem}[dir=rtl] .md-search__options>*{margin-right:.2rem}.md-search__options>*{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-right:2.2rem}}.md-search-result__more summary:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::marker{display:none}.md-search-result__more summary::-webkit-details-marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:initial;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:-moz-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:is(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@-webkit-keyframes facts{0%{height:0}to{height:.65rem}}@keyframes facts{0%{height:0}to{height:.65rem}}@-webkit-keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{font-size:.55rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0}.md-source__repository--active .md-source__facts{-webkit-animation:facts .25s ease-in;animation:facts .25s ease-in}.md-source__fact{display:inline-block}.md-source__repository--active .md-source__fact{-webkit-animation:fact .4s ease-out;animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}[dir=ltr] .md-source__fact:nth-child(1n+2):before{margin-left:.4rem}[dir=rtl] .md-source__fact:nth-child(1n+2):before{margin-right:.4rem}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;padding:0;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}.md-tags{margin-bottom:.75em}[dir=ltr] .md-tag{margin-right:.5em}[dir=rtl] .md-tag{margin-left:.5em}.md-tag{background:var(--md-default-fg-color--lightest);border-radius:.4rem;display:inline-block;font-size:.64rem;font-weight:700;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em}.md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-tag[href]:focus,.md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-tag{vertical-align:text-top}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-height:0;max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,max-height 0ms .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}:focus-within>.md-tooltip{max-height:1000%;opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height .25s,z-index 0ms}.focus-visible>.md-tooltip{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation:focus-within>*{z-index:2}.md-annotation__inner{font-family:var(--md-text-font-family);top:calc(var(--md-tooltip-y) + 1.2ch)}:not(:focus-within)>.md-annotation__inner{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-annotation__index{color:#fff;cursor:pointer;margin:0 1ch;position:relative;transition:z-index .25s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.126em;margin:0 -.4ch;padding:0 .4ch;position:absolute;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}}:-webkit-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:is(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:focus-within>.md-annotation__index:after{-webkit-animation:none;animation:none;transition:color .25s,background-color .25s}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}:-webkit-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:is(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:focus-within>.md-annotation__index{-webkit-animation:none;animation:none;transition:none}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:is(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@-webkit-keyframes hoverfix{0%{pointer-events:none}}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:-webkit-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-webkit-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:-moz-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-moz-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:is(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{-webkit-animation:hoverfix .25s forwards;animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{-webkit-animation:none;animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset :-webkit-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}.md-typeset :-moz-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}[dir=ltr] .md-typeset :-webkit-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition,details){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition,details){border-right-width:.2rem}.md-typeset :is(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset :-webkit-any(.admonition,details){box-shadow:none}.md-typeset :-moz-any(.admonition,details){box-shadow:none}.md-typeset :is(.admonition,details){box-shadow:none}}.md-typeset :-webkit-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :-moz-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :is(.admonition,details)>*{box-sizing:border-box}.md-typeset :-webkit-any(.admonition,details) :-webkit-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-moz-any(.admonition,details) :-moz-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :is(.admonition,details) :is(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-webkit-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :is(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-webkit-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :is(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-webkit-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :-moz-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :is(.admonition,details)>.tabbed-set:only-child{margin-top:0}html .md-typeset :-webkit-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :-moz-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :is(.admonition,details)>:last-child{margin-bottom:.6rem}.md-typeset :-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}.md-typeset :-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-right-width:.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}.md-typeset :is(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset :-webkit-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :-moz-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :is(.admonition-title,summary):last-child{margin-bottom:0}.md-typeset :-webkit-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-moz-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain;position:absolute;top:.625em;width:1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :is(.admonition-title,summary):before{left:.8rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary):before{right:.8rem}.md-typeset :is(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){border-color:#448aff}.md-typeset :-moz-any(.admonition,details):-moz-any(.note){border-color:#448aff}.md-typeset :is(.admonition,details):is(.note){border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :is(.note)>:is(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){border-color:#00b8d4}.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){border-color:#00b8d4}.md-typeset :is(.admonition,details):is(.info,.todo){border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :is(.admonition,details):is(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){border-color:#00c853}.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){border-color:#00c853}.md-typeset :is(.admonition,details):is(.success,.check,.done){border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :is(.admonition,details):is(.question,.help,.faq){border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){border-color:#ff1744}.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){border-color:#ff1744}.md-typeset :is(.admonition,details):is(.danger,.error){border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){border-color:#f50057}.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){border-color:#f50057}.md-typeset :is(.admonition,details):is(.bug){border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :is(.bug)>:is(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){border-color:#7c4dff}.md-typeset :-moz-any(.admonition,details):-moz-any(.example){border-color:#7c4dff}.md-typeset :is(.admonition,details):is(.example){border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :is(.example)>:is(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :is(.admonition,details):is(.quote,.cite){border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{opacity:1;-webkit-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{opacity:1;-moz-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset :-webkit-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :-moz-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :is(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset :-webkit-any(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset :-moz-any(del,ins,.comment).critic{box-decoration-break:clone}.md-typeset :is(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :is(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :is(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight :-webkit-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :-moz-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-moz-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :is(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-webkit-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-moz-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-webkit-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-moz-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-webkit-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-webkit-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :-moz-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :is(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :-webkit-any(tbody,td){display:block;padding:0}.highlighttable :-moz-any(tbody,td){display:block;padding:0}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:-webkit-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:-moz-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:is(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid transparent;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,transparent);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,transparent);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{float:left;margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}.md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}} \ No newline at end of file diff --git a/docs/site/assets/stylesheets/main.1d29e8d0.min.css.map b/docs/site/assets/stylesheets/main.1d29e8d0.min.css.map deleted file mode 100644 index cddba767..00000000 --- a/docs/site/assets/stylesheets/main.1d29e8d0.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/layout/_banner.scss","src/assets/stylesheets/main/layout/_base.scss","src/assets/stylesheets/main/layout/_clipboard.scss","src/assets/stylesheets/main/layout/_content.scss","src/assets/stylesheets/main/layout/_dialog.scss","src/assets/stylesheets/main/layout/_footer.scss","src/assets/stylesheets/main/layout/_form.scss","src/assets/stylesheets/main/layout/_header.scss","src/assets/stylesheets/main/layout/_nav.scss","src/assets/stylesheets/main/layout/_search.scss","src/assets/stylesheets/main/layout/_select.scss","src/assets/stylesheets/main/layout/_sidebar.scss","src/assets/stylesheets/main/layout/_source.scss","src/assets/stylesheets/main/layout/_tabs.scss","src/assets/stylesheets/main/layout/_tag.scss","src/assets/stylesheets/main/layout/_tooltip.scss","src/assets/stylesheets/main/layout/_top.scss","src/assets/stylesheets/main/layout/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/integrations/_mermaid.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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mGJ,C+B/mGE,4CACE,mBAAA,CACA,cAAA,CACA,uB/B4mGJ,C+BzmGI,yDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,C+B9mGI,sDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,C+B9mGI,gDAGE,iBAAA,CADA,eAAA,CADA,a/B6mGN,CgCnnGE,gCACE,sChCsnGJ,CgCvnGE,6BACE,sChCsnGJ,CgCvnGE,uBACE,sChCsnGJ,CgCnnGE,cACE,yChCqnGJ,CgCzmGE,4DACE,oChC2mGJ,CgC5mGE,yDACE,oChC2mGJ,CgC5mGE,mDACE,oChC2mGJ,CgCnmGE,6CACE,qChCqmGJ,CgCtmGE,0CACE,qChCqmGJ,CgCtmGE,oCACE,qChCqmGJ,CgC3lGE,oDACE,oChC6lGJ,CgC9lGE,iDACE,oChC6lGJ,CgC9lGE,2CACE,oChC6lGJ,CgCplGE,gDACE,qChCslGJ,CgCvlGE,6CACE,qChCslGJ,CgCvlGE,uCACE,qChCslGJ,CgCjlGE,gCACE,kChCmlGJ,CgCplGE,6BACE,kChCmlGJ,CgCplGE,uBACE,kChCmlGJ,CgC7kGE,qCACE,sChC+kGJ,CgChlGE,kCACE,sChC+kGJ,CgChlGE,4BACE,sChC+kGJ,CgCxkGE,yCACE,sChC0kGJ,CgC3kGE,sCACE,sChC0kGJ,CgC3kGE,gCACE,sChC0kGJ,CgCnkGE,yCACE,qChCqkGJ,CgCtkGE,sCACE,qChCqkGJ,CgCtkGE,gCACE,qChCqkGJ,CgC5jGE,gDACE,qChC8jGJ,CgC/jGE,6CACE,qChC8jGJ,CgC/jGE,uCACE,qChC8jGJ,CgCtjGE,6CACE,sChCwjGJ,CgCzjGE,0CACE,sChCwjGJ,CgCzjGE,oCACE,sChCwjGJ,CgC7iGE,yDACE,qChC+iGJ,CgChjGE,sDACE,qChC+iGJ,CgChjGE,gDACE,qChC+iGJ,CgC1iGE,iCAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgC/iGE,8BAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgC/iGE,wBAGE,mBAAA,CAFA,gBAAA,CACA,gBhC6iGJ,CgCziGE,eACE,4ChC2iGJ,CgCxiGE,eACE,4Ch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","file":"main.css"} \ No newline at end of file diff --git a/docs/site/assets/stylesheets/palette.cbb835fc.min.css b/docs/site/assets/stylesheets/palette.cbb835fc.min.css deleted file mode 100644 index 30f9264c..00000000 --- a/docs/site/assets/stylesheets/palette.cbb835fc.min.css +++ /dev/null @@ -1 +0,0 @@ -@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:rgba(66,135,255,.15);--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(66,135,255,.3);--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.3),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.4),0 0 0.05rem rgba(0,0,0,.35)}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#bd78c9}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a682e3}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#6c91d5}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff9575}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c7846b}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#6c91d5}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:rgba(255,25,71,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:rgba(245,0,86,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:rgba(223,65,251,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:rgba(124,77,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:rgba(66,135,255,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:rgba(0,145,235,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:rgba(0,186,214,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:rgba(0,189,164,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:rgba(0,199,83,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:rgba(99,222,23,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:rgba(176,235,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:rgba(255,213,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:rgba(255,170,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:rgba(255,145,0,.1);--md-accent-bg-color:rgba(0,0,0,.87);--md-accent-bg-color--light:rgba(0,0,0,.54)}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:rgba(255,110,66,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54)}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7)}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:hsla(0,0%,100%,.7);--md-primary-fg-color--dark:rgba(0,0,0,.07);--md-primary-bg-color:rgba(0,0,0,.87);--md-primary-bg-color--light:rgba(0,0,0,.54);--md-typeset-a-color:#4051b5}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:rgba(0,0,0,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:rgba(0,0,0,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07)}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:rgba(0,0,0,.54);--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:rgba(0,0,0,.87)}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:hsla(0,0%,100%,.12)}[data-md-color-primary=black] .md-search__form:hover{background-color:hsla(0,0%,100%,.3)}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}} \ No newline at end of file diff --git a/docs/site/assets/stylesheets/palette.cbb835fc.min.css.map b/docs/site/assets/stylesheets/palette.cbb835fc.min.css.map deleted file mode 100644 index 96e380c8..00000000 --- a/docs/site/assets/stylesheets/palette.cbb835fc.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/assets/stylesheets/palette/_scheme.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_accent.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAKE,YAAA,CAGA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,gDAAA,CACA,gDAAA,CAGA,uCAAA,CACA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,2CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,yDAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,wDAAA,CAGA,wEAAA,CAKA,yEAAA,CAKA,yECxDF,CD6DE,kHAEE,YC3DJ,CD+DE,gHAEE,eC7DJ,CDoFE,yDACE,4BClFJ,CDiFE,2DACE,4BC/EJ,CD8EE,gEACE,4BC5EJ,CD2EE,2DACE,4BCzEJ,CDwEE,yDACE,4BCtEJ,CDqEE,0DACE,4BCnEJ,CDkEE,gEACE,4BChEJ,CD+DE,0DACE,4BC7DJ,CD4DE,2OACE,4BCjDJ,CDwDA,+FAGE,iCCtDF,CACF,CCjDE,2BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CD6CN,CCvDE,4BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CDoDN,CC9DE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CD2DN,CCrEE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CDkEN,CC5EE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CDyEN,CCnFE,4BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CDgFN,CC1FE,kCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CDuFN,CCjGE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CD8FN,CCxGE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CDqGN,CC/GE,6BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CD4GN,CCtHE,mCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CDmHN,CC7HE,4BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CD6HN,CCpIE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CDoIN,CC3IE,6BACE,yBAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CD2IN,CClJE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CDkJN,CCzJE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CDsJN,CE3JE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwJN,CEnKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgKN,CE3KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwKN,CEnLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgLN,CE3LE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwLN,CEnME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgMN,CE3ME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwMN,CEnNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgNN,CE3NE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwNN,CEnOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgON,CE3OE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwON,CEnPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CFmPN,CE3PE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CF2PN,CEnQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CFmQN,CE3QE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CF2QN,CEnRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFgRN,CE3RE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CFwRN,CEnSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CAAA,CAKA,4BF4RN,CE5SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CAAA,CAKA,4BFqSN,CEtRE,sEACE,4BFyRJ,CE1RE,+DACE,4BF6RJ,CE9RE,iEACE,4BFiSJ,CElSE,gEACE,4BFqSJ,CEtSE,iEACE,4BFySJ,CEhSA,8BACE,0BAAA,CACA,+CAAA,CACA,2CAAA,CACA,qCAAA,CACA,4CAAA,CAGA,4BFiSF,CGrMI,mCDtFA,+CACE,gCF8RJ,CE3RI,qDACE,gCF6RN,CExRE,iEACE,qBF0RJ,CACF,CGhNI,sCDnEA,uCACE,0CFsRJ,CACF,CE7QA,8BACE,0BAAA,CACA,4CAAA,CACA,gCAAA,CACA,0BAAA,CACA,+CAAA,CAGA,4BF8QF,CE3QE,yCACE,qBF6QJ,CG9MI,wCDxDA,8CACE,gCFyQJ,CACF,CGtOI,mCD5BA,+CACE,oCFqQJ,CElQI,qDACE,mCFoQN,CACF,CG3NI,wCDjCA,iFACE,qBF+PJ,CACF,CGnPI,sCDLA,uCACE,qBF2PJ,CACF","file":"palette.css"} \ No newline at end of file diff --git a/docs/site/css/extra.css b/docs/site/css/extra.css deleted file mode 100644 index b5ceb8a8..00000000 --- a/docs/site/css/extra.css +++ /dev/null @@ -1,28 +0,0 @@ -p, a, li, pre { - font-family: "Tiresias PCFont", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important; -} - -code, -.codehilite pre { - font-weight: bold; -} - -:root > * { - --md-primary-fg-color: #593196; - --md-accent-fg-color: #455a63; -} - -@font-face { - font-family: 'Tiresias PCFont'; - font-style: normal; - font-weight: 400; - src: local('Tiresias PCFont'), local('Tiresias PCFont'), - url('./fonts/Tiresias_PCfont.ttf') format('truetype') -} -@font-face { - font-family: 'Tiresias Infofont'; - font-style: normal; - font-weight: 400; - src: local('Tiresias Infofont'), local('Tiresias Infofont'), - url('./fonts/Tiresias_Infofont.ttf') format('truetype') -} diff --git a/docs/site/fonts/Tiresias_Infofont.ttf b/docs/site/fonts/Tiresias_Infofont.ttf deleted file mode 100644 index 2a8a6aaa..00000000 Binary files a/docs/site/fonts/Tiresias_Infofont.ttf and /dev/null differ diff --git a/docs/site/fonts/Tiresias_PCfont.ttf b/docs/site/fonts/Tiresias_PCfont.ttf deleted file mode 100644 index c85364e9..00000000 Binary files a/docs/site/fonts/Tiresias_PCfont.ttf and /dev/null differ diff --git a/docs/site/images/pleroma_logo_vector_bg_32.png b/docs/site/images/pleroma_logo_vector_bg_32.png deleted file mode 100644 index 7cebcfd7..00000000 Binary files a/docs/site/images/pleroma_logo_vector_bg_32.png and /dev/null differ diff --git a/docs/site/images/pleroma_logo_vector_nobg.svg b/docs/site/images/pleroma_logo_vector_nobg.svg deleted file mode 100644 index 6dd80260..00000000 --- a/docs/site/images/pleroma_logo_vector_nobg.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/docs/site/index.html b/docs/site/index.html deleted file mode 100644 index d7821e45..00000000 --- a/docs/site/index.html +++ /dev/null @@ -1,585 +0,0 @@ - - - - - - - - - - - - - - - - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    Introduction to Pleroma-FE

    -

    What is Pleroma-FE?

    -

    Pleroma-FE is the default user-facing frontend for Pleroma. It's user interface is modeled after Qvitter which is modeled after an older Twitter design. It provides a simple 2-column interface for microblogging. While being simple by default it also provides many powerful customization options.

    -

    How can I use it?

    -

    If your instance uses Pleroma-FE, you can acces it by going to your instance (e.g. https://pleroma.soykaf.com). You can read more about it's basic functionality in the Pleroma-FE User Guide. We also have a guide for administrators and for hackers/contributors.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/docs/site/search/search_index.json b/docs/site/search/search_index.json deleted file mode 100644 index 198c0688..00000000 --- a/docs/site/search/search_index.json +++ /dev/null @@ -1 +0,0 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Introduction to Pleroma-FE \u00b6 What is Pleroma-FE? \u00b6 Pleroma-FE is the default user-facing frontend for Pleroma. It's user interface is modeled after Qvitter which is modeled after an older Twitter design. It provides a simple 2-column interface for microblogging. While being simple by default it also provides many powerful customization options. How can I use it? \u00b6 If your instance uses Pleroma-FE, you can acces it by going to your instance (e.g. https://pleroma.soykaf.com ). You can read more about it's basic functionality in the Pleroma-FE User Guide . We also have a guide for administrators and for hackers/contributors .","title":"Introduction to Pleroma-FE"},{"location":"#introduction-to-pleroma-fe","text":"","title":"Introduction to Pleroma-FE"},{"location":"#what-is-pleroma-fe","text":"Pleroma-FE is the default user-facing frontend for Pleroma. It's user interface is modeled after Qvitter which is modeled after an older Twitter design. It provides a simple 2-column interface for microblogging. While being simple by default it also provides many powerful customization options.","title":"What is Pleroma-FE?"},{"location":"#how-can-i-use-it","text":"If your instance uses Pleroma-FE, you can acces it by going to your instance (e.g. https://pleroma.soykaf.com ). You can read more about it's basic functionality in the Pleroma-FE User Guide . We also have a guide for administrators and for hackers/contributors .","title":"How can I use it?"},{"location":"CONFIGURATION/","text":"Pleroma-FE configuration and customization for instance administrators \u00b6 For user configuration, see Pleroma-FE user guide For local development server configuration, see Hacking, tweaking, contributing Where configuration is stored \u00b6 PleromaFE gets its configuration from several sources, in order of preference (the one above overrides ones below it) /api/statusnet/config.json - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses pleromafe field of it. For more info on changing config on BE, look here /static/config.json - this is a static FE-provided file, containing only FE specific configuration. This file is completely optional and could be removed but is useful as a fallback if some configuration JSON property isn't present in BE-provided config. It's also a reference point to check what default configuration are and what JSON properties even exist. In local dev mode it could be used to override BE configuration, more about that in HACKING.md. File is located here . Built-in defaults. Those are hard-coded defaults that are used when /static/config.json is not available and BE-provided configuration JSON is missing some JSON properties. ( Code ) Instance-defaults \u00b6 Important note that some configurations are treated as \"instance default\" - it means user is able to change this configuration for themselves. Currently, defaults are only applied for new visitors and people who haven't changed the option in question. If you change some instance default option, there is a chance it won't affect some users. There's currently no mechanism for user-settings synchronization across several browsers, user essentially means visitor , most user settings are stored in local storage/IndexedDB and not tied to an account in any way. Options \u00b6 alwaysShowSubjectInput \u00b6 true - will always show subject line input, false - only show when it's not empty (i.e. replying). To hide subject line input completely, set it to false and subjectLineBehavior to \"noop\" background \u00b6 Default image background. Be aware of using too big images as they may take longer to load. Currently image is fitted with background-size: cover which means \"scaled and cropped\", currently left-aligned. De-facto instance default, user can choose their own background, if they remove their own background, instance default will be used instead. collapseMessageWithSubject \u00b6 Collapse post content when post has a subject line (content warning). Instance-default. disableChat \u00b6 hides the chat (TODO: even if it's enabled on backend) greentext \u00b6 Changes lines prefixed with the > character to have a green text color hideFilteredStatuses \u00b6 Removes filtered statuses from timelines. hideMutedPosts \u00b6 Removes muted statuses from timelines. hidePostStats \u00b6 Hide repeats/favorites counters for posts. hideSitename \u00b6 Hide instance name in header. hideUserStats \u00b6 Hide followers/friends counters for users. loginMethod \u00b6 \"password\" - show simple password field \"token\" - show button to log in with external method (will redirect to login form, more details in BE documentation) logo , logoMask , logoMargin \u00b6 Instance logo , could be any image, including svg. By default it assumes logo used will be monochrome-with-alpha one, this is done to be compatible with both light and dark themes, so that white logo designed with dark theme in mind won't be invisible over light theme, this is done via CSS3 Masking . Basically - it will take alpha channel of the image and fill non-transparent areas of it with solid color. If you really want colorful logo - it can be done by setting logoMask to false . logoMargin 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. minimalScopesMode \u00b6 Limit scope selection to Direct , User default and Scope of post replying to . This also makes it impossible to reply to a DM with a non-DM post from PleromaFE. nsfwCensorImage \u00b6 Use custom image for NSFW'd images postContentType \u00b6 Default post formatting option (markdown/bbcode/plaintext/etc...) redirectRootNoLogin , redirectRootLogin \u00b6 These two settings should point to where FE should redirect visitor when they login/open up website root scopeCopy \u00b6 Copy post scope (visibility) when replying to a post. Instance-default. sidebarRight \u00b6 Change alignment of sidebar and panels to the right. Defaults to false . showFeaturesPanel \u00b6 Show panel showcasing instance features/settings to logged-out visitors showInstanceSpecificPanel \u00b6 This allows you to include arbitrary HTML content in a panel below navigation menu. PleromaFE looks for an html page instance/panel.html , by default it's not provided in FE, but BE bundles some default one . De-facto instance-defaults, since user can hide instance-specific panel. subjectLineBehavior \u00b6 How to handle subject line (CW) when replying to a post. * \"email\" - like EMail - prepend re: to subject line if it doesn't already start with it. * \"masto\" - like Mastodon - copy it as is. * \"noop\" - do not copy Instance-default. theme \u00b6 Default theme used for new users. De-facto instance-default, user can change theme. webPushNotifications \u00b6 Enables PushAPI - based notifications for users. Instance-default. Indirect configuration \u00b6 Some features are configured depending on how backend is configured. In general the approach is \"if backend allows it there's no need to hide it, if backend doesn't allow it there's no need to show it. Chat \u00b6 TODO somewhat broken, see: disableChat chat can be disabled by disabling it in backend Private Mode \u00b6 If the private instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users. Rich text formatting in post formatting \u00b6 Rich text formatting options are displayed depending on how many formatting options are enabled on backend, if you don't want your users to use rich text at all you can only allow \"text/plain\" one, frontend then will only display post text format as a label instead of dropdown (just so that users know for example if you only allow Markdown, only BBCode or only Plain text) Who to follow \u00b6 This is a panel intended for users to find people to follow based on randomness or on post contents. Being potentially privacy unfriendly feature it needs to be enabled and configured in backend to be enabled.","title":"Pleroma-FE configuration and customization for instance administrators"},{"location":"CONFIGURATION/#pleroma-fe-configuration-and-customization-for-instance-administrators","text":"For user configuration, see Pleroma-FE user guide For local development server configuration, see Hacking, tweaking, contributing","title":"Pleroma-FE configuration and customization for instance administrators"},{"location":"CONFIGURATION/#where-configuration-is-stored","text":"PleromaFE gets its configuration from several sources, in order of preference (the one above overrides ones below it) /api/statusnet/config.json - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses pleromafe field of it. For more info on changing config on BE, look here /static/config.json - this is a static FE-provided file, containing only FE specific configuration. This file is completely optional and could be removed but is useful as a fallback if some configuration JSON property isn't present in BE-provided config. It's also a reference point to check what default configuration are and what JSON properties even exist. In local dev mode it could be used to override BE configuration, more about that in HACKING.md. File is located here . Built-in defaults. Those are hard-coded defaults that are used when /static/config.json is not available and BE-provided configuration JSON is missing some JSON properties. ( Code )","title":"Where configuration is stored"},{"location":"CONFIGURATION/#instance-defaults","text":"Important note that some configurations are treated as \"instance default\" - it means user is able to change this configuration for themselves. Currently, defaults are only applied for new visitors and people who haven't changed the option in question. If you change some instance default option, there is a chance it won't affect some users. There's currently no mechanism for user-settings synchronization across several browsers, user essentially means visitor , most user settings are stored in local storage/IndexedDB and not tied to an account in any way.","title":"Instance-defaults"},{"location":"CONFIGURATION/#options","text":"","title":"Options"},{"location":"CONFIGURATION/#alwaysshowsubjectinput","text":"true - will always show subject line input, false - only show when it's not empty (i.e. replying). To hide subject line input completely, set it to false and subjectLineBehavior to \"noop\"","title":"alwaysShowSubjectInput"},{"location":"CONFIGURATION/#background","text":"Default image background. Be aware of using too big images as they may take longer to load. Currently image is fitted with background-size: cover which means \"scaled and cropped\", currently left-aligned. De-facto instance default, user can choose their own background, if they remove their own background, instance default will be used instead.","title":"background"},{"location":"CONFIGURATION/#collapsemessagewithsubject","text":"Collapse post content when post has a subject line (content warning). Instance-default.","title":"collapseMessageWithSubject"},{"location":"CONFIGURATION/#disablechat","text":"hides the chat (TODO: even if it's enabled on backend)","title":"disableChat"},{"location":"CONFIGURATION/#greentext","text":"Changes lines prefixed with the > character to have a green text color","title":"greentext"},{"location":"CONFIGURATION/#hidefilteredstatuses","text":"Removes filtered statuses from timelines.","title":"hideFilteredStatuses"},{"location":"CONFIGURATION/#hidemutedposts","text":"Removes muted statuses from timelines.","title":"hideMutedPosts"},{"location":"CONFIGURATION/#hidepoststats","text":"Hide repeats/favorites counters for posts.","title":"hidePostStats"},{"location":"CONFIGURATION/#hidesitename","text":"Hide instance name in header.","title":"hideSitename"},{"location":"CONFIGURATION/#hideuserstats","text":"Hide followers/friends counters for users.","title":"hideUserStats"},{"location":"CONFIGURATION/#loginmethod","text":"\"password\" - show simple password field \"token\" - show button to log in with external method (will redirect to login form, more details in BE documentation)","title":"loginMethod"},{"location":"CONFIGURATION/#logo-logomask-logomargin","text":"Instance logo , could be any image, including svg. By default it assumes logo used will be monochrome-with-alpha one, this is done to be compatible with both light and dark themes, so that white logo designed with dark theme in mind won't be invisible over light theme, this is done via CSS3 Masking . Basically - it will take alpha channel of the image and fill non-transparent areas of it with solid color. If you really want colorful logo - it can be done by setting logoMask to false . logoMargin 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.","title":"logo, logoMask, logoMargin"},{"location":"CONFIGURATION/#minimalscopesmode","text":"Limit scope selection to Direct , User default and Scope of post replying to . This also makes it impossible to reply to a DM with a non-DM post from PleromaFE.","title":"minimalScopesMode"},{"location":"CONFIGURATION/#nsfwcensorimage","text":"Use custom image for NSFW'd images","title":"nsfwCensorImage"},{"location":"CONFIGURATION/#postcontenttype","text":"Default post formatting option (markdown/bbcode/plaintext/etc...)","title":"postContentType"},{"location":"CONFIGURATION/#redirectrootnologin-redirectrootlogin","text":"These two settings should point to where FE should redirect visitor when they login/open up website root","title":"redirectRootNoLogin, redirectRootLogin"},{"location":"CONFIGURATION/#scopecopy","text":"Copy post scope (visibility) when replying to a post. Instance-default.","title":"scopeCopy"},{"location":"CONFIGURATION/#sidebarright","text":"Change alignment of sidebar and panels to the right. Defaults to false .","title":"sidebarRight"},{"location":"CONFIGURATION/#showfeaturespanel","text":"Show panel showcasing instance features/settings to logged-out visitors","title":"showFeaturesPanel"},{"location":"CONFIGURATION/#showinstancespecificpanel","text":"This allows you to include arbitrary HTML content in a panel below navigation menu. PleromaFE looks for an html page instance/panel.html , by default it's not provided in FE, but BE bundles some default one . De-facto instance-defaults, since user can hide instance-specific panel.","title":"showInstanceSpecificPanel"},{"location":"CONFIGURATION/#subjectlinebehavior","text":"How to handle subject line (CW) when replying to a post. * \"email\" - like EMail - prepend re: to subject line if it doesn't already start with it. * \"masto\" - like Mastodon - copy it as is. * \"noop\" - do not copy Instance-default.","title":"subjectLineBehavior"},{"location":"CONFIGURATION/#theme","text":"Default theme used for new users. De-facto instance-default, user can change theme.","title":"theme"},{"location":"CONFIGURATION/#webpushnotifications","text":"Enables PushAPI - based notifications for users. Instance-default.","title":"webPushNotifications"},{"location":"CONFIGURATION/#indirect-configuration","text":"Some features are configured depending on how backend is configured. In general the approach is \"if backend allows it there's no need to hide it, if backend doesn't allow it there's no need to show it.","title":"Indirect configuration"},{"location":"CONFIGURATION/#chat","text":"TODO somewhat broken, see: disableChat chat can be disabled by disabling it in backend","title":"Chat"},{"location":"CONFIGURATION/#private-mode","text":"If the private instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users.","title":"Private Mode"},{"location":"CONFIGURATION/#rich-text-formatting-in-post-formatting","text":"Rich text formatting options are displayed depending on how many formatting options are enabled on backend, if you don't want your users to use rich text at all you can only allow \"text/plain\" one, frontend then will only display post text format as a label instead of dropdown (just so that users know for example if you only allow Markdown, only BBCode or only Plain text)","title":"Rich text formatting in post formatting"},{"location":"CONFIGURATION/#who-to-follow","text":"This is a panel intended for users to find people to follow based on randomness or on post contents. Being potentially privacy unfriendly feature it needs to be enabled and configured in backend to be enabled.","title":"Who to follow"},{"location":"HACKING/","text":"Hacking, tweaking, contributing \u00b6 What PleromaFE even is, how it works \u00b6 PleromaFE is an SPA (Single-Page Application) backed by Vue framework. It means that it's just a nearly-empty HTML page with bunch of JavaScript that actually generates and controls DOM (i.e. html elements) in Runtime. Currently, there's no way around it - you have to have Javascript enabled in the browser to make it work, there is a theoretical possibility to generate some HTML server-side but it's not implemented yet. You can serve static html page and everything from any HTTP(S) server but currently it will try to access /api/ path at same domain it's running on, meaning that as of right now you cannot put it on one domain and access the other without proxying requests. Development server does exactly that - it serves static html page with javascript and all other assets, adds some code to automatically reload when changes to code are made and proxies requests to some other server. Setting up develop server \u00b6 Setting up development server is fairly straight-forward. On your system you must have Node.js version 8 and newer installed. For older systems or systems that do not package node you can try NodeSource repositories. Windows support theoretically possible but isn't tested. For fetching dependencies and running basic tasks you will Yarn installed. Clone the repository, cd into it and run yarn to fetch dependencies. If you want to point development server at some instance you will need to copy config/local.example.json to config/local.json and change the target to point at instance you want, otherwise it will point to localhost:4000 which is default address for locally-run Pleroma Backend Run yarn dev - it will start the server. Open localhost:8080 in your browser, it might take a while initially until everything is built first time. Setting up production build \u00b6 This could be a bit trickier, you basically need steps 1-4 from develop build instructions, and run yarn build which will compile and copy eveything needed for production into dist folder. As said before, this technically could be used anywhere with some details. Replacing your instance's frontend with custom FE build \u00b6 This is the most easiest way to use and test FE build: you just need to copy or symlink contents of dist folder into backend's static directory , by default it is located in instance/static , or in /var/lib/pleroma/static for OTP release installations, create it if it doesn't exist already. Be aware that running yarn build wipes the contents of dist folder. Running production build locally or on a separate server \u00b6 This is highly experimental and only tried once, with no actual simple solution available yet You will need an HTTP server that can proxy requests for /api , /instance , /nodeinfo and show index.html for every 404 page. For nginx you'll probably need something like this: server { listen 80 default_server ; index index.html index.htm index.nginx-debian.html ; root /var/www/html location /api { proxy_pass https://example.tld ; } location /instance { proxy_pass https://example.tld ; } location /nodeinfo { proxy_pass https://example.tld ; } location / { try_files $uri $uri/ /index.html ; } } (ed. note: this is close to what i used last time i had to do it, it may not work and need additions, i basically adjusted default nginx server in debian) Basic architecture \u00b6 API, Data, Operations \u00b6 In 99% cases PleromaFE uses MastoAPI with Pleroma Extensions to fetch the data. The rest is either QvitterAPI leftovers or pleroma-exclusive APIs. QvitterAPI doesn't exactly have documentation and uses different JSON structure and sometimes different parameters and workflows, this could be a good reference though. Some pleroma-exclusive API may still be using QvitterAPI JSON structure. PleromaFE supports both formats by transforming them into internal format which is basically QvitterAPI one with some additions and renaming. All data is passed trough Entity Normalizer which can serve as a reference of API and what's actually used, it's also a host for all the hacks and data transformation. For most part, PleromaFE tries to store all the info it can get in global vuex store - every user and post are passed trough updating mechanism where data is either added or merged with existing data, reactively updating the information throughout UI, so if in newest request user's post counter increased, it will be instantly updated in open user profile cards. This is also used to find users, posts and sometimes to build timelines and/or request parameters. PleromaFE also tries to persist this store, however only stable data is stored, such as user authentication and preferences, user highlights. Persistence is performed by saving and loading chunk of vuex store in browser's LocalStorage/IndexedDB. TODO: Refactor API code and document it here Themes \u00b6 PleromaFE uses custom theme \"framework\" which is pretty much just a style tag rendered by vue which only contains CSS3 variables. Every color used in UI should be derived from theme. Theme is stored in a JSON object containing color, opacity, shadow and font information, with most of it being optional. The most basic theme can consist of 4 to 8 \"basic colors\", which is also what previous version of themes allowed, with all other colors being derived from those basic colors, i.e. \"light background\" will be \"background\" color lightened/darkened, \"panel header\" will be same as \"foreground\". The idea is that you can specify just basic color palette and everything else will be generated automatically, but if you really need to tweak some specific color - you can. As said before - older version only allowed 4 to 8 colors, it also used arrays instead of objects, we still support that. The basic colors are: background, foreground, text, links, red, orange, blue, green. First 4 are mandatory, last 4 have default fallbacks since ever more ancient theme formats only had 4 colors. Note that with older version themes used different internal naming when persisting state. Themes are meant to be backwards and somewhat forwards compatible - new colors should properly inherit from some existing one, making it compatible with older versions. When loading newer version of theme all unrecognized colors will be ignored, which for most part should be fine, however adding new features (gradients, masks, whatever it might be) might be breaky. Lastly, pleroma provides some contrast information and generates readable text color automatically, which is done by tracking background/text color pairs and their contrast - if contrast too low it will try to use background color with inverted lightness, if it's still unacceptable it will fall back to pure black/white. Still Image \u00b6 Most images are wrapped in a component called StillImage, which does one simple thing - tries to detect if image is a GIF and if it is (and user has enabled relevant setting) it will show with that image instead of actual image. It uses standard method to render an image into canvas which renders first frame of a GIF if it's animated (obviously because canvas by itself isn't animated and you'd need to animate it yourself in JS), it will show actual image on hover. Statuses also allow playing animated avatars when you hover over a post, not just image itself. Contributing \u00b6 Feel free to contribute, most preferred way is by starting a Merge Request in GitLab. Please try to use descriptive names for your branches and merge requests, avoid naming them \"fix-issue-777\" \"777\" and so on.","title":"Hacking, tweaking, contributing"},{"location":"HACKING/#hacking-tweaking-contributing","text":"","title":"Hacking, tweaking, contributing"},{"location":"HACKING/#what-pleromafe-even-is-how-it-works","text":"PleromaFE is an SPA (Single-Page Application) backed by Vue framework. It means that it's just a nearly-empty HTML page with bunch of JavaScript that actually generates and controls DOM (i.e. html elements) in Runtime. Currently, there's no way around it - you have to have Javascript enabled in the browser to make it work, there is a theoretical possibility to generate some HTML server-side but it's not implemented yet. You can serve static html page and everything from any HTTP(S) server but currently it will try to access /api/ path at same domain it's running on, meaning that as of right now you cannot put it on one domain and access the other without proxying requests. Development server does exactly that - it serves static html page with javascript and all other assets, adds some code to automatically reload when changes to code are made and proxies requests to some other server.","title":"What PleromaFE even is, how it works"},{"location":"HACKING/#setting-up-develop-server","text":"Setting up development server is fairly straight-forward. On your system you must have Node.js version 8 and newer installed. For older systems or systems that do not package node you can try NodeSource repositories. Windows support theoretically possible but isn't tested. For fetching dependencies and running basic tasks you will Yarn installed. Clone the repository, cd into it and run yarn to fetch dependencies. If you want to point development server at some instance you will need to copy config/local.example.json to config/local.json and change the target to point at instance you want, otherwise it will point to localhost:4000 which is default address for locally-run Pleroma Backend Run yarn dev - it will start the server. Open localhost:8080 in your browser, it might take a while initially until everything is built first time.","title":"Setting up develop server"},{"location":"HACKING/#setting-up-production-build","text":"This could be a bit trickier, you basically need steps 1-4 from develop build instructions, and run yarn build which will compile and copy eveything needed for production into dist folder. As said before, this technically could be used anywhere with some details.","title":"Setting up production build"},{"location":"HACKING/#replacing-your-instances-frontend-with-custom-fe-build","text":"This is the most easiest way to use and test FE build: you just need to copy or symlink contents of dist folder into backend's static directory , by default it is located in instance/static , or in /var/lib/pleroma/static for OTP release installations, create it if it doesn't exist already. Be aware that running yarn build wipes the contents of dist folder.","title":"Replacing your instance's frontend with custom FE build"},{"location":"HACKING/#running-production-build-locally-or-on-a-separate-server","text":"This is highly experimental and only tried once, with no actual simple solution available yet You will need an HTTP server that can proxy requests for /api , /instance , /nodeinfo and show index.html for every 404 page. For nginx you'll probably need something like this: server { listen 80 default_server ; index index.html index.htm index.nginx-debian.html ; root /var/www/html location /api { proxy_pass https://example.tld ; } location /instance { proxy_pass https://example.tld ; } location /nodeinfo { proxy_pass https://example.tld ; } location / { try_files $uri $uri/ /index.html ; } } (ed. note: this is close to what i used last time i had to do it, it may not work and need additions, i basically adjusted default nginx server in debian)","title":"Running production build locally or on a separate server"},{"location":"HACKING/#basic-architecture","text":"","title":"Basic architecture"},{"location":"HACKING/#api-data-operations","text":"In 99% cases PleromaFE uses MastoAPI with Pleroma Extensions to fetch the data. The rest is either QvitterAPI leftovers or pleroma-exclusive APIs. QvitterAPI doesn't exactly have documentation and uses different JSON structure and sometimes different parameters and workflows, this could be a good reference though. Some pleroma-exclusive API may still be using QvitterAPI JSON structure. PleromaFE supports both formats by transforming them into internal format which is basically QvitterAPI one with some additions and renaming. All data is passed trough Entity Normalizer which can serve as a reference of API and what's actually used, it's also a host for all the hacks and data transformation. For most part, PleromaFE tries to store all the info it can get in global vuex store - every user and post are passed trough updating mechanism where data is either added or merged with existing data, reactively updating the information throughout UI, so if in newest request user's post counter increased, it will be instantly updated in open user profile cards. This is also used to find users, posts and sometimes to build timelines and/or request parameters. PleromaFE also tries to persist this store, however only stable data is stored, such as user authentication and preferences, user highlights. Persistence is performed by saving and loading chunk of vuex store in browser's LocalStorage/IndexedDB. TODO: Refactor API code and document it here","title":"API, Data, Operations"},{"location":"HACKING/#themes","text":"PleromaFE uses custom theme \"framework\" which is pretty much just a style tag rendered by vue which only contains CSS3 variables. Every color used in UI should be derived from theme. Theme is stored in a JSON object containing color, opacity, shadow and font information, with most of it being optional. The most basic theme can consist of 4 to 8 \"basic colors\", which is also what previous version of themes allowed, with all other colors being derived from those basic colors, i.e. \"light background\" will be \"background\" color lightened/darkened, \"panel header\" will be same as \"foreground\". The idea is that you can specify just basic color palette and everything else will be generated automatically, but if you really need to tweak some specific color - you can. As said before - older version only allowed 4 to 8 colors, it also used arrays instead of objects, we still support that. The basic colors are: background, foreground, text, links, red, orange, blue, green. First 4 are mandatory, last 4 have default fallbacks since ever more ancient theme formats only had 4 colors. Note that with older version themes used different internal naming when persisting state. Themes are meant to be backwards and somewhat forwards compatible - new colors should properly inherit from some existing one, making it compatible with older versions. When loading newer version of theme all unrecognized colors will be ignored, which for most part should be fine, however adding new features (gradients, masks, whatever it might be) might be breaky. Lastly, pleroma provides some contrast information and generates readable text color automatically, which is done by tracking background/text color pairs and their contrast - if contrast too low it will try to use background color with inverted lightness, if it's still unacceptable it will fall back to pure black/white.","title":"Themes"},{"location":"HACKING/#still-image","text":"Most images are wrapped in a component called StillImage, which does one simple thing - tries to detect if image is a GIF and if it is (and user has enabled relevant setting) it will show with that image instead of actual image. It uses standard method to render an image into canvas which renders first frame of a GIF if it's animated (obviously because canvas by itself isn't animated and you'd need to animate it yourself in JS), it will show actual image on hover. Statuses also allow playing animated avatars when you hover over a post, not just image itself.","title":"Still Image"},{"location":"HACKING/#contributing","text":"Feel free to contribute, most preferred way is by starting a Merge Request in GitLab. Please try to use descriptive names for your branches and merge requests, avoid naming them \"fix-issue-777\" \"777\" and so on.","title":"Contributing"},{"location":"user_guide/","text":"General overview \u00b6 Be prepared for breaking changes, unexpected behavior and this user guide becoming obsolete and wrong. If there was no insanity it would be necessary to create it. --Catbag Pleroma-FE is the default user-facing frontend for Pleroma. If your instance uses Pleroma-FE, you can access it by going to your instance (e.g. https://pleroma.soykaf.com ). After logging in you will have two columns in front of you. Here we're going to keep it to the default behaviour, but some instances swap the left and right columns. If you're on such an instance what we refer to as the left column will be on your right and vice versa. Left column \u00b6 first block: This section is dedicated to posting second block: Here you can switch between the different views for the right column. Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable by instance admins and by default has links to the Pleroma-FE and Mastodon-FE. fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses Right column \u00b6 This is where the interesting stuff happens! There are different views depending on what you choose in the second block of the left panel. Timelines Depending on the timeline you will see different statuses, but each status has a standard structure: Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile where you can find information about the account and can follow, mute or block the account . An arrow icon on the right side allows you to open the status on the instance where it's originating from. A + button on the rightmost side allows you to Expand/Collapse an entire discussion thread. The text of the status, including mentions and attachments. If you click on a mention, it will automatically open the profile page of that person. Four buttons (left to right): Reply, Repeat, Favorite and Add Reaction. The three dots next to it are a dropdown menu for extra options including simple moderation, bookmarking, deleting posts, pinning your own posts to your profile and more. Interactions shows all interactions you've had with people on the network, basically same as notifications except grouped in convenient way. Chats is the chat feature. You can find your friends and start chatting with them. At the moment chat are only one-on-one, but once groups are introduced groupchats will also be possible. About is the about-page and lists the staff, the TOS, activated MRF's, and enabled features Top right \u00b6 The magnifier icon opens the search screen You can search for statuses, people and hashtags. You can import statuses from remote servers by pasting the url to the post in the search field. If you want to search for users that your instance doesn't know about yet, you can search for them using the full name@instance.tld handle. You can also use the full url from their remote profile. The gear icon gives you settings If you have admin rights, you'll see an icon that opens the admin interface The last icon is to log out Bottom right \u00b6 On the bottom right you have the Shoutbox. Here you can communicate with people on the same instance in realtime. It is local-only, very basic and will most probably be removed once the Chats functionality allows group chats.","title":"General overview"},{"location":"user_guide/#general-overview","text":"Be prepared for breaking changes, unexpected behavior and this user guide becoming obsolete and wrong. If there was no insanity it would be necessary to create it. --Catbag Pleroma-FE is the default user-facing frontend for Pleroma. If your instance uses Pleroma-FE, you can access it by going to your instance (e.g. https://pleroma.soykaf.com ). After logging in you will have two columns in front of you. Here we're going to keep it to the default behaviour, but some instances swap the left and right columns. If you're on such an instance what we refer to as the left column will be on your right and vice versa.","title":"General overview"},{"location":"user_guide/#left-column","text":"first block: This section is dedicated to posting second block: Here you can switch between the different views for the right column. Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable by instance admins and by default has links to the Pleroma-FE and Mastodon-FE. fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses","title":"Left column"},{"location":"user_guide/#right-column","text":"This is where the interesting stuff happens! There are different views depending on what you choose in the second block of the left panel. Timelines Depending on the timeline you will see different statuses, but each status has a standard structure: Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile where you can find information about the account and can follow, mute or block the account . An arrow icon on the right side allows you to open the status on the instance where it's originating from. A + button on the rightmost side allows you to Expand/Collapse an entire discussion thread. The text of the status, including mentions and attachments. If you click on a mention, it will automatically open the profile page of that person. Four buttons (left to right): Reply, Repeat, Favorite and Add Reaction. The three dots next to it are a dropdown menu for extra options including simple moderation, bookmarking, deleting posts, pinning your own posts to your profile and more. Interactions shows all interactions you've had with people on the network, basically same as notifications except grouped in convenient way. Chats is the chat feature. You can find your friends and start chatting with them. At the moment chat are only one-on-one, but once groups are introduced groupchats will also be possible. About is the about-page and lists the staff, the TOS, activated MRF's, and enabled features","title":"Right column"},{"location":"user_guide/#top-right","text":"The magnifier icon opens the search screen You can search for statuses, people and hashtags. You can import statuses from remote servers by pasting the url to the post in the search field. If you want to search for users that your instance doesn't know about yet, you can search for them using the full name@instance.tld handle. You can also use the full url from their remote profile. The gear icon gives you settings If you have admin rights, you'll see an icon that opens the admin interface The last icon is to log out","title":"Top right"},{"location":"user_guide/#bottom-right","text":"On the bottom right you have the Shoutbox. Here you can communicate with people on the same instance in realtime. It is local-only, very basic and will most probably be removed once the Chats functionality allows group chats.","title":"Bottom right"},{"location":"user_guide/posting_reading_basic_functions/","text":"Posting, reading, basic functions. \u00b6 Warning Depending on your instance some of the options might not be available or have different defaults After registering and logging in you're presented with your timeline in right column and new post form with timeline list and notifications in the left column. Posts will contain the text you are posting, but some content will be modified: Mentions: Mentions have the form of @user or @user @instance.tld. These will become links to the user's profile. In addition, the mentioned user will always get a notification about the post they have been mentioned in, so only mention users that you want to receive this message. URLs: URLs like http://example.com will be automatically be turned into a clickable links. Hashtags: Hashtags like #cofe will also be turned into links. There is a default character limit of 5000 characters. Let's clear up some basic stuff. When you post something it's called a post or it could be called a status or even a toot or a pr\u00f6\u00f6t depending on whom you ask. Post has body/content but it also has some other stuff in it - from attachments, visibility scope, subject line... Emoji are small images embedded in text, there are two major types of emoji: unicode emoji and custom emoji. While unicode emoji are universal and standardized, they can appear differently depending on where you are using them or may not appear at all on older systems. Custom emoji are a more fun kind - instance administrator can define many images as custom emoji for their users. This works very simple - custom emoji is defined by its shortcode and an image, so that any shortcode enclosed in colons get replaced with image if such shortcode exist. Let's say there's a :pleroma: emoji defined on an instance. That means First time using :pleroma: pleroma! will become First time using pleroma! Note that you can only use emoji defined on your instance, you cannot \"copy\" someone else's emoji, and will have to ask your administrator to copy emoji from other instance to yours. Lastly, there's two convenience options for emoji: an emoji picker (smiley face to the right of \"submit\" button) and autocomplete suggestions - when you start typing :shortcode: it will automatically try to suggest you emoji and complete the shortcode for you if you select one. If emoji doesn't show up in suggestions nor in emoji picker it means there's no such emoji on your instance, if shortcode doesn't match any defined emoji it will appear as text. Attachments are fairly simple - you can attach any file to a post as long as the file is within maximum size limits. If you're uploading explicit material you can mark all of your attachments as sensitive (or add the #nsfw tag) - it will hide the images and videos behind a warning so that it won't be displayed instantly. Subject line also known as CW (Content Warning) could be used as a header to the post and/or to warn others about contents of the post having something that might upset somebody or something among those lines. Several applications allow to hide post content leaving only subject line visible. Using a subject line will not mark your images as sensitive, you will have to do that explicitly (see above). Visiblity scope controls who will be able to see your posts. There are four scopes available: Public : This is the default, and some fediverse software, like GNU Social, only supports this. This means that your post is accessible by anyone and will be shown in the public timelines. Unlisted : This is the same as public, but your post won't appear in the public timelines. The post will still be accessible by anyone who comes across it (for example, by looking at your profile) or by direct linking. They will also appear in public searches. Followers only : This will show your post only to your followers. Only they will be able to interact with it. Be careful: When somebody follows you, they will be able to see all your previous followers only posts as well! If you want to restrict who can follow you, consider locking your account down to only approved followers . Direct : This will only send the message to the people explicitly mentioned in the post. A few things to consider about the security and usage of these scopes: None of these options will change the fact that the messages are all saved in the database unencrypted. They will be visible to your server admin and to any other admin of a server who receives this post. Do not share information that you would consider secret or dangerous. Use encrypted messaging systems for these things. Follower-only posts can lead to fragmented conversations. If you post a follower-only post and somebody else replies to it with a follower-only post, only people following both of you will see the whole conversation thread. Everybody else will only see half of it. Keep this in mind and keep conversations public if possible. Changing scopes during a thread or adding people to a direct message will not retroactively make them see the whole conversation. If you add someone to a direct message conversation, they will not see the post that happened before they were mentioned. Reply-to if you are replying to someone, your post will also contain a note that your post is referring to the post you're replying to. Person you're replying to will receive a notification even if you remove them from mentioned people. You won't receive notifications when replying to your own posts, but it's useful to reply to your own posts to provide people some context if it's a follow-up to a previous post. There's a small \"Reply to ...\" label under post author's name which you can hover on to see what post it's referring to. Sometimes you may encounter posts that seem different than what they are supposed to. For example, you might see a direct message without any mentions in the text. This can happen because internally, the Fediverse has a different addressing mechanism similar to email, with to and cc fields. While these are not directly accessible in PleromaFE, other software in the Fediverse might generate those posts. Do not worry in these cases, these are normal and not a bug. Rich text \u00b6 By default new posts you make are plaintext, meaning you can't make text bold or add custom links or make lists or anything like that. However if your instance allows it you can use Markdown or BBCode or HTML to spice up your text, however there are certain limitations to what HTML tags and what features of Markdown you can use. Here is a small example of some text in markdown. This is an example of markdown text using **bold** and *cursive* text. To get a newline we add two spaces at the end of the previous line. Let's also add a list * with * some * items If you set the input-method to Markdown, and post this, it will look something like Other actions \u00b6 In addition to posting you can also favorite posts also known as liking them and repeat posts (also known as retweeting , boosting and even repr\u00f6\u00f6ting ). Favoriting a post increments a counter on it, notifies the post author of your affection towards that post and also adds that post to your \"favorited\" posts list (in your own profile, \"Favorites\" tab). Repr\u00f6\u00f6ting a post does all that and also repeats this post to your followers and your profile page with a note \" user repeated post\". Your own posts can be deleted, but this will only reliably delete the post from your own instance. Other instances will receive a deletion notice, but there's no way to force them to actually delete a post. In addition, not all instances that contain the message might even receive the deletion notice, because they might be offline or not known to have the post because they received it through a repeat. Lastly, deletion notice might not reach certain frontends and clients - post will be visible for them until page refresh or cache clear, they probably won't be able to interact with it apart from replying to it (which will have reply-to mark missing). If you are a moderator, you can also delete posts by other people. If those people are on your instance, it will delete the post and send out the deletion notice to other servers. If they are not on your instance, it will just remove the post from your local instance. There's also an option to report a user's post which can be used to notify your (and optionally the other instance's) admin that someone is being naughty.","title":"Posting, reading, basic functions."},{"location":"user_guide/posting_reading_basic_functions/#posting-reading-basic-functions","text":"Warning Depending on your instance some of the options might not be available or have different defaults After registering and logging in you're presented with your timeline in right column and new post form with timeline list and notifications in the left column. Posts will contain the text you are posting, but some content will be modified: Mentions: Mentions have the form of @user or @user @instance.tld. These will become links to the user's profile. In addition, the mentioned user will always get a notification about the post they have been mentioned in, so only mention users that you want to receive this message. URLs: URLs like http://example.com will be automatically be turned into a clickable links. Hashtags: Hashtags like #cofe will also be turned into links. There is a default character limit of 5000 characters. Let's clear up some basic stuff. When you post something it's called a post or it could be called a status or even a toot or a pr\u00f6\u00f6t depending on whom you ask. Post has body/content but it also has some other stuff in it - from attachments, visibility scope, subject line... Emoji are small images embedded in text, there are two major types of emoji: unicode emoji and custom emoji. While unicode emoji are universal and standardized, they can appear differently depending on where you are using them or may not appear at all on older systems. Custom emoji are a more fun kind - instance administrator can define many images as custom emoji for their users. This works very simple - custom emoji is defined by its shortcode and an image, so that any shortcode enclosed in colons get replaced with image if such shortcode exist. Let's say there's a :pleroma: emoji defined on an instance. That means First time using :pleroma: pleroma! will become First time using pleroma! Note that you can only use emoji defined on your instance, you cannot \"copy\" someone else's emoji, and will have to ask your administrator to copy emoji from other instance to yours. Lastly, there's two convenience options for emoji: an emoji picker (smiley face to the right of \"submit\" button) and autocomplete suggestions - when you start typing :shortcode: it will automatically try to suggest you emoji and complete the shortcode for you if you select one. If emoji doesn't show up in suggestions nor in emoji picker it means there's no such emoji on your instance, if shortcode doesn't match any defined emoji it will appear as text. Attachments are fairly simple - you can attach any file to a post as long as the file is within maximum size limits. If you're uploading explicit material you can mark all of your attachments as sensitive (or add the #nsfw tag) - it will hide the images and videos behind a warning so that it won't be displayed instantly. Subject line also known as CW (Content Warning) could be used as a header to the post and/or to warn others about contents of the post having something that might upset somebody or something among those lines. Several applications allow to hide post content leaving only subject line visible. Using a subject line will not mark your images as sensitive, you will have to do that explicitly (see above). Visiblity scope controls who will be able to see your posts. There are four scopes available: Public : This is the default, and some fediverse software, like GNU Social, only supports this. This means that your post is accessible by anyone and will be shown in the public timelines. Unlisted : This is the same as public, but your post won't appear in the public timelines. The post will still be accessible by anyone who comes across it (for example, by looking at your profile) or by direct linking. They will also appear in public searches. Followers only : This will show your post only to your followers. Only they will be able to interact with it. Be careful: When somebody follows you, they will be able to see all your previous followers only posts as well! If you want to restrict who can follow you, consider locking your account down to only approved followers . Direct : This will only send the message to the people explicitly mentioned in the post. A few things to consider about the security and usage of these scopes: None of these options will change the fact that the messages are all saved in the database unencrypted. They will be visible to your server admin and to any other admin of a server who receives this post. Do not share information that you would consider secret or dangerous. Use encrypted messaging systems for these things. Follower-only posts can lead to fragmented conversations. If you post a follower-only post and somebody else replies to it with a follower-only post, only people following both of you will see the whole conversation thread. Everybody else will only see half of it. Keep this in mind and keep conversations public if possible. Changing scopes during a thread or adding people to a direct message will not retroactively make them see the whole conversation. If you add someone to a direct message conversation, they will not see the post that happened before they were mentioned. Reply-to if you are replying to someone, your post will also contain a note that your post is referring to the post you're replying to. Person you're replying to will receive a notification even if you remove them from mentioned people. You won't receive notifications when replying to your own posts, but it's useful to reply to your own posts to provide people some context if it's a follow-up to a previous post. There's a small \"Reply to ...\" label under post author's name which you can hover on to see what post it's referring to. Sometimes you may encounter posts that seem different than what they are supposed to. For example, you might see a direct message without any mentions in the text. This can happen because internally, the Fediverse has a different addressing mechanism similar to email, with to and cc fields. While these are not directly accessible in PleromaFE, other software in the Fediverse might generate those posts. Do not worry in these cases, these are normal and not a bug.","title":"Posting, reading, basic functions."},{"location":"user_guide/posting_reading_basic_functions/#rich-text","text":"By default new posts you make are plaintext, meaning you can't make text bold or add custom links or make lists or anything like that. However if your instance allows it you can use Markdown or BBCode or HTML to spice up your text, however there are certain limitations to what HTML tags and what features of Markdown you can use. Here is a small example of some text in markdown. This is an example of markdown text using **bold** and *cursive* text. To get a newline we add two spaces at the end of the previous line. Let's also add a list * with * some * items If you set the input-method to Markdown, and post this, it will look something like","title":"Rich text"},{"location":"user_guide/posting_reading_basic_functions/#other-actions","text":"In addition to posting you can also favorite posts also known as liking them and repeat posts (also known as retweeting , boosting and even repr\u00f6\u00f6ting ). Favoriting a post increments a counter on it, notifies the post author of your affection towards that post and also adds that post to your \"favorited\" posts list (in your own profile, \"Favorites\" tab). Repr\u00f6\u00f6ting a post does all that and also repeats this post to your followers and your profile page with a note \" user repeated post\". Your own posts can be deleted, but this will only reliably delete the post from your own instance. Other instances will receive a deletion notice, but there's no way to force them to actually delete a post. In addition, not all instances that contain the message might even receive the deletion notice, because they might be offline or not known to have the post because they received it through a repeat. Lastly, deletion notice might not reach certain frontends and clients - post will be visible for them until page refresh or cache clear, they probably won't be able to interact with it apart from replying to it (which will have reply-to mark missing). If you are a moderator, you can also delete posts by other people. If those people are on your instance, it will delete the post and send out the deletion notice to other servers. If they are not on your instance, it will just remove the post from your local instance. There's also an option to report a user's post which can be used to notify your (and optionally the other instance's) admin that someone is being naughty.","title":"Other actions"},{"location":"user_guide/settings/","text":"Settings \u00b6 On the top-right you will see a gear icon. Click it to open the settings. General \u00b6 Interface \u00b6 Interface language is where you can set the interface language. The default language is the one that you set in your browser settings. Hide instance-specific panel hides the panel in the lower left that usually contains general information about the server. This will only be visible if your admin has activated this panel and is deactivated by default. Timeline \u00b6 Hide posts of muted users If this is set, 'muting' a user will completely hide their posts instead of collapsing them. Collapse posts with subjects This will collapse posts that contain a subject, hiding their content. Subjects are also sometimes called content warnings. Enable automatic streaming of new posts when scrolled to the top With this enabled, new posts will automatically stream in when you are scrolled to the top. Otherwise, you will see a button on the timeline that will let you display the new posts. Pause streaming when tab is not focused This pauses the automatic streaming that the previous option enables when the tab is out of focus. This is useful if you don't want to miss any new posts. Enable automatic loading when scrolled to the bottom When this is disabled, a button will be shown on the bottom of the timeline that will let you load older posts. Enable reply-link preview on hover Status posts in the timeline and notifications contain links to replies and to the post they are a reply to. If this setting is enabled, hovering over that link will display that linked post in a small hovering overlay. Composing \u00b6 Copy scope when replying makes the scope of a reply be the same as the scope of the post it is replying to. This is useful to prevent accidentally moving private discussions to public, or vice versa. Always show subject field Whether or not to display the 'subject' input field in the post form. If you do not want to use subjects, you can deactivate this. Copy subject when replying controls if the subject of a post will be copied from the post it is replying to. Post status content type selects the default content type of your post. The options are: Plain text, HTML, BBCode and Markdown. Minimize scope selection options will reduce the visibility scopes to 'direct', your default post scope and post scope of post you're replying to. Automatically hide New Post button hides the floating \"New post\" button when scrolling on mobile view. Pad emoji with spaces when adding from picker Will add spaces around emoji you select it from the picker. Attachments \u00b6 Hide attachments in timeline Do not display attachments in timelines. They will still display in expanded conversations. This is useful to save bandwidth and for browsing in public. Hide attachments in conversations Also hide attachments in expanded conversations. Maximum amount of thumbnails per post Exactly that :) Enable clickthrough NSFW attachment hiding Hide attachments that are marked as NSFW/sensitive behind a click-through image.` Preload images This will preload the hidden images so that they display faster when clicking through. Open NSFW attachments with just one click Directly open NSFW attachments in a maximised state instead of revealing the image thumbnail. Play-on-hover GIFs With this activated, GIFs images and avatars will only be animated on mouse hover. Otherwise, they will be always animated. This is very useful if your timeline looks too flashy from people's animated avatars and eases the CPU load. Loop videos Whether to loop videos indefinitely. Loop only videos without sound Some instances will use videos without sounds instead of GIFs. This will make only those videos autoplay. Play videos directly in the media viewer Play videos right in the timeline instead of opening it in a modal Don't crop the attachment in thumbnails if enabled, images in attachments will be fit entirely inside the container instead of being zoomed in and cropped. Notifications \u00b6 Enable web push notifications this enables Web Push notifications, to allow receiving notifications even when the page isn't opened, doesn't affect regular notifications. Fun \u00b6 Meme arrows will make > greentext be shown in green (using the \"green\" from the theme that is used). Profile \u00b6 Here you can set up how you appear to other users among with some other settings: Name is text that displays next to your avatar in posts. Please note that you cannot change your @handle Bio will be displayed under your profile - you can put anything you want there you want for everyone to see. Restrict your account to approved followers only makes your account \"locked\", when people follow you - you have to approve or deny their follow requests, this gives more control over who sees your followers only posts. Default visibility scope is your default post scope for new posts Strip rich text from all posts strips rich text formatting (bold/italics/lists etc) from all incoming posts. This will only affect newly fetched posts. If you're admin or moderator on your instance you also get Show [role] badge in my profile - this controls whether to show \"Admin\" or \"Moderator** label on your profile page. For all options mentioned above you have to click \"Submit\" button for changes to take place Avatar this changes picture next to your posts. Your avatar shouldn't exceed 2 MiB (2097152 bytes) or it could cause problems with certain instances. Banner this changes background on your profile card. Same as avatar it shouldn't exceed 2 MiB limit. Profile Background this changes background picture for UI. It isn't shown to anyone else yet , but some time later it will be shown when viewing your profisle. Security \u00b6 Here you can change your password, revoke access tokens, configure 2-factor authentication (if available). Filtering \u00b6 Types of notifications to show This controls what kind of notifications will appear in notification column and which notifications to get in your system outside the web page Replies in timeline You may know that other social networks like Twitter will often not display replies to other people in your timeline, even if you are following the poster. Pleroma usually will show these posts to you to encourage conversation. If you do not like this behavior, you can change it here. Hide post statistics This hides the number of favorites, number of replies, etc. Hide user statistics This hides the number of followers, friends, etc. Muted words allows a list of words that will be muted (i.e. displayed in a collapsed state) on the timeline and in notifications. An easy way to tune down noise in your timeline. By default posts can be expanded if you want to see them. Hide filtered statuses will hide the filtered / muted posts completely instead of collapsing them. Theme \u00b6 Here you can change the look and feel of Pleroma-FE. You can choose from several instance-provided presets and you can load one from file and save current theme to file. Before you apply new theme you can see what it will look like approximately in preview section. The themes engine was made to be easy to use while giving an option for powerful in-depth customization - you can just tweak colors on \"Common\" tab and leave everything else as is. If there's a little check box next to a color picker it means that color is optional and unless checked will be automatically picked based on some other color or defaults. For some features you can also adjust transparency of it by changing its opacity, you just need to tick checkbox next to it, otherwise it will be using default opacity. Contrast information is also provided - you can see how readable text is based on contrast between text color and background, icons under color pickers represent contrast rating based on WCAG - thumbs up means AAA rating (good), half-filled circle means AA rating (acceptable) and warning icon means it doesn't pass the minimal contrast requirement and probably will be less readable, especially for vision-challenged people, you can hover over icon to see more detailed information. Please note that if background is not opaque (opacity != 1) contrast will be measured based on \"worst case scenario\", i.e. behind semi-transparent background lies some solid color that makes text harder to read, this however is still inaccurate because it doesn't account that background can be noisy/busy, making text even harder to read. Apart from colors you can also tweak shadow and lighting, which is used mostly to give buttons proper relief based on their state, give panes their shade, make things glow etc. It's quite powerful, and basically provides somewhat convenient interface for CSS Shadows . Another thing you can tweak is theme's roundness - some people like sharp edges, some want things more rounded. This is also used if you want circled or square avatars. Lastly, you can redefine fonts used in UI without changing fonts in your browser or system, this however requires you to enter font's full name and having that font installed on your system. Notifications \u00b6 This screen allows more fine-grained control over what notifications to show to you based on whom it comes from. Data Import/Export \u00b6 This allows you to export and import a list of people you follow and block, in case instance's database gets reverted or if you want to move to another server. Note that you CANNOT export/import list of people who follow you , they'll need to follow you back themselves. Mutes and Blocks \u00b6 These screens give access to full list of people you block/mute, useful for un blocking/ un muting people because blocking/muting them most likely removes them out of your sight completely. Version \u00b6 Just displays the backend and frontend version. Useful to mention in bug reports.","title":"Settings"},{"location":"user_guide/settings/#settings","text":"On the top-right you will see a gear icon. Click it to open the settings.","title":"Settings"},{"location":"user_guide/settings/#general","text":"","title":"General"},{"location":"user_guide/settings/#interface","text":"Interface language is where you can set the interface language. The default language is the one that you set in your browser settings. Hide instance-specific panel hides the panel in the lower left that usually contains general information about the server. This will only be visible if your admin has activated this panel and is deactivated by default.","title":"Interface"},{"location":"user_guide/settings/#timeline","text":"Hide posts of muted users If this is set, 'muting' a user will completely hide their posts instead of collapsing them. Collapse posts with subjects This will collapse posts that contain a subject, hiding their content. Subjects are also sometimes called content warnings. Enable automatic streaming of new posts when scrolled to the top With this enabled, new posts will automatically stream in when you are scrolled to the top. Otherwise, you will see a button on the timeline that will let you display the new posts. Pause streaming when tab is not focused This pauses the automatic streaming that the previous option enables when the tab is out of focus. This is useful if you don't want to miss any new posts. Enable automatic loading when scrolled to the bottom When this is disabled, a button will be shown on the bottom of the timeline that will let you load older posts. Enable reply-link preview on hover Status posts in the timeline and notifications contain links to replies and to the post they are a reply to. If this setting is enabled, hovering over that link will display that linked post in a small hovering overlay.","title":"Timeline"},{"location":"user_guide/settings/#composing","text":"Copy scope when replying makes the scope of a reply be the same as the scope of the post it is replying to. This is useful to prevent accidentally moving private discussions to public, or vice versa. Always show subject field Whether or not to display the 'subject' input field in the post form. If you do not want to use subjects, you can deactivate this. Copy subject when replying controls if the subject of a post will be copied from the post it is replying to. Post status content type selects the default content type of your post. The options are: Plain text, HTML, BBCode and Markdown. Minimize scope selection options will reduce the visibility scopes to 'direct', your default post scope and post scope of post you're replying to. Automatically hide New Post button hides the floating \"New post\" button when scrolling on mobile view. Pad emoji with spaces when adding from picker Will add spaces around emoji you select it from the picker.","title":"Composing"},{"location":"user_guide/settings/#attachments","text":"Hide attachments in timeline Do not display attachments in timelines. They will still display in expanded conversations. This is useful to save bandwidth and for browsing in public. Hide attachments in conversations Also hide attachments in expanded conversations. Maximum amount of thumbnails per post Exactly that :) Enable clickthrough NSFW attachment hiding Hide attachments that are marked as NSFW/sensitive behind a click-through image.` Preload images This will preload the hidden images so that they display faster when clicking through. Open NSFW attachments with just one click Directly open NSFW attachments in a maximised state instead of revealing the image thumbnail. Play-on-hover GIFs With this activated, GIFs images and avatars will only be animated on mouse hover. Otherwise, they will be always animated. This is very useful if your timeline looks too flashy from people's animated avatars and eases the CPU load. Loop videos Whether to loop videos indefinitely. Loop only videos without sound Some instances will use videos without sounds instead of GIFs. This will make only those videos autoplay. Play videos directly in the media viewer Play videos right in the timeline instead of opening it in a modal Don't crop the attachment in thumbnails if enabled, images in attachments will be fit entirely inside the container instead of being zoomed in and cropped.","title":"Attachments"},{"location":"user_guide/settings/#notifications","text":"Enable web push notifications this enables Web Push notifications, to allow receiving notifications even when the page isn't opened, doesn't affect regular notifications.","title":"Notifications"},{"location":"user_guide/settings/#fun","text":"Meme arrows will make > greentext be shown in green (using the \"green\" from the theme that is used).","title":"Fun"},{"location":"user_guide/settings/#profile","text":"Here you can set up how you appear to other users among with some other settings: Name is text that displays next to your avatar in posts. Please note that you cannot change your @handle Bio will be displayed under your profile - you can put anything you want there you want for everyone to see. Restrict your account to approved followers only makes your account \"locked\", when people follow you - you have to approve or deny their follow requests, this gives more control over who sees your followers only posts. Default visibility scope is your default post scope for new posts Strip rich text from all posts strips rich text formatting (bold/italics/lists etc) from all incoming posts. This will only affect newly fetched posts. If you're admin or moderator on your instance you also get Show [role] badge in my profile - this controls whether to show \"Admin\" or \"Moderator** label on your profile page. For all options mentioned above you have to click \"Submit\" button for changes to take place Avatar this changes picture next to your posts. Your avatar shouldn't exceed 2 MiB (2097152 bytes) or it could cause problems with certain instances. Banner this changes background on your profile card. Same as avatar it shouldn't exceed 2 MiB limit. Profile Background this changes background picture for UI. It isn't shown to anyone else yet , but some time later it will be shown when viewing your profisle.","title":"Profile"},{"location":"user_guide/settings/#security","text":"Here you can change your password, revoke access tokens, configure 2-factor authentication (if available).","title":"Security"},{"location":"user_guide/settings/#filtering","text":"Types of notifications to show This controls what kind of notifications will appear in notification column and which notifications to get in your system outside the web page Replies in timeline You may know that other social networks like Twitter will often not display replies to other people in your timeline, even if you are following the poster. Pleroma usually will show these posts to you to encourage conversation. If you do not like this behavior, you can change it here. Hide post statistics This hides the number of favorites, number of replies, etc. Hide user statistics This hides the number of followers, friends, etc. Muted words allows a list of words that will be muted (i.e. displayed in a collapsed state) on the timeline and in notifications. An easy way to tune down noise in your timeline. By default posts can be expanded if you want to see them. Hide filtered statuses will hide the filtered / muted posts completely instead of collapsing them.","title":"Filtering"},{"location":"user_guide/settings/#theme","text":"Here you can change the look and feel of Pleroma-FE. You can choose from several instance-provided presets and you can load one from file and save current theme to file. Before you apply new theme you can see what it will look like approximately in preview section. The themes engine was made to be easy to use while giving an option for powerful in-depth customization - you can just tweak colors on \"Common\" tab and leave everything else as is. If there's a little check box next to a color picker it means that color is optional and unless checked will be automatically picked based on some other color or defaults. For some features you can also adjust transparency of it by changing its opacity, you just need to tick checkbox next to it, otherwise it will be using default opacity. Contrast information is also provided - you can see how readable text is based on contrast between text color and background, icons under color pickers represent contrast rating based on WCAG - thumbs up means AAA rating (good), half-filled circle means AA rating (acceptable) and warning icon means it doesn't pass the minimal contrast requirement and probably will be less readable, especially for vision-challenged people, you can hover over icon to see more detailed information. Please note that if background is not opaque (opacity != 1) contrast will be measured based on \"worst case scenario\", i.e. behind semi-transparent background lies some solid color that makes text harder to read, this however is still inaccurate because it doesn't account that background can be noisy/busy, making text even harder to read. Apart from colors you can also tweak shadow and lighting, which is used mostly to give buttons proper relief based on their state, give panes their shade, make things glow etc. It's quite powerful, and basically provides somewhat convenient interface for CSS Shadows . Another thing you can tweak is theme's roundness - some people like sharp edges, some want things more rounded. This is also used if you want circled or square avatars. Lastly, you can redefine fonts used in UI without changing fonts in your browser or system, this however requires you to enter font's full name and having that font installed on your system.","title":"Theme"},{"location":"user_guide/settings/#notifications_1","text":"This screen allows more fine-grained control over what notifications to show to you based on whom it comes from.","title":"Notifications"},{"location":"user_guide/settings/#data-importexport","text":"This allows you to export and import a list of people you follow and block, in case instance's database gets reverted or if you want to move to another server. Note that you CANNOT export/import list of people who follow you , they'll need to follow you back themselves.","title":"Data Import/Export"},{"location":"user_guide/settings/#mutes-and-blocks","text":"These screens give access to full list of people you block/mute, useful for un blocking/ un muting people because blocking/muting them most likely removes them out of your sight completely.","title":"Mutes and Blocks"},{"location":"user_guide/settings/#version","text":"Just displays the backend and frontend version. Useful to mention in bug reports.","title":"Version"},{"location":"user_guide/timelines/","text":"Timelines \u00b6 You have several timelines to browse trough Timeline aka Home Timeline - this timeline contains all posts by people you follow and your own posts, as well as posts mentioning you directly. Bookmarks all the posts you've bookmarked. You can bookmark a post by clicking the three dots on the bottom right of the post and choose Bookmark. Direct Messages all posts with direct scope addressed to you or mentioning you. Public Timelines all public posts made by users on the instance you're on The Whole Known Network also known as TWKN or Federated Timeline - all public posts known by your instance. Due to nature of the network your instance may not know all the posts on the network, so only posts known by your instance are shown there. Note that by default you will see all posts made by other users on your Home Timeline, this contrast behavior of Twitter and Mastodon, which shows you only non-reply posts and replies to people you follow. You can change said behavior in the settings . By default instances will try to send activities (e.g. posts, favorites, etc.) up to 7 days or until the target server received them. For this reason posts that are up to 7 days old and your server didn't know about yet can pop up on your timeline. This is the default behaviour and can be changed by your admin.","title":"Timelines"},{"location":"user_guide/timelines/#timelines","text":"You have several timelines to browse trough Timeline aka Home Timeline - this timeline contains all posts by people you follow and your own posts, as well as posts mentioning you directly. Bookmarks all the posts you've bookmarked. You can bookmark a post by clicking the three dots on the bottom right of the post and choose Bookmark. Direct Messages all posts with direct scope addressed to you or mentioning you. Public Timelines all public posts made by users on the instance you're on The Whole Known Network also known as TWKN or Federated Timeline - all public posts known by your instance. Due to nature of the network your instance may not know all the posts on the network, so only posts known by your instance are shown there. Note that by default you will see all posts made by other users on your Home Timeline, this contrast behavior of Twitter and Mastodon, which shows you only non-reply posts and replies to people you follow. You can change said behavior in the settings . By default instances will try to send activities (e.g. posts, favorites, etc.) up to 7 days or until the target server received them. For this reason posts that are up to 7 days old and your server didn't know about yet can pop up on your timeline. This is the default behaviour and can be changed by your admin.","title":"Timelines"},{"location":"user_guide/users_follow_mute_block/","text":"Users: follow, mute, block \u00b6 When you see someone, you can click on their user picture to view their profile, and click on the userpic in that to see full profile. You can follow them, mute and block them. Following is self-explanatory, it adds them to your Home Timeline, lists you as a follower and gives you access to follower-only posts if they have any. Muting collapses posts and notifications made by them, giving you an option to see the post if you're curious. Clients other than PleromaFE may completely remove their posts. Blocking a user removes them from your timeline and notifications and prevents them from following you (automatically unfollows them from you). Please note that some users can be \"locked\", meaning instead of following them you send a follow request they need to approve for you to become their follower.","title":"Users: follow, mute, block"},{"location":"user_guide/users_follow_mute_block/#users-follow-mute-block","text":"When you see someone, you can click on their user picture to view their profile, and click on the userpic in that to see full profile. You can follow them, mute and block them. Following is self-explanatory, it adds them to your Home Timeline, lists you as a follower and gives you access to follower-only posts if they have any. Muting collapses posts and notifications made by them, giving you an option to see the post if you're curious. Clients other than PleromaFE may completely remove their posts. Blocking a user removes them from your timeline and notifications and prevents them from following you (automatically unfollows them from you). Please note that some users can be \"locked\", meaning instead of following them you send a follow request they need to approve for you to become their follower.","title":"Users: follow, mute, block"}]} \ No newline at end of file diff --git a/docs/site/sitemap.xml b/docs/site/sitemap.xml deleted file mode 100644 index 90864b38..00000000 --- a/docs/site/sitemap.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - - None - 2022-07-15 - daily - - \ No newline at end of file diff --git a/docs/site/sitemap.xml.gz b/docs/site/sitemap.xml.gz deleted file mode 100644 index 18f3f922..00000000 Binary files a/docs/site/sitemap.xml.gz and /dev/null differ diff --git a/docs/site/user_guide/index.html b/docs/site/user_guide/index.html deleted file mode 100644 index 55b8cbdf..00000000 --- a/docs/site/user_guide/index.html +++ /dev/null @@ -1,669 +0,0 @@ - - - - - - - - - - - - - - - - General overview - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    General overview

    -
    -

    Be prepared for breaking changes, unexpected behavior and this user guide becoming obsolete and wrong.

    -

    If there was no insanity

    -

    it would be necessary to create it.

    -

    --Catbag

    -
    -

    Pleroma-FE is the default user-facing frontend for Pleroma. If your instance uses Pleroma-FE, you can access it by going to your instance (e.g. https://pleroma.soykaf.com). After logging in you will have two columns in front of you. Here we're going to keep it to the default behaviour, but some instances swap the left and right columns. If you're on such an instance what we refer to as the left column will be on your right and vice versa.

    -

    Left column

    -
      -
    • first block: This section is dedicated to posting
    • -
    • second block: Here you can switch between the different views for the right column.
    • -
    • Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable by instance admins and by default has links to the Pleroma-FE and Mastodon-FE.
    • -
    • fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses
    • -
    -

    Right column

    -

    This is where the interesting stuff happens! There are different views depending on what you choose in the second block of the left panel.

    -
      -
    • Timelines Depending on the timeline you will see different statuses, but each status has a standard structure:
        -
      • Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile where you can find information about the account and can follow, mute or block the account.
      • -
      • An arrow icon on the right side allows you to open the status on the instance where it's originating from.
      • -
      • A + button on the rightmost side allows you to Expand/Collapse an entire discussion thread.
      • -
      • The text of the status, including mentions and attachments. If you click on a mention, it will automatically open the profile page of that person.
      • -
      • Four buttons (left to right): Reply, Repeat, Favorite and Add Reaction. The three dots next to it are a dropdown menu for extra options including simple moderation, bookmarking, deleting posts, pinning your own posts to your profile and more.
      • -
      -
    • -
    • Interactions shows all interactions you've had with people on the network, basically same as notifications except grouped in convenient way.
    • -
    • Chats is the chat feature. You can find your friends and start chatting with them. At the moment chat are only one-on-one, but once groups are introduced groupchats will also be possible.
    • -
    • About is the about-page and lists the staff, the TOS, activated MRF's, and enabled features
    • -
    -

    Top right

    -
      -
    • The magnifier icon opens the search screen
        -
      • You can search for statuses, people and hashtags.
      • -
      • You can import statuses from remote servers by pasting the url to the post in the search field.
      • -
      • If you want to search for users that your instance doesn't know about yet, you can search for them using the full name@instance.tld handle. You can also use the full url from their remote profile.
      • -
      -
    • -
    • The gear icon gives you settings
    • -
    • If you have admin rights, you'll see an icon that opens the admin interface
    • -
    • The last icon is to log out
    • -
    -

    Bottom right

    -

    On the bottom right you have the Shoutbox. Here you can communicate with people on the same instance in realtime. It is local-only, very basic and will most probably be removed once the Chats functionality allows group chats.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/docs/site/user_guide/posting_reading_basic_functions/index.html b/docs/site/user_guide/posting_reading_basic_functions/index.html deleted file mode 100644 index 87d05749..00000000 --- a/docs/site/user_guide/posting_reading_basic_functions/index.html +++ /dev/null @@ -1,658 +0,0 @@ - - - - - - - - - - - - - - - - Posting, reading, basic functions. - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    Posting, reading, basic functions.

    -
    -

    Warning

    -

    Depending on your instance some of the options might not be available or have different defaults

    -
    -

    After registering and logging in you're presented with your timeline in right column and new post form with timeline list and notifications in the left column.

    -

    Posts will contain the text you are posting, but some content will be modified:

    -
      -
    1. Mentions: Mentions have the form of @user or @user@instance.tld. These will become links to the user's profile. In addition, the mentioned user will always get a notification about the post they have been mentioned in, so only mention users that you want to receive this message.
    2. -
    3. URLs: URLs like http://example.com will be automatically be turned into a clickable links.
    4. -
    5. Hashtags: Hashtags like #cofe will also be turned into links.
    6. -
    7. There is a default character limit of 5000 characters.
    8. -
    -

    Let's clear up some basic stuff. When you post something it's called a post or it could be called a status or even a toot or a prööt depending on whom you ask. Post has body/content but it also has some other stuff in it - from attachments, visibility scope, subject line...

    -

    Emoji are small images embedded in text, there are two major types of emoji: unicode emoji and custom emoji. While unicode emoji are universal and standardized, they can appear differently depending on where you are using them or may not appear at all on older systems. Custom emoji are a more fun kind - instance administrator can define many images as custom emoji for their users. This works very simple - custom emoji is defined by its shortcode and an image, so that any shortcode enclosed in colons get replaced with image if such shortcode exist. -Let's say there's a :pleroma: emoji defined on an instance. That means

    -
    -

    First time using :pleroma: pleroma!

    -
    -

    will become

    -
    -

    First time using pleroma pleroma!

    -
    -

    Note that you can only use emoji defined on your instance, you cannot "copy" someone else's emoji, and will have to ask your administrator to copy emoji from other instance to yours.
    -Lastly, there's two convenience options for emoji: an emoji picker (smiley face to the right of "submit" button) and autocomplete suggestions - when you start typing :shortcode: it will automatically try to suggest you emoji and complete the shortcode for you if you select one. If emoji doesn't show up in suggestions nor in emoji picker it means there's no such emoji on your instance, if shortcode doesn't match any defined emoji it will appear as text.

    -

    Attachments are fairly simple - you can attach any file to a post as long as the file is within maximum size limits. If you're uploading explicit material you can mark all of your attachments as sensitive (or add the #nsfw tag) - it will hide the images and videos behind a warning so that it won't be displayed instantly.

    -

    Subject line also known as CW (Content Warning) could be used as a header to the post and/or to warn others about contents of the post having something that might upset somebody or something among those lines. Several applications allow to hide post content leaving only subject line visible. Using a subject line will not mark your images as sensitive, you will have to do that explicitly (see above).

    -

    Visiblity scope controls who will be able to see your posts. There are four scopes available:

    -
      -
    1. Public: This is the default, and some fediverse software, like GNU Social, only supports this. This means that your post is accessible by anyone and will be shown in the public timelines.
    2. -
    3. Unlisted: This is the same as public, but your post won't appear in the public timelines. The post will still be accessible by anyone who comes across it (for example, by looking at your profile) or by direct linking. They will also appear in public searches.
    4. -
    5. Followers only: This will show your post only to your followers. Only they will be able to interact with it. Be careful: When somebody follows you, they will be able to see all your previous followers only posts as well! If you want to restrict who can follow you, consider locking your account down to only approved followers.
    6. -
    7. Direct: This will only send the message to the people explicitly mentioned in the post.
    8. -
    -

    A few things to consider about the security and usage of these scopes:

    -
      -
    • None of these options will change the fact that the messages are all saved in the database unencrypted. They will be visible to your server admin and to any other admin of a server who receives this post. Do not share information that you would consider secret or dangerous. Use encrypted messaging systems for these things.
    • -
    • Follower-only posts can lead to fragmented conversations. If you post a follower-only post and somebody else replies to it with a follower-only post, only people following both of you will see the whole conversation thread. Everybody else will only see half of it. Keep this in mind and keep conversations public if possible.
    • -
    • Changing scopes during a thread or adding people to a direct message will not retroactively make them see the whole conversation. If you add someone to a direct message conversation, they will not see the post that happened before they were mentioned.
    • -
    • Reply-to if you are replying to someone, your post will also contain a note that your post is referring to the post you're replying to. Person you're replying to will receive a notification even if you remove them from mentioned people. You won't receive notifications when replying to your own posts, but it's useful to reply to your own posts to provide people some context if it's a follow-up to a previous post. There's a small "Reply to ..." label under post author's name which you can hover on to see what post it's referring to.
    • -
    -

    Sometimes you may encounter posts that seem different than what they are supposed to. For example, you might see a direct message without any mentions in the text. This can happen because internally, the Fediverse has a different addressing mechanism similar to email, with to and cc fields. While these are not directly accessible in PleromaFE, other software in the Fediverse might generate those posts. Do not worry in these cases, these are normal and not a bug.

    -

    Rich text

    -

    By default new posts you make are plaintext, meaning you can't make text bold or add custom links or make lists or anything like that. However if your instance allows it you can use Markdown or BBCode or HTML to spice up your text, however there are certain limitations to what HTML tags and what features of Markdown you can use.

    -

    Here is a small example of some text in markdown.

    -
    This is an example of markdown text using **bold** and *cursive* text.  
    -To get a newline we add two spaces at the end of the previous line.
    -
    -Let's also add a list
    -
    -* with
    -* some
    -* items
    -
    -

    If you set the input-method to Markdown, and post this, it will look something like

    -

    example_markdown

    -

    Other actions

    -

    In addition to posting you can also favorite posts also known as liking them and repeat posts (also known as retweeting, boosting and even reprööting). Favoriting a post increments a counter on it, notifies the post author of your affection towards that post and also adds that post to your "favorited" posts list (in your own profile, "Favorites" tab). Reprööting a post does all that and also repeats this post to your followers and your profile page with a note "user repeated post".

    -

    Your own posts can be deleted, but this will only reliably delete the post from your own instance. Other instances will receive a deletion notice, but there's no way to force them to actually delete a post. In addition, not all instances that contain the message might even receive the deletion notice, because they might be offline or not known to have the post because they received it through a repeat. Lastly, deletion notice might not reach certain frontends and clients - post will be visible for them until page refresh or cache clear, they probably won't be able to interact with it apart from replying to it (which will have reply-to mark missing).

    -

    If you are a moderator, you can also delete posts by other people. If those people are on your instance, it will delete the post and send out the deletion notice to other servers. If they are not on your instance, it will just remove the post from your local instance.

    -

    There's also an option to report a user's post which can be used to notify your (and optionally the other instance's) admin that someone is being naughty.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/docs/site/user_guide/settings/index.html b/docs/site/user_guide/settings/index.html deleted file mode 100644 index b684b3dc..00000000 --- a/docs/site/user_guide/settings/index.html +++ /dev/null @@ -1,888 +0,0 @@ - - - - - - - - - - - - - - - - Settings - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    Settings

    -

    On the top-right you will see a gear icon. Click it to open the settings.

    -

    General

    -

    Interface

    -
      -
    • Interface language is where you can set the interface language. The default language is the one that you set in your browser settings.
    • -
    • Hide instance-specific panel hides the panel in the lower left that usually contains general information about the server. This will only be visible if your admin has activated this panel and is deactivated by default.
    • -
    -

    Timeline

    -
      -
    • Hide posts of muted users If this is set, 'muting' a user will completely hide their posts instead of collapsing them.
    • -
    • Collapse posts with subjects This will collapse posts that contain a subject, hiding their content. Subjects are also sometimes called content warnings.
    • -
    • Enable automatic streaming of new posts when scrolled to the top With this enabled, new posts will automatically stream in when you are scrolled to the top. Otherwise, you will see a button on the timeline that will let you display the new posts.
    • -
    • Pause streaming when tab is not focused This pauses the automatic streaming that the previous option enables when the tab is out of focus. This is useful if you don't want to miss any new posts.
    • -
    • Enable automatic loading when scrolled to the bottom When this is disabled, a button will be shown on the bottom of the timeline that will let you load older posts.
    • -
    • Enable reply-link preview on hover Status posts in the timeline and notifications contain links to replies and to the post they are a reply to. If this setting is enabled, hovering over that link will display that linked post in a small hovering overlay.
    • -
    -

    Composing

    -
      -
    • Copy scope when replying makes the scope of a reply be the same as the scope of the post it is replying to. This is useful to prevent accidentally moving private discussions to public, or vice versa.
    • -
    • Always show subject field Whether or not to display the 'subject' input field in the post form. If you do not want to use subjects, you can deactivate this.
    • -
    • Copy subject when replying controls if the subject of a post will be copied from the post it is replying to.
    • -
    • Post status content type selects the default content type of your post. The options are: Plain text, HTML, BBCode and Markdown.
    • -
    • Minimize scope selection options will reduce the visibility scopes to 'direct', your default post scope and post scope of post you're replying to.
    • -
    • Automatically hide New Post button hides the floating "New post" button when scrolling on mobile view.
    • -
    • Pad emoji with spaces when adding from picker Will add spaces around emoji you select it from the picker.
    • -
    -

    Attachments

    -
      -
    • Hide attachments in timeline Do not display attachments in timelines. They will still display in expanded conversations. This is useful to save bandwidth and for browsing in public.
    • -
    • Hide attachments in conversations Also hide attachments in expanded conversations.
    • -
    • Maximum amount of thumbnails per post Exactly that :)
    • -
    • Enable clickthrough NSFW attachment hiding Hide attachments that are marked as NSFW/sensitive behind a click-through image.`
        -
      • Preload images This will preload the hidden images so that they display faster when clicking through.
      • -
      • Open NSFW attachments with just one click Directly open NSFW attachments in a maximised state instead of revealing the image thumbnail.
      • -
      -
    • -
    • Play-on-hover GIFs With this activated, GIFs images and avatars will only be animated on mouse hover. Otherwise, they will be always animated. This is very useful if your timeline looks too flashy from people's animated avatars and eases the CPU load.
    • -
    • Loop videos Whether to loop videos indefinitely.
        -
      • Loop only videos without sound Some instances will use videos without sounds instead of GIFs. This will make only those videos autoplay.
      • -
      -
    • -
    • Play videos directly in the media viewer Play videos right in the timeline instead of opening it in a modal
    • -
    • Don't crop the attachment in thumbnails if enabled, images in attachments will be fit entirely inside the container instead of being zoomed in and cropped.
    • -
    -

    Notifications

    -
      -
    • Enable web push notifications this enables Web Push notifications, to allow receiving notifications even when the page isn't opened, doesn't affect regular notifications.
    • -
    -

    Fun

    -
      -
    • Meme arrows will make > greentext be shown in green (using the "green" from the theme that is used).
    • -
    -

    Profile

    -

    Here you can set up how you appear to other users among with some other settings:

    -
      -
    • Name is text that displays next to your avatar in posts. Please note that you cannot change your @handle
    • -
    • Bio will be displayed under your profile - you can put anything you want there you want for everyone to see.
    • -
    • Restrict your account to approved followers only makes your account "locked", when people follow you - you have to approve or deny their follow requests, this gives more control over who sees your followers only posts.
    • -
    • Default visibility scope is your default post scope for new posts
    • -
    • Strip rich text from all posts strips rich text formatting (bold/italics/lists etc) from all incoming posts. This will only affect newly fetched posts.
    • -
    -

    If you're admin or moderator on your instance you also get Show [role] badge in my profile - this controls whether to show "Admin" or "Moderator** label on your profile page.

    -

    For all options mentioned above you have to click "Submit" button for changes to take place

    -
      -
    • Avatar this changes picture next to your posts. Your avatar shouldn't exceed 2 MiB (2097152 bytes) or it could cause problems with certain instances.
    • -
    • Banner this changes background on your profile card. Same as avatar it shouldn't exceed 2 MiB limit.
    • -
    • Profile Background this changes background picture for UI. It isn't shown to anyone else yet, but some time later it will be shown when viewing your profisle.
    • -
    -

    Security

    -

    Here you can change your password, revoke access tokens, configure 2-factor authentication (if available).

    -

    Filtering

    -
      -
    • Types of notifications to show This controls what kind of notifications will appear in notification column and which notifications to get in your system outside the web page
    • -
    • Replies in timeline You may know that other social networks like Twitter will often not display replies to other people in your timeline, even if you are following the poster. Pleroma usually will show these posts to you to encourage conversation. If you do not like this behavior, you can change it here.
    • -
    • Hide post statistics This hides the number of favorites, number of replies, etc.
    • -
    • Hide user statistics This hides the number of followers, friends, etc.
    • -
    • Muted words allows a list of words that will be muted (i.e. displayed in a collapsed state) on the timeline and in notifications. An easy way to tune down noise in your timeline. By default posts can be expanded if you want to see them.
    • -
    • Hide filtered statuses will hide the filtered / muted posts completely instead of collapsing them.
    • -
    -

    Theme

    -

    Here you can change the look and feel of Pleroma-FE. You can choose from several instance-provided presets and you can load one from file and save current theme to file. Before you apply new theme you can see what it will look like approximately in preview section.

    -

    The themes engine was made to be easy to use while giving an option for powerful in-depth customization - you can just tweak colors on "Common" tab and leave everything else as is.

    -

    If there's a little check box next to a color picker it means that color is optional and unless checked will be automatically picked based on some other color or defaults.

    -

    For some features you can also adjust transparency of it by changing its opacity, you just need to tick checkbox next to it, otherwise it will be using default opacity.

    -

    Contrast information is also provided - you can see how readable text is based on contrast between text color and background, icons under color pickers represent contrast rating based on WCAG - thumbs up means AAA rating (good), half-filled circle means AA rating (acceptable) and warning icon means it doesn't pass the minimal contrast requirement and probably will be less readable, especially for vision-challenged people, you can hover over icon to see more detailed information. Please note that if background is not opaque (opacity != 1) contrast will be measured based on "worst case scenario", i.e. behind semi-transparent background lies some solid color that makes text harder to read, this however is still inaccurate because it doesn't account that background can be noisy/busy, making text even harder to read.

    -

    Apart from colors you can also tweak shadow and lighting, which is used mostly to give buttons proper relief based on their state, give panes their shade, make things glow etc. It's quite powerful, and basically provides somewhat convenient interface for CSS Shadows.

    -

    Another thing you can tweak is theme's roundness - some people like sharp edges, some want things more rounded. This is also used if you want circled or square avatars.

    -

    Lastly, you can redefine fonts used in UI without changing fonts in your browser or system, this however requires you to enter font's full name and having that font installed on your system.

    -

    Notifications

    -

    This screen allows more fine-grained control over what notifications to show to you based on whom it comes from.

    -

    Data Import/Export

    -

    This allows you to export and import a list of people you follow and block, in case instance's database gets reverted or if you want to move to another server. Note that you CANNOT export/import list of people who follow you, they'll need to follow you back themselves.

    -

    Mutes and Blocks

    -

    These screens give access to full list of people you block/mute, useful for unblocking/unmuting people because blocking/muting them most likely removes them out of your sight completely.

    -

    Version

    -

    Just displays the backend and frontend version. Useful to mention in bug reports.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/docs/site/user_guide/timelines/index.html b/docs/site/user_guide/timelines/index.html deleted file mode 100644 index 00d34ad3..00000000 --- a/docs/site/user_guide/timelines/index.html +++ /dev/null @@ -1,548 +0,0 @@ - - - - - - - - - - - - - - - - Timelines - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    Timelines

    -

    You have several timelines to browse trough

    -
      -
    • Timeline aka Home Timeline - this timeline contains all posts by people you follow and your own posts, as well as posts mentioning you directly.
    • -
    • Bookmarks all the posts you've bookmarked. You can bookmark a post by clicking the three dots on the bottom right of the post and choose Bookmark.
    • -
    • Direct Messages all posts with direct scope addressed to you or mentioning you.
    • -
    • Public Timelines all public posts made by users on the instance you're on
    • -
    • The Whole Known Network also known as TWKN or Federated Timeline - all public posts known by your instance. Due to nature of the network your instance may not know all the posts on the network, so only posts known by your instance are shown there.
    • -
    -

    Note that by default you will see all posts made by other users on your Home Timeline, this contrast behavior of Twitter and Mastodon, which shows you only non-reply posts and replies to people you follow. You can change said behavior in the settings.

    -

    By default instances will try to send activities (e.g. posts, favorites, etc.) up to 7 days or until the target server received them. For this reason posts that are up to 7 days old and your server didn't know about yet can pop up on your timeline. This is the default behaviour and can be changed by your admin.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/docs/site/user_guide/users_follow_mute_block/index.html b/docs/site/user_guide/users_follow_mute_block/index.html deleted file mode 100644 index 8f3b9e9a..00000000 --- a/docs/site/user_guide/users_follow_mute_block/index.html +++ /dev/null @@ -1,528 +0,0 @@ - - - - - - - - - - - - - - - - Users: follow, mute, block - Pleroma-FE Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - -
    - - -
    - -
    - - - - - - -
    -
    - - - -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    -
    - - -
    -
    - - - - -

    Users: follow, mute, block

    -

    When you see someone, you can click on their user picture to view their profile, and click on the userpic in that to see full profile. You can follow them, mute and block them.

    -

    Following is self-explanatory, it adds them to your Home Timeline, lists you as a follower and gives you access to follower-only posts if they have any.

    -

    Muting collapses posts and notifications made by them, giving you an option to see the post if you're curious. Clients other than PleromaFE may completely remove their posts.

    -

    Blocking a user removes them from your timeline and notifications and prevents them from following you (automatically unfollows them from you).

    -

    Please note that some users can be "locked", meaning instead of following them you send a follow request they need to approve for you to become their follower.

    - - -
    - -
    -
    - -
    - - - -
    -
    -
    -
    - - - - - - - - \ No newline at end of file diff --git a/package.json b/package.json index e93692eb..1445f12c 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,7 @@ "js-cookie": "^3.0.1", "localforage": "1.10.0", "marked": "^4.0.17", - "marked-mfm": "^0.4.0", - "mfm-js": "^0.22.1", + "marked-mfm": "^0.5.0", "parse-link-header": "1.0.1", "phoenix": "1.6.2", "punycode.js": "2.1.0", @@ -57,7 +56,7 @@ "@vue/babel-helper-vue-jsx-merge-props": "1.2.1", "@vue/babel-plugin-jsx": "1.1.1", "@vue/compiler-sfc": "^3.1.0", - "@vue/test-utils": "2.0.0-rc.17", + "@vue/test-utils": "^2.0.2", "autoprefixer": "6.7.7", "babel-eslint": "7.2.3", "babel-loader": "8.2.4", diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js index bd5c2e39..3b355ca6 100644 --- a/src/components/emoji_picker/emoji_picker.js +++ b/src/components/emoji_picker/emoji_picker.js @@ -6,7 +6,7 @@ import { faStickyNote, faSmileBeam } from '@fortawesome/free-solid-svg-icons' -import { trim } from 'lodash' +import { trim, escapeRegExp, startCase } from 'lodash' library.add( faBoxOpen, @@ -21,23 +21,6 @@ const LOAD_EMOJI_BY = 60 // When to start loading new batch emoji, in pixels const LOAD_EMOJI_MARGIN = 64 -const filterByKeyword = (list, keyword = '') => { - if (keyword === '') return list - - const keywordLowercase = keyword.toLowerCase() - let orderedEmojiList = [] - for (const emoji of list) { - const indexOfKeyword = emoji.displayText.toLowerCase().indexOf(keywordLowercase) - if (indexOfKeyword > -1) { - if (!Array.isArray(orderedEmojiList[indexOfKeyword])) { - orderedEmojiList[indexOfKeyword] = [] - } - orderedEmojiList[indexOfKeyword].push(emoji) - } - } - return orderedEmojiList.flat() -} - const EmojiPicker = { props: { enableStickerPicker: { @@ -49,7 +32,7 @@ const EmojiPicker = { data () { return { keyword: '', - activeGroup: 'custom', + activeGroup: 'standard', showingStickers: false, groupsScrolledClass: 'scrolled-top', keepOpen: false, @@ -80,13 +63,8 @@ const EmojiPicker = { this.triggerLoadMore(target) }, highlight (key) { - const ref = this.$refs['group-' + key] - const top = ref.offsetTop this.setShowStickers(false) this.activeGroup = key - this.$nextTick(() => { - this.$refs['emoji-groups'].scrollTop = top + 1 - }) }, updateScrolledClass (target) { if (target.scrollTop <= 5) { @@ -155,6 +133,13 @@ const EmojiPicker = { }, setShowStickers (value) { this.showingStickers = value + }, + filterByKeyword (list) { + if (this.keyword === '') return list + const regex = new RegExp(escapeRegExp(trim(this.keyword)), 'i') + return list.filter(emoji => { + return regex.test(emoji.displayText) + }) } }, watch: { @@ -175,9 +160,8 @@ const EmojiPicker = { return 0 }, filteredEmoji () { - return filterByKeyword( - this.$store.state.instance.customEmoji || [], - trim(this.keyword) + return this.filterByKeyword( + this.$store.state.instance.customEmoji || [] ) }, customEmojiBuffer () { @@ -185,28 +169,53 @@ const EmojiPicker = { }, emojis () { const standardEmojis = this.$store.state.instance.emoji || [] - const customEmojis = this.customEmojiBuffer - + const customEmojis = this.sortedEmoji + const emojiPacks = [] + customEmojis.forEach((pack, id) => { + emojiPacks.push({ + id: id.replace(/^pack:/, ''), + text: startCase(id.replace(/^pack:/, '')), + first: pack[0], + emojis: this.filterByKeyword(pack) + }) + }) return [ - { - id: 'custom', - text: this.$t('emoji.custom'), - icon: 'smile-beam', - emojis: customEmojis - }, { id: 'standard', text: this.$t('emoji.unicode'), - icon: 'box-open', - emojis: filterByKeyword(standardEmojis, trim(this.keyword)) + first: { + imageUrl: '', + replacement: '🥴' + }, + emojis: this.filterByKeyword(standardEmojis) } - ] + ].concat(emojiPacks) + }, + sortedEmoji () { + const customEmojis = this.$store.state.instance.customEmoji || [] + const sortedEmojiGroups = new Map() + customEmojis.forEach((emoji) => { + if (!sortedEmojiGroups.has(emoji.tags[0])) { + sortedEmojiGroups.set(emoji.tags[0], [emoji]) + } else { + sortedEmojiGroups.get(emoji.tags[0]).push(emoji) + } + }) + return new Map([...sortedEmojiGroups.entries()].sort()) }, emojisView () { - return this.emojis.filter(value => value.emojis.length > 0) + if (this.keyword === '') { + return this.emojis.filter(pack => { + return pack.id === this.activeGroup + }) + } else { + return this.emojis.filter(pack => { + return pack.emojis.length > 0 + }) + } }, stickerPickerEnabled () { - return (this.$store.state.instance.stickers || []).length !== 0 + return (this.$store.state.instance.stickers || []).length !== 0 && this.enableStickerPicker } } } diff --git a/src/components/emoji_picker/emoji_picker.scss b/src/components/emoji_picker/emoji_picker.scss index 2055e02e..b5cc1c63 100644 --- a/src/components/emoji_picker/emoji_picker.scss +++ b/src/components/emoji_picker/emoji_picker.scss @@ -35,9 +35,8 @@ } .heading { - display: flex; - height: 32px; - padding: 10px 7px 5px; + margin-top: 10px; + height: 4.8em; } .content { @@ -65,15 +64,34 @@ .additional-tabs, .emoji-tabs { + position: absolute; display: block; - min-width: 0; - flex-basis: auto; - flex-shrink: 1; + flex-wrap: nowrap; + + overflow: auto; + width: 100%; + + white-space: nowrap; &-item { - padding: 0 7px; + vertical-align: top; + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + padding: .4em; cursor: pointer; - font-size: 1.85em; + + img { + max-width: 100%; + max-height: 100%; + object-fit: contain; + } + + span { + font-size: 1.9em; + } &.disabled { opacity: 0.5; @@ -88,6 +106,9 @@ color: var(--lightText, $fallback--lightText); } } + .fa-sticky-note { + font-size: 2em; + } } } diff --git a/src/components/emoji_picker/emoji_picker.vue b/src/components/emoji_picker/emoji_picker.vue index a7269120..a629c9ad 100644 --- a/src/components/emoji_picker/emoji_picker.vue +++ b/src/components/emoji_picker/emoji_picker.vue @@ -13,18 +13,15 @@ :title="group.text" @click.prevent="highlight(group.id)" > - + {{ group.first.replacement }} + - - + @ diff --git a/src/components/poll/poll_form.vue b/src/components/poll/poll_form.vue index b6da1c5f..146754db 100644 --- a/src/components/poll/poll_form.vue +++ b/src/components/poll/poll_form.vue @@ -84,7 +84,7 @@ :key="unit" :value="unit" > - {{ $t(`time.unit.${unit}_short`, ['']) }} + {{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }} diff --git a/src/components/quote_button/quote_button.vue b/src/components/quote_button/quote_button.vue index 7a4c6b4b..4367f495 100644 --- a/src/components/quote_button/quote_button.vue +++ b/src/components/quote_button/quote_button.vue @@ -1,10 +1,9 @@ diff --git a/src/components/quote_card/quote_card.js b/src/components/quote_card/quote_card.js index 8f1a58a1..48fdbe42 100644 --- a/src/components/quote_card/quote_card.js +++ b/src/components/quote_card/quote_card.js @@ -14,15 +14,7 @@ const QuoteCard = { computed: { ...mapGetters([ 'mergedConfig' - ]), - statusLink () { - return { - name: 'conversation', - params: { - id: this.status.id - } - } - } + ]) }, components: { QuoteCardContent diff --git a/src/components/quote_card/quote_card.vue b/src/components/quote_card/quote_card.vue index 64f8b6a9..8cd7eb23 100644 --- a/src/components/quote_card/quote_card.vue +++ b/src/components/quote_card/quote_card.vue @@ -1,15 +1,13 @@ @@ -20,7 +18,7 @@ .quote-card { display: flex; - flex-direction: row; + flex-direction: column; cursor: pointer; overflow: hidden; margin-top: 0.5em; diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index 634236ef..0d553485 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -124,6 +124,21 @@ export default { } const renderMisskeyMarkdown = (content) => { + // Untangle code blocks from
    tags and other html encodings + const codeblocks = content.match(/()?(~~~|```)\w*.+?\2\1?/g) + if (codeblocks) { + codeblocks.forEach((pre) => { + content = content.replace(pre, + pre.replaceAll('
    ', '\n') + .replaceAll('&', '&') + .replaceAll('<', '<') + .replaceAll('>', '>') + .replaceAll('"', '"') + .replaceAll(''', "'") + ) + }) + } + marked.use(markedMfm, { mangle: false, gfm: false, diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue index 97046ff0..7160b1fd 100644 --- a/src/components/settings_modal/tabs/filtering_tab.vue +++ b/src/components/settings_modal/tabs/filtering_tab.vue @@ -37,6 +37,15 @@ {{ $t('settings.hide_muted_posts') }} +
  • + + {{ $t('settings.hide_threads_with_blocked_users') }} + +
  • diff --git a/src/components/status/status.js b/src/components/status/status.js index dcf93688..2959c3fd 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -261,6 +261,38 @@ const Status = { hasMentionsLine () { return this.mentionsLine.length > 0 }, + mentionsBlockedUser () { + // XXX: doesn't work on domain blocks, because users from blocked domains + // don't appear in `attentions' and therefore cannot be filtered. + let mentions = false + + // find if user in mentions list is blocked + this.status.attentions.forEach((attn) => { + if (attn.id === this.currentUser.id) return + const relationship = this.$store.getters.relationship(attn.id) + if (relationship.blocking) { + mentions = true + } + }) + + return mentions + }, + mentionsMutedUser () { + // XXX: doesn't work on domain blocks, because users from blocked domains + // don't appear in `attentions' and therefore cannot be filtered. + let mentions = false + + // find if user in mentions list is blocked + this.status.attentions.forEach((attn) => { + if (attn.id === this.currentUser.id) return + const relationship = this.$store.getters.relationship(attn.id) + if (relationship.muting) { + mentions = true + } + }) + + return mentions + }, muted () { if (this.statusoid.user.id === this.currentUser.id) return false const reasonsToMute = this.userIsMuted || @@ -269,7 +301,11 @@ const Status = { // Wordfiltered this.muteWordHits.length > 0 || // bot status - (this.muteBotStatuses && this.botStatus && !this.compact) + (this.muteBotStatuses && this.botStatus && !this.compact) || + // mentions blocked user + this.mentionsBlockedUser || + // mentions muted user + this.mentionsMutedUser return !this.unmuted && !this.shouldNotMute && reasonsToMute }, userIsMuted () { @@ -312,6 +348,9 @@ const Status = { hideFilteredStatuses () { return this.mergedConfig.hideFilteredStatuses }, + hideThreadsWithBlockedUsers () { + return this.mergedConfig.hideThreadsWithBlockedUsers + }, hideWordFilteredPosts () { return this.mergedConfig.hideWordFilteredPosts }, @@ -319,8 +358,9 @@ const Status = { return (!this.shouldNotMute) && ( (this.muted && this.hideFilteredStatuses) || (this.userIsMuted && this.hideMutedUsers) || - (this.status.thread_muted && this.hideMutedThreads) || - (this.muteWordHits.length > 0 && this.hideWordFilteredPosts) + ((this.status.thread_muted || this.mentionsMutedUser) && this.hideMutedThreads) || + (this.muteWordHits.length > 0 && this.hideWordFilteredPosts) || + (this.mentionsBlockedUser && this.hideThreadsWithBlockedUsers) ) }, isFocused () { diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 7b9f2221..e475627b 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -187,6 +187,7 @@ > diff --git a/src/components/status_body/status_body.scss b/src/components/status_body/status_body.scss index 8a218fb2..b1d9ecc9 100644 --- a/src/components/status_body/status_body.scss +++ b/src/components/status_body/status_body.scss @@ -6,8 +6,12 @@ .emoji { --_still_image-label-scale: 0.5; - --emoji-size: 50px; - --emoji-size: 50px; + --emoji-size: 38px; + } + + .emoji:hover { + transform: scale(1.4); + transition: 0.05s; } ._mfm_x2_ { @@ -93,7 +97,7 @@ overflow-y: hidden; z-index: 1; - .media-body { + .media-body-wrapper { min-height: 0; mask: linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat, @@ -153,16 +157,19 @@ --emoji-size: 16px; - & .body, + & .body:not(:active), & .attachments { max-height: 3.25em; } .body { - overflow: hidden; white-space: normal; min-width: 5em; flex: 5 1 auto; + } + + .body:not(:active) { + overflow: hidden; mask-size: auto 3.5em, auto auto; mask-position: 0 0, 0 0; mask-repeat: repeat-x, repeat; diff --git a/src/components/status_body/status_body.vue b/src/components/status_body/status_body.vue index 4a44fbb7..321f3c4b 100644 --- a/src/components/status_body/status_body.vue +++ b/src/components/status_body/status_body.vue @@ -43,6 +43,7 @@
    - {{ - relativeTime.direction === '' ? - $tc(relativeTime.key, relativeTime.num, [relativeTime.num]) : - $t(relativeTime.direction, [$tc(relativeTime.key, relativeTime.num, [relativeTime.num])]) - }} + + @@ -18,7 +25,7 @@ import localeService from 'src/services/locale/locale.service.js' export default { name: 'Timeago', - props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold'], + props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold', 'withDirection'], data () { return { relativeTime: { key: 'time.now', num: 0 }, @@ -58,7 +65,9 @@ export default { diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue index 452afd88..2e5d3ce9 100644 --- a/src/components/timeline_menu/timeline_menu_content.vue +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -9,9 +9,12 @@ fixed-width class="fa-scale-110 fa-old-padding " icon="home" - />{{ $t("nav.home_timeline") }} + /> + {{ $t("nav.home_timeline") }} - {{ $t("nav.home_timeline_description") }}
  • {{ $t("nav.bubble_timeline") }} + /> + {{ $t("nav.bubble_timeline") }} - {{ $t("nav.bubble_timeline_description") }}
  • {{ $t("nav.public_tl") }} + /> + {{ $t("nav.public_tl") }} - {{ $t("nav.public_timeline_description") }}
  • {{ $t("nav.twkn") }} + /> + {{ $t("nav.twkn") }} - {{ $t("nav.twkn_timeline_description") }}
  • {{ $t("nav.bookmarks") }} + /> + {{ $t("nav.bookmarks") }}
  • @@ -73,7 +89,11 @@ fixed-width class="fa-scale-110 fa-old-padding " icon="envelope" - />{{ $t("nav.dms") }} + /> + {{ $t("nav.dms") }}
  • diff --git a/src/i18n/ar.json b/src/i18n/ar.json index a475d291..a2121309 100644 --- a/src/i18n/ar.json +++ b/src/i18n/ar.json @@ -1,204 +1,194 @@ { - "chat": { - "title": "الدردشة" - }, - "features_panel": { - "chat": "الدردشة", - "gopher": "غوفر", - "media_proxy": "بروكسي الوسائط", - "scope_options": "", - "text_limit": "الحد الأقصى للنص", - "title": "الميّزات", - "who_to_follow": "للمتابعة" - }, - "finder": { - "error_fetching_user": "خطأ أثناء جلب صفحة المستخدم", - "find_user": "البحث عن مستخدِم" - }, - "general": { - "apply": "تطبيق", - "submit": "إرسال" - }, - "login": { - "login": "تسجيل الدخول", - "logout": "الخروج", - "password": "الكلمة السرية", - "placeholder": "مثال lain", - "register": "انشاء حساب", - "username": "إسم المستخدم" - }, - "nav": { - "chat": "الدردشة المحلية", - "friend_requests": "طلبات المتابَعة", - "mentions": "الإشارات", - "public_tl": "الخيط الزمني العام", - "timeline": "الخيط الزمني", - "twkn": "كافة الشبكة المعروفة" - }, - "notifications": { - "broken_favorite": "منشور مجهول، جارٍ البحث عنه…", - "favorited_you": "أعجِب بمنشورك", - "followed_you": "يُتابعك", - "load_older": "تحميل الإشعارات الأقدم", - "notifications": "الإخطارات", - "read": "مقروء!", - "repeated_you": "شارَك منشورك" - }, - "post_status": { - "account_not_locked_warning": "", - "account_not_locked_warning_link": "مقفل", - "attachments_sensitive": "اعتبر المرفقات كلها كمحتوى حساس", - "content_type": { - "text/plain": "نص صافٍ" + "features_panel": { + "media_proxy": "بروكسي الوسائط", + "scope_options": "", + "text_limit": "الحد الأقصى للنص", + "title": "الميّزات", + "who_to_follow": "للمتابعة" }, - "content_warning": "الموضوع (اختياري)", - "default": "وصلت للتوّ إلى لوس أنجلس.", - "direct_warning": "", - "posting": "النشر", - "scope": { - "direct": "", - "private": "", - "public": "علني - يُنشر على الخيوط الزمنية العمومية", - "unlisted": "غير مُدرَج - لا يُنشَر على الخيوط الزمنية العمومية" + "finder": { + "error_fetching_user": "خطأ أثناء جلب صفحة المستخدم", + "find_user": "البحث عن مستخدِم" + }, + "general": { + "apply": "تطبيق", + "submit": "إرسال" + }, + "login": { + "login": "تسجيل الدخول", + "logout": "الخروج", + "password": "الكلمة السرية", + "placeholder": "مثال lain", + "register": "انشاء حساب", + "username": "إسم المستخدم" + }, + "nav": { + "friend_requests": "طلبات المتابَعة", + "mentions": "الإشارات", + "public_tl": "الخيط الزمني العام", + "timeline": "الخيط الزمني", + "twkn": "كافة الشبكة المعروفة" + }, + "notifications": { + "broken_favorite": "منشور مجهول، جارٍ البحث عنه…", + "favorited_you": "أعجِب بمنشورك", + "followed_you": "يُتابعك", + "load_older": "تحميل الإشعارات الأقدم", + "notifications": "الإخطارات", + "read": "مقروء!", + "repeated_you": "شارَك منشورك" + }, + "post_status": { + "account_not_locked_warning": "", + "account_not_locked_warning_link": "مقفل", + "attachments_sensitive": "اعتبر المرفقات كلها كمحتوى حساس", + "content_type": { + "text/plain": "نص صافٍ" + }, + "content_warning": "الموضوع (اختياري)", + "default": "وصلت للتوّ إلى لوس أنجلس.", + "posting": "النشر", + "scope": { + "direct": "", + "private": "", + "public": "علني - يُنشر على الخيوط الزمنية العمومية", + "unlisted": "غير مُدرَج - لا يُنشَر على الخيوط الزمنية العمومية" + } + }, + "registration": { + "bio": "السيرة الذاتية", + "email": "عنوان البريد الإلكتروني", + "fullname": "الإسم المعروض", + "password_confirm": "تأكيد الكلمة السرية", + "registration": "التسجيل", + "token": "رمز الدعوة" + }, + "settings": { + "attachmentRadius": "المُرفَقات", + "attachments": "المُرفَقات", + "avatar": "الصورة الرمزية", + "avatarAltRadius": "الصور الرمزية (الإشعارات)", + "avatarRadius": "الصور الرمزية", + "background": "الخلفية", + "bio": "السيرة الذاتية", + "btnRadius": "الأزرار", + "cBlue": "أزرق (الرد، المتابَعة)", + "cGreen": "أخضر (إعادة النشر)", + "cOrange": "برتقالي (مفضلة)", + "cRed": "أحمر (إلغاء)", + "change_password": "تغيير كلمة السر", + "change_password_error": "وقع هناك خلل أثناء تعديل كلمتك السرية.", + "changed_password": "تم تغيير كلمة المرور بنجاح!", + "collapse_subject": "", + "confirm_new_password": "تأكيد كلمة السر الجديدة", + "current_avatar": "صورتك الرمزية الحالية", + "current_password": "كلمة السر الحالية", + "data_import_export_tab": "تصدير واستيراد البيانات", + "default_vis": "أسلوب العرض الافتراضي", + "delete_account": "حذف الحساب", + "delete_account_description": "حذف حسابك و كافة منشوراتك نهائيًا.", + "delete_account_error": "", + "delete_account_instructions": "يُرجى إدخال كلمتك السرية أدناه لتأكيد عملية حذف الحساب.", + "export_theme": "حفظ النموذج", + "filtering": "التصفية", + "filtering_explanation": "سيتم إخفاء كافة المنشورات التي تحتوي على هذه الكلمات، كلمة واحدة في كل سطر", + "follow_export": "تصدير الاشتراكات", + "follow_export_button": "تصدير الاشتراكات كملف csv", + "follow_import": "استيراد الاشتراكات", + "follow_import_error": "خطأ أثناء استيراد المتابِعين", + "follows_imported": "", + "foreground": "الأمامية", + "general": "الإعدادات العامة", + "hide_attachments_in_convo": "إخفاء المرفقات على المحادثات", + "hide_attachments_in_tl": "إخفاء المرفقات على الخيط الزمني", + "hide_post_stats": "", + "hide_user_stats": "", + "import_followers_from_a_csv_file": "", + "import_theme": "تحميل نموذج", + "inputRadius": "", + "instance_default": "", + "interfaceLanguage": "لغة الواجهة", + "invalid_theme_imported": "", + "limited_availability": "غير متوفر على متصفحك", + "links": "الروابط", + "lock_account_description": "", + "loop_video": "", + "loop_video_silent_only": "", + "name": "الاسم", + "name_bio": "الاسم والسيرة الذاتية", + "new_password": "كلمة السر الجديدة", + "no_rich_text_description": "", + "notification_visibility": "نوع الإشعارات التي تريد عرضها", + "notification_visibility_follows": "يتابع", + "notification_visibility_likes": "الإعجابات", + "notification_visibility_mentions": "الإشارات", + "notification_visibility_repeats": "", + "nsfw_clickthrough": "", + "oauth_tokens": "رموز OAuth", + "panelRadius": "", + "pause_on_unfocused": "", + "presets": "النماذج", + "profile_background": "خلفية الصفحة الشخصية", + "profile_banner": "رأسية الصفحة الشخصية", + "profile_tab": "الملف الشخصي", + "radii_help": "", + "refresh_token": "رمز التحديث", + "replies_in_timeline": "الردود على الخيط الزمني", + "reply_visibility_all": "عرض كافة الردود", + "reply_visibility_following": "", + "reply_visibility_self": "", + "revoke_token": "سحب", + "saving_err": "خطأ أثناء حفظ الإعدادات", + "saving_ok": "تم حفظ الإعدادات", + "security_tab": "الأمان", + "set_new_avatar": "اختيار صورة رمزية جديدة", + "set_new_profile_background": "اختيار خلفية جديدة للملف الشخصي", + "set_new_profile_banner": "اختيار رأسية جديدة للصفحة الشخصية", + "settings": "الإعدادات", + "stop_gifs": "", + "streaming": "", + "text": "النص", + "theme": "المظهر", + "theme_help": "", + "token": "رمز", + "tooltipRadius": "", + "user_settings": "إعدادات المستخدم", + "valid_until": "صالح حتى", + "values": { + "false": "لا", + "true": "نعم" + } + }, + "timeline": { + "collapse": "", + "conversation": "محادثة", + "load_older": "تحميل المنشورات القديمة", + "no_retweet_hint": "", + "repeated": "", + "show_new": "عرض الجديد", + "up_to_date": "تم تحديثه" + }, + "user_card": { + "approve": "قبول", + "block": "حظر", + "blocked": "تم حظره!", + "deny": "رفض", + "follow": "اتبع", + "followees": "", + "followers": "مُتابِعون", + "following": "", + "follows_you": "يتابعك!", + "mute": "كتم", + "muted": "تم كتمه", + "per_day": "في اليوم", + "remote_follow": "مُتابَعة عن بُعد", + "statuses": "المنشورات" + }, + "user_profile": { + "timeline_title": "الخيط الزمني للمستخدم" + }, + "who_to_follow": { + "more": "المزيد", + "who_to_follow": "للمتابعة" } - }, - "registration": { - "bio": "السيرة الذاتية", - "email": "عنوان البريد الإلكتروني", - "fullname": "الإسم المعروض", - "password_confirm": "تأكيد الكلمة السرية", - "registration": "التسجيل", - "token": "رمز الدعوة" - }, - "settings": { - "attachmentRadius": "المُرفَقات", - "attachments": "المُرفَقات", - "avatar": "الصورة الرمزية", - "avatarAltRadius": "الصور الرمزية (الإشعارات)", - "avatarRadius": "الصور الرمزية", - "background": "الخلفية", - "bio": "السيرة الذاتية", - "btnRadius": "الأزرار", - "cBlue": "أزرق (الرد، المتابَعة)", - "cGreen": "أخضر (إعادة النشر)", - "cOrange": "برتقالي (مفضلة)", - "cRed": "أحمر (إلغاء)", - "change_password": "تغيير كلمة السر", - "change_password_error": "وقع هناك خلل أثناء تعديل كلمتك السرية.", - "changed_password": "تم تغيير كلمة المرور بنجاح!", - "collapse_subject": "", - "confirm_new_password": "تأكيد كلمة السر الجديدة", - "current_avatar": "صورتك الرمزية الحالية", - "current_password": "كلمة السر الحالية", - "current_profile_banner": "الرأسية الحالية لصفحتك الشخصية", - "data_import_export_tab": "تصدير واستيراد البيانات", - "default_vis": "أسلوب العرض الافتراضي", - "delete_account": "حذف الحساب", - "delete_account_description": "حذف حسابك و كافة منشوراتك نهائيًا.", - "delete_account_error": "", - "delete_account_instructions": "يُرجى إدخال كلمتك السرية أدناه لتأكيد عملية حذف الحساب.", - "export_theme": "حفظ النموذج", - "filtering": "التصفية", - "filtering_explanation": "سيتم إخفاء كافة المنشورات التي تحتوي على هذه الكلمات، كلمة واحدة في كل سطر", - "follow_export": "تصدير الاشتراكات", - "follow_export_button": "تصدير الاشتراكات كملف csv", - "follow_export_processing": "التصدير جارٍ، سوف يُطلَب منك تنزيل ملفك بعد حين", - "follow_import": "استيراد الاشتراكات", - "follow_import_error": "خطأ أثناء استيراد المتابِعين", - "follows_imported": "", - "foreground": "الأمامية", - "general": "الإعدادات العامة", - "hide_attachments_in_convo": "إخفاء المرفقات على المحادثات", - "hide_attachments_in_tl": "إخفاء المرفقات على الخيط الزمني", - "hide_post_stats": "", - "hide_user_stats": "", - "import_followers_from_a_csv_file": "", - "import_theme": "تحميل نموذج", - "inputRadius": "", - "instance_default": "", - "interfaceLanguage": "لغة الواجهة", - "invalid_theme_imported": "", - "limited_availability": "غير متوفر على متصفحك", - "links": "الروابط", - "lock_account_description": "", - "loop_video": "", - "loop_video_silent_only": "", - "name": "الاسم", - "name_bio": "الاسم والسيرة الذاتية", - "new_password": "كلمة السر الجديدة", - "no_rich_text_description": "", - "notification_visibility": "نوع الإشعارات التي تريد عرضها", - "notification_visibility_follows": "يتابع", - "notification_visibility_likes": "الإعجابات", - "notification_visibility_mentions": "الإشارات", - "notification_visibility_repeats": "", - "nsfw_clickthrough": "", - "oauth_tokens": "رموز OAuth", - "token": "رمز", - "refresh_token": "رمز التحديث", - "valid_until": "صالح حتى", - "revoke_token": "سحب", - "panelRadius": "", - "pause_on_unfocused": "", - "presets": "النماذج", - "profile_background": "خلفية الصفحة الشخصية", - "profile_banner": "رأسية الصفحة الشخصية", - "profile_tab": "الملف الشخصي", - "radii_help": "", - "replies_in_timeline": "الردود على الخيط الزمني", - "reply_visibility_all": "عرض كافة الردود", - "reply_visibility_following": "", - "reply_visibility_self": "", - "saving_err": "خطأ أثناء حفظ الإعدادات", - "saving_ok": "تم حفظ الإعدادات", - "security_tab": "الأمان", - "set_new_avatar": "اختيار صورة رمزية جديدة", - "set_new_profile_background": "اختيار خلفية جديدة للملف الشخصي", - "set_new_profile_banner": "اختيار رأسية جديدة للصفحة الشخصية", - "settings": "الإعدادات", - "stop_gifs": "", - "streaming": "", - "text": "النص", - "theme": "المظهر", - "theme_help": "", - "tooltipRadius": "", - "user_settings": "إعدادات المستخدم", - "values": { - "false": "لا", - "true": "نعم" - } - }, - "timeline": { - "collapse": "", - "conversation": "محادثة", - "error_fetching": "خطأ أثناء جلب التحديثات", - "load_older": "تحميل المنشورات القديمة", - "no_retweet_hint": "", - "repeated": "", - "show_new": "عرض الجديد", - "up_to_date": "تم تحديثه" - }, - "user_card": { - "approve": "قبول", - "block": "حظر", - "blocked": "تم حظره!", - "deny": "رفض", - "follow": "اتبع", - "followees": "", - "followers": "مُتابِعون", - "following": "", - "follows_you": "يتابعك!", - "mute": "كتم", - "muted": "تم كتمه", - "per_day": "في اليوم", - "remote_follow": "مُتابَعة عن بُعد", - "statuses": "المنشورات" - }, - "user_profile": { - "timeline_title": "الخيط الزمني للمستخدم" - }, - "who_to_follow": { - "more": "المزيد", - "who_to_follow": "للمتابعة" - } -} +} \ No newline at end of file diff --git a/src/i18n/ca.json b/src/i18n/ca.json index e3f5d1a0..5540316b 100644 --- a/src/i18n/ca.json +++ b/src/i18n/ca.json @@ -1,881 +1,1007 @@ { - "chat": { - "title": "Xat" - }, - "features_panel": { - "chat": "Xat", - "gopher": "Gopher", - "media_proxy": "Proxy per multimèdia", - "scope_options": "Opcions d'abast i visibilitat", - "text_limit": "Límit de text", - "title": "Funcionalitats", - "who_to_follow": "A qui seguir", - "pleroma_chat_messages": "Xat de Pleroma", - "upload_limit": "Límit de càrrega" - }, - "finder": { - "error_fetching_user": "No s'ha pogut carregar l'usuari/a", - "find_user": "Trobar usuari" - }, - "general": { - "apply": "Aplica", - "submit": "Desa", - "close": "Tanca", - "verify": "Verifica", - "confirm": "Confirma", - "enable": "Habilita", - "disable": "Deshabilitar", - "cancel": "Cancel·la", - "show_less": "Mostra menys", - "show_more": "Mostra més", - "optional": "opcional", - "retry": "Prova de nou", - "error_retry": "Si us plau, prova de nou", - "generic_error": "Hi ha hagut un error", - "loading": "Carregant…", - "more": "Més", - "flash_content": "Fes clic per mostrar el contingut Flash utilitzant Ruffle (experimental, pot no funcionar).", - "flash_security": "Tingues en compte que això pot ser potencialment perillós, ja que el contingut Flash encara és un codi arbitrari.", - "flash_fail": "No s'ha pogut carregar el contingut del flaix, consulta la consola per als detalls.", - "role": { - "moderator": "Moderador/a", - "admin": "Administrador/a" - }, - "dismiss": "Descartar", - "peek": "Donar un cop d'ull" - }, - "login": { - "login": "Inicia sessió", - "logout": "Tanca la sessió", - "password": "Contrasenya", - "placeholder": "p.ex.: Maria", - "register": "Registra't", - "username": "Nom d'usuari/a", - "recovery_code": "Codi de recuperació", - "enter_recovery_code": "Posa un codi de recuperació", - "authentication_code": "Codi d'autenticació", - "hint": "Entra per participar a la conversa", - "description": "Entra amb OAuth", - "heading": { - "totp": "Autenticació de dos factors", - "recovery": "Recuperació de dos factors" - }, - "enter_two_factor_code": "Introdueix un codi de dos factors" - }, - "nav": { - "chat": "Xat local públic", - "friend_requests": "Sol·licituds de seguiment", - "mentions": "Mencions", - "public_tl": "Línia temporal pública", - "timeline": "Flux personal", - "twkn": "Xarxa coneguda", - "chats": "Xats", - "timelines": "Línies de temps", - "preferences": "Preferències", - "who_to_follow": "A qui seguir", - "search": "Cerca", - "dms": "Missatges directes", - "interactions": "Interaccions", - "back": "Enrere", - "administration": "Administració", - "about": "Quant a", - "bookmarks": "Marcadors", - "user_search": "Cerca d'usuaris", - "home_timeline": "Línea temporal personal" - }, - "notifications": { - "broken_favorite": "Publicació desconeguda, s'està cercant…", - "favorited_you": "ha marcat un estat teu", - "followed_you": "ha començat a seguir-te", - "load_older": "Carrega més notificacions", - "notifications": "Notificacions", - "read": "Llegit!", - "repeated_you": "ha repetit el teu estat", - "migrated_to": "migrat a", - "no_more_notifications": "No més notificacions", - "follow_request": "et vol seguir", - "reacted_with": "ha reaccionat amb {0}", - "error": "Error obtenint notificacions: {0}" - }, - "post_status": { - "account_not_locked_warning": "El teu compte no està {0}. Qualsevol persona pot seguir-te per llegir les teves entrades reservades només a seguidores.", - "account_not_locked_warning_link": "bloquejat", - "attachments_sensitive": "Marca l'adjunt com a delicat", - "content_type": { - "text/plain": "Text pla", - "text/markdown": "Markdown", - "text/html": "HTML", - "text/bbcode": "BBCode" - }, - "content_warning": "Assumpte (opcional)", - "default": "Acabe d'aterrar a L.A.", - "direct_warning": "Aquesta entrada només serà visible per les usuràries que etiquetis", - "posting": "Publicació", - "scope": { - "direct": "Directa - publica només per als usuaris etiquetats", - "private": "Només seguidors/es - publica només per comptes que et segueixin", - "public": "Pública - publica als fluxos públics", - "unlisted": "Silenciosa - no la mostris en fluxos públics" - }, - "scope_notice": { - "private": "Aquesta entrada serà visible només per a qui et segueixi", - "public": "Aquesta entrada serà visible per a tothom", - "unlisted": "Aquesta entrada no es veurà ni a la Línia de temps local ni a la Línia de temps federada" - }, - "preview_empty": "Buida", - "preview": "Vista prèvia", - "direct_warning_to_first_only": "Aquesta publicació només serà visible per als usuaris mencionats al principi del missatge.", - "empty_status_error": "No es pot publicar un estat buit sense fitxers adjunts", - "media_description": "Descripció multimèdia", - "direct_warning_to_all": "Aquesta publicació serà visible per a tots els usuaris mencionats.", - "new_status": "Publicar un nou estat", - "post": "Publicació", - "media_description_error": "Ha fallat la pujada del contingut. Prova de nou" - }, - "registration": { - "bio": "Presentació", - "email": "Correu", - "fullname": "Nom per mostrar", - "password_confirm": "Confirma la contrasenya", - "registration": "Registra't", - "token": "Codi d'invitació", - "validations": { - "password_confirmation_match": "hauria de ser la mateixa que la contrasenya", - "password_confirmation_required": "no es pot deixar en blanc", - "password_required": "no es pot deixar en blanc", - "email_required": "no es pot deixar en blanc", - "fullname_required": "no es pot deixar en blanc", - "username_required": "no es pot deixar en blanc" - }, - "fullname_placeholder": "p. ex. Lain Iwakura", - "username_placeholder": "p. ex. lain", - "captcha": "CAPTCHA", - "register": "Registrar-se", - "reason": "Raó per a registrar-se", - "bio_placeholder": "p.e.\nHola, sóc la Lain.\nSóc una noia anime que viu a un suburbi de Japó. Potser em coneixes per Wired.", - "reason_placeholder": "Aquesta instància aprova els registres manualment.\nExplica a l'administració per què vols registrar-te.", - "new_captcha": "Clica a la imatge per obtenir un nou captcha" - }, - "settings": { - "attachmentRadius": "Adjunts", - "attachments": "Adjunts", - "avatar": "Avatar", - "avatarAltRadius": "Avatars (notificacions)", - "avatarRadius": "Avatars", - "background": "Fons de pantalla", - "bio": "Presentació", - "btnRadius": "Botons", - "cBlue": "Blau (respon, segueix)", - "cGreen": "Verd (republica)", - "cOrange": "Taronja (marca com a preferit)", - "cRed": "Vermell (canceŀla)", - "change_password": "Canvia la contrasenya", - "change_password_error": "No s'ha pogut canviar la contrasenya.", - "changed_password": "S'ha canviat la contrasenya correctament!", - "collapse_subject": "Replega les entrades amb títol", - "confirm_new_password": "Confirma la nova contrasenya", - "current_avatar": "L'avatar actual", - "current_password": "La contrasenya actual", - "current_profile_banner": "El fons de perfil actual", - "data_import_export_tab": "Importa o exporta dades", - "default_vis": "Abast per defecte de les entrades", - "delete_account": "Esborra el compte", - "delete_account_description": "Esborra permanentment les teves dades i desactiva el teu compte.", - "delete_account_error": "No s'ha pogut esborrar el compte. Si continua el problema, contacta amb l'administració del node.", - "delete_account_instructions": "Confirma que vols esborrar el compte escrivint la teva contrasenya aquí sota.", - "export_theme": "Desa el tema", - "filtering": "Filtres", - "filtering_explanation": "Es silenciaran totes les entrades que continguin aquestes paraules. Separa-les per línies", - "follow_export": "Exporta la llista de contactes", - "follow_export_button": "Exporta tots els comptes que segueixes a un fitxer CSV", - "follow_export_processing": "S'està processant la petició. Aviat podràs descarregar el fitxer", - "follow_import": "Importa els contactes", - "follow_import_error": "No s'ha pogut importar els contactes", - "follows_imported": "S'han importat els contactes. Trigaran una estoneta en ser processats.", - "foreground": "Primer pla", - "general": "General", - "hide_attachments_in_convo": "Amaga els adjunts en les converses", - "hide_attachments_in_tl": "Amaga els adjunts en el flux d'entrades", - "import_followers_from_a_csv_file": "Importa els contactes des d'un fitxer CSV", - "import_theme": "Carrega un tema", - "inputRadius": "Caixes d'entrada de text", - "instance_default": "(default: {value})", - "interfaceLanguage": "Llengua de la interfície", - "invalid_theme_imported": "No s'ha entès l'arxiu carregat perquè no és un tema vàlid de Pleroma. No s'ha fet cap canvi als temes actuals.", - "limited_availability": "No està disponible en aquest navegador", - "links": "Enllaços", - "lock_account_description": "Restringeix el teu compte només a seguidores aprovades", - "loop_video": "Reprodueix els vídeos en bucle", - "loop_video_silent_only": "Reprodueix en bucles només els vídeos sense so (com els \"GIF\" de Mastodon)", - "name": "Nom", - "name_bio": "Nom i presentació", - "new_password": "Contrasenya nova", - "notification_visibility": "Notifica'm quan algú", - "notification_visibility_follows": "Comença a seguir-me", - "notification_visibility_likes": "Favorits", - "notification_visibility_mentions": "Em menciona", - "notification_visibility_repeats": "Republica una entrada meva", - "no_rich_text_description": "Neteja el formatat de text de totes les entrades", - "nsfw_clickthrough": "Amaga el contingut NSFW darrer d'una imatge clicable", - "oauth_tokens": "Llistats OAuth", - "token": "Token", - "refresh_token": "Actualitza el token", - "valid_until": "Vàlid fins", - "revoke_token": "Revocar", - "panelRadius": "Panells", - "pause_on_unfocused": "Pausa la reproducció en continu quan la pestanya perdi el focus", - "presets": "Temes", - "profile_background": "Fons de pantalla", - "profile_banner": "Fons de perfil", - "profile_tab": "Perfil", - "radii_help": "Configura l'arrodoniment de les vores (en píxels)", - "replies_in_timeline": "Respostes al flux", - "reply_visibility_all": "Mostra totes les respostes", - "reply_visibility_following": "Mostra només les respostes a entrades meves o d'usuàries que jo segueixo", - "reply_visibility_self": "Mostra només les respostes a entrades meves", - "saving_err": "No s'ha pogut desar la configuració", - "saving_ok": "S'ha desat la configuració", - "security_tab": "Seguretat", - "set_new_avatar": "Canvia l'avatar", - "set_new_profile_background": "Canvia el fons de pantalla", - "set_new_profile_banner": "Canvia el fons del perfil", - "settings": "Configuració", - "stop_gifs": "Anima els GIF només en passar-hi el ratolí per sobre", - "streaming": "Carrega automàticament entrades noves quan estigui a dalt de tot", - "text": "Text", - "theme": "Tema", - "theme_help": "Personalitza els colors del tema. Escriu-los en format RGB hexadecimal (#rrggbb).", - "tooltipRadius": "Missatges sobreposats", - "user_settings": "Configuració personal", - "values": { - "false": "no", - "true": "sí" - }, - "show_moderator_badge": "Mostra una insígnia de Moderació en el meu perfil", - "show_admin_badge": "Mostra una insígnia \"d'Administració\" en el meu perfil", - "hide_followers_description": "No mostris qui m'està seguint", - "hide_follows_description": "No mostris a qui segueixo", - "notification_visibility_emoji_reactions": "Reaccions", - "new_email": "Nou correu electrònic", - "profile_fields": { - "value": "Contingut", - "name": "Etiqueta", - "add_field": "Afegeix un camp", - "label": "Metadades del perfil" - }, - "mutes_tab": "Silenciaments", - "interface": "Interfície", - "instance_default_simple": "(per defecte)", - "checkboxRadius": "Caselles", - "import_blocks_from_a_csv_file": "Importa bloquejos des d'un arxiu csv", - "hide_post_stats": "Amaga les estadístiques de les entrades (p. ex. el nombre de favorits)", - "use_one_click_nsfw": "Obre els adjunts NSFW amb només un clic", - "hide_muted_posts": "Amaga les entrades de comptes silenciats", - "avatar_size_instruction": "La mida mínima recomanada per la imatge de l'avatar és de 150x150 píxels.", - "domain_mutes": "Dominis", - "discoverable": "Permet la descoberta d'aquest compte en resultats de cerques i altres serveis", - "mutes_and_blocks": "Silenciaments i bloquejos", - "composing": "Composant", - "chatMessageRadius": "Missatge de xat", - "changed_email": "Correu electrònic canviat amb èxit!", - "change_email_error": "Hi ha hagut un problema al canviar el teu correu electrònic.", - "change_email": "Canvia el correu electrònic", - "bot": "Aquest és un compte automatitzat", - "blocks_tab": "Bloquejos", - "blocks_imported": "Bloquejos importats! Processar-los pot trigar una mica.", - "block_import_error": "Error al importar bloquejos", - "block_import": "Importa bloquejos", - "block_export_button": "Exporta els teus bloquejos a un arxiu csv", - "block_export": "Exporta bloquejos", - "allow_following_move": "Permet el seguiment automàtic quan un compte a qui seguim es mou", - "mfa": { - "scan": { - "secret_code": "Clau", - "title": "Escanejar", - "desc": "S'està usant l'aplicació two-factor, escaneja aquest codi QR o introdueix la clau de text:" - }, - "authentication_methods": "Mètodes d'autenticació", - "waiting_a_recovery_codes": "Rebent còpies de seguretat dels codis…", - "recovery_codes": "Codis de recuperació.", - "warning_of_generate_new_codes": "Quan generes nous codis de recuperació, els antics ja no funcionaran més.", - "generate_new_recovery_codes": "Genera nous codis de recuperació", - "otp": "OTP", - "confirm_and_enable": "Confirmar i habilitar OTP", - "recovery_codes_warning": "Anote els codis o guarda'ls en un lloc segur, o no els veuràs una altra volta. Si perds l'accés a la teua aplicació 2FA i els codis de recuperació, no podràs accedir al compte.", - "title": "Autenticació de dos factors", - "setup_otp": "Configurar OTP", - "wait_pre_setup_otp": "preconfiguració OTP", - "verify": { - "desc": "Per habilitar l'autenticació two-factor, introdueix el codi des de la teva aplicació two-factor:" - } - }, - "enter_current_password_to_confirm": "Posar la contrasenya actual per confirmar la teva identitat", - "security": "Seguretat", - "app_name": "Nom de l'aplicació", - "subject_line_mastodon": "Com a mastodon: copiar com és", - "mute_export_button": "Exportar silenciats a un fitxer csv", - "mute_import_error": "Error al importar silenciats", - "mutes_imported": "Silenciats importats! Processar-los portarà una estona.", - "import_mutes_from_a_csv_file": "Importar silenciats des d'un fitxer csv", - "word_filter": "Filtre de paraules", - "hide_media_previews": "Ocultar les vistes prèvies multimèdia", - "hide_filtered_statuses": "Amagar estats filtrats", - "play_videos_in_modal": "Reproduir vídeos en un marc emergent", - "file_export_import": { - "errors": { - "invalid_file": "El fitxer seleccionat no és vàlid com a còpia de seguretat de la configuració. No s'ha realitzat cap canvi.", - "file_too_new": "Versió important incompatible: {fileMajor}, aquest PleromaFE (configuració versió {feMajor}) és massa antiga per gestionar-lo", - "file_too_old": "Versió important incompatible: {fileMajor}, la versió del fitxer és massa antiga i no està implementada (s'ha establert un mínim ver. {feMajor})", - "file_slightly_new": "La versió menor del fitxer és diferent, alguns paràmetres podrien no carregar-se" - }, - "backup_settings": "Còpia de seguretat de la configuració a un fitxer", - "backup_settings_theme": "Còpia de seguretat de la configuració i tema a un fitxer", - "restore_settings": "Restaurar configuració des d'un fitxer", - "backup_restore": "Còpia de seguretat de la configuració" - }, - "user_mutes": "Usuaris", - "subject_line_email": "Com a l'email: \"re: tema\"", - "search_user_to_block": "Busca a qui vols bloquejar", - "save": "Guardar els canvis", - "use_contain_fit": "No retallar els adjunts en miniatures", - "reset_profile_background": "Restablir fons del perfil", - "reset_profile_banner": "Restablir banner del perfil", - "emoji_reactions_on_timeline": "Mostrar reaccions emoji al flux", - "max_thumbnails": "Quantitat màxima de miniatures per publicació", - "hide_user_stats": "Amagar les estadístiques de l'usuari (p. ex. el nombre de seguidors)", - "reset_banner_confirm": "Realment vols restablir el banner?", - "reset_background_confirm": "Realment vols restablir el fons del perfil?", - "subject_input_always_show": "Sempre mostrar el camp del tema", - "subject_line_noop": "No copiar", - "subject_line_behavior": "Copiar el tema a les respostes", - "search_user_to_mute": "Busca a qui vols silenciar", - "mute_export": "Exportar silenciats", - "scope_copy": "Copiar visibilitat quan contestes (En els missatges directes sempre es copia)", - "reset_avatar": "Restablir avatar", - "right_sidebar": "Mostrar barra lateral a la dreta", - "no_blocks": "No hi han bloquejats", - "no_mutes": "No hi han silenciats", - "hide_follows_count_description": "No mostrar el nombre de comptes que segueixo", - "mute_import": "Importar silenciats", - "hide_all_muted_posts": "Ocultar publicacions silenciades", - "hide_wallpaper": "Amagar el fons de la instància", - "notification_visibility_moves": "Usuari Migrat", - "reply_visibility_following_short": "Mostrar respostes als meus seguidors", - "reply_visibility_self_short": "Mostrar respostes només a un mateix", - "autohide_floating_post_button": "Ocultar automàticament el botó 'Nova Publicació' (mòbil)", - "minimal_scopes_mode": "Minimitzar les opcions de visibilitat de la publicació", - "sensitive_by_default": "Marcar publicacions com a sensibles per defecte", - "useStreamingApi": "Rebre publicacions i notificacions en temps real", - "hide_isp": "Ocultar el panell especific de la instància", - "preload_images": "Precarregar les imatges", - "setting_changed": "La configuració és diferent a la predeterminada", - "hide_followers_count_description": "No mostrar el nombre de seguidors", - "reset_avatar_confirm": "Realment vols restablir l'avatar?", - "accent": "Accent", - "useStreamingApiWarning": "(No recomanat, experimental, pot ometre publicacions)", - "style": { - "fonts": { - "family": "Nom de la font", - "size": "Mida (en píxels)", - "custom": "Personalitza", - "_tab_label": "Fonts", - "help": "Selecciona la font per als elements de la interfície. Per a \"personalitzat\" deus escriure el nom de la font exactament com apareix al sistema.", - "components": { - "post": "Text de les publicacions", - "postCode": "Text monoespai en publicació (text enriquit)", - "input": "Camps d'entrada", - "interface": "Interfície" + "about": { + "mrf": { + "federation": "Federació", + "keyword": { + "ftl_removal": "Eliminar de la línia de temps \"Tota la Xarxa Coneguda\"", + "is_replaced_by": "→", + "keyword_policies": "Polítiques de paraules clau", + "reject": "Rebutja", + "replace": "Reemplaça" + }, + "mrf_policies": "Polítiques MRF habilitades", + "mrf_policies_desc": "Les polítiques MRF manipulen el comportament federat de la instància. Les següents polítiques estan habilitades:", + "simple": { + "accept": "Accepta", + "accept_desc": "Aquesta instància només accepta missatges de les següents instàncies:", + "ftl_removal": "Eliminar de la línia de temps \"Xarxa Coneguda\"", + "ftl_removal_desc": "Aquesta instància elimina les següents instàncies de la línia de temps \"Xarxa Coneguda\":", + "instance": "Instància", + "media_nsfw": "Forçar contingut multimèdia com a sensible", + "media_nsfw_desc": "Aquesta instància obliga el contingut multimèdia a establir-se com a sensible en els apunts de les següents instàncies:", + "media_removal": "Eliminació de la Multimèdia", + "media_removal_desc": "Aquesta instància elimina els adjunts multimèdia dels apunts de les següents instàncies:", + "not_applicable": "N/A", + "quarantine": "Quarantena", + "quarantine_desc": "Aquesta instància no enviarà apunts a les següents instàncies:", + "reason": "Motiu", + "reject": "Rebutja", + "reject_desc": "Aquesta instància no acceptarà missatges de les següents instàncies:", + "simple_policies": "Polítiques específiques de la instància" + } }, - "weight": "Pes (negreta)" - }, - "preview": { - "input": "Acabo d'aterrar a Los Angeles.", - "button": "Botó", - "mono": "contingut", - "content": "Contingut", - "header": "Previsualització", - "header_faint": "Això està bé", - "error": "Exemple d'error", - "faint_link": "Manual d'ajuda", - "checkbox": "He llegit els termes i condicions", - "link": "un bonic enllaç", - "fine_print": "Llegiu el nostre {0} per no aprendre res útil!", - "text": "Un grapat més de {0} i {1}" - }, - "shadows": { - "spread": "Difon", - "filter_hint": { - "drop_shadow_syntax": "{0} no suporta el paràmetre {1} i la paraula clau {2}.", - "avatar_inset": "Tingues en compte que combinar ombres interiors i no interiors als avatars podria donar resultats inesperats amb avatars transparents.", - "inset_classic": "Les ombres interiors estaran usant {0}", - "always_drop_shadow": "Advertència, aquesta ombra sempre utilitza {0} quan el navegador ho suporta.", - "spread_zero": "Ombres amb propagació > 0 apareixeran com si estigueren posades a zero" - }, - "components": { - "popup": "Texts i finestres emergents (popups & tooltips)", - "panel": "Panell", - "panelHeader": "Capçalera del panell", - "avatar": "Avatar de l'usuari (en vista de perfil)", - "input": "Camp d'entrada", - "buttonHover": "Botó (surant)", - "buttonPressed": "Botó (pressionat)", - "topBar": "Barra superior", - "buttonPressedHover": "Botó (surant i pressionat)", - "avatarStatus": "Avatar de l'usuari (en vista de publicació)", - "button": "Botó" - }, - "hintV3": "per a les ombres també pots usar la notació {0} per a utilitzar un altre espai de color.", - "blur": "Difuminat", - "component": "Component", - "override": "Sobreescriure", - "shadow_id": "Ombra #{value}", - "_tab_label": "Ombra i il·luminació", - "inset": "Ombra interior" - }, - "switcher": { - "use_snapshot": "Versió antiga", - "help": { - "future_version_imported": "El fitxer importat es va crear per a una versió del front-end més recent.", - "migration_snapshot_ok": "Per a estar segurs, s'ha carregat la instantània del tema. Pots intentar carregar les dades del tema.", - "migration_napshot_gone": "Per alguna raó, faltava la instantània, algunes coses podrien veure's diferents del que recordes.", - "snapshot_source_mismatch": "Conflicte de versions: probablement el front-end s'ha revertit i actualitzat una altra volta, si has canviat el tema en una versió anterior, segurament vols utilitzar la versió antiga; d'altra banda utilitza la nova versió.", - "v2_imported": "El fitxer que has importat va ser creat per a un front-end més antic. Intentem maximitzar la compatibilitat, però podrien haver inconsistències.", - "fe_upgraded": "El motor de temes de PleromaFE es va actualitzar després de l'actualització de la versió.", - "snapshot_missing": "No hi havia cap instantània del tema al fitxer, per tant podria veure's diferent del previst originalment.", - "upgraded_from_v2": "PleromaFE s'ha actualitzat, el tema pot veure's un poc diferent de com recordes.", - "fe_downgraded": "Versió de PleromaFE revertida.", - "older_version_imported": "El fitxer que has importat va ser creat en una versió del front-end més antiga.", - "snapshot_present": "S'ha carregat la instantània del tema, de manera que tots els valors estan sobreescrits. En canvi, podeu carregar les dades reals del tema." - }, - "keep_as_is": "Mantindre com està", - "save_load_hint": "Les opcions \"Mantindre\" conserven les opcions configurades actualment al seleccionar o carregar temes, també emmagatzema aquestes opcions quan s'exporta un tema. Quan es desactiven totes les caselles de verificació, el tema exportat ho guardarà tot.", - "keep_color": "Mantindre colors", - "keep_opacity": "Mantindre opacitat", - "keep_shadows": "Mantindre ombres", - "keep_fonts": "Mantindre fonts", - "keep_roundness": "Mantindre rodoneses", - "clear_all": "Netejar tot", - "reset": "Reinciar", - "load_theme": "Carregar tema", - "use_source": "Nova versió", - "clear_opacity": "Netejar opacitat" - }, - "common": { - "contrast": { - "hint": "El ràtio de contrast és {ratio}. {level} {context}", - "level": { - "bad": "no compleix amb cap pauta d'accecibilitat", - "aaa": "Compleix amb el nivell AA (recomanat)", - "aa": "Compleix amb el nivell AA (mínim)" - }, - "context": { - "18pt": "per a textos grans (+18pt)", - "text": "per a textos" - } - }, - "opacity": "Opacitat", - "color": "Color" - }, - "advanced_colors": { - "badge": "Fons de insígnies", - "inputs": "Camps d'entrada", - "wallpaper": "Fons de pantalla", - "pressed": "Pressionat", - "chat": { - "outgoing": "Eixint", - "border": "Borde", - "incoming": "Entrants" - }, - "borders": "Bordes", - "panel_header": "Capçalera del panell", - "buttons": "Botons", - "faint_text": "Text esvaït", - "poll": "Gràfica de l'enquesta", - "toggled": "Commutat", - "alert": "Fons d'alertes", - "alert_error": "Error", - "alert_warning": "Precaució", - "post": "Publicacions/Biografies d'usuaris", - "badge_notification": "Notificacions", - "selectedMenu": "Element del menú seleccionat", - "tabs": "Pestanyes", - "_tab_label": "Avançat", - "alert_neutral": "Neutral", - "popover": "Suggeriments, menús, superposicions", - "top_bar": "Barra superior", - "highlight": "Elements destacats", - "disabled": "Deshabilitat", - "icons": "Icones", - "selectedPost": "Publicació seleccionada", - "underlay": "Subratllat" - }, - "common_colors": { - "main": "Colors comuns", - "rgbo": "Icones, accents, insígnies", - "foreground_hint": "mira la pestanya \"Avançat\" per a un control més detallat", - "_tab_label": "Comú" - }, - "radii": { - "_tab_label": "Rodonesa" - } + "staff": "Equip responsable" }, - "version": { - "frontend_version": "Versió \"Frontend\"", - "backend_version": "Versió \"backend\"", - "title": "Versió" + "announcements": { + "all_day_prompt": "És un esdeveniment de tot el dia", + "cancel_edit_action": "Cancel·la", + "close_error": "Tanca", + "delete_action": "Esborra", + "edit_action": "Edita", + "end_time_display": "Acaba a les {time}", + "end_time_prompt": "Hora final: ", + "inactive_message": "Aquest anunci està inactiu", + "mark_as_read_action": "Marca com a llegit", + "page_header": "Anuncis", + "post_action": "Apunt", + "post_error": "Error: {error}", + "post_form_header": "Publica l'anunci", + "post_placeholder": "Contingut del anunci", + "published_time_display": "Publicat a les {time}", + "start_time_display": "Comença a les {time}", + "start_time_prompt": "Hora inicial: ", + "submit_edit_action": "Fet", + "title": "Anunci" }, - "theme_help_v2_1": "També pots anular alguns components de color i opacitat activant la casella. Usa el botó \"Esborrar tot\" per esborrar totes les anulacions.", - "type_domains_to_mute": "Buscar dominis per a silenciar", - "greentext": "Text verd (meme arrows)", - "fun": "Divertit", - "notification_setting_filters": "Filtres", - "virtual_scrolling": "Optimitzar la representació del flux", - "notification_setting_block_from_strangers": "Bloqueja les notificacions dels usuaris que no segueixes", - "enable_web_push_notifications": "Habilitar notificacions del navegador", - "notification_blocks": "Bloquejar a un usuari para totes les notificacions i també les cancel·la.", - "more_settings": "Més opcions", - "notification_setting_privacy": "Privacitat", - "upload_a_photo": "Pujar una foto", - "notification_setting_hide_notification_contents": "Amagar el remitent i els continguts de les notificacions push", - "notifications": "Notificacions", - "notification_mutes": "Per a deixar de rebre notificacions d'un usuari en concret, silencia'l-ho.", - "theme_help_v2_2": "Les icones per baix d'algunes entrades són indicadors del contrast del fons/text, desplaça el ratolí per a més informació. Tingues en compte que quan s'utilitzen indicadors de contrast de transparència es mostra el pitjor cas possible.", - "hide_shoutbox": "Oculta la casella de gàbia de grills", - "always_show_post_button": "Mostra sempre el botó flotant de publicació nova", - "pad_emoji": "Acompanya els emojis amb espais en afegir des del selector", - "mentions_new_style": "Enllaços d'esment més elegants", - "mentions_new_place": "Posa les mencions en una línia separada", - "post_status_content_type": "Format de publicació" - }, - "time": { - "now": "ara mateix", - "now_short": "ara mateix", - "in_future": "in {0}", - "in_past": "fa {0}", - "unit": { - "day": "{0} dia", - "days": "{0} dies", - "day_short": "{0} dia", - "days_short": "{0} dies", - "hour": "{0} hora", - "hours": "{0} hores", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minute", - "minutes": "{0} minutes", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} mes", - "months": "{0} mesos", - "month_short": "{0} mes", - "months_short": "{0} mesos", - "second": "{0} segon", - "seconds": "{0} segons", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} setmana", - "weeks": "{0} setmanes", - "week_short": "{0} setm.", - "weeks_short": "{0} setm.", - "year": "{0} any", - "years": "{0} anys", - "year_short": "{0} any", - "years_short": "{0} anys" + "chats": { + "chats": "Xats", + "delete": "Esborra", + "delete_confirm": "Realment vols esborrar aquest missatge?", + "empty_chat_list_placeholder": "Encara no tens cap xat. Crea un nou xat!", + "empty_message_error": "No es pot publicar un missatge buit", + "error_loading_chat": "Alguna cosa ha fallat quan es carregava el xat.", + "error_sending_message": "Alguna cosa ha fallat quan s'enviava el missatge.", + "message_user": "Missatge {nickname}", + "more": "Més", + "new": "Nou xat", + "you": "Tu:" + }, + "display_date": { + "today": "Avui" + }, + "domain_mute_card": { + "mute": "Silencia", + "mute_progress": "Silenciant…", + "unmute": "Deixar de silenciar", + "unmute_progress": "Deixant de silenciar…" + }, + "emoji": { + "add_emoji": "Inserir un emoji", + "custom": "Emojis personalitzats", + "emoji": "Emoji", + "keep_open": "Mantindre el selector obert", + "load_all": "Carregant tots els {emojiAmount} emoji", + "load_all_hint": "Carregat el primer {saneAmount} emoji, carregar tots els emoji pot causar problemes de rendiment.", + "search_emoji": "Buscar un emoji", + "stickers": "Adhesius", + "unicode": "Emojis unicode" + }, + "errors": { + "storage_unavailable": "Akkoma no ha pogut accedir a l'emmagatzematge del navegador. El teu inici de sessió o configuració local no es desaran i et pots trobar amb problemes inesperats. Prova a habilitar les galetes." + }, + "exporter": { + "export": "Exporta", + "processing": "Processant, aviat se't preguntarà per descarregar el teu arxiu" + }, + "features_panel": { + "media_proxy": "Proxy per multimèdia", + "scope_options": "Opcions d'abast", + "shout": "Altaveu", + "text_limit": "Límit de text", + "title": "Funcionalitats", + "upload_limit": "Límit de càrrega", + "who_to_follow": "A qui seguir" + }, + "file_type": { + "audio": "Àudio", + "file": "Fitxer", + "image": "Imatge", + "video": "Vídeo" + }, + "finder": { + "error_fetching_user": "Error al recuperar l'usuari", + "find_user": "Trobar usuari" + }, + "general": { + "apply": "Aplica", + "cancel": "Cancel·la", + "close": "Tanca", + "confirm": "Confirma", + "disable": "Deshabilita", + "dismiss": "Descarta", + "enable": "Habilita", + "error_retry": "Si us plau, prova de nou", + "flash_content": "Fes clic per mostrar el contingut Flash utilitzant Ruffle (experimental, pot no funcionar).", + "flash_fail": "No s'ha pogut carregar el contingut flaix, consulta la consola per als detalls.", + "flash_security": "Tingues en compte que això pot ser potencialment perillós, ja que el contingut Flash encara és un codi arbitrari.", + "generic_error": "Hi ha hagut un error", + "loading": "Carregant…", + "more": "Més", + "optional": "opcional", + "peek": "Ullada", + "retry": "Prova de nou", + "role": { + "admin": "Administrador", + "moderator": "Moderador" + }, + "scope_in_timeline": { + "direct": "Directe", + "private": "Només seguidors", + "public": "Públic", + "unlisted": "No llistat" + }, + "show_less": "Mostra menys", + "show_more": "Mostra més", + "submit": "Envia", + "verify": "Verifica" + }, + "image_cropper": { + "cancel": "Cancel·la", + "crop_picture": "Retalla la imatge", + "save": "Desa", + "save_without_cropping": "Desa sense retallar" + }, + "importer": { + "error": "Ha succeït un error mentre s'importava aquest arxiu.", + "submit": "Enviar", + "success": "Importat amb èxit." + }, + "interactions": { + "favs_repeats": "Repeticions i favorits", + "follows": "Nous seguits", + "load_older": "Carrega interaccions més antigues", + "moves": "Migracions d'usuari" + }, + "lists": { + "create": "Crea", + "delete": "Esborra la llista", + "following_only": "Limita als Seguits", + "lists": "Llistes", + "new": "Nova Llista", + "save": "Desa els canvis", + "search": "Cerca usuaris", + "title": "Títol de la llista" + }, + "login": { + "authentication_code": "Codi d'autenticació", + "description": "Inicia sessió amb OAuth", + "enter_recovery_code": "Posa un codi de recuperació", + "enter_two_factor_code": "Introdueix un codi de dos factors", + "heading": { + "recovery": "Recuperació de dos factors", + "totp": "Autenticació de dos factors" + }, + "hint": "Entra per a participar en la conversa", + "login": "Inicia sessió", + "logout": "Tanca la sessió", + "password": "Contrasenya", + "placeholder": "el meu nom d'usuari", + "recovery_code": "Codi de recuperació", + "register": "Registra't", + "username": "Nom d'usuari" + }, + "media_modal": { + "counter": "{current} / {total}", + "hide": "Tanca reproductor mèdia", + "next": "Següent", + "previous": "Anterior" + }, + "nav": { + "about": "Quant a", + "administration": "Administració", + "announcements": "Anuncis", + "back": "Enrere", + "bookmarks": "Marcadors", + "bubble_timeline": "Línia de temps Bombolla", + "bubble_timeline_description": "Apunts d'instàncies properes a la teva, recomanades per els admins", + "chats": "Xats", + "dms": "Missatges directes", + "friend_requests": "Sol·licituds de seguiment", + "home_timeline": "Línia de temps Inici", + "home_timeline_description": "Apunts de gent que segueixes", + "interactions": "Interaccions", + "lists": "Llistes", + "mentions": "Mencions", + "preferences": "Preferències", + "public_timeline_description": "Apunts públics des d'aquesta instància", + "public_tl": "Línia de temps Pública", + "search": "Cerca", + "timeline": "Línia de temps", + "timelines": "Línies de temps", + "twkn": "Xarxa coneguda", + "twkn_timeline_description": "Apunts de tota la xarxa", + "user_search": "Cerca d'usuaris", + "who_to_follow": "A qui seguir" + }, + "notifications": { + "broken_favorite": "Apunt desconegut, cercant-lo…", + "error": "Error obtenint notificacions: {0}", + "favorited_you": "ha afavorit un apunt teu", + "follow_request": "et vol seguir", + "followed_you": "ha començat a seguir-te", + "load_older": "Carrega notificacions més velles", + "migrated_to": "migrat a", + "no_more_notifications": "No més notificacions", + "notifications": "Notificacions", + "poll_ended": "l'enquesta ha acabat", + "reacted_with": "ha reaccionat amb {0}", + "read": "Llegit!", + "repeated_you": "ha repetit el teu apunt" + }, + "password_reset": { + "check_email": "Comprova que has rebut al correu electrònic un enllaç per a reiniciar la teva contrasenya.", + "forgot_password": "Has oblidat la contrasenya?", + "instruction": "Introdueix la teva adreça de correu electrònic o nom d'usuari. T'enviarem un enllaç per a reiniciar la teva contrasenya.", + "password_reset": "Reinicia la contrasenya", + "password_reset_disabled": "El reinici de la contrasenya està desactivat. Si us plau, contacta l'administrador de la teva instància.", + "password_reset_required": "Has de reiniciar la teva contrasenya per a iniciar la sessió.", + "password_reset_required_but_mailer_is_disabled": "Has de reiniciar la teva contrasenya però el reinici de la contrasenya està desactivat. Si us plau, contacta l'administrador de la teva instància.", + "placeholder": "El teu correu electrònic o nom d'usuari", + "return_home": "Torna a la pàgina principal", + "too_many_requests": "Has arribat al límit d'intents. Prova de nou d'aquí una estona." + }, + "polls": { + "add_option": "Afegir opció", + "add_poll": "Afegir enquesta", + "expired": "L'enquesta va acabar fa {0}", + "expires_in": "L'enquesta acaba en {0}", + "expiry": "Durada de l'enquesta", + "multiple_choices": "Múltiples opcions", + "not_enough_options": "Molt poques opcions úniques en l'enquesta", + "option": "Opció", + "people_voted_count": "{count} persona ha votat | {count} persones han votat", + "single_choice": "Opció única", + "type": "Tipus d'enquesta", + "vote": "Vota", + "votes": "vots", + "votes_count": "{count} vot | {count} vots" + }, + "post_status": { + "account_not_locked_warning": "El teu compte no està {0}. Qualsevol pot seguir-te per llegir els teus apunts només per a seguidors.", + "account_not_locked_warning_link": "bloquejat", + "attachments_sensitive": "Marca l'adjunt com a sensible", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Text pla", + "text/x.misskeymarkdown": "MFM" + }, + "content_warning": "Assumpte (opcional)", + "default": "Just ara he arribat a Catalunya", + "direct_warning_to_all": "Aquest apunt serà visible per a tots els usuaris mencionats.", + "direct_warning_to_first_only": "Aquest apunt només serà visible per als usuaris mencionats al principi del missatge.", + "empty_status_error": "No es pot publicar un apunt buit sense fitxers adjunts", + "media_description": "Descripció multimèdia", + "media_description_error": "Ha fallat la pujada del Mèdia, prova de nou", + "media_not_sensitive_warning": "Tens un Avís de Contingut però els adjunts no estan marcats com a sensibles!", + "new_status": "Publica un nou apunt", + "post": "Apunt", + "posting": "Publicant", + "preview": "Vista prèvia", + "preview_empty": "Buida", + "scope": { + "direct": "Directe - publica només per als usuaris etiquetats", + "local": "Local - no federar aquest apunt", + "private": "Només seguidors - publica només per als teus seguidors", + "public": "Pública - publica a les línies de temps públiques", + "unlisted": "No llistat - no es mostra en les línies de temps públiques" + }, + "scope_notice": { + "local": "Aquest apunt no serà visible en altres instàncies", + "private": "Aquest apunt serà visible només per els teus seguidors", + "public": "Aquest apunt serà visible per a tothom", + "unlisted": "Aquest apunt no es veurà ni a la Línia de temps Pública ni a Tota la Xarxa Coneguda" + } + }, + "registration": { + "bio": "Bio", + "bio_placeholder": "p.e.\nHola, sóc la Lain.\nSóc una noia anime que viu a un suburbi de Japó. Potser em coneixes per Wired.", + "captcha": "CAPTCHA", + "email": "Adreça de Correu", + "email_language": "En quina llengua vols rebre els correus del servidor?", + "fullname": "Nom a mostrar", + "fullname_placeholder": "p. ex. Lain Iwakura", + "new_captcha": "Clica a la imatge per a obtenir un nou captcha", + "password_confirm": "Confirma la contrasenya", + "reason": "Raó per a registrar-se", + "reason_placeholder": "Aquesta instància aprova els registres manualment.\nExplica a l'administració per què vols registrar-te.", + "register": "Registre", + "registration": "Registre", + "token": "Codi d'invitació", + "username_placeholder": "p. ex. lain", + "validations": { + "email_required": "no es pot deixar en blanc", + "fullname_required": "no es pot deixar en blanc", + "password_confirmation_match": "hauria de ser la mateixa que la contrasenya", + "password_confirmation_required": "no es pot deixar en blanc", + "password_required": "no es pot deixar en blanc", + "username_required": "no es pot deixar en blanc" + } + }, + "remote_user_resolver": { + "error": "No trobat.", + "remote_user_resolver": "Resolució d'usuari remot", + "searching_for": "Cercant per" + }, + "search": { + "hashtags": "Etiquetes", + "no_results": "No hi ha resultats", + "people": "Persones", + "people_talking": "{count} persones parlant", + "person_talking": "{count} persones parlant" + }, + "selectable_list": { + "select_all": "Selecciona-ho tot" + }, + "settings": { + "accent": "Accent", + "account_alias": "Àlies del compte", + "account_alias_table_head": "Àlies", + "account_backup": "Copia de seguretat del compte", + "account_backup_description": "Això et permetrà descarregar un arxiu del teu compte i les teves publicacions però no podran ser importades en un compte Akkoma.", + "account_backup_table_head": "Copia de seguretat", + "account_privacy": "Privacitat", + "add_alias_error": "Error al afegir l'àlies: {error}", + "add_backup": "Crea una nova copia de seguretat", + "add_backup_error": "Error al afegir una nova còpia de seguretat: {error}", + "added_alias": "S'ha afegit l'àlies.", + "added_backup": "Afegida una nova còpia de seguretat.", + "allow_following_move": "Permet el seguiment automàtic quan un compte seguit es mogui", + "always_show_post_button": "Mostra sempre el botó flotant d'Apunt Nou", + "app_name": "Nom de l'aplicació", + "attachmentRadius": "Adjunts", + "attachments": "Adjunts", + "autohide_floating_post_button": "Ocultar automàticament el botó 'Nou Apunt' (mòbil)", + "avatar": "Avatar", + "avatarAltRadius": "Avatars (notificacions)", + "avatarRadius": "Avatars", + "avatar_size_instruction": "La mida mínima recomanada per les imatges dels avatars és de 150x150 píxels.", + "background": "Fons de pantalla", + "backup_not_ready": "Aquesta copia de seguretat encara no està llesta.", + "bio": "Bio", + "block_export": "Exporta bloquejos", + "block_export_button": "Exporta els teus bloquejos a un arxiu csv", + "block_import": "Importa bloquejos", + "block_import_error": "Error al importar bloquejos", + "blocks_imported": "Bloquejos importats! Processar-los pot trigar una mica.", + "blocks_tab": "Bloquejos", + "bot": "Aquest és un compte bot", + "btnRadius": "Botons", + "cBlue": "Blau (respon, segueix)", + "cGreen": "Verd (republica)", + "cOrange": "Taronja (afavoreix)", + "cRed": "Vermell (canceŀla)", + "change_email": "Canvia el correu electrònic", + "change_email_error": "Hi ha hagut un problema al canviar el teu correu electrònic.", + "change_password": "Canvia la contrasenya", + "change_password_error": "Hi ha hagut un problema al canviar la teva contrasenya.", + "changed_email": "Correu electrònic canviat amb èxit!", + "changed_password": "S'ha canviat la contrasenya correctament!", + "chatMessageRadius": "Missatge de xat", + "checkboxRadius": "Caselles", + "collapse_subject": "Replega els apunts amb assumpte", + "composing": "Composant", + "confirm_new_password": "Confirma la nova contrasenya", + "conversation_display": "Estil de visualització de la conversa", + "conversation_display_linear": "Estil linear", + "conversation_display_tree": "Estil d'arbre", + "conversation_other_replies_button": "Mostra el botó \"altres respostes\"", + "conversation_other_replies_button_below": "Apunts a sota", + "conversation_other_replies_button_inside": "Apunts interiors", + "current_avatar": "El teu avatar actual", + "current_mascot": "La teva mascota actual", + "current_password": "Contrasenya actual", + "data_import_export_tab": "Importa dades / exporta", + "default_vis": "Visibilitat per defecte dels apunts", + "delete_account": "Esborra el compte", + "delete_account_description": "Esborra permanentment les teves dades i desactiva el teu compte.", + "delete_account_error": "Hi ha hagut un problema al esborrar el teu compte. Si continua així, contacta amb l'administrador de l'instància.", + "delete_account_instructions": "Escriu la teva contrasenya en el camp de sota per a confirmar esborrar el compte.", + "disable_sticky_headers": "No enganxis les capçaleres de columna en la part superior de la pantalla", + "discoverable": "Permet descobrir aquest compte en resultats de cerques i altres serveis", + "domain_mutes": "Dominis", + "download_backup": "Descàrrega", + "email_language": "Llengua per a rebre correus des d'el servidor", + "emoji_reactions_on_timeline": "Mostra reaccions emoji en la línia de temps", + "enable_web_push_notifications": "Habilitar notificacions del navegador", + "enter_current_password_to_confirm": "Posa la teva contrasenya actual per a confirmar la teva identitat", + "expert_mode": "Mostra avançat", + "export_theme": "Desa el tema", + "file_export_import": { + "backup_restore": "Còpia de seguretat de la configuració", + "backup_settings": "Còpia de seguretat de la configuració a un fitxer", + "backup_settings_theme": "Còpia de seguretat de la configuració i tema a un fitxer", + "errors": { + "file_slightly_new": "La versió menor del fitxer és diferent, alguns paràmetres podrien no carregar-se", + "file_too_new": "Versió important incompatible: {fileMajor}, aquest PleromaFE (configuració versió {feMajor}) és massa antiga per gestionar-lo", + "file_too_old": "Versió important incompatible: {fileMajor}, la versió del fitxer és massa antiga i no està suportada (min. set. ver. {feMajor})", + "invalid_file": "El fitxer seleccionat no és suportat per Akkoma com a còpia de seguretat de la configuració. No s'ha realitzat cap canvi." + }, + "restore_settings": "Restaurar configuració des d'un fitxer" + }, + "filtering": "Filtrant", + "filtering_explanation": "Es silenciaran tots els apunts que continguin aquestes paraules, una per línia", + "follow_export": "Exporta els seguits", + "follow_export_button": "Exporta els teus seguits a un fitxer CSV", + "follow_import": "Importa els seguits", + "follow_import_error": "Error al importar els seguidors", + "follows_imported": "S'han importat els seguits! Processar-los portarà una estona.", + "foreground": "Primer pla", + "fun": "Divertit", + "general": "General", + "greentext": "Text verd (meme arrows)", + "hide_all_muted_posts": "Ocultar apunts silenciades", + "hide_attachments_in_convo": "Amaga els adjunts en les converses", + "hide_attachments_in_tl": "Amaga els adjunts en la línia de temps", + "hide_bot_indication": "Amaga l'indicació de bot en els apunts", + "hide_favorites_description": "No mostrar la llista dels meus favorits (la gent seguirà sent notificada)", + "hide_filtered_statuses": "Amaga apunts filtrats", + "hide_followers_count_description": "No mostrar el número de seguidors", + "hide_followers_description": "No mostrar qui m'està seguint", + "hide_follows_count_description": "No mostrar el número dels meus seguits", + "hide_follows_description": "No mostrar a qui segueixo", + "hide_isp": "Amaga el panell especific de l'instància", + "hide_list_aliases_error_action": "Tanca", + "hide_media_previews": "Ocultar les vistes prèvies multimèdia", + "hide_muted_posts": "Amaga els apunts de comptes silenciats", + "hide_muted_threads": "Amaga fils silenciats", + "hide_post_stats": "Amaga les estadístiques dels apunts (p. ex. el número de favorits)", + "hide_shoutbox": "Amaga la casella de gàbia de grills", + "hide_threads_with_blocked_users": "Amaga els fils mencionant usuaris bloquejats", + "hide_user_stats": "Amaga les estadístiques de l'usuari (p. ex. el número de seguidors)", + "hide_wallpaper": "Amagar el fons de l'instància", + "hide_wordfiltered_statuses": "Amaga apunts filtrats per paraules", + "import_blocks_from_a_csv_file": "Importa bloquejos des d'un arxiu csv", + "import_followers_from_a_csv_file": "Importa els seguits des d'un fitxer CSV", + "import_mutes_from_a_csv_file": "Importar silenciats des d'un fitxer csv", + "import_theme": "Carrega un tema", + "inputRadius": "Camps d'entrada", + "instance_default": "(default: {value})", + "instance_default_simple": "(per defecte)", + "interface": "Interfície", + "interfaceLanguage": "Llengua de la interfície", + "invalid_theme_imported": "L'arxiu seleccionat no és un tema vàlid de Akkoma. No s'ha fet cap canvi al teu tema actual.", + "limited_availability": "No està disponible en el teu navegador", + "links": "Enllaços", + "list_aliases_error": "Error al obtenir els àlies: {error}", + "list_backups_error": "Error al recuperar la llista de copies de seguretat: {error}", + "lock_account_description": "Restringeix el teu compte només a seguidors aprovats", + "loop_video": "Vídeos en bucle", + "loop_video_silent_only": "Només bucle de vídeos sense so (com els \"GIF\" de Mastodon)", + "mascot": "Mascota de Mastodon FE", + "max_depth_in_thread": "Màxim número de nivells en el fil per mostrar per defecte", + "max_thumbnails": "Quantitat màxima de miniatures per apunt (buit = sense limit)", + "mention_link_bolden_you": "Destaca mencions per tu quan et mencionin", + "mention_link_display": "Mostra els enllaços de mencions", + "mention_link_display_full": "sempre com a noms complets (p. ex. {'@'}maria{'@'}exemple.cat)", + "mention_link_display_full_for_remote": "com a noms complets només per a usuaris remots (p. ex.. {'@'}maria{'@'}exemple.cat)", + "mention_link_display_short": "sempre com a noms curts (p. ex. {'@'}joan)", + "mention_link_fade_domain": "Dominis esvaïts (p. ex. {'@'}exemple.cat a {'@'}joan{'@'}exemple.cat)", + "mention_link_show_avatar": "Mostra l'avatar del usuari sota l'enllaç", + "mention_link_show_tooltip": "Mostra noms d'usuari complet com a globus per a usuaris remots", + "mention_links": "Enllaços de mencions", + "mfa": { + "authentication_methods": "Mètodes d'autenticació", + "confirm_and_enable": "Confirma i habilita OTP", + "generate_new_recovery_codes": "Genera nous codis de recuperació", + "otp": "OTP", + "recovery_codes": "Codis de recuperació.", + "recovery_codes_warning": "Anota els codis o desa'ls en un lloc segur - si no ho fas, no els podràs veure mai més . Si perds l'accés a la teva aplicació 2FA i als codis de recuperació, no podràs accedir al compte.", + "scan": { + "desc": "S'està usant la teva aplicació de dos factors, escaneja aquest codi QR o introdueix la clau de text:", + "secret_code": "Clau", + "title": "Escanejar" + }, + "setup_otp": "Configurar OTP", + "title": "Autenticació de dos factors", + "verify": { + "desc": "Per a habilitar l'autenticació de dos factors, introdueix el codi des de la teva aplicació de dos factors:" + }, + "wait_pre_setup_otp": "preconfiguració OTP", + "waiting_a_recovery_codes": "Rebent còpies de seguretat dels codis…", + "warning_of_generate_new_codes": "Quan generes nous codis de recuperació, els teus antics ja no funcionaran més." + }, + "minimal_scopes_mode": "Minimitzar les opcions de selecció del abast del apunt", + "more_settings": "Més opcions", + "move_account": "Mou el compte", + "move_account_error": "Error al moure el compte: {error}", + "move_account_notes": "Si vols moure el compte a un altre lloc has d'anar a aquest altre compte i afegir un àlies que apunti a aquest.", + "move_account_target": "Compte destí (p.ex. {example})", + "moved_account": "El compte s'ha mogut.", + "mute_bot_posts": "Silencia publicacions de bot", + "mute_export": "Exportar silenciats", + "mute_export_button": "Exportar els teus silenciats a un fitxer csv", + "mute_import": "Importar silenciats", + "mute_import_error": "Error al importar silenciats", + "mutes_and_blocks": "Silenciaments i bloquejos", + "mutes_imported": "Silenciats importats! Processar-los portarà una estona.", + "mutes_tab": "Silenciats", + "name": "Nom", + "name_bio": "Nom i bio", + "new_alias_target": "Afegeix un nou àlies (p.ex. {example})", + "new_email": "Nou correu electrònic", + "new_password": "Contrasenya nova", + "no_blocks": "No hi han bloquejats", + "no_mutes": "No hi han silenciats", + "no_rich_text_description": "Neteja el format de text de tots els apunts", + "notification_blocks": "Bloquejar a un usuari para totes les notificacions i cancel·la la subscripció.", + "notification_mutes": "Per a deixar de rebre notificacions d'un usuari en concret, silencia'l.", + "notification_setting_block_from_strangers": "Bloqueja les notificacions dels usuaris que no segueixes", + "notification_setting_filters": "Filtres", + "notification_setting_hide_if_cw": "Amaga els continguts de les publicacions push si son sota un Avís de Contingut", + "notification_setting_hide_notification_contents": "Amagar el remitent i els continguts de les notificacions push", + "notification_setting_privacy": "Privacitat", + "notification_visibility": "Tipus de notificacions a mostrar", + "notification_visibility_emoji_reactions": "reacciona", + "notification_visibility_follows": "em segueix", + "notification_visibility_likes": "m'afavoreix", + "notification_visibility_mentions": "em menciona", + "notification_visibility_moves": "es mou", + "notification_visibility_polls": "finalitza una enquesta on hi has votat", + "notification_visibility_repeats": "em repeteix", + "notifications": "Notificacions", + "nsfw_clickthrough": "Amaga els Mèdia sensibles/NSFW", + "oauth_tokens": "Codis OAuth", + "pad_emoji": "Acompanya els emojis amb espais al afegir-los des del selector", + "panelRadius": "Panells", + "pause_on_unfocused": "Pausa quan la pestanya perdi el focus", + "play_videos_in_modal": "Reproduir vídeos en un marc emergent", + "post_look_feel": "Aspecte i Sensació dels apunts", + "post_status_content_type": "Tipus de contingut del apunt", + "posts": "Apunts", + "preload_images": "Precarregar les imatges", + "presets": "Temes", + "profile_background": "Fons del perfil", + "profile_banner": "Banner del perfil", + "profile_fields": { + "add_field": "Afegeix un camp", + "label": "Metadades del perfil", + "name": "Etiqueta", + "value": "Contingut" + }, + "profile_tab": "Perfil", + "radii_help": "Configura l'arrodoniment de les vores (en píxels)", + "refresh_token": "Actualitza el token", + "remove_alias": "Elimina aquest àlies", + "remove_backup": "Treure", + "render_mfm": "Renderitza Markdown de Misskey", + "replies_in_timeline": "Respostes en línia de temps", + "reply_visibility_all": "Mostra totes les respostes", + "reply_visibility_following": "Mostra només les respostes dirigides a mi o a usuaris que segueixo", + "reply_visibility_following_short": "Mostrar respostes als meus seguits", + "reply_visibility_self": "Mostra només les respostes dirigides a mi", + "reply_visibility_self_short": "Mostrar només respostes a mi mateix", + "reset_avatar": "Restablir l'avatar", + "reset_avatar_confirm": "Realment vols restablir l'avatar?", + "reset_background_confirm": "Realment vols restablir el fons?", + "reset_banner_confirm": "Realment vols restablir el banner?", + "reset_profile_background": "Restablir fons del perfil", + "reset_profile_banner": "Restablir banner del perfil", + "revoke_token": "Revoca", + "right_sidebar": "Ordre invers de les columnes", + "save": "Desar els canvis", + "saving_err": "Error al desar la configuració", + "saving_ok": "Configuració desada", + "scope_copy": "Copiar visibilitat quan responguis (en els missatges directes sempre es copia)", + "search_user_to_block": "Busca a qui vols bloquejar", + "search_user_to_mute": "Busca a qui vols silenciar", + "security": "Seguretat", + "security_tab": "Seguretat", + "sensitive_by_default": "Marcar apunts com a sensibles per defecte", + "sensitive_if_subject": "Marca automàticament les imatges com a sensibles si s'ha especificat la línia assumpte", + "set_new_avatar": "Establir un nou avatar", + "set_new_mascot": "Establir una nova mascota", + "set_new_profile_background": "Canvia el fons del perfil", + "set_new_profile_banner": "Establir un nou banner del perfil", + "setting_changed": "La configuració és diferent a la predeterminada", + "setting_server_side": "Aquest ajust està lligat al teu perfil i afectarà a totes les sessions i clients", + "settings": "Configuració", + "show_admin_badge": "Mostra l'insígnia \"Administrador\" en el meu perfil", + "show_moderator_badge": "Mostra l'insígnia \"Moderador\" en el meu perfil", + "show_scrollbars": "Mostra les barres de desplaçament de la columna lateral", + "show_yous": "Mostra (Tu)s", + "stop_gifs": "Anima les imatges animades fins que hi passis el cursor per sobre", + "streaming": "Mostra automàticament els nous apunts quan et desplacis a la part superior", + "style": { + "advanced_colors": { + "_tab_label": "Avançat", + "alert": "Fons d'alertes", + "alert_error": "Error", + "alert_neutral": "Neutral", + "alert_warning": "Avís", + "badge": "Fons de insígnies", + "badge_notification": "Notificacions", + "borders": "Bordes", + "buttons": "Botons", + "chat": { + "border": "Vora", + "incoming": "Entrant", + "outgoing": "Eixint" + }, + "disabled": "Deshabilitat", + "faint_text": "Text esvaït", + "highlight": "Elements destacats", + "icons": "Icones", + "inputs": "Camps d'entrada", + "panel_header": "Capçalera del panell", + "poll": "Gràfica de l'enquesta", + "popover": "Suggeriments, menús, superposicions", + "post": "Apunts/Bio d'usuari", + "pressed": "Pressionat", + "selectedMenu": "Element del menú seleccionat", + "selectedPost": "Apunt seleccionat", + "tabs": "Pestanyes", + "toggled": "Commutat", + "top_bar": "Barra superior", + "underlay": "Subratllat", + "wallpaper": "Fons de pantalla" + }, + "common": { + "color": "Color", + "contrast": { + "context": { + "18pt": "per a textos grans (+18pt)", + "text": "per a textos" + }, + "hint": "El ràtio de contrast és {ratio}. {level} {context}", + "level": { + "aa": "Compleix amb la guia del nivell AA (mínim)", + "aaa": "Compleix amb la guia del nivell AA (recomanat)", + "bad": "no compleix amb cap pauta d'accessibilitat" + } + }, + "opacity": "Opacitat" + }, + "common_colors": { + "_tab_label": "Comú", + "foreground_hint": "mira la pestanya \"Avançat\" per a un control més detallat", + "main": "Colors comuns", + "rgbo": "Icones, accents, insígnies" + }, + "fonts": { + "_tab_label": "Fonts", + "components": { + "input": "Camps d'entrada", + "interface": "Interfície", + "post": "Text dels apunts", + "postCode": "Text mono-espai en un apunt (text enriquit)" + }, + "custom": "Personalitza", + "family": "Nom de la font", + "help": "Selecciona la font per als elements de la interfície. Per a \"personalitzat\" has d'escriure el nom de la font exactament com apareix al sistema.", + "size": "Mida (en píxels)", + "weight": "Pes (negreta)" + }, + "preview": { + "button": "Botó", + "checkbox": "He llegit els termes i condicions", + "content": "Contingut", + "error": "Exemple d'error", + "faint_link": "Manual d'ajuda", + "fine_print": "Llegiu el nostre {0} per no aprendre res útil!", + "header": "Previsualització", + "header_faint": "Això està bé", + "input": "Acabo d'aterrar a Los Angeles.", + "link": "un bonic enllaç", + "mono": "contingut", + "text": "Un grapat més {0} i {1}" + }, + "radii": { + "_tab_label": "Rodonesa" + }, + "shadows": { + "_tab_label": "Ombra i il·luminació", + "blur": "Difuminat", + "component": "Component", + "components": { + "avatar": "Avatar de l'usuari (en vista de perfil)", + "avatarStatus": "Avatar de l'usuari (en vista de apunt)", + "button": "Botó", + "buttonHover": "Botó (surant)", + "buttonPressed": "Botó (pressionat)", + "buttonPressedHover": "Botó (pressionat i surant)", + "input": "Camp d'entrada", + "panel": "Panell", + "panelHeader": "Capçalera del panell", + "popup": "Globus i finestres emergents", + "topBar": "Barra superior" + }, + "filter_hint": { + "always_drop_shadow": "Advertència, aquesta ombra sempre utilitza {0} quan el navegador ho suporta.", + "avatar_inset": "Tingues en compte que combinar ombres interiors i no interiors als avatars podria donar resultats inesperats amb avatars transparents.", + "drop_shadow_syntax": "{0} no suporta el paràmetre {1} i la paraula clau {2}.", + "inset_classic": "Les ombres interiors usaran {0}", + "spread_zero": "Ombres amb propagació > 0 apareixeran com si estigueren posades a zero" + }, + "hintV3": "per a les ombres també pots usar la notació {0} per a utilitzar un altre espai de color.", + "inset": "Ombra interior", + "override": "Sobreescriure", + "shadow_id": "Ombra #{value}", + "spread": "Difon" + }, + "switcher": { + "clear_all": "Netejar tot", + "clear_opacity": "Netejar opacitat", + "help": { + "fe_downgraded": "Versió de PleromaFE revertida.", + "fe_upgraded": "El motor de temes de PleromaFE es va actualitzar després de l'actualització de la versió.", + "future_version_imported": "El fitxer importat es va crear per a una versió del front-end més recent.", + "migration_napshot_gone": "Per alguna raó, faltava la instantània, algunes coses podrien veure's diferents del que recordes.", + "migration_snapshot_ok": "Per a estar segurs, s'ha carregat la instantània del tema. Pots intentar carregar les dades del tema.", + "older_version_imported": "El fitxer que has importat va ser creat en una versió del front-end més antiga.", + "snapshot_missing": "No hi havia cap instantània del tema al fitxer, per tant podria veure's diferent del previst originalment.", + "snapshot_present": "S'ha carregat la instantània del tema, de manera que tots els valors estan sobreescrits. En canvi, podeu carregar les dades reals del tema.", + "snapshot_source_mismatch": "Conflicte de versions: probablement el front-end s'ha revertit i actualitzat de nou, si has canviat el tema en una versió anterior, segurament vols utilitzar la versió antiga; d'altra banda utilitza la nova versió.", + "upgraded_from_v2": "PleromaFE s'ha actualitzat, el tema es pot veure una mica diferent de com el recordes.", + "v2_imported": "El fitxer que has importat va ser creat per a un front-end més antic. Intentem maximitzar la compatibilitat, però podrien haver inconsistències." + }, + "keep_as_is": "Mantindre com està", + "keep_color": "Mantindre colors", + "keep_fonts": "Mantindre fonts", + "keep_opacity": "Mantindre opacitat", + "keep_roundness": "Mantindre rodoneses", + "keep_shadows": "Mantindre ombres", + "load_theme": "Carregar tema", + "reset": "Reiniciar", + "save_load_hint": "Les opcions \"Mantindre\" conserven les opcions configurades actualment al seleccionar o carregar temes, també emmagatzema aquestes opcions quan s'exporta un tema. Quan es desactiven totes les caselles de verificació, exportar el tema ho desarà tot.", + "use_snapshot": "Versió antiga", + "use_source": "Nova versió" + } + }, + "subject_input_always_show": "Sempre mostrar el camp del assumpte", + "subject_line_behavior": "Copiar l'assumpte en les respostes", + "subject_line_email": "Com a l'email: \"re: assumpte\"", + "subject_line_mastodon": "Com a mastodon: copiar com és", + "subject_line_noop": "No copiar", + "text": "Text", + "theme": "Tema", + "theme_help": "Utilitza els codis de color hex (#rrggbb) per a personalitzar el color del teu tema.", + "theme_help_v2_1": "També pots anul·lar els colors d'alguns components i la seva opacitat activant la casella. Usa el botó \"Esborrar tot\" per esborrar totes les anul·lacions.", + "theme_help_v2_2": "Les icones per sota d'algunes entrades són indicadors del contrast del fons/text, posiciona el ratolí al damunt per a més informació. Tingues en compte que quan s'utilitzen indicadors de contrast de transparència es mostra el pitjor cas possible.", + "third_column_mode": "Quan hi hagi prou espai, mostra la tercera columna que conté", + "third_column_mode_none": "No mostrar mai la tercera columna", + "third_column_mode_notifications": "Columna de notificacions", + "third_column_mode_postform": "Formulari de publicació principal i navegació", + "token": "Token", + "tooltipRadius": "Globus/alertes", + "tree_advanced": "Permet una navegació més flexible en la vista d'arbre", + "tree_fade_ancestors": "Mostra els avantpassats del apunt actual en text dèbil", + "type_domains_to_mute": "Buscar dominis per a silenciar", + "upload_a_photo": "Pujar una foto", + "useStreamingApi": "Rebre apunts i notificacions en temps real", + "useStreamingApiWarning": "És genial emprar-lo. Si es trenca, refresca, suposo?", + "use_at_icon": "Mostra el símbol {'@'} com a icona enlloc de text", + "use_contain_fit": "No retallar els adjunts en miniatures", + "use_one_click_nsfw": "Obre els adjunts NSFW amb només un clic", + "user_mutes": "Usuaris", + "user_profiles": "Perfils d'usuari", + "user_settings": "Configuració d'usuari", + "valid_until": "Vàlid fins", + "values": { + "false": "no", + "true": "sí" + }, + "version": { + "backend_version": "Versió del \"backend\"", + "frontend_version": "Versió del \"frontend\"", + "title": "Versió" + }, + "virtual_scrolling": "Optimitza el renderitzat de la línia de temps", + "word_filter": "Filtre de paraules", + "wordfilter": "Filtre de paraules" + }, + "status": { + "ancestor_follow": "Veure {numReplies} altres respostes sota aquest apunt | Veure {numReplies} altres respostes sota aquest apunt", + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "Para el reproductor Flash", + "bookmark": "Marcador", + "collapse_attachments": "Replega adjunts", + "copy_link": "Copia l'enllaç al apunt", + "delete": "Esborra l'apunt", + "delete_confirm": "Segur que vols esborrar aquest apunt?", + "expand": "Expandeix", + "external_source": "Font externa", + "favorites": "Favorits", + "hide_attachment": "Amaga l'adjunt", + "hide_content": "Amaga el contingut", + "hide_full_subject": "Amaga tot l'assumpte", + "many_attachments": "L'apunt té {number} adjunt | L'apunt té {number} adjunts", + "mentions": "Mencions", + "move_down": "Mou l'adjunt a la dreta", + "move_up": "Mou l'adjunt a l'esquerra", + "mute_conversation": "Silencia la conversa", + "nsfw": "No segur per a entorns laborals", + "open_gallery": "Obre la galeria", + "pin": "Destaca al perfil", + "pinned": "Destacat", + "plus_more": "+{number} més", + "remove_attachment": "Elimina l'adjunt", + "repeats": "Repeticions", + "replies_list": "Respostes:", + "replies_list_with_others": "Respostes (+{numReplies} altre): | Respostes (+{numReplies} altres):", + "reply_to": "Respon a", + "show_all_attachments": "Mostra tots els adjunts", + "show_all_conversation": "Mostra la conversa sencera ({numStatus} altres apunts) | Mostra la conversa sencera ({numStatus} altres apunts)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "Descripció prèvia (obre l'adjunt per a descripció sencera)", + "show_attachment_in_modal": "Mostra en el modal de Mèdia", + "show_content": "Mostra el contingut", + "show_full_subject": "Mostra tot l'assumpte", + "show_only_conversation_under_this": "Només mostra respostes a aquest apunt", + "status_deleted": "Aquest apunt ha estat esborrat", + "status_unavailable": "Apunt no disponible", + "thread_follow": "Mira la part restant del fil ({numStatus} apunts en total) | Mira la part restant del fil ({numStatus} apunts en total)", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "Amaga aquest fil", + "thread_muted": "Fil silenciat", + "thread_muted_and_words": ", té les paraules:", + "thread_show": "Mostra aquest fil", + "thread_show_full": "Mostra-ho tot sota aquest fil ({numStatus} apunts en total, màx. profunditat {depth}) | Mostra-ho tot sota aquest fil ({numStatus} apunts en total, màx. profunditat {depth})", + "thread_show_full_with_icon": "{icon} {text}", + "unbookmark": "Desmarca", + "unmute_conversation": "Deixa de silenciar la conversa", + "unpin": "Deixa de destacar al perfil", + "you": "(Tu)" + }, + "time": { + "in_future": "en {0}", + "in_past": "fa {0}", + "now": "ara mateix", + "now_short": "ara mateix", + "unit": { + "days": "{0} dia | {0} dies", + "days_short": "{0}d", + "hours": "{0} hora | {0} hores", + "hours_short": "{0}h", + "minutes": "{0} minuts | {0} minuts", + "minutes_short": "{0}min", + "months": "{0} mes | {0} mesos", + "months_short": "{0}mes", + "seconds": "{0} segon | {0} segons", + "seconds_short": "{0}s", + "weeks": "{0} setmana | {0} setmanes", + "weeks_short": "{0}setm.", + "years": "{0} any | {0} anys", + "years_short": "{0}anys" + } + }, + "timeline": { + "collapse": "Replega", + "conversation": "Conversa", + "error": "Error carregant la línia de temps: {0}", + "load_older": "Carrega apunts anteriors", + "no_more_statuses": "No hi ha més apunts", + "no_retweet_hint": "L'apunt és només per a seguidors o és \"directe\" i no es pot repetir o citar", + "no_statuses": "No hi ha apunts", + "reload": "Recarrega", + "repeated": "ha repetit", + "show_new": "Mostra els nous", + "socket_broke": "Connexió a temps real perduda: codi CloseEvent {0}", + "socket_reconnected": "Connexió a temps real establerta", + "up_to_date": "Actualitzat" + }, + "tool_tip": { + "accept_follow_request": "Accepta la sol·licitud de seguiment", + "add_reaction": "Reacciona", + "bookmark": "Marcador", + "favorite": "Afavoreix", + "media_upload": "Pujar multimèdia", + "quote": "Cita", + "reject_follow_request": "Rebutja la sol·licitud de seguiment", + "repeat": "Repeteix", + "reply": "Respon", + "user_settings": "Configuració d'usuari" + }, + "upload": { + "error": { + "base": "La pujada ha fallat.", + "default": "Prova de nou d'aquí una estona", + "file_too_big": "Fitxer massa gran [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "La pujada ha fallat: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Activa el compte", + "deactivate_account": "Desactiva el compte", + "delete_account": "Esborra el compte", + "delete_user": "Esborra l'usuari", + "delete_user_data_and_deactivate_confirmation": "Això esborrarà permanentment les dades d'aquest compte i el desactivarà. Estàs absolutament segur?", + "disable_any_subscription": "Deshabilita completament seguir algú", + "disable_remote_subscription": "Deshabilita seguir algú des d'una instància remota", + "force_nsfw": "Marca tots els apunts amb \"No segur per a entorns laborals\"", + "force_unlisted": "Força que els apunts no estiguin llistats", + "grant_admin": "Concedir permisos d'Administrador", + "grant_moderator": "Concedir permisos de Moderador", + "moderation": "Moderació", + "quarantine": "Deshabilita la federació dels apunts dels usuaris", + "revoke_admin": "Revoca l'Admin", + "revoke_moderator": "Revoca Moderador", + "sandbox": "Força que els apunts siguin només per a seguidors", + "strip_media": "Esborra els Mèdia dels apunts" + }, + "approve": "Aprova", + "block": "Bloqueja", + "block_progress": "Bloquejant…", + "blocked": "Bloquejat!", + "bot": "Bot", + "deactivated": "Desactivat", + "deny": "Denega", + "domain_muted": "Desbloqueja el domini", + "edit_profile": "Edita el perfil", + "favorites": "Favorits", + "follow": "Segueix", + "follow_cancel": "Cancel·la la sol·licitud", + "follow_progress": "Sol·licitant…", + "follow_sent": "Petició enviada!", + "follow_unfollow": "Deixa de seguir", + "followees": "Seguint", + "followers": "Seguidors", + "following": "Seguint!", + "follows_you": "Et segueix!", + "hidden": "Amagat", + "hide_repeats": "Amaga les repeticions", + "highlight": { + "disabled": "Sense ressaltat", + "side": "Ratlla lateral", + "solid": "Fons sòlid", + "striped": "Fons a ratlles" + }, + "its_you": "Ets tu!", + "media": "Mèdia", + "mention": "Menció", + "message": "Missatge", + "mute": "Silencia", + "mute_domain": "Bloqueja el domini", + "mute_progress": "Silenciant…", + "muted": "Silenciat", + "note": "Nota privada", + "per_day": "per dia", + "remote_follow": "Seguiment remot", + "report": "Informa", + "show_repeats": "Mostra les repeticions", + "statuses": "Apunts", + "subscribe": "Subscriu-te", + "unblock": "Desbloqueja", + "unblock_progress": "Desbloquejant…", + "unmute": "Deixa de silenciar", + "unmute_progress": "Deixant de silenciar…", + "unsubscribe": "Anul·la la subscripció" + }, + "user_profile": { + "profile_does_not_exist": "Disculpes, aquest perfil no existeix.", + "profile_loading_error": "Disculpes, hi ha hagut un error carregant aquest perfil.", + "timeline_title": "Línia de temps del usuari" + }, + "user_reporting": { + "add_comment_description": "L'informe serà enviat als moderadors de l'instància. Pots donar una explicació de per què estàs reportant aquest compte:", + "additional_comments": "Comentaris addicionals", + "forward_description": "Aquest compte és d'un altre servidor. Vols enviar-hi una còpia del informe?", + "forward_to": "Reenvia a {0}", + "generic_error": "Hi ha hagut un error mentre s'estava processant la teva sol·licitud.", + "submit": "Envia", + "title": "Reportant {0}" + }, + "who_to_follow": { + "more": "Més", + "who_to_follow": "A qui seguir" } - }, - "timeline": { - "collapse": "Replega", - "conversation": "Conversa", - "error_fetching": "S'ha produït un error en carregar les entrades", - "load_older": "Carrega entrades anteriors", - "no_retweet_hint": "L'entrada és només per a seguidores o és \"directa\", i per tant no es pot republicar", - "repeated": "republicat", - "show_new": "Mostra els nous", - "up_to_date": "Actualitzat", - "socket_reconnected": "Connexió a temps real establerta", - "socket_broke": "Connexió a temps real perduda: codi CloseEvent {0}", - "error": "Error de càrrega de la línia de temps: {0}", - "no_statuses": "No hi ha entrades", - "reload": "Recarrega", - "no_more_statuses": "No hi ha més entrades" - }, - "user_card": { - "approve": "Aprova", - "block": "Bloqueja", - "blocked": "Bloquejat!", - "deny": "Denega", - "follow": "Segueix", - "followees": "Segueixo", - "followers": "Seguidors/es", - "following": "Seguint!", - "follows_you": "Et segueix!", - "mute": "Silencia", - "muted": "Silenciat", - "per_day": "per dia", - "remote_follow": "Seguiment remot", - "statuses": "Estats", - "unblock_progress": "Desbloquejant…", - "unmute": "Deixa de silenciar", - "follow_progress": "Sol·licitant…", - "admin_menu": { - "force_nsfw": "Marca totes les entrades amb \"No segur per a entorns laborals\"", - "strip_media": "Esborra els audiovisuals de les entrades", - "disable_any_subscription": "Deshabilita completament seguir algú", - "quarantine": "Deshabilita la federació a les entrades de les usuàries", - "moderation": "Moderació", - "revoke_admin": "Revoca l'Admin", - "activate_account": "Activa el compte", - "deactivate_account": "Desactiva el compte", - "revoke_moderator": "Revoca Moderació", - "delete_account": "Esborra el compte", - "disable_remote_subscription": "Deshabilita seguir algú des d'una instància remota", - "delete_user": "Esborra la usuària", - "grant_admin": "Concedir permisos d'Administració", - "grant_moderator": "Concedir permisos de Moderació", - "force_unlisted": "Força que les publicacions no estiguin llistades", - "sandbox": "Força que els missatges siguin només seguidors" - }, - "edit_profile": "Edita el perfil", - "hidden": "Amagat", - "follow_sent": "Petició enviada!", - "unmute_progress": "Deixant de silenciar…", - "bot": "Bot", - "mute_progress": "Silenciant…", - "favorites": "Favorits", - "mention": "Menció", - "follow_unfollow": "Deixa de seguir", - "subscribe": "Subscriu-te", - "show_repeats": "Mostra les repeticions", - "report": "Report", - "its_you": "Ets tu!", - "unblock": "Desbloqueja", - "block_progress": "Bloquejant…", - "message": "Missatge", - "unsubscribe": "Anul·la la subscripció", - "hide_repeats": "Amaga les repeticions", - "highlight": { - "disabled": "Sense ressaltat", - "solid": "Fons sòlid", - "striped": "Fons a ratlles", - "side": "Ratlla lateral" - }, - "media": "Media" - }, - "user_profile": { - "timeline_title": "Flux personal", - "profile_loading_error": "Disculpes, hi ha hagut un error carregant aquest perfil.", - "profile_does_not_exist": "Disculpes, aquest perfil no existeix." - }, - "who_to_follow": { - "more": "Més", - "who_to_follow": "A qui seguir" - }, - "selectable_list": { - "select_all": "Selecciona-ho tot" - }, - "remote_user_resolver": { - "error": "No trobat.", - "searching_for": "Cercant per", - "remote_user_resolver": "Resolució d'usuari remot" - }, - "interactions": { - "load_older": "Carrega antigues interaccions", - "favs_repeats": "Repeticions i favorits", - "follows": "Nous seguidors", - "moves": "Migració d'usuaris" - }, - "emoji": { - "stickers": "Adhesius", - "keep_open": "Mantindre el selector obert", - "custom": "Emojis personalitzats", - "unicode": "Emojis unicode", - "load_all_hint": "Carregat el primer emoji {saneAmount}, carregar tots els emoji pot causar problemes de rendiment.", - "emoji": "Emoji", - "search_emoji": "Buscar un emoji", - "add_emoji": "Inserir un emoji", - "load_all": "Carregant tots els {emojiAmount} emoji" - }, - "polls": { - "expired": "L'enquesta va acabar fa {0}", - "expires_in": "L'enquesta acaba en {0}", - "multiple_choices": "Múltiples opcions", - "single_choice": "Una sola opció", - "type": "Tipus d'enquesta", - "vote": "Vota", - "votes": "vots", - "option": "Opció", - "add_option": "Afegeix opció", - "add_poll": "Afegeix enquesta", - "expiry": "Temps de vida de l'enquesta", - "people_voted_count": "{count} persona ha votat | {count} persones han votat", - "votes_count": "{count} vot | {count} vots", - "not_enough_options": "L'enquesta no té suficients opcions úniques" - }, - "media_modal": { - "next": "Següent", - "previous": "Anterior" - }, - "importer": { - "error": "Ha succeït un error mentre s'importava aquest arxiu.", - "success": "Importat amb èxit.", - "submit": "Enviar" - }, - "image_cropper": { - "cancel": "Cancel·la", - "save_without_cropping": "Desa sense retallar", - "save": "Desa", - "crop_picture": "Retalla la imatge" - }, - "exporter": { - "processing": "Processant, aviat se't preguntarà per descarregar el teu arxiu", - "export": "Exporta" - }, - "domain_mute_card": { - "mute_progress": "Silenciant…", - "mute": "Silencia", - "unmute": "Deixar de silenciar", - "unmute_progress": "Deixant de silenciar…" - }, - "about": { - "staff": "Equip responsable", - "mrf": { - "simple": { - "quarantine_desc": "Aquesta instància només enviarà entrades públiques a les següents instàncies:", - "quarantine": "Quarantena", - "reject_desc": "Aquesta instància no acceptarà missatges de les següents instàncies:", - "reject": "Rebutja", - "accept_desc": "Aquesta instància només accepta missatges de les següents instàncies:", - "accept": "Accepta", - "simple_policies": "Polítiques específiques de la instància", - "ftl_removal_desc": "Aquesta instància elimina les següents instàncies del flux de la xarxa coneguda:", - "ftl_removal": "Eliminació de la línia de temps coneguda", - "media_nsfw_desc": "Aquesta instància obliga el contingut multimèdia a establir-se com a sensible dins de les publicacions en les següents instàncies:", - "media_removal": "Eliminació de la multimèdia", - "media_removal_desc": "Aquesta instància elimina els suports multimèdia de les publicacions en les següents instàncies:", - "media_nsfw": "Forçar contingut multimèdia com a sensible" - }, - "mrf_policies_desc": "Les polítiques MRF controlen el comportament federat de la instància. Les següents polítiques estan habilitades:", - "mrf_policies": "Polítiques MRF habilitades", - "keyword": { - "replace": "Reemplaça", - "reject": "Rebutja", - "keyword_policies": "Filtratge per paraules clau", - "is_replaced_by": "→", - "ftl_removal": "Eliminació de la línia de temps federada" - }, - "federation": "Federació" - } - }, - "shoutbox": { - "title": "Gàbia de Grills" - }, - "status": { - "delete": "Esborra l'entrada", - "delete_confirm": "Segur que vols esborrar aquesta entrada?", - "thread_muted_and_words": ", té les paraules:", - "show_full_subject": "Mostra tot el tema", - "show_content": "Mostra el contingut", - "repeats": "Repeticions", - "bookmark": "Marcadors", - "status_unavailable": "Entrada no disponible", - "expand": "Expandeix", - "copy_link": "Copia l'enllaç a l'entrada", - "hide_full_subject": "Amaga tot el tema", - "favorites": "Favorits", - "replies_list": "Contestacions:", - "mute_conversation": "Silencia la conversa", - "thread_muted": "Fil silenciat", - "hide_content": "Amaga el contingut", - "status_deleted": "S'ha esborrat aquesta entrada", - "nsfw": "No segur per a entorns laborals", - "unbookmark": "Desmarca", - "external_source": "Font externa", - "unpin": "Deixa de destacar al perfil", - "pinned": "Destacat", - "reply_to": "Contesta a", - "pin": "Destaca al perfil", - "unmute_conversation": "Deixa de silenciar la conversa", - "mentions": "Mencions", - "you": "(Tu)", - "plus_more": "+{number} més" - }, - "user_reporting": { - "additional_comments": "Comentaris addicionals", - "forward_description": "Aquest compte és d'un altre servidor. Vols enviar una còpia del report allà també?", - "forward_to": "Endavant a {0}", - "generic_error": "Hi ha hagut un error mentre s'estava processant la teva sol·licitud.", - "title": "Reportant {0}", - "add_comment_description": "Aquest report serà enviat a la moderació a la instància. Pots donar una explicació de per què estàs reportant aquest compte:", - "submit": "Envia" - }, - "tool_tip": { - "add_reaction": "Afegeix una Reacció", - "accept_follow_request": "Accepta la sol·licitud de seguir", - "repeat": "Repeteix", - "reply": "Respon", - "favorite": "Favorit", - "user_settings": "Configuració d'usuària", - "reject_follow_request": "Rebutja la sol·licitud de seguir", - "bookmark": "Marcador", - "media_upload": "Pujar multimèdia" - }, - "search": { - "no_results": "No hi ha resultats", - "people": "Persones", - "hashtags": "Etiquetes", - "people_talking": "{count} persones parlant", - "person_talking": "{count} persones parlant" - }, - "upload": { - "file_size_units": { - "B": "B", - "KiB": "KiB", - "GiB": "GiB", - "TiB": "TiB", - "MiB": "MiB" - }, - "error": { - "base": "La pujada ha fallat.", - "file_too_big": "Fitxer massa gran [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Prova de nou d'aquí una estona", - "message": "La pujada ha fallat: {0}" - } - }, - "errors": { - "storage_unavailable": "Pleroma no ha pogut accedir a l'emmagatzematge del navegador. El teu inici de sessió o configuració no es desaran i et pots trobar algun altre problema. Prova a habilitar les galetes." - }, - "password_reset": { - "password_reset": "Reinicia la contrasenya", - "forgot_password": "Has oblidat la contrasenya?", - "too_many_requests": "Has arribat al límit d'intents. Prova de nou d'aquí una estona.", - "password_reset_required_but_mailer_is_disabled": "Has de reiniciar la teva contrasenya però el reinici de la contrasenya està deshabilitat. Si us plau, contacta l'administració de la teva instància.", - "placeholder": "El teu correu electrònic o nom d'usuària", - "instruction": "Introdueix la teva adreça de correu electrònic o nom d'usuària. T'enviarem un enllaç per reiniciar la teva contrasenya.", - "return_home": "Torna a la pàgina principal", - "password_reset_required": "Has de reiniciar la teva contrasenya per iniciar la sessió.", - "password_reset_disabled": "El reinici de la contrasenya està deshabilitat. Si us plau, contacta l'administració de la teva instància.", - "check_email": "Comprova que has rebut al correu electrònic un enllaç per reiniciar la teva contrasenya." - }, - "file_type": { - "image": "Imatge", - "file": "Fitxer", - "video": "Vídeo", - "audio": "Àudio" - }, - "chats": { - "chats": "Xats", - "new": "Nou xat", - "delete_confirm": "Realment vols esborrar aquest missatge?", - "error_sending_message": "Alguna cosa ha fallat quan s'enviava el missatge.", - "more": "Més", - "delete": "Esborra", - "empty_message_error": "No es pot publicar un missatge buit", - "you": "Tu:", - "message_user": "Missatge {nickname}", - "error_loading_chat": "Alguna cosa ha fallat quan es carregava el xat.", - "empty_chat_list_placeholder": "Encara no tens cap xat. Crea un nou xat!" - }, - "display_date": { - "today": "Avui" - } } diff --git a/src/i18n/cs.json b/src/i18n/cs.json index ee20efdf..acbdcfb3 100644 --- a/src/i18n/cs.json +++ b/src/i18n/cs.json @@ -1,461 +1,436 @@ { - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Mediální proxy", - "scope_options": "Možnosti rozsahů", - "text_limit": "Textový limit", - "title": "Vlastnosti", - "who_to_follow": "Koho sledovat" - }, - "finder": { - "error_fetching_user": "Chyba při načítání uživatele", - "find_user": "Najít uživatele" - }, - "general": { - "apply": "Použít", - "submit": "Odeslat", - "more": "Více", - "generic_error": "Vyskytla se chyba", - "optional": "volitelné" - }, - "image_cropper": { - "crop_picture": "Oříznout obrázek", - "save": "Uložit", - "cancel": "Zrušit" - }, - "login": { - "login": "Přihlásit", - "description": "Přihlásit pomocí OAuth", - "logout": "Odhlásit", - "password": "Heslo", - "placeholder": "např. lain", - "register": "Registrovat", - "username": "Uživatelské jméno", - "hint": "Chcete-li se přidat do diskuze, přihlaste se" - }, - "media_modal": { - "previous": "Předchozí", - "next": "Další" - }, - "nav": { - "about": "O instanci", - "back": "Zpět", - "chat": "Místní chat", - "friend_requests": "Požadavky o sledování", - "mentions": "Zmínky", - "dms": "Přímé zprávy", - "public_tl": "Veřejná časová osa", - "timeline": "Časová osa", - "twkn": "Celá známá síť", - "user_search": "Hledání uživatelů", - "who_to_follow": "Koho sledovat", - "preferences": "Předvolby" - }, - "notifications": { - "broken_favorite": "Neznámý příspěvek, hledám jej…", - "favorited_you": "si oblíbil/a váš příspěvek", - "followed_you": "vás nyní sleduje", - "load_older": "Načíst starší oznámení", - "notifications": "Oznámení", - "read": "Číst!", - "repeated_you": "zopakoval/a váš příspěvek", - "no_more_notifications": "Žádná další oznámení" - }, - "post_status": { - "new_status": "Napsat nový příspěvek", - "account_not_locked_warning": "Váš účet není {0}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.", - "account_not_locked_warning_link": "uzamčen", - "attachments_sensitive": "Označovat přílohy jako citlivé", - "content_type": { - "text/plain": "Prostý text", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" + "features_panel": { + "media_proxy": "Mediální proxy", + "scope_options": "Možnosti rozsahů", + "text_limit": "Textový limit", + "title": "Vlastnosti", + "who_to_follow": "Koho sledovat" }, - "content_warning": "Předmět (volitelný)", - "default": "Právě jsem přistál v L.A.", - "direct_warning": "Tento příspěvek uvidí pouze všichni zmínění uživatelé.", - "posting": "Přispívání", - "scope": { - "direct": "Přímý - Poslat pouze zmíněným uživatelům", - "private": "Pouze pro sledující - Poslat pouze sledujícím", - "public": "Veřejný - Poslat na veřejné časové osy", - "unlisted": "Neuvedený - Neposlat na veřejné časové osy" - } - }, - "registration": { - "bio": "O vás", - "email": "E-mail", - "fullname": "Zobrazované jméno", - "password_confirm": "Potvrzení hesla", - "registration": "Registrace", - "token": "Token pozvánky", - "captcha": "CAPTCHA", - "new_captcha": "Kliknutím na obrázek získáte novou CAPTCHA", - "username_placeholder": "např. lain", - "fullname_placeholder": "např. Lain Iwakura", - "bio_placeholder": "např.\nNazdar, jsem Lain\nJsem anime dívka žijící v příměstském Japonsku. Možná mě znáte z Wired.", - "validations": { - "username_required": "nemůže být prázdné", - "fullname_required": "nemůže být prázdné", - "email_required": "nemůže být prázdný", - "password_required": "nemůže být prázdné", - "password_confirmation_required": "nemůže být prázdné", - "password_confirmation_match": "musí být stejné jako heslo" - } - }, - "settings": { - "app_name": "Název aplikace", - "attachmentRadius": "Přílohy", - "attachments": "Přílohy", - "avatar": "Avatar", - "avatarAltRadius": "Avatary (oznámení)", - "avatarRadius": "Avatary", - "background": "Pozadí", - "bio": "O vás", - "blocks_tab": "Blokování", - "btnRadius": "Tlačítka", - "cBlue": "Modrá (Odpovědět, sledovat)", - "cGreen": "Zelená (Zopakovat)", - "cOrange": "Oranžová (Oblíbit)", - "cRed": "Červená (Zrušit)", - "change_password": "Změnit heslo", - "change_password_error": "Při změně vašeho hesla se vyskytla chyba.", - "changed_password": "Heslo bylo úspěšně změněno!", - "collapse_subject": "Zabalit příspěvky s předměty", - "composing": "Komponování", - "confirm_new_password": "Potvrďte nové heslo", - "current_avatar": "Váš současný avatar", - "current_password": "Současné heslo", - "current_profile_banner": "Váš současný profilový banner", - "data_import_export_tab": "Import/export dat", - "default_vis": "Výchozí rozsah viditelnosti", - "delete_account": "Smazat účet", - "delete_account_description": "Trvale smaže váš účet a všechny vaše příspěvky.", - "delete_account_error": "Při mazání vašeho účtu nastala chyba. Pokud tato chyba bude trvat, kontaktujte prosím admministrátora vaší instance.", - "delete_account_instructions": "Pro potvrzení smazání účtu napište své heslo do pole níže.", - "avatar_size_instruction": "Doporučená minimální velikost pro avatarové obrázky je 150x150 pixelů.", - "export_theme": "Uložit přednastavení", - "filtering": "Filtrování", - "filtering_explanation": "Všechny příspěvky obsahující tato slova budou skryty. Napište jedno slovo na každý řádek", - "follow_export": "Export sledovaných", - "follow_export_button": "Exportovat vaše sledované do souboru CSV", - "follow_export_processing": "Zpracovávám, brzy si budete moci stáhnout váš soubor", - "follow_import": "Import sledovaných", - "follow_import_error": "Chyba při importování sledovaných", - "follows_imported": "Sledovaní importováni! Jejich zpracování bude chvilku trvat.", - "foreground": "Popředí", - "general": "Obecné", - "hide_attachments_in_convo": "Skrývat přílohy v konverzacích", - "hide_attachments_in_tl": "Skrývat přílohy v časové ose", - "max_thumbnails": "Maximální počet miniatur na příspěvek", - "hide_isp": "Skrýt panel specifický pro instanci", - "preload_images": "Přednačítat obrázky", - "use_one_click_nsfw": "Otevírat citlivé přílohy pouze jedním kliknutím", - "hide_post_stats": "Skrývat statistiky příspěvků (např. počet oblíbení)", - "hide_user_stats": "Skrývat statistiky uživatelů (např. počet sledujících)", - "hide_filtered_statuses": "Skrývat filtrované příspěvky", - "import_followers_from_a_csv_file": "Importovat sledované ze souboru CSV", - "import_theme": "Načíst přednastavení", - "inputRadius": "Vstupní pole", - "checkboxRadius": "Zaškrtávací pole", - "instance_default": "(výchozí: {value})", - "instance_default_simple": "(výchozí)", - "interface": "Rozhraní", - "interfaceLanguage": "Jazyk rozhraní", - "invalid_theme_imported": "Zvolený soubor není podporovaný motiv Pleroma. Nebyly provedeny žádné změny s vaším motivem.", - "limited_availability": "Nedostupné ve vašem prohlížeči", - "links": "Odkazy", - "lock_account_description": "Omezit váš účet pouze na schválené sledující", - "loop_video": "Opakovat videa", - "loop_video_silent_only": "Opakovat pouze videa beze zvuku (t.j. „GIFy“ na Mastodonu)", - "mutes_tab": "Ignorování", - "play_videos_in_modal": "Přehrávat videa přímo v prohlížeči médií", - "use_contain_fit": "Neořezávat přílohu v miniaturách", - "name": "Jméno", - "name_bio": "Jméno a popis", - "new_password": "Nové heslo", - "notification_visibility": "Typy oznámení k zobrazení", - "notification_visibility_follows": "Sledující", - "notification_visibility_likes": "Oblíbení", - "notification_visibility_mentions": "Zmínky", - "notification_visibility_repeats": "Zopakování", - "no_rich_text_description": "Odstranit ze všech příspěvků formátování textu", - "no_blocks": "Žádná blokování", - "no_mutes": "Žádná ignorování", - "hide_follows_description": "Nezobrazovat, koho sleduji", - "hide_followers_description": "Nezobrazovat, kdo mě sleduje", - "show_admin_badge": "Zobrazovat v mém profilu odznak administrátora", - "show_moderator_badge": "Zobrazovat v mém profilu odznak moderátora", - "nsfw_clickthrough": "Povolit prokliknutelné skrývání citlivých příloh", - "oauth_tokens": "Tokeny OAuth", - "token": "Token", - "refresh_token": "Obnovit token", - "valid_until": "Platný do", - "revoke_token": "Odvolat", - "panelRadius": "Panely", - "pause_on_unfocused": "Pozastavit streamování, pokud není záložka prohlížeče v soustředění", - "presets": "Přednastavení", - "profile_background": "Profilové pozadí", - "profile_banner": "Profilový banner", - "profile_tab": "Profil", - "radii_help": "Nastavit zakulacení rohů rozhraní (v pixelech)", - "replies_in_timeline": "Odpovědi v časové ose", - "reply_visibility_all": "Zobrazit všechny odpovědi", - "reply_visibility_following": "Zobrazit pouze odpovědi směřované na mě nebo uživatele, které sleduji", - "reply_visibility_self": "Zobrazit pouze odpovědi směřované na mě", - "saving_err": "Chyba při ukládání nastavení", - "saving_ok": "Nastavení uložena", - "security_tab": "Bezpečnost", - "scope_copy": "Kopírovat rozsah při odpovídání (přímé zprávy jsou vždy kopírovány)", - "set_new_avatar": "Nastavit nový avatar", - "set_new_profile_background": "Nastavit nové profilové pozadí", - "set_new_profile_banner": "Nastavit nový profilový banner", - "settings": "Nastavení", - "subject_input_always_show": "Vždy zobrazit pole pro předmět", - "subject_line_behavior": "Kopírovat předmět při odpovídání", - "subject_line_email": "Jako u e-mailu: „re: předmět“", - "subject_line_mastodon": "Jako u Mastodonu: zkopírovat tak, jak je", - "subject_line_noop": "Nekopírovat", - "post_status_content_type": "Publikovat typ obsahu příspěvku", - "stop_gifs": "Přehrávat GIFy při přejetí myši", - "streaming": "Povolit automatické streamování nových příspěvků při rolování nahoru", - "text": "Text", - "theme": "Motiv", - "theme_help": "Použijte hexadecimální barevné kódy (#rrggbb) pro přizpůsobení vašeho barevného motivu.", - "theme_help_v2_1": "Zaškrtnutím pole můžete také přepsat barvy a průhlednost některých komponentů, pro smazání všech přednastavení použijte tlačítko „Smazat vše“.", - "theme_help_v2_2": "Ikony pod některými položkami jsou indikátory kontrastu pozadí/textu, pro detailní informace nad nimi přejeďte myší. Prosím berte na vědomí, že při používání kontrastu průhlednosti ukazují indikátory nejhorší možný případ.", - "tooltipRadius": "Popisky/upozornění", - "upload_a_photo": "Nahrát fotku", - "user_settings": "Uživatelská nastavení", - "values": { - "false": "ne", - "true": "ano" + "finder": { + "error_fetching_user": "Chyba při načítání uživatele", + "find_user": "Najít uživatele" }, - "notifications": "Oznámení", - "enable_web_push_notifications": "Povolit webová push oznámení", - "style": { - "switcher": { - "keep_color": "Ponechat barvy", - "keep_shadows": "Ponechat stíny", - "keep_opacity": "Ponechat průhlednost", - "keep_roundness": "Ponechat kulatost", - "keep_fonts": "Keep fonts", - "save_load_hint": "Možnosti „Ponechat“ dočasně ponechávají aktuálně nastavené možností při volení či nahrávání motivů, také tyto možnosti ukládají při exportování motivu. Pokud není žádné pole zaškrtnuto, uloží export motivu všechno.", - "reset": "Resetovat", - "clear_all": "Vymazat vše", - "clear_opacity": "Vymazat průhlednost" - }, - "common": { - "color": "Barva", - "opacity": "Průhlednost", - "contrast": { - "hint": "Poměr kontrastu je {ratio}, {level} {context}", - "level": { - "aa": "splňuje směrnici úrovně AA (minimální)", - "aaa": "splňuje směrnici úrovně AAA (doporučováno)", - "bad": "nesplňuje žádné směrnice přístupnosti" - }, - "context": { - "18pt": "pro velký (18+ bodů) text", - "text": "pro text" - } - } - }, - "common_colors": { - "_tab_label": "Obvyklé", - "main": "Obvyklé barvy", - "foreground_hint": "Pro detailnější kontrolu viz záložka „Pokročilé“", - "rgbo": "Ikony, odstíny, odznaky" - }, - "advanced_colors": { - "_tab_label": "Pokročilé", - "alert": "Pozadí upozornění", - "alert_error": "Chyba", - "badge": "Pozadí odznaků", - "badge_notification": "Oznámení", - "panel_header": "Záhlaví panelu", - "top_bar": "Vrchní pruh", - "borders": "Okraje", - "buttons": "Tlačítka", - "inputs": "Vstupní pole", - "faint_text": "Vybledlý text" - }, - "radii": { - "_tab_label": "Kulatost" - }, - "shadows": { - "_tab_label": "Stín a osvětlení", - "component": "Komponent", - "override": "Přepsat", - "shadow_id": "Stín #{value}", - "blur": "Rozmazání", - "spread": "Rozsah", - "inset": "Vsazení", - "hint": "Pro stíny můžete také použít --variable jako hodnotu barvy pro použití proměnných CSS3. Prosím berte na vědomí, že nastavení průhlednosti v tomto případě nebude fungovat.", - "filter_hint": { - "always_drop_shadow": "Varování, tento stín vždy používá {0}, když to prohlížeč podporuje.", - "drop_shadow_syntax": "{0} nepodporuje parametr {1} a klíčové slovo {2}.", - "avatar_inset": "Prosím berte na vědomí, že kombinování vsazených i nevsazených stínů u avatarů může u průhledných avatarů dát neočekávané výsledky.", - "spread_zero": "Stíny s rozsahem > 0 se zobrazí, jako kdyby byl rozsah nastaven na nulu", - "inset_classic": "Vsazené stíny budou používat {0}" + "general": { + "apply": "Použít", + "generic_error": "Vyskytla se chyba", + "more": "Více", + "optional": "volitelné", + "submit": "Odeslat" + }, + "image_cropper": { + "cancel": "Zrušit", + "crop_picture": "Oříznout obrázek", + "save": "Uložit" + }, + "login": { + "description": "Přihlásit pomocí OAuth", + "hint": "Chcete-li se přidat do diskuze, přihlaste se", + "login": "Přihlásit", + "logout": "Odhlásit", + "password": "Heslo", + "placeholder": "např. lain", + "register": "Registrovat", + "username": "Uživatelské jméno" + }, + "media_modal": { + "next": "Další", + "previous": "Předchozí" + }, + "nav": { + "about": "O instanci", + "back": "Zpět", + "dms": "Přímé zprávy", + "friend_requests": "Požadavky o sledování", + "mentions": "Zmínky", + "preferences": "Předvolby", + "public_tl": "Veřejná časová osa", + "timeline": "Časová osa", + "twkn": "Celá známá síť", + "user_search": "Hledání uživatelů", + "who_to_follow": "Koho sledovat" + }, + "notifications": { + "broken_favorite": "Neznámý příspěvek, hledám jej…", + "favorited_you": "si oblíbil/a váš příspěvek", + "followed_you": "vás nyní sleduje", + "load_older": "Načíst starší oznámení", + "no_more_notifications": "Žádná další oznámení", + "notifications": "Oznámení", + "read": "Číst!", + "repeated_you": "zopakoval/a váš příspěvek" + }, + "post_status": { + "account_not_locked_warning": "Váš účet není {0}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.", + "account_not_locked_warning_link": "uzamčen", + "attachments_sensitive": "Označovat přílohy jako citlivé", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Prostý text" }, - "components": { - "panel": "Panel", - "panelHeader": "Záhlaví panelu", - "topBar": "Vrchní pruh", - "avatar": "Avatar uživatele (v zobrazení profilu)", - "avatarStatus": "Avatar uživatele (v zobrazení příspěvku)", - "popup": "Vyskakovací okna a popisky", - "button": "Tlačítko", - "buttonHover": "Tlačítko (přejetí myši)", - "buttonPressed": "Tlačítko (stisknuto)", - "buttonPressedHover": "Button (stisknuto+přejetí myši)", - "input": "Vstupní pole" + "content_warning": "Předmět (volitelný)", + "default": "Právě jsem přistál v L.A.", + "new_status": "Napsat nový příspěvek", + "posting": "Přispívání", + "scope": { + "direct": "Přímý - Poslat pouze zmíněným uživatelům", + "private": "Pouze pro sledující - Poslat pouze sledujícím", + "public": "Veřejný - Poslat na veřejné časové osy", + "unlisted": "Neuvedený - Neposlat na veřejné časové osy" } - }, - "fonts": { - "_tab_label": "Písma", - "help": "Zvolte písmo, které bude použito pro prvky rozhraní. U možnosti „vlastní“ musíte zadat přesný název písma tak, jak se zobrazuje v systému.", - "components": { - "interface": "Rozhraní", - "input": "Vstupní pole", - "post": "Text příspěvků", - "postCode": "Neproporcionální text v příspěvku (formátovaný text)" - }, - "family": "Název písma", - "size": "Velikost (v pixelech)", - "weight": "Tloušťka", - "custom": "Vlastní" - }, - "preview": { - "header": "Náhled", - "content": "Obsah", - "error": "Příklad chyby", - "button": "Tlačítko", - "text": "Spousta dalšího {0} a {1}", - "mono": "obsahu", - "input": "Právě jsem přistál v L.A.", - "faint_link": "pomocný manuál", - "fine_print": "Přečtěte si náš {0} a nenaučte se nic užitečného!", - "header_faint": "Tohle je v pohodě", - "checkbox": "Pročetl/a jsem podmínky používání", - "link": "hezký malý odkaz" - } - } - }, - "time": { - "now": "teď", - "now_short": "teď", - "in_future": "in {0}", - "in_past": "{0} ago", - "unit": { - "day": "{0} day", - "days": "{0} days", - "day_short": "{0}d", - "days_short": "{0}d", - "hour": "{0} hour", - "hours": "{0} hours", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minute", - "minutes": "{0} minutes", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} měs", - "months": "{0} měs", - "month_short": "{0} měs", - "months_short": "{0} měs", - "second": "{0} second", - "seconds": "{0} seconds", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} týd", - "weeks": "{0} týd", - "week_short": "{0} týd", - "weeks_short": "{0} týd", - "year": "{0} r", - "years": "{0} l", - "year_short": "{0}r", - "years_short": "{0}l" - } - }, - "timeline": { - "collapse": "Zabalit", - "conversation": "Konverzace", - "error_fetching": "Chyba při načítání aktualizací", - "load_older": "Načíst starší příspěvky", - "no_retweet_hint": "Příspěvek je označen jako pouze pro sledující či přímý a nemůže být zopakován", - "repeated": "zopakoval/a", - "show_new": "Zobrazit nové", - "up_to_date": "Aktuální", - "no_more_statuses": "Žádné další příspěvky", - "no_statuses": "Žádné příspěvky" - }, - "status": { - "reply_to": "Odpověď uživateli", - "replies_list": "Odpovědi:" - }, - "user_card": { - "approve": "Schválit", - "block": "Blokovat", - "blocked": "Blokován/a!", - "deny": "Zamítnout", - "favorites": "Oblíbené", - "follow": "Sledovat", - "follow_sent": "Požadavek odeslán!", - "follow_progress": "Odeslílám požadavek…", - "follow_unfollow": "Přestat sledovat", - "followees": "Sledovaní", - "followers": "Sledující", - "following": "Sledujete!", - "follows_you": "Sleduje vás!", - "its_you": "Jste to vy!", - "media": "Média", - "mute": "Ignorovat", - "muted": "Ignorován/a", - "per_day": "za den", - "remote_follow": "Vzdálené sledování", - "statuses": "Příspěvky", - "unblock": "Odblokovat", - "unblock_progress": "Odblokuji…", - "block_progress": "Blokuji…", - "unmute": "Přestat ignorovat", - "unmute_progress": "Ruším ignorování…", - "mute_progress": "Ignoruji…" - }, - "user_profile": { - "timeline_title": "Uživatelská časová osa", - "profile_does_not_exist": "Omlouváme se, tento profil neexistuje.", - "profile_loading_error": "Omlouváme se, při načítání tohoto profilu se vyskytla chyba." - }, - "who_to_follow": { - "more": "Více", - "who_to_follow": "Koho sledovat" - }, - "tool_tip": { - "media_upload": "Nahrát média", - "repeat": "Zopakovat", - "reply": "Odpovědět", - "favorite": "Oblíbit", - "user_settings": "Uživatelské nastavení" - }, - "upload": { - "error": { - "base": "Nahrávání selhalo.", - "file_too_big": "Soubor je příliš velký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Zkuste to znovu později" }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "registration": { + "bio": "O vás", + "bio_placeholder": "např.\nNazdar, jsem Lain\nJsem anime dívka žijící v příměstském Japonsku. Možná mě znáte z Wired.", + "captcha": "CAPTCHA", + "email": "E-mail", + "fullname": "Zobrazované jméno", + "fullname_placeholder": "např. Lain Iwakura", + "new_captcha": "Kliknutím na obrázek získáte novou CAPTCHA", + "password_confirm": "Potvrzení hesla", + "registration": "Registrace", + "token": "Token pozvánky", + "username_placeholder": "např. lain", + "validations": { + "email_required": "nemůže být prázdný", + "fullname_required": "nemůže být prázdné", + "password_confirmation_match": "musí být stejné jako heslo", + "password_confirmation_required": "nemůže být prázdné", + "password_required": "nemůže být prázdné", + "username_required": "nemůže být prázdné" + } + }, + "settings": { + "app_name": "Název aplikace", + "attachmentRadius": "Přílohy", + "attachments": "Přílohy", + "avatar": "Avatar", + "avatarAltRadius": "Avatary (oznámení)", + "avatarRadius": "Avatary", + "avatar_size_instruction": "Doporučená minimální velikost pro avatarové obrázky je 150x150 pixelů.", + "background": "Pozadí", + "bio": "O vás", + "blocks_tab": "Blokování", + "btnRadius": "Tlačítka", + "cBlue": "Modrá (Odpovědět, sledovat)", + "cGreen": "Zelená (Zopakovat)", + "cOrange": "Oranžová (Oblíbit)", + "cRed": "Červená (Zrušit)", + "change_password": "Změnit heslo", + "change_password_error": "Při změně vašeho hesla se vyskytla chyba.", + "changed_password": "Heslo bylo úspěšně změněno!", + "checkboxRadius": "Zaškrtávací pole", + "collapse_subject": "Zabalit příspěvky s předměty", + "composing": "Komponování", + "confirm_new_password": "Potvrďte nové heslo", + "current_avatar": "Váš současný avatar", + "current_password": "Současné heslo", + "data_import_export_tab": "Import/export dat", + "default_vis": "Výchozí rozsah viditelnosti", + "delete_account": "Smazat účet", + "delete_account_description": "Trvale smaže váš účet a všechny vaše příspěvky.", + "delete_account_error": "Při mazání vašeho účtu nastala chyba. Pokud tato chyba bude trvat, kontaktujte prosím admministrátora vaší instance.", + "delete_account_instructions": "Pro potvrzení smazání účtu napište své heslo do pole níže.", + "enable_web_push_notifications": "Povolit webová push oznámení", + "export_theme": "Uložit přednastavení", + "filtering": "Filtrování", + "filtering_explanation": "Všechny příspěvky obsahující tato slova budou skryty. Napište jedno slovo na každý řádek", + "follow_export": "Export sledovaných", + "follow_export_button": "Exportovat vaše sledované do souboru CSV", + "follow_import": "Import sledovaných", + "follow_import_error": "Chyba při importování sledovaných", + "follows_imported": "Sledovaní importováni! Jejich zpracování bude chvilku trvat.", + "foreground": "Popředí", + "general": "Obecné", + "hide_attachments_in_convo": "Skrývat přílohy v konverzacích", + "hide_attachments_in_tl": "Skrývat přílohy v časové ose", + "hide_filtered_statuses": "Skrývat filtrované příspěvky", + "hide_followers_description": "Nezobrazovat, kdo mě sleduje", + "hide_follows_description": "Nezobrazovat, koho sleduji", + "hide_isp": "Skrýt panel specifický pro instanci", + "hide_post_stats": "Skrývat statistiky příspěvků (např. počet oblíbení)", + "hide_user_stats": "Skrývat statistiky uživatelů (např. počet sledujících)", + "import_followers_from_a_csv_file": "Importovat sledované ze souboru CSV", + "import_theme": "Načíst přednastavení", + "inputRadius": "Vstupní pole", + "instance_default": "(výchozí: {value})", + "instance_default_simple": "(výchozí)", + "interface": "Rozhraní", + "interfaceLanguage": "Jazyk rozhraní", + "invalid_theme_imported": "Zvolený soubor není podporovaný motiv Pleroma. Nebyly provedeny žádné změny s vaším motivem.", + "limited_availability": "Nedostupné ve vašem prohlížeči", + "links": "Odkazy", + "lock_account_description": "Omezit váš účet pouze na schválené sledující", + "loop_video": "Opakovat videa", + "loop_video_silent_only": "Opakovat pouze videa beze zvuku (t.j. „GIFy“ na Mastodonu)", + "max_thumbnails": "Maximální počet miniatur na příspěvek", + "mutes_tab": "Ignorování", + "name": "Jméno", + "name_bio": "Jméno a popis", + "new_password": "Nové heslo", + "no_blocks": "Žádná blokování", + "no_mutes": "Žádná ignorování", + "no_rich_text_description": "Odstranit ze všech příspěvků formátování textu", + "notification_visibility": "Typy oznámení k zobrazení", + "notification_visibility_follows": "Sledující", + "notification_visibility_likes": "Oblíbení", + "notification_visibility_mentions": "Zmínky", + "notification_visibility_repeats": "Zopakování", + "notifications": "Oznámení", + "nsfw_clickthrough": "Povolit prokliknutelné skrývání citlivých příloh", + "oauth_tokens": "Tokeny OAuth", + "panelRadius": "Panely", + "pause_on_unfocused": "Pozastavit streamování, pokud není záložka prohlížeče v soustředění", + "play_videos_in_modal": "Přehrávat videa přímo v prohlížeči médií", + "post_status_content_type": "Publikovat typ obsahu příspěvku", + "preload_images": "Přednačítat obrázky", + "presets": "Přednastavení", + "profile_background": "Profilové pozadí", + "profile_banner": "Profilový banner", + "profile_tab": "Profil", + "radii_help": "Nastavit zakulacení rohů rozhraní (v pixelech)", + "refresh_token": "Obnovit token", + "replies_in_timeline": "Odpovědi v časové ose", + "reply_visibility_all": "Zobrazit všechny odpovědi", + "reply_visibility_following": "Zobrazit pouze odpovědi směřované na mě nebo uživatele, které sleduji", + "reply_visibility_self": "Zobrazit pouze odpovědi směřované na mě", + "revoke_token": "Odvolat", + "saving_err": "Chyba při ukládání nastavení", + "saving_ok": "Nastavení uložena", + "scope_copy": "Kopírovat rozsah při odpovídání (přímé zprávy jsou vždy kopírovány)", + "security_tab": "Bezpečnost", + "set_new_avatar": "Nastavit nový avatar", + "set_new_profile_background": "Nastavit nové profilové pozadí", + "set_new_profile_banner": "Nastavit nový profilový banner", + "settings": "Nastavení", + "show_admin_badge": "Zobrazovat v mém profilu odznak administrátora", + "show_moderator_badge": "Zobrazovat v mém profilu odznak moderátora", + "stop_gifs": "Přehrávat GIFy při přejetí myši", + "streaming": "Povolit automatické streamování nových příspěvků při rolování nahoru", + "style": { + "advanced_colors": { + "_tab_label": "Pokročilé", + "alert": "Pozadí upozornění", + "alert_error": "Chyba", + "badge": "Pozadí odznaků", + "badge_notification": "Oznámení", + "borders": "Okraje", + "buttons": "Tlačítka", + "faint_text": "Vybledlý text", + "inputs": "Vstupní pole", + "panel_header": "Záhlaví panelu", + "top_bar": "Vrchní pruh" + }, + "common": { + "color": "Barva", + "contrast": { + "context": { + "18pt": "pro velký (18+ bodů) text", + "text": "pro text" + }, + "hint": "Poměr kontrastu je {ratio}, {level} {context}", + "level": { + "aa": "splňuje směrnici úrovně AA (minimální)", + "aaa": "splňuje směrnici úrovně AAA (doporučováno)", + "bad": "nesplňuje žádné směrnice přístupnosti" + } + }, + "opacity": "Průhlednost" + }, + "common_colors": { + "_tab_label": "Obvyklé", + "foreground_hint": "Pro detailnější kontrolu viz záložka „Pokročilé“", + "main": "Obvyklé barvy", + "rgbo": "Ikony, odstíny, odznaky" + }, + "fonts": { + "_tab_label": "Písma", + "components": { + "input": "Vstupní pole", + "interface": "Rozhraní", + "post": "Text příspěvků", + "postCode": "Neproporcionální text v příspěvku (formátovaný text)" + }, + "custom": "Vlastní", + "family": "Název písma", + "help": "Zvolte písmo, které bude použito pro prvky rozhraní. U možnosti „vlastní“ musíte zadat přesný název písma tak, jak se zobrazuje v systému.", + "size": "Velikost (v pixelech)", + "weight": "Tloušťka" + }, + "preview": { + "button": "Tlačítko", + "checkbox": "Pročetl/a jsem podmínky používání", + "content": "Obsah", + "error": "Příklad chyby", + "faint_link": "pomocný manuál", + "fine_print": "Přečtěte si náš {0} a nenaučte se nic užitečného!", + "header": "Náhled", + "header_faint": "Tohle je v pohodě", + "input": "Právě jsem přistál v L.A.", + "link": "hezký malý odkaz", + "mono": "obsahu", + "text": "Spousta dalšího {0} a {1}" + }, + "radii": { + "_tab_label": "Kulatost" + }, + "shadows": { + "_tab_label": "Stín a osvětlení", + "blur": "Rozmazání", + "component": "Komponent", + "components": { + "avatar": "Avatar uživatele (v zobrazení profilu)", + "avatarStatus": "Avatar uživatele (v zobrazení příspěvku)", + "button": "Tlačítko", + "buttonHover": "Tlačítko (přejetí myši)", + "buttonPressed": "Tlačítko (stisknuto)", + "buttonPressedHover": "Button (stisknuto+přejetí myši)", + "input": "Vstupní pole", + "panel": "Panel", + "panelHeader": "Záhlaví panelu", + "popup": "Vyskakovací okna a popisky", + "topBar": "Vrchní pruh" + }, + "filter_hint": { + "always_drop_shadow": "Varování, tento stín vždy používá {0}, když to prohlížeč podporuje.", + "avatar_inset": "Prosím berte na vědomí, že kombinování vsazených i nevsazených stínů u avatarů může u průhledných avatarů dát neočekávané výsledky.", + "drop_shadow_syntax": "{0} nepodporuje parametr {1} a klíčové slovo {2}.", + "inset_classic": "Vsazené stíny budou používat {0}", + "spread_zero": "Stíny s rozsahem > 0 se zobrazí, jako kdyby byl rozsah nastaven na nulu" + }, + "inset": "Vsazení", + "override": "Přepsat", + "shadow_id": "Stín #{value}", + "spread": "Rozsah" + }, + "switcher": { + "clear_all": "Vymazat vše", + "clear_opacity": "Vymazat průhlednost", + "keep_color": "Ponechat barvy", + "keep_fonts": "Keep fonts", + "keep_opacity": "Ponechat průhlednost", + "keep_roundness": "Ponechat kulatost", + "keep_shadows": "Ponechat stíny", + "reset": "Resetovat", + "save_load_hint": "Možnosti „Ponechat“ dočasně ponechávají aktuálně nastavené možností při volení či nahrávání motivů, také tyto možnosti ukládají při exportování motivu. Pokud není žádné pole zaškrtnuto, uloží export motivu všechno." + } + }, + "subject_input_always_show": "Vždy zobrazit pole pro předmět", + "subject_line_behavior": "Kopírovat předmět při odpovídání", + "subject_line_email": "Jako u e-mailu: „re: předmět“", + "subject_line_mastodon": "Jako u Mastodonu: zkopírovat tak, jak je", + "subject_line_noop": "Nekopírovat", + "text": "Text", + "theme": "Motiv", + "theme_help": "Použijte hexadecimální barevné kódy (#rrggbb) pro přizpůsobení vašeho barevného motivu.", + "theme_help_v2_1": "Zaškrtnutím pole můžete také přepsat barvy a průhlednost některých komponentů, pro smazání všech přednastavení použijte tlačítko „Smazat vše“.", + "theme_help_v2_2": "Ikony pod některými položkami jsou indikátory kontrastu pozadí/textu, pro detailní informace nad nimi přejeďte myší. Prosím berte na vědomí, že při používání kontrastu průhlednosti ukazují indikátory nejhorší možný případ.", + "token": "Token", + "tooltipRadius": "Popisky/upozornění", + "upload_a_photo": "Nahrát fotku", + "use_contain_fit": "Neořezávat přílohu v miniaturách", + "use_one_click_nsfw": "Otevírat citlivé přílohy pouze jedním kliknutím", + "user_settings": "Uživatelská nastavení", + "valid_until": "Platný do", + "values": { + "false": "ne", + "true": "ano" + } + }, + "status": { + "replies_list": "Odpovědi:", + "reply_to": "Odpověď uživateli" + }, + "time": { + "in_future": "in {0}", + "in_past": "{0} ago", + "now": "teď", + "now_short": "teď", + "unit": { + "days": "{0} days", + "days_short": "{0}d", + "hours": "{0} hours", + "hours_short": "{0}h", + "minutes": "{0} minutes", + "minutes_short": "{0}min", + "months": "{0} měs", + "months_short": "{0} měs", + "seconds": "{0} seconds", + "seconds_short": "{0}s", + "weeks": "{0} týd", + "weeks_short": "{0} týd", + "years": "{0} l", + "years_short": "{0}l" + } + }, + "timeline": { + "collapse": "Zabalit", + "conversation": "Konverzace", + "load_older": "Načíst starší příspěvky", + "no_more_statuses": "Žádné další příspěvky", + "no_retweet_hint": "Příspěvek je označen jako pouze pro sledující či přímý a nemůže být zopakován", + "no_statuses": "Žádné příspěvky", + "repeated": "zopakoval/a", + "show_new": "Zobrazit nové", + "up_to_date": "Aktuální" + }, + "tool_tip": { + "favorite": "Oblíbit", + "media_upload": "Nahrát média", + "repeat": "Zopakovat", + "reply": "Odpovědět", + "user_settings": "Uživatelské nastavení" + }, + "upload": { + "error": { + "base": "Nahrávání selhalo.", + "default": "Zkuste to znovu později", + "file_too_big": "Soubor je příliš velký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "approve": "Schválit", + "block": "Blokovat", + "block_progress": "Blokuji…", + "blocked": "Blokován/a!", + "deny": "Zamítnout", + "favorites": "Oblíbené", + "follow": "Sledovat", + "follow_progress": "Odeslílám požadavek…", + "follow_sent": "Požadavek odeslán!", + "follow_unfollow": "Přestat sledovat", + "followees": "Sledovaní", + "followers": "Sledující", + "following": "Sledujete!", + "follows_you": "Sleduje vás!", + "its_you": "Jste to vy!", + "media": "Média", + "mute": "Ignorovat", + "mute_progress": "Ignoruji…", + "muted": "Ignorován/a", + "per_day": "za den", + "remote_follow": "Vzdálené sledování", + "statuses": "Příspěvky", + "unblock": "Odblokovat", + "unblock_progress": "Odblokuji…", + "unmute": "Přestat ignorovat", + "unmute_progress": "Ruším ignorování…" + }, + "user_profile": { + "profile_does_not_exist": "Omlouváme se, tento profil neexistuje.", + "profile_loading_error": "Omlouváme se, při načítání tohoto profilu se vyskytla chyba.", + "timeline_title": "Uživatelská časová osa" + }, + "who_to_follow": { + "more": "Více", + "who_to_follow": "Koho sledovat" } - } -} +} \ No newline at end of file diff --git a/src/i18n/de.json b/src/i18n/de.json index 54e70ab3..f2dda859 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -1,875 +1,846 @@ { - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Medienproxy", - "scope_options": "Reichweitenoptionen", - "text_limit": "Zeichenlimit", - "title": "Funktionen", - "who_to_follow": "Vorschläge", - "upload_limit": "Maximale Upload Größe", - "pleroma_chat_messages": "Pleroma Chat" - }, - "finder": { - "error_fetching_user": "Fehler beim Suchen des Benutzers", - "find_user": "Finde Benutzer" - }, - "general": { - "apply": "Anwenden", - "submit": "Absenden", - "more": "Mehr", - "generic_error": "Ein Fehler ist aufgetreten", - "optional": "Optional", - "show_more": "Zeige mehr", - "show_less": "Zeige weniger", - "dismiss": "Ablehnen", - "cancel": "Abbrechen", - "disable": "Deaktivieren", - "enable": "Aktivieren", - "confirm": "Bestätigen", - "verify": "Verifizieren", - "role": { - "moderator": "Moderator", - "admin": "Admin" - }, - "peek": "Schau rein", - "close": "Schliessen", - "retry": "Versuche es erneut", - "error_retry": "Bitte versuche es erneut", - "loading": "Lade…", - "flash_content": "Klicken, um den Flash-Inhalt mit Ruffle anzuzeigen (Die Funktion ist experimentell und funktioniert daher möglicherweise nicht).", - "flash_security": "Diese Funktion stellt möglicherweise eine Risiko dar, weil Flash-Inhalte weiterhin potentiell gefährlich sind.", - "flash_fail": "Falsh-Inhalt konnte nicht geladen werden, Details werden in der Konsole angezeigt." - }, - "login": { - "login": "Anmelden", - "description": "Mit OAuth anmelden", - "logout": "Abmelden", - "password": "Passwort", - "placeholder": "z.B. lain", - "register": "Registrieren", - "username": "Benutzername", - "authentication_code": "Authentifizierungscode", - "enter_recovery_code": "Gebe einen Wiederherstellungscode ein", - "recovery_code": "Wiederherstellungscode", - "heading": { - "totp": "Zwei-Faktor Authentifizierung", - "recovery": "Zwei-Faktor Wiederherstellung" - }, - "hint": "Anmelden um an der Diskussion teilzunehmen", - "enter_two_factor_code": "Gebe einen Zwei-Faktor-Code ein" - }, - "nav": { - "about": "Über", - "back": "Zurück", - "chat": "Lokaler Chat", - "friend_requests": "Followanfragen", - "mentions": "Erwähnungen", - "interactions": "Interaktionen", - "dms": "Direktnachrichten", - "public_tl": "Öffentliche Zeitleiste", - "timeline": "Zeitleiste", - "twkn": "Bekannte Netzwerk", - "user_search": "Benutzersuche", - "search": "Suche", - "preferences": "Voreinstellungen", - "administration": "Administration", - "who_to_follow": "Wem folgen", - "chats": "Chats", - "timelines": "Zeitlinie", - "bookmarks": "Lesezeichen", - "home_timeline": "Heim Zeitlinie" - }, - "notifications": { - "broken_favorite": "Unbekannte Nachricht, suche danach…", - "favorited_you": "favorisierte deine Nachricht", - "followed_you": "folgt dir", - "load_older": "Ältere Benachrichtigungen laden", - "notifications": "Benachrichtigungen", - "read": "Gelesen!", - "repeated_you": "wiederholte deine Nachricht", - "follow_request": "möchte dir folgen", - "migrated_to": "migrierte zu", - "reacted_with": "reagierte mit {0}", - "no_more_notifications": "Keine Benachrichtigungen mehr", - "error": "Error beim laden von Neuigkeiten" - }, - "post_status": { - "new_status": "Neuen Status veröffentlichen", - "account_not_locked_warning": "Dein Profil ist nicht {0}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.", - "account_not_locked_warning_link": "gesperrt", - "attachments_sensitive": "Anhänge als heikel markieren", - "content_type": { - "text/plain": "Nur Text", - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML" - }, - "content_warning": "Betreff (optional)", - "default": "Sitze gerade im Hofbräuhaus.", - "direct_warning": "Dieser Beitrag wird nur für die erwähnten Nutzer sichtbar sein.", - "posting": "Veröffentlichen", - "scope": { - "direct": "Direkt - Beitrag nur an erwähnte Profile", - "private": "Nur Follower - Beitrag nur für Follower sichtbar", - "public": "Öffentlich - Beitrag an öffentliche Zeitleisten", - "unlisted": "Nicht gelistet - Nicht in öffentlichen Zeitleisten anzeigen" - }, - "direct_warning_to_all": "Dieser Beitrag wird für alle erwähnten Benutzer sichtbar sein.", - "direct_warning_to_first_only": "Dieser Beitrag wird für alle Benutzer, die am Anfang der Nachricht erwähnt wurden, sichtbar sein.", - "scope_notice": { - "public": "Dieser Beitrag wird für alle sichtbar sein", - "private": "Dieser Beitrag wird nur für deine Follower sichtbar sein", - "unlisted": "Dieser Beitrag wird weder in der öffentlichen Zeitleiste noch im gesamten bekannten Netzwerk sichtbar sein" - }, - "media_description_error": "Medien konnten nicht neu geladen werden, versuche es erneut", - "empty_status_error": "Eine leere Nachricht ohne Anhänge kann nicht gesendet werden", - "preview_empty": "Leer", - "preview": "Vorschau", - "post": "Post", - "media_description": "Medienbeschreibung" - }, - "registration": { - "bio": "Bio", - "email": "Email", - "fullname": "Angezeigter Name", - "password_confirm": "Passwort bestätigen", - "registration": "Registrierung", - "token": "Einladungsschlüssel", - "captcha": "CAPTCHA", - "new_captcha": "Zum Erstellen eines neuen Captcha auf das Bild klicken", - "validations": { - "username_required": "darf nicht leer sein", - "fullname_required": "darf nicht leer sein", - "email_required": "darf nicht leer sein", - "password_required": "darf nicht leer sein", - "password_confirmation_required": "darf nicht leer sein", - "password_confirmation_match": "sollte mit dem Passwort identisch sein" - }, - "bio_placeholder": "z.B.\nHallo, ich bin Lain.\nIch bin ein super süßes blushy-crushy Anime Girl aus dem vorstädtischen Japan. Du kennst mich vielleicht von Wired.", - "fullname_placeholder": "z.B. Lain Iwakura", - "username_placeholder": "z.B. lain", - "register": "Registrierung", - "reason_placeholder": "Diese Instanz bestätigt Registrierungen manuell. \nLass die Admins wissen warum du dich registrieren willst.", - "reason": "Grund zur Anmeldung" - }, - "settings": { - "attachmentRadius": "Anhänge", - "attachments": "Anhänge", - "avatar": "Avatar", - "avatarAltRadius": "Avatare (Benachrichtigungen)", - "avatarRadius": "Avatare", - "background": "Hintergrund", - "bio": "Bio", - "btnRadius": "Knöpfe", - "cBlue": "Blau (Antworten, folgt dir)", - "cGreen": "Grün (Retweet)", - "cOrange": "Orange (Favorisieren)", - "cRed": "Rot (Abbrechen)", - "change_password": "Passwort ändern", - "change_password_error": "Es gab ein Problem bei der Änderung des Passworts.", - "changed_password": "Passwort erfolgreich geändert!", - "collapse_subject": "Beiträge mit Betreff einklappen", - "composing": "Verfassen", - "confirm_new_password": "Neues Passwort bestätigen", - "current_avatar": "Dein derzeitiger Avatar", - "current_password": "Aktuelles Passwort", - "current_profile_banner": "Der derzeitige Banner deines Profils", - "data_import_export_tab": "Datenimport/-export", - "default_vis": "Standard-Sichtbarkeitsumfang", - "delete_account": "Account löschen", - "delete_account_description": "Lösche deine Daten und deaktiviere deinen Account unwiderruflich.", - "delete_account_error": "Es ist ein Fehler beim Löschen deines Accounts aufgetreten. Tritt dies weiterhin auf, wende dich an den Administrator der Instanz.", - "delete_account_instructions": "Tippe dein Passwort unten in das Feld ein, um die Löschung deines Accounts zu bestätigen.", - "discoverable": "Erlaube, dass dieser Account in Suchergebnissen auftaucht", - "avatar_size_instruction": "Die empfohlene minimale Größe für Avatare ist 150x150 Pixel.", - "pad_emoji": "Emojis mit Leerzeichen umrahmen", - "export_theme": "Farbschema speichern", - "filtering": "Filtern", - "filtering_explanation": "Alle Beiträge, welche diese Wörter enthalten, werden ausgeblendet. Ein Wort pro Zeile", - "follow_export": "Follower exportieren", - "follow_export_button": "Exportiere deine Follows in eine csv-Datei", - "follow_export_processing": "In Bearbeitung. Die Liste steht gleich zum herunterladen bereit.", - "follow_import": "Follower importieren", - "follow_import_error": "Fehler beim Importieren der Follower", - "follows_imported": "Follower importiert! Die Bearbeitung kann einen Moment dauern.", - "foreground": "Vordergrund", - "general": "Allgemein", - "hide_attachments_in_convo": "Anhänge in Unterhaltungen ausblenden", - "hide_attachments_in_tl": "Anhänge in der Zeitleiste ausblenden", - "hide_muted_posts": "Verberge Beiträge stummgeschalteter Nutzer", - "max_thumbnails": "Maximale Anzahl von Vorschaubildern pro Beitrag", - "hide_isp": "Instanz-spezifisches Panel ausblenden", - "preload_images": "Bilder vorausladen", - "use_one_click_nsfw": "Heikle Anhänge mit nur einem Klick öffnen", - "hide_post_stats": "Beitragsstatistiken verbergen (z.B. die Anzahl der Favoriten)", - "hide_user_stats": "Benutzerstatistiken verbergen (z.B. die Anzahl der Follower)", - "hide_filtered_statuses": "Gefilterte Beiträge verbergen", - "import_followers_from_a_csv_file": "Importiere Follower aus einer CSV-Datei", - "import_theme": "Farbschema laden", - "inputRadius": "Eingabefelder", - "checkboxRadius": "Auswahlfelder", - "instance_default": "(Standard: {value})", - "instance_default_simple": "(Standard)", - "interface": "Oberfläche", - "interfaceLanguage": "Sprache der Oberfläche", - "invalid_theme_imported": "Die ausgewählte Datei ist kein unterstütztes Pleroma-Theme. Keine Änderungen wurden vorgenommen.", - "limited_availability": "In deinem Browser nicht verfügbar", - "links": "Links", - "lock_account_description": "Sperre deinen Account, um neue Follower zu genehmigen oder abzulehnen", - "loop_video": "Videos wiederholen", - "loop_video_silent_only": "Nur Videos ohne Ton wiederholen (z.B. Mastodons \"gifs\")", - "mutes_tab": "Stummschaltungen", - "play_videos_in_modal": "Videos in größerem Medienfenster abspielen", - "use_contain_fit": "Vorschaubilder nicht zuschneiden", - "name": "Name", - "name_bio": "Name & Bio", - "new_password": "Neues Passwort", - "notification_visibility": "Benachrichtigungstypen, die angezeigt werden sollen", - "notification_visibility_follows": "Folgt", - "notification_visibility_likes": "Favoriten", - "notification_visibility_mentions": "Erwähnungen", - "notification_visibility_repeats": "Wiederholungen", - "no_rich_text_description": "Rich-Text Formatierungen von allen Beiträgen entfernen", - "hide_follows_description": "Zeige nicht, wem ich folge", - "hide_followers_description": "Zeige nicht, wer mir folgt", - "hide_follows_count_description": "Verberge die Anzahl deiner Gefolgten", - "hide_followers_count_description": "Verberge die Anzahl deiner Folgenden", - "nsfw_clickthrough": "Aktiviere ausblendbares Overlay für Anhänge, die als NSFW markiert sind", - "oauth_tokens": "OAuth-Token", - "token": "Zeichen", - "refresh_token": "Token aktualisieren", - "valid_until": "Gültig bis", - "revoke_token": "Widerrufen", - "panelRadius": "Panel", - "pause_on_unfocused": "Streaming pausieren, wenn das Tab nicht fokussiert ist", - "presets": "Voreinstellungen", - "profile_background": "Profilhintergrund", - "profile_banner": "Profilbanner", - "profile_tab": "Profil", - "radii_help": "Kantenrundung (in Pixel) der Oberfläche anpassen", - "replies_in_timeline": "Antworten in der Zeitleiste", - "reply_visibility_all": "Alle Antworten zeigen", - "reply_visibility_following": "Zeige nur Antworten an mich oder an Benutzer, denen ich folge", - "reply_visibility_self": "Nur Antworten an mich anzeigen", - "autohide_floating_post_button": "Automatisches Verbergen des Knopfs für neue Beiträge (mobil)", - "saving_err": "Fehler beim Speichern der Einstellungen", - "saving_ok": "Einstellungen gespeichert", - "security_tab": "Sicherheit", - "scope_copy": "Reichweite beim Antworten übernehmen (Direktnachrichten werden immer kopiert)", - "minimal_scopes_mode": "Minimiere Reichweitenoptionen", - "set_new_avatar": "Setze einen neuen Avatar", - "set_new_profile_background": "Setze einen neuen Hintergrund für dein Profil", - "set_new_profile_banner": "Setze einen neuen Banner für dein Profil", - "settings": "Einstellungen", - "subject_input_always_show": "Betreff-Feld immer anzeigen", - "subject_line_behavior": "Betreff beim Antworten kopieren", - "subject_line_email": "Wie Email: \"re: Betreff\"", - "subject_line_mastodon": "Wie Mastodon: unverändert kopieren", - "subject_line_noop": "Nicht kopieren", - "post_status_content_type": "Beitragsart", - "stop_gifs": "Animationen nur beim Darüberfahren abspielen", - "streaming": "Aktiviere automatisches Laden (Streaming) von neuen Beiträgen", - "text": "Text", - "theme": "Farbschema", - "theme_help": "Benutze HTML-Farbcodes (#rrggbb) um dein Farbschema anzupassen.", - "theme_help_v2_1": "Du kannst auch die Farben und die Deckkraft bestimmter Komponenten überschreiben, indem du das Kontrollkästchen umschaltest. Verwende die Schaltfläche \"Alle löschen\", um alle Überschreibungen zurückzusetzen.", - "theme_help_v2_2": "Unter einigen Einträgen befinden sich Symbole für Hintergrund-/Textkontrastindikatoren, für detaillierte Informationen fahre mit der Maus darüber. Bitte beachte, dass bei der Verwendung von Transparenz Kontrastindikatoren den schlechtest möglichen Fall darstellen.", - "tooltipRadius": "Tooltips/Warnungen", - "user_settings": "Benutzereinstellungen", - "values": { - "false": "nein", - "true": "Ja" - }, - "notifications": "Benachrichtigungen", - "enable_web_push_notifications": "Web-Pushbenachrichtigungen aktivieren", - "style": { - "switcher": { - "keep_color": "Farben beibehalten", - "keep_shadows": "Schatten beibehalten", - "keep_opacity": "Deckkraft beibehalten", - "keep_roundness": "Abrundungen beibehalten", - "keep_fonts": "Schriften beibehalten", - "save_load_hint": "Die \"Beibehalten\"-Optionen behalten die aktuell eingestellten Optionen beim Auswählen oder Laden von Designs bei, sie speichern diese Optionen auch beim Exportieren eines Designs. Wenn alle Kontrollkästchen deaktiviert sind, wird beim Exportieren des Designs alles gespeichert.", - "reset": "Zurücksetzen", - "clear_all": "Alles leeren", - "clear_opacity": "Deckkraft leeren", - "help": { - "fe_downgraded": "PleromaFE Version wurde zurückgerollt.", - "older_version_imported": "Die Datei, die du importiert hast, wurde für eine ältere Version vom FE gemacht.", - "future_version_imported": "Die Datei, die du importiert hast, wurde für eine neuere Version vom FE gemacht.", - "v2_imported": "Die Datei, die du importiert hast, war für eine ältere Version des FEs. Wir versuchen, die Kompatibilität zu maximieren, aber es könnte trotzdem Inkonsistenz auftreten.", - "upgraded_from_v2": "PleromaFE wurde modernisiert, dein Theme könnte etwas anders aussehen als vorher.", - "snapshot_source_mismatch": "Versionskonflikt: vermutlich wurde das FE zurückgesetzt und dann ein Update durchgeführt. Falls das Theme mit einer alten FE-Version erstellt wurde, sollte vermutlich die alte Version verwendet werden, andernfalls die neue.", - "migration_napshot_gone": "Snapshot konnte nicht gefunden werden, die Anzeige könnte daher teilweise möglicherweise nicht den Erwartungen entsprechen.", - "migration_snapshot_ok": "Vorsichtshalber wurde ein Snapshot des Themes geladen. Alternativ kann versucht werden, die Daten des Themes selbst zu laden.", - "snapshot_present": "Snapshot des Themes wurde geladen, alle entsprechenden Einstellungen wurden überschrieben. Alternativ können die tatsächlichen Daten des Themes geladen werden.", - "fe_upgraded": "Mit dem Upgrade wurde auch eine neue Version von Pleromas Theme Engine installiert.", - "snapshot_missing": "Die Datei enthält keinen Theme-Snapshot, die Darstellung kann daher möglicherweise abweichend sein." + "about": { + "mrf": { + "federation": "Föderation", + "keyword": { + "ftl_removal": "Von der Zeitleiste \"Das gesamte bekannte Netzwerk\" entfernen", + "is_replaced_by": "→", + "keyword_policies": "Keyword Richtlinien", + "reject": "Ablehnen", + "replace": "Ersetzen" + }, + "mrf_policies": "Aktive MRF-Richtlinien", + "mrf_policies_desc": "MRF Richtlinien beeinflussen das Föderationsverhalten dieser Instanz. Die folgenden Richtlinien sind aktiv:", + "simple": { + "accept": "Akzeptieren", + "accept_desc": "Diese Instanz akzeptiert nur Nachrichten von den folgenden Instanzen:", + "ftl_removal": "Von der Zeitleiste \"Das bekannte Netzwerk\" entfernen", + "ftl_removal_desc": "Dieser Instanz entfernt folgende Instanzen von der \"Das bekannte Netzwerk\" Zeitleiste:", + "media_nsfw": "Erzwingen Medien als heikel zu makieren", + "media_nsfw_desc": "Diese Instanz makiert die Medien in Beiträgen der folgenden Instanzen als heikel:", + "media_removal": "Medienentfernung", + "media_removal_desc": "Diese Instanz entfernt Medien von den Beiträgen der folgenden Instanzen:", + "quarantine": "Quarantäne", + "quarantine_desc": "Diese Instanz sendet nur öffentliche Beiträge zu den folgenden Instanzen:", + "reject": "Ablehnen", + "reject_desc": "Diese Instanz akzeptiert keine Nachrichten der folgenden Instanzen:", + "simple_policies": "Instanzspezifische Richtlinien" + } }, - "use_source": "Neue Version", - "use_snapshot": "Alte Version", - "keep_as_is": "Lass es so, wie es ist", - "load_theme": "Lade Theme" - }, - "common": { - "color": "Farbe", - "opacity": "Deckkraft", - "contrast": { - "hint": "Das Kontrastverhältnis ist {ratio}, es {level} {context}", - "level": { - "aa": "entspricht Level AA Richtlinie (minimum)", - "aaa": "entspricht Level AAA Richtlinie (empfohlen)", - "bad": "entspricht keiner Richtlinien zur Barrierefreiheit" - }, - "context": { - "18pt": "für großen (18pt+) Text", - "text": "für Text" - } + "staff": "Mitarbeiter" + }, + "chats": { + "chats": "Chats", + "delete": "Löschen", + "delete_confirm": "Soll diese Nachricht wirklich gelöscht werden?", + "empty_chat_list_placeholder": "Es sind noch keine Chats vorhanden. Jetzt einen Chat starten!", + "empty_message_error": "Die Nachricht darf nicht leer sein", + "error_loading_chat": "Beim Laden des Chats ist ein Fehler aufgetreten.", + "error_sending_message": "Beim Senden der Nachricht ist ein Fehler aufgetreten.", + "message_user": "Nachricht an {nickname} senden", + "more": "Mehr", + "new": "Neuer Chat", + "you": "Du:" + }, + "display_date": { + "today": "Heute" + }, + "domain_mute_card": { + "mute": "Stummschalten", + "mute_progress": "Wird stummgeschaltet…", + "unmute": "Stummschaltung aufheben", + "unmute_progress": "Stummschaltung wird aufgehoben…" + }, + "emoji": { + "add_emoji": "Emoji einfügen", + "custom": "Benutzerdefinierter Emoji", + "emoji": "Emoji", + "keep_open": "Auswahlfenster offen halten", + "load_all": "Lade alle {emojiAmount} Emoji", + "load_all_hint": "Erste {saneAmount} Emoji geladen, alle Emoji zu laden könnte Leistungsprobleme verursachen.", + "search_emoji": "Nach einem Emoji suchen", + "stickers": "Sticker", + "unicode": "Unicode Emoji" + }, + "errors": { + "storage_unavailable": "Pleroma konnte nicht auf den Browser Speicher zugreifen. Deine Anmeldung und deine Einstellungen werden nicht gespeichert. Es kann unvorhersehbare Probleme geben. Versuche ansonsten Cookies zu erlauben." + }, + "exporter": { + "export": "Exportieren", + "processing": "Verarbeitung läuft, bald wird Du dazu aufgefordert, deine Datei herunterzuladen" + }, + "features_panel": { + "media_proxy": "Medienproxy", + "scope_options": "Reichweitenoptionen", + "text_limit": "Zeichenlimit", + "title": "Funktionen", + "upload_limit": "Maximale Upload Größe", + "who_to_follow": "Vorschläge" + }, + "file_type": { + "audio": "Audio", + "file": "Datei", + "image": "Bild", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Fehler beim Suchen des Benutzers", + "find_user": "Finde Benutzer" + }, + "general": { + "apply": "Anwenden", + "cancel": "Abbrechen", + "close": "Schliessen", + "confirm": "Bestätigen", + "disable": "Deaktivieren", + "dismiss": "Ablehnen", + "enable": "Aktivieren", + "error_retry": "Bitte versuche es erneut", + "flash_content": "Klicken, um den Flash-Inhalt mit Ruffle anzuzeigen (Die Funktion ist experimentell und funktioniert daher möglicherweise nicht).", + "flash_fail": "Falsh-Inhalt konnte nicht geladen werden, Details werden in der Konsole angezeigt.", + "flash_security": "Diese Funktion stellt möglicherweise eine Risiko dar, weil Flash-Inhalte weiterhin potentiell gefährlich sind.", + "generic_error": "Ein Fehler ist aufgetreten", + "loading": "Lade…", + "more": "Mehr", + "optional": "Optional", + "peek": "Schau rein", + "retry": "Versuche es erneut", + "role": { + "admin": "Admin", + "moderator": "Moderator" + }, + "show_less": "Zeige weniger", + "show_more": "Zeige mehr", + "submit": "Absenden", + "verify": "Verifizieren" + }, + "image_cropper": { + "cancel": "Abbrechen", + "crop_picture": "Bild zuschneiden", + "save": "Speichern", + "save_without_cropping": "Ohne Zuschneiden speichern" + }, + "importer": { + "error": "Ein Fehler ist beim Verabeiten der Datei aufgetreten.", + "submit": "Absenden", + "success": "Erfolgreich importiert." + }, + "interactions": { + "favs_repeats": "Wiederholungen und Favoriten", + "follows": "Neue Follower", + "load_older": "Lade ältere Interaktionen", + "moves": "Benutzer migriert zu" + }, + "login": { + "authentication_code": "Authentifizierungscode", + "description": "Mit OAuth anmelden", + "enter_recovery_code": "Gebe einen Wiederherstellungscode ein", + "enter_two_factor_code": "Gebe einen Zwei-Faktor-Code ein", + "heading": { + "recovery": "Zwei-Faktor Wiederherstellung", + "totp": "Zwei-Faktor Authentifizierung" + }, + "hint": "Anmelden um an der Diskussion teilzunehmen", + "login": "Anmelden", + "logout": "Abmelden", + "password": "Passwort", + "placeholder": "z.B. lain", + "recovery_code": "Wiederherstellungscode", + "register": "Registrieren", + "username": "Benutzername" + }, + "media_modal": { + "next": "Weiter", + "previous": "Zurück" + }, + "nav": { + "about": "Über", + "administration": "Administration", + "back": "Zurück", + "bookmarks": "Lesezeichen", + "chats": "Chats", + "dms": "Direktnachrichten", + "friend_requests": "Followanfragen", + "home_timeline": "Heim Zeitlinie", + "interactions": "Interaktionen", + "mentions": "Erwähnungen", + "preferences": "Voreinstellungen", + "public_tl": "Öffentliche Zeitleiste", + "search": "Suche", + "timeline": "Zeitleiste", + "timelines": "Zeitlinie", + "twkn": "Bekannte Netzwerk", + "user_search": "Benutzersuche", + "who_to_follow": "Wem folgen" + }, + "notifications": { + "broken_favorite": "Unbekannte Nachricht, suche danach…", + "error": "Error beim laden von Neuigkeiten", + "favorited_you": "favorisierte deine Nachricht", + "follow_request": "möchte dir folgen", + "followed_you": "folgt dir", + "load_older": "Ältere Benachrichtigungen laden", + "migrated_to": "migrierte zu", + "no_more_notifications": "Keine Benachrichtigungen mehr", + "notifications": "Benachrichtigungen", + "reacted_with": "reagierte mit {0}", + "read": "Gelesen!", + "repeated_you": "wiederholte deine Nachricht" + }, + "password_reset": { + "check_email": "Im E-Mail-Posteingang des angebenen Kontos müsste sich jetzt (oder zumindest in Kürze) die E-Mail mit dem Link zum Passwortzurücksetzen befinden.", + "forgot_password": "Passwort vergessen?", + "instruction": "Wenn du hier deinen Benutznamen oder die zugehörige E-Mail-Adresse eingibst, kann dir der Server einen Link zum Passwortzurücksetzen zuschicken.", + "password_reset": "Password zurücksetzen", + "password_reset_disabled": "Passwortzurücksetzen deaktiviert. Bitte Administrator kontaktieren.", + "password_reset_required": "Passwortzurücksetzen erforderlich.", + "password_reset_required_but_mailer_is_disabled": "Passwortzurücksetzen wäre erforderlich, ist aber deaktiviert. Bitte Administrator kontaktieren.", + "placeholder": "Dein Benutzername oder die zugehörige E-Mail-Adresse", + "return_home": "Zurück zur Heimseite", + "too_many_requests": "Kurze Pause. Zu viele Versuche. Bitte später nochmal probieren." + }, + "polls": { + "add_option": "Option hinzufügen", + "add_poll": "Umfrage hinzufügen", + "expired": "Die Umfrage endete vor {0}", + "expires_in": "Die Umfrage endet in {0}", + "expiry": "Alter der Umfrage", + "multiple_choices": "Mehrere Auswahlmöglichkeiten", + "not_enough_options": "Zu wenig einzigartige Auswahlmöglichkeiten in der Umfrage", + "option": "Option", + "people_voted_count": "{count} Person hat gewählt | {count} Personen haben gewählt", + "single_choice": "Eine Auswahlmöglichkeit", + "type": "Umfragetyp", + "vote": "Abstimmen", + "votes": "Stimmen", + "votes_count": "{count} Stimme | {count} Stimmen" + }, + "post_status": { + "account_not_locked_warning": "Dein Profil ist nicht {0}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.", + "account_not_locked_warning_link": "gesperrt", + "attachments_sensitive": "Anhänge als heikel markieren", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Nur Text" + }, + "content_warning": "Betreff (optional)", + "default": "Sitze gerade im Hofbräuhaus.", + "direct_warning_to_all": "Dieser Beitrag wird für alle erwähnten Benutzer sichtbar sein.", + "direct_warning_to_first_only": "Dieser Beitrag wird für alle Benutzer, die am Anfang der Nachricht erwähnt wurden, sichtbar sein.", + "empty_status_error": "Eine leere Nachricht ohne Anhänge kann nicht gesendet werden", + "media_description": "Medienbeschreibung", + "media_description_error": "Medien konnten nicht neu geladen werden, versuche es erneut", + "new_status": "Neuen Status veröffentlichen", + "post": "Post", + "posting": "Veröffentlichen", + "preview": "Vorschau", + "preview_empty": "Leer", + "scope": { + "direct": "Direkt - Beitrag nur an erwähnte Profile", + "private": "Nur Follower - Beitrag nur für Follower sichtbar", + "public": "Öffentlich - Beitrag an öffentliche Zeitleisten", + "unlisted": "Nicht gelistet - Nicht in öffentlichen Zeitleisten anzeigen" + }, + "scope_notice": { + "private": "Dieser Beitrag wird nur für deine Follower sichtbar sein", + "public": "Dieser Beitrag wird für alle sichtbar sein", + "unlisted": "Dieser Beitrag wird weder in der öffentlichen Zeitleiste noch im gesamten bekannten Netzwerk sichtbar sein" } - }, - "common_colors": { - "_tab_label": "Allgemein", - "main": "Allgemeine Farben", - "foreground_hint": "Siehe Reiter \"Erweitert\" für eine detailliertere Einstellungen", - "rgbo": "Symbole, Betonungen, Kennzeichnungen" - }, - "advanced_colors": { - "_tab_label": "Erweitert", - "alert": "Warnhinweis-Hintergrund", - "alert_error": "Fehler", - "badge": "Kennzeichnungs-Hintergrund", - "badge_notification": "Benachrichtigung", - "panel_header": "Panel-Kopf", - "top_bar": "Obere Leiste", - "borders": "Rahmen", - "buttons": "Schaltflächen", - "inputs": "Eingabefelder", - "faint_text": "Verblasster Text", - "disabled": "aus", - "selectedMenu": "Ausgewähltes Menüelement", - "selectedPost": "Ausgewählter Post", - "pressed": "Gedrückt", - "highlight": "Hervorgehobene Elemente", - "icons": "Icons", - "poll": "Umfragegraph", - "post": "Posts/Benutzerinfo", - "alert_neutral": "Neutral", - "alert_warning": "Warnung", - "wallpaper": "Hintergrund", - "popover": "Kurzinfo, Menüs, Popover-Fenster", - "chat": { - "border": "Ränder", - "outgoing": "Ausgehend", - "incoming": "Eingehend" + }, + "registration": { + "bio": "Bio", + "bio_placeholder": "z.B.\nHallo, ich bin Lain.\nIch bin ein super süßes blushy-crushy Anime Girl aus dem vorstädtischen Japan. Du kennst mich vielleicht von Wired.", + "captcha": "CAPTCHA", + "email": "Email", + "fullname": "Angezeigter Name", + "fullname_placeholder": "z.B. Lain Iwakura", + "new_captcha": "Zum Erstellen eines neuen Captcha auf das Bild klicken", + "password_confirm": "Passwort bestätigen", + "reason": "Grund zur Anmeldung", + "reason_placeholder": "Diese Instanz bestätigt Registrierungen manuell. \nLass die Admins wissen warum du dich registrieren willst.", + "register": "Registrierung", + "registration": "Registrierung", + "token": "Einladungsschlüssel", + "username_placeholder": "z.B. lain", + "validations": { + "email_required": "darf nicht leer sein", + "fullname_required": "darf nicht leer sein", + "password_confirmation_match": "sollte mit dem Passwort identisch sein", + "password_confirmation_required": "darf nicht leer sein", + "password_required": "darf nicht leer sein", + "username_required": "darf nicht leer sein" + } + }, + "remote_user_resolver": { + "error": "Nicht gefunden.", + "remote_user_resolver": "Resolver für Nutzer auf anderen Instanzen", + "searching_for": "Suche für" + }, + "search": { + "hashtags": "Hashtags", + "no_results": "Keine Ergebnisse", + "people": "Leute", + "people_talking": "{count} Leute sprechen darüber", + "person_talking": "{count} Person spricht darüber" + }, + "selectable_list": { + "select_all": "Wähle alle" + }, + "settings": { + "accent": "Akzent", + "allow_following_move": "Erlaube auto-follow, wenn von dir verfolgte Accounts umziehen", + "app_name": "Anwendungsname", + "attachmentRadius": "Anhänge", + "attachments": "Anhänge", + "autohide_floating_post_button": "Automatisches Verbergen des Knopfs für neue Beiträge (mobil)", + "avatar": "Avatar", + "avatarAltRadius": "Avatare (Benachrichtigungen)", + "avatarRadius": "Avatare", + "avatar_size_instruction": "Die empfohlene minimale Größe für Avatare ist 150x150 Pixel.", + "background": "Hintergrund", + "bio": "Bio", + "block_export": "Block Export", + "block_export_button": "Exportiere deine Blocks in eine csv Datei", + "block_import": "Block Import", + "block_import_error": "Fehler beim Importieren der Blocks", + "blocks_imported": "Blocks importiert! Die Verarbeitung wird einen Moment brauchen.", + "blocks_tab": "Blocks", + "bot": "Dies ist ein Bot Account", + "btnRadius": "Knöpfe", + "cBlue": "Blau (Antworten, folgt dir)", + "cGreen": "Grün (Retweet)", + "cOrange": "Orange (Favorisieren)", + "cRed": "Rot (Abbrechen)", + "change_email": "Ändere Email", + "change_email_error": "Es trat ein Problem auf beim Versuch, deine Email Adresse zu ändern.", + "change_password": "Passwort ändern", + "change_password_error": "Es gab ein Problem bei der Änderung des Passworts.", + "changed_email": "Email Adresse erfolgreich geändert!", + "changed_password": "Passwort erfolgreich geändert!", + "chatMessageRadius": "Chat Nachricht", + "checkboxRadius": "Auswahlfelder", + "collapse_subject": "Beiträge mit Betreff einklappen", + "composing": "Verfassen", + "confirm_new_password": "Neues Passwort bestätigen", + "current_avatar": "Dein derzeitiger Avatar", + "current_password": "Aktuelles Passwort", + "data_import_export_tab": "Datenimport/-export", + "default_vis": "Standard-Sichtbarkeitsumfang", + "delete_account": "Account löschen", + "delete_account_description": "Lösche deine Daten und deaktiviere deinen Account unwiderruflich.", + "delete_account_error": "Es ist ein Fehler beim Löschen deines Accounts aufgetreten. Tritt dies weiterhin auf, wende dich an den Administrator der Instanz.", + "delete_account_instructions": "Tippe dein Passwort unten in das Feld ein, um die Löschung deines Accounts zu bestätigen.", + "discoverable": "Erlaube, dass dieser Account in Suchergebnissen auftaucht", + "domain_mutes": "Domains", + "emoji_reactions_on_timeline": "Zeige Emoji-Reaktionen auf der Zeitleiste", + "enable_web_push_notifications": "Web-Pushbenachrichtigungen aktivieren", + "enter_current_password_to_confirm": "Gib dein aktuelles Passwort ein, um deine Identität zu bestätigen", + "export_theme": "Farbschema speichern", + "file_export_import": { + "backup_restore": "Einstellungen backuppen", + "backup_settings": "Einstellungen in Datei speichern", + "backup_settings_theme": "Einstellungen und Theme in eine Datei speichern", + "errors": { + "file_slightly_new": "Geringfügige Abweichung in der Dateiversion, einige Einstellungen konnten möglicherweise nicht geladen werden", + "file_too_new": "Inkompatible Major Version: {fileMajor}, dieses PleromaFE Version (settings ver {feMajor}) ist zu alt", + "file_too_old": "Inkompatible Major Version: {fileMajor}, die Dateiversion ist zu alt und wird nicht mehr unterstützt (min. set. ver. {feMajor})", + "invalid_file": "Die ausgewählte Datei kann nicht zur Wiederherstellung verwendet werden. Keine Änderungen wurden umgesetzt." + }, + "restore_settings": "Einstellungen von einer Datei wiederherstellen" }, - "toggled": "Umgeschaltet", - "underlay": "Halbtransparenter Hintergrund", - "tabs": "Reiter" - }, - "radii": { - "_tab_label": "Abrundungen" - }, - "shadows": { - "_tab_label": "Schatten und Beleuchtung", - "component": "Komponente", - "override": "Überschreiben", - "shadow_id": "Schatten #{value}", - "blur": "Unschärfe", - "spread": "Streuung", - "inset": "Einsatz", - "hint": "Für Schatten kannst du auch --variable als Farbwert verwenden, um CSS3-Variablen zu verwenden. Bitte beachte, dass die Einstellung der Deckkraft in diesem Fall nicht funktioniert.", - "filter_hint": { - "always_drop_shadow": "Achtung, dieser Schatten verwendet immer {0}, wenn der Browser dies unterstützt.", - "drop_shadow_syntax": "{0} unterstützt Parameter {1} und Schlüsselwort {2} nicht.", - "avatar_inset": "Bitte beachte, dass die Kombination von eingesetzten und nicht eingesetzten Schatten auf Avataren zu unerwarteten Ergebnissen bei transparenten Avataren führen kann.", - "spread_zero": "Schatten mit einer Streuung > 0 erscheinen so, als ob sie auf Null gesetzt wären", - "inset_classic": "Eingesetzte Schatten werden mit {0} verwendet" + "filtering": "Filtern", + "filtering_explanation": "Alle Beiträge, welche diese Wörter enthalten, werden ausgeblendet. Ein Wort pro Zeile", + "follow_export": "Follower exportieren", + "follow_export_button": "Exportiere deine Follows in eine csv-Datei", + "follow_import": "Follower importieren", + "follow_import_error": "Fehler beim Importieren der Follower", + "follows_imported": "Follower importiert! Die Bearbeitung kann einen Moment dauern.", + "foreground": "Vordergrund", + "fun": "Spaß", + "general": "Allgemein", + "greentext": "Meme Pfeile", + "hide_all_muted_posts": "Verstecke stummgeschaltete Posts", + "hide_attachments_in_convo": "Anhänge in Unterhaltungen ausblenden", + "hide_attachments_in_tl": "Anhänge in der Zeitleiste ausblenden", + "hide_filtered_statuses": "Gefilterte Beiträge verbergen", + "hide_followers_count_description": "Verberge die Anzahl deiner Folgenden", + "hide_followers_description": "Zeige nicht, wer mir folgt", + "hide_follows_count_description": "Verberge die Anzahl deiner Gefolgten", + "hide_follows_description": "Zeige nicht, wem ich folge", + "hide_isp": "Instanz-spezifisches Panel ausblenden", + "hide_media_previews": "Verstecke Vorschau von Medien", + "hide_muted_posts": "Verberge Beiträge stummgeschalteter Nutzer", + "hide_post_stats": "Beitragsstatistiken verbergen (z.B. die Anzahl der Favoriten)", + "hide_shoutbox": "Shoutbox der Instanz verbergen", + "hide_user_stats": "Benutzerstatistiken verbergen (z.B. die Anzahl der Follower)", + "hide_wallpaper": "Verstecke Instanzhintergrundbild", + "import_blocks_from_a_csv_file": "Importiere Blocks von einer CSV Datei", + "import_followers_from_a_csv_file": "Importiere Follower aus einer CSV-Datei", + "import_mutes_from_a_csv_file": "Importiere stummgeschaltete User von einer cvs Datei", + "import_theme": "Farbschema laden", + "inputRadius": "Eingabefelder", + "instance_default": "(Standard: {value})", + "instance_default_simple": "(Standard)", + "interface": "Oberfläche", + "interfaceLanguage": "Sprache der Oberfläche", + "invalid_theme_imported": "Die ausgewählte Datei ist kein unterstütztes Pleroma-Theme. Keine Änderungen wurden vorgenommen.", + "limited_availability": "In deinem Browser nicht verfügbar", + "links": "Links", + "lock_account_description": "Sperre deinen Account, um neue Follower zu genehmigen oder abzulehnen", + "loop_video": "Videos wiederholen", + "loop_video_silent_only": "Nur Videos ohne Ton wiederholen (z.B. Mastodons \"gifs\")", + "max_thumbnails": "Maximale Anzahl von Vorschaubildern pro Beitrag", + "mfa": { + "authentication_methods": "Authentifizierungsmethoden", + "confirm_and_enable": "Bestätige und aktiviere OTP", + "generate_new_recovery_codes": "Generiere neue Wiederherstellungs-Codes", + "otp": "OTP", + "recovery_codes": "Wiederherstellungs-Codes.", + "recovery_codes_warning": "Schreibe dir die Codes auf oder speichere sie an einem sicheren Ort - ansonsten wirst du sie nicht wiederfinden. Wenn du den Zugriff zu deiner 2FA App und die Wiederherstellungs-Codes verlierst, wirst du aus deinem Account ausgeschlossen sein.", + "scan": { + "desc": "Wenn du deine 2FA App verwendest, scanne diesen QR Code oder gebe den Schlüssel ein:", + "secret_code": "Schlüssel", + "title": "Scan" + }, + "setup_otp": "Richte OTP ein", + "title": "Zwei-Faktor Authentifizierung", + "verify": { + "desc": "Um 2FA zu aktivieren, gib den Code von deiner 2FA-App ein:" + }, + "wait_pre_setup_otp": "OTP voreinstellen", + "waiting_a_recovery_codes": "Erhalte Wiederherstellungscodes…", + "warning_of_generate_new_codes": "Wenn du neue Wiederherstellungs-Codes generierst, werden die alten Codes nicht mehr funktionieren." }, - "components": { - "panel": "Bedienfeld", - "panelHeader": "Panel-Kopf", - "topBar": "Obere Leiste", - "avatar": "Benutzer-Avatar (in der Profilansicht)", - "avatarStatus": "Benutzer-Avatar (in der Beitragsanzeige)", - "popup": "Dialogfenster und Hinweistexte", - "button": "Schaltfläche", - "buttonHover": "Schaltfläche (hover)", - "buttonPressed": "Schaltfläche (gedrückt)", - "buttonPressedHover": "Schaltfläche (gedrückt+hover)", - "input": "Eingabefeld" + "minimal_scopes_mode": "Minimiere Reichweitenoptionen", + "more_settings": "Weitere Einstellungen", + "mute_export": "Stumm geschaltete User exportieren", + "mute_export_button": "Stumm geschaltete User in eine cvs Datei exportieren", + "mute_import": "Stumm geschaltete User importieren", + "mute_import_error": "Fehler beim Importieren von stummgeschalteten Usern", + "mutes_and_blocks": "Stummgeschaltete und Geblockte", + "mutes_imported": "Stummgeschaltete User wurden importiert! Verarbeitung dauert eine Weile.", + "mutes_tab": "Stummschaltungen", + "name": "Name", + "name_bio": "Name & Bio", + "new_email": "Neue Email", + "new_password": "Neues Passwort", + "no_blocks": "Keine Blocks", + "no_mutes": "Keine Stummschaltungen", + "no_rich_text_description": "Rich-Text Formatierungen von allen Beiträgen entfernen", + "notification_blocks": "Einen User zu blocken stoppt alle Benachrichtigungen von ihm und deabonniert ihn.", + "notification_mutes": "Um nicht mehr die Benachrichtigungen von einem bestimmten User zu bekommen, verwende eine Stummschaltung.", + "notification_setting_block_from_strangers": "Benachrichtigungen von Nutzern blockieren, denen Du nicht folgst", + "notification_setting_filters": "Filter", + "notification_setting_hide_notification_contents": "Absender und Inhalte von Push-Nachrichten verbergen", + "notification_setting_privacy": "Privatsphäre", + "notification_visibility": "Benachrichtigungstypen, die angezeigt werden sollen", + "notification_visibility_emoji_reactions": "Reaktionen", + "notification_visibility_follows": "Folgt", + "notification_visibility_likes": "Favoriten", + "notification_visibility_mentions": "Erwähnungen", + "notification_visibility_moves": "Nutzer zieht um", + "notification_visibility_repeats": "Wiederholungen", + "notifications": "Benachrichtigungen", + "nsfw_clickthrough": "Aktiviere ausblendbares Overlay für Anhänge, die als NSFW markiert sind", + "oauth_tokens": "OAuth-Token", + "pad_emoji": "Emojis mit Leerzeichen umrahmen", + "panelRadius": "Panel", + "pause_on_unfocused": "Streaming pausieren, wenn das Tab nicht fokussiert ist", + "play_videos_in_modal": "Videos in größerem Medienfenster abspielen", + "post_status_content_type": "Beitragsart", + "preload_images": "Bilder vorausladen", + "presets": "Voreinstellungen", + "profile_background": "Profilhintergrund", + "profile_banner": "Profilbanner", + "profile_fields": { + "add_field": "Feld hinzufügen", + "label": "Profil Metadaten", + "name": "Label", + "value": "Inhalt" }, - "hintV3": "Um die Farbe der Schatten zu bestimmen, kann auch die Auszeichnung {0} verwendet werden, um einen anderen Fabbereich zu nutzen." - }, - "fonts": { - "_tab_label": "Schriften", - "help": "Wähl die Schriftart, die für Elemente der Benutzeroberfläche verwendet werden soll. Für \" Benutzerdefiniert\" musst du den genauen Schriftnamen eingeben, wie er im System angezeigt wird.", - "components": { - "interface": "Oberfläche", - "input": "Eingabefelder", - "post": "Beitragstext", - "postCode": "Dicktengleicher Text in einem Beitrag (Rich-Text)" + "profile_tab": "Profil", + "radii_help": "Kantenrundung (in Pixel) der Oberfläche anpassen", + "refresh_token": "Token aktualisieren", + "replies_in_timeline": "Antworten in der Zeitleiste", + "reply_visibility_all": "Alle Antworten zeigen", + "reply_visibility_following": "Zeige nur Antworten an mich oder an Benutzer, denen ich folge", + "reply_visibility_following_short": "Zeige Antworten an meine Follower", + "reply_visibility_self": "Nur Antworten an mich anzeigen", + "reply_visibility_self_short": "Zeige antworten nur einem selbst", + "reset_avatar": "Avatar zurücksetzten", + "reset_avatar_confirm": "Avatar wirklich zurücksetzen?", + "reset_background_confirm": "Hintergrund wirklich zurücksetzen?", + "reset_banner_confirm": "Banner wirklich zurücksetzen?", + "reset_profile_background": "Profilhintergrund zurücksetzen", + "reset_profile_banner": "Profilbanner zurücksetzen", + "revoke_token": "Widerrufen", + "right_sidebar": "Seitenleiste rechts anzeigen", + "save": "Änderungen speichern", + "saving_err": "Fehler beim Speichern der Einstellungen", + "saving_ok": "Einstellungen gespeichert", + "scope_copy": "Reichweite beim Antworten übernehmen (Direktnachrichten werden immer kopiert)", + "search_user_to_block": "Suche, wen du blocken willst", + "search_user_to_mute": "Suche, wen du stummschalten willst", + "security": "Sicherheit", + "security_tab": "Sicherheit", + "sensitive_by_default": "Alle Beiträge standardmäßig als heikel markieren", + "set_new_avatar": "Setze einen neuen Avatar", + "set_new_profile_background": "Setze einen neuen Hintergrund für dein Profil", + "set_new_profile_banner": "Setze einen neuen Banner für dein Profil", + "setting_changed": "Einstellungen weichen von den Standardeinstellungen ab", + "settings": "Einstellungen", + "show_admin_badge": "Zeige Admin-Abzeichen auf meinem Profil", + "show_moderator_badge": "Zeige Moderator-Abzeichen auf meinem Profil", + "stop_gifs": "Animationen nur beim Darüberfahren abspielen", + "streaming": "Aktiviere automatisches Laden (Streaming) von neuen Beiträgen", + "style": { + "advanced_colors": { + "_tab_label": "Erweitert", + "alert": "Warnhinweis-Hintergrund", + "alert_error": "Fehler", + "alert_neutral": "Neutral", + "alert_warning": "Warnung", + "badge": "Kennzeichnungs-Hintergrund", + "badge_notification": "Benachrichtigung", + "borders": "Rahmen", + "buttons": "Schaltflächen", + "chat": { + "border": "Ränder", + "incoming": "Eingehend", + "outgoing": "Ausgehend" + }, + "disabled": "aus", + "faint_text": "Verblasster Text", + "highlight": "Hervorgehobene Elemente", + "icons": "Icons", + "inputs": "Eingabefelder", + "panel_header": "Panel-Kopf", + "poll": "Umfragegraph", + "popover": "Kurzinfo, Menüs, Popover-Fenster", + "post": "Posts/Benutzerinfo", + "pressed": "Gedrückt", + "selectedMenu": "Ausgewähltes Menüelement", + "selectedPost": "Ausgewählter Post", + "tabs": "Reiter", + "toggled": "Umgeschaltet", + "top_bar": "Obere Leiste", + "underlay": "Halbtransparenter Hintergrund", + "wallpaper": "Hintergrund" + }, + "common": { + "color": "Farbe", + "contrast": { + "context": { + "18pt": "für großen (18pt+) Text", + "text": "für Text" + }, + "hint": "Das Kontrastverhältnis ist {ratio}, es {level} {context}", + "level": { + "aa": "entspricht Level AA Richtlinie (minimum)", + "aaa": "entspricht Level AAA Richtlinie (empfohlen)", + "bad": "entspricht keiner Richtlinien zur Barrierefreiheit" + } + }, + "opacity": "Deckkraft" + }, + "common_colors": { + "_tab_label": "Allgemein", + "foreground_hint": "Siehe Reiter \"Erweitert\" für eine detailliertere Einstellungen", + "main": "Allgemeine Farben", + "rgbo": "Symbole, Betonungen, Kennzeichnungen" + }, + "fonts": { + "_tab_label": "Schriften", + "components": { + "input": "Eingabefelder", + "interface": "Oberfläche", + "post": "Beitragstext", + "postCode": "Dicktengleicher Text in einem Beitrag (Rich-Text)" + }, + "custom": "Benutzerdefiniert", + "family": "Schriftname", + "help": "Wähl die Schriftart, die für Elemente der Benutzeroberfläche verwendet werden soll. Für \" Benutzerdefiniert\" musst du den genauen Schriftnamen eingeben, wie er im System angezeigt wird.", + "size": "Größe (in px)", + "weight": "Gewicht (Dicke)" + }, + "preview": { + "button": "Schaltfläche", + "checkbox": "Ich habe die Allgemeinen Geschäftsbedingungen überflogen", + "content": "Inhalt", + "error": "Beispielfehler", + "faint_link": "Hilfreiche Anleitung", + "fine_print": "Lies unser {0}, um nichts Nützliches zu lernen!", + "header": "Vorschau", + "header_faint": "Das ist in Ordnung", + "input": "Sitze gerade im Hofbräuhaus.", + "link": "ein netter kleiner Link", + "mono": "Inhalt", + "text": "Ein Haufen mehr von {0} und {1}" + }, + "radii": { + "_tab_label": "Abrundungen" + }, + "shadows": { + "_tab_label": "Schatten und Beleuchtung", + "blur": "Unschärfe", + "component": "Komponente", + "components": { + "avatar": "Benutzer-Avatar (in der Profilansicht)", + "avatarStatus": "Benutzer-Avatar (in der Beitragsanzeige)", + "button": "Schaltfläche", + "buttonHover": "Schaltfläche (hover)", + "buttonPressed": "Schaltfläche (gedrückt)", + "buttonPressedHover": "Schaltfläche (gedrückt+hover)", + "input": "Eingabefeld", + "panel": "Bedienfeld", + "panelHeader": "Panel-Kopf", + "popup": "Dialogfenster und Hinweistexte", + "topBar": "Obere Leiste" + }, + "filter_hint": { + "always_drop_shadow": "Achtung, dieser Schatten verwendet immer {0}, wenn der Browser dies unterstützt.", + "avatar_inset": "Bitte beachte, dass die Kombination von eingesetzten und nicht eingesetzten Schatten auf Avataren zu unerwarteten Ergebnissen bei transparenten Avataren führen kann.", + "drop_shadow_syntax": "{0} unterstützt Parameter {1} und Schlüsselwort {2} nicht.", + "inset_classic": "Eingesetzte Schatten werden mit {0} verwendet", + "spread_zero": "Schatten mit einer Streuung > 0 erscheinen so, als ob sie auf Null gesetzt wären" + }, + "hintV3": "Um die Farbe der Schatten zu bestimmen, kann auch die Auszeichnung {0} verwendet werden, um einen anderen Fabbereich zu nutzen.", + "inset": "Einsatz", + "override": "Überschreiben", + "shadow_id": "Schatten #{value}", + "spread": "Streuung" + }, + "switcher": { + "clear_all": "Alles leeren", + "clear_opacity": "Deckkraft leeren", + "help": { + "fe_downgraded": "PleromaFE Version wurde zurückgerollt.", + "fe_upgraded": "Mit dem Upgrade wurde auch eine neue Version von Pleromas Theme Engine installiert.", + "future_version_imported": "Die Datei, die du importiert hast, wurde für eine neuere Version vom FE gemacht.", + "migration_napshot_gone": "Snapshot konnte nicht gefunden werden, die Anzeige könnte daher teilweise möglicherweise nicht den Erwartungen entsprechen.", + "migration_snapshot_ok": "Vorsichtshalber wurde ein Snapshot des Themes geladen. Alternativ kann versucht werden, die Daten des Themes selbst zu laden.", + "older_version_imported": "Die Datei, die du importiert hast, wurde für eine ältere Version vom FE gemacht.", + "snapshot_missing": "Die Datei enthält keinen Theme-Snapshot, die Darstellung kann daher möglicherweise abweichend sein.", + "snapshot_present": "Snapshot des Themes wurde geladen, alle entsprechenden Einstellungen wurden überschrieben. Alternativ können die tatsächlichen Daten des Themes geladen werden.", + "snapshot_source_mismatch": "Versionskonflikt: vermutlich wurde das FE zurückgesetzt und dann ein Update durchgeführt. Falls das Theme mit einer alten FE-Version erstellt wurde, sollte vermutlich die alte Version verwendet werden, andernfalls die neue.", + "upgraded_from_v2": "PleromaFE wurde modernisiert, dein Theme könnte etwas anders aussehen als vorher.", + "v2_imported": "Die Datei, die du importiert hast, war für eine ältere Version des FEs. Wir versuchen, die Kompatibilität zu maximieren, aber es könnte trotzdem Inkonsistenz auftreten." + }, + "keep_as_is": "Lass es so, wie es ist", + "keep_color": "Farben beibehalten", + "keep_fonts": "Schriften beibehalten", + "keep_opacity": "Deckkraft beibehalten", + "keep_roundness": "Abrundungen beibehalten", + "keep_shadows": "Schatten beibehalten", + "load_theme": "Lade Theme", + "reset": "Zurücksetzen", + "save_load_hint": "Die \"Beibehalten\"-Optionen behalten die aktuell eingestellten Optionen beim Auswählen oder Laden von Designs bei, sie speichern diese Optionen auch beim Exportieren eines Designs. Wenn alle Kontrollkästchen deaktiviert sind, wird beim Exportieren des Designs alles gespeichert.", + "use_snapshot": "Alte Version", + "use_source": "Neue Version" + } }, - "family": "Schriftname", - "size": "Größe (in px)", - "weight": "Gewicht (Dicke)", - "custom": "Benutzerdefiniert" - }, - "preview": { - "header": "Vorschau", - "content": "Inhalt", - "error": "Beispielfehler", - "button": "Schaltfläche", - "text": "Ein Haufen mehr von {0} und {1}", - "mono": "Inhalt", - "input": "Sitze gerade im Hofbräuhaus.", - "faint_link": "Hilfreiche Anleitung", - "fine_print": "Lies unser {0}, um nichts Nützliches zu lernen!", - "header_faint": "Das ist in Ordnung", - "checkbox": "Ich habe die Allgemeinen Geschäftsbedingungen überflogen", - "link": "ein netter kleiner Link" - } + "subject_input_always_show": "Betreff-Feld immer anzeigen", + "subject_line_behavior": "Betreff beim Antworten kopieren", + "subject_line_email": "Wie Email: \"re: Betreff\"", + "subject_line_mastodon": "Wie Mastodon: unverändert kopieren", + "subject_line_noop": "Nicht kopieren", + "text": "Text", + "theme": "Farbschema", + "theme_help": "Benutze HTML-Farbcodes (#rrggbb) um dein Farbschema anzupassen.", + "theme_help_v2_1": "Du kannst auch die Farben und die Deckkraft bestimmter Komponenten überschreiben, indem du das Kontrollkästchen umschaltest. Verwende die Schaltfläche \"Alle löschen\", um alle Überschreibungen zurückzusetzen.", + "theme_help_v2_2": "Unter einigen Einträgen befinden sich Symbole für Hintergrund-/Textkontrastindikatoren, für detaillierte Informationen fahre mit der Maus darüber. Bitte beachte, dass bei der Verwendung von Transparenz Kontrastindikatoren den schlechtest möglichen Fall darstellen.", + "token": "Zeichen", + "tooltipRadius": "Tooltips/Warnungen", + "type_domains_to_mute": "Tippe die Domains ein, die du stummschalten willst", + "upload_a_photo": "Lade ein Foto hoch", + "useStreamingApi": "Empfange Posts und Benachrichtigungen in Echtzeit", + "useStreamingApiWarning": "(Nicht empfohlen, experimentell, bekannt dafür, Posts zu überspringen)", + "use_contain_fit": "Vorschaubilder nicht zuschneiden", + "use_one_click_nsfw": "Heikle Anhänge mit nur einem Klick öffnen", + "user_mutes": "User", + "user_settings": "Benutzereinstellungen", + "valid_until": "Gültig bis", + "values": { + "false": "nein", + "true": "Ja" + }, + "version": { + "backend_version": "Backend Version", + "frontend_version": "Frontend Version", + "title": "Version" + }, + "virtual_scrolling": "Rendering der Timeline optimieren", + "word_filter": "Wort Filter" }, - "app_name": "Anwendungsname", - "mfa": { - "otp": "OTP", - "recovery_codes_warning": "Schreibe dir die Codes auf oder speichere sie an einem sicheren Ort - ansonsten wirst du sie nicht wiederfinden. Wenn du den Zugriff zu deiner 2FA App und die Wiederherstellungs-Codes verlierst, wirst du aus deinem Account ausgeschlossen sein.", - "recovery_codes": "Wiederherstellungs-Codes.", - "warning_of_generate_new_codes": "Wenn du neue Wiederherstellungs-Codes generierst, werden die alten Codes nicht mehr funktionieren.", - "generate_new_recovery_codes": "Generiere neue Wiederherstellungs-Codes", - "title": "Zwei-Faktor Authentifizierung", - "waiting_a_recovery_codes": "Erhalte Wiederherstellungscodes…", - "authentication_methods": "Authentifizierungsmethoden", - "scan": { - "title": "Scan", - "secret_code": "Schlüssel", - "desc": "Wenn du deine 2FA App verwendest, scanne diesen QR Code oder gebe den Schlüssel ein:" - }, - "verify": { - "desc": "Um 2FA zu aktivieren, gib den Code von deiner 2FA-App ein:" - }, - "confirm_and_enable": "Bestätige und aktiviere OTP", - "setup_otp": "Richte OTP ein", - "wait_pre_setup_otp": "OTP voreinstellen" + "status": { + "bookmark": "Lesezeichen setzen", + "copy_link": "Beitragslink kopieren", + "delete": "Lösche Beitrag", + "delete_confirm": "Möchtest du diese Beitrag wirklich löschen?", + "expand": "Ausklappen", + "external_source": "Externe Quelle", + "favorites": "Favoriten", + "hide_content": "Inhalt verbergen", + "hide_full_subject": "Vollständiges Thema verbergen", + "mute_conversation": "Konversation stummstellen", + "nsfw": "NSFW", + "pin": "An Profil anheften", + "pinned": "Angeheftet", + "repeats": "Geteilte Beiträge", + "replies_list": "Antworten:", + "reply_to": "Antworten auf", + "show_content": "Inhalt anzeigen", + "show_full_subject": "Vollständiges Thema anzeigen", + "status_deleted": "Dieser Beitrag wurde gelöscht", + "status_unavailable": "Beitrag nicht verfügbar", + "thread_muted": "Thread stummgeschaltet", + "thread_muted_and_words": ", enthält folgende Wörter:", + "unbookmark": "Lesezeichen entfernen", + "unmute_conversation": "Konversation nicht mehr stummstellen", + "unpin": "Nicht mehr an Profil anheften" }, - "enter_current_password_to_confirm": "Gib dein aktuelles Passwort ein, um deine Identität zu bestätigen", - "security": "Sicherheit", - "allow_following_move": "Erlaube auto-follow, wenn von dir verfolgte Accounts umziehen", - "blocks_imported": "Blocks importiert! Die Verarbeitung wird einen Moment brauchen.", - "block_import_error": "Fehler beim Importieren der Blocks", - "block_import": "Block Import", - "block_export_button": "Exportiere deine Blocks in eine csv Datei", - "block_export": "Block Export", - "emoji_reactions_on_timeline": "Zeige Emoji-Reaktionen auf der Zeitleiste", - "domain_mutes": "Domains", - "changed_email": "Email Adresse erfolgreich geändert!", - "change_email_error": "Es trat ein Problem auf beim Versuch, deine Email Adresse zu ändern.", - "change_email": "Ändere Email", - "import_blocks_from_a_csv_file": "Importiere Blocks von einer CSV Datei", - "accent": "Akzent", - "no_blocks": "Keine Blocks", - "notification_visibility_emoji_reactions": "Reaktionen", - "new_email": "Neue Email", - "profile_fields": { - "value": "Inhalt", - "name": "Label", - "add_field": "Feld hinzufügen", - "label": "Profil Metadaten" + "time": { + "in_future": "in {0}", + "in_past": "vor {0}", + "now": "gerade eben", + "now_short": "jetzt", + "unit": { + "days": "{0} Tage", + "days_short": "{0}T", + "hours": "{0} Stunden", + "hours_short": "{0}Std", + "minutes": "{0} Minuten", + "minutes_short": "{0}Min", + "months": "{0} Monaten", + "months_short": "{0}Mo", + "seconds": "{0} Sekunden", + "seconds_short": "{0}s", + "weeks": "{0} Wochen", + "weeks_short": "{0}W", + "years": "{0} Jahren", + "years_short": "{0}Jhr" + } }, - "bot": "Dies ist ein Bot Account", - "blocks_tab": "Blocks", - "save": "Änderungen speichern", - "show_moderator_badge": "Zeige Moderator-Abzeichen auf meinem Profil", - "show_admin_badge": "Zeige Admin-Abzeichen auf meinem Profil", - "no_mutes": "Keine Stummschaltungen", - "reset_profile_background": "Profilhintergrund zurücksetzen", - "reset_avatar": "Avatar zurücksetzten", - "search_user_to_mute": "Suche, wen du stummschalten willst", - "search_user_to_block": "Suche, wen du blocken willst", - "reply_visibility_self_short": "Zeige antworten nur einem selbst", - "reply_visibility_following_short": "Zeige Antworten an meine Follower", - "notification_visibility_moves": "Nutzer zieht um", - "file_export_import": { - "errors": { - "file_too_new": "Inkompatible Major Version: {fileMajor}, dieses PleromaFE Version (settings ver {feMajor}) ist zu alt", - "invalid_file": "Die ausgewählte Datei kann nicht zur Wiederherstellung verwendet werden. Keine Änderungen wurden umgesetzt.", - "file_too_old": "Inkompatible Major Version: {fileMajor}, die Dateiversion ist zu alt und wird nicht mehr unterstützt (min. set. ver. {feMajor})", - "file_slightly_new": "Geringfügige Abweichung in der Dateiversion, einige Einstellungen konnten möglicherweise nicht geladen werden" - }, - "restore_settings": "Einstellungen von einer Datei wiederherstellen", - "backup_settings_theme": "Einstellungen und Theme in eine Datei speichern", - "backup_settings": "Einstellungen in Datei speichern", - "backup_restore": "Einstellungen backuppen" + "timeline": { + "collapse": "Einklappen", + "conversation": "Unterhaltung", + "error": "Fehler beim Lesen der Timeline: {0}", + "load_older": "Lade ältere Beiträge", + "no_more_statuses": "Keine weiteren Beiträge", + "no_retweet_hint": "Der Beitrag ist als nur-für-Follower oder als Direktnachricht markiert und kann nicht wiederholt werden", + "no_statuses": "Keine Beiträge", + "reload": "Neu laden", + "repeated": "wiederholte", + "show_new": "Zeige Neuere", + "socket_broke": "Netzverbindung verloren: CloseEvent code {0}", + "socket_reconnected": "Netzverbindung hergestellt", + "up_to_date": "Aktuell" }, - "hide_wallpaper": "Verstecke Instanzhintergrundbild", - "hide_all_muted_posts": "Verstecke stummgeschaltete Posts", - "hide_media_previews": "Verstecke Vorschau von Medien", - "word_filter": "Wort Filter", - "mutes_and_blocks": "Stummgeschaltete und Geblockte", - "chatMessageRadius": "Chat Nachricht", - "import_mutes_from_a_csv_file": "Importiere stummgeschaltete User von einer cvs Datei", - "mutes_imported": "Stummgeschaltete User wurden importiert! Verarbeitung dauert eine Weile.", - "mute_import_error": "Fehler beim Importieren von stummgeschalteten Usern", - "mute_import": "Stumm geschaltete User importieren", - "mute_export_button": "Stumm geschaltete User in eine cvs Datei exportieren", - "mute_export": "Stumm geschaltete User exportieren", - "setting_changed": "Einstellungen weichen von den Standardeinstellungen ab", - "notification_blocks": "Einen User zu blocken stoppt alle Benachrichtigungen von ihm und deabonniert ihn.", - "version": { - "frontend_version": "Frontend Version", - "backend_version": "Backend Version", - "title": "Version" + "tool_tip": { + "accept_follow_request": "Folgeanfrage annehmen", + "add_reaction": "Emoji-Reaktion hinzufügen", + "bookmark": "Lesezeichen", + "favorite": "Favorisieren", + "media_upload": "Medien hochladen", + "reject_follow_request": "Folgeanfrage ablehnen", + "repeat": "Wiederholen", + "reply": "Antworten", + "user_settings": "Benutzereinstellungen" }, - "notification_mutes": "Um nicht mehr die Benachrichtigungen von einem bestimmten User zu bekommen, verwende eine Stummschaltung.", - "user_mutes": "User", - "notification_setting_privacy": "Privatsphäre", - "notification_setting_filters": "Filter", - "greentext": "Meme Pfeile", - "fun": "Spaß", - "upload_a_photo": "Lade ein Foto hoch", - "type_domains_to_mute": "Tippe die Domains ein, die du stummschalten willst", - "useStreamingApiWarning": "(Nicht empfohlen, experimentell, bekannt dafür, Posts zu überspringen)", - "useStreamingApi": "Empfange Posts und Benachrichtigungen in Echtzeit", - "more_settings": "Weitere Einstellungen", - "notification_setting_hide_notification_contents": "Absender und Inhalte von Push-Nachrichten verbergen", - "notification_setting_block_from_strangers": "Benachrichtigungen von Nutzern blockieren, denen Du nicht folgst", - "virtual_scrolling": "Rendering der Timeline optimieren", - "sensitive_by_default": "Alle Beiträge standardmäßig als heikel markieren", - "reset_background_confirm": "Hintergrund wirklich zurücksetzen?", - "reset_banner_confirm": "Banner wirklich zurücksetzen?", - "reset_avatar_confirm": "Avatar wirklich zurücksetzen?", - "reset_profile_banner": "Profilbanner zurücksetzen", - "hide_shoutbox": "Shoutbox der Instanz verbergen", - "right_sidebar": "Seitenleiste rechts anzeigen" - }, - "timeline": { - "collapse": "Einklappen", - "conversation": "Unterhaltung", - "error_fetching": "Fehler beim Laden", - "load_older": "Lade ältere Beiträge", - "no_retweet_hint": "Der Beitrag ist als nur-für-Follower oder als Direktnachricht markiert und kann nicht wiederholt werden", - "repeated": "wiederholte", - "show_new": "Zeige Neuere", - "up_to_date": "Aktuell", - "no_statuses": "Keine Beiträge", - "no_more_statuses": "Keine weiteren Beiträge", - "reload": "Neu laden", - "error": "Fehler beim Lesen der Timeline: {0}", - "socket_broke": "Netzverbindung verloren: CloseEvent code {0}", - "socket_reconnected": "Netzverbindung hergestellt" - }, - "user_card": { - "approve": "Genehmigen", - "block": "Blockieren", - "blocked": "Blockiert!", - "deny": "Ablehnen", - "follow": "Folgen", - "follow_sent": "Anfrage gesendet!", - "follow_progress": "Anfragen…", - "follow_unfollow": "Folgen beenden", - "followees": "Folgt", - "followers": "Folgende", - "following": "Folgst du!", - "follows_you": "Folgt dir!", - "its_you": "Das bist du!", - "mute": "Stummschalten", - "muted": "Stummgeschaltet", - "per_day": "pro Tag", - "remote_follow": "Folgen", - "statuses": "Beiträge", - "admin_menu": { - "sandbox": "Erzwinge Beiträge nur für Follower sichtbar zu sein", - "grant_admin": "Administratorprivilegien gewähren", - "delete_user": "Nutzer löschen", - "strip_media": "Medien von Beiträgen entfernen", - "force_nsfw": "Alle Beiträge als pervers markieren", - "activate_account": "Aktiviere Account", - "revoke_moderator": "Administratorstatuß wiederrufen", - "grant_moderator": "Moderatorstatuß gewähren", - "revoke_admin": "Administratorstatuß wiederrufen", - "moderation": "Moderation", - "delete_account": "Konto löschen", - "deactivate_account": "Konto deaktivieren", - "quarantine": "Beiträge des Nutzers können nur auf der eigenen Instanz gesehen werden", - "disable_any_subscription": "Alle Folgeanfragen für diesen Nutzer grundsätzlich ablehnen", - "disable_remote_subscription": "Nutzer anderer Instanzen vom Folgen dieses Nutzers ausschließen", - "force_unlisted": "Beiträge von der öffentlichen Zeitleiste ausschliessen" + "upload": { + "error": { + "base": "Hochladen fehlgeschlagen.", + "default": "Bitte versuche es später erneut", + "file_too_big": "Datei ist zu groß [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Hochladen fehlgeschlagen" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "block_progress": "Blocken…", - "unblock_progress": "Entblocken…", - "unblock": "Entblocken", - "report": "Melden", - "mention": "Erwähnungen", - "media": "Medien", - "hidden": "Versteckt", - "favorites": "Favoriten", - "bot": "Bot", - "show_repeats": "Geteilte Beiträge anzeigen", - "hide_repeats": "Geteilte Beiträge nicht anzeigen", - "mute_progress": "Stummschalten erfolgt…", - "unmute_progress": "Aufhebung erfolgt…", - "unmute": "Stummschalten aufheben", - "unsubscribe": "Entfolgen", - "subscribe": "Folgen", - "message": "Nachricht", - "highlight": { - "side": "Randmarkierung", - "striped": "gestreifter Hintergrund", - "solid": "kein Muster verwenden", - "disabled": "Nicht hervorheben" + "user_card": { + "admin_menu": { + "activate_account": "Aktiviere Account", + "deactivate_account": "Konto deaktivieren", + "delete_account": "Konto löschen", + "delete_user": "Nutzer löschen", + "disable_any_subscription": "Alle Folgeanfragen für diesen Nutzer grundsätzlich ablehnen", + "disable_remote_subscription": "Nutzer anderer Instanzen vom Folgen dieses Nutzers ausschließen", + "force_nsfw": "Alle Beiträge als pervers markieren", + "force_unlisted": "Beiträge von der öffentlichen Zeitleiste ausschliessen", + "grant_admin": "Administratorprivilegien gewähren", + "grant_moderator": "Moderatorstatuß gewähren", + "moderation": "Moderation", + "quarantine": "Beiträge des Nutzers können nur auf der eigenen Instanz gesehen werden", + "revoke_admin": "Administratorstatuß wiederrufen", + "revoke_moderator": "Administratorstatuß wiederrufen", + "sandbox": "Erzwinge Beiträge nur für Follower sichtbar zu sein", + "strip_media": "Medien von Beiträgen entfernen" + }, + "approve": "Genehmigen", + "block": "Blockieren", + "block_progress": "Blocken…", + "blocked": "Blockiert!", + "bot": "Bot", + "deny": "Ablehnen", + "favorites": "Favoriten", + "follow": "Folgen", + "follow_progress": "Anfragen…", + "follow_sent": "Anfrage gesendet!", + "follow_unfollow": "Folgen beenden", + "followees": "Folgt", + "followers": "Folgende", + "following": "Folgst du!", + "follows_you": "Folgt dir!", + "hidden": "Versteckt", + "hide_repeats": "Geteilte Beiträge nicht anzeigen", + "highlight": { + "disabled": "Nicht hervorheben", + "side": "Randmarkierung", + "solid": "kein Muster verwenden", + "striped": "gestreifter Hintergrund" + }, + "its_you": "Das bist du!", + "media": "Medien", + "mention": "Erwähnungen", + "message": "Nachricht", + "mute": "Stummschalten", + "mute_progress": "Stummschalten erfolgt…", + "muted": "Stummgeschaltet", + "per_day": "pro Tag", + "remote_follow": "Folgen", + "report": "Melden", + "show_repeats": "Geteilte Beiträge anzeigen", + "statuses": "Beiträge", + "subscribe": "Folgen", + "unblock": "Entblocken", + "unblock_progress": "Entblocken…", + "unmute": "Stummschalten aufheben", + "unmute_progress": "Aufhebung erfolgt…", + "unsubscribe": "Entfolgen" + }, + "user_profile": { + "profile_does_not_exist": "Profil nicht vorhanden.", + "profile_loading_error": "Beim Laden dieses Profils ist ein Fehler aufgetreten.", + "timeline_title": "Beiträge" + }, + "user_reporting": { + "add_comment_description": "Die Beschwerde wird an die Moderatoren dieser Instanz gesendet. Die Gründe für die Beschwerde können hier angegeben werden:", + "additional_comments": "Weitere Anmerkungen", + "forward_description": "Das fragliche Konto befindet sich auf einem anderen Server. Soll eine Kopie der Beschwerde an den dortigen Verantwortlichen gesendet werden?", + "forward_to": "Weiterleiten an {0}", + "generic_error": "Beim Verarbeiten der Anfrage ist ein Fehler aufgetreten.", + "submit": "Senden", + "title": "{0} melddn" + }, + "who_to_follow": { + "more": "Mehr", + "who_to_follow": "Wem soll ich folgen" } - }, - "user_profile": { - "timeline_title": "Beiträge", - "profile_loading_error": "Beim Laden dieses Profils ist ein Fehler aufgetreten.", - "profile_does_not_exist": "Profil nicht vorhanden." - }, - "who_to_follow": { - "more": "Mehr", - "who_to_follow": "Wem soll ich folgen" - }, - "tool_tip": { - "media_upload": "Medien hochladen", - "repeat": "Wiederholen", - "reply": "Antworten", - "favorite": "Favorisieren", - "user_settings": "Benutzereinstellungen", - "bookmark": "Lesezeichen", - "reject_follow_request": "Folgeanfrage ablehnen", - "accept_follow_request": "Folgeanfrage annehmen", - "add_reaction": "Emoji-Reaktion hinzufügen" - }, - "upload": { - "error": { - "base": "Hochladen fehlgeschlagen.", - "file_too_big": "Datei ist zu groß [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Bitte versuche es später erneut", - "message": "Hochladen fehlgeschlagen" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "Leute", - "hashtags": "Hashtags", - "person_talking": "{count} Person spricht darüber", - "people_talking": "{count} Leute sprechen darüber", - "no_results": "Keine Ergebnisse" - }, - "password_reset": { - "forgot_password": "Passwort vergessen?", - "password_reset": "Password zurücksetzen", - "instruction": "Wenn du hier deinen Benutznamen oder die zugehörige E-Mail-Adresse eingibst, kann dir der Server einen Link zum Passwortzurücksetzen zuschicken.", - "placeholder": "Dein Benutzername oder die zugehörige E-Mail-Adresse", - "check_email": "Im E-Mail-Posteingang des angebenen Kontos müsste sich jetzt (oder zumindest in Kürze) die E-Mail mit dem Link zum Passwortzurücksetzen befinden.", - "return_home": "Zurück zur Heimseite", - "too_many_requests": "Kurze Pause. Zu viele Versuche. Bitte später nochmal probieren.", - "password_reset_disabled": "Passwortzurücksetzen deaktiviert. Bitte Administrator kontaktieren.", - "password_reset_required": "Passwortzurücksetzen erforderlich.", - "password_reset_required_but_mailer_is_disabled": "Passwortzurücksetzen wäre erforderlich, ist aber deaktiviert. Bitte Administrator kontaktieren." - }, - "about": { - "mrf": { - "federation": "Föderation", - "mrf_policies": "Aktive MRF-Richtlinien", - "simple": { - "simple_policies": "Instanzspezifische Richtlinien", - "accept": "Akzeptieren", - "reject": "Ablehnen", - "reject_desc": "Diese Instanz akzeptiert keine Nachrichten der folgenden Instanzen:", - "quarantine": "Quarantäne", - "ftl_removal": "Von der Zeitleiste \"Das bekannte Netzwerk\" entfernen", - "media_removal": "Medienentfernung", - "media_removal_desc": "Diese Instanz entfernt Medien von den Beiträgen der folgenden Instanzen:", - "media_nsfw": "Erzwingen Medien als heikel zu makieren", - "media_nsfw_desc": "Diese Instanz makiert die Medien in Beiträgen der folgenden Instanzen als heikel:", - "accept_desc": "Diese Instanz akzeptiert nur Nachrichten von den folgenden Instanzen:", - "quarantine_desc": "Diese Instanz sendet nur öffentliche Beiträge zu den folgenden Instanzen:", - "ftl_removal_desc": "Dieser Instanz entfernt folgende Instanzen von der \"Das bekannte Netzwerk\" Zeitleiste:" - }, - "keyword": { - "keyword_policies": "Keyword Richtlinien", - "reject": "Ablehnen", - "replace": "Ersetzen", - "is_replaced_by": "→", - "ftl_removal": "Von der Zeitleiste \"Das gesamte bekannte Netzwerk\" entfernen" - }, - "mrf_policies_desc": "MRF Richtlinien beeinflussen das Föderationsverhalten dieser Instanz. Die folgenden Richtlinien sind aktiv:" - }, - "staff": "Mitarbeiter" - }, - "domain_mute_card": { - "mute": "Stummschalten", - "mute_progress": "Wird stummgeschaltet…", - "unmute": "Stummschaltung aufheben", - "unmute_progress": "Stummschaltung wird aufgehoben…" - }, - "exporter": { - "export": "Exportieren", - "processing": "Verarbeitung läuft, bald wird Du dazu aufgefordert, deine Datei herunterzuladen" - }, - "image_cropper": { - "crop_picture": "Bild zuschneiden", - "save": "Speichern", - "cancel": "Abbrechen", - "save_without_cropping": "Ohne Zuschneiden speichern" - }, - "importer": { - "submit": "Absenden", - "success": "Erfolgreich importiert.", - "error": "Ein Fehler ist beim Verabeiten der Datei aufgetreten." - }, - "media_modal": { - "previous": "Zurück", - "next": "Weiter" - }, - "polls": { - "add_poll": "Umfrage hinzufügen", - "add_option": "Option hinzufügen", - "option": "Option", - "votes": "Stimmen", - "vote": "Abstimmen", - "type": "Umfragetyp", - "multiple_choices": "Mehrere Auswahlmöglichkeiten", - "single_choice": "Eine Auswahlmöglichkeit", - "expiry": "Alter der Umfrage", - "expired": "Die Umfrage endete vor {0}", - "not_enough_options": "Zu wenig einzigartige Auswahlmöglichkeiten in der Umfrage", - "expires_in": "Die Umfrage endet in {0}", - "votes_count": "{count} Stimme | {count} Stimmen", - "people_voted_count": "{count} Person hat gewählt | {count} Personen haben gewählt" - }, - "emoji": { - "stickers": "Sticker", - "emoji": "Emoji", - "search_emoji": "Nach einem Emoji suchen", - "custom": "Benutzerdefinierter Emoji", - "keep_open": "Auswahlfenster offen halten", - "add_emoji": "Emoji einfügen", - "load_all": "Lade alle {emojiAmount} Emoji", - "load_all_hint": "Erste {saneAmount} Emoji geladen, alle Emoji zu laden könnte Leistungsprobleme verursachen.", - "unicode": "Unicode Emoji" - }, - "interactions": { - "load_older": "Lade ältere Interaktionen", - "follows": "Neue Follower", - "favs_repeats": "Wiederholungen und Favoriten", - "moves": "Benutzer migriert zu" - }, - "selectable_list": { - "select_all": "Wähle alle" - }, - "remote_user_resolver": { - "searching_for": "Suche für", - "error": "Nicht gefunden.", - "remote_user_resolver": "Resolver für Nutzer auf anderen Instanzen" - }, - "errors": { - "storage_unavailable": "Pleroma konnte nicht auf den Browser Speicher zugreifen. Deine Anmeldung und deine Einstellungen werden nicht gespeichert. Es kann unvorhersehbare Probleme geben. Versuche ansonsten Cookies zu erlauben." - }, - "shoutbox": { - "title": "Shoutbox" - }, - "chats": { - "error_sending_message": "Beim Senden der Nachricht ist ein Fehler aufgetreten.", - "error_loading_chat": "Beim Laden des Chats ist ein Fehler aufgetreten.", - "delete_confirm": "Soll diese Nachricht wirklich gelöscht werden?", - "empty_message_error": "Die Nachricht darf nicht leer sein", - "delete": "Löschen", - "message_user": "Nachricht an {nickname} senden", - "empty_chat_list_placeholder": "Es sind noch keine Chats vorhanden. Jetzt einen Chat starten!", - "more": "Mehr", - "you": "Du:", - "new": "Neuer Chat", - "chats": "Chats" - }, - "user_reporting": { - "generic_error": "Beim Verarbeiten der Anfrage ist ein Fehler aufgetreten.", - "submit": "Senden", - "forward_to": "Weiterleiten an {0}", - "forward_description": "Das fragliche Konto befindet sich auf einem anderen Server. Soll eine Kopie der Beschwerde an den dortigen Verantwortlichen gesendet werden?", - "additional_comments": "Weitere Anmerkungen", - "add_comment_description": "Die Beschwerde wird an die Moderatoren dieser Instanz gesendet. Die Gründe für die Beschwerde können hier angegeben werden:", - "title": "{0} melddn" - }, - "status": { - "copy_link": "Beitragslink kopieren", - "status_unavailable": "Beitrag nicht verfügbar", - "unmute_conversation": "Konversation nicht mehr stummstellen", - "mute_conversation": "Konversation stummstellen", - "replies_list": "Antworten:", - "reply_to": "Antworten auf", - "delete_confirm": "Möchtest du diese Beitrag wirklich löschen?", - "pinned": "Angeheftet", - "unpin": "Nicht mehr an Profil anheften", - "pin": "An Profil anheften", - "delete": "Lösche Beitrag", - "favorites": "Favoriten", - "expand": "Ausklappen", - "nsfw": "NSFW", - "status_deleted": "Dieser Beitrag wurde gelöscht", - "hide_content": "Inhalt verbergen", - "show_content": "Inhalt anzeigen", - "hide_full_subject": "Vollständiges Thema verbergen", - "show_full_subject": "Vollständiges Thema anzeigen", - "thread_muted": "Thread stummgeschaltet", - "external_source": "Externe Quelle", - "unbookmark": "Lesezeichen entfernen", - "bookmark": "Lesezeichen setzen", - "repeats": "Geteilte Beiträge", - "thread_muted_and_words": ", enthält folgende Wörter:" - }, - "time": { - "now": "gerade eben", - "now_short": "jetzt", - "in_past": "vor {0}", - "in_future": "in {0}", - "unit": { - "seconds_short": "{0}s", - "second_short": "{0}s", - "seconds": "{0} Sekunden", - "second": "{0} Sekunde", - "years_short": "{0}Jhr", - "year_short": "{0}Jhr", - "years": "{0} Jahren", - "year": "{0} Jahr", - "weeks_short": "{0}W", - "week_short": "{0}W", - "weeks": "{0} Wochen", - "week": "{0} Woche", - "months_short": "{0}Mo", - "month_short": "{0}Mo", - "months": "{0} Monaten", - "month": "{0} Monat", - "minutes_short": "{0}Min", - "minute_short": "{0}Min", - "minutes": "{0} Minuten", - "minute": "{0} Minute", - "hours_short": "{0}Std", - "hour_short": "{0}Std", - "hours": "{0} Stunden", - "hour": "{0} Stunde", - "days_short": "{0}T", - "day_short": "{0}T", - "days": "{0} Tage", - "day": "{0} Tag" - } - }, - "display_date": { - "today": "Heute" - }, - "file_type": { - "file": "Datei", - "image": "Bild", - "video": "Video", - "audio": "Audio" - } -} +} \ No newline at end of file diff --git a/src/i18n/dotted-to-nested b/src/i18n/dotted-to-nested new file mode 100755 index 00000000..ba80ab51 --- /dev/null +++ b/src/i18n/dotted-to-nested @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +# For restructuring files that have keys like "chat.title" +# into more useful formats + +import sys +import json +from collections import defaultdict + +with open(sys.argv[1], "r") as f: + data = json.load(f) + +d = defaultdict(str) + + +def create_and_set(dic, key_path, value): + if len(key_path) == 1: + dic[key_path[0]] = value + else: + if key_path[0] not in dic: + dic[key_path[0]] = {} + create_and_set(dic[key_path[0]], key_path[1:], value) + + +for key, value in data.items(): + nested_key = key.split(".") + create_and_set(d, nested_key, value) + +with open(sys.argv[1], "w", encoding="utf-8") as f: + json.dump(d, f, indent=4, sort_keys=True, ensure_ascii=False) diff --git a/src/i18n/en.json b/src/i18n/en.json index 0971f77c..e4391543 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1,1011 +1,1008 @@ { - "about": { - "mrf": { - "federation": "Federation", - "keyword": { - "keyword_policies": "Keyword policies", - "ftl_removal": "Removal from \"The Whole Known Network\" Timeline", - "reject": "Reject", - "replace": "Replace", - "is_replaced_by": "→" - }, - "mrf_policies": "Enabled MRF policies", - "mrf_policies_desc": "MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:", - "simple": { - "simple_policies": "Instance-specific policies", - "instance": "Instance", - "reason": "Reason", - "not_applicable": "N/A", - "accept": "Accept", - "accept_desc": "This instance only accepts messages from the following instances:", - "reject": "Reject", - "reject_desc": "This instance will not accept messages from the following instances:", - "quarantine": "Quarantine", - "quarantine_desc": "This instance will send only public posts to the following instances:", - "ftl_removal": "Removal from \"Known Network\" Timeline", - "ftl_removal_desc": "This instance removes these instances from \"Known Network\" timeline:", - "media_removal": "Media Removal", - "media_removal_desc": "This instance removes media from posts on the following instances:", - "media_nsfw": "Media force-set as sensitive", - "media_nsfw_desc": "This instance forces media to be set sensitive in posts on the following instances:" - } - }, - "staff": "Staff" - }, - "announcements": { - "page_header": "Announcements", - "title": "Announcement", - "mark_as_read_action": "Mark as read", - "post_form_header": "Post announcement", - "post_placeholder": "Type your announcement content here...", - "post_action": "Post", - "post_error": "Error: {error}", - "close_error": "Close", - "delete_action": "Delete", - "start_time_prompt": "Start time: ", - "end_time_prompt": "End time: ", - "all_day_prompt": "This is an all-day event", - "published_time_display": "Published at {time}", - "start_time_display": "Starts at {time}", - "end_time_display": "Ends at {time}", - "edit_action": "Edit", - "submit_edit_action": "Submit", - "cancel_edit_action": "Cancel", - "inactive_message": "This announcement is inactive" - }, - "shoutbox": { - "title": "Shoutbox" - }, - "domain_mute_card": { - "mute": "Mute", - "mute_progress": "Muting…", - "unmute": "Unmute", - "unmute_progress": "Unmuting…" - }, - "exporter": { - "export": "Export", - "processing": "Processing, you'll soon be asked to download your file" - }, - "features_panel": { - "shout": "Shoutbox", - "pleroma_chat_messages": "Pleroma Chat", - "gopher": "Gopher", - "media_proxy": "Media proxy", - "scope_options": "Scope options", - "text_limit": "Text limit", - "title": "Features", - "who_to_follow": "Who to follow", - "upload_limit": "Upload limit" - }, - "finder": { - "error_fetching_user": "Error fetching user", - "find_user": "Find user" - }, - "general": { - "apply": "Apply", - "submit": "Submit", - "more": "More", - "loading": "Loading…", - "generic_error": "An error occured", - "error_retry": "Please try again", - "retry": "Try again", - "optional": "optional", - "show_more": "Show more", - "show_less": "Show less", - "dismiss": "Dismiss", - "cancel": "Cancel", - "disable": "Disable", - "enable": "Enable", - "confirm": "Confirm", - "verify": "Verify", - "close": "Close", - "peek": "Peek", - "role": { - "admin": "Admin", - "moderator": "Moderator" - }, - "flash_content": "Click to show Flash content using Ruffle (Experimental, may not work).", - "flash_security": "Note that this can be potentially dangerous since Flash content is still arbitrary code.", - "flash_fail": "Failed to load flash content, see console for details.", - "scope_in_timeline": { - "direct": "Direct", - "private": "Followers-only", - "public": "Public", - "unlisted": "Unlisted" - } - }, - "image_cropper": { - "crop_picture": "Crop picture", - "save": "Save", - "save_without_cropping": "Save without cropping", - "cancel": "Cancel" - }, - "importer": { - "submit": "Submit", - "success": "Imported successfully.", - "error": "An error occured while importing this file." - }, - "login": { - "login": "Log in", - "description": "Log in with OAuth", - "logout": "Log out", - "password": "Password", - "placeholder": "e.g. lain", - "register": "Register", - "username": "Username", - "hint": "Log in to join the discussion", - "authentication_code": "Authentication code", - "enter_recovery_code": "Enter a recovery code", - "enter_two_factor_code": "Enter a two-factor code", - "recovery_code": "Recovery code", - "heading": { - "totp": "Two-factor authentication", - "recovery": "Two-factor recovery" - } - }, - "media_modal": { - "previous": "Previous", - "next": "Next", - "counter": "{current} / {total}", - "hide": "Close media viewer" - }, - "nav": { - "about": "About", - "administration": "Administration", - "back": "Back", - "friend_requests": "Follow requests", - "mentions": "Mentions", - "interactions": "Interactions", - "dms": "Direct messages", - "public_tl": "Public timeline", - "public_timeline_description": "Public posts from this instance", - "timeline": "Timeline", - "home_timeline": "Home timeline", - "home_timeline_description": "Posts from people you follow", - "bubble_timeline": "Bubble timeline", - "bubble_timeline_description": "Posts from instances close to yours, as recommended by the admin(s)", - "twkn": "Known Network", - "twkn_timeline_description": "Posts from the entire network", - "bookmarks": "Bookmarks", - "user_search": "User Search", - "search": "Search", - "who_to_follow": "Who to follow", - "preferences": "Preferences", - "timelines": "Timelines", - "chats": "Chats", - "lists": "Lists", - "announcements": "Announcements" - }, - "notifications": { - "broken_favorite": "Unknown status, searching for it…", - "error": "Error fetching notifications: {0}", - "favorited_you": "favorited your status", - "followed_you": "followed you", - "follow_request": "wants to follow you", - "load_older": "Load older notifications", - "notifications": "Notifications", - "read": "Read!", - "repeated_you": "repeated your status", - "no_more_notifications": "No more notifications", - "migrated_to": "migrated to", - "reacted_with": "reacted with {0}", - "poll_ended": "poll has ended" - }, - "polls": { - "add_poll": "Add poll", - "add_option": "Add option", - "option": "Option", - "votes": "votes", - "people_voted_count": "{count} person voted | {count} people voted", - "votes_count": "{count} vote | {count} votes", - "vote": "Vote", - "type": "Poll type", - "single_choice": "Single choice", - "multiple_choices": "Multiple choices", - "expiry": "Poll age", - "expires_in": "Poll ends in {0}", - "expired": "Poll ended {0} ago", - "not_enough_options": "Too few unique options in poll" - }, - "emoji": { - "stickers": "Stickers", - "emoji": "Emoji", - "keep_open": "Keep picker open", - "search_emoji": "Search for an emoji", - "add_emoji": "Insert emoji", - "custom": "Custom emoji", - "unicode": "Unicode emoji", - "load_all_hint": "Loaded first {saneAmount} emoji, loading all emoji may cause performance issues.", - "load_all": "Loading all {emojiAmount} emoji" - }, - "errors": { - "storage_unavailable": "Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies." - }, - "interactions": { - "favs_repeats": "Repeats and favorites", - "follows": "New follows", - "moves": "User migrates", - "load_older": "Load older interactions" - }, - "post_status": { - "new_status": "Post new status", - "account_not_locked_warning": "Your account is not {0}. Anyone can follow you to view your follower-only posts.", - "account_not_locked_warning_link": "locked", - "media_not_sensitive_warning": "You have a Content Warning, but the attachments are not marked as sensitive!", - "attachments_sensitive": "Mark attachments as sensitive", - "media_description": "Media description", - "content_type": { - "text/plain": "Plain text", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode", - "text/x.misskeymarkdown": "MFM" - }, - "content_warning": "Subject (optional)", - "default": "Just landed in L.A.", - "direct_warning_to_all": "This post will be visible to all the mentioned users.", - "direct_warning_to_first_only": "This post will only be visible to the mentioned users at the beginning of the message.", - "posting": "Posting", - "post": "Post", - "preview": "Preview", - "preview_empty": "Empty", - "empty_status_error": "Can't post an empty status with no files", - "media_description_error": "Failed to update media, try again", - "scope_notice": { - "public": "This post will be visible to everyone", - "private": "This post will be visible to your followers only", - "unlisted": "This post will not be visible in Public Timeline and The Whole Known Network", - "local": "This post will not be visible on other instances" - }, - "scope": { - "direct": "Direct - post to mentioned users only", - "private": "Followers-only - post to followers only", - "public": "Public - post to public timelines", - "unlisted": "Unlisted - do not post to public timelines", - "local": "Local - do not federate this post" - } - }, - "registration": { - "bio": "Bio", - "email": "Email", - "fullname": "Display name", - "password_confirm": "Password confirmation", - "registration": "Registration", - "token": "Invite token", - "captcha": "CAPTCHA", - "new_captcha": "Click the image to get a new captcha", - "username_placeholder": "e.g. lain", - "fullname_placeholder": "e.g. Lain Iwakura", - "bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.", - "reason": "Reason to register", - "reason_placeholder": "This instance approves registrations manually.\nLet the administration know why you want to register.", - "register": "Register", - "validations": { - "username_required": "cannot be left blank", - "fullname_required": "cannot be left blank", - "email_required": "cannot be left blank", - "password_required": "cannot be left blank", - "password_confirmation_required": "cannot be left blank", - "password_confirmation_match": "should be the same as password" - }, - "email_language": "In which language do you want to receive emails from the server?" - }, - "remote_user_resolver": { - "remote_user_resolver": "Remote user resolver", - "searching_for": "Searching for", - "error": "Not found." - }, - "selectable_list": { - "select_all": "Select all" - }, - "settings": { - "app_name": "App name", - "expert_mode": "Show advanced", - "save": "Save changes", - "security": "Security", - "setting_changed": "Setting is different from default", - "setting_server_side": "This setting is tied to your profile and affects all sessions and clients", - "enter_current_password_to_confirm": "Enter your current password to confirm your identity", - "post_look_feel": "Posts Look & Feel", - "mention_links": "Mention links", - "mfa": { - "otp": "OTP", - "setup_otp": "Setup OTP", - "wait_pre_setup_otp": "presetting OTP", - "confirm_and_enable": "Confirm & enable OTP", - "title": "Two-factor Authentication", - "generate_new_recovery_codes": "Generate new recovery codes", - "warning_of_generate_new_codes": "When you generate new recovery codes, your old codes won’t work anymore.", - "recovery_codes": "Recovery codes.", - "waiting_a_recovery_codes": "Receiving backup codes…", - "recovery_codes_warning": "Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.", - "authentication_methods": "Authentication methods", - "scan": { - "title": "Scan", - "desc": "Using your two-factor app, scan this QR code or enter text key:", - "secret_code": "Key" - }, - "verify": { - "desc": "To enable two-factor authentication, enter the code from your two-factor app:" - } - }, - "allow_following_move": "Allow auto-follow when following account moves", - "attachmentRadius": "Attachments", - "attachments": "Attachments", - "avatar": "Avatar", - "avatarAltRadius": "Avatars (notifications)", - "avatarRadius": "Avatars", - "background": "Background", - "bio": "Bio", - "email_language": "Language for receiving emails from the server", - "block_export": "Block export", - "block_export_button": "Export your blocks to a csv file", - "block_import": "Block import", - "block_import_error": "Error importing blocks", - "blocks_imported": "Blocks imported! Processing them will take a while.", - "mute_export": "Mute export", - "mute_export_button": "Export your mutes to a csv file", - "mute_import": "Mute import", - "mute_import_error": "Error importing mutes", - "mutes_imported": "Mutes imported! Processing them will take a while.", - "import_mutes_from_a_csv_file": "Import mutes from a csv file", - "account_backup": "Account backup", - "account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.", - "account_backup_table_head": "Backup", - "download_backup": "Download", - "backup_not_ready": "This backup is not ready yet.", - "remove_backup": "Remove", - "list_backups_error": "Error fetching backup list: {error}", - "add_backup": "Create a new backup", - "added_backup": "Added a new backup.", - "add_backup_error": "Error adding a new backup: {error}", - "blocks_tab": "Blocks", - "bot": "This is a bot account", - "btnRadius": "Buttons", - "cBlue": "Blue (Reply, follow)", - "cGreen": "Green (Retweet)", - "cOrange": "Orange (Favorite)", - "cRed": "Red (Cancel)", - "change_email": "Change email", - "change_email_error": "There was an issue changing your email.", - "changed_email": "Email changed successfully!", - "change_password": "Change password", - "change_password_error": "There was an issue changing your password.", - "changed_password": "Password changed successfully!", - "chatMessageRadius": "Chat message", - "collapse_subject": "Collapse posts with subjects", - "composing": "Composing", - "confirm_new_password": "Confirm new password", - "current_avatar": "Your current avatar", - "current_mascot": "Your current mascot", - "current_password": "Current password", - "mutes_and_blocks": "Mutes and Blocks", - "data_import_export_tab": "Data import / export", - "default_vis": "Default visibility scope", - "delete_account": "Delete account", - "delete_account_description": "Permanently delete your data and deactivate your account.", - "delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.", - "delete_account_instructions": "Type your password in the input below to confirm account deletion.", - "account_alias": "Account aliases", - "account_alias_table_head": "Alias", - "list_aliases_error": "Error fetching aliases: {error}", - "hide_list_aliases_error_action": "Close", - "remove_alias": "Remove this alias", - "new_alias_target": "Add a new alias (e.g. {example})", - "added_alias": "Alias is added.", - "add_alias_error": "Error adding alias: {error}", - "move_account": "Move account", - "move_account_notes": "If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.", - "move_account_target": "Target account (e.g. {example})", - "moved_account": "Account is moved.", - "move_account_error": "Error moving account: {error}", - "discoverable": "Allow discovery of this account in search results and other services", - "domain_mutes": "Domains", - "avatar_size_instruction": "The recommended minimum size for avatar images is 150x150 pixels.", - "pad_emoji": "Pad emoji with spaces when adding from picker", - "emoji_reactions_on_timeline": "Show emoji reactions on timeline", - "export_theme": "Save preset", - "filtering": "Filtering", - "wordfilter": "Wordfilter", - "filtering_explanation": "All statuses containing these words will be muted, one per line", - "word_filter": "Word filter", - "follow_export": "Follow export", - "follow_export_button": "Export your follows to a csv file", - "follow_import": "Follow import", - "follow_import_error": "Error importing followers", - "follows_imported": "Follows imported! Processing them will take a while.", - "accent": "Accent", - "foreground": "Foreground", - "general": "General", - "hide_attachments_in_convo": "Hide attachments in conversations", - "hide_attachments_in_tl": "Hide attachments in timeline", - "hide_media_previews": "Hide media previews", - "hide_muted_posts": "Hide posts of muted users", - "mute_bot_posts": "Mute bot posts", - "hide_bot_indication": "Hide bot indication in posts", - "hide_all_muted_posts": "Hide muted posts", - "max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)", - "hide_isp": "Hide instance-specific panel", - "hide_shoutbox": "Hide instance shoutbox", - "right_sidebar": "Reverse order of columns", - "always_show_post_button": "Always show floating New Post button", - "hide_wallpaper": "Hide instance wallpaper", - "preload_images": "Preload images", - "use_one_click_nsfw": "Open NSFW attachments with just one click", - "hide_post_stats": "Hide post statistics (e.g. the number of favorites)", - "hide_user_stats": "Hide user statistics (e.g. the number of followers)", - "hide_filtered_statuses": "Hide all filtered posts", - "hide_wordfiltered_statuses": "Hide word-filtered statuses", - "hide_muted_threads": "Hide muted threads", - "import_blocks_from_a_csv_file": "Import blocks from a csv file", - "import_followers_from_a_csv_file": "Import follows from a csv file", - "import_theme": "Load preset", - "inputRadius": "Input fields", - "checkboxRadius": "Checkboxes", - "instance_default": "(default: {value})", - "instance_default_simple": "(default)", - "interface": "Interface", - "interfaceLanguage": "Interface language", - "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", - "limited_availability": "Unavailable in your browser", - "links": "Links", - "lock_account_description": "Restrict your account to approved followers only", - "loop_video": "Loop videos", - "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", - "mutes_tab": "Mutes", - "play_videos_in_modal": "Play videos in a popup frame", - "file_export_import": { - "backup_restore": "Settings backup", - "backup_settings": "Backup settings to file", - "backup_settings_theme": "Backup settings and theme to file", - "restore_settings": "Restore settings from file", - "errors": { - "invalid_file": "The selected file is not a supported Pleroma settings backup. No changes were made.", - "file_too_new": "Incompatile major version: {fileMajor}, this PleromaFE (settings ver {feMajor}) is too old to handle it", - "file_too_old": "Incompatile major version: {fileMajor}, file version is too old and not supported (min. set. ver. {feMajor})", - "file_slightly_new": "File minor version is different, some settings might not load" - } - }, - "profile_fields": { - "label": "Profile metadata", - "add_field": "Add field", - "name": "Label", - "value": "Content" - }, - "account_privacy": "Privacy", - "use_contain_fit": "Don't crop the attachment in thumbnails", - "name": "Name", - "name_bio": "Name & bio", - "new_email": "New email", - "new_password": "New password", - "posts": "Posts", - "user_profiles": "User Profiles", - "notification_visibility": "Types of notifications to show", - "notification_visibility_follows": "Follows", - "notification_visibility_likes": "Favorites", - "notification_visibility_mentions": "Mentions", - "notification_visibility_repeats": "Repeats", - "notification_visibility_moves": "User Migrates", - "notification_visibility_emoji_reactions": "Reactions", - "notification_visibility_polls": "Ends of polls you voted in", - "no_rich_text_description": "Strip rich text formatting from all posts", - "no_blocks": "No blocks", - "no_mutes": "No mutes", - "hide_favorites_description": "Don't show list of my favorites (people still get notified)", - "hide_follows_description": "Don't show who I'm following", - "hide_followers_description": "Don't show who's following me", - "hide_follows_count_description": "Don't show follow count", - "hide_followers_count_description": "Don't show follower count", - "show_admin_badge": "Show \"Admin\" badge in my profile", - "show_moderator_badge": "Show \"Moderator\" badge in my profile", - "nsfw_clickthrough": "Hide sensitive/NSFW media", - "oauth_tokens": "OAuth tokens", - "token": "Token", - "refresh_token": "Refresh token", - "valid_until": "Valid until", - "revoke_token": "Revoke", - "panelRadius": "Panels", - "pause_on_unfocused": "Pause when tab is not focused", - "presets": "Presets", - "profile_background": "Profile background", - "profile_banner": "Profile banner", - "profile_tab": "Profile", - "radii_help": "Set up interface edge rounding (in pixels)", - "replies_in_timeline": "Replies in timeline", - "reply_visibility_all": "Show all replies", - "reply_visibility_following": "Only show replies directed at me or users I'm following", - "reply_visibility_self": "Only show replies directed at me", - "reply_visibility_following_short": "Show replies to my follows", - "reply_visibility_self_short": "Show replies to self only", - "autohide_floating_post_button": "Automatically hide New Post button (mobile)", - "saving_err": "Error saving settings", - "saving_ok": "Settings saved", - "search_user_to_block": "Search whom you want to block", - "search_user_to_mute": "Search whom you want to mute", - "security_tab": "Security", - "scope_copy": "Copy scope when replying (DMs are always copied)", - "mascot": "Mastodon FE Mascot", - "minimal_scopes_mode": "Minimize post scope selection options", - "set_new_avatar": "Set new avatar", - "set_new_mascot": "Set new mascot", - "set_new_profile_background": "Set new profile background", - "set_new_profile_banner": "Set new profile banner", - "reset_avatar": "Reset avatar", - "reset_profile_background": "Reset profile background", - "reset_profile_banner": "Reset profile banner", - "reset_avatar_confirm": "Do you really want to reset the avatar?", - "reset_banner_confirm": "Do you really want to reset the banner?", - "reset_background_confirm": "Do you really want to reset the background?", - "settings": "Settings", - "subject_input_always_show": "Always show subject field", - "subject_line_behavior": "Copy subject when replying", - "subject_line_email": "Like email: \"re: subject\"", - "subject_line_mastodon": "Like mastodon: copy as is", - "subject_line_noop": "Do not copy", - "conversation_display": "Conversation display style", - "conversation_display_tree": "Tree-style", - "disable_sticky_headers": "Don't stick column headers to top of the screen", - "show_scrollbars": "Show side column's scrollbars", - "third_column_mode": "When there's enough space, show third column containing", - "third_column_mode_none": "Don't show third column at all", - "third_column_mode_notifications": "Notifications column", - "third_column_mode_postform": "Main post form and navigation", - "tree_advanced": "Allow more flexible navigation in tree view", - "tree_fade_ancestors": "Display ancestors of the current status in faint text", - "conversation_display_linear": "Linear-style", - "conversation_other_replies_button": "Show the \"other replies\" button", - "conversation_other_replies_button_below": "Below statuses", - "conversation_other_replies_button_inside": "Inside statuses", - "max_depth_in_thread": "Maximum number of levels in thread to display by default", - "post_status_content_type": "Post status content type", - "sensitive_by_default": "Mark posts as sensitive by default", - "sensitive_if_subject": "Automatically mark images as sensitive if a subject line is specified", - "render_mfm": "Render Misskey Markdown", - "useStreamingApiWarning": "It's cool use it. If it breaks refresh I guess?", - "stop_gifs": "Pause animated images until you hover on them", - "streaming": "Automatically show new posts when scrolled to the top", - "user_mutes": "Users", - "useStreamingApi": "Receive posts and notifications real-time", - "text": "Text", - "theme": "Theme", - "theme_help": "Use hex color codes (#rrggbb) to customize your color theme.", - "theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.", - "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", - "tooltipRadius": "Tooltips/alerts", - "type_domains_to_mute": "Search domains to mute", - "upload_a_photo": "Upload a photo", - "user_settings": "User Settings", - "values": { - "false": "no", - "true": "yes" - }, - "virtual_scrolling": "Optimize timeline rendering", - "use_at_icon": "Display {'@'} symbol as an icon instead of text", - "mention_link_display": "Display mention links", - "mention_link_display_short": "always as short names (e.g. {'@'}foo)", - "mention_link_display_full_for_remote": "as full names only for remote users (e.g. {'@'}foo{'@'}example.org)", - "mention_link_display_full": "always as full names (e.g. {'@'}foo{'@'}example.org)", - "mention_link_show_tooltip": "Show full user names as tooltip for remote users", - "mention_link_show_avatar": "Show user avatar beside the link", - "mention_link_fade_domain": "Fade domains (e.g. {'@'}example.org in {'@'}foo{'@'}example.org)", - "mention_link_bolden_you": "Highlight mention of you when you are mentioned", - "fun": "Fun", - "greentext": "Meme arrows", - "show_yous": "Show (You)s", - "notifications": "Notifications", - "notification_setting_filters": "Filters", - "notification_setting_block_from_strangers": "Block notifications from users who you do not follow", - "notification_setting_privacy": "Privacy", - "notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications", - "notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning", - "notification_mutes": "To stop receiving notifications from a specific user, use a mute.", - "notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.", - "enable_web_push_notifications": "Enable web push notifications", - "more_settings": "More settings", - "style": { - "switcher": { - "keep_color": "Keep colors", - "keep_shadows": "Keep shadows", - "keep_opacity": "Keep opacity", - "keep_roundness": "Keep roundness", - "keep_fonts": "Keep fonts", - "save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.", - "reset": "Reset", - "clear_all": "Clear all", - "clear_opacity": "Clear opacity", - "load_theme": "Load theme", - "keep_as_is": "Keep as is", - "use_snapshot": "Old version", - "use_source": "New version", - "help": { - "upgraded_from_v2": "PleromaFE has been upgraded, theme could look a little bit different than you remember.", - "v2_imported": "File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies.", - "future_version_imported": "File you imported was made in newer version of FE.", - "older_version_imported": "File you imported was made in older version of FE.", - "snapshot_present": "Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.", - "snapshot_missing": "No theme snapshot was in the file so it could look different than originally envisioned.", - "fe_upgraded": "PleromaFE's theme engine upgraded after version update.", - "fe_downgraded": "PleromaFE's version rolled back.", - "migration_snapshot_ok": "Just to be safe, theme snapshot loaded. You can try loading theme data.", - "migration_napshot_gone": "For whatever reason snapshot was missing, some stuff could look different than you remember.", - "snapshot_source_mismatch": "Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version." - } - }, - "common": { - "color": "Color", - "opacity": "Opacity", - "contrast": { - "hint": "Contrast ratio is {ratio}, it {level} {context}", - "level": { - "aa": "meets Level AA guideline (minimal)", - "aaa": "meets Level AAA guideline (recommended)", - "bad": "doesn't meet any accessibility guidelines" - }, - "context": { - "18pt": "for large (18pt+) text", - "text": "for text" - } - } - }, - "common_colors": { - "_tab_label": "Common", - "main": "Common colors", - "foreground_hint": "See \"Advanced\" tab for more detailed control", - "rgbo": "Icons, accents, badges" - }, - "advanced_colors": { - "_tab_label": "Advanced", - "alert": "Alert background", - "alert_error": "Error", - "alert_warning": "Warning", - "alert_neutral": "Neutral", - "post": "Posts/User bios", - "badge": "Badge background", - "popover": "Tooltips, menus, popovers", - "badge_notification": "Notification", - "panel_header": "Panel header", - "top_bar": "Top bar", - "borders": "Borders", - "buttons": "Buttons", - "inputs": "Input fields", - "faint_text": "Faded text", - "underlay": "Underlay", - "wallpaper": "Wallpaper", - "poll": "Poll graph", - "icons": "Icons", - "highlight": "Highlighted elements", - "pressed": "Pressed", - "selectedPost": "Selected post", - "selectedMenu": "Selected menu item", - "disabled": "Disabled", - "toggled": "Toggled", - "tabs": "Tabs", - "chat": { - "incoming": "Incoming", - "outgoing": "Outgoing", - "border": "Border" - } - }, - "radii": { - "_tab_label": "Roundness" - }, - "shadows": { - "_tab_label": "Shadow and lighting", - "component": "Component", - "override": "Override", - "shadow_id": "Shadow #{value}", - "blur": "Blur", - "spread": "Spread", - "inset": "Inset", - "hintV3": "For shadows you can also use the {0} notation to use other color slot.", - "filter_hint": { - "always_drop_shadow": "Warning, this shadow always uses {0} when browser supports it.", - "drop_shadow_syntax": "{0} does not support {1} parameter and {2} keyword.", - "avatar_inset": "Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.", - "spread_zero": "Shadows with spread > 0 will appear as if it was set to zero", - "inset_classic": "Inset shadows will be using {0}" + "about": { + "mrf": { + "federation": "Federation", + "keyword": { + "ftl_removal": "Removal from \"The Whole Known Network\" Timeline", + "is_replaced_by": "→", + "keyword_policies": "Keyword policies", + "reject": "Reject", + "replace": "Replace" + }, + "mrf_policies": "Enabled MRF policies", + "mrf_policies_desc": "MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:", + "simple": { + "accept": "Accept", + "accept_desc": "This instance only accepts messages from the following instances:", + "ftl_removal": "Removal from \"Known Network\" Timeline", + "ftl_removal_desc": "This instance removes these instances from \"Known Network\" timeline:", + "instance": "Instance", + "media_nsfw": "Media force-set as sensitive", + "media_nsfw_desc": "This instance forces media to be set sensitive in posts on the following instances:", + "media_removal": "Media Removal", + "media_removal_desc": "This instance removes media from posts on the following instances:", + "not_applicable": "N/A", + "quarantine": "Quarantine", + "quarantine_desc": "This instance will not send posts to the following instances:", + "reason": "Reason", + "reject": "Reject", + "reject_desc": "This instance will not accept messages from the following instances:", + "simple_policies": "Instance-specific policies" + } }, - "components": { - "panel": "Panel", - "panelHeader": "Panel header", - "topBar": "Top bar", - "avatar": "User avatar (in profile view)", - "avatarStatus": "User avatar (in post display)", - "popup": "Popups and tooltips", - "button": "Button", - "buttonHover": "Button (hover)", - "buttonPressed": "Button (pressed)", - "buttonPressedHover": "Button (pressed+hover)", - "input": "Input field" - } - }, - "fonts": { - "_tab_label": "Fonts", - "help": "Select font to use for elements of UI. For \"custom\" you have to enter exact font name as it appears in system.", - "components": { - "interface": "Interface", - "input": "Input fields", - "post": "Post text", - "postCode": "Monospaced text in a post (rich text)" + "staff": "Staff" + }, + "announcements": { + "all_day_prompt": "This is an all-day event", + "cancel_edit_action": "Cancel", + "close_error": "Close", + "delete_action": "Delete", + "edit_action": "Edit", + "end_time_display": "Ends at {time}", + "end_time_prompt": "End time: ", + "inactive_message": "This announcement is inactive", + "mark_as_read_action": "Mark as read", + "page_header": "Announcements", + "post_action": "Post", + "post_error": "Error: {error}", + "post_form_header": "Post announcement", + "post_placeholder": "Announcement content", + "published_time_display": "Published at {time}", + "start_time_display": "Starts at {time}", + "start_time_prompt": "Start time: ", + "submit_edit_action": "Submit", + "title": "Announcement" + }, + "chats": { + "chats": "Chats", + "delete": "Delete", + "delete_confirm": "Do you really want to delete this message?", + "empty_chat_list_placeholder": "You don't have any chats yet. Start a new chat!", + "empty_message_error": "Cannot post empty message", + "error_loading_chat": "Something went wrong when loading the chat.", + "error_sending_message": "Something went wrong when sending the message.", + "message_user": "Message {nickname}", + "more": "More", + "new": "New Chat", + "you": "You:" + }, + "display_date": { + "today": "Today" + }, + "domain_mute_card": { + "mute": "Mute", + "mute_progress": "Muting…", + "unmute": "Unmute", + "unmute_progress": "Unmuting…" + }, + "emoji": { + "add_emoji": "Insert emoji", + "custom": "Custom emoji", + "emoji": "Emoji", + "keep_open": "Keep picker open", + "load_all": "Loading all {emojiAmount} emoji", + "load_all_hint": "Loaded first {saneAmount} emoji, loading all emoji may cause performance issues.", + "search_emoji": "Search for an emoji", + "stickers": "Stickers", + "unicode": "Unicode emoji" + }, + "errors": { + "storage_unavailable": "Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies." + }, + "exporter": { + "export": "Export", + "processing": "Processing, you'll soon be asked to download your file" + }, + "features_panel": { + "media_proxy": "Media proxy", + "scope_options": "Scope options", + "shout": "Shoutbox", + "text_limit": "Text limit", + "title": "Features", + "upload_limit": "Upload limit", + "who_to_follow": "Who to follow" + }, + "file_type": { + "audio": "Audio", + "file": "File", + "image": "Image", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Error fetching user", + "find_user": "Find user" + }, + "general": { + "apply": "Apply", + "cancel": "Cancel", + "close": "Close", + "confirm": "Confirm", + "disable": "Disable", + "dismiss": "Dismiss", + "enable": "Enable", + "error_retry": "Please try again", + "flash_content": "Click to show Flash content using Ruffle (Experimental, may not work).", + "flash_fail": "Failed to load flash content, see console for details.", + "flash_security": "Note that this can be potentially dangerous since Flash content is still arbitrary code.", + "generic_error": "An error occured", + "loading": "Loading…", + "more": "More", + "optional": "optional", + "peek": "Peek", + "retry": "Try again", + "role": { + "admin": "Admin", + "moderator": "Moderator" }, - "family": "Font name", - "size": "Size (in px)", - "weight": "Weight (boldness)", - "custom": "Custom" - }, - "preview": { - "header": "Preview", - "content": "Content", - "error": "Example error", - "button": "Button", - "text": "A bunch of more {0} and {1}", - "mono": "content", - "input": "Just landed in L.A.", - "faint_link": "helpful manual", - "fine_print": "Read our {0} to learn nothing useful!", - "header_faint": "This is fine", - "checkbox": "I have skimmed over terms and conditions", - "link": "a nice lil' link" - } + "scope_in_timeline": { + "direct": "Direct", + "local": "Local - only your instance can see this post", + "private": "Followers-only", + "public": "Public", + "unlisted": "Unlisted" + }, + "show_less": "Show less", + "show_more": "Show more", + "submit": "Submit", + "verify": "Verify" }, - "version": { - "title": "Version", - "backend_version": "Backend version", - "frontend_version": "Frontend version" + "image_cropper": { + "cancel": "Cancel", + "crop_picture": "Crop picture", + "save": "Save", + "save_without_cropping": "Save without cropping" + }, + "importer": { + "error": "An error occured while importing this file.", + "submit": "Submit", + "success": "Imported successfully." + }, + "interactions": { + "favs_repeats": "Repeats and favorites", + "follows": "New follows", + "load_older": "Load older interactions", + "moves": "User migrates" + }, + "lists": { + "create": "Create", + "delete": "Delete list", + "following_only": "Limit to Following", + "lists": "Lists", + "new": "New List", + "save": "Save changes", + "search": "Search users", + "title": "List title" + }, + "login": { + "authentication_code": "Authentication code", + "description": "Log in with OAuth", + "enter_recovery_code": "Enter a recovery code", + "enter_two_factor_code": "Enter a two-factor code", + "heading": { + "recovery": "Two-factor recovery", + "totp": "Two-factor authentication" + }, + "hint": "Log in to join the discussion", + "login": "Log in", + "logout": "Log out", + "password": "Password", + "placeholder": "myusername", + "recovery_code": "Recovery code", + "register": "Register", + "username": "Username" + }, + "media_modal": { + "counter": "{current} / {total}", + "hide": "Close media viewer", + "next": "Next", + "previous": "Previous" + }, + "nav": { + "about": "About", + "administration": "Administration", + "announcements": "Announcements", + "back": "Back", + "bookmarks": "Bookmarks", + "bubble_timeline": "Bubble timeline", + "bubble_timeline_description": "Posts from instances close to yours, as recommended by the admins", + "chats": "Chats", + "dms": "Direct messages", + "friend_requests": "Follow requests", + "home_timeline": "Home timeline", + "home_timeline_description": "Posts from people you follow", + "interactions": "Interactions", + "lists": "Lists", + "mentions": "Mentions", + "preferences": "Preferences", + "public_timeline_description": "Public posts from this instance", + "public_tl": "Public timeline", + "search": "Search", + "timeline": "Timeline", + "timelines": "Timelines", + "twkn": "Known Network", + "twkn_timeline_description": "Posts from the entire network", + "user_search": "User Search", + "who_to_follow": "Who to follow" + }, + "notifications": { + "broken_favorite": "Unknown post, searching for it…", + "error": "Error fetching notifications: {0}", + "favorited_you": "favorited your post", + "follow_request": "wants to follow you", + "followed_you": "followed you", + "load_older": "Load older notifications", + "migrated_to": "migrated to", + "no_more_notifications": "No more notifications", + "notifications": "Notifications", + "poll_ended": "poll has ended", + "reacted_with": "reacted with {0}", + "read": "Read!", + "repeated_you": "repeated your post" + }, + "password_reset": { + "check_email": "Check your email for a link to reset your password.", + "forgot_password": "Forgot password?", + "instruction": "Enter your email address or username. We will send you a link to reset your password.", + "password_reset": "Password reset", + "password_reset_disabled": "Password reset is disabled. Please contact your instance administrator.", + "password_reset_required": "You must reset your password to log in.", + "password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator.", + "placeholder": "Your email or username", + "return_home": "Return to the home page", + "too_many_requests": "You have reached the limit of attempts, try again later." + }, + "polls": { + "add_option": "Add option", + "add_poll": "Add poll", + "expired": "Poll ended {0} ago", + "expires_in": "Poll ends in {0}", + "expiry": "Poll age", + "multiple_choices": "Multiple choices", + "not_enough_options": "Too few unique options in poll", + "option": "Option", + "people_voted_count": "{count} person voted | {count} people voted", + "single_choice": "Single choice", + "type": "Poll type", + "vote": "Vote", + "votes": "votes", + "votes_count": "{count} vote | {count} votes" + }, + "post_status": { + "account_not_locked_warning": "Your account is not {0}. Anyone can follow you to view your follower-only posts.", + "account_not_locked_warning_link": "locked", + "attachments_sensitive": "Mark attachments as sensitive", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Plain text", + "text/x.misskeymarkdown": "MFM" + }, + "content_warning": "Subject (optional)", + "default": "Just arrived at Luna Nova Academy", + "direct_warning_to_all": "This post will be visible to all the mentioned users.", + "direct_warning_to_first_only": "This post will only be visible to the mentioned users at the beginning of the message.", + "empty_status_error": "Can't send a post with no content and no files", + "media_description": "Media description", + "media_description_error": "Failed to update media, try again", + "media_not_sensitive_warning": "You have a Content Warning, but the attachments are not marked as sensitive!", + "new_status": "New post", + "post": "Post", + "posting": "Posting", + "preview": "Preview", + "preview_empty": "Empty", + "scope": { + "direct": "Direct - post to mentioned users only", + "local": "Local - do not federate this post", + "private": "Followers-only - post to followers only", + "public": "Public - post to public timelines", + "unlisted": "Unlisted - do not post to public timelines" + }, + "scope_notice": { + "local": "This post will not be visible on other instances", + "private": "This post will be visible to your followers only", + "public": "This post will be visible to everyone", + "unlisted": "This post will not be visible in Public Timeline and The Whole Known Network" + } + }, + "registration": { + "bio": "Bio", + "bio_placeholder": "e.g.\nHi! Welcome to my bio.\nI love watching anime and playing games. I hope we can be friends!", + "captcha": "CAPTCHA", + "email": "Email", + "email_language": "In which language do you want to receive emails from the server?", + "fullname": "Display name", + "fullname_placeholder": "e.g. Lain Iwakura", + "new_captcha": "Click the image to get a new captcha", + "password_confirm": "Password confirmation", + "reason": "Reason to register", + "reason_placeholder": "This instance approves registrations manually.\nLet the administration know why you want to register.", + "register": "Register", + "registration": "Registration", + "token": "Invite token", + "username_placeholder": "e.g. lain", + "validations": { + "email_required": "cannot be left blank", + "fullname_required": "cannot be left blank", + "password_confirmation_match": "should be the same as password", + "password_confirmation_required": "cannot be left blank", + "password_required": "cannot be left blank", + "username_required": "cannot be left blank" + } + }, + "remote_user_resolver": { + "error": "Not found.", + "remote_user_resolver": "Remote user resolver", + "searching_for": "Searching for" + }, + "search": { + "hashtags": "Hashtags", + "no_results": "No results", + "people": "People", + "people_talking": "{count} people talking", + "person_talking": "{count} person talking" + }, + "selectable_list": { + "select_all": "Select all" + }, + "settings": { + "accent": "Accent", + "account_alias": "Account aliases", + "account_alias_table_head": "Alias", + "account_backup": "Account backup", + "account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.", + "account_backup_table_head": "Backup", + "account_privacy": "Privacy", + "add_alias_error": "Error adding alias: {error}", + "add_backup": "Create a new backup", + "add_backup_error": "Error adding a new backup: {error}", + "added_alias": "Alias is added.", + "added_backup": "Added a new backup.", + "allow_following_move": "Allow auto-follow when following account moves", + "always_show_post_button": "Always show floating New Post button", + "app_name": "App name", + "attachmentRadius": "Attachments", + "attachments": "Attachments", + "autohide_floating_post_button": "Automatically hide New Post button (mobile)", + "avatar": "Avatar", + "avatarAltRadius": "Avatars (notifications)", + "avatarRadius": "Avatars", + "avatar_size_instruction": "The recommended minimum size for avatar images is 150x150 pixels.", + "background": "Background", + "backup_not_ready": "This backup is not ready yet.", + "bio": "Bio", + "block_export": "Block export", + "block_export_button": "Export your blocks to a csv file", + "block_import": "Block import", + "block_import_error": "Error importing blocks", + "blocks_imported": "Blocks imported! Processing them will take a while.", + "blocks_tab": "Blocks", + "bot": "This is a bot account", + "btnRadius": "Buttons", + "cBlue": "Blue (Reply, follow)", + "cGreen": "Green (Retweet)", + "cOrange": "Orange (Favorite)", + "cRed": "Red (Cancel)", + "change_email": "Change email", + "change_email_error": "There was an issue changing your email.", + "change_password": "Change password", + "change_password_error": "There was an issue changing your password.", + "changed_email": "Email changed successfully!", + "changed_password": "Password changed successfully!", + "chatMessageRadius": "Chat message", + "checkboxRadius": "Checkboxes", + "collapse_subject": "Collapse posts with subjects", + "composing": "Composing", + "confirm_new_password": "Confirm new password", + "conversation_display": "Conversation display style", + "conversation_display_linear": "Linear-style", + "conversation_display_tree": "Tree-style", + "conversation_other_replies_button": "Show the \"other replies\" button", + "conversation_other_replies_button_below": "Below statuses", + "conversation_other_replies_button_inside": "Inside posts", + "current_avatar": "Your current avatar", + "current_mascot": "Your current mascot", + "current_password": "Current password", + "data_import_export_tab": "Data import / export", + "default_vis": "Default visibility scope", + "delete_account": "Delete account", + "delete_account_description": "Permanently delete your data and deactivate your account.", + "delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.", + "delete_account_instructions": "Type your password in the input below to confirm account deletion.", + "disable_sticky_headers": "Don't stick column headers to top of the screen", + "discoverable": "Allow discovery of this account in search results and other services", + "domain_mutes": "Domains", + "download_backup": "Download", + "email_language": "Language for receiving emails from the server", + "emoji_reactions_on_timeline": "Show emoji reactions on timeline", + "enable_web_push_notifications": "Enable web push notifications", + "enter_current_password_to_confirm": "Enter your current password to confirm your identity", + "expert_mode": "Show advanced", + "export_theme": "Save preset", + "file_export_import": { + "backup_restore": "Settings backup", + "backup_settings": "Backup settings to file", + "backup_settings_theme": "Backup settings and theme to file", + "errors": { + "file_slightly_new": "File minor version is different, some settings might not load", + "file_too_new": "Incompatile major version: {fileMajor}, this PleromaFE (settings ver {feMajor}) is too old to handle it", + "file_too_old": "Incompatile major version: {fileMajor}, file version is too old and not supported (min. set. ver. {feMajor})", + "invalid_file": "The selected file is not a supported Pleroma settings backup. No changes were made." + }, + "restore_settings": "Restore settings from file" + }, + "filtering": "Filtering", + "filtering_explanation": "All posts containing these words will be muted, one per line", + "follow_export": "Follow export", + "follow_export_button": "Export your follows to a csv file", + "follow_import": "Follow import", + "follow_import_error": "Error importing followers", + "follows_imported": "Follows imported! Processing them will take a while.", + "foreground": "Foreground", + "fun": "Fun", + "general": "General", + "greentext": "Meme arrows", + "hide_all_muted_posts": "Hide muted posts", + "hide_attachments_in_convo": "Hide attachments in conversations", + "hide_attachments_in_tl": "Hide attachments in timeline", + "hide_bot_indication": "Hide bot indication in posts", + "hide_favorites_description": "Don't show list of my favorites (people still get notified)", + "hide_filtered_statuses": "Hide all filtered posts", + "hide_followers_count_description": "Don't show follower count", + "hide_followers_description": "Don't show who's following me", + "hide_follows_count_description": "Don't show follow count", + "hide_follows_description": "Don't show who I'm following", + "hide_isp": "Hide instance-specific panel", + "hide_list_aliases_error_action": "Close", + "hide_media_previews": "Hide media previews", + "hide_muted_posts": "Hide posts of muted users", + "hide_muted_threads": "Hide muted threads", + "hide_post_stats": "Hide post statistics (e.g. the number of favorites)", + "hide_shoutbox": "Hide instance shoutbox", + "hide_threads_with_blocked_users": "Hide threads mentioning blocked users", + "hide_user_stats": "Hide user statistics (e.g. the number of followers)", + "hide_wallpaper": "Hide instance wallpaper", + "hide_wordfiltered_statuses": "Hide word-filtered posts", + "import_blocks_from_a_csv_file": "Import blocks from a csv file", + "import_followers_from_a_csv_file": "Import follows from a csv file", + "import_mutes_from_a_csv_file": "Import mutes from a csv file", + "import_theme": "Load preset", + "inputRadius": "Input fields", + "instance_default": "(default: {value})", + "instance_default_simple": "(default)", + "interface": "Interface", + "interfaceLanguage": "Interface language", + "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", + "limited_availability": "Unavailable in your browser", + "links": "Links", + "list_aliases_error": "Error fetching aliases: {error}", + "list_backups_error": "Error fetching backup list: {error}", + "lock_account_description": "Restrict your account to approved followers only", + "loop_video": "Loop videos", + "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", + "mascot": "Mastodon FE Mascot", + "max_depth_in_thread": "Maximum number of levels in thread to display by default", + "max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)", + "mention_link_bolden_you": "Highlight mention of you when you are mentioned", + "mention_link_display": "Display mention links", + "mention_link_display_full": "always as full names (e.g. {'@'}foo{'@'}example.org)", + "mention_link_display_full_for_remote": "as full names only for remote users (e.g. {'@'}foo{'@'}example.org)", + "mention_link_display_short": "always as short names (e.g. {'@'}foo)", + "mention_link_fade_domain": "Fade domains (e.g. {'@'}example.org in {'@'}foo{'@'}example.org)", + "mention_link_show_avatar": "Show user avatar beside the link", + "mention_link_show_tooltip": "Show full user names as tooltip for remote users", + "mention_links": "Mention links", + "mfa": { + "authentication_methods": "Authentication methods", + "confirm_and_enable": "Confirm & enable OTP", + "generate_new_recovery_codes": "Generate new recovery codes", + "otp": "OTP", + "recovery_codes": "Recovery codes.", + "recovery_codes_warning": "Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.", + "scan": { + "desc": "Using your two-factor app, scan this QR code or enter text key:", + "secret_code": "Key", + "title": "Scan" + }, + "setup_otp": "Setup OTP", + "title": "Two-factor Authentication", + "verify": { + "desc": "To enable two-factor authentication, enter the code from your two-factor app:" + }, + "wait_pre_setup_otp": "presetting OTP", + "waiting_a_recovery_codes": "Receiving backup codes…", + "warning_of_generate_new_codes": "When you generate new recovery codes, your old codes won’t work anymore." + }, + "minimal_scopes_mode": "Minimize post scope selection options", + "more_settings": "More settings", + "move_account": "Move account", + "move_account_error": "Error moving account: {error}", + "move_account_notes": "If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.", + "move_account_target": "Target account (e.g. {example})", + "moved_account": "Account is moved.", + "mute_bot_posts": "Mute bot posts", + "mute_export": "Mute export", + "mute_export_button": "Export your mutes to a csv file", + "mute_import": "Mute import", + "mute_import_error": "Error importing mutes", + "mutes_and_blocks": "Mutes and Blocks", + "mutes_imported": "Mutes imported! Processing them will take a while.", + "mutes_tab": "Mutes", + "name": "Name", + "name_bio": "Name & bio", + "new_alias_target": "Add a new alias (e.g. {example})", + "new_email": "New email", + "new_password": "New password", + "no_blocks": "No blocks", + "no_mutes": "No mutes", + "no_rich_text_description": "Strip rich text formatting from all posts", + "notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.", + "notification_mutes": "To stop receiving notifications from a specific user, use a mute.", + "notification_setting_block_from_strangers": "Block notifications from users who you do not follow", + "notification_setting_filters": "Filters", + "notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning", + "notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications", + "notification_setting_privacy": "Privacy", + "notification_visibility": "Types of notifications to show", + "notification_visibility_emoji_reactions": "Reactions", + "notification_visibility_follows": "Follows", + "notification_visibility_likes": "Favorites", + "notification_visibility_mentions": "Mentions", + "notification_visibility_moves": "User Migrates", + "notification_visibility_polls": "Ends of polls you voted in", + "notification_visibility_repeats": "Repeats", + "notifications": "Notifications", + "nsfw_clickthrough": "Hide sensitive/NSFW media", + "oauth_tokens": "OAuth tokens", + "pad_emoji": "Pad emoji with spaces when adding from picker", + "panelRadius": "Panels", + "pause_on_unfocused": "Pause when tab is not focused", + "play_videos_in_modal": "Play videos in a popup frame", + "post_look_feel": "Posts Look & Feel", + "post_status_content_type": "Default post content type", + "posts": "Posts", + "preload_images": "Preload images", + "presets": "Presets", + "profile_background": "Profile background", + "profile_banner": "Profile banner", + "profile_fields": { + "add_field": "Add field", + "label": "Profile metadata", + "name": "Label", + "value": "Content" + }, + "profile_tab": "Profile", + "radii_help": "Set up interface edge rounding (in pixels)", + "refresh_token": "Refresh token", + "remove_alias": "Remove this alias", + "remove_backup": "Remove", + "render_mfm": "Render Misskey Markdown", + "replies_in_timeline": "Replies in timeline", + "reply_visibility_all": "Show all replies", + "reply_visibility_following": "Only show replies directed at me or users I'm following", + "reply_visibility_following_short": "Show replies to my follows", + "reply_visibility_self": "Only show replies directed at me", + "reply_visibility_self_short": "Show replies to self only", + "reset_avatar": "Reset avatar", + "reset_avatar_confirm": "Do you really want to reset the avatar?", + "reset_background_confirm": "Do you really want to reset the background?", + "reset_banner_confirm": "Do you really want to reset the banner?", + "reset_profile_background": "Reset profile background", + "reset_profile_banner": "Reset profile banner", + "revoke_token": "Revoke", + "right_sidebar": "Reverse order of columns", + "save": "Save changes", + "saving_err": "Error saving settings", + "saving_ok": "Settings saved", + "scope_copy": "Copy scope when replying (DMs are always copied)", + "search_user_to_block": "Search whom you want to block", + "search_user_to_mute": "Search whom you want to mute", + "security": "Security", + "security_tab": "Security", + "sensitive_by_default": "Mark posts as sensitive by default", + "sensitive_if_subject": "Automatically mark images as sensitive if a subject line is specified", + "set_new_avatar": "Set new avatar", + "set_new_mascot": "Set new mascot", + "set_new_profile_background": "Set new profile background", + "set_new_profile_banner": "Set new profile banner", + "setting_changed": "Setting is different from default", + "setting_server_side": "This setting is tied to your profile and affects all sessions and clients", + "settings": "Settings", + "show_admin_badge": "Show \"Admin\" badge in my profile", + "show_moderator_badge": "Show \"Moderator\" badge in my profile", + "show_scrollbars": "Show side column's scrollbars", + "show_yous": "Show (You)s", + "stop_gifs": "Pause animated images until you hover on them", + "streaming": "Automatically show new posts when scrolled to the top", + "style": { + "advanced_colors": { + "_tab_label": "Advanced", + "alert": "Alert background", + "alert_error": "Error", + "alert_neutral": "Neutral", + "alert_warning": "Warning", + "badge": "Badge background", + "badge_notification": "Notification", + "borders": "Borders", + "buttons": "Buttons", + "chat": { + "border": "Border", + "incoming": "Incoming", + "outgoing": "Outgoing" + }, + "disabled": "Disabled", + "faint_text": "Faded text", + "highlight": "Highlighted elements", + "icons": "Icons", + "inputs": "Input fields", + "panel_header": "Panel header", + "poll": "Poll graph", + "popover": "Tooltips, menus, popovers", + "post": "Posts/User bios", + "pressed": "Pressed", + "selectedMenu": "Selected menu item", + "selectedPost": "Selected post", + "tabs": "Tabs", + "toggled": "Toggled", + "top_bar": "Top bar", + "underlay": "Underlay", + "wallpaper": "Wallpaper" + }, + "common": { + "color": "Color", + "contrast": { + "context": { + "18pt": "for large (18pt+) text", + "text": "for text" + }, + "hint": "Contrast ratio is {ratio}, it {level} {context}", + "level": { + "aa": "meets Level AA guideline (minimal)", + "aaa": "meets Level AAA guideline (recommended)", + "bad": "doesn't meet any accessibility guidelines" + } + }, + "opacity": "Opacity" + }, + "common_colors": { + "_tab_label": "Common", + "foreground_hint": "See \"Advanced\" tab for more detailed control", + "main": "Common colors", + "rgbo": "Icons, accents, badges" + }, + "fonts": { + "_tab_label": "Fonts", + "components": { + "input": "Input fields", + "interface": "Interface", + "post": "Post text", + "postCode": "Monospaced text in a post (rich text)" + }, + "custom": "Custom", + "family": "Font name", + "help": "Select font to use for elements of UI. For \"custom\" you have to enter exact font name as it appears in system.", + "size": "Size (in px)", + "weight": "Weight (boldness)" + }, + "preview": { + "button": "Button", + "checkbox": "I have skimmed over terms and conditions", + "content": "Content", + "error": "Example error", + "faint_link": "helpful manual", + "fine_print": "Read our {0} to learn nothing useful!", + "header": "Preview", + "header_faint": "This is fine", + "input": "Just arrived at Luna Nova Academy", + "link": "a nice lil' link", + "mono": "content", + "text": "A bunch of more {0} and {1}" + }, + "radii": { + "_tab_label": "Roundness" + }, + "shadows": { + "_tab_label": "Shadow and lighting", + "blur": "Blur", + "component": "Component", + "components": { + "avatar": "User avatar (in profile view)", + "avatarStatus": "User avatar (in post display)", + "button": "Button", + "buttonHover": "Button (hover)", + "buttonPressed": "Button (pressed)", + "buttonPressedHover": "Button (pressed+hover)", + "input": "Input field", + "panel": "Panel", + "panelHeader": "Panel header", + "popup": "Popups and tooltips", + "topBar": "Top bar" + }, + "filter_hint": { + "always_drop_shadow": "Warning, this shadow always uses {0} when browser supports it.", + "avatar_inset": "Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.", + "drop_shadow_syntax": "{0} does not support {1} parameter and {2} keyword.", + "inset_classic": "Inset shadows will be using {0}", + "spread_zero": "Shadows with spread > 0 will appear as if it was set to zero" + }, + "hintV3": "For shadows you can also use the {0} notation to use other color slot.", + "inset": "Inset", + "override": "Override", + "shadow_id": "Shadow #{value}", + "spread": "Spread" + }, + "switcher": { + "clear_all": "Clear all", + "clear_opacity": "Clear opacity", + "help": { + "fe_downgraded": "PleromaFE's version rolled back.", + "fe_upgraded": "PleromaFE's theme engine upgraded after version update.", + "future_version_imported": "File you imported was made in newer version of FE.", + "migration_napshot_gone": "For whatever reason snapshot was missing, some stuff could look different than you remember.", + "migration_snapshot_ok": "Just to be safe, theme snapshot loaded. You can try loading theme data.", + "older_version_imported": "File you imported was made in older version of FE.", + "snapshot_missing": "No theme snapshot was in the file so it could look different than originally envisioned.", + "snapshot_present": "Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.", + "snapshot_source_mismatch": "Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.", + "upgraded_from_v2": "PleromaFE has been upgraded, theme could look a little bit different than you remember.", + "v2_imported": "File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies." + }, + "keep_as_is": "Keep as is", + "keep_color": "Keep colors", + "keep_fonts": "Keep fonts", + "keep_opacity": "Keep opacity", + "keep_roundness": "Keep roundness", + "keep_shadows": "Keep shadows", + "load_theme": "Load theme", + "reset": "Reset", + "save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.", + "use_snapshot": "Old version", + "use_source": "New version" + } + }, + "subject_input_always_show": "Always show subject field", + "subject_line_behavior": "Copy subject when replying", + "subject_line_email": "Like email: \"re: subject\"", + "subject_line_mastodon": "Like mastodon: copy as is", + "subject_line_noop": "Do not copy", + "text": "Text", + "theme": "Theme", + "theme_help": "Use hex color codes (#rrggbb) to customize your color theme.", + "theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.", + "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", + "third_column_mode": "When there's enough space, show third column containing", + "third_column_mode_none": "Don't show third column at all", + "third_column_mode_notifications": "Notifications column", + "third_column_mode_postform": "Main post form and navigation", + "token": "Token", + "tooltipRadius": "Tooltips/alerts", + "tree_advanced": "Allow more flexible navigation in tree view", + "tree_fade_ancestors": "Display ancestors of the current post in faint text", + "type_domains_to_mute": "Search domains to mute", + "upload_a_photo": "Upload a photo", + "useStreamingApi": "Receive posts and notifications real-time", + "useStreamingApiWarning": "It's cool use it. If it breaks refresh I guess?", + "use_at_icon": "Display {'@'} symbol as an icon instead of text", + "use_contain_fit": "Don't crop the attachment in thumbnails", + "use_one_click_nsfw": "Open NSFW attachments with just one click", + "user_mutes": "Users", + "user_profiles": "User Profiles", + "user_settings": "User Settings", + "valid_until": "Valid until", + "values": { + "false": "no", + "true": "yes" + }, + "version": { + "backend_version": "Backend version", + "frontend_version": "Frontend version", + "title": "Version" + }, + "virtual_scrolling": "Optimize timeline rendering", + "word_filter": "Word filter", + "wordfilter": "Wordfilter" + }, + "status": { + "ancestor_follow": "See {numReplies} other reply under this post | See {numReplies} other replies under this post", + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "Stop Flash player", + "bookmark": "Bookmark", + "collapse_attachments": "Collapse attachments", + "copy_link": "Copy link to post", + "delete": "Delete post", + "delete_confirm": "Do you really want to delete this post?", + "expand": "Expand", + "external_source": "External source", + "favorites": "Favorites", + "hide_attachment": "Hide attachment", + "hide_content": "Hide content", + "hide_full_subject": "Hide full subject", + "many_attachments": "Post has {number} attachment | Post has {number} attachments", + "mentions": "Mentions", + "move_down": "Shift attachment right", + "move_up": "Shift attachment left", + "mute_conversation": "Mute conversation", + "nsfw": "NSFW", + "open_gallery": "Open gallery", + "pin": "Pin on profile", + "pinned": "Pinned", + "plus_more": "+{number} more", + "remove_attachment": "Remove attachment", + "repeats": "Repeats", + "replies_list": "Replies:", + "replies_list_with_others": "Replies (+{numReplies} other): | Replies (+{numReplies} others):", + "reply_to": "Reply to", + "show_all_attachments": "Show all attachments", + "show_all_conversation": "Show full conversation ({numStatus} other post) | Show full conversation ({numStatus} other posts)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "Preview description (open attachment for full description)", + "show_attachment_in_modal": "Show in media modal", + "show_content": "Show content", + "show_full_subject": "Show full subject", + "show_only_conversation_under_this": "Only show replies to this post", + "status_deleted": "This post was deleted", + "status_unavailable": "Post unavailable", + "thread_follow": "See the remaining part of this thread ({numStatus} post in total) | See the remaining part of this thread ({numStatus} posts in total)", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "Hide this thread", + "thread_muted": "Thread muted", + "thread_muted_and_words": ", has words:", + "thread_show": "Show this thread", + "thread_show_full": "Show everything under this thread ({numStatus} post in total, max depth {depth}) | Show everything under this thread ({numStatus} posts in total, max depth {depth})", + "thread_show_full_with_icon": "{icon} {text}", + "unbookmark": "Unbookmark", + "unmute_conversation": "Unmute conversation", + "unpin": "Unpin from profile", + "you": "(You)" + }, + "time": { + "in_future": "in {0}", + "in_past": "{0} ago", + "now": "just now", + "now_short": "now", + "unit": { + "days": "{0} day | {0} days", + "days_short": "{0}d", + "hours": "{0} hour | {0} hours", + "hours_short": "{0}h", + "minutes": "{0} minute | {0} minutes", + "minutes_short": "{0}min", + "months": "{0} month | {0} months", + "months_short": "{0}mo", + "seconds": "{0} second | {0} seconds", + "seconds_short": "{0}s", + "weeks": "{0} week | {0} weeks", + "weeks_short": "{0}w", + "years": "{0} year | {0} years", + "years_short": "{0}y" + } + }, + "timeline": { + "collapse": "Collapse", + "conversation": "Conversation", + "error": "Error fetching timeline: {0}", + "load_older": "Load older posts", + "no_more_statuses": "No more posts", + "no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated or quoted", + "no_statuses": "No posts", + "reload": "Reload", + "repeated": "repeated", + "show_new": "Show new", + "socket_broke": "Realtime connection lost: CloseEvent code {0}", + "socket_reconnected": "Realtime connection established", + "up_to_date": "Up-to-date" + }, + "tool_tip": { + "accept_follow_request": "Accept follow request", + "add_reaction": "Add Reaction", + "bookmark": "Bookmark", + "favorite": "Favorite", + "media_upload": "Upload media", + "quote": "Quote", + "reject_follow_request": "Reject follow request", + "repeat": "Repeat", + "reply": "Reply", + "user_settings": "User Settings" + }, + "upload": { + "error": { + "base": "Upload failed.", + "default": "Try again later", + "file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Upload failed: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Activate account", + "deactivate_account": "Deactivate account", + "delete_account": "Delete account", + "delete_user": "Delete user", + "delete_user_data_and_deactivate_confirmation": "This will permanently delete the data from this account and deactivate it. Are you absolutely sure?", + "disable_any_subscription": "Disallow following user at all", + "disable_remote_subscription": "Disallow following user from remote instances", + "force_nsfw": "Mark all posts as NSFW", + "force_unlisted": "Force posts to be unlisted", + "grant_admin": "Grant Admin", + "grant_moderator": "Grant Moderator", + "moderation": "Moderation", + "quarantine": "Disallow user posts from federating", + "revoke_admin": "Revoke Admin", + "revoke_moderator": "Revoke Moderator", + "sandbox": "Force posts to be followers-only", + "strip_media": "Remove media from posts" + }, + "approve": "Approve", + "block": "Block", + "block_progress": "Blocking…", + "blocked": "Blocked!", + "bot": "Bot", + "deactivated": "Deactivated", + "deny": "Deny", + "domain_muted": "Unblock domain", + "edit_profile": "Edit profile", + "favorites": "Favorites", + "follow": "Follow", + "follow_cancel": "Cancel request", + "follow_progress": "Requesting…", + "follow_sent": "Request sent!", + "follow_unfollow": "Unfollow", + "followees": "Following", + "followers": "Followers", + "following": "Following!", + "follows_you": "Follows you!", + "hidden": "Hidden", + "hide_repeats": "Hide repeats", + "highlight": { + "disabled": "No highlight", + "side": "Side stripe", + "solid": "Solid bg", + "striped": "Striped bg" + }, + "its_you": "It's you!", + "media": "Media", + "mention": "Mention", + "message": "Message", + "mute": "Mute", + "mute_domain": "Block domain", + "mute_progress": "Muting…", + "muted": "Muted", + "note": "Private note", + "per_day": "per day", + "remote_follow": "Remote follow", + "report": "Report", + "show_repeats": "Show repeats", + "statuses": "Posts", + "subscribe": "Subscribe", + "unblock": "Unblock", + "unblock_progress": "Unblocking…", + "unmute": "Unmute", + "unmute_progress": "Unmuting…", + "unsubscribe": "Unsubscribe" + }, + "user_profile": { + "profile_does_not_exist": "Sorry, this profile does not exist.", + "profile_loading_error": "Sorry, there was an error loading this profile.", + "timeline_title": "User timeline" + }, + "user_reporting": { + "add_comment_description": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", + "additional_comments": "Additional comments", + "forward_description": "The account is from another server. Send a copy of the report there as well?", + "forward_to": "Forward to {0}", + "generic_error": "An error occurred while processing your request.", + "submit": "Submit", + "title": "Reporting {0}" + }, + "who_to_follow": { + "more": "More", + "who_to_follow": "Who to follow" } - }, - "time": { - "unit": { - "days": "{0} day | {0} days", - "days_short": "{0}d", - "hours": "{0} hour | {0} hours", - "hours_short": "{0}h", - "minutes": "{0} minute | {0} minutes", - "minutes_short": "{0}min", - "months": "{0} month | {0} months", - "months_short": "{0}mo", - "seconds": "{0} second | {0} seconds", - "seconds_short": "{0}s", - "weeks": "{0} week | {0} weeks", - "weeks_short": "{0}w", - "years": "{0} year | {0} years", - "years_short": "{0}y" - }, - "in_future": "in {0}", - "in_past": "{0} ago", - "now": "just now", - "now_short": "now" - }, - "timeline": { - "collapse": "Collapse", - "conversation": "Conversation", - "error": "Error fetching timeline: {0}", - "load_older": "Load older statuses", - "no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated", - "no_quote_hint": "Post is marked as followers-only or direct and cannot be quoted", - "repeated": "repeated", - "show_new": "Show new", - "reload": "Reload", - "up_to_date": "Up-to-date", - "no_more_statuses": "No more statuses", - "no_statuses": "No statuses", - "socket_reconnected": "Realtime connection established", - "socket_broke": "Realtime connection lost: CloseEvent code {0}" - }, - "status": { - "favorites": "Favorites", - "repeats": "Repeats", - "delete": "Delete status", - "pin": "Pin on profile", - "unpin": "Unpin from profile", - "pinned": "Pinned", - "bookmark": "Bookmark", - "unbookmark": "Unbookmark", - "delete_confirm": "Do you really want to delete this status?", - "reply_to": "Reply to", - "mentions": "Mentions", - "replies_list": "Replies:", - "replies_list_with_others": "Replies (+{numReplies} other): | Replies (+{numReplies} others):", - "mute_conversation": "Mute conversation", - "unmute_conversation": "Unmute conversation", - "status_unavailable": "Status unavailable", - "copy_link": "Copy link to status", - "external_source": "External source", - "thread_muted": "Thread muted", - "thread_muted_and_words": ", has words:", - "show_full_subject": "Show full subject", - "hide_full_subject": "Hide full subject", - "show_content": "Show content", - "hide_content": "Hide content", - "status_deleted": "This post was deleted", - "nsfw": "NSFW", - "expand": "Expand", - "you": "(You)", - "plus_more": "+{number} more", - "many_attachments": "Post has {number} attachment(s)", - "collapse_attachments": "Collapse attachments", - "show_all_attachments": "Show all attachments", - "show_attachment_in_modal": "Show in media modal", - "show_attachment_description": "Preview description (open attachment for full description)", - "hide_attachment": "Hide attachment", - "remove_attachment": "Remove attachment", - "attachment_stop_flash": "Stop Flash player", - "move_up": "Shift attachment left", - "move_down": "Shift attachment right", - "open_gallery": "Open gallery", - "thread_hide": "Hide this thread", - "thread_show": "Show this thread", - "thread_show_full": "Show everything under this thread ({numStatus} status in total, max depth {depth}) | Show everything under this thread ({numStatus} statuses in total, max depth {depth})", - "thread_show_full_with_icon": "{icon} {text}", - "thread_follow": "See the remaining part of this thread ({numStatus} status in total) | See the remaining part of this thread ({numStatus} statuses in total)", - "thread_follow_with_icon": "{icon} {text}", - "ancestor_follow": "See {numReplies} other reply under this status | See {numReplies} other replies under this status", - "ancestor_follow_with_icon": "{icon} {text}", - "show_all_conversation_with_icon": "{icon} {text}", - "show_all_conversation": "Show full conversation ({numStatus} other status) | Show full conversation ({numStatus} other statuses)", - "show_only_conversation_under_this": "Only show replies to this status" - }, - "user_card": { - "approve": "Approve", - "block": "Block", - "blocked": "Blocked!", - "deactivated": "Deactivated", - "deny": "Deny", - "edit_profile": "Edit profile", - "favorites": "Favorites", - "follow": "Follow", - "follow_cancel": "Cancel request", - "follow_sent": "Request sent!", - "follow_progress": "Requesting…", - "follow_unfollow": "Unfollow", - "followees": "Following", - "followers": "Followers", - "following": "Following!", - "follows_you": "Follows you!", - "hidden": "Hidden", - "its_you": "It's you!", - "media": "Media", - "mention": "Mention", - "message": "Message", - "mute": "Mute", - "muted": "Muted", - "per_day": "per day", - "remote_follow": "Remote follow", - "report": "Report", - "statuses": "Statuses", - "subscribe": "Subscribe", - "unsubscribe": "Unsubscribe", - "unblock": "Unblock", - "unblock_progress": "Unblocking…", - "block_progress": "Blocking…", - "unmute": "Unmute", - "unmute_progress": "Unmuting…", - "mute_progress": "Muting…", - "hide_repeats": "Hide repeats", - "show_repeats": "Show repeats", - "domain_muted": "Unblock domain", - "mute_domain": "Block domain", - "bot": "Bot", - "note": "Private note", - "admin_menu": { - "moderation": "Moderation", - "grant_admin": "Grant Admin", - "revoke_admin": "Revoke Admin", - "grant_moderator": "Grant Moderator", - "revoke_moderator": "Revoke Moderator", - "activate_account": "Activate account", - "deactivate_account": "Deactivate account", - "delete_account": "Delete account", - "force_nsfw": "Mark all posts as NSFW", - "strip_media": "Remove media from posts", - "force_unlisted": "Force posts to be unlisted", - "sandbox": "Force posts to be followers-only", - "disable_remote_subscription": "Disallow following user from remote instances", - "disable_any_subscription": "Disallow following user at all", - "quarantine": "Disallow user posts from federating", - "delete_user": "Delete user", - "delete_user_data_and_deactivate_confirmation": "This will permanently delete the data from this account and deactivate it. Are you absolutely sure?" - }, - "highlight": { - "disabled": "No highlight", - "solid": "Solid bg", - "striped": "Striped bg", - "side": "Side stripe" - } - }, - "user_profile": { - "timeline_title": "User timeline", - "profile_does_not_exist": "Sorry, this profile does not exist.", - "profile_loading_error": "Sorry, there was an error loading this profile." - }, - "user_reporting": { - "title": "Reporting {0}", - "add_comment_description": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:", - "additional_comments": "Additional comments", - "forward_description": "The account is from another server. Send a copy of the report there as well?", - "forward_to": "Forward to {0}", - "submit": "Submit", - "generic_error": "An error occurred while processing your request." - }, - "who_to_follow": { - "more": "More", - "who_to_follow": "Who to follow" - }, - "tool_tip": { - "media_upload": "Upload media", - "repeat": "Repeat", - "reply": "Reply", - "favorite": "Favorite", - "add_reaction": "Add Reaction", - "user_settings": "User Settings", - "accept_follow_request": "Accept follow request", - "reject_follow_request": "Reject follow request", - "bookmark": "Bookmark" - }, - "upload": { - "error": { - "base": "Upload failed.", - "message": "Upload failed: {0}", - "file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Try again later" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "People", - "hashtags": "Hashtags", - "person_talking": "{count} person talking", - "people_talking": "{count} people talking", - "no_results": "No results" - }, - "password_reset": { - "forgot_password": "Forgot password?", - "password_reset": "Password reset", - "instruction": "Enter your email address or username. We will send you a link to reset your password.", - "placeholder": "Your email or username", - "check_email": "Check your email for a link to reset your password.", - "return_home": "Return to the home page", - "too_many_requests": "You have reached the limit of attempts, try again later.", - "password_reset_disabled": "Password reset is disabled. Please contact your instance administrator.", - "password_reset_required": "You must reset your password to log in.", - "password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator." - }, - "chats": { - "you": "You:", - "message_user": "Message {nickname}", - "delete": "Delete", - "chats": "Chats", - "new": "New Chat", - "empty_message_error": "Cannot post empty message", - "more": "More", - "delete_confirm": "Do you really want to delete this message?", - "error_loading_chat": "Something went wrong when loading the chat.", - "error_sending_message": "Something went wrong when sending the message.", - "empty_chat_list_placeholder": "You don't have any chats yet. Start a new chat!" - }, - "lists": { - "lists": "Lists", - "new": "New List", - "title": "List title", - "search": "Search users", - "create": "Create", - "save": "Save changes", - "delete": "Delete list", - "following_only": "Limit to Following" - }, - "file_type": { - "audio": "Audio", - "video": "Video", - "image": "Image", - "file": "File" - }, - "display_date": { - "today": "Today" - } } diff --git a/src/i18n/eo.json b/src/i18n/eo.json index 57bdef87..2b711290 100644 --- a/src/i18n/eo.json +++ b/src/i18n/eo.json @@ -1,882 +1,851 @@ { - "chat": { - "title": "Babilejo" - }, - "features_panel": { - "chat": "Babilejo", - "gopher": "Gopher", - "media_proxy": "Vidaŭdaĵa retperilo", - "scope_options": "Agordoj de amplekso", - "text_limit": "Limo de teksto", - "title": "Funkcioj", - "who_to_follow": "Kiun aboni", - "pleroma_chat_messages": "Babilejo de Pleroma", - "upload_limit": "Limo de alŝutoj" - }, - "finder": { - "error_fetching_user": "Eraris alporto de uzanto", - "find_user": "Trovi uzanton" - }, - "general": { - "apply": "Apliki", - "submit": "Sendi", - "more": "Pli", - "generic_error": "Eraro okazis", - "optional": "malnepra", - "close": "Fermi", - "verify": "Kontroli", - "confirm": "Konfirmi", - "enable": "Ŝalti", - "disable": "Malŝalti", - "cancel": "Nuligi", - "dismiss": "Forlasi", - "show_less": "Montri malplion", - "show_more": "Montri plion", - "retry": "Reprovi", - "error_retry": "Bonvolu reprovi", - "loading": "Enlegante…", - "peek": "Antaŭmontri", - "role": { - "moderator": "Reguligisto", - "admin": "Administranto" - }, - "flash_content": "Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)", - "flash_security": "Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo.", - "flash_fail": "Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo." - }, - "image_cropper": { - "crop_picture": "Tondi bildon", - "save": "Konservi", - "cancel": "Nuligi", - "save_without_cropping": "Konservi sen tondado" - }, - "login": { - "login": "Saluti", - "description": "Saluti per OAuth", - "logout": "Adiaŭi", - "password": "Pasvorto", - "placeholder": "ekz. lain", - "register": "Registriĝi", - "username": "Uzantonomo", - "hint": "Salutu por partopreni la diskutadon", - "heading": { - "recovery": "Rehavo de duobla aŭtentikigo", - "totp": "Duobla aŭtentikigo" - }, - "recovery_code": "Rehava kodo", - "enter_two_factor_code": "Enigu kodon de duobla aŭtentikigo", - "enter_recovery_code": "Enigu rehavan kodon", - "authentication_code": "Aŭtentikiga kodo" - }, - "media_modal": { - "previous": "Antaŭa", - "next": "Sekva" - }, - "nav": { - "about": "Pri", - "back": "Reen", - "chat": "Loka babilejo", - "friend_requests": "Petoj pri abono", - "mentions": "Mencioj", - "dms": "Rektaj mesaĝoj", - "public_tl": "Publika historio", - "timeline": "Historio", - "twkn": "Konata reto", - "user_search": "Serĉi uzantojn", - "who_to_follow": "Kiun aboni", - "preferences": "Agordoj", - "chats": "Babiloj", - "search": "Serĉi", - "interactions": "Interagoj", - "administration": "Administrado", - "bookmarks": "Legosignoj", - "timelines": "Historioj", - "home_timeline": "Hejma historio" - }, - "notifications": { - "broken_favorite": "Nekonata stato, serĉante ĝin…", - "favorited_you": "ŝatis vian staton", - "followed_you": "ekabonis vin", - "load_older": "Enlegi pli malnovajn sciigojn", - "notifications": "Sciigoj", - "read": "Legite!", - "repeated_you": "ripetis vian staton", - "no_more_notifications": "Neniuj pliaj sciigoj", - "reacted_with": "reagis per {0}", - "migrated_to": "migris al", - "follow_request": "volas vin aboni", - "error": "Eraris akirado de sciigoj: {0}" - }, - "post_status": { - "new_status": "Afiŝi novan staton", - "account_not_locked_warning": "Via konto ne estas {0}. Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj.", - "account_not_locked_warning_link": "ŝlosita", - "attachments_sensitive": "Marki kunsendaĵojn konsternaj", - "content_type": { - "text/plain": "Plata teksto", - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML" - }, - "content_warning": "Temo (malnepra)", - "default": "Ĵus alvenis Esperantujon!", - "direct_warning": "Ĉi tiu afiŝo estos videbla nur por ĉiuj menciitaj uzantoj.", - "posting": "Afiŝante", - "scope": { - "direct": "Rekta – afiŝi nur al menciitaj uzantoj", - "private": "Nur abonantoj – afiŝi nur al abonantoj", - "public": "Publika – afiŝi al publikaj historioj", - "unlisted": "Nelistigita – ne afiŝi al publikaj historioj" - }, - "scope_notice": { - "unlisted": "Ĉi tiu afiŝo ne estos videbla en la Publika historio kaj La tuta konata reto", - "private": "Ĉi tiu afiŝo estos videbla nur al viaj abonantoj", - "public": "Ĉi tiu afiŝo estos videbla al ĉiuj" - }, - "media_description_error": "Malsukcesis afiŝo de vidaŭdaĵoj; reprovu", - "empty_status_error": "Ne povas afiŝi malplenan staton sen dosieroj", - "preview_empty": "Malplena", - "preview": "Antaŭrigardo", - "direct_warning_to_first_only": "Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.", - "direct_warning_to_all": "Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.", - "media_description": "Priskribo de vidaŭdaĵo", - "post": "Afiŝo" - }, - "registration": { - "bio": "Priskribo", - "email": "Retpoŝtadreso", - "fullname": "Prezenta nomo", - "password_confirm": "Konfirmo de pasvorto", - "registration": "Registriĝo", - "token": "Invita peco", - "captcha": "TESTO DE HOMECO", - "new_captcha": "Klaku la bildon por akiri novan teston", - "username_placeholder": "ekz. lain", - "fullname_placeholder": "ekz. Lain Ivakura", - "bio_placeholder": "ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired ».", - "validations": { - "username_required": "ne povas resti malplena", - "fullname_required": "ne povas resti malplena", - "email_required": "ne povas resti malplena", - "password_required": "ne povas resti malplena", - "password_confirmation_required": "ne povas resti malplena", - "password_confirmation_match": "samu la pasvorton" - }, - "reason_placeholder": "Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi.", - "reason": "Kialo registriĝi", - "register": "Registriĝi" - }, - "settings": { - "app_name": "Nomo de aplikaĵo", - "attachmentRadius": "Kunsendaĵoj", - "attachments": "Kunsendaĵoj", - "avatar": "Profilbildo", - "avatarAltRadius": "Profilbildoj (sciigoj)", - "avatarRadius": "Profilbildoj", - "background": "Fono", - "bio": "Priskribo", - "blocks_tab": "Blokitoj", - "btnRadius": "Butonoj", - "cBlue": "Blua (respondi, aboni)", - "cGreen": "Verda (diskonigi)", - "cOrange": "Oranĝa (ŝati)", - "cRed": "Ruĝa (nuligi)", - "change_password": "Ŝanĝi pasvorton", - "change_password_error": "Eraris ŝanĝo de via pasvorto.", - "changed_password": "Pasvorto sukcese ŝanĝiĝis!", - "collapse_subject": "Maletendi afiŝojn kun temoj", - "composing": "Verkado", - "confirm_new_password": "Konfirmu novan pasvorton", - "current_avatar": "Via nuna profilbildo", - "current_password": "Nuna pasvorto", - "current_profile_banner": "Via nuna profila rubando", - "data_import_export_tab": "Enporto / Elporto de datumoj", - "default_vis": "Implicita amplekso de vidibleco", - "delete_account": "Forigi konton", - "delete_account_description": "Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton.", - "delete_account_error": "Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo.", - "delete_account_instructions": "Entajpu sube vian pasvorton por konfirmi forigon de konto.", - "avatar_size_instruction": "La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj.", - "export_theme": "Konservi antaŭagordon", - "filtering": "Filtrado", - "filtering_explanation": "Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie", - "follow_export": "Elporto de abonoj", - "follow_export_button": "Elporti viajn abonojn al CSV-dosiero", - "follow_export_processing": "Traktante; baldaŭ vi ricevos peton elŝuti la dosieron", - "follow_import": "Enporto de abonoj", - "follow_import_error": "Eraro enportante abonojn", - "follows_imported": "Abonoj enportiĝis! Traktado daŭros iom da tempo.", - "foreground": "Malfono", - "general": "Ĝenerala", - "hide_attachments_in_convo": "Kaŝi kunsendaĵojn en interparoloj", - "hide_attachments_in_tl": "Kaŝi kunsendaĵojn en historioj", - "max_thumbnails": "Maksimuma nombro da bildetoj en afiŝo", - "hide_isp": "Kaŝi breton propran al nodo", - "preload_images": "Antaŭ-enlegi bildojn", - "use_one_click_nsfw": "Malfermi konsternajn kunsendaĵojn per nur unu klako", - "hide_post_stats": "Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)", - "hide_user_stats": "Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)", - "hide_filtered_statuses": "Kaŝi filtritajn statojn", - "import_followers_from_a_csv_file": "Enporti abonojn el CSV-dosiero", - "import_theme": "Enlegi antaŭagordojn", - "inputRadius": "Enigaj kampoj", - "checkboxRadius": "Markbutonoj", - "instance_default": "(originale: {value})", - "instance_default_simple": "(originale)", - "interface": "Fasado", - "interfaceLanguage": "Lingvo de fasado", - "invalid_theme_imported": "La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis.", - "limited_availability": "Nehavebla en via foliumilo", - "links": "Ligiloj", - "lock_account_description": "Limigi vian konton al nur abonantoj aprobitaj", - "loop_video": "Ripetadi filmojn", - "loop_video_silent_only": "Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)", - "mutes_tab": "Silentigoj", - "play_videos_in_modal": "Ludi filmojn en ŝpruca kadro", - "use_contain_fit": "Ne pritondi bildetojn de kunsendaĵoj", - "name": "Nomo", - "name_bio": "Nomo kaj priskribo", - "new_password": "Nova pasvorto", - "notification_visibility": "Montrotaj specoj de sciigoj", - "notification_visibility_follows": "Abonoj", - "notification_visibility_likes": "Ŝatoj", - "notification_visibility_mentions": "Mencioj", - "notification_visibility_repeats": "Ripetoj", - "no_rich_text_description": "Forigi riĉtekstajn formojn de ĉiuj afiŝoj", - "no_blocks": "Neniuj blokitoj", - "no_mutes": "Neniuj silentigoj", - "hide_follows_description": "Ne montri kiun mi sekvas", - "hide_followers_description": "Ne montri kiu min sekvas", - "show_admin_badge": "Montri la insignon de administranto en mia profilo", - "show_moderator_badge": "Montri la insignon de reguligisto en mia profilo", - "nsfw_clickthrough": "Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj statoj", - "oauth_tokens": "Pecoj de OAuth", - "token": "Peco", - "refresh_token": "Aktualiga peco", - "valid_until": "Valida ĝis", - "revoke_token": "Senvalidigi", - "panelRadius": "Bretoj", - "pause_on_unfocused": "Paŭzigi elsendfluon kiam langeto ne estas fokusata", - "presets": "Antaŭagordoj", - "profile_background": "Fono de profilo", - "profile_banner": "Rubando de profilo", - "profile_tab": "Profilo", - "radii_help": "Agordi fasadan rondigon de randoj (bildere)", - "replies_in_timeline": "Respondoj en historioj", - "reply_visibility_all": "Montri ĉiujn respondojn", - "reply_visibility_following": "Montri nur respondojn por mi aŭ miaj abonatoj", - "reply_visibility_self": "Montri nur respondojn por mi", - "saving_err": "Eraris konservado de agordoj", - "saving_ok": "Agordoj konserviĝis", - "security_tab": "Sekureco", - "scope_copy": "Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)", - "set_new_avatar": "Agordi novan profilbildon", - "set_new_profile_background": "Agordi novan fonon de profilo", - "set_new_profile_banner": "Agordi novan rubandon de profilo", - "settings": "Agordoj", - "subject_input_always_show": "Ĉiam montri kampon de temo", - "subject_line_behavior": "Kopii temon dum respondado", - "subject_line_email": "Kiel retpoŝto: «re: temo»", - "subject_line_mastodon": "Kiel Mastodon: kopii senŝanĝe", - "subject_line_noop": "Ne kopii", - "post_status_content_type": "Speco de enhavo de afiŝo", - "stop_gifs": "Movi GIF-bildojn dum ŝvebo de muso", - "streaming": "Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo", - "text": "Teksto", - "theme": "Haŭto", - "theme_help": "Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.", - "theme_help_v2_1": "Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn.", - "theme_help_v2_2": "Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.", - "tooltipRadius": "Ŝpruchelpiloj/avertoj", - "upload_a_photo": "Alŝuti foton", - "user_settings": "Agordoj de uzanto", - "values": { - "false": "ne", - "true": "jes" - }, - "notifications": "Sciigoj", - "enable_web_push_notifications": "Ŝalti retajn pasivajn sciigojn", - "style": { - "switcher": { - "keep_color": "Konservi kolorojn", - "keep_shadows": "Konservi ombrojn", - "keep_opacity": "Konservi maltravideblecon", - "keep_roundness": "Konservi rondecon", - "keep_fonts": "Konservi tiparojn", - "save_load_hint": "Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.", - "reset": "Restarigi", - "clear_all": "Vakigi ĉion", - "clear_opacity": "Vakigi maltravideblecon", - "help": { - "fe_downgraded": "Versio de PleromaFE reen iris.", - "fe_upgraded": "La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio.", - "older_version_imported": "La enportita dosiero estis farita per pli malnova versio de PleromaFE.", - "future_version_imported": "La enportita dosiero estis farita per pli nova versio de PleromaFE.", - "v2_imported": "La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj.", - "upgraded_from_v2": "PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras.", - "snapshot_missing": "Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis.", - "snapshot_present": "Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto.", - "snapshot_source_mismatch": "Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan.", - "migration_napshot_gone": "Ial mankis momentokopio; io povus aspekti malsame ol en via memoro.", - "migration_snapshot_ok": "Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto." + "about": { + "mrf": { + "federation": "Federado", + "keyword": { + "ftl_removal": "Forigo el la historio de «La tuta konata reto»", + "is_replaced_by": "→", + "keyword_policies": "Politiko pri ĉefvortoj", + "reject": "Rifuzi", + "replace": "Anstataŭigi" + }, + "mrf_policies": "Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)", + "mrf_policies_desc": "Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:", + "simple": { + "accept": "Akcepti", + "accept_desc": "Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:", + "ftl_removal": "Forigo el la historio de «Konata reto»", + "ftl_removal_desc": "Ĉi tiu nodo forigas la jenajn nodojn el la historio de «Konata reto»:", + "media_nsfw": "Devige marki vidaŭdaĵojn konsternaj", + "media_nsfw_desc": "Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:", + "media_removal": "Forigo de vidaŭdaĵoj", + "media_removal_desc": "Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:", + "quarantine": "Kvaranteno", + "quarantine_desc": "Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:", + "reject": "Rifuzi", + "reject_desc": "Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:", + "simple_policies": "Specialaj politikoj de la nodo" + } }, - "use_source": "Nova versio", - "use_snapshot": "Malnova versio", - "keep_as_is": "Teni senŝanĝa", - "load_theme": "Enlegi haŭton" - }, - "common": { - "color": "Koloro", - "opacity": "Maltravidebleco", - "contrast": { - "hint": "Proporcio de kontrasto estas {ratio}, ĝi {level} {context}", - "level": { - "aa": "plenumas la gvidilon je nivelo AA (minimuma)", - "aaa": "plenumas la gvidilon je nivela AAA (rekomendita)", - "bad": "plenumas neniujn faciluzajn gvidilojn" - }, - "context": { - "18pt": "por granda (18pt+) teksto", - "text": "por teksto" - } + "staff": "Skipo" + }, + "chats": { + "chats": "Babiloj", + "delete": "Forigi", + "delete_confirm": "Ĉu vi certe volas forigi ĉi tiun mesaĝon?", + "empty_chat_list_placeholder": "Vi ankoraŭ havas neniun babilon. Komencu novan babilon!", + "empty_message_error": "Ne povas sendi malplenan mesaĝon", + "error_loading_chat": "Io misokazis dum enlego de la babilo.", + "error_sending_message": "Io misokazis dum sendado de la mesaĝo.", + "message_user": "Mesaĝi al {nickname}", + "more": "Pli", + "new": "Nova babilo", + "you": "Vi:" + }, + "display_date": { + "today": "Hodiaŭ" + }, + "domain_mute_card": { + "mute": "Silentigi", + "mute_progress": "Silentigante…", + "unmute": "Malsilentigi", + "unmute_progress": "Malsilentigante…" + }, + "emoji": { + "add_emoji": "Enigi bildosignon", + "custom": "Propra bildosigno", + "emoji": "Bildsignoj", + "keep_open": "Teni elektilon malfermita", + "load_all": "Enlegante ĉiujn {emojiAmount} bildosignojn", + "load_all_hint": "Enlegis la {saneAmount} unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco.", + "search_emoji": "Serĉi bildosignon", + "stickers": "Glumarkoj", + "unicode": "Unikoda bildosigno" + }, + "errors": { + "storage_unavailable": "Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn." + }, + "exporter": { + "export": "Elporti", + "processing": "Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron" + }, + "features_panel": { + "media_proxy": "Vidaŭdaĵa retperilo", + "scope_options": "Agordoj de amplekso", + "text_limit": "Limo de teksto", + "title": "Funkcioj", + "upload_limit": "Limo de alŝutoj", + "who_to_follow": "Kiun aboni" + }, + "file_type": { + "audio": "Sono", + "file": "Dosiero", + "image": "Bildo", + "video": "Filmo" + }, + "finder": { + "error_fetching_user": "Eraris alporto de uzanto", + "find_user": "Trovi uzanton" + }, + "general": { + "apply": "Apliki", + "cancel": "Nuligi", + "close": "Fermi", + "confirm": "Konfirmi", + "disable": "Malŝalti", + "dismiss": "Forlasi", + "enable": "Ŝalti", + "error_retry": "Bonvolu reprovi", + "flash_content": "Klaku por montri enhavon de Flash per Ruffle. (Eksperimente, eble ne funkcios.)", + "flash_fail": "Malsukcesis enlegi enhavon de Flash; vidu detalojn en konzolo.", + "flash_security": "Sciu, ke tio povas esti danĝera, ĉar la enhavo de Flash ja estas arbitra programo.", + "generic_error": "Eraro okazis", + "loading": "Enlegante…", + "more": "Pli", + "optional": "malnepra", + "peek": "Antaŭmontri", + "retry": "Reprovi", + "role": { + "admin": "Administranto", + "moderator": "Reguligisto" + }, + "show_less": "Montri malplion", + "show_more": "Montri plion", + "submit": "Sendi", + "verify": "Kontroli" + }, + "image_cropper": { + "cancel": "Nuligi", + "crop_picture": "Tondi bildon", + "save": "Konservi", + "save_without_cropping": "Konservi sen tondado" + }, + "importer": { + "error": "Eraris enporto de ĉi tiu dosiero.", + "submit": "Sendi", + "success": "Enportita sukcese." + }, + "interactions": { + "favs_repeats": "Ripetoj kaj ŝatoj", + "follows": "Novaj abonoj", + "load_older": "Enlegi pli malnovajn interagojn", + "moves": "Migrado de uzantoj" + }, + "login": { + "authentication_code": "Aŭtentikiga kodo", + "description": "Saluti per OAuth", + "enter_recovery_code": "Enigu rehavan kodon", + "enter_two_factor_code": "Enigu kodon de duobla aŭtentikigo", + "heading": { + "recovery": "Rehavo de duobla aŭtentikigo", + "totp": "Duobla aŭtentikigo" + }, + "hint": "Salutu por partopreni la diskutadon", + "login": "Saluti", + "logout": "Adiaŭi", + "password": "Pasvorto", + "placeholder": "ekz. lain", + "recovery_code": "Rehava kodo", + "register": "Registriĝi", + "username": "Uzantonomo" + }, + "media_modal": { + "next": "Sekva", + "previous": "Antaŭa" + }, + "nav": { + "about": "Pri", + "administration": "Administrado", + "back": "Reen", + "bookmarks": "Legosignoj", + "chats": "Babiloj", + "dms": "Rektaj mesaĝoj", + "friend_requests": "Petoj pri abono", + "home_timeline": "Hejma historio", + "interactions": "Interagoj", + "mentions": "Mencioj", + "preferences": "Agordoj", + "public_tl": "Publika historio", + "search": "Serĉi", + "timeline": "Historio", + "timelines": "Historioj", + "twkn": "Konata reto", + "user_search": "Serĉi uzantojn", + "who_to_follow": "Kiun aboni" + }, + "notifications": { + "broken_favorite": "Nekonata stato, serĉante ĝin…", + "error": "Eraris akirado de sciigoj: {0}", + "favorited_you": "ŝatis vian staton", + "follow_request": "volas vin aboni", + "followed_you": "ekabonis vin", + "load_older": "Enlegi pli malnovajn sciigojn", + "migrated_to": "migris al", + "no_more_notifications": "Neniuj pliaj sciigoj", + "notifications": "Sciigoj", + "reacted_with": "reagis per {0}", + "read": "Legite!", + "repeated_you": "ripetis vian staton" + }, + "password_reset": { + "check_email": "Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton.", + "forgot_password": "Ĉu vi forgesis pasvorton?", + "instruction": "Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton.", + "password_reset": "Restarigi pasvorton", + "password_reset_disabled": "Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.", + "password_reset_required": "Vi devas restarigi vian pasvorton por saluti.", + "password_reset_required_but_mailer_is_disabled": "Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.", + "placeholder": "Via retpoŝtadreso aŭ uzantonomo", + "return_home": "Reiri al la hejmpaĝo", + "too_many_requests": "Vi atingis la limon de provoj, reprovu pli poste." + }, + "polls": { + "add_option": "Aldoni elekteblon", + "add_poll": "Aldoni enketon", + "expired": "Enketo finiĝis antaŭ {0}", + "expires_in": "Enketo finiĝas je {0}", + "expiry": "Aĝo de enketo", + "multiple_choices": "Pluraj elektoj", + "not_enough_options": "Tro malmultaj unikaj elektebloj en la enketo", + "option": "Elekteblo", + "people_voted_count": "{count} persono voĉdonis | {count} personoj voĉdonis", + "single_choice": "Unu elekto", + "type": "Speco de enketo", + "vote": "Voĉi", + "votes": "voĉoj", + "votes_count": "{count} voĉdono | {count} voĉdonoj" + }, + "post_status": { + "account_not_locked_warning": "Via konto ne estas {0}. Iu ajn povas vin aboni por vidi eĉ viajn afiŝoj nur por abonantoj.", + "account_not_locked_warning_link": "ŝlosita", + "attachments_sensitive": "Marki kunsendaĵojn konsternaj", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Plata teksto" + }, + "content_warning": "Temo (malnepra)", + "default": "Ĵus alvenis Esperantujon!", + "direct_warning_to_all": "Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.", + "direct_warning_to_first_only": "Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.", + "empty_status_error": "Ne povas afiŝi malplenan staton sen dosieroj", + "media_description": "Priskribo de vidaŭdaĵo", + "media_description_error": "Malsukcesis afiŝo de vidaŭdaĵoj; reprovu", + "new_status": "Afiŝi novan staton", + "post": "Afiŝo", + "posting": "Afiŝante", + "preview": "Antaŭrigardo", + "preview_empty": "Malplena", + "scope": { + "direct": "Rekta – afiŝi nur al menciitaj uzantoj", + "private": "Nur abonantoj – afiŝi nur al abonantoj", + "public": "Publika – afiŝi al publikaj historioj", + "unlisted": "Nelistigita – ne afiŝi al publikaj historioj" + }, + "scope_notice": { + "private": "Ĉi tiu afiŝo estos videbla nur al viaj abonantoj", + "public": "Ĉi tiu afiŝo estos videbla al ĉiuj", + "unlisted": "Ĉi tiu afiŝo ne estos videbla en la Publika historio kaj La tuta konata reto" } - }, - "common_colors": { - "_tab_label": "Komunaj", - "main": "Komunaj koloroj", - "foreground_hint": "Vidu langeton «Specialaj» por pli detalaj agordoj", - "rgbo": "Bildsimboloj, emfazoj, insignoj" - }, - "advanced_colors": { - "_tab_label": "Specialaj", - "alert": "Fono de averto", - "alert_error": "Eraro", - "badge": "Fono de insigno", - "badge_notification": "Sciigo", - "panel_header": "Kapo de breto", - "top_bar": "Supra breto", - "borders": "Limoj", - "buttons": "Butonoj", - "inputs": "Enigaj kampoj", - "faint_text": "Malvigla teksto", - "chat": { - "border": "Limo", - "outgoing": "Eliraj", - "incoming": "Envenaj" + }, + "registration": { + "bio": "Priskribo", + "bio_placeholder": "ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo « Wired ».", + "captcha": "TESTO DE HOMECO", + "email": "Retpoŝtadreso", + "fullname": "Prezenta nomo", + "fullname_placeholder": "ekz. Lain Ivakura", + "new_captcha": "Klaku la bildon por akiri novan teston", + "password_confirm": "Konfirmo de pasvorto", + "reason": "Kialo registriĝi", + "reason_placeholder": "Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi.", + "register": "Registriĝi", + "registration": "Registriĝo", + "token": "Invita peco", + "username_placeholder": "ekz. lain", + "validations": { + "email_required": "ne povas resti malplena", + "fullname_required": "ne povas resti malplena", + "password_confirmation_match": "samu la pasvorton", + "password_confirmation_required": "ne povas resti malplena", + "password_required": "ne povas resti malplena", + "username_required": "ne povas resti malplena" + } + }, + "remote_user_resolver": { + "error": "Netrovinte.", + "remote_user_resolver": "Trovilo de foraj uzantoj", + "searching_for": "Serĉante" + }, + "search": { + "hashtags": "Kradvortoj", + "no_results": "Neniuj rezultoj", + "people": "Personoj", + "people_talking": "{count} personoj parolas", + "person_talking": "{count} persono parolas" + }, + "selectable_list": { + "select_all": "Elekti ĉion" + }, + "settings": { + "accent": "Emfazo", + "allow_following_move": "Permesi memagan abonadon kiam abonata konto migras", + "always_show_post_button": "Ĉiam montri ŝvebantan butonon por nova afiŝo", + "app_name": "Nomo de aplikaĵo", + "attachmentRadius": "Kunsendaĵoj", + "attachments": "Kunsendaĵoj", + "autohide_floating_post_button": "Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)", + "avatar": "Profilbildo", + "avatarAltRadius": "Profilbildoj (sciigoj)", + "avatarRadius": "Profilbildoj", + "avatar_size_instruction": "La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj.", + "background": "Fono", + "bio": "Priskribo", + "block_export": "Elporto de blokitoj", + "block_export_button": "Elporti viajn blokitojn al CSV-dosiero", + "block_import": "Enporto de blokitoj", + "block_import_error": "Eraris enporto de blokitoj", + "blocks_imported": "Blokitoj enportiĝis! Traktado daŭros iom da tempo.", + "blocks_tab": "Blokitoj", + "bot": "Ĉi tio estas robota konto", + "btnRadius": "Butonoj", + "cBlue": "Blua (respondi, aboni)", + "cGreen": "Verda (diskonigi)", + "cOrange": "Oranĝa (ŝati)", + "cRed": "Ruĝa (nuligi)", + "change_email": "Ŝanĝi retpoŝtadreson", + "change_email_error": "Eraris ŝanĝo de via retpoŝtadreso.", + "change_password": "Ŝanĝi pasvorton", + "change_password_error": "Eraris ŝanĝo de via pasvorto.", + "changed_email": "Retpoŝtadreso sukcese ŝanĝiĝis!", + "changed_password": "Pasvorto sukcese ŝanĝiĝis!", + "chatMessageRadius": "Babileja mesaĝo", + "checkboxRadius": "Markbutonoj", + "collapse_subject": "Maletendi afiŝojn kun temoj", + "composing": "Verkado", + "confirm_new_password": "Konfirmu novan pasvorton", + "current_avatar": "Via nuna profilbildo", + "current_password": "Nuna pasvorto", + "data_import_export_tab": "Enporto / Elporto de datumoj", + "default_vis": "Implicita amplekso de vidibleco", + "delete_account": "Forigi konton", + "delete_account_description": "Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton.", + "delete_account_error": "Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo.", + "delete_account_instructions": "Entajpu sube vian pasvorton por konfirmi forigon de konto.", + "discoverable": "Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj", + "domain_mutes": "Retnomoj", + "emoji_reactions_on_timeline": "Montri bildosignajn reagojn en historioj", + "enable_web_push_notifications": "Ŝalti retajn pasivajn sciigojn", + "enter_current_password_to_confirm": "Enigu vian pasvorton por konfirmi vian identecon", + "export_theme": "Konservi antaŭagordon", + "file_export_import": { + "backup_restore": "Savkopio de agordoj", + "backup_settings": "Savkopii agordojn al dosiero", + "backup_settings_theme": "Savkopii agordojn kaj haŭton al dosiero", + "errors": { + "file_slightly_new": "Etversio de dosiero malsamas, iuj agordoj eble ne funkcios", + "file_too_new": "Nekonforma ĉefa versio: {fileMajor}, ĉi tiu PleromaFE (agordoj je versio {feMajor}) tro malnovas por tio", + "file_too_old": "Nekonforma ĉefa versio: {fileMajor}, versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas {feMajor})", + "invalid_file": "La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis." + }, + "restore_settings": "Rehavi agordojn el dosiero" }, - "tabs": "Langetoj", - "disabled": "Malŝaltita", - "selectedMenu": "Elektita menuero", - "selectedPost": "Elektita afiŝo", - "pressed": "Premita", - "highlight": "Emfazitaj eroj", - "icons": "Bildsimboloj", - "poll": "Grafo de enketo", - "underlay": "Subtavolo", - "popover": "Ŝprucaĵoj, menuoj", - "post": "Afiŝoj/Priskriboj de uzantoj", - "alert_neutral": "Neŭtrala", - "alert_warning": "Averto", - "toggled": "Ŝaltita", - "wallpaper": "Fonbildo" - }, - "radii": { - "_tab_label": "Rondeco" - }, - "shadows": { - "_tab_label": "Ombro kaj lumo", - "component": "Ero", - "override": "Transpasi", - "shadow_id": "Ombro #{value}", - "blur": "Malklarigo", - "spread": "Vastigo", - "inset": "Internigo", - "hint": "Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.", - "filter_hint": { - "always_drop_shadow": "Averto: ĉi tiu ombro ĉiam uzas {0} kiam la foliumilo tion subtenas.", - "drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ĉefvorton {2}.", - "avatar_inset": "Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.", - "spread_zero": "Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo", - "inset_classic": "Internaj ombroj uzos {0}" + "filtering": "Filtrado", + "filtering_explanation": "Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie", + "follow_export": "Elporto de abonoj", + "follow_export_button": "Elporti viajn abonojn al CSV-dosiero", + "follow_import": "Enporto de abonoj", + "follow_import_error": "Eraro enportante abonojn", + "follows_imported": "Abonoj enportiĝis! Traktado daŭros iom da tempo.", + "foreground": "Malfono", + "fun": "Amuzo", + "general": "Ĝenerala", + "greentext": "Memecitaĵoj", + "hide_all_muted_posts": "Kaŝi silentigitajn afiŝojn", + "hide_attachments_in_convo": "Kaŝi kunsendaĵojn en interparoloj", + "hide_attachments_in_tl": "Kaŝi kunsendaĵojn en historioj", + "hide_filtered_statuses": "Kaŝi filtritajn statojn", + "hide_followers_count_description": "Ne montri nombron de abonantoj", + "hide_followers_description": "Ne montri kiu min sekvas", + "hide_follows_count_description": "Ne montri nombron de abonoj", + "hide_follows_description": "Ne montri kiun mi sekvas", + "hide_isp": "Kaŝi breton propran al nodo", + "hide_media_previews": "Kaŝi antaŭrigardojn al vidaŭdaĵoj", + "hide_muted_posts": "Kaŝi afiŝojn de silentigitaj uzantoj", + "hide_post_stats": "Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)", + "hide_shoutbox": "Kaŝi kriujon de nodo", + "hide_user_stats": "Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)", + "hide_wallpaper": "Kaŝi fonbildon de nodo", + "import_blocks_from_a_csv_file": "Enporti blokitojn el CSV-dosiero", + "import_followers_from_a_csv_file": "Enporti abonojn el CSV-dosiero", + "import_mutes_from_a_csv_file": "Enporti silentigojn el CSV-dosiero", + "import_theme": "Enlegi antaŭagordojn", + "inputRadius": "Enigaj kampoj", + "instance_default": "(originale: {value})", + "instance_default_simple": "(originale)", + "interface": "Fasado", + "interfaceLanguage": "Lingvo de fasado", + "invalid_theme_imported": "La elektita dosiero ne estas subtenata haŭto de Pleromo. Neniuj ŝanĝoj al via haŭto okazis.", + "limited_availability": "Nehavebla en via foliumilo", + "links": "Ligiloj", + "lock_account_description": "Limigi vian konton al nur abonantoj aprobitaj", + "loop_video": "Ripetadi filmojn", + "loop_video_silent_only": "Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)", + "max_thumbnails": "Maksimuma nombro da bildetoj en afiŝo", + "mfa": { + "authentication_methods": "Metodoj de aŭtentikigo", + "confirm_and_enable": "Konfirmi kaj ŝalti OTP", + "generate_new_recovery_codes": "Estigi novajn rehavajn kodojn", + "otp": "OTP", + "recovery_codes": "Rehavaj kodoj.", + "recovery_codes_warning": "Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton.", + "scan": { + "desc": "Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:", + "secret_code": "Ŝlosilo", + "title": "Skani" + }, + "setup_otp": "Agordi OTP", + "title": "Duobla aŭtentikigo", + "verify": { + "desc": "Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:" + }, + "wait_pre_setup_otp": "antaŭagordante OTP", + "waiting_a_recovery_codes": "Ricevante savkopiajn kodojn…", + "warning_of_generate_new_codes": "Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios." }, - "components": { - "panel": "Breto", - "panelHeader": "Kapo de breto", - "topBar": "Supra breto", - "avatar": "Profilbildo de uzanto (en profila vido)", - "avatarStatus": "Profilbildo de uzanto (en afiŝa vido)", - "popup": "Ŝprucaĵoj", - "button": "Butono", - "buttonHover": "Butono (je ŝvebo)", - "buttonPressed": "Butono (premita)", - "buttonPressedHover": "Butono (je premo kaj ŝvebo)", - "input": "Eniga kampo" + "minimal_scopes_mode": "Minimumigi elekteblojn pri amplekso de afiŝoj", + "more_settings": "Pliaj agordoj", + "mute_export": "Elporto de silentigoj", + "mute_export_button": "Elportu viajn silentigojn al CSV-dosiero", + "mute_import": "Enporto de silentigoj", + "mute_import_error": "Eraris enporto de silentigoj", + "mutes_and_blocks": "Blokado kaj silentigoj", + "mutes_imported": "Silentigoj enportiĝis! Traktado daŭros iom da tempo.", + "mutes_tab": "Silentigoj", + "name": "Nomo", + "name_bio": "Nomo kaj priskribo", + "new_email": "Nova retpoŝtadreso", + "new_password": "Nova pasvorto", + "no_blocks": "Neniuj blokitoj", + "no_mutes": "Neniuj silentigoj", + "no_rich_text_description": "Forigi riĉtekstajn formojn de ĉiuj afiŝoj", + "notification_blocks": "Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn.", + "notification_mutes": "Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin.", + "notification_setting_block_from_strangers": "Bloki sciigojn de uzantoj, kiujn vi ne abonas", + "notification_setting_filters": "Filtriloj", + "notification_setting_hide_notification_contents": "Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj", + "notification_setting_privacy": "Privateco", + "notification_visibility": "Montrotaj specoj de sciigoj", + "notification_visibility_emoji_reactions": "Reagoj", + "notification_visibility_follows": "Abonoj", + "notification_visibility_likes": "Ŝatoj", + "notification_visibility_mentions": "Mencioj", + "notification_visibility_moves": "Migroj", + "notification_visibility_repeats": "Ripetoj", + "notifications": "Sciigoj", + "nsfw_clickthrough": "Ŝalti traklakan kaŝadon de kunsendaĵoj kaj antaŭmontroj de ligiloj por konsternaj statoj", + "oauth_tokens": "Pecoj de OAuth", + "pad_emoji": "Meti spacetojn ĉirkaŭ bildosigno post ties elekto", + "panelRadius": "Bretoj", + "pause_on_unfocused": "Paŭzigi elsendfluon kiam langeto ne estas fokusata", + "play_videos_in_modal": "Ludi filmojn en ŝpruca kadro", + "post_status_content_type": "Speco de enhavo de afiŝo", + "preload_images": "Antaŭ-enlegi bildojn", + "presets": "Antaŭagordoj", + "profile_background": "Fono de profilo", + "profile_banner": "Rubando de profilo", + "profile_fields": { + "add_field": "Aldoni kampon", + "label": "Pridatumoj de profilo", + "name": "Etikedo", + "value": "Enhavo" }, - "hintV3": "Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo {0}." - }, - "fonts": { - "_tab_label": "Tiparoj", - "help": "Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo.", - "components": { - "interface": "Fasado", - "input": "Enigaj kampoj", - "post": "Teksto de afiŝo", - "postCode": "Egallarĝa teksto en afiŝo (riĉteksto)" + "profile_tab": "Profilo", + "radii_help": "Agordi fasadan rondigon de randoj (bildere)", + "refresh_token": "Aktualiga peco", + "replies_in_timeline": "Respondoj en historioj", + "reply_visibility_all": "Montri ĉiujn respondojn", + "reply_visibility_following": "Montri nur respondojn por mi aŭ miaj abonatoj", + "reply_visibility_following_short": "Montri respondojn por miaj abonatoj", + "reply_visibility_self": "Montri nur respondojn por mi", + "reply_visibility_self_short": "Montri nur respondojn por mi", + "reset_avatar": "Restarigi profilbildon", + "reset_avatar_confirm": "Ĉu vi certe volas restarigi la profilbildon?", + "reset_background_confirm": "Ĉu vi certe volas restarigi la fonon?", + "reset_banner_confirm": "Ĉu vi certe volas restarigi la rubandon?", + "reset_profile_background": "Restarigi fonon de profilo", + "reset_profile_banner": "Restarigi rubandon de profilo", + "revoke_token": "Senvalidigi", + "right_sidebar": "Montri flankan breton dekstre", + "save": "Konservi ŝanĝojn", + "saving_err": "Eraris konservado de agordoj", + "saving_ok": "Agordoj konserviĝis", + "scope_copy": "Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)", + "search_user_to_block": "Serĉu, kiun vi volas bloki", + "search_user_to_mute": "Serĉu, kiun vi volas silentigi", + "security": "Sekureco", + "security_tab": "Sekureco", + "sensitive_by_default": "Implicite marki afiŝojn konsternaj", + "set_new_avatar": "Agordi novan profilbildon", + "set_new_profile_background": "Agordi novan fonon de profilo", + "set_new_profile_banner": "Agordi novan rubandon de profilo", + "setting_changed": "Agordo malsamas de la implicita", + "settings": "Agordoj", + "show_admin_badge": "Montri la insignon de administranto en mia profilo", + "show_moderator_badge": "Montri la insignon de reguligisto en mia profilo", + "stop_gifs": "Movi GIF-bildojn dum ŝvebo de muso", + "streaming": "Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo", + "style": { + "advanced_colors": { + "_tab_label": "Specialaj", + "alert": "Fono de averto", + "alert_error": "Eraro", + "alert_neutral": "Neŭtrala", + "alert_warning": "Averto", + "badge": "Fono de insigno", + "badge_notification": "Sciigo", + "borders": "Limoj", + "buttons": "Butonoj", + "chat": { + "border": "Limo", + "incoming": "Envenaj", + "outgoing": "Eliraj" + }, + "disabled": "Malŝaltita", + "faint_text": "Malvigla teksto", + "highlight": "Emfazitaj eroj", + "icons": "Bildsimboloj", + "inputs": "Enigaj kampoj", + "panel_header": "Kapo de breto", + "poll": "Grafo de enketo", + "popover": "Ŝprucaĵoj, menuoj", + "post": "Afiŝoj/Priskriboj de uzantoj", + "pressed": "Premita", + "selectedMenu": "Elektita menuero", + "selectedPost": "Elektita afiŝo", + "tabs": "Langetoj", + "toggled": "Ŝaltita", + "top_bar": "Supra breto", + "underlay": "Subtavolo", + "wallpaper": "Fonbildo" + }, + "common": { + "color": "Koloro", + "contrast": { + "context": { + "18pt": "por granda (18pt+) teksto", + "text": "por teksto" + }, + "hint": "Proporcio de kontrasto estas {ratio}, ĝi {level} {context}", + "level": { + "aa": "plenumas la gvidilon je nivelo AA (minimuma)", + "aaa": "plenumas la gvidilon je nivela AAA (rekomendita)", + "bad": "plenumas neniujn faciluzajn gvidilojn" + } + }, + "opacity": "Maltravidebleco" + }, + "common_colors": { + "_tab_label": "Komunaj", + "foreground_hint": "Vidu langeton «Specialaj» por pli detalaj agordoj", + "main": "Komunaj koloroj", + "rgbo": "Bildsimboloj, emfazoj, insignoj" + }, + "fonts": { + "_tab_label": "Tiparoj", + "components": { + "input": "Enigaj kampoj", + "interface": "Fasado", + "post": "Teksto de afiŝo", + "postCode": "Egallarĝa teksto en afiŝo (riĉteksto)" + }, + "custom": "Propra", + "family": "Nomo de tiparo", + "help": "Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo.", + "size": "Grando (en bilderoj)", + "weight": "Pezo (graseco)" + }, + "preview": { + "button": "Butono", + "checkbox": "Mi legetis la kondiĉojn de uzado", + "content": "Enhavo", + "error": "Ekzempla eraro", + "faint_link": "helpan manlibron", + "fine_print": "Legu nian {0} por nenion utilan ekscii!", + "header": "Antaŭrigardo", + "header_faint": "Tio estas en ordo", + "input": "Ĵus alvenis Esperantujon!", + "link": "bela eta ligil’", + "mono": "enhavo", + "text": "Kelko da pliaj {0} kaj {1}" + }, + "radii": { + "_tab_label": "Rondeco" + }, + "shadows": { + "_tab_label": "Ombro kaj lumo", + "blur": "Malklarigo", + "component": "Ero", + "components": { + "avatar": "Profilbildo de uzanto (en profila vido)", + "avatarStatus": "Profilbildo de uzanto (en afiŝa vido)", + "button": "Butono", + "buttonHover": "Butono (je ŝvebo)", + "buttonPressed": "Butono (premita)", + "buttonPressedHover": "Butono (je premo kaj ŝvebo)", + "input": "Eniga kampo", + "panel": "Breto", + "panelHeader": "Kapo de breto", + "popup": "Ŝprucaĵoj", + "topBar": "Supra breto" + }, + "filter_hint": { + "always_drop_shadow": "Averto: ĉi tiu ombro ĉiam uzas {0} kiam la foliumilo tion subtenas.", + "avatar_inset": "Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.", + "drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ĉefvorton {2}.", + "inset_classic": "Internaj ombroj uzos {0}", + "spread_zero": "Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo" + }, + "hintV3": "Kolorojn de ombroj vi ankaŭ povas skribi per la sistemo {0}.", + "inset": "Internigo", + "override": "Transpasi", + "shadow_id": "Ombro #{value}", + "spread": "Vastigo" + }, + "switcher": { + "clear_all": "Vakigi ĉion", + "clear_opacity": "Vakigi maltravideblecon", + "help": { + "fe_downgraded": "Versio de PleromaFE reen iris.", + "fe_upgraded": "La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio.", + "future_version_imported": "La enportita dosiero estis farita per pli nova versio de PleromaFE.", + "migration_napshot_gone": "Ial mankis momentokopio; io povus aspekti malsame ol en via memoro.", + "migration_snapshot_ok": "Certige, momentokopio de la haŭto enlegiĝis. Vi povas provi enlegi datumojn de la haŭto.", + "older_version_imported": "La enportita dosiero estis farita per pli malnova versio de PleromaFE.", + "snapshot_missing": "Neniu momentokopio de haŭto estis en la dosiero, ĝi povas aspekti iom malsame ol oni intencis.", + "snapshot_present": "Ĉiuj valoroj estas transpasataj, ĉar momentokopio de haŭto estas enlegita. Vi povas enlegi anstataŭe la aktualajn datumojn de haŭto.", + "snapshot_source_mismatch": "Versioj konfliktas: plej probable la fasado estis reirigita kaj ree ĝisdatigita; se vi ŝanĝis la haŭton per pli malnova versio de la fasado, vi probable volas uzi la malnovan version. Alie uzu la novan.", + "upgraded_from_v2": "PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras.", + "v2_imported": "La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj." + }, + "keep_as_is": "Teni senŝanĝa", + "keep_color": "Konservi kolorojn", + "keep_fonts": "Konservi tiparojn", + "keep_opacity": "Konservi maltravideblecon", + "keep_roundness": "Konservi rondecon", + "keep_shadows": "Konservi ombrojn", + "load_theme": "Enlegi haŭton", + "reset": "Restarigi", + "save_load_hint": "Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.", + "use_snapshot": "Malnova versio", + "use_source": "Nova versio" + } }, - "family": "Nomo de tiparo", - "size": "Grando (en bilderoj)", - "weight": "Pezo (graseco)", - "custom": "Propra" - }, - "preview": { - "header": "Antaŭrigardo", - "content": "Enhavo", - "error": "Ekzempla eraro", - "button": "Butono", - "text": "Kelko da pliaj {0} kaj {1}", - "mono": "enhavo", - "input": "Ĵus alvenis Esperantujon!", - "faint_link": "helpan manlibron", - "fine_print": "Legu nian {0} por nenion utilan ekscii!", - "header_faint": "Tio estas en ordo", - "checkbox": "Mi legetis la kondiĉojn de uzado", - "link": "bela eta ligil’" - } + "subject_input_always_show": "Ĉiam montri kampon de temo", + "subject_line_behavior": "Kopii temon dum respondado", + "subject_line_email": "Kiel retpoŝto: «re: temo»", + "subject_line_mastodon": "Kiel Mastodon: kopii senŝanĝe", + "subject_line_noop": "Ne kopii", + "text": "Teksto", + "theme": "Haŭto", + "theme_help": "Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.", + "theme_help_v2_1": "Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn.", + "theme_help_v2_2": "Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.", + "token": "Peco", + "tooltipRadius": "Ŝpruchelpiloj/avertoj", + "type_domains_to_mute": "Serĉu silentigotajn retnomojn", + "upload_a_photo": "Alŝuti foton", + "useStreamingApi": "Ricevi afiŝojn kaj sciigojn realtempe", + "useStreamingApiWarning": "(Nerekomendate, eksperimente, povas preterpasi afiŝojn)", + "use_contain_fit": "Ne pritondi bildetojn de kunsendaĵoj", + "use_one_click_nsfw": "Malfermi konsternajn kunsendaĵojn per nur unu klako", + "user_mutes": "Uzantoj", + "user_settings": "Agordoj de uzanto", + "valid_until": "Valida ĝis", + "values": { + "false": "ne", + "true": "jes" + }, + "version": { + "backend_version": "Versio de internaĵo", + "frontend_version": "Versio de fasado", + "title": "Versio" + }, + "virtual_scrolling": "Optimumigi bildigon de historioj", + "word_filter": "Vortofiltro" }, - "discoverable": "Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj", - "mutes_and_blocks": "Blokado kaj silentigoj", - "chatMessageRadius": "Babileja mesaĝo", - "changed_email": "Retpoŝtadreso sukcese ŝanĝiĝis!", - "change_email_error": "Eraris ŝanĝo de via retpoŝtadreso.", - "change_email": "Ŝanĝi retpoŝtadreson", - "bot": "Ĉi tio estas robota konto", - "blocks_imported": "Blokitoj enportiĝis! Traktado daŭros iom da tempo.", - "block_import_error": "Eraris enporto de blokitoj", - "block_export": "Elporto de blokitoj", - "block_import": "Enporto de blokitoj", - "block_export_button": "Elporti viajn blokitojn al CSV-dosiero", - "allow_following_move": "Permesi memagan abonadon kiam abonata konto migras", - "mfa": { - "verify": { - "desc": "Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:" - }, - "scan": { - "secret_code": "Ŝlosilo", - "desc": "Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:", - "title": "Skani" - }, - "authentication_methods": "Metodoj de aŭtentikigo", - "recovery_codes_warning": "Notu la kodojn aŭ konservu ilin en sekura loko – alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton.", - "waiting_a_recovery_codes": "Ricevante savkopiajn kodojn…", - "recovery_codes": "Rehavaj kodoj.", - "warning_of_generate_new_codes": "Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios.", - "generate_new_recovery_codes": "Estigi novajn rehavajn kodojn", - "title": "Duobla aŭtentikigo", - "otp": "OTP", - "wait_pre_setup_otp": "antaŭagordante OTP", - "setup_otp": "Agordi OTP", - "confirm_and_enable": "Konfirmi kaj ŝalti OTP" + "status": { + "bookmark": "Legosigni", + "copy_link": "Kopii ligilon al stato", + "delete": "Forigi staton", + "delete_confirm": "Ĉu vi certe volas forigi ĉi tiun staton?", + "expand": "Etendi", + "external_source": "Ekstera fonto", + "favorites": "Ŝatoj", + "hide_content": "Kaŝi enhavon", + "hide_full_subject": "Kaŝi plenan temon", + "mentions": "Mencioj", + "mute_conversation": "Silentigi interparolon", + "nsfw": "Konsterna", + "pin": "Fiksi al profilo", + "pinned": "Fiksita", + "plus_more": "+{number} pli", + "repeats": "Ripetoj", + "replies_list": "Respondoj:", + "reply_to": "Responde al", + "show_content": "Montri enhavon", + "show_full_subject": "Montri plenan temon", + "status_deleted": "Ĉi tiu afiŝo foriĝis", + "status_unavailable": "Stato ne estas disponebla", + "thread_muted": "Fadeno silentigita", + "thread_muted_and_words": ", enhavas vortojn:", + "unbookmark": "Senlegosigni", + "unmute_conversation": "Malsilentigi interparolon", + "unpin": "Malfiksi de profilo", + "you": "(Vi)" }, - "enter_current_password_to_confirm": "Enigu vian pasvorton por konfirmi vian identecon", - "security": "Sekureco", - "fun": "Amuzo", - "type_domains_to_mute": "Serĉu silentigotajn retnomojn", - "useStreamingApiWarning": "(Nerekomendate, eksperimente, povas preterpasi afiŝojn)", - "useStreamingApi": "Ricevi afiŝojn kaj sciigojn realtempe", - "user_mutes": "Uzantoj", - "reset_background_confirm": "Ĉu vi certe volas restarigi la fonon?", - "reset_banner_confirm": "Ĉu vi certe volas restarigi la rubandon?", - "reset_avatar_confirm": "Ĉu vi certe volas restarigi la profilbildon?", - "reset_profile_banner": "Restarigi rubandon de profilo", - "reset_profile_background": "Restarigi fonon de profilo", - "reset_avatar": "Restarigi profilbildon", - "minimal_scopes_mode": "Minimumigi elekteblojn pri amplekso de afiŝoj", - "search_user_to_block": "Serĉu, kiun vi volas bloki", - "search_user_to_mute": "Serĉu, kiun vi volas silentigi", - "autohide_floating_post_button": "Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)", - "hide_followers_count_description": "Ne montri nombron de abonantoj", - "hide_follows_count_description": "Ne montri nombron de abonoj", - "notification_visibility_emoji_reactions": "Reagoj", - "notification_visibility_moves": "Migroj", - "new_email": "Nova retpoŝtadreso", - "profile_fields": { - "value": "Enhavo", - "name": "Etikedo", - "add_field": "Aldoni kampon", - "label": "Pridatumoj de profilo" + "time": { + "in_future": "post {0}", + "in_past": "antaŭ {0}", + "now": "ĵus", + "now_short": "nun", + "unit": { + "days": "{0} tagoj", + "days_short": "{0}t", + "hours": "{0} horoj", + "hours_short": "{0}hor", + "minutes": "{0} minutoj", + "minutes_short": "{0}min", + "months": "{0} monatoj", + "months_short": "{0}m", + "seconds": "{0} sekundoj", + "seconds_short": "{0}sek", + "weeks": "{0} semajnoj", + "weeks_short": "{0}s", + "years": "{0} jaroj", + "years_short": "{0}j" + } }, - "import_blocks_from_a_csv_file": "Enporti blokitojn el CSV-dosiero", - "hide_muted_posts": "Kaŝi afiŝojn de silentigitaj uzantoj", - "emoji_reactions_on_timeline": "Montri bildosignajn reagojn en historioj", - "pad_emoji": "Meti spacetojn ĉirkaŭ bildosigno post ties elekto", - "domain_mutes": "Retnomoj", - "notification_blocks": "Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn.", - "notification_mutes": "Por ne plu ricevi sciigojn de certa uzanto, silentigu ĝin.", - "notification_setting_hide_notification_contents": "Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj", - "notification_setting_privacy": "Privateco", - "notification_setting_block_from_strangers": "Bloki sciigojn de uzantoj, kiujn vi ne abonas", - "notification_setting_filters": "Filtriloj", - "greentext": "Memecitaĵoj", - "version": { - "frontend_version": "Versio de fasado", - "backend_version": "Versio de internaĵo", - "title": "Versio" + "timeline": { + "collapse": "Maletendi", + "conversation": "Interparolo", + "error": "Eraris akirado de historio: {0}", + "load_older": "Montri pli malnovajn statojn", + "no_more_statuses": "Neniuj pliaj statoj", + "no_retweet_hint": "Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti", + "no_statuses": "Neniuj statoj", + "reload": "Enlegi ree", + "repeated": "ripetis", + "show_new": "Montri novajn", + "socket_broke": "Realtempa konekto perdiĝis: CloseEvent code {0}", + "socket_reconnected": "Realtempa konekto fariĝis", + "up_to_date": "Ĝisdata" }, - "accent": "Emfazo", - "virtual_scrolling": "Optimumigi bildigon de historioj", - "import_mutes_from_a_csv_file": "Enporti silentigojn el CSV-dosiero", - "mutes_imported": "Silentigoj enportiĝis! Traktado daŭros iom da tempo.", - "mute_import_error": "Eraris enporto de silentigoj", - "mute_import": "Enporto de silentigoj", - "mute_export_button": "Elportu viajn silentigojn al CSV-dosiero", - "mute_export": "Elporto de silentigoj", - "hide_wallpaper": "Kaŝi fonbildon de nodo", - "setting_changed": "Agordo malsamas de la implicita", - "more_settings": "Pliaj agordoj", - "sensitive_by_default": "Implicite marki afiŝojn konsternaj", - "reply_visibility_following_short": "Montri respondojn por miaj abonatoj", - "hide_all_muted_posts": "Kaŝi silentigitajn afiŝojn", - "hide_media_previews": "Kaŝi antaŭrigardojn al vidaŭdaĵoj", - "word_filter": "Vortofiltro", - "reply_visibility_self_short": "Montri nur respondojn por mi", - "file_export_import": { - "errors": { - "file_slightly_new": "Etversio de dosiero malsamas, iuj agordoj eble ne funkcios", - "file_too_old": "Nekonforma ĉefa versio: {fileMajor}, versio de dosiero estas tro malnova kaj nesubtenata (minimuma estas {feMajor})", - "file_too_new": "Nekonforma ĉefa versio: {fileMajor}, ĉi tiu PleromaFE (agordoj je versio {feMajor}) tro malnovas por tio", - "invalid_file": "La elektita dosiero ne estas subtenata savkopio de agordoj de Pleroma. Nenio ŝanĝiĝis." - }, - "restore_settings": "Rehavi agordojn el dosiero", - "backup_settings_theme": "Savkopii agordojn kaj haŭton al dosiero", - "backup_settings": "Savkopii agordojn al dosiero", - "backup_restore": "Savkopio de agordoj" + "tool_tip": { + "accept_follow_request": "Akcepti abonpeton", + "add_reaction": "Aldoni reagon", + "bookmark": "Legosigno", + "favorite": "Ŝati", + "media_upload": "Alŝuti vidaŭdaĵon", + "reject_follow_request": "Rifuzi abonpeton", + "repeat": "Ripeti", + "reply": "Respondi", + "user_settings": "Agordoj de uzanto" }, - "right_sidebar": "Montri flankan breton dekstre", - "save": "Konservi ŝanĝojn", - "hide_shoutbox": "Kaŝi kriujon de nodo", - "always_show_post_button": "Ĉiam montri ŝvebantan butonon por nova afiŝo", - "mentions_new_style": "Pli mojosaj menciligiloj", - "mentions_new_place": "Meti menciojn sur apartan linion" - }, - "timeline": { - "collapse": "Maletendi", - "conversation": "Interparolo", - "error_fetching": "Eraris ĝisdatigo", - "load_older": "Montri pli malnovajn statojn", - "no_retweet_hint": "Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti", - "repeated": "ripetis", - "show_new": "Montri novajn", - "up_to_date": "Ĝisdata", - "no_more_statuses": "Neniuj pliaj statoj", - "no_statuses": "Neniuj statoj", - "reload": "Enlegi ree", - "error": "Eraris akirado de historio: {0}", - "socket_reconnected": "Realtempa konekto fariĝis", - "socket_broke": "Realtempa konekto perdiĝis: CloseEvent code {0}" - }, - "user_card": { - "approve": "Aprobi", - "block": "Bloki", - "blocked": "Blokita!", - "deny": "Rifuzi", - "favorites": "Ŝatataj", - "follow": "Aboni", - "follow_sent": "Peto sendiĝis!", - "follow_progress": "Petante…", - "follow_unfollow": "Malaboni", - "followees": "Abonatoj", - "followers": "Abonantoj", - "following": "Abonata!", - "follows_you": "Abonas vin!", - "its_you": "Tio estas vi!", - "media": "Vidaŭdaĵoj", - "mute": "Silentigi", - "muted": "Silentigita", - "per_day": "tage", - "remote_follow": "Fore aboni", - "statuses": "Statoj", - "unblock": "Malbloki", - "unblock_progress": "Malblokante…", - "block_progress": "Blokante…", - "unmute": "Malsilentigi", - "unmute_progress": "Malsilentigante…", - "mute_progress": "Silentigante…", - "report": "Raporti", - "message": "Mesaĝo", - "mention": "Mencio", - "hidden": "Kaŝita", - "admin_menu": { - "delete_user": "Forigi uzanton", - "quarantine": "Malpermesi federadon de afiŝoj de uzanto", - "disable_any_subscription": "Malpermesi ĉian abonadon al uzanto", - "disable_remote_subscription": "Malpermesi abonadon al uzanto el foraj nodoj", - "sandbox": "Devigi afiŝojn esti nur por abonantoj", - "force_unlisted": "Devigi afiŝojn nelistiĝi", - "strip_media": "Forigi vidaŭdaĵojn de afiŝoj", - "force_nsfw": "Marki ĉiujn afiŝojn konsternaj", - "delete_account": "Forigi konton", - "deactivate_account": "Malaktivigi konton", - "activate_account": "Aktivigi konton", - "revoke_moderator": "Malnomumi reguligiston", - "grant_moderator": "Nomumi reguligiston", - "revoke_admin": "Malnomumi administranton", - "grant_admin": "Nomumi administranton", - "moderation": "Reguligado" + "upload": { + "error": { + "base": "Alŝuto malsukcesis.", + "default": "Reprovu pli poste", + "file_too_big": "Dosiero estas tro granda [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Malsukcesis alŝuto: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "show_repeats": "Montri ripetojn", - "hide_repeats": "Kaŝi ripetojn", - "unsubscribe": "Ne ricevi sciigojn", - "subscribe": "Ricevi sciigojn", - "bot": "Roboto", - "highlight": { - "side": "Flanka strio", - "striped": "Stria fono", - "solid": "Unueca fono", - "disabled": "Senemfaze" + "user_card": { + "admin_menu": { + "activate_account": "Aktivigi konton", + "deactivate_account": "Malaktivigi konton", + "delete_account": "Forigi konton", + "delete_user": "Forigi uzanton", + "disable_any_subscription": "Malpermesi ĉian abonadon al uzanto", + "disable_remote_subscription": "Malpermesi abonadon al uzanto el foraj nodoj", + "force_nsfw": "Marki ĉiujn afiŝojn konsternaj", + "force_unlisted": "Devigi afiŝojn nelistiĝi", + "grant_admin": "Nomumi administranton", + "grant_moderator": "Nomumi reguligiston", + "moderation": "Reguligado", + "quarantine": "Malpermesi federadon de afiŝoj de uzanto", + "revoke_admin": "Malnomumi administranton", + "revoke_moderator": "Malnomumi reguligiston", + "sandbox": "Devigi afiŝojn esti nur por abonantoj", + "strip_media": "Forigi vidaŭdaĵojn de afiŝoj" + }, + "approve": "Aprobi", + "block": "Bloki", + "block_progress": "Blokante…", + "blocked": "Blokita!", + "bot": "Roboto", + "deny": "Rifuzi", + "edit_profile": "Redakti profilon", + "favorites": "Ŝatataj", + "follow": "Aboni", + "follow_progress": "Petante…", + "follow_sent": "Peto sendiĝis!", + "follow_unfollow": "Malaboni", + "followees": "Abonatoj", + "followers": "Abonantoj", + "following": "Abonata!", + "follows_you": "Abonas vin!", + "hidden": "Kaŝita", + "hide_repeats": "Kaŝi ripetojn", + "highlight": { + "disabled": "Senemfaze", + "side": "Flanka strio", + "solid": "Unueca fono", + "striped": "Stria fono" + }, + "its_you": "Tio estas vi!", + "media": "Vidaŭdaĵoj", + "mention": "Mencio", + "message": "Mesaĝo", + "mute": "Silentigi", + "mute_progress": "Silentigante…", + "muted": "Silentigita", + "per_day": "tage", + "remote_follow": "Fore aboni", + "report": "Raporti", + "show_repeats": "Montri ripetojn", + "statuses": "Statoj", + "subscribe": "Ricevi sciigojn", + "unblock": "Malbloki", + "unblock_progress": "Malblokante…", + "unmute": "Malsilentigi", + "unmute_progress": "Malsilentigante…", + "unsubscribe": "Ne ricevi sciigojn" }, - "edit_profile": "Redakti profilon" - }, - "user_profile": { - "timeline_title": "Historio de uzanto", - "profile_does_not_exist": "Pardonu, ĉi tiu profilo ne ekzistas.", - "profile_loading_error": "Pardonu, eraris enlego de ĉi tiu profilo." - }, - "who_to_follow": { - "more": "Pli", - "who_to_follow": "Kiun aboni" - }, - "tool_tip": { - "media_upload": "Alŝuti vidaŭdaĵon", - "repeat": "Ripeti", - "reply": "Respondi", - "favorite": "Ŝati", - "user_settings": "Agordoj de uzanto", - "bookmark": "Legosigno", - "reject_follow_request": "Rifuzi abonpeton", - "accept_follow_request": "Akcepti abonpeton", - "add_reaction": "Aldoni reagon" - }, - "upload": { - "error": { - "base": "Alŝuto malsukcesis.", - "file_too_big": "Dosiero estas tro granda [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Reprovu pli poste", - "message": "Malsukcesis alŝuto: {0}" + "user_profile": { + "profile_does_not_exist": "Pardonu, ĉi tiu profilo ne ekzistas.", + "profile_loading_error": "Pardonu, eraris enlego de ĉi tiu profilo.", + "timeline_title": "Historio de uzanto" }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "user_reporting": { + "add_comment_description": "Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:", + "additional_comments": "Aldonaj komentoj", + "forward_description": "La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?", + "forward_to": "Plusendi al {0}", + "generic_error": "Eraris traktado de via peto.", + "submit": "Sendi", + "title": "Raportante {0}" + }, + "who_to_follow": { + "more": "Pli", + "who_to_follow": "Kiun aboni" } - }, - "emoji": { - "search_emoji": "Serĉi bildosignon", - "keep_open": "Teni elektilon malfermita", - "emoji": "Bildsignoj", - "stickers": "Glumarkoj", - "add_emoji": "Enigi bildosignon", - "load_all": "Enlegante ĉiujn {emojiAmount} bildosignojn", - "load_all_hint": "Enlegis la {saneAmount} unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco.", - "unicode": "Unikoda bildosigno", - "custom": "Propra bildosigno" - }, - "polls": { - "not_enough_options": "Tro malmultaj unikaj elektebloj en la enketo", - "expired": "Enketo finiĝis antaŭ {0}", - "expires_in": "Enketo finiĝas je {0}", - "expiry": "Aĝo de enketo", - "multiple_choices": "Pluraj elektoj", - "single_choice": "Unu elekto", - "type": "Speco de enketo", - "vote": "Voĉi", - "votes": "voĉoj", - "option": "Elekteblo", - "add_option": "Aldoni elekteblon", - "add_poll": "Aldoni enketon", - "votes_count": "{count} voĉdono | {count} voĉdonoj", - "people_voted_count": "{count} persono voĉdonis | {count} personoj voĉdonis" - }, - "importer": { - "error": "Eraris enporto de ĉi tiu dosiero.", - "success": "Enportita sukcese.", - "submit": "Sendi" - }, - "exporter": { - "processing": "Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron", - "export": "Elporti" - }, - "domain_mute_card": { - "unmute_progress": "Malsilentigante…", - "unmute": "Malsilentigi", - "mute_progress": "Silentigante…", - "mute": "Silentigi" - }, - "about": { - "staff": "Skipo", - "mrf": { - "simple": { - "media_nsfw_desc": "Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:", - "media_nsfw": "Devige marki vidaŭdaĵojn konsternaj", - "media_removal_desc": "Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:", - "media_removal": "Forigo de vidaŭdaĵoj", - "ftl_removal": "Forigo el la historio de «Konata reto»", - "quarantine_desc": "Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:", - "quarantine": "Kvaranteno", - "reject_desc": "Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:", - "reject": "Rifuzi", - "accept_desc": "Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:", - "accept": "Akcepti", - "simple_policies": "Specialaj politikoj de la nodo", - "ftl_removal_desc": "Ĉi tiu nodo forigas la jenajn nodojn el la historio de «Konata reto»:" - }, - "mrf_policies": "Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)", - "keyword": { - "is_replaced_by": "→", - "replace": "Anstataŭigi", - "reject": "Rifuzi", - "ftl_removal": "Forigo el la historio de «La tuta konata reto»", - "keyword_policies": "Politiko pri ĉefvortoj" - }, - "federation": "Federado", - "mrf_policies_desc": "Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:" - } - }, - "selectable_list": { - "select_all": "Elekti ĉion" - }, - "remote_user_resolver": { - "error": "Netrovinte.", - "searching_for": "Serĉante", - "remote_user_resolver": "Trovilo de foraj uzantoj" - }, - "interactions": { - "load_older": "Enlegi pli malnovajn interagojn", - "moves": "Migrado de uzantoj", - "follows": "Novaj abonoj", - "favs_repeats": "Ripetoj kaj ŝatoj" - }, - "errors": { - "storage_unavailable": "Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn." - }, - "status": { - "hide_content": "Kaŝi enhavon", - "show_content": "Montri enhavon", - "hide_full_subject": "Kaŝi plenan temon", - "show_full_subject": "Montri plenan temon", - "thread_muted_and_words": ", enhavas vortojn:", - "thread_muted": "Fadeno silentigita", - "copy_link": "Kopii ligilon al stato", - "status_unavailable": "Stato ne estas disponebla", - "unmute_conversation": "Malsilentigi interparolon", - "mute_conversation": "Silentigi interparolon", - "replies_list": "Respondoj:", - "reply_to": "Responde al", - "delete_confirm": "Ĉu vi certe volas forigi ĉi tiun staton?", - "unbookmark": "Senlegosigni", - "bookmark": "Legosigni", - "pinned": "Fiksita", - "unpin": "Malfiksi de profilo", - "pin": "Fiksi al profilo", - "delete": "Forigi staton", - "repeats": "Ripetoj", - "favorites": "Ŝatoj", - "status_deleted": "Ĉi tiu afiŝo foriĝis", - "nsfw": "Konsterna", - "expand": "Etendi", - "external_source": "Ekstera fonto", - "mentions": "Mencioj", - "you": "(Vi)", - "plus_more": "+{number} pli" - }, - "time": { - "now_short": "nun", - "now": "ĵus", - "in_past": "antaŭ {0}", - "in_future": "post {0}", - "unit": { - "years_short": "{0}j", - "year_short": "{0}j", - "years": "{0} jaroj", - "year": "{0} jaro", - "weeks_short": "{0}s", - "week_short": "{0}s", - "weeks": "{0} semajnoj", - "week": "{0} semajno", - "seconds_short": "{0}sek", - "second_short": "{0}sek", - "seconds": "{0} sekundoj", - "second": "{0} sekundo", - "months_short": "{0}m", - "month_short": "{0}m", - "months": "{0} monatoj", - "month": "{0} monato", - "minutes_short": "{0}min", - "minute_short": "{0}min", - "minutes": "{0} minutoj", - "minute": "{0} minuto", - "hours_short": "{0}hor", - "hour_short": "{0}hor", - "hours": "{0} horoj", - "hour": "{0} horo", - "days_short": "{0}t", - "day_short": "{0}t", - "days": "{0} tagoj", - "day": "{0} tago" - } - }, - "search": { - "people": "Personoj", - "no_results": "Neniuj rezultoj", - "people_talking": "{count} personoj parolas", - "person_talking": "{count} persono parolas", - "hashtags": "Kradvortoj" - }, - "display_date": { - "today": "Hodiaŭ" - }, - "file_type": { - "file": "Dosiero", - "image": "Bildo", - "video": "Filmo", - "audio": "Sono" - }, - "chats": { - "empty_chat_list_placeholder": "Vi ankoraŭ havas neniun babilon. Komencu novan babilon!", - "error_sending_message": "Io misokazis dum sendado de la mesaĝo.", - "error_loading_chat": "Io misokazis dum enlego de la babilo.", - "delete_confirm": "Ĉu vi certe volas forigi ĉi tiun mesaĝon?", - "more": "Pli", - "empty_message_error": "Ne povas sendi malplenan mesaĝon", - "new": "Nova babilo", - "chats": "Babiloj", - "delete": "Forigi", - "you": "Vi:", - "message_user": "Mesaĝi al {nickname}" - }, - "password_reset": { - "password_reset_required_but_mailer_is_disabled": "Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.", - "password_reset_required": "Vi devas restarigi vian pasvorton por saluti.", - "password_reset_disabled": "Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.", - "too_many_requests": "Vi atingis la limon de provoj, reprovu pli poste.", - "return_home": "Reiri al la hejmpaĝo", - "check_email": "Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton.", - "placeholder": "Via retpoŝtadreso aŭ uzantonomo", - "instruction": "Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton.", - "password_reset": "Restarigi pasvorton", - "forgot_password": "Ĉu vi forgesis pasvorton?" - }, - "user_reporting": { - "generic_error": "Eraris traktado de via peto.", - "submit": "Sendi", - "forward_to": "Plusendi al {0}", - "forward_description": "La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?", - "additional_comments": "Aldonaj komentoj", - "add_comment_description": "Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:", - "title": "Raportante {0}" - }, - "shoutbox": { - "title": "Kriujo" - } -} +} \ No newline at end of file diff --git a/src/i18n/es.json b/src/i18n/es.json index d21632cb..7b1a2179 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -1,887 +1,888 @@ { - "chat": { - "title": "Chat" - }, - "exporter": { - "export": "Exportar", - "processing": "Procesando. Pronto se te pedirá que descargues tu archivo" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Proxy de medios", - "scope_options": "Opciones del alcance de la visibilidad", - "text_limit": "Límite de caracteres", - "title": "Características", - "who_to_follow": "A quién seguir", - "pleroma_chat_messages": "Chat de Pleroma", - "upload_limit": "Límite de subida" - }, - "finder": { - "error_fetching_user": "Error al buscar usuario", - "find_user": "Encontrar usuario" - }, - "general": { - "apply": "Aplicar", - "submit": "Enviar", - "more": "Más", - "generic_error": "Ha ocurrido un error", - "optional": "opcional", - "show_more": "Mostrar más", - "show_less": "Mostrar menos", - "cancel": "Cancelar", - "disable": "Inhabilitar", - "enable": "Habilitar", - "confirm": "Confirmar", - "verify": "Verificar", - "peek": "Previsualizar", - "close": "Cerrar", - "dismiss": "Descartar", - "retry": "Inténtalo de nuevo", - "error_retry": "Por favor, inténtalo de nuevo", - "loading": "Cargando…", - "role": { - "admin": "Administrador/a", - "moderator": "Moderador/a" - }, - "flash_content": "Haga clic para mostrar contenido Flash usando Ruffle (experimental, puede que no funcione).", - "flash_security": "Tenga en cuenta que esto puede ser potencialmente peligroso ya que el contenido Flash sigue siendo código arbitrario.", - "flash_fail": "No se pudo cargar el contenido flash, consulte la consola para obtener más detalles." - }, - "image_cropper": { - "crop_picture": "Recortar la foto", - "save": "Guardar", - "save_without_cropping": "Guardar sin recortar", - "cancel": "Cancelar" - }, - "importer": { - "submit": "Enviar", - "success": "Importado con éxito.", - "error": "Se ha producido un error al importar el archivo." - }, - "login": { - "login": "Identificarse", - "description": "Identificarse con OAuth", - "logout": "Cerrar sesión", - "password": "Contraseña", - "placeholder": "p.ej. lain", - "register": "Registrarse", - "username": "Usuario", - "hint": "Inicia sesión para unirte a la discusión", - "authentication_code": "Código de autenticación", - "enter_recovery_code": "Inserta el código de recuperación", - "enter_two_factor_code": "Inserta el código de dos factores", - "recovery_code": "Código de recuperación", - "heading": { - "totp": "Autenticación de dos factores", - "recovery": "Recuperación de dos factores" - } - }, - "media_modal": { - "previous": "Anterior", - "next": "Siguiente" - }, - "nav": { - "about": "Acerca de", - "administration": "Administración", - "back": "Volver", - "chat": "Chat Local", - "friend_requests": "Solicitudes de seguimiento", - "mentions": "Menciones", - "interactions": "Interacciones", - "dms": "Mensajes directos", - "public_tl": "Línea temporal pública", - "timeline": "Línea Temporal", - "twkn": "Red Conocida", - "user_search": "Búsqueda de Usuarios", - "search": "Buscar", - "who_to_follow": "A quién seguir", - "preferences": "Preferencias", - "chats": "Chats", - "timelines": "Líneas de Tiempo", - "bookmarks": "Marcadores", - "home_timeline": "Línea temporal personal" - }, - "notifications": { - "broken_favorite": "Estado desconocido, buscándolo…", - "favorited_you": "le gusta tu estado", - "followed_you": "empezó a seguirte", - "load_older": "Cargar notificaciones antiguas", - "notifications": "Notificaciones", - "read": "¡Leído!", - "repeated_you": "repitió tu estado", - "no_more_notifications": "No hay más notificaciones", - "reacted_with": "reaccionó con {0}", - "migrated_to": "migrado a", - "follow_request": "quiere seguirte", - "error": "Error obteniendo notificaciones:{0}" - }, - "polls": { - "add_poll": "Añadir encuesta", - "add_option": "Añadir opción", - "option": "Opción", - "votes": "votos", - "vote": "Votar", - "type": "Tipo de encuesta", - "single_choice": "Elección única", - "multiple_choices": "Elección múltiple", - "expiry": "Tiempo de vida de la encuesta", - "expires_in": "La encuesta termina en {0}", - "expired": "La encuesta terminó hace {0}", - "not_enough_options": "Muy pocas opciones únicas en la encuesta", - "people_voted_count": "{count} persona votó | {count} personas votaron", - "votes_count": "{count} voto | {count} votos" - }, - "emoji": { - "stickers": "Pegatinas", - "emoji": "Emoji", - "keep_open": "Mantener el selector abierto", - "search_emoji": "Buscar un emoji", - "add_emoji": "Insertar un emoji", - "custom": "Emojis personalizados", - "unicode": "Emojis unicode", - "load_all": "Cargando todos los {emojiAmount} emoji", - "load_all_hint": "Cargado el primer emoji {saneAmount}, cargar todos los emoji puede causar problemas de rendimiento." - }, - "stickers": { - "add_sticker": "Añadir Pegatina" - }, - "interactions": { - "favs_repeats": "Favoritos y repetidos", - "follows": "Nuevos seguidores", - "load_older": "Cargar interacciones más antiguas", - "moves": "Usuario migrado" - }, - "post_status": { - "new_status": "Publicar un nuevo estado", - "account_not_locked_warning": "Tu cuenta no está {0}. Cualquiera puede seguirte y leer las publicaciones para Solo-Seguidores.", - "account_not_locked_warning_link": "bloqueada", - "attachments_sensitive": "Contenido sensible", - "content_type": { - "text/plain": "Texto Plano", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Tema (opcional)", - "default": "Acabo de aterrizar en L.A.", - "direct_warning_to_all": "Esta publicación será visible para todos los usuarios mencionados.", - "direct_warning_to_first_only": "Esta publicación solo será visible para los usuarios mencionados al comienzo del mensaje.", - "posting": "Publicando", - "scope_notice": { - "public": "Esta publicación será visible para todo el mundo", - "private": "Esta publicación solo será visible para tus seguidores", - "unlisted": "Esta publicación no será visible en la Línea Temporal Pública ni en Toda La Red Conocida" - }, - "scope": { - "direct": "Directo - solo para los usuarios mencionados", - "private": "Solo-seguidores - solo tus seguidores leerán la publicación", - "public": "Público - publicaciones visibles en las líneas temporales públicas", - "unlisted": "Sin listar -publicaciones no visibles en las líneas temporales públicas" - }, - "media_description_error": "Error al actualizar el archivo, inténtalo de nuevo", - "empty_status_error": "No se puede publicar un estado vacío y sin archivos adjuntos", - "preview_empty": "Vacío", - "preview": "Vista previa", - "media_description": "Descripción multimedia", - "post": "Publicar" - }, - "registration": { - "bio": "Biografía", - "email": "Correo electrónico", - "fullname": "Nombre a mostrar", - "password_confirm": "Confirmar contraseña", - "registration": "Registro", - "token": "Token de invitación", - "captcha": "CAPTCHA", - "new_captcha": "Haz click en la imagen para obtener un nuevo captcha", - "username_placeholder": "p.ej. lain", - "fullname_placeholder": "p.ej. Lain Iwakura", - "bio_placeholder": "e.g.\nHola, soy un ejemplo.\nAquí puedes poner algo representativo tuyo... o no.", - "validations": { - "username_required": "no puede estar vacío", - "fullname_required": "no puede estar vacío", - "email_required": "no puede estar vacío", - "password_required": "no puede estar vacío", - "password_confirmation_required": "no puede estar vacío", - "password_confirmation_match": "la contraseña no coincide" - }, - "reason_placeholder": "Los registros de esta instancia son aprobados manualmente.\nComéntanos por qué quieres registrarte aquí.", - "reason": "Razón para registrarse", - "register": "Registrarse" - }, - "selectable_list": { - "select_all": "Seleccionar todo" - }, - "settings": { - "app_name": "Nombre de la aplicación", - "security": "Seguridad", - "enter_current_password_to_confirm": "Introduce la contraseña actual para confirmar tu identidad", - "mfa": { - "otp": "OTP", - "setup_otp": "Configurar OTP", - "wait_pre_setup_otp": "preconfiguración OTP", - "confirm_and_enable": "Confirmar y habilitar OTP", - "title": "Autentificación de dos factores", - "generate_new_recovery_codes": "Generar códigos de recuperación nuevos", - "warning_of_generate_new_codes": "Cuando generas nuevos códigos de recuperación, los antiguos dejarán de funcionar.", - "recovery_codes": "Códigos de recuperación.", - "waiting_a_recovery_codes": "Recibiendo códigos de respaldo…", - "recovery_codes_warning": "Anote los códigos o guárdelos en un lugar seguro, de lo contrario no los volverá a ver. Si pierde el acceso a su aplicación 2FA y los códigos de recuperación, su cuenta quedará bloqueada.", - "authentication_methods": "Métodos de autentificación", - "scan": { - "title": "Escanear", - "desc": "Usando su aplicación de dos factores, escanee este código QR o ingrese la clave de texto:", - "secret_code": "Clave" - }, - "verify": { - "desc": "Para habilitar la autenticación de dos factores, ingrese el código de su aplicación 2FA:" - } - }, - "attachmentRadius": "Adjuntos", - "attachments": "Adjuntos", - "avatar": "Avatar", - "avatarAltRadius": "Avatares (notificaciones)", - "avatarRadius": "Avatares", - "background": "Fondo", - "bio": "Biografía", - "block_export": "Exportar usuarios bloqueados", - "block_export_button": "Exporta la lista de tus usuarios bloqueados a un archivo csv", - "block_import": "Importar usuarios bloqueados", - "block_import_error": "Error importando la lista de usuarios bloqueados", - "blocks_imported": "¡Lista de usuarios bloqueados importada! El procesado puede tardar un poco.", - "blocks_tab": "Bloqueados", - "btnRadius": "Botones", - "cBlue": "Azul (Responder, seguir)", - "cGreen": "Verde (Retweet)", - "cOrange": "Naranja (Favorito)", - "cRed": "Rojo (Cancelar)", - "change_password": "Cambiar contraseña", - "change_password_error": "Hubo un problema cambiando la contraseña.", - "changed_password": "¡Contraseña cambiada correctamente!", - "collapse_subject": "Colapsar publicaciones con tema", - "composing": "Redactando", - "confirm_new_password": "Confirmar la nueva contraseña", - "current_avatar": "Tu avatar actual", - "current_password": "Contraseña actual", - "current_profile_banner": "Tu cabecera actual", - "data_import_export_tab": "Importar / Exportar datos", - "default_vis": "Alcance de visibilidad por defecto", - "delete_account": "Eliminar la cuenta", - "discoverable": "Permitir la aparición de esta cuenta en los resultados de búsqueda y otros servicios", - "delete_account_description": "Eliminar para siempre los datos y desactivar la cuenta.", - "pad_emoji": "Rellenar con espacios al agregar emojis desde el selector", - "delete_account_error": "Hubo un error al eliminar tu cuenta. Si el fallo persiste, ponte en contacto con el/la administrador/a de tu instancia.", - "delete_account_instructions": "Escribe tu contraseña para confirmar la eliminación de tu cuenta.", - "avatar_size_instruction": "El tamaño mínimo recomendado para el avatar es de 150X150 píxeles.", - "export_theme": "Exportar tema", - "filtering": "Filtrado", - "filtering_explanation": "Todos los estados que contengan estas palabras serán silenciados, una por línea", - "follow_export": "Exportar personas que tú sigues", - "follow_export_button": "Exporta tus seguidores a un fichero csv", - "follow_import": "Importar personas que tú sigues", - "follow_import_error": "Error al importar el fichero", - "follows_imported": "¡Importado! Procesarlos llevará tiempo.", - "foreground": "Primer plano", - "general": "General", - "hide_attachments_in_convo": "Ocultar adjuntos en las conversaciones", - "hide_attachments_in_tl": "Ocultar adjuntos en la línea temporal", - "hide_muted_posts": "Ocultar las publicaciones de los usuarios silenciados", - "max_thumbnails": "Cantidad máxima de miniaturas por publicación", - "hide_isp": "Ocultar el panel específico de la instancia", - "preload_images": "Precargar las imágenes", - "use_one_click_nsfw": "Abrir los adjuntos NSFW con un solo click", - "hide_post_stats": "Ocultar las estadísticas de las publicaciones (p.ej. el número de favoritos)", - "hide_user_stats": "Ocultar las estadísticas del usuario (p.ej. el número de seguidores)", - "hide_filtered_statuses": "Ocultar estados filtrados", - "import_blocks_from_a_csv_file": "Importar lista de usuarios bloqueados dese un archivo csv", - "import_followers_from_a_csv_file": "Importar personas que tú sigues a partir de un archivo csv", - "import_theme": "Importar tema", - "inputRadius": "Campos de entrada", - "checkboxRadius": "Casillas de verificación", - "instance_default": "(por defecto: {value})", - "instance_default_simple": "(por defecto)", - "interface": "Interfaz", - "interfaceLanguage": "Idioma", - "invalid_theme_imported": "El archivo importado no es un tema válido de Pleroma. No se han realizado cambios.", - "limited_availability": "No disponible en tu navegador", - "links": "Enlaces", - "lock_account_description": "Restringir el acceso a tu cuenta solo a seguidores admitidos", - "loop_video": "Vídeos en bucle", - "loop_video_silent_only": "Bucle solo en vídeos sin sonido (p.ej. \"gifs\" de Mastodon)", - "mutes_tab": "Silenciados", - "play_videos_in_modal": "Reproducir los vídeos en un marco emergente", - "use_contain_fit": "No recortar los adjuntos en miniaturas", - "name": "Nombre", - "name_bio": "Nombre y biografía", - "new_password": "Nueva contraseña", - "notification_visibility": "Tipos de notificaciones a mostrar", - "notification_visibility_follows": "Nuevos seguidores", - "notification_visibility_likes": "Favoritos", - "notification_visibility_mentions": "Menciones", - "notification_visibility_repeats": "Repeticiones (Repeats)", - "no_rich_text_description": "Eliminar el formato de texto enriquecido de todas las publicaciones", - "no_blocks": "No hay usuarios bloqueados", - "no_mutes": "No hay usuarios silenciados", - "hide_follows_description": "No mostrar a quién sigo", - "hide_followers_description": "No mostrar quién me sigue", - "hide_follows_count_description": "No mostrar el número de cuentas que sigo", - "hide_followers_count_description": "No mostrar el número de cuentas que me siguen", - "show_admin_badge": "Mostrar la insignia de \"Administrador/a\" en mi perfil", - "show_moderator_badge": "Mostrar la insignia de \"Moderador/a\" en mi perfil", - "nsfw_clickthrough": "Habilitar la ocultación de la imagen de vista previa del enlace y el adjunto para los estados NSFW por defecto", - "oauth_tokens": "Tokens de OAuth", - "token": "Token", - "refresh_token": "Actualizar el token", - "valid_until": "Válido hasta", - "revoke_token": "Revocar", - "panelRadius": "Paneles", - "pause_on_unfocused": "Parar la transmisión cuando no estés en foco", - "presets": "Por defecto", - "profile_background": "Imagen de fondo del perfil", - "profile_banner": "Imagen de cabecera del perfil", - "profile_tab": "Perfil", - "radii_help": "Establezca el redondeo de las esquinas de la interfaz (en píxeles)", - "replies_in_timeline": "Réplicas en la línea temporal", - "reply_visibility_all": "Mostrar todas las réplicas", - "reply_visibility_following": "Solo mostrar réplicas para mí o usuarios a los que sigo", - "reply_visibility_self": "Solo mostrar réplicas para mí", - "autohide_floating_post_button": "Ocultar automáticamente el botón 'Nueva Publicación' (para móviles)", - "saving_err": "Error al guardar los ajustes", - "saving_ok": "Ajustes guardados", - "search_user_to_block": "Buscar usuarios a bloquear", - "search_user_to_mute": "Buscar usuarios a silenciar", - "security_tab": "Seguridad", - "scope_copy": "Copiar la visibilidad de la publicación cuando contestamos (En los mensajes directos (MDs) siempre se copia)", - "minimal_scopes_mode": "Minimizar las opciones de publicación", - "set_new_avatar": "Cambiar avatar", - "set_new_profile_background": "Cambiar el fondo del perfil", - "set_new_profile_banner": "Cambiar la cabecera del perfil", - "settings": "Ajustes", - "subject_input_always_show": "Mostrar siempre el campo del tema", - "subject_line_behavior": "Copiar el tema en las respuestas", - "subject_line_email": "Como email: \"re: tema\"", - "subject_line_mastodon": "Como mastodon: copiar como es", - "subject_line_noop": "No copiar", - "post_status_content_type": "Formato de publicación", - "stop_gifs": "Iniciar GIFs al pasar el ratón", - "streaming": "Habilitar la transmisión automática de nuevas publicaciones cuando se desplaza hacia la parte superior", - "text": "Texto", - "theme": "Tema", - "theme_help": "Use códigos de color hexadecimales (#rrggbb) para personalizar su tema de colores.", - "theme_help_v2_1": "También puede invalidar los colores y la opacidad de ciertos componentes si activa la casilla de verificación. Use el botón \"Borrar todo\" para deshacer los cambios.", - "theme_help_v2_2": "Los iconos debajo de algunas publicaciones son indicadores de contraste de fondo/texto, desplace el ratón por encima para obtener información más detallada. Tenga en cuenta que cuando se utilizan indicadores de contraste de transparencia se muestra el peor caso posible.", - "tooltipRadius": "Información/alertas", - "upload_a_photo": "Subir una foto", - "user_settings": "Ajustes del Usuario", - "values": { - "false": "no", - "true": "sí" - }, - "notifications": "Notificaciones", - "notification_mutes": "Para dejar de recibir notificaciones de un usuario específico, siléncialo.", - "notification_blocks": "El bloqueo de un usuario detiene todas las notificaciones y también las cancela.", - "enable_web_push_notifications": "Habilitar las notificiaciones en el navegador", - "style": { - "switcher": { - "keep_color": "Mantener colores", - "keep_shadows": "Mantener sombras", - "keep_opacity": "Mantener opacidad", - "keep_roundness": "Mantener redondeces", - "keep_fonts": "Mantener fuentes", - "save_load_hint": "Las opciones \"Mantener\" conservan las opciones configuradas actualmente al seleccionar o cargar temas, también almacena dichas opciones al exportar un tema. Cuando se desactiven todas las casillas de verificación, el tema de exportación lo guardará todo.", - "reset": "Reiniciar", - "clear_all": "Limpiar todo", - "clear_opacity": "Limpiar opacidad", - "help": { - "snapshot_source_mismatch": "Conflicto de versiones: lo más probable es que el frontend se haya revertido y actualizado nuevamente, si cambió el tema con una versión anterior del frontend, lo más probable es que desee usar la versión anterior; de lo contrario, use la nueva versión.", - "migration_napshot_gone": "Por alguna razón, faltaba la instantánea, algunas cosas podrían verse diferentes de lo que recuerdas.", - "migration_snapshot_ok": "Solo para estar seguro, se cargó la instantánea del tema. Puede intentar cargar los datos del tema.", - "fe_downgraded": "Versión de PleromaFE revertida.", - "fe_upgraded": "El creador de temas de PleromaFE se actualizó después de la actualización de la versión.", - "snapshot_missing": "No había ninguna instantánea del tema en el archivo, por lo que podría verse diferente de lo previsto originalmente.", - "snapshot_present": "Se ha cargado una instantánea del tema, por lo que todos los valores se sobrescriben. De lo contrario, puede cargar el tema por completo.", - "older_version_imported": "El archivo que ha importado se creó en una versión anterior del frontend actual.", - "v2_imported": "El archivo que ha importado fue creado para un frontend más antiguo. Intentamos maximizar la compatibilidad, pero aún podría haber inconsistencias.", - "future_version_imported": "El archivo que ha importado se creó para una versión más reciente del frontend.", - "upgraded_from_v2": "PleromaFE se ha actualizado, el tema podría verse un poco diferente de lo que recuerdas." + "about": { + "mrf": { + "federation": "Federación", + "keyword": { + "ftl_removal": "Eliminar de la línea de tiempo \"Toda La Red Conocida\"", + "is_replaced_by": "→", + "keyword_policies": "Política de Palabras Clave", + "reject": "Rechazar", + "replace": "Reemplazar" + }, + "mrf_policies": "Habilitar políticas MRF", + "mrf_policies_desc": "Las políticas MRF manipulan la federación de esta instancia con el resto del fediverso. Las siguientes políticas están habilitadas:", + "simple": { + "accept": "Aceptar", + "accept_desc": "Esta instancia solo acepta mensajes de las siguientes instancias:", + "ftl_removal": "Eliminar de la línea de tiempo \"Red Conocida\"", + "ftl_removal_desc": "Esta instancia elimina las siguientes instancias de la línea de tiempo \"Red Conocida\":", + "instance": "Instancia", + "media_nsfw": "Forzar contenido multimedia como sensible", + "media_nsfw_desc": "Esta instancia obliga a que los archivos multimedia se establezcan como sensibles en las publicaciones de las siguientes instancias:", + "media_removal": "Eliminar Multimedia", + "media_removal_desc": "Esta instancia elimina los archivos multimedia de las publicaciones de las siguientes instancias:", + "not_applicable": "n/a", + "quarantine": "Cuarentena", + "quarantine_desc": "Esta instancia enviará solo publicaciones públicas a las siguientes instancias:", + "reason": "Motivo", + "reject": "Rechazar", + "reject_desc": "Esta instancia no aceptará mensajes de las siguientes instancias:", + "simple_policies": "Políticas específicas de la instancia" + } }, - "use_source": "Nueva versión", - "use_snapshot": "Versión antigua", - "keep_as_is": "Mantener como está", - "load_theme": "Cargar tema" - }, - "common": { - "color": "Color", - "opacity": "Opacidad", - "contrast": { - "hint": "El ratio de contraste es {ratio}. {level} {context}", - "level": { - "aa": "Cumple con la pauta de nivel AA (mínimo)", - "aaa": "Cumple con la pauta de nivel AAA (recomendado)", - "bad": "No cumple con las pautas de accesibilidad" - }, - "context": { - "18pt": "para textos grandes (+18pt)", - "text": "para textos" - } + "staff": "Equipo" + }, + "announcements": { + "all_day_prompt": "Este evento durará todo el día", + "cancel_edit_action": "Cancelar", + "close_error": "Cerrar", + "delete_action": "Eliminar", + "edit_action": "Editar", + "end_time_display": "Termina a las {time}", + "end_time_prompt": "Hora de finalización: ", + "inactive_message": "Este anuncio está inactivo", + "mark_as_read_action": "Marcar como leído", + "page_header": "Anuncios", + "post_action": "Publicar", + "post_error": "Error: {error}", + "post_form_header": "Publicar anuncio", + "post_placeholder": "Contenido del anuncio", + "published_time_display": "Publicado a las {time}", + "start_time_display": "Comienza a las {time}", + "start_time_prompt": "Hora de inicio: ", + "submit_edit_action": "Enviar", + "title": "Anuncio" + }, + "chats": { + "chats": "Chats", + "delete": "Borrar", + "delete_confirm": "¿Realmente quieres borrar este mensaje?", + "empty_chat_list_placeholder": "Aún no tienes ninguna conversación. ¡Inicia una nueva conversación!", + "empty_message_error": "No puedes publicar un mensaje vacío", + "error_loading_chat": "Algo salió mal al cargar el chat.", + "error_sending_message": "Algo salió mal al enviar el mensaje.", + "message_user": "Mensaje de {nickname}", + "more": "Más", + "new": "Nueva conversación", + "you": "Tú:" + }, + "display_date": { + "today": "Hoy" + }, + "domain_mute_card": { + "mute": "Silenciar", + "mute_progress": "Silenciando…", + "unmute": "Dejar de silenciar", + "unmute_progress": "Quitando silencio…" + }, + "emoji": { + "add_emoji": "Insertar un emoji", + "custom": "Emojis personalizados", + "emoji": "Emoji", + "keep_open": "Mantener el selector abierto", + "load_all": "Cargando todos los {emojiAmount} emoji", + "load_all_hint": "Cargado el primer emoji {saneAmount}, cargar todos los emoji puede causar problemas de rendimiento.", + "search_emoji": "Buscar un emoji", + "stickers": "Pegatinas", + "unicode": "Emojis unicode" + }, + "errors": { + "storage_unavailable": "Pleroma no pudo acceder al almacenamiento del navegador. Su inicio de sesión o su configuración local no se guardarán y puede encontrar problemas inesperados. Intente habilitar las cookies." + }, + "exporter": { + "export": "Exportar", + "processing": "Procesando. Pronto se te pedirá que descargues tu archivo" + }, + "features_panel": { + "media_proxy": "Proxy de medios", + "scope_options": "Opciones del alcance de la visibilidad", + "text_limit": "Límite de caracteres", + "title": "Características", + "upload_limit": "Límite de subida", + "who_to_follow": "A quién seguir" + }, + "file_type": { + "audio": "Audio", + "file": "Archivo", + "image": "Imagen", + "video": "Vídeo" + }, + "finder": { + "error_fetching_user": "Error al buscar usuario", + "find_user": "Encontrar usuario" + }, + "general": { + "apply": "Aplicar", + "cancel": "Cancelar", + "close": "Cerrar", + "confirm": "Confirmar", + "disable": "Inhabilitar", + "dismiss": "Descartar", + "enable": "Habilitar", + "error_retry": "Por favor, inténtalo de nuevo", + "flash_content": "Haga clic para mostrar contenido Flash usando Ruffle (experimental, puede que no funcione).", + "flash_fail": "No se pudo cargar el contenido flash, consulte la consola para obtener más detalles.", + "flash_security": "Tenga en cuenta que esto puede ser potencialmente peligroso ya que el contenido Flash sigue siendo código arbitrario.", + "generic_error": "Ha ocurrido un error", + "loading": "Cargando…", + "more": "Más", + "optional": "opcional", + "peek": "Previsualizar", + "retry": "Inténtalo de nuevo", + "role": { + "admin": "Administrador/a", + "moderator": "Moderador/a" + }, + "scope_in_timeline": { + "direct": "Directo", + "local": "Local - sólo tu instancia puede ver esta publicación", + "private": "Sólo para seguidores", + "public": "Público" + }, + "show_less": "Mostrar menos", + "show_more": "Mostrar más", + "submit": "Enviar", + "verify": "Verificar" + }, + "image_cropper": { + "cancel": "Cancelar", + "crop_picture": "Recortar la foto", + "save": "Guardar", + "save_without_cropping": "Guardar sin recortar" + }, + "importer": { + "error": "Se ha producido un error al importar el archivo.", + "submit": "Enviar", + "success": "Importado con éxito." + }, + "interactions": { + "favs_repeats": "Favoritos y repetidos", + "follows": "Nuevos seguidores", + "load_older": "Cargar interacciones más antiguas", + "moves": "Usuario migrado" + }, + "lists": { + "create": "Crear", + "delete": "Eliminar lista", + "save": "Guardar cambios", + "search": "Buscar cuentas", + "title": "Título de la lista" + }, + "login": { + "authentication_code": "Código de autenticación", + "description": "Identificarse con OAuth", + "enter_recovery_code": "Inserta el código de recuperación", + "enter_two_factor_code": "Inserta el código de dos factores", + "heading": { + "recovery": "Recuperación de dos factores", + "totp": "Autenticación de dos factores" + }, + "hint": "Inicia sesión para unirte a la discusión", + "login": "Identificarse", + "logout": "Cerrar sesión", + "password": "Contraseña", + "placeholder": "p.ej. lain", + "recovery_code": "Código de recuperación", + "register": "Registrarse", + "username": "Usuario" + }, + "media_modal": { + "next": "Siguiente", + "previous": "Anterior" + }, + "nav": { + "about": "Acerca de", + "administration": "Administración", + "back": "Volver", + "bookmarks": "Marcadores", + "chats": "Chats", + "dms": "Mensajes directos", + "friend_requests": "Solicitudes de seguimiento", + "home_timeline": "Línea temporal personal", + "interactions": "Interacciones", + "mentions": "Menciones", + "preferences": "Preferencias", + "public_tl": "Línea temporal pública", + "search": "Buscar", + "timeline": "Línea Temporal", + "timelines": "Líneas de Tiempo", + "twkn": "Red Conocida", + "user_search": "Búsqueda de Usuarios", + "who_to_follow": "A quién seguir" + }, + "notifications": { + "broken_favorite": "Estado desconocido, buscándolo…", + "error": "Error obteniendo notificaciones:{0}", + "favorited_you": "le gusta tu estado", + "follow_request": "quiere seguirte", + "followed_you": "empezó a seguirte", + "load_older": "Cargar notificaciones antiguas", + "migrated_to": "migrado a", + "no_more_notifications": "No hay más notificaciones", + "notifications": "Notificaciones", + "reacted_with": "reaccionó con {0}", + "read": "¡Leído!", + "repeated_you": "repitió tu estado" + }, + "password_reset": { + "check_email": "Revise su correo electrónico para obtener un enlace para restablecer su contraseña.", + "forgot_password": "¿Contraseña olvidada?", + "instruction": "Ingrese su dirección de correo electrónico o nombre de usuario. Le enviaremos un enlace para restablecer su contraseña.", + "password_reset": "Restablecer la contraseña", + "password_reset_disabled": "El restablecimiento de contraseñas está deshabilitado. Póngase en contacto con el administrador de su instancia.", + "password_reset_required": "Debes restablecer la contraseña para iniciar sesión.", + "password_reset_required_but_mailer_is_disabled": "Debes restablecer la contraseña, pero el restablecimiento de contraseñas está deshabilitado. Por favor contacta con el administrador de la instancia.", + "placeholder": "Su correo electrónico o nombre de usuario", + "return_home": "Volver a la página de inicio", + "too_many_requests": "Has alcanzado el límite de intentos, vuelve a intentarlo más tarde." + }, + "polls": { + "add_option": "Añadir opción", + "add_poll": "Añadir encuesta", + "expired": "La encuesta terminó hace {0}", + "expires_in": "La encuesta termina en {0}", + "expiry": "Tiempo de vida de la encuesta", + "multiple_choices": "Elección múltiple", + "not_enough_options": "Muy pocas opciones únicas en la encuesta", + "option": "Opción", + "people_voted_count": "{count} persona votó | {count} personas votaron", + "single_choice": "Elección única", + "type": "Tipo de encuesta", + "vote": "Votar", + "votes": "votos", + "votes_count": "{count} voto | {count} votos" + }, + "post_status": { + "account_not_locked_warning": "Tu cuenta no está {0}. Cualquiera puede seguirte y leer las publicaciones para Solo-Seguidores.", + "account_not_locked_warning_link": "bloqueada", + "attachments_sensitive": "Contenido sensible", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Texto Plano" + }, + "content_warning": "Tema (opcional)", + "default": "Acabo de aterrizar en L.A.", + "direct_warning_to_all": "Esta publicación será visible para todos los usuarios mencionados.", + "direct_warning_to_first_only": "Esta publicación solo será visible para los usuarios mencionados al comienzo del mensaje.", + "empty_status_error": "No se puede publicar un estado vacío y sin archivos adjuntos", + "media_description": "Descripción multimedia", + "media_description_error": "Error al actualizar el archivo, inténtalo de nuevo", + "new_status": "Publicar un nuevo estado", + "post": "Publicar", + "posting": "Publicando", + "preview": "Vista previa", + "preview_empty": "Vacío", + "scope": { + "direct": "Directo - solo para los usuarios mencionados", + "private": "Solo-seguidores - solo tus seguidores leerán la publicación", + "public": "Público - publicaciones visibles en las líneas temporales públicas", + "unlisted": "Sin listar -publicaciones no visibles en las líneas temporales públicas" + }, + "scope_notice": { + "private": "Esta publicación solo será visible para tus seguidores", + "public": "Esta publicación será visible para todo el mundo", + "unlisted": "Esta publicación no será visible en la Línea Temporal Pública ni en Toda La Red Conocida" } - }, - "common_colors": { - "_tab_label": "Común", - "main": "Colores comunes", - "foreground_hint": "Vea la pestaña \"Avanzado\" para un control más detallado", - "rgbo": "Iconos, acentos, insignias" - }, - "advanced_colors": { - "_tab_label": "Avanzado", - "alert": "Fondo de Alertas", - "alert_error": "Error", - "badge": "Fondo de Insignias", - "badge_notification": "Notificaciones", - "panel_header": "Cabecera del panel", - "top_bar": "Barra superior", - "borders": "Bordes", - "buttons": "Botones", - "inputs": "Campos de entrada", - "faint_text": "Texto desvanecido", - "alert_neutral": "Neutral", - "chat": { - "border": "Borde", - "outgoing": "Salientes", - "incoming": "Entrantes" - }, - "tabs": "Pestañas", - "toggled": "Intercambiado", - "disabled": "Deshabilitado", - "selectedMenu": "Elemento del menú seleccionado", - "selectedPost": "Publicación seleccionada", - "pressed": "Presionado", - "highlight": "Elementos destacados", - "icons": "Iconos", - "poll": "Gráfico de la encuesta", - "underlay": "Subrayado", - "popover": "Sugerencias, menús, superposiciones", - "post": "Publicaciones/Biografías de Usuarios", - "alert_warning": "Precaución", - "wallpaper": "Fondo de pantalla" - }, - "radii": { - "_tab_label": "Redondez" - }, - "shadows": { - "_tab_label": "Sombra e iluminación", - "component": "Componente", - "override": "Sobreescribir", - "shadow_id": "Sombra #{value}", - "blur": "Difuminar", - "spread": "Cantidad", - "inset": "Sombra interior", - "hint": "Para las sombras, también puede usar --variable como un valor de color para usar las variables CSS3. Tenga en cuenta que establecer la opacidad no funcionará en este caso.", - "filter_hint": { - "always_drop_shadow": "Advertencia, esta sombra siempre usa {0} cuando el navegador lo soporta.", - "drop_shadow_syntax": "{0} no soporta el parámetro {1} y la palabra clave {2}.", - "avatar_inset": "Tenga en cuenta que la combinación de sombras interiores como no-interiores en los avatares, puede dar resultados inesperados con los avatares transparentes.", - "spread_zero": "Sombras con una cantidad > 0 aparecerá como si estuviera puesto a cero", - "inset_classic": "Las sombras interiores estarán usando {0}" - }, - "components": { - "panel": "Panel", - "panelHeader": "Cabecera del panel", - "topBar": "Barra superior", - "avatar": "Avatar del usuario (en la vista del perfil)", - "avatarStatus": "Avatar del usuario (en la vista de la publicación)", - "popup": "Ventanas y textos emergentes (popups & tooltips)", - "button": "Botones", - "buttonHover": "Botón (encima)", - "buttonPressed": "Botón (presionado)", - "buttonPressedHover": "Botón (presionado+encima)", - "input": "Campo de entrada" - }, - "hintV3": "Para las sombras, también puede usar la notación {0} para usar otro espacio de color." - }, - "fonts": { - "_tab_label": "Fuentes", - "help": "Seleccione la fuente a utilizar para los elementos de la interfaz de usuario. Para \"personalizar\", debe ingresar el nombre exacto de la fuente tal como aparece en el sistema.", - "components": { - "interface": "Interfaz", - "input": "Campos de entrada", - "post": "Texto de publicaciones", - "postCode": "Texto monoespaciado en publicación (texto enriquecido)" - }, - "family": "Nombre de la fuente", - "size": "Tamaño (en px)", - "weight": "Peso (negrita)", - "custom": "Personalizado" - }, - "preview": { - "header": "Vista previa", - "content": "Contenido", - "error": "Ejemplo de error", - "button": "Botón", - "text": "Un montón de {0} y {1}", - "mono": "contenido", - "input": "Acaba de aterrizar en L.A.", - "faint_link": "manual útil", - "fine_print": "¡Lea nuestro {0} para aprender nada útil!", - "header_faint": "Esto está bien", - "checkbox": "He revisado los términos y condiciones", - "link": "un bonito enlace" - } }, - "version": { - "title": "Versión", - "backend_version": "Versión del backend", - "frontend_version": "Versión del frontend" + "registration": { + "bio": "Biografía", + "bio_placeholder": "e.g.\nHola, soy un ejemplo.\nAquí puedes poner algo representativo tuyo... o no.", + "captcha": "CAPTCHA", + "email": "Correo electrónico", + "fullname": "Nombre a mostrar", + "fullname_placeholder": "p.ej. Lain Iwakura", + "new_captcha": "Haz click en la imagen para obtener un nuevo captcha", + "password_confirm": "Confirmar contraseña", + "reason": "Razón para registrarse", + "reason_placeholder": "Los registros de esta instancia son aprobados manualmente.\nComéntanos por qué quieres registrarte aquí.", + "register": "Registrarse", + "registration": "Registro", + "token": "Token de invitación", + "username_placeholder": "p.ej. lain", + "validations": { + "email_required": "no puede estar vacío", + "fullname_required": "no puede estar vacío", + "password_confirmation_match": "la contraseña no coincide", + "password_confirmation_required": "no puede estar vacío", + "password_required": "no puede estar vacío", + "username_required": "no puede estar vacío" + } }, - "notification_visibility_moves": "Usuario Migrado", - "greentext": "Texto verde (meme arrows)", - "notification_setting_hide_notification_contents": "Ocultar el remitente y el contenido de las notificaciones push", - "notification_setting_privacy": "Privacidad", - "notification_setting_block_from_strangers": "Bloquea las notificaciones de los usuarios que no sigues", - "notification_setting_filters": "Filtros", - "fun": "Divertido", - "type_domains_to_mute": "Buscar dominios para silenciar", - "useStreamingApiWarning": "(no recomendado, experimental, puede omitir publicaciones)", - "useStreamingApi": "Recibir publicaciones y notificaciones en tiempo real", - "user_mutes": "Usuarios", - "reset_profile_background": "Restablecer el fondo de pantalla", - "reset_background_confirm": "¿Estás seguro de restablecer el fondo de pantalla?", - "reset_banner_confirm": "¿Estás seguro de restablecer la imagen del banner?", - "reset_avatar_confirm": "¿Estás seguro de restablecer la imagen de avatar?", - "reset_profile_banner": "Restabler imagen del banner del perfil", - "reset_avatar": "Restablecer avatar", - "notification_visibility_emoji_reactions": "Reacciones", - "new_email": "Nuevo correo electrónico", - "profile_fields": { - "value": "Contenido", - "name": "Etiqueta", - "add_field": "Añadir un campo", - "label": "Metadatos del perfil" + "remote_user_resolver": { + "error": "No encontrado.", + "remote_user_resolver": "Resolución de usuario remoto", + "searching_for": "Buscando" }, - "accent": "Acento", - "emoji_reactions_on_timeline": "Mostrar las reacciones de emoji en la línea de tiempo", - "domain_mutes": "Dominios", - "mutes_and_blocks": "Silenciado y Bloqueados", - "chatMessageRadius": "Mensaje de chat", - "changed_email": "¡Correo electrónico modificado correctamente!", - "change_email_error": "Ha ocurrido un error al intentar modificar tu correo electrónico.", - "change_email": "Modificar el correo electrónico", - "bot": "Esta cuenta es un bot", - "allow_following_move": "Permitir el seguimiento automático, cuando la cuenta que sigues se traslada a otra instancia", - "virtual_scrolling": "Optimizar la representación de la linea temporal", - "import_mutes_from_a_csv_file": "Importar silenciados desde un archivo csv", - "mutes_imported": "¡Silenciados importados! Procesarlos llevará un tiempo.", - "mute_import_error": "Error al importar los silenciados", - "mute_import": "Importar silenciados", - "mute_export_button": "Exportar los silenciados a un archivo csv", - "mute_export": "Exportar silenciados", - "hide_wallpaper": "Ocultar el fondo de pantalla de la instancia", - "setting_changed": "La configuración es diferente a la predeterminada", - "hide_all_muted_posts": "Ocultar las publicaciones silenciadas", - "more_settings": "Más opciones", - "sensitive_by_default": "Identificar las publicaciones como sensibles de forma predeterminada", - "reply_visibility_self_short": "Mostrar respuestas solo a uno mismo", - "reply_visibility_following_short": "Mostrar las réplicas a mis seguidores", - "hide_media_previews": "Ocultar la vista previa multimedia", - "word_filter": "Filtro de palabras", - "save": "Guardar los cambios", - "file_export_import": { - "errors": { - "invalid_file": "El archivo seleccionado no es válido como copia de seguridad de Pleroma. No se han realizado cambios.", - "file_too_new": "Versión principal incompatible: {fileMajor}, este \"FrontEnd\" de Pleroma (versión de configuración {feMajor}) es demasiado antiguo para manejarlo", - "file_too_old": "Versión principal incompatible: {fileMajor}, la versión del archivo es demasiado antigua y no es compatible (versión mínima {FeMajor})", - "file_slightly_new": "La versión secundaria del archivo es diferente, es posible que algunas configuraciones no se carguen" - }, - "restore_settings": "Restaurar ajustes desde archivo", - "backup_settings_theme": "Descargar la copia de seguridad de la configuración y del tema", - "backup_settings": "Descargar la copia de seguridad de la configuración", - "backup_restore": "Copia de seguridad de la configuración" + "search": { + "hashtags": "Etiquetas", + "no_results": "Sin resultados", + "people": "Personas", + "people_talking": "{count} gente hablando", + "person_talking": "{count} personas hablando" }, - "hide_shoutbox": "Ocultar cuadro de diálogo de la instancia", - "right_sidebar": "Mostrar la barra lateral a la derecha", - "always_show_post_button": "Muestra siempre el botón flotante de Nueva Plubicación", - "mentions_new_style": "Enlaces de menciones más elegantes", - "mentions_new_place": "Situa las menciones en una línea separada" - }, - "time": { - "now": "justo ahora", - "now_short": "ahora", - "in_future": "en {0}", - "in_past": "hace {0}", - "unit": { - "day": "{0} día", - "days": "{0} días", - "day_short": "{0}d", - "days_short": "{0}d", - "hour": "{0} hora", - "hours": "{0} horas", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minuto", - "minutes": "{0} minutos", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} mes", - "months": "{0} meses", - "month_short": "{0}m", - "months_short": "{0}m", - "second": "{0} segundo", - "seconds": "{0} segundos", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} semana", - "weeks": "{0} semanas", - "week_short": "{0}sem", - "weeks_short": "{0}sem", - "year": "{0} año", - "years": "{0} años", - "year_short": "{0}a", - "years_short": "{0}a" + "selectable_list": { + "select_all": "Seleccionar todo" + }, + "settings": { + "accent": "Acento", + "allow_following_move": "Permitir el seguimiento automático, cuando la cuenta que sigues se traslada a otra instancia", + "always_show_post_button": "Muestra siempre el botón flotante de Nueva Plubicación", + "app_name": "Nombre de la aplicación", + "attachmentRadius": "Adjuntos", + "attachments": "Adjuntos", + "autohide_floating_post_button": "Ocultar automáticamente el botón 'Nueva Publicación' (para móviles)", + "avatar": "Avatar", + "avatarAltRadius": "Avatares (notificaciones)", + "avatarRadius": "Avatares", + "avatar_size_instruction": "El tamaño mínimo recomendado para el avatar es de 150X150 píxeles.", + "background": "Fondo", + "bio": "Biografía", + "block_export": "Exportar usuarios bloqueados", + "block_export_button": "Exporta la lista de tus usuarios bloqueados a un archivo csv", + "block_import": "Importar usuarios bloqueados", + "block_import_error": "Error importando la lista de usuarios bloqueados", + "blocks_imported": "¡Lista de usuarios bloqueados importada! El procesado puede tardar un poco.", + "blocks_tab": "Bloqueados", + "bot": "Esta cuenta es un bot", + "btnRadius": "Botones", + "cBlue": "Azul (Responder, seguir)", + "cGreen": "Verde (Retweet)", + "cOrange": "Naranja (Favorito)", + "cRed": "Rojo (Cancelar)", + "change_email": "Modificar el correo electrónico", + "change_email_error": "Ha ocurrido un error al intentar modificar tu correo electrónico.", + "change_password": "Cambiar contraseña", + "change_password_error": "Hubo un problema cambiando la contraseña.", + "changed_email": "¡Correo electrónico modificado correctamente!", + "changed_password": "¡Contraseña cambiada correctamente!", + "chatMessageRadius": "Mensaje de chat", + "checkboxRadius": "Casillas de verificación", + "collapse_subject": "Colapsar publicaciones con tema", + "composing": "Redactando", + "confirm_new_password": "Confirmar la nueva contraseña", + "current_avatar": "Tu avatar actual", + "current_password": "Contraseña actual", + "data_import_export_tab": "Importar / Exportar datos", + "default_vis": "Alcance de visibilidad por defecto", + "delete_account": "Eliminar la cuenta", + "delete_account_description": "Eliminar para siempre los datos y desactivar la cuenta.", + "delete_account_error": "Hubo un error al eliminar tu cuenta. Si el fallo persiste, ponte en contacto con el/la administrador/a de tu instancia.", + "delete_account_instructions": "Escribe tu contraseña para confirmar la eliminación de tu cuenta.", + "discoverable": "Permitir la aparición de esta cuenta en los resultados de búsqueda y otros servicios", + "domain_mutes": "Dominios", + "emoji_reactions_on_timeline": "Mostrar las reacciones de emoji en la línea de tiempo", + "enable_web_push_notifications": "Habilitar las notificiaciones en el navegador", + "enter_current_password_to_confirm": "Introduce la contraseña actual para confirmar tu identidad", + "export_theme": "Exportar tema", + "file_export_import": { + "backup_restore": "Copia de seguridad de la configuración", + "backup_settings": "Descargar la copia de seguridad de la configuración", + "backup_settings_theme": "Descargar la copia de seguridad de la configuración y del tema", + "errors": { + "file_slightly_new": "La versión secundaria del archivo es diferente, es posible que algunas configuraciones no se carguen", + "file_too_new": "Versión principal incompatible: {fileMajor}, este \"FrontEnd\" de Pleroma (versión de configuración {feMajor}) es demasiado antiguo para manejarlo", + "file_too_old": "Versión principal incompatible: {fileMajor}, la versión del archivo es demasiado antigua y no es compatible (versión mínima {FeMajor})", + "invalid_file": "El archivo seleccionado no es válido como copia de seguridad de Pleroma. No se han realizado cambios." + }, + "restore_settings": "Restaurar ajustes desde archivo" + }, + "filtering": "Filtrado", + "filtering_explanation": "Todos los estados que contengan estas palabras serán silenciados, una por línea", + "follow_export": "Exportar personas que tú sigues", + "follow_export_button": "Exporta tus seguidores a un fichero csv", + "follow_import": "Importar personas que tú sigues", + "follow_import_error": "Error al importar el fichero", + "follows_imported": "¡Importado! Procesarlos llevará tiempo.", + "foreground": "Primer plano", + "fun": "Divertido", + "general": "General", + "greentext": "Texto verde (meme arrows)", + "hide_all_muted_posts": "Ocultar las publicaciones silenciadas", + "hide_attachments_in_convo": "Ocultar adjuntos en las conversaciones", + "hide_attachments_in_tl": "Ocultar adjuntos en la línea temporal", + "hide_filtered_statuses": "Ocultar estados filtrados", + "hide_followers_count_description": "No mostrar el número de cuentas que me siguen", + "hide_followers_description": "No mostrar quién me sigue", + "hide_follows_count_description": "No mostrar el número de cuentas que sigo", + "hide_follows_description": "No mostrar a quién sigo", + "hide_isp": "Ocultar el panel específico de la instancia", + "hide_media_previews": "Ocultar la vista previa multimedia", + "hide_muted_posts": "Ocultar las publicaciones de los usuarios silenciados", + "hide_post_stats": "Ocultar las estadísticas de las publicaciones (p.ej. el número de favoritos)", + "hide_shoutbox": "Ocultar cuadro de diálogo de la instancia", + "hide_user_stats": "Ocultar las estadísticas del usuario (p.ej. el número de seguidores)", + "hide_wallpaper": "Ocultar el fondo de pantalla de la instancia", + "import_blocks_from_a_csv_file": "Importar lista de usuarios bloqueados dese un archivo csv", + "import_followers_from_a_csv_file": "Importar personas que tú sigues a partir de un archivo csv", + "import_mutes_from_a_csv_file": "Importar silenciados desde un archivo csv", + "import_theme": "Importar tema", + "inputRadius": "Campos de entrada", + "instance_default": "(por defecto: {value})", + "instance_default_simple": "(por defecto)", + "interface": "Interfaz", + "interfaceLanguage": "Idioma", + "invalid_theme_imported": "El archivo importado no es un tema válido de Pleroma. No se han realizado cambios.", + "limited_availability": "No disponible en tu navegador", + "links": "Enlaces", + "lock_account_description": "Restringir el acceso a tu cuenta solo a seguidores admitidos", + "loop_video": "Vídeos en bucle", + "loop_video_silent_only": "Bucle solo en vídeos sin sonido (p.ej. \"gifs\" de Mastodon)", + "max_thumbnails": "Cantidad máxima de miniaturas por publicación", + "mfa": { + "authentication_methods": "Métodos de autentificación", + "confirm_and_enable": "Confirmar y habilitar OTP", + "generate_new_recovery_codes": "Generar códigos de recuperación nuevos", + "otp": "OTP", + "recovery_codes": "Códigos de recuperación.", + "recovery_codes_warning": "Anote los códigos o guárdelos en un lugar seguro, de lo contrario no los volverá a ver. Si pierde el acceso a su aplicación 2FA y los códigos de recuperación, su cuenta quedará bloqueada.", + "scan": { + "desc": "Usando su aplicación de dos factores, escanee este código QR o ingrese la clave de texto:", + "secret_code": "Clave", + "title": "Escanear" + }, + "setup_otp": "Configurar OTP", + "title": "Autentificación de dos factores", + "verify": { + "desc": "Para habilitar la autenticación de dos factores, ingrese el código de su aplicación 2FA:" + }, + "wait_pre_setup_otp": "preconfiguración OTP", + "waiting_a_recovery_codes": "Recibiendo códigos de respaldo…", + "warning_of_generate_new_codes": "Cuando generas nuevos códigos de recuperación, los antiguos dejarán de funcionar." + }, + "minimal_scopes_mode": "Minimizar las opciones de publicación", + "more_settings": "Más opciones", + "mute_export": "Exportar silenciados", + "mute_export_button": "Exportar los silenciados a un archivo csv", + "mute_import": "Importar silenciados", + "mute_import_error": "Error al importar los silenciados", + "mutes_and_blocks": "Silenciado y Bloqueados", + "mutes_imported": "¡Silenciados importados! Procesarlos llevará un tiempo.", + "mutes_tab": "Silenciados", + "name": "Nombre", + "name_bio": "Nombre y biografía", + "new_email": "Nuevo correo electrónico", + "new_password": "Nueva contraseña", + "no_blocks": "No hay usuarios bloqueados", + "no_mutes": "No hay usuarios silenciados", + "no_rich_text_description": "Eliminar el formato de texto enriquecido de todas las publicaciones", + "notification_blocks": "El bloqueo de un usuario detiene todas las notificaciones y también las cancela.", + "notification_mutes": "Para dejar de recibir notificaciones de un usuario específico, siléncialo.", + "notification_setting_block_from_strangers": "Bloquea las notificaciones de los usuarios que no sigues", + "notification_setting_filters": "Filtros", + "notification_setting_hide_notification_contents": "Ocultar el remitente y el contenido de las notificaciones push", + "notification_setting_privacy": "Privacidad", + "notification_visibility": "Tipos de notificaciones a mostrar", + "notification_visibility_emoji_reactions": "Reacciones", + "notification_visibility_follows": "Nuevos seguidores", + "notification_visibility_likes": "Favoritos", + "notification_visibility_mentions": "Menciones", + "notification_visibility_moves": "Usuario Migrado", + "notification_visibility_repeats": "Repeticiones (Repeats)", + "notifications": "Notificaciones", + "nsfw_clickthrough": "Habilitar la ocultación de la imagen de vista previa del enlace y el adjunto para los estados NSFW por defecto", + "oauth_tokens": "Tokens de OAuth", + "pad_emoji": "Rellenar con espacios al agregar emojis desde el selector", + "panelRadius": "Paneles", + "pause_on_unfocused": "Parar la transmisión cuando no estés en foco", + "play_videos_in_modal": "Reproducir los vídeos en un marco emergente", + "post_status_content_type": "Formato de publicación", + "preload_images": "Precargar las imágenes", + "presets": "Por defecto", + "profile_background": "Imagen de fondo del perfil", + "profile_banner": "Imagen de cabecera del perfil", + "profile_fields": { + "add_field": "Añadir un campo", + "label": "Metadatos del perfil", + "name": "Etiqueta", + "value": "Contenido" + }, + "profile_tab": "Perfil", + "radii_help": "Establezca el redondeo de las esquinas de la interfaz (en píxeles)", + "refresh_token": "Actualizar el token", + "replies_in_timeline": "Réplicas en la línea temporal", + "reply_visibility_all": "Mostrar todas las réplicas", + "reply_visibility_following": "Solo mostrar réplicas para mí o usuarios a los que sigo", + "reply_visibility_following_short": "Mostrar las réplicas a mis seguidores", + "reply_visibility_self": "Solo mostrar réplicas para mí", + "reply_visibility_self_short": "Mostrar respuestas solo a uno mismo", + "reset_avatar": "Restablecer avatar", + "reset_avatar_confirm": "¿Estás seguro de restablecer la imagen de avatar?", + "reset_background_confirm": "¿Estás seguro de restablecer el fondo de pantalla?", + "reset_banner_confirm": "¿Estás seguro de restablecer la imagen del banner?", + "reset_profile_background": "Restablecer el fondo de pantalla", + "reset_profile_banner": "Restabler imagen del banner del perfil", + "revoke_token": "Revocar", + "right_sidebar": "Mostrar la barra lateral a la derecha", + "save": "Guardar los cambios", + "saving_err": "Error al guardar los ajustes", + "saving_ok": "Ajustes guardados", + "scope_copy": "Copiar la visibilidad de la publicación cuando contestamos (En los mensajes directos (MDs) siempre se copia)", + "search_user_to_block": "Buscar usuarios a bloquear", + "search_user_to_mute": "Buscar usuarios a silenciar", + "security": "Seguridad", + "security_tab": "Seguridad", + "sensitive_by_default": "Identificar las publicaciones como sensibles de forma predeterminada", + "set_new_avatar": "Cambiar avatar", + "set_new_profile_background": "Cambiar el fondo del perfil", + "set_new_profile_banner": "Cambiar la cabecera del perfil", + "setting_changed": "La configuración es diferente a la predeterminada", + "settings": "Ajustes", + "show_admin_badge": "Mostrar la insignia de \"Administrador/a\" en mi perfil", + "show_moderator_badge": "Mostrar la insignia de \"Moderador/a\" en mi perfil", + "stop_gifs": "Iniciar GIFs al pasar el ratón", + "streaming": "Habilitar la transmisión automática de nuevas publicaciones cuando se desplaza hacia la parte superior", + "style": { + "advanced_colors": { + "_tab_label": "Avanzado", + "alert": "Fondo de Alertas", + "alert_error": "Error", + "alert_neutral": "Neutral", + "alert_warning": "Precaución", + "badge": "Fondo de Insignias", + "badge_notification": "Notificaciones", + "borders": "Bordes", + "buttons": "Botones", + "chat": { + "border": "Borde", + "incoming": "Entrantes", + "outgoing": "Salientes" + }, + "disabled": "Deshabilitado", + "faint_text": "Texto desvanecido", + "highlight": "Elementos destacados", + "icons": "Iconos", + "inputs": "Campos de entrada", + "panel_header": "Cabecera del panel", + "poll": "Gráfico de la encuesta", + "popover": "Sugerencias, menús, superposiciones", + "post": "Publicaciones/Biografías de Usuarios", + "pressed": "Presionado", + "selectedMenu": "Elemento del menú seleccionado", + "selectedPost": "Publicación seleccionada", + "tabs": "Pestañas", + "toggled": "Intercambiado", + "top_bar": "Barra superior", + "underlay": "Subrayado", + "wallpaper": "Fondo de pantalla" + }, + "common": { + "color": "Color", + "contrast": { + "context": { + "18pt": "para textos grandes (+18pt)", + "text": "para textos" + }, + "hint": "El ratio de contraste es {ratio}. {level} {context}", + "level": { + "aa": "Cumple con la pauta de nivel AA (mínimo)", + "aaa": "Cumple con la pauta de nivel AAA (recomendado)", + "bad": "No cumple con las pautas de accesibilidad" + } + }, + "opacity": "Opacidad" + }, + "common_colors": { + "_tab_label": "Común", + "foreground_hint": "Vea la pestaña \"Avanzado\" para un control más detallado", + "main": "Colores comunes", + "rgbo": "Iconos, acentos, insignias" + }, + "fonts": { + "_tab_label": "Fuentes", + "components": { + "input": "Campos de entrada", + "interface": "Interfaz", + "post": "Texto de publicaciones", + "postCode": "Texto monoespaciado en publicación (texto enriquecido)" + }, + "custom": "Personalizado", + "family": "Nombre de la fuente", + "help": "Seleccione la fuente a utilizar para los elementos de la interfaz de usuario. Para \"personalizar\", debe ingresar el nombre exacto de la fuente tal como aparece en el sistema.", + "size": "Tamaño (en px)", + "weight": "Peso (negrita)" + }, + "preview": { + "button": "Botón", + "checkbox": "He revisado los términos y condiciones", + "content": "Contenido", + "error": "Ejemplo de error", + "faint_link": "manual útil", + "fine_print": "¡Lea nuestro {0} para aprender nada útil!", + "header": "Vista previa", + "header_faint": "Esto está bien", + "input": "Acaba de aterrizar en L.A.", + "link": "un bonito enlace", + "mono": "contenido", + "text": "Un montón de {0} y {1}" + }, + "radii": { + "_tab_label": "Redondez" + }, + "shadows": { + "_tab_label": "Sombra e iluminación", + "blur": "Difuminar", + "component": "Componente", + "components": { + "avatar": "Avatar del usuario (en la vista del perfil)", + "avatarStatus": "Avatar del usuario (en la vista de la publicación)", + "button": "Botones", + "buttonHover": "Botón (encima)", + "buttonPressed": "Botón (presionado)", + "buttonPressedHover": "Botón (presionado+encima)", + "input": "Campo de entrada", + "panel": "Panel", + "panelHeader": "Cabecera del panel", + "popup": "Ventanas y textos emergentes (popups & tooltips)", + "topBar": "Barra superior" + }, + "filter_hint": { + "always_drop_shadow": "Advertencia, esta sombra siempre usa {0} cuando el navegador lo soporta.", + "avatar_inset": "Tenga en cuenta que la combinación de sombras interiores como no-interiores en los avatares, puede dar resultados inesperados con los avatares transparentes.", + "drop_shadow_syntax": "{0} no soporta el parámetro {1} y la palabra clave {2}.", + "inset_classic": "Las sombras interiores estarán usando {0}", + "spread_zero": "Sombras con una cantidad > 0 aparecerá como si estuviera puesto a cero" + }, + "hintV3": "Para las sombras, también puede usar la notación {0} para usar otro espacio de color.", + "inset": "Sombra interior", + "override": "Sobreescribir", + "shadow_id": "Sombra #{value}", + "spread": "Cantidad" + }, + "switcher": { + "clear_all": "Limpiar todo", + "clear_opacity": "Limpiar opacidad", + "help": { + "fe_downgraded": "Versión de PleromaFE revertida.", + "fe_upgraded": "El creador de temas de PleromaFE se actualizó después de la actualización de la versión.", + "future_version_imported": "El archivo que ha importado se creó para una versión más reciente del frontend.", + "migration_napshot_gone": "Por alguna razón, faltaba la instantánea, algunas cosas podrían verse diferentes de lo que recuerdas.", + "migration_snapshot_ok": "Solo para estar seguro, se cargó la instantánea del tema. Puede intentar cargar los datos del tema.", + "older_version_imported": "El archivo que ha importado se creó en una versión anterior del frontend actual.", + "snapshot_missing": "No había ninguna instantánea del tema en el archivo, por lo que podría verse diferente de lo previsto originalmente.", + "snapshot_present": "Se ha cargado una instantánea del tema, por lo que todos los valores se sobrescriben. De lo contrario, puede cargar el tema por completo.", + "snapshot_source_mismatch": "Conflicto de versiones: lo más probable es que el frontend se haya revertido y actualizado nuevamente, si cambió el tema con una versión anterior del frontend, lo más probable es que desee usar la versión anterior; de lo contrario, use la nueva versión.", + "upgraded_from_v2": "PleromaFE se ha actualizado, el tema podría verse un poco diferente de lo que recuerdas.", + "v2_imported": "El archivo que ha importado fue creado para un frontend más antiguo. Intentamos maximizar la compatibilidad, pero aún podría haber inconsistencias." + }, + "keep_as_is": "Mantener como está", + "keep_color": "Mantener colores", + "keep_fonts": "Mantener fuentes", + "keep_opacity": "Mantener opacidad", + "keep_roundness": "Mantener redondeces", + "keep_shadows": "Mantener sombras", + "load_theme": "Cargar tema", + "reset": "Reiniciar", + "save_load_hint": "Las opciones \"Mantener\" conservan las opciones configuradas actualmente al seleccionar o cargar temas, también almacena dichas opciones al exportar un tema. Cuando se desactiven todas las casillas de verificación, el tema de exportación lo guardará todo.", + "use_snapshot": "Versión antigua", + "use_source": "Nueva versión" + } + }, + "subject_input_always_show": "Mostrar siempre el campo del tema", + "subject_line_behavior": "Copiar el tema en las respuestas", + "subject_line_email": "Como email: \"re: tema\"", + "subject_line_mastodon": "Como mastodon: copiar como es", + "subject_line_noop": "No copiar", + "text": "Texto", + "theme": "Tema", + "theme_help": "Use códigos de color hexadecimales (#rrggbb) para personalizar su tema de colores.", + "theme_help_v2_1": "También puede invalidar los colores y la opacidad de ciertos componentes si activa la casilla de verificación. Use el botón \"Borrar todo\" para deshacer los cambios.", + "theme_help_v2_2": "Los iconos debajo de algunas publicaciones son indicadores de contraste de fondo/texto, desplace el ratón por encima para obtener información más detallada. Tenga en cuenta que cuando se utilizan indicadores de contraste de transparencia se muestra el peor caso posible.", + "token": "Token", + "tooltipRadius": "Información/alertas", + "type_domains_to_mute": "Buscar dominios para silenciar", + "upload_a_photo": "Subir una foto", + "useStreamingApi": "Recibir publicaciones y notificaciones en tiempo real", + "useStreamingApiWarning": "(no recomendado, experimental, puede omitir publicaciones)", + "use_contain_fit": "No recortar los adjuntos en miniaturas", + "use_one_click_nsfw": "Abrir los adjuntos NSFW con un solo click", + "user_mutes": "Usuarios", + "user_settings": "Ajustes del Usuario", + "valid_until": "Válido hasta", + "values": { + "false": "no", + "true": "sí" + }, + "version": { + "backend_version": "Versión del backend", + "frontend_version": "Versión del frontend", + "title": "Versión" + }, + "virtual_scrolling": "Optimizar la representación de la linea temporal", + "word_filter": "Filtro de palabras" + }, + "status": { + "bookmark": "Marcar", + "copy_link": "Copiar el enlace al estado", + "delete": "Eliminar publicación", + "delete_confirm": "¿Realmente quieres borrar la publicación?", + "expand": "Expandir", + "external_source": "Fuente externa", + "favorites": "Favoritos", + "hide_content": "Ocultar el contenido", + "hide_full_subject": "Ocultar el tema completo", + "mentions": "Menciones", + "mute_conversation": "Silenciar la conversación", + "nsfw": "NSFW (No apropiado para el trabajo)", + "pin": "Fijar en tu perfil", + "pinned": "Fijado", + "plus_more": "+{number} más", + "repeats": "Repetidos", + "replies_list": "Respuestas:", + "reply_to": "Respondiendo a", + "show_content": "Mostrar el contenido", + "show_full_subject": "Mostrar el tema completo", + "status_deleted": "Esta publicación ha sido eliminada", + "status_unavailable": "Estado no disponible", + "thread_muted": "Conversación silenciada", + "thread_muted_and_words": ", contiene:", + "unbookmark": "Desmarcar", + "unmute_conversation": "Mostrar la conversación", + "unpin": "Desclavar de tu perfil", + "you": "(Tú)" + }, + "time": { + "in_future": "en {0}", + "in_past": "hace {0}", + "now": "justo ahora", + "now_short": "ahora", + "unit": { + "days": "{0} días", + "days_short": "{0}d", + "hours": "{0} horas", + "hours_short": "{0}h", + "minutes": "{0} minutos", + "minutes_short": "{0}min", + "months": "{0} meses", + "months_short": "{0}m", + "seconds": "{0} segundos", + "seconds_short": "{0}s", + "weeks": "{0} semanas", + "weeks_short": "{0}sem", + "years": "{0} años", + "years_short": "{0}a" + } + }, + "timeline": { + "collapse": "Colapsar", + "conversation": "Conversación", + "error": "Error obteniendo la linea de tiempo:{0}", + "load_older": "Cargar actualizaciones anteriores", + "no_more_statuses": "No hay más estados", + "no_retweet_hint": "La publicación está marcada como solo para seguidores o directa y no se puede repetir", + "no_statuses": "Sin estados", + "reload": "Recargar", + "repeated": "repetida", + "show_new": "Mostrar lo nuevo", + "socket_broke": "Conexión en timpo real perdida: código del motivo {0}", + "socket_reconnected": "Establecida la conexión en tiempo real", + "up_to_date": "Actualizado" + }, + "tool_tip": { + "accept_follow_request": "Aceptar la solicitud de seguimiento", + "add_reaction": "Añadir Reacción", + "bookmark": "Marcador", + "favorite": "Favorito", + "media_upload": "Subir multimedia", + "reject_follow_request": "Rechazar la solicitud de seguimiento", + "repeat": "Repetir", + "reply": "Contestar", + "user_settings": "Ajustes de usuario" + }, + "upload": { + "error": { + "base": "Subida fallida.", + "default": "Inténtalo más tarde", + "file_too_big": "Archivo demasiado grande [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Error de subida: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Activar cuenta", + "deactivate_account": "Desactivar cuenta", + "delete_account": "Eliminar cuenta", + "delete_user": "Eliminar usuario", + "disable_any_subscription": "No permitir que ningún usuario te siga", + "disable_remote_subscription": "No permitir que usuarios de instancias remotas te siga", + "force_nsfw": "Marcar todas las publicaciones como NSFW (no es seguro/apropiado para el trabajo)", + "force_unlisted": "Forzar que se publique en el modo -Sin Listar-", + "grant_admin": "Conceder permisos de Administrador/a", + "grant_moderator": "Conceder permisos de Moderador/a", + "moderation": "Moderación", + "quarantine": "No permitir publicaciones de usuarios de instancias remotas", + "revoke_admin": "Revocar permisos de Administrador/a", + "revoke_moderator": "Revocar permisos de Moderador/a", + "sandbox": "Forzar que se publique solo para tus seguidores", + "strip_media": "Eliminar archivos multimedia de las publicaciones" + }, + "approve": "Aprobar", + "block": "Bloquear", + "block_progress": "Bloqueando…", + "blocked": "¡Bloqueado!", + "bot": "Bot", + "deny": "Denegar", + "edit_profile": "Edita el perfil", + "favorites": "Favoritos", + "follow": "Seguir", + "follow_progress": "Solicitando…", + "follow_sent": "¡Solicitud enviada!", + "follow_unfollow": "Dejar de seguir", + "followees": "Siguiendo", + "followers": "Seguidores", + "following": "¡Siguiendo!", + "follows_you": "¡Te sigue!", + "hidden": "Oculto", + "hide_repeats": "Ocultar repetidos", + "highlight": { + "disabled": "Sin resaltado", + "side": "Raya lateral", + "solid": "Fondo sólido", + "striped": "Fondo rayado" + }, + "its_you": "¡Eres tú!", + "media": "Media", + "mention": "Mencionar", + "message": "Mensaje", + "mute": "Silenciar", + "mute_progress": "Silenciando…", + "muted": "Silenciado", + "per_day": "por día", + "remote_follow": "Seguir", + "report": "Reportar", + "show_repeats": "Mostrar repetidos", + "statuses": "Estados", + "subscribe": "Suscribirse", + "unblock": "Desbloquear", + "unblock_progress": "Desbloqueando…", + "unmute": "Dejar de silenciar", + "unmute_progress": "Quitando silencio…", + "unsubscribe": "Desuscribirse" + }, + "user_profile": { + "profile_does_not_exist": "Lo sentimos, este perfil no existe.", + "profile_loading_error": "Lo sentimos, hubo un error al cargar este perfil.", + "timeline_title": "Línea temporal del usuario" + }, + "user_reporting": { + "add_comment_description": "El informe será enviado a los/las moderadores/as de su instancia. Puedes proporcionar una explicación de por qué estás reportando esta cuenta a continuación:", + "additional_comments": "Comentarios adicionales", + "forward_description": "La cuenta es de otro servidor. ¿Enviar una copia del informe allí también?", + "forward_to": "Reenviar a {0}", + "generic_error": "Se produjo un error al procesar la solicitud.", + "submit": "Enviar", + "title": "Reportando a {0}" + }, + "who_to_follow": { + "more": "Más", + "who_to_follow": "A quién seguir" } - }, - "timeline": { - "collapse": "Colapsar", - "conversation": "Conversación", - "error_fetching": "Error al cargar las actualizaciones", - "load_older": "Cargar actualizaciones anteriores", - "no_retweet_hint": "La publicación está marcada como solo para seguidores o directa y no se puede repetir", - "repeated": "repetida", - "show_new": "Mostrar lo nuevo", - "up_to_date": "Actualizado", - "no_more_statuses": "No hay más estados", - "no_statuses": "Sin estados", - "reload": "Recargar", - "error": "Error obteniendo la linea de tiempo:{0}", - "socket_broke": "Conexión en timpo real perdida: código del motivo {0}", - "socket_reconnected": "Establecida la conexión en tiempo real" - }, - "status": { - "favorites": "Favoritos", - "repeats": "Repetidos", - "delete": "Eliminar publicación", - "pin": "Fijar en tu perfil", - "unpin": "Desclavar de tu perfil", - "pinned": "Fijado", - "delete_confirm": "¿Realmente quieres borrar la publicación?", - "reply_to": "Respondiendo a", - "replies_list": "Respuestas:", - "mute_conversation": "Silenciar la conversación", - "unmute_conversation": "Mostrar la conversación", - "hide_content": "Ocultar el contenido", - "show_content": "Mostrar el contenido", - "hide_full_subject": "Ocultar el tema completo", - "show_full_subject": "Mostrar el tema completo", - "thread_muted_and_words": ", contiene:", - "thread_muted": "Conversación silenciada", - "copy_link": "Copiar el enlace al estado", - "status_unavailable": "Estado no disponible", - "bookmark": "Marcar", - "unbookmark": "Desmarcar", - "status_deleted": "Esta publicación ha sido eliminada", - "nsfw": "NSFW (No apropiado para el trabajo)", - "expand": "Expandir", - "external_source": "Fuente externa", - "mentions": "Menciones", - "you": "(Tú)", - "plus_more": "+{number} más" - }, - "user_card": { - "approve": "Aprobar", - "block": "Bloquear", - "blocked": "¡Bloqueado!", - "deny": "Denegar", - "favorites": "Favoritos", - "follow": "Seguir", - "follow_sent": "¡Solicitud enviada!", - "follow_progress": "Solicitando…", - "follow_unfollow": "Dejar de seguir", - "followees": "Siguiendo", - "followers": "Seguidores", - "following": "¡Siguiendo!", - "follows_you": "¡Te sigue!", - "its_you": "¡Eres tú!", - "media": "Media", - "mention": "Mencionar", - "mute": "Silenciar", - "muted": "Silenciado", - "per_day": "por día", - "remote_follow": "Seguir", - "report": "Reportar", - "statuses": "Estados", - "subscribe": "Suscribirse", - "unsubscribe": "Desuscribirse", - "unblock": "Desbloquear", - "unblock_progress": "Desbloqueando…", - "block_progress": "Bloqueando…", - "unmute": "Dejar de silenciar", - "unmute_progress": "Quitando silencio…", - "mute_progress": "Silenciando…", - "admin_menu": { - "moderation": "Moderación", - "grant_admin": "Conceder permisos de Administrador/a", - "revoke_admin": "Revocar permisos de Administrador/a", - "grant_moderator": "Conceder permisos de Moderador/a", - "revoke_moderator": "Revocar permisos de Moderador/a", - "activate_account": "Activar cuenta", - "deactivate_account": "Desactivar cuenta", - "delete_account": "Eliminar cuenta", - "force_nsfw": "Marcar todas las publicaciones como NSFW (no es seguro/apropiado para el trabajo)", - "strip_media": "Eliminar archivos multimedia de las publicaciones", - "force_unlisted": "Forzar que se publique en el modo -Sin Listar-", - "sandbox": "Forzar que se publique solo para tus seguidores", - "disable_remote_subscription": "No permitir que usuarios de instancias remotas te siga", - "disable_any_subscription": "No permitir que ningún usuario te siga", - "quarantine": "No permitir publicaciones de usuarios de instancias remotas", - "delete_user": "Eliminar usuario" - }, - "show_repeats": "Mostrar repetidos", - "hide_repeats": "Ocultar repetidos", - "message": "Mensaje", - "hidden": "Oculto", - "roles": { - "moderator": "Moderador", - "admin": "Administrador" - }, - "highlight": { - "striped": "Fondo rayado", - "side": "Raya lateral", - "solid": "Fondo sólido", - "disabled": "Sin resaltado" - }, - "bot": "Bot", - "edit_profile": "Edita el perfil" - }, - "user_profile": { - "timeline_title": "Línea temporal del usuario", - "profile_does_not_exist": "Lo sentimos, este perfil no existe.", - "profile_loading_error": "Lo sentimos, hubo un error al cargar este perfil." - }, - "user_reporting": { - "title": "Reportando a {0}", - "add_comment_description": "El informe será enviado a los/las moderadores/as de su instancia. Puedes proporcionar una explicación de por qué estás reportando esta cuenta a continuación:", - "additional_comments": "Comentarios adicionales", - "forward_description": "La cuenta es de otro servidor. ¿Enviar una copia del informe allí también?", - "forward_to": "Reenviar a {0}", - "submit": "Enviar", - "generic_error": "Se produjo un error al procesar la solicitud." - }, - "who_to_follow": { - "more": "Más", - "who_to_follow": "A quién seguir" - }, - "tool_tip": { - "media_upload": "Subir multimedia", - "repeat": "Repetir", - "reply": "Contestar", - "favorite": "Favorito", - "user_settings": "Ajustes de usuario", - "bookmark": "Marcador", - "reject_follow_request": "Rechazar la solicitud de seguimiento", - "accept_follow_request": "Aceptar la solicitud de seguimiento", - "add_reaction": "Añadir Reacción" - }, - "upload": { - "error": { - "base": "Subida fallida.", - "file_too_big": "Archivo demasiado grande [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Inténtalo más tarde", - "message": "Error de subida: {0}" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "Personas", - "hashtags": "Etiquetas", - "person_talking": "{count} personas hablando", - "people_talking": "{count} gente hablando", - "no_results": "Sin resultados" - }, - "password_reset": { - "forgot_password": "¿Contraseña olvidada?", - "password_reset": "Restablecer la contraseña", - "instruction": "Ingrese su dirección de correo electrónico o nombre de usuario. Le enviaremos un enlace para restablecer su contraseña.", - "placeholder": "Su correo electrónico o nombre de usuario", - "check_email": "Revise su correo electrónico para obtener un enlace para restablecer su contraseña.", - "return_home": "Volver a la página de inicio", - "too_many_requests": "Has alcanzado el límite de intentos, vuelve a intentarlo más tarde.", - "password_reset_disabled": "El restablecimiento de contraseñas está deshabilitado. Póngase en contacto con el administrador de su instancia.", - "password_reset_required_but_mailer_is_disabled": "Debes restablecer la contraseña, pero el restablecimiento de contraseñas está deshabilitado. Por favor contacta con el administrador de la instancia.", - "password_reset_required": "Debes restablecer la contraseña para iniciar sesión." - }, - "errors": { - "storage_unavailable": "Pleroma no pudo acceder al almacenamiento del navegador. Su inicio de sesión o su configuración local no se guardarán y puede encontrar problemas inesperados. Intente habilitar las cookies." - }, - "domain_mute_card": { - "unmute_progress": "Quitando silencio…", - "unmute": "Dejar de silenciar", - "mute_progress": "Silenciando…", - "mute": "Silenciar" - }, - "about": { - "mrf": { - "simple": { - "accept_desc": "Esta instancia solo acepta mensajes de las siguientes instancias:", - "media_nsfw_desc": "Esta instancia obliga a que los archivos multimedia se establezcan como sensibles en las publicaciones de las siguientes instancias:", - "media_nsfw": "Forzar contenido multimedia como sensible", - "media_removal_desc": "Esta instancia elimina los archivos multimedia de las publicaciones de las siguientes instancias:", - "media_removal": "Eliminar Multimedia", - "quarantine": "Cuarentena", - "ftl_removal_desc": "Esta instancia elimina las siguientes instancias de la línea de tiempo \"Red Conocida\":", - "ftl_removal": "Eliminar de la línea de tiempo \"Red Conocida\"", - "quarantine_desc": "Esta instancia enviará solo publicaciones públicas a las siguientes instancias:", - "simple_policies": "Políticas específicas de la instancia", - "reject_desc": "Esta instancia no aceptará mensajes de las siguientes instancias:", - "reject": "Rechazar", - "accept": "Aceptar" - }, - "mrf_policies_desc": "Las políticas MRF manipulan la federación de esta instancia con el resto del fediverso. Las siguientes políticas están habilitadas:", - "mrf_policies": "Habilitar políticas MRF", - "keyword": { - "ftl_removal": "Eliminar de la línea de tiempo \"Toda La Red Conocida\"", - "keyword_policies": "Política de Palabras Clave", - "is_replaced_by": "→", - "replace": "Reemplazar", - "reject": "Rechazar" - }, - "federation": "Federación" - }, - "staff": "Equipo" - }, - "shoutbox": { - "title": "Jaula de Grillos" - }, - "remote_user_resolver": { - "remote_user_resolver": "Resolución de usuario remoto", - "error": "No encontrado.", - "searching_for": "Buscando" - }, - "chats": { - "chats": "Chats", - "empty_chat_list_placeholder": "Aún no tienes ninguna conversación. ¡Inicia una nueva conversación!", - "error_sending_message": "Algo salió mal al enviar el mensaje.", - "error_loading_chat": "Algo salió mal al cargar el chat.", - "delete_confirm": "¿Realmente quieres borrar este mensaje?", - "more": "Más", - "empty_message_error": "No puedes publicar un mensaje vacío", - "new": "Nueva conversación", - "delete": "Borrar", - "message_user": "Mensaje de {nickname}", - "you": "Tú:" - }, - "display_date": { - "today": "Hoy" - }, - "file_type": { - "file": "Archivo", - "image": "Imagen", - "video": "Vídeo", - "audio": "Audio" - } } diff --git a/src/i18n/et.json b/src/i18n/et.json index 97e835da..0a896e24 100644 --- a/src/i18n/et.json +++ b/src/i18n/et.json @@ -1,454 +1,445 @@ { - "finder": { - "error_fetching_user": "Viga kasutaja leidmisel", - "find_user": "Otsi kasutajaid" - }, - "general": { - "submit": "Postita", - "verify": "Kinnita", - "confirm": "Kinnita", - "enable": "Luba", - "disable": "Keela", - "cancel": "Tühista", - "dismiss": "Olgu", - "show_less": "Kuva vähem", - "show_more": "Kuva rohkem", - "optional": "valikuline", - "generic_error": "Esines viga", - "more": "Rohkem", - "apply": "Rakenda" - }, - "login": { - "login": "Logi sisse", - "logout": "Logi välja", - "password": "Parool", - "placeholder": "nt lain", - "register": "Registreeru", - "username": "Kasutajanimi", - "heading": { - "recovery": "Kaheastmelise autentimise taaste", - "totp": "Kaheastmeline autentimine" - }, - "recovery_code": "Taastekood", - "enter_two_factor_code": "Sisesta kaheastmelise autentimise kood", - "enter_recovery_code": "Sisesta taastekood", - "authentication_code": "Autentimiskood", - "hint": "Logi sisse, et liituda vestlusega", - "description": "Logi sisse OAuthiga" - }, - "nav": { - "mentions": "Mainimised", - "public_tl": "Avalik Ajajoon", - "timeline": "Ajajoon", - "twkn": "Kogu Teadaolev Võrgustik", - "preferences": "Eelistused", - "who_to_follow": "Keda jälgida", - "search": "Otsing", - "user_search": "Kasutajaotsing", - "dms": "Privaatsõnumid", - "interactions": "Interaktsioonid", - "friend_requests": "Jägimistaotlused", - "chat": "Kohalik vestlus", - "back": "Tagasi", - "administration": "Administreerimine", - "about": "Meist" - }, - "notifications": { - "followed_you": "alustas sinu jälgimist", - "notifications": "Teated", - "read": "Loe!", - "reacted_with": "reageeris {0}", - "migrated_to": "kolis", - "no_more_notifications": "Rohkem teateid ei ole", - "repeated_you": "taaspostitas su staatuse", - "load_older": "Laadi vanemad teated", - "follow_request": "soovib Teid jälgida", - "favorited_you": "lisas su staatuse lemmikuks", - "broken_favorite": "Tundmatu staatus, otsin…" - }, - "post_status": { - "default": "Just sõitsin elektrirongiga Tallinnast Pääskülla.", - "posting": "Postitan", - "scope": { - "unlisted": "Peidetud - Ära postita avalikele ajajoontele", - "public": "Avalil - Postita avalikele ajajoontele", - "private": "Jälgijatele - Postita ainult jälgijatele", - "direct": "Privaatne - Postita ainult mainitud kasutajatele" - }, - "scope_notice": { - "unlisted": "See postitus ei ole nähtav avalikul ega kogu võrgu ajajoonel", - "private": "See postitus on nähtav ainult Teie jälgijatele", - "public": "See postitus on nähtav kõigile" - }, - "direct_warning_to_first_only": "See postitus on nähtav ainult kirja alguses mainitud kasutajatele.", - "direct_warning_to_all": "See postitus on nähtav kõikidele mainitud kasutajatele.", - "content_warning": "Pealkiri (valikuline)", - "content_type": { - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML", - "text/plain": "Lihttekst" - }, - "attachments_sensitive": "Märgi manused sensitiivseks", - "account_not_locked_warning_link": "lukus", - "account_not_locked_warning": "Teie konto ei ole {0}. Kõik võivad Teid jälgida, et näha Teie ainult-jälgijatele postitusi.", - "new_status": "Postita uus staatus" - }, - "registration": { - "bio": "Bio", - "email": "E-post", - "fullname": "Kuvatav nimi", - "password_confirm": "Parooli kinnitamine", - "registration": "Registreerimine", - "validations": { - "password_confirmation_match": "peaks olema sama kui salasõna", - "password_confirmation_required": "ei saa jätta tühjaks", - "password_required": "ei saa jätta tühjaks", - "email_required": "ei saa jätta tühjaks", - "fullname_required": "ei saa jätta tühjaks", - "username_required": "ei saa jätta tühjaks" - }, - "fullname_placeholder": "Näiteks Lain Iwakura", - "username_placeholder": "Näiteks lain", - "new_captcha": "Vajuta pildile, et saada uus captcha", - "captcha": "CAPTCHA", - "token": "Kutse võti" - }, - "settings": { - "attachments": "Manused", - "avatar": "Profiilipilt", - "bio": "Bio", - "current_avatar": "Sinu praegune profiilipilt", - "current_profile_banner": "Praegune profiilibänner", - "filtering": "Sisu filtreerimine", - "filtering_explanation": "Kõiki staatuseid, mis sisaldavad neid sõnu, ei kuvata. Üks sõna reale", - "hide_attachments_in_convo": "Peida manused vastlustes", - "hide_attachments_in_tl": "Peida manused ajajoonel", - "name": "Nimi", - "name_bio": "Nimi ja Bio", - "nsfw_clickthrough": "Peida tööks-mittesobivad(NSFW) manuste hiireklõpsu taha", - "profile_background": "Profiilitaust", - "profile_banner": "Profiilibänner", - "set_new_avatar": "Vali uus profiilipilt", - "set_new_profile_background": "Vali uus profiilitaust", - "set_new_profile_banner": "Vali uus profiilibänner", - "settings": "Sätted", - "theme": "Teema", - "user_settings": "Kasutaja sätted", - "subject_line_noop": "Ära kopeeri", - "subject_line_mastodon": "Nagu mastodon: kopeeri nagu on", - "subject_line_email": "Nagu e-post: \"vs: pealkiri\"", - "subject_line_behavior": "Kopeeri pealkiri vastamisel", - "subject_input_always_show": "Alati kuva pealkirja välja", - "minimal_scopes_mode": "Peida postituse nähtavussätted", - "scope_copy": "Kopeeri nähtavussätted vastamisel (Privaatsed on alati kopeeritud)", - "security_tab": "Turvalisus", - "search_user_to_mute": "Otsi, keda soovid vaigistada", - "search_user_to_block": "Otsi, keda soovid blokeerida", - "saving_ok": "Sätted salvestatud", - "saving_err": "Sätete salvestamine ebaõnnestus", - "autohide_floating_post_button": "Automaatselt peida uue postituse nupp (mobiilil)", - "reply_visibility_self": "Näita ainult vastuseid, mis on suunatud mulle", - "reply_visibility_following": "Näita ainult vastuseid, mis on suunatud mulle või kasutajatele, keda jälgin", - "reply_visibility_all": "Näita kõiki vastuseid", - "replies_in_timeline": "Vastused ajajoonel", - "radii_help": "Liidese ümardamine (pikslites)", - "profile_tab": "Profiil", - "presets": "Salvestatud sätted", - "pause_on_unfocused": "Peata reaalajas voog kui leht pole fookuses", - "panelRadius": "Paneelid", - "revoke_token": "Keela", - "valid_until": "Kehtiv kuni", - "refresh_token": "Värskendustoken", - "token": "Token", - "oauth_tokens": "OAuth tokenid", - "show_moderator_badge": "Näita Moderaator silti mu profiilil", - "show_admin_badge": "Näita Admin silti mu profiilil", - "hide_followers_count_description": "Ära näita minu jälgijate arvu", - "hide_follows_count_description": "Ära näita minu jälgimiste arvu", - "hide_followers_description": "Ära näita minu jälgijaid", - "hide_follows_description": "Ära näita minu jälgimisi", - "no_mutes": "Vaigistusi pole", - "no_blocks": "Blokeeringuid pole", - "no_rich_text_description": "Muuda kõik postitused lihttekstiks", - "notification_visibility_emoji_reactions": "Reaktsioonid", - "notification_visibility_moves": "Kasutaja kolimised", - "notification_visibility_repeats": "Taaspostitused", - "notification_visibility_mentions": "Mainimised", - "notification_visibility_likes": "Lemmikud", - "notification_visibility_follows": "Jälgimised", - "notification_visibility": "Milliseid teateid kuvatakse", - "new_password": "Uus salasõna", - "new_email": "Uus e-post", - "use_contain_fit": "Näita eelvaadetes täis suuruses pilte", - "play_videos_in_modal": "Näita videoid eraldi raamis", - "mutes_tab": "Vaigistused", - "loop_video_silent_only": "Loop videod, millel pole heli (nt. Mastodoni \"gifid\")", - "loop_video": "Loop videod", - "lock_account_description": "Piira oma konto ainult lubatud jälgijatele", - "links": "Lingid", - "limited_availability": "Pole Teie veebilehitsejas saadaval", - "invalid_theme_imported": "Valitud fail ei ole Pleroma kujundus. Kujundusele muudatusi ei tehtud.", - "interfaceLanguage": "Liidese keel", - "interface": "Liides", - "instance_default_simple": "(vaikimisi)", - "instance_default": "(vaikimisi: {value})", - "checkboxRadius": "Märkeruudud", - "inputRadius": "Sisestuskastid", - "import_theme": "Lae sätted", - "import_followers_from_a_csv_file": "Impordi jälgimised csv failist", - "import_blocks_from_a_csv_file": "Impordi blokeeringud csv failist", - "hide_filtered_statuses": "Peida filtreeritud staatused", - "hide_user_stats": "Peida kasutaja statistika (nt. jälgijate arv)", - "hide_post_stats": "Peida postituse statistika (nt. lemmikute arv)", - "use_one_click_nsfw": "Ava NSFW manused ühe klikiga", - "preload_images": "Piltide eellaadimine", - "hide_isp": "Peida instantsipõhine paneel", - "max_thumbnails": "Maksimaalne lubatud eelvaadete arv postituste kohta", - "hide_muted_posts": "Peida vaigistatud kasutajate postitused", - "general": "Üldine", - "foreground": "Esiplaan", - "accent": "Rõhk", - "follows_imported": "Jälgimised imporditud! Nende töötlemine võtab natuke aega.", - "follow_import_error": "Jälgimiste importimisel tekkis viga", - "follow_import": "Impordi jälgimised", - "follow_export_button": "Ekspordi oma jälgimised csv failiks", - "follow_export": "Ekspordi jälgimised", - "export_theme": "Salvesta sätted", - "emoji_reactions_on_timeline": "Näita reaktsioone ajajoonel", - "pad_emoji": "Lisa emotikonidele tühikud ette ja järgi neid menüüst valides", - "avatar_size_instruction": "Profiilipildi soovitatud minimaalne suurus on 150x150 pikslit.", - "domain_mutes": "Domeenid", - "discoverable": "Luba selle konto ilmumine otsingutulemustes ning muudes teenustes", - "delete_account_instructions": "Konto kustutamise kinnitamiseks sisestage oma salasõna.", - "delete_account_error": "Teie konto kustutamisel tekkis viga. Kui see jätkub, palun võtke kontakti administraatoriga.", - "delete_account_description": "Jäädavalt kustuta oma andmed ja konto.", - "delete_account": "Kustuta konto", - "default_vis": "Vaikimisi nähtavus", - "data_import_export_tab": "Andmete import / eksport", - "current_password": "Praegune salasõna", - "confirm_new_password": "Kinnita uus salasõna", - "composing": "Koostamine", - "collapse_subject": "Peida postituste pealkirjad", - "changed_password": "Salasõna edukalt muudetud!", - "change_password_error": "Esines viga salasõna muutmisel.", - "change_password": "Muuda salasõna", - "changed_email": "E-post edukalt muudetud!", - "change_email_error": "Esines viga e-posti muutmisel.", - "change_email": "Muuda e-posti", - "cRed": "Punane (Tühista)", - "cOrange": "Oranž (Lisa lemmikuks)", - "cGreen": "Roheline (Taaspostita)", - "cBlue": "Sinine (Vasta, jälgi)", - "btnRadius": "Nupud", - "blocks_tab": "Blokeeringud", - "blocks_imported": "Blokeeringud imporditud! Nende töötlemine võtab natuke aega.", - "block_import_error": "Blokeeringute importimisel esines viga", - "block_import": "Blokeeringute import", - "block_export_button": "Ekspordi oma blokeeringud csv failiks", - "block_export": "Blokeeringute eksport", - "background": "Taust", - "avatarRadius": "Profiilipildid", - "avatarAltRadius": "Profiilipildid (Teated)", - "attachmentRadius": "Manused", - "allow_following_move": "Luba automaatjälgimine kui jälgitav konto kolib", - "mfa": { - "verify": { - "desc": "Et lubada kaheastmelist autentimist, sisestage kood oma äpist:" - }, - "scan": { - "desc": "Kasutades oma kaheastmelise autentimise äppi, skännige see QR kood või sisestage tekstiline võti:", - "secret_code": "Võti", - "title": "Skänni" - }, - "authentication_methods": "Autentimismeetodid", - "recovery_codes_warning": "Kirjutage need koodid üles ning hoidke need kindlas kohas. Kui Te kaotate ligipääsu oma kaheastmelise autentimise äppile ning nendele koodidele, ei ole Teil võimalik oma kontosse sisse logida.", - "waiting_a_recovery_codes": "Laen taastekoode…", - "recovery_codes": "Taastekoodid.", - "warning_of_generate_new_codes": "Kui Te loote uued taastekoodid, Teie vanad koodid ei tööta enam.", - "generate_new_recovery_codes": "Loo uued taastekoodid", - "title": "Kaheastmeline autentimine", - "confirm_and_enable": "Kinnita & luba OTP", - "wait_pre_setup_otp": "sean üles OTP", - "setup_otp": "Sea üles OTP", - "otp": "OTP" - }, - "enter_current_password_to_confirm": "Sisetage isiku tõestamiseks oma salasõna", - "security": "Turvalisus", - "app_name": "Rakenduse nimi", - "style": { - "switcher": { - "help": { - "snapshot_present": "Kujunduse eelvaade on laetud, nii et kõik väärtused on üle kirjutatud. Te saate laadida ka kujunduse päris sisu.", - "older_version_imported": "Teie imporditud fail oli loodud vanemas versioonis.", - "future_version_imported": "Teie imporditud fail oli loodud uuemas versioonis.", - "v2_imported": "Teie imporditud fail oli vanema versiooni jaoks. Me üritame hoida ühilduvust, kuid ikkagi võib esineda erinevusi.", - "upgraded_from_v2": "PleromaFE-d uuendati, teie kujundus võib välja näha natuke erinev, kui mäletate." + "about": { + "mrf": { + "federation": "Föderatsioon", + "keyword": { + "ftl_removal": "\"Kogu teatud võrgu\" ajajoonelt eemaldamine", + "is_replaced_by": "→", + "keyword_policies": "Võtmesõna poliitikad", + "reject": "Lükka tagasi", + "replace": "Vaheta" + }, + "mrf_policies": "Lubatud MRF poliitikad", + "mrf_policies_desc": "MRF poliitikad mõjutavad selle instansi föderatsiooni käitumist. Järgmised poliitikad on lubatud:", + "simple": { + "accept": "Luba", + "accept_desc": "See instants lubab sõnumeid ainult nendest instantsidest:", + "ftl_removal": "\"Kogu teatud võrgu\" ajajoonelt eemaldamine", + "ftl_removal_desc": "See instants eemaldab postitused nendelt instantsidest \"Kogu teatud võrgu\" ajajoonelt:", + "media_nsfw": "Meedia määratakse sensitiivseks", + "media_nsfw_desc": "See instants määrab nendest instantsidest postituste meedia sensitiivseks:", + "media_removal": "Meedia eemaldamine", + "media_removal_desc": "See instants eemaldab meedia postitustelt nendest instantsidest:", + "quarantine": "Karantiini", + "quarantine_desc": "See instants saadab ainult avalikke postitusi järgmistele instantsidele:", + "reject": "Keela", + "reject_desc": "See instants ei luba sõnumeid nendest instantsidest:", + "simple_policies": "Instansi-omased poliitikad" + } }, - "use_source": "Uus versioon", - "use_snapshot": "Vana versioon", - "keep_as_is": "Jäta nii, nagu on", - "load_theme": "Lae kujundus", - "clear_opacity": "Tühista läbipaistvus", - "clear_all": "Tühista kõik", - "reset": "Taasta algne", - "keep_fonts": "Jäta fondid", - "keep_roundness": "Jäta ümarus", - "keep_opacity": "Jäta läbipaistvus", - "keep_shadows": "Jäta varjud", - "keep_color": "Jäta värvid" - } + "staff": "Personal" }, - "enable_web_push_notifications": "Luba veebipõhised push-teated", - "notification_blocks": "Kasutaja blokeerimisel ei tule neilt enam teateid ning nendele teilt ka mitte.", - "notification_setting_privacy_option": "Peida saatja ning sisu push-teadetelt", - "notifications": "Teated", - "notification_mutes": "Kui soovid mõnelt kasutajalt mitte teateid saada, kasuta vaigistust.", - "notification_setting_privacy": "Privaatsus", - "notification_setting_filters": "Filtrid", - "greentext": "Meemi nooled", - "fun": "Naljad", - "values": { - "true": "jah", - "false": "ei" + "domain_mute_card": { + "mute": "Vaigista", + "mute_progress": "Vaigistan…", + "unmute": "Ära vaigista", + "unmute_progress": "Eemaldan vaigistuse…" }, - "upload_a_photo": "Lae üles foto", - "type_domains_to_mute": "Trüki siia domeene, mida vaigistada", - "tooltipRadius": "Vihjed/hoiatused", - "theme_help_v2_1": "Te saate ka mõndade komponentide värvust ning läbipaistvust üle kirjutada vajutades ruudule. Kasuta \"Tühista kõik\" nuppu, et need tühistada.", - "theme_help": "Kasuta hex värvikoode (#rrggbb) oma kujunduse isikupärastamiseks.", - "text": "Tekst", - "useStreamingApiWarning": "(Pole soovituslik, eksperimentaalne, on teada, et jätab postitusi vahele)", - "useStreamingApi": "Saa postitusi ning teateid reaalajas", - "user_mutes": "Kasutajad", - "streaming": "Luba uute postituste automaatvoog kui oled lehekülje alguses", - "stop_gifs": "Mängi GIFid hiirega ületades", - "post_status_content_type": "Postituse sisutüüp" - }, - "timeline": { - "conversation": "Vestlus", - "error_fetching": "Viga uuenduste laadimisel", - "load_older": "Kuva vanemaid staatuseid", - "show_new": "Näita uusi", - "up_to_date": "Uuendatud" - }, - "user_card": { - "block": "Blokeeri", - "blocked": "Blokeeritud!", - "follow": "Jälgi", - "followees": "Jälgitavaid", - "followers": "Jälgijaid", - "following": "Jälgin!", - "follows_you": "Jälgib sind!", - "mute": "Vaigista", - "muted": "Vaigistatud", - "per_day": "päevas", - "statuses": "Staatuseid" - }, - "about": { - "mrf": { - "mrf_policies_desc": "MRF poliitikad mõjutavad selle instansi föderatsiooni käitumist. Järgmised poliitikad on lubatud:", - "simple": { - "media_nsfw_desc": "See instants määrab nendest instantsidest postituste meedia sensitiivseks:", - "media_nsfw": "Meedia määratakse sensitiivseks", - "media_removal_desc": "See instants eemaldab meedia postitustelt nendest instantsidest:", - "media_removal": "Meedia eemaldamine", - "ftl_removal_desc": "See instants eemaldab postitused nendelt instantsidest \"Kogu teatud võrgu\" ajajoonelt:", - "ftl_removal": "\"Kogu teatud võrgu\" ajajoonelt eemaldamine", - "quarantine_desc": "See instants saadab ainult avalikke postitusi järgmistele instantsidele:", - "quarantine": "Karantiini", - "reject_desc": "See instants ei luba sõnumeid nendest instantsidest:", - "reject": "Keela", - "accept_desc": "See instants lubab sõnumeid ainult nendest instantsidest:", - "accept": "Luba", - "simple_policies": "Instansi-omased poliitikad" - }, - "mrf_policies": "Lubatud MRF poliitikad", - "keyword": { - "is_replaced_by": "→", - "replace": "Vaheta", - "reject": "Lükka tagasi", - "ftl_removal": "\"Kogu teatud võrgu\" ajajoonelt eemaldamine", - "keyword_policies": "Võtmesõna poliitikad" - }, - "federation": "Föderatsioon" + "emoji": { + "add_emoji": "Lisa emotikon", + "custom": "Kohandatud emotikonid", + "emoji": "Emotikonid", + "keep_open": "Hoia valija lahti", + "load_all": "Laen kõik {emojiAmount} emotikoni", + "load_all_hint": "Laadisin esimesed {saneAmount} emotikoni, kõike laadides võib esineda probleeme jõudlusega.", + "search_emoji": "Otsi emotikone", + "stickers": "Kleepsud", + "unicode": "Unicode emotikonid" }, - "staff": "Personal" - }, - "selectable_list": { - "select_all": "Vali kõik" - }, - "remote_user_resolver": { - "error": "Ei leitud.", - "searching_for": "Otsin", - "remote_user_resolver": "Kaugkasutaja leidja" - }, - "interactions": { - "load_older": "Laadi vanemad interaktsioonid", - "moves": "Kasutaja kolimised", - "follows": "Uued jälgimised", - "favs_repeats": "Taaspostitused ja lemmikud" - }, - "emoji": { - "load_all": "Laen kõik {emojiAmount} emotikoni", - "load_all_hint": "Laadisin esimesed {saneAmount} emotikoni, kõike laadides võib esineda probleeme jõudlusega.", - "unicode": "Unicode emotikonid", - "custom": "Kohandatud emotikonid", - "add_emoji": "Lisa emotikon", - "search_emoji": "Otsi emotikone", - "keep_open": "Hoia valija lahti", - "emoji": "Emotikonid", - "stickers": "Kleepsud" - }, - "polls": { - "not_enough_options": "Liiga vähe unikaalseid valikuid hääletuses", - "expired": "Hääletus lõppes {0} tagasi", - "expires_in": "Hääletus lõppeb {0}", - "expiry": "Hääletuse vanus", - "multiple_choices": "Mitu vastust", - "single_choice": "Üks vastus", - "type": "Hääletuse tüüp", - "vote": "Hääleta", - "votes": "häält", - "option": "Valik", - "add_option": "Lisa valik", - "add_poll": "Lisa küsitlus" - }, - "media_modal": { - "next": "Järgmine", - "previous": "Eelmine" - }, - "importer": { - "error": "Faili importimisel tekkis viga.", - "success": "Import õnnestus.", - "submit": "Esita" - }, - "image_cropper": { - "cancel": "Tühista", - "save_without_cropping": "Salvesta muudatusteta", - "save": "Salvesta", - "crop_picture": "Modifitseeri pilti" - }, - "features_panel": { - "who_to_follow": "Keda jälgida", - "title": "Featuurid", - "text_limit": "Tekstilimiit", - "scope_options": "Ulatuse valikud", - "media_proxy": "Meedia proksi", - "gopher": "Gopher", - "chat": "Vestlus" - }, - "exporter": { - "processing": "Töötlemine, Teilt küsitakse varsti faili allalaadimist", - "export": "Ekspordi" - }, - "domain_mute_card": { - "unmute_progress": "Eemaldan vaigistuse…", - "unmute": "Ära vaigista", - "mute_progress": "Vaigistan…", - "mute": "Vaigista" - }, - "chat": { - "title": "Vestlus" - } -} + "exporter": { + "export": "Ekspordi", + "processing": "Töötlemine, Teilt küsitakse varsti faili allalaadimist" + }, + "features_panel": { + "media_proxy": "Meedia proksi", + "scope_options": "Ulatuse valikud", + "text_limit": "Tekstilimiit", + "title": "Featuurid", + "who_to_follow": "Keda jälgida" + }, + "finder": { + "error_fetching_user": "Viga kasutaja leidmisel", + "find_user": "Otsi kasutajaid" + }, + "general": { + "apply": "Rakenda", + "cancel": "Tühista", + "confirm": "Kinnita", + "disable": "Keela", + "dismiss": "Olgu", + "enable": "Luba", + "generic_error": "Esines viga", + "more": "Rohkem", + "optional": "valikuline", + "show_less": "Kuva vähem", + "show_more": "Kuva rohkem", + "submit": "Postita", + "verify": "Kinnita" + }, + "image_cropper": { + "cancel": "Tühista", + "crop_picture": "Modifitseeri pilti", + "save": "Salvesta", + "save_without_cropping": "Salvesta muudatusteta" + }, + "importer": { + "error": "Faili importimisel tekkis viga.", + "submit": "Esita", + "success": "Import õnnestus." + }, + "interactions": { + "favs_repeats": "Taaspostitused ja lemmikud", + "follows": "Uued jälgimised", + "load_older": "Laadi vanemad interaktsioonid", + "moves": "Kasutaja kolimised" + }, + "login": { + "authentication_code": "Autentimiskood", + "description": "Logi sisse OAuthiga", + "enter_recovery_code": "Sisesta taastekood", + "enter_two_factor_code": "Sisesta kaheastmelise autentimise kood", + "heading": { + "recovery": "Kaheastmelise autentimise taaste", + "totp": "Kaheastmeline autentimine" + }, + "hint": "Logi sisse, et liituda vestlusega", + "login": "Logi sisse", + "logout": "Logi välja", + "password": "Parool", + "placeholder": "nt lain", + "recovery_code": "Taastekood", + "register": "Registreeru", + "username": "Kasutajanimi" + }, + "media_modal": { + "next": "Järgmine", + "previous": "Eelmine" + }, + "nav": { + "about": "Meist", + "administration": "Administreerimine", + "back": "Tagasi", + "dms": "Privaatsõnumid", + "friend_requests": "Jägimistaotlused", + "interactions": "Interaktsioonid", + "mentions": "Mainimised", + "preferences": "Eelistused", + "public_tl": "Avalik Ajajoon", + "search": "Otsing", + "timeline": "Ajajoon", + "twkn": "Kogu Teadaolev Võrgustik", + "user_search": "Kasutajaotsing", + "who_to_follow": "Keda jälgida" + }, + "notifications": { + "broken_favorite": "Tundmatu staatus, otsin…", + "favorited_you": "lisas su staatuse lemmikuks", + "follow_request": "soovib Teid jälgida", + "followed_you": "alustas sinu jälgimist", + "load_older": "Laadi vanemad teated", + "migrated_to": "kolis", + "no_more_notifications": "Rohkem teateid ei ole", + "notifications": "Teated", + "reacted_with": "reageeris {0}", + "read": "Loe!", + "repeated_you": "taaspostitas su staatuse" + }, + "polls": { + "add_option": "Lisa valik", + "add_poll": "Lisa küsitlus", + "expired": "Hääletus lõppes {0} tagasi", + "expires_in": "Hääletus lõppeb {0}", + "expiry": "Hääletuse vanus", + "multiple_choices": "Mitu vastust", + "not_enough_options": "Liiga vähe unikaalseid valikuid hääletuses", + "option": "Valik", + "single_choice": "Üks vastus", + "type": "Hääletuse tüüp", + "vote": "Hääleta", + "votes": "häält" + }, + "post_status": { + "account_not_locked_warning": "Teie konto ei ole {0}. Kõik võivad Teid jälgida, et näha Teie ainult-jälgijatele postitusi.", + "account_not_locked_warning_link": "lukus", + "attachments_sensitive": "Märgi manused sensitiivseks", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Lihttekst" + }, + "content_warning": "Pealkiri (valikuline)", + "default": "Just sõitsin elektrirongiga Tallinnast Pääskülla.", + "direct_warning_to_all": "See postitus on nähtav kõikidele mainitud kasutajatele.", + "direct_warning_to_first_only": "See postitus on nähtav ainult kirja alguses mainitud kasutajatele.", + "new_status": "Postita uus staatus", + "posting": "Postitan", + "scope": { + "direct": "Privaatne - Postita ainult mainitud kasutajatele", + "private": "Jälgijatele - Postita ainult jälgijatele", + "public": "Avalil - Postita avalikele ajajoontele", + "unlisted": "Peidetud - Ära postita avalikele ajajoontele" + }, + "scope_notice": { + "private": "See postitus on nähtav ainult Teie jälgijatele", + "public": "See postitus on nähtav kõigile", + "unlisted": "See postitus ei ole nähtav avalikul ega kogu võrgu ajajoonel" + } + }, + "registration": { + "bio": "Bio", + "captcha": "CAPTCHA", + "email": "E-post", + "fullname": "Kuvatav nimi", + "fullname_placeholder": "Näiteks Lain Iwakura", + "new_captcha": "Vajuta pildile, et saada uus captcha", + "password_confirm": "Parooli kinnitamine", + "registration": "Registreerimine", + "token": "Kutse võti", + "username_placeholder": "Näiteks lain", + "validations": { + "email_required": "ei saa jätta tühjaks", + "fullname_required": "ei saa jätta tühjaks", + "password_confirmation_match": "peaks olema sama kui salasõna", + "password_confirmation_required": "ei saa jätta tühjaks", + "password_required": "ei saa jätta tühjaks", + "username_required": "ei saa jätta tühjaks" + } + }, + "remote_user_resolver": { + "error": "Ei leitud.", + "remote_user_resolver": "Kaugkasutaja leidja", + "searching_for": "Otsin" + }, + "selectable_list": { + "select_all": "Vali kõik" + }, + "settings": { + "accent": "Rõhk", + "allow_following_move": "Luba automaatjälgimine kui jälgitav konto kolib", + "app_name": "Rakenduse nimi", + "attachmentRadius": "Manused", + "attachments": "Manused", + "autohide_floating_post_button": "Automaatselt peida uue postituse nupp (mobiilil)", + "avatar": "Profiilipilt", + "avatarAltRadius": "Profiilipildid (Teated)", + "avatarRadius": "Profiilipildid", + "avatar_size_instruction": "Profiilipildi soovitatud minimaalne suurus on 150x150 pikslit.", + "background": "Taust", + "bio": "Bio", + "block_export": "Blokeeringute eksport", + "block_export_button": "Ekspordi oma blokeeringud csv failiks", + "block_import": "Blokeeringute import", + "block_import_error": "Blokeeringute importimisel esines viga", + "blocks_imported": "Blokeeringud imporditud! Nende töötlemine võtab natuke aega.", + "blocks_tab": "Blokeeringud", + "btnRadius": "Nupud", + "cBlue": "Sinine (Vasta, jälgi)", + "cGreen": "Roheline (Taaspostita)", + "cOrange": "Oranž (Lisa lemmikuks)", + "cRed": "Punane (Tühista)", + "change_email": "Muuda e-posti", + "change_email_error": "Esines viga e-posti muutmisel.", + "change_password": "Muuda salasõna", + "change_password_error": "Esines viga salasõna muutmisel.", + "changed_email": "E-post edukalt muudetud!", + "changed_password": "Salasõna edukalt muudetud!", + "checkboxRadius": "Märkeruudud", + "collapse_subject": "Peida postituste pealkirjad", + "composing": "Koostamine", + "confirm_new_password": "Kinnita uus salasõna", + "current_avatar": "Sinu praegune profiilipilt", + "current_password": "Praegune salasõna", + "data_import_export_tab": "Andmete import / eksport", + "default_vis": "Vaikimisi nähtavus", + "delete_account": "Kustuta konto", + "delete_account_description": "Jäädavalt kustuta oma andmed ja konto.", + "delete_account_error": "Teie konto kustutamisel tekkis viga. Kui see jätkub, palun võtke kontakti administraatoriga.", + "delete_account_instructions": "Konto kustutamise kinnitamiseks sisestage oma salasõna.", + "discoverable": "Luba selle konto ilmumine otsingutulemustes ning muudes teenustes", + "domain_mutes": "Domeenid", + "emoji_reactions_on_timeline": "Näita reaktsioone ajajoonel", + "enable_web_push_notifications": "Luba veebipõhised push-teated", + "enter_current_password_to_confirm": "Sisetage isiku tõestamiseks oma salasõna", + "export_theme": "Salvesta sätted", + "filtering": "Sisu filtreerimine", + "filtering_explanation": "Kõiki staatuseid, mis sisaldavad neid sõnu, ei kuvata. Üks sõna reale", + "follow_export": "Ekspordi jälgimised", + "follow_export_button": "Ekspordi oma jälgimised csv failiks", + "follow_import": "Impordi jälgimised", + "follow_import_error": "Jälgimiste importimisel tekkis viga", + "follows_imported": "Jälgimised imporditud! Nende töötlemine võtab natuke aega.", + "foreground": "Esiplaan", + "fun": "Naljad", + "general": "Üldine", + "greentext": "Meemi nooled", + "hide_attachments_in_convo": "Peida manused vastlustes", + "hide_attachments_in_tl": "Peida manused ajajoonel", + "hide_filtered_statuses": "Peida filtreeritud staatused", + "hide_followers_count_description": "Ära näita minu jälgijate arvu", + "hide_followers_description": "Ära näita minu jälgijaid", + "hide_follows_count_description": "Ära näita minu jälgimiste arvu", + "hide_follows_description": "Ära näita minu jälgimisi", + "hide_isp": "Peida instantsipõhine paneel", + "hide_muted_posts": "Peida vaigistatud kasutajate postitused", + "hide_post_stats": "Peida postituse statistika (nt. lemmikute arv)", + "hide_user_stats": "Peida kasutaja statistika (nt. jälgijate arv)", + "import_blocks_from_a_csv_file": "Impordi blokeeringud csv failist", + "import_followers_from_a_csv_file": "Impordi jälgimised csv failist", + "import_theme": "Lae sätted", + "inputRadius": "Sisestuskastid", + "instance_default": "(vaikimisi: {value})", + "instance_default_simple": "(vaikimisi)", + "interface": "Liides", + "interfaceLanguage": "Liidese keel", + "invalid_theme_imported": "Valitud fail ei ole Pleroma kujundus. Kujundusele muudatusi ei tehtud.", + "limited_availability": "Pole Teie veebilehitsejas saadaval", + "links": "Lingid", + "lock_account_description": "Piira oma konto ainult lubatud jälgijatele", + "loop_video": "Loop videod", + "loop_video_silent_only": "Loop videod, millel pole heli (nt. Mastodoni \"gifid\")", + "max_thumbnails": "Maksimaalne lubatud eelvaadete arv postituste kohta", + "mfa": { + "authentication_methods": "Autentimismeetodid", + "confirm_and_enable": "Kinnita & luba OTP", + "generate_new_recovery_codes": "Loo uued taastekoodid", + "otp": "OTP", + "recovery_codes": "Taastekoodid.", + "recovery_codes_warning": "Kirjutage need koodid üles ning hoidke need kindlas kohas. Kui Te kaotate ligipääsu oma kaheastmelise autentimise äppile ning nendele koodidele, ei ole Teil võimalik oma kontosse sisse logida.", + "scan": { + "desc": "Kasutades oma kaheastmelise autentimise äppi, skännige see QR kood või sisestage tekstiline võti:", + "secret_code": "Võti", + "title": "Skänni" + }, + "setup_otp": "Sea üles OTP", + "title": "Kaheastmeline autentimine", + "verify": { + "desc": "Et lubada kaheastmelist autentimist, sisestage kood oma äpist:" + }, + "wait_pre_setup_otp": "sean üles OTP", + "waiting_a_recovery_codes": "Laen taastekoode…", + "warning_of_generate_new_codes": "Kui Te loote uued taastekoodid, Teie vanad koodid ei tööta enam." + }, + "minimal_scopes_mode": "Peida postituse nähtavussätted", + "mutes_tab": "Vaigistused", + "name": "Nimi", + "name_bio": "Nimi ja Bio", + "new_email": "Uus e-post", + "new_password": "Uus salasõna", + "no_blocks": "Blokeeringuid pole", + "no_mutes": "Vaigistusi pole", + "no_rich_text_description": "Muuda kõik postitused lihttekstiks", + "notification_blocks": "Kasutaja blokeerimisel ei tule neilt enam teateid ning nendele teilt ka mitte.", + "notification_mutes": "Kui soovid mõnelt kasutajalt mitte teateid saada, kasuta vaigistust.", + "notification_setting_filters": "Filtrid", + "notification_setting_privacy": "Privaatsus", + "notification_visibility": "Milliseid teateid kuvatakse", + "notification_visibility_emoji_reactions": "Reaktsioonid", + "notification_visibility_follows": "Jälgimised", + "notification_visibility_likes": "Lemmikud", + "notification_visibility_mentions": "Mainimised", + "notification_visibility_moves": "Kasutaja kolimised", + "notification_visibility_repeats": "Taaspostitused", + "notifications": "Teated", + "nsfw_clickthrough": "Peida tööks-mittesobivad(NSFW) manuste hiireklõpsu taha", + "oauth_tokens": "OAuth tokenid", + "pad_emoji": "Lisa emotikonidele tühikud ette ja järgi neid menüüst valides", + "panelRadius": "Paneelid", + "pause_on_unfocused": "Peata reaalajas voog kui leht pole fookuses", + "play_videos_in_modal": "Näita videoid eraldi raamis", + "post_status_content_type": "Postituse sisutüüp", + "preload_images": "Piltide eellaadimine", + "presets": "Salvestatud sätted", + "profile_background": "Profiilitaust", + "profile_banner": "Profiilibänner", + "profile_tab": "Profiil", + "radii_help": "Liidese ümardamine (pikslites)", + "refresh_token": "Värskendustoken", + "replies_in_timeline": "Vastused ajajoonel", + "reply_visibility_all": "Näita kõiki vastuseid", + "reply_visibility_following": "Näita ainult vastuseid, mis on suunatud mulle või kasutajatele, keda jälgin", + "reply_visibility_self": "Näita ainult vastuseid, mis on suunatud mulle", + "revoke_token": "Keela", + "saving_err": "Sätete salvestamine ebaõnnestus", + "saving_ok": "Sätted salvestatud", + "scope_copy": "Kopeeri nähtavussätted vastamisel (Privaatsed on alati kopeeritud)", + "search_user_to_block": "Otsi, keda soovid blokeerida", + "search_user_to_mute": "Otsi, keda soovid vaigistada", + "security": "Turvalisus", + "security_tab": "Turvalisus", + "set_new_avatar": "Vali uus profiilipilt", + "set_new_profile_background": "Vali uus profiilitaust", + "set_new_profile_banner": "Vali uus profiilibänner", + "settings": "Sätted", + "show_admin_badge": "Näita Admin silti mu profiilil", + "show_moderator_badge": "Näita Moderaator silti mu profiilil", + "stop_gifs": "Mängi GIFid hiirega ületades", + "streaming": "Luba uute postituste automaatvoog kui oled lehekülje alguses", + "style": { + "switcher": { + "clear_all": "Tühista kõik", + "clear_opacity": "Tühista läbipaistvus", + "help": { + "future_version_imported": "Teie imporditud fail oli loodud uuemas versioonis.", + "older_version_imported": "Teie imporditud fail oli loodud vanemas versioonis.", + "snapshot_present": "Kujunduse eelvaade on laetud, nii et kõik väärtused on üle kirjutatud. Te saate laadida ka kujunduse päris sisu.", + "upgraded_from_v2": "PleromaFE-d uuendati, teie kujundus võib välja näha natuke erinev, kui mäletate.", + "v2_imported": "Teie imporditud fail oli vanema versiooni jaoks. Me üritame hoida ühilduvust, kuid ikkagi võib esineda erinevusi." + }, + "keep_as_is": "Jäta nii, nagu on", + "keep_color": "Jäta värvid", + "keep_fonts": "Jäta fondid", + "keep_opacity": "Jäta läbipaistvus", + "keep_roundness": "Jäta ümarus", + "keep_shadows": "Jäta varjud", + "load_theme": "Lae kujundus", + "reset": "Taasta algne", + "use_snapshot": "Vana versioon", + "use_source": "Uus versioon" + } + }, + "subject_input_always_show": "Alati kuva pealkirja välja", + "subject_line_behavior": "Kopeeri pealkiri vastamisel", + "subject_line_email": "Nagu e-post: \"vs: pealkiri\"", + "subject_line_mastodon": "Nagu mastodon: kopeeri nagu on", + "subject_line_noop": "Ära kopeeri", + "text": "Tekst", + "theme": "Teema", + "theme_help": "Kasuta hex värvikoode (#rrggbb) oma kujunduse isikupärastamiseks.", + "theme_help_v2_1": "Te saate ka mõndade komponentide värvust ning läbipaistvust üle kirjutada vajutades ruudule. Kasuta \"Tühista kõik\" nuppu, et need tühistada.", + "token": "Token", + "tooltipRadius": "Vihjed/hoiatused", + "type_domains_to_mute": "Trüki siia domeene, mida vaigistada", + "upload_a_photo": "Lae üles foto", + "useStreamingApi": "Saa postitusi ning teateid reaalajas", + "useStreamingApiWarning": "(Pole soovituslik, eksperimentaalne, on teada, et jätab postitusi vahele)", + "use_contain_fit": "Näita eelvaadetes täis suuruses pilte", + "use_one_click_nsfw": "Ava NSFW manused ühe klikiga", + "user_mutes": "Kasutajad", + "user_settings": "Kasutaja sätted", + "valid_until": "Kehtiv kuni", + "values": { + "false": "ei", + "true": "jah" + } + }, + "timeline": { + "conversation": "Vestlus", + "load_older": "Kuva vanemaid staatuseid", + "show_new": "Näita uusi", + "up_to_date": "Uuendatud" + }, + "user_card": { + "block": "Blokeeri", + "blocked": "Blokeeritud!", + "follow": "Jälgi", + "followees": "Jälgitavaid", + "followers": "Jälgijaid", + "following": "Jälgin!", + "follows_you": "Jälgib sind!", + "mute": "Vaigista", + "muted": "Vaigistatud", + "per_day": "päevas", + "statuses": "Staatuseid" + } +} \ No newline at end of file diff --git a/src/i18n/eu.json b/src/i18n/eu.json index 7bd8ff08..1766e74c 100644 --- a/src/i18n/eu.json +++ b/src/i18n/eu.json @@ -1,721 +1,691 @@ { - "chat": { - "title": "Txata" - }, - "exporter": { - "export": "Esportatu", - "processing": "Prozesatzen, zure fitxategia deskargatzeko eskatuko zaizu laster" - }, - "features_panel": { - "chat": "Txata", - "gopher": "Ghoper", - "media_proxy": "Media proxy", - "scope_options": "Ikusgaitasun aukerak", - "text_limit": "Testu limitea", - "title": "Ezaugarriak", - "who_to_follow": "Nori jarraitu", - "pleroma_chat_messages": "Pleroma Txata", - "upload_limit": "Kargatzeko muga" - }, - "finder": { - "error_fetching_user": "Errorea erabiltzailea eskuratzen", - "find_user": "Bilatu erabiltzailea" - }, - "general": { - "apply": "Aplikatu", - "submit": "Bidali", - "more": "Gehiago", - "generic_error": "Errore bat gertatu da", - "optional": "Hautazkoa", - "show_more": "Gehiago erakutsi", - "show_less": "Gutxiago erakutsi", - "cancel": "Ezeztatu", - "disable": "Ezgaitu", - "enable": "Gaitu", - "confirm": "Baieztatu", - "verify": "Egiaztatu", - "peek": "Begiratu", - "close": "Itxi", - "dismiss": "Baztertu", - "retry": "Saiatu berriro", - "error_retry": "Saiatu berriro mesedez", - "loading": "Kargatzen…", - "role": { - "moderator": "Moderatzailea", - "admin": "Administratzailea" - }, - "flash_content": "Klik egin Flash edukia erakusteko Ruffle erabilita (esperimentala, baliteke ez ibiltzea).", - "flash_security": "Kontuan izan arriskutsua izan daitekeela, Flash edukia kode arbitrarioa baita.", - "flash_fail": "Ezin izan da Flash edukia kargatu. Ikusi kontsola xehetasunetarako." - }, - "image_cropper": { - "crop_picture": "Moztu argazkia", - "save": "Gorde", - "save_without_cropping": "Gorde moztu gabe", - "cancel": "Ezeztatu" - }, - "importer": { - "submit": "Bidali", - "success": "Ondo inportatu da.", - "error": "Errore bat gertatu da fitxategi hau inportatzerakoan." - }, - "login": { - "login": "Saioa hasi", - "description": "OAuth-ekin saioa hasi", - "logout": "Saioa itxi", - "password": "Pasahitza", - "placeholder": "adibidez Lain", - "register": "Erregistratu", - "username": "Erabiltzaile-izena", - "hint": "Hasi saioa eztabaidan parte-hartzeko", - "authentication_code": "Autentifikazio kodea", - "enter_recovery_code": "Sartu berreskuratze kodea", - "enter_two_factor_code": "Sartu bi-faktore kodea", - "recovery_code": "Berreskuratze kodea", - "heading": { - "totp": "Bi-faktore autentifikazioa", - "recovery": "Bi-faktore berreskuratzea" - } - }, - "media_modal": { - "previous": "Aurrekoa", - "next": "Hurrengoa" - }, - "nav": { - "about": "Honi buruz", - "administration": "Administrazioa", - "back": "Atzera", - "chat": "Txat lokala", - "friend_requests": "Jarraitzeko eskaerak", - "mentions": "Aipamenak", - "interactions": "Interakzioak", - "dms": "Zuzeneko mezuak", - "public_tl": "Denbora-lerro publikoa", - "timeline": "Denbora-lerroa", - "twkn": "Ezagutzen den Sarea", - "user_search": "Erabiltzailea Bilatu", - "search": "Bilatu", - "who_to_follow": "Nori jarraitu", - "preferences": "Hobespenak", - "chats": "Txatak", - "timelines": "Denbora-lerroak", - "bookmarks": "Laster-markak", - "home_timeline": "Denbora-lerro pertsonala" - }, - "notifications": { - "broken_favorite": "Egoera ezezaguna, bilatzen…", - "favorited_you": "zure mezua gogoko du", - "followed_you": "Zu jarraitzen zaitu", - "load_older": "Kargatu jakinarazpen zaharragoak", - "notifications": "Jakinarazpenak", - "read": "Irakurrita!", - "repeated_you": "zure mezua errepikatu du", - "no_more_notifications": "Ez dago jakinarazpen gehiago", - "reacted_with": "{0}kin erreakzionatu zuen", - "migrated_to": "hona migratua:", - "follow_request": "jarraitu nahi zaitu", - "error": "Errorea jakinarazpenak eskuratzean: {0}" - }, - "polls": { - "add_poll": "Inkesta gehitu", - "add_option": "Gehitu aukera", - "option": "Aukera", - "votes": "Bozkak", - "vote": "Bozka", - "type": "Inkesta mota", - "single_choice": "Aukera bakarra", - "multiple_choices": "Aukera anizkoitza", - "expiry": "Inkestaren iraupena", - "expires_in": "Inkesta {0} bukatzen da", - "expired": "Inkesta {0} bukatu zen", - "not_enough_options": "Aukera gutxiegi inkestan", - "votes_count": "{count} boto| {count} boto", - "people_voted_count": "Pertsona batek bozkatu du | {count} pertsonak bozkatu dute" - }, - "emoji": { - "stickers": "Pegatinak", - "emoji": "Emoji", - "keep_open": "Mantendu hautatzailea zabalik", - "search_emoji": "Bilatu emoji bat", - "add_emoji": "Emoji bat gehitu", - "custom": "Ohiko emojiak", - "unicode": "Unicode emojiak", - "load_all": "{emojiAmount} emoji guztiak kargatzen", - "load_all_hint": "Lehenengo {saneAmount} emojia kargatuta, emoji guztiak kargatzeak errendimendu arazoak sor ditzake." - }, - "stickers": { - "add_sticker": "Pegatina gehitu" - }, - "interactions": { - "favs_repeats": "Errepikapen eta gogokoak", - "follows": "Jarraitzaile berriak", - "load_older": "Kargatu elkarrekintza zaharragoak", - "moves": "Erabiltzailea migratuta" - }, - "post_status": { - "new_status": "Mezu berri bat idatzi", - "account_not_locked_warning": "Zure kontua ez dago {0}. Edozeinek jarraitzen hastearekin, zure mezuak irakur ditzake.", - "account_not_locked_warning_link": "Blokeatuta", - "attachments_sensitive": "Nabarmendu eranskinak hunkigarri gisa", - "content_type": { - "text/plain": "Testu arrunta", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Gaia (hautazkoa)", - "default": "Iadanik Los Angeles-en", - "direct_warning_to_all": "Mezu hau aipatutako erabiltzaile guztientzat ikusgai egongo da.", - "direct_warning_to_first_only": "Mezu hau ikusgai egongo da bakarrik hasieran aipatzen diren erabiltzaileei.", - "posting": "Argitaratzen", - "scope_notice": { - "public": "Mezu hau guztiontzat ikusgai izango da", - "private": "Mezu hau zure jarraitzaileek soilik ikusiko dute", - "unlisted": "Mezu hau ez da argitaratuko Denbora-lerro Publikoan ezta Ezagutzen den Sarean" - }, - "scope": { - "direct": "Zuzena: bidali aipatutako erabiltzaileei besterik ez", - "private": "Jarraitzaileentzako bakarrik: bidali jarraitzaileentzat bakarrik", - "public": "Publikoa: bistaratu denbora-lerro publikoetan", - "unlisted": "Zerrendatu gabea: ez bidali denbora-lerro publikoetara" - }, - "media_description_error": "Ezin izan da artxiboa eguneratu, saiatu berriro", - "preview": "Aurrebista", - "media_description": "Media deskribapena", - "preview_empty": "Hutsik", - "post": "Bidali", - "empty_status_error": "Ezin da argitaratu ezer idatzi gabe edo eranskinik gabe" - }, - "registration": { - "bio": "Biografia", - "email": "E-posta", - "fullname": "Erakutsi izena", - "password_confirm": "Pasahitza berretsi", - "registration": "Sortu kontua", - "token": "Gonbidapen txartela", - "captcha": "CAPTCHA", - "new_captcha": "Klikatu irudia captcha berri bat lortzeko", - "username_placeholder": "Adibidez lain", - "fullname_placeholder": "Adibidez Lain Iwakura", - "bio_placeholder": "Adidibez.\nKaixo, Lain naiz.\nFedibertsoa gustokoa dut eta euskeraz hitzegiten dut.", - "validations": { - "username_required": "Ezin da hutsik utzi", - "fullname_required": "Ezin da hutsik utzi", - "email_required": "Ezin da hutsik utzi", - "password_required": "Ezin da hutsik utzi", - "password_confirmation_required": "Ezin da hutsik utzi", - "password_confirmation_match": "Pasahitzaren berdina izan behar du" - }, - "reason": "Kontua sortzeko arrazoia", - "reason_placeholder": "Instantzia honek kontu berriak eskuz onartzen ditu.\nJakinarazi administrazioari zergatik erregistratu nahi duzun.", - "register": "Erregistratu" - }, - "selectable_list": { - "select_all": "Hautatu denak" - }, - "settings": { - "app_name": "App izena", - "security": "Segurtasuna", - "enter_current_password_to_confirm": "Sar ezazu zure egungo pasahitza zure identitatea baieztatzeko", - "mfa": { - "otp": "OTP", - "setup_otp": "OTP konfiguratu", - "wait_pre_setup_otp": "OTP aurredoitzen", - "confirm_and_enable": "Baieztatu eta gaitu OTP", - "title": "Bi-faktore autentifikazioa", - "generate_new_recovery_codes": "Sortu berreskuratze kode berriak", - "warning_of_generate_new_codes": "Berreskuratze kode berriak sortzean, zure berreskuratze kode zaharrak ez dute balioko.", - "recovery_codes": "Berreskuratze kodea.", - "waiting_a_recovery_codes": "Babes-kopia kodeak jasotzen…", - "recovery_codes_warning": "Idatzi edo gorde kodeak leku seguruan - bestela ez dituzu berriro ikusiko. Zure 2FA aplikaziorako sarbidea eta berreskuratze kodeak galduz gero, zure kontutik blokeatuta egongo zara.", - "authentication_methods": "Autentifikazio metodoa", - "scan": { - "title": "Eskaneatu", - "desc": "Zure bi-faktore aplikazioa erabiliz, eskaneatu QR kode hau edo idatzi testu-gakoa:", - "secret_code": "Giltza" - }, - "verify": { - "desc": "Bi-faktore autentifikazioa gaitzeko, sar ezazu bi-faktore kodea zure app-tik:" - } - }, - "attachmentRadius": "Eranskinak", - "attachments": "Eranskinak", - "avatar": "Avatarra", - "avatarAltRadius": "Abatarra (aipamenak)", - "avatarRadius": "Avatarrak", - "background": "Atzeko planoa", - "bio": "Biografia", - "block_export": "Blokeatu dituzunak esportatu", - "block_export_button": "Esportatu blokeatutakoak csv fitxategi batera", - "block_import": "Blokeatu dituzunak inportatu", - "block_import_error": "Errorea blokeatutakoak inportatzen", - "blocks_imported": "Blokeatutakoak inportaturik! Hauek prozesatzeak denbora hartuko du.", - "blocks_tab": "Blokeatutakoak", - "btnRadius": "Botoiak", - "cBlue": "Urdina (erantzun, jarraitu)", - "cGreen": "Berdea (Bertxiotu)", - "cOrange": "Laranja (Gogokoa)", - "cRed": "Gorria (ezeztatu)", - "change_password": "Pasahitza aldatu", - "change_password_error": "Arazao bat egon da zure pasahitza aldatzean.", - "changed_password": "Pasahitza ondo aldatu da!", - "collapse_subject": "Bildu gaia daukaten mezuak", - "composing": "Idazten", - "confirm_new_password": "Baieztatu pasahitz berria", - "current_avatar": "Zure uneko avatarra", - "current_password": "Indarrean dagoen pasahitza", - "current_profile_banner": "Zure profilaren banner-a", - "data_import_export_tab": "Datuak inportatu / esportatu", - "default_vis": "Lehenetsitako ikusgaitasunak", - "delete_account": "Ezabatu kontua", - "discoverable": "Baimendu zure kontua kanpo bilaketa-emaitzetan eta bestelako zerbitzuetan agertzea", - "delete_account_description": "Betirako ezabatu zure datuak eta desaktibatu kontua.", - "pad_emoji": "Zuriuneak gehitu emoji bat aukeratzen denean", - "delete_account_error": "Arazo bat gertatu da zure kontua ezabatzerakoan. Arazoa jarraitu eskero, administratzailearekin harremanetan jarri.", - "delete_account_instructions": "Idatzi zure pasahitza kontua ezabatzeko.", - "avatar_size_instruction": "Avatar irudien gomendatutako gutxieneko tamaina 150x150 pixel dira.", - "export_theme": "Gorde aurre-ezarpena", - "filtering": "Iragazten", - "filtering_explanation": "Hitz hauek dituzten mezu guztiak isilduak izango dira. Lerro bakoitzeko bat", - "follow_export": "Jarraitzen dituzunak esportatu", - "follow_export_button": "Esportatu zure jarraitzaileak csv fitxategi batean", - "follow_import": "Jarraitzen dituzunak inportatu", - "follow_import_error": "Errorea jarraitzaileak inportatzerakoan", - "follows_imported": "Jarraitzaileak inportatuta! Prozesatzeak denbora pixka bat iraungo du.", - "foreground": "Aurreko planoa", - "general": "Orokorra", - "hide_attachments_in_convo": "Ezkutatu eranskinak elkarrizketatan", - "hide_attachments_in_tl": "Ezkutatu eranskinak donbora-lerroan", - "hide_muted_posts": "Ezkutatu mutututako erabiltzaileen mezuak", - "max_thumbnails": "Mezu bakoitzeko argazki-miniatura kopuru maximoa", - "hide_isp": "Instantziari buruzko panela ezkutatu", - "preload_images": "Argazkiak aurrekargatu", - "use_one_click_nsfw": "Ireki eduki hunkigarria duten eranskinak klik batekin", - "hide_post_stats": "Ezkutatu mezuaren estatistikak (adibidez faborito kopurua)", - "hide_user_stats": "Ezkutatu erabiltzaile estatistikak (adibidez jarraitzaile kopurua)", - "hide_filtered_statuses": "Ezkutatu iragazitako mezuak", - "import_blocks_from_a_csv_file": "Blokeatutakoak inportatu CSV fitxategi batetik", - "import_followers_from_a_csv_file": "Inportatu jarraitzaileak csv fitxategi batetik", - "import_theme": "Kargatu aurre-ezarpena", - "inputRadius": "Sarrera eremuak", - "checkboxRadius": "Kuadrotxoak", - "instance_default": "(lehenetsia: {value})", - "instance_default_simple": "(lehenetsia)", - "interface": "Interfazea", - "interfaceLanguage": "Interfazearen hizkuntza", - "invalid_theme_imported": "Hautatutako fitxategia ez da onartutako Pleroma gaia. Ez da zure gaian aldaketarik burutu.", - "limited_availability": "Ez dago erabilgarri zure nabigatzailean", - "links": "Estekak", - "lock_account_description": "Mugatu zure kontua soilik onartutako jarraitzaileei", - "loop_video": "Begizta bideoak", - "loop_video_silent_only": "Soinu gabeko bideoak begiztatu bakarrik (adibidez Mastodon-eko gif-ak)", - "mutes_tab": "Mututuak", - "play_videos_in_modal": "Erreproduzitu bideoak zuzenean multimedia erreproduzigailuan", - "use_contain_fit": "Eranskinak ez moztu miniaturetan", - "name": "Izena", - "name_bio": "Izena eta biografia", - "new_password": "Pasahitz berria", - "notification_visibility": "Erakusteko jakinarazpen motak", - "notification_visibility_follows": "Jarraitzaileak", - "notification_visibility_likes": "Gogokoak", - "notification_visibility_mentions": "Aipamenak", - "notification_visibility_repeats": "Errepikapenak", - "no_rich_text_description": "Kendu testu-formatu aberastuak mezu guztietatik", - "no_blocks": "Ez daude erabiltzaile blokeatutak", - "no_mutes": "Ez daude erabiltzaile mututuak", - "hide_follows_description": "Ez erakutsi nor jarraitzen ari naizen", - "hide_followers_description": "Ez erakutsi nor ari den ni jarraitzen", - "hide_follows_count_description": "Ez erakutsi jarraitzen ari naizen kontuen kopurua", - "hide_followers_count_description": "Ez erakutsi nire jarraitzaileen kontuen kopurua", - "show_admin_badge": "Erakutsi \"Administratzaile\" etiketa nire profilan", - "show_moderator_badge": "Erakutsi \"Moderatzaile\" etiketa nire profilan", - "nsfw_clickthrough": "Gaitu klika hunkigarri eranskinak ezkutatzeko", - "oauth_tokens": "OAuth tokenak", - "token": "Tokena", - "refresh_token": "Berrgin tokena", - "valid_until": "Baliozkoa arte", - "revoke_token": "Ezeztatu", - "panelRadius": "Panelak", - "pause_on_unfocused": "Eguneraketa automatikoa gelditu fitxatik kanpo", - "presets": "Aurrezarpenak", - "profile_background": "Profilaren atzeko planoa", - "profile_banner": "Profilaren banner-a", - "profile_tab": "Profila", - "radii_help": "Konfiguratu interfazearen ertzen biribiltzea (pixeletan)", - "replies_in_timeline": "Denbora-lerroko erantzunak", - "reply_visibility_all": "Erakutsi erantzun guztiak", - "reply_visibility_following": "Erakutsi bakarrik niri zuzendutako edo nik jarraitutako erabiltzaileen erantzunak", - "reply_visibility_self": "Erakutsi bakarrik niri zuzendutako erantzunak", - "autohide_floating_post_button": "Automatikoki ezkutatu Mezu Berriaren botoia (sakelako)", - "saving_err": "Errorea ezarpenak gordetzean", - "saving_ok": "Ezarpenak gordeta", - "search_user_to_block": "Bilatu zein blokeatu nahi duzun", - "search_user_to_mute": "Bilatu zein isilarazi nahi duzun", - "security_tab": "Segurtasuna", - "scope_copy": "Ikusgaitasun aukerak kopiatu mezua erantzuterakoan (Zuzeneko Mezuak beti kopiatzen dute)", - "minimal_scopes_mode": "Bildu ikusgaitasun aukerak", - "set_new_avatar": "Ezarri avatar berria", - "set_new_profile_background": "Ezarri atzeko plano berria", - "set_new_profile_banner": "Ezarri profil banner berria", - "settings": "Ezarpenak", - "subject_input_always_show": "Erakutsi beti gaiaren eremua", - "subject_line_behavior": "Gaia kopiatu erantzuterakoan", - "subject_line_email": "E-maila bezala: \"re: gaia\"", - "subject_line_mastodon": "Mastodon bezala: kopiatu den bezala", - "subject_line_noop": "Ez kopiatu", - "post_status_content_type": "Argitarapen formatua", - "stop_gifs": "GIF-a iniziatu arratoia gainean jarrita", - "streaming": "Gaitu mezu berrien karga goraino mugitzean", - "text": "Testua", - "theme": "Gaia", - "theme_help": "Erabili hex-kolore kodeak (#rrggbb) gaiaren koloreak pertsonalizatzeko.", - "theme_help_v2_1": "Zenbait osagaien koloreak eta opakutasuna ezeztatu ditzakezu kontrol-laukia aktibatuz, \"Garbitu dena\" botoia erabili aldaketak deusezteko.", - "theme_help_v2_2": "Sarreren batzuen azpian dauden ikonoak atzeko planoaren eta testuaren arteko kontrastearen adierazleak dira, kokatu arratoia gainean informazio zehatza eskuratzeko. Kontuan izan gardentasun kontrasteen adierazleek erabiltzen direnean, kasurik okerrena erakusten dutela.", - "tooltipRadius": "Argibideak/alertak", - "upload_a_photo": "Argazkia kargatu", - "user_settings": "Erabiltzaile Ezarpenak", - "values": { - "false": "ez", - "true": "bai" - }, - "notifications": "Jakinarazpenak", - "notification_mutes": "Erabiltzaile jakin baten jakinarazpenak jasotzeari uzteko, isilarazi ezazu.", - "notification_blocks": "Erabiltzaile bat blokeatzeak jakinarazpen guztiak gelditzen ditu eta harpidetza ezeztatu.", - "enable_web_push_notifications": "Gaitu web jakinarazpenak", - "style": { - "switcher": { - "keep_color": "Mantendu koloreak", - "keep_shadows": "Mantendu itzalak", - "keep_opacity": "Mantendu opakotasuna", - "keep_roundness": "Mantendu biribiltasuna", - "keep_fonts": "Mantendu iturriak", - "save_load_hint": "\"Mantendu\" aukerak uneko konfiguratutako aukerak gordetzen ditu gaiak hautatzerakoan edo kargatzean, gai hauek esportatze garaian ere gordetzen ditu. Kontrol-lauki guztiak garbitzen direnean, esportazio-gaiak dena gordeko du.", - "reset": "Berrezarri", - "clear_all": "Garbitu dena", - "clear_opacity": "Garbitu opakotasuna" - }, - "common": { - "color": "Kolorea", - "opacity": "Opakotasuna", - "contrast": { - "hint": "Kontrastearen erlazioa {ratio} da, {level} {context}", - "level": { - "aa": "AA Mailako gidaliburua betetzen du (gutxienezkoa)", - "aaa": "AAA Mailako gidaliburua betetzen du (gomendatua)", - "bad": "ez ditu irisgarritasun arauak betetzen" - }, - "context": { - "18pt": "testu handientzat (+18pt)", - "text": "testuentzat" - } - } - }, - "common_colors": { - "_tab_label": "Ohikoa", - "main": "Ohiko koloreak", - "foreground_hint": "Ikusi \"Aurreratua\" fitxa kontrol zehatzagoa lortzeko", - "rgbo": "Ikono, azentu eta etiketak" - }, - "advanced_colors": { - "_tab_label": "Aurreratua", - "alert": "Alerten atzeko planoa", - "alert_error": "Errorea", - "badge": "Etiketen atzeko planoa", - "badge_notification": "Jakinarazpenak", - "panel_header": "Panelaren goiburua", - "top_bar": "Goiko barra", - "borders": "Ertzak", - "buttons": "Botoiak", - "inputs": "Sarrera eremuak", - "faint_text": "Testu itzalita" - }, - "radii": { - "_tab_label": "Biribiltasuna" - }, - "shadows": { - "_tab_label": "Itzal eta argiak", - "component": "Atala", - "override": "Berridatzi", - "shadow_id": "Itzala #{value}", - "blur": "Lausotu", - "spread": "Hedapena", - "inset": "Barrutik", - "hint": "Itzaletarako ere erabil dezakezu --aldagarri kolore balio gisa CSS3 aldagaiak erabiltzeko. Kontuan izan opakutasuna ezartzeak ez duela kasu honetan funtzionatuko.", - "filter_hint": { - "always_drop_shadow": "Kontuz, itzal honek beti erabiltzen du {0} nabigatzaileak onartzen duenean.", - "drop_shadow_syntax": "{0} ez du onartzen {1} parametroa eta {2} gako-hitza.", - "avatar_inset": "Kontuan izan behar da barruko eta kanpoko itzal konbinazioak, ez esparotako emaitzak ager daitezkeela atzeko plano gardena duten Avatarretan.", - "spread_zero": "Hedapena > 0 duten itzalak zero izango balitz bezala agertuko dira", - "inset_classic": "Barruko itzalak {0} erabiliko dute" + "about": { + "mrf": { + "federation": "Federazioa", + "keyword": { + "ftl_removal": "\"Ezagutzen den Sarea\" denbora-lerrotik ezabatu", + "is_replaced_by": "→", + "keyword_policies": "Gako-hitz politika", + "reject": "Ukatuak", + "replace": "Ordezkatuak" + }, + "mrf_policies": "Gaitutako MRF politikak", + "mrf_policies_desc": "MRF politikek instantzia honen federazioa manipulatzen dute gainerako instantziekin. Honako politika hauek daude gaituta:", + "simple": { + "accept": "Onartu", + "accept_desc": "Instantzia honek hurrengo instantzietako mezuak soilik onartzen ditu:", + "ftl_removal": "\"Ezagutzen den Sarea\" denbora-lerrotik ezabatu", + "ftl_removal_desc": "Instantzia honek hurrengo instantziak ezabatzen ditu \"Ezagutzen den Sarea\" denbora-lerrotik:", + "media_nsfw": "Behartu multimedia sentikor moduan", + "media_nsfw_desc": "Instantzia honek hurrengo instantzien multimediak sentikorrak izatera behartzen ditu:", + "media_removal": "Multimedia Ezabatu", + "media_removal_desc": "Instantzia honek atxikitutako multimedia hurrengo instantzietatik ezabatzen ditu:", + "quarantine": "Koarentena", + "quarantine_desc": "Instantzia honek soilik mezu publikoak bidaliko ditu instantzia hauetara:", + "reject": "Ukatuak", + "reject_desc": "Instantzia honek ez ditu hurrengo instantzien mezuak onartuko:", + "simple_policies": "Gure instantziaren politika zehatzak" + } }, - "components": { - "panel": "Panela", - "panelHeader": "Panel goiburua", - "topBar": "Goiko barra", - "avatar": "Erabiltzailearen avatarra (profilan)", - "avatarStatus": "Erabiltzailearen avatarra (mezuetan)", - "popup": "Popup-ak eta argibideak", - "button": "Botoia", - "buttonHover": "Botoia (gainean)", - "buttonPressed": "Botoai (sakatuta)", - "buttonPressedHover": "Botoia (sakatuta+gainean)", - "input": "Sarrera eremuak" - } - }, - "fonts": { - "_tab_label": "Letra-tipoak", - "help": "Aukeratu letra-tipoak erabiltzailearen interfazean erabiltzeko. \"Pertsonalizatua\" letra-tipoan, sisteman agertzen den izen berdinarekin idatzi behar duzu.", - "components": { - "interface": "Interfazea", - "input": "Sarrera eremuak", - "post": "Mezuen testua", - "postCode": "Tarte-bakarreko testua mezuetan (testu-formatu aberastuak)" + "staff": "Arduradunak" + }, + "domain_mute_card": { + "mute": "Isilarazi", + "mute_progress": "Isiltzen…", + "unmute": "Isiltasuna kendu", + "unmute_progress": "Isiltasuna kentzen…" + }, + "emoji": { + "add_emoji": "Emoji bat gehitu", + "custom": "Ohiko emojiak", + "emoji": "Emoji", + "keep_open": "Mantendu hautatzailea zabalik", + "load_all": "{emojiAmount} emoji guztiak kargatzen", + "load_all_hint": "Lehenengo {saneAmount} emojia kargatuta, emoji guztiak kargatzeak errendimendu arazoak sor ditzake.", + "search_emoji": "Bilatu emoji bat", + "stickers": "Pegatinak", + "unicode": "Unicode emojiak" + }, + "errors": { + "storage_unavailable": "Pleromak ezin izan du nabigatzailearen biltegira sartu. Hasiera-saioa edo tokiko ezarpenak ez dira gordeko eta ustekabeko arazoak sor ditzake. Saiatu cookie-ak gaitzen." + }, + "exporter": { + "export": "Esportatu", + "processing": "Prozesatzen, zure fitxategia deskargatzeko eskatuko zaizu laster" + }, + "features_panel": { + "media_proxy": "Media proxy", + "scope_options": "Ikusgaitasun aukerak", + "text_limit": "Testu limitea", + "title": "Ezaugarriak", + "upload_limit": "Kargatzeko muga", + "who_to_follow": "Nori jarraitu" + }, + "finder": { + "error_fetching_user": "Errorea erabiltzailea eskuratzen", + "find_user": "Bilatu erabiltzailea" + }, + "general": { + "apply": "Aplikatu", + "cancel": "Ezeztatu", + "close": "Itxi", + "confirm": "Baieztatu", + "disable": "Ezgaitu", + "dismiss": "Baztertu", + "enable": "Gaitu", + "error_retry": "Saiatu berriro mesedez", + "flash_content": "Klik egin Flash edukia erakusteko Ruffle erabilita (esperimentala, baliteke ez ibiltzea).", + "flash_fail": "Ezin izan da Flash edukia kargatu. Ikusi kontsola xehetasunetarako.", + "flash_security": "Kontuan izan arriskutsua izan daitekeela, Flash edukia kode arbitrarioa baita.", + "generic_error": "Errore bat gertatu da", + "loading": "Kargatzen…", + "more": "Gehiago", + "optional": "Hautazkoa", + "peek": "Begiratu", + "retry": "Saiatu berriro", + "role": { + "admin": "Administratzailea", + "moderator": "Moderatzailea" }, - "family": "Letra-tipoaren izena", - "size": "Tamaina (px)", - "weight": "Pisua (lodiera)", - "custom": "Pertsonalizatua" - }, - "preview": { - "header": "Aurrebista", - "content": "Edukia", - "error": "Adibide errorea", - "button": "Botoia", - "text": "Hamaika {0} eta {1}", - "mono": "edukia", - "input": "Jadanik Los Angeles-en.", - "faint_link": "laguntza", - "fine_print": "Irakurri gure {0} ezer erabilgarria ikasteko!", - "header_faint": "Ondo dago", - "checkbox": "Baldintzak berrikusi ditut", - "link": "esteka polita" - } + "show_less": "Gutxiago erakutsi", + "show_more": "Gehiago erakutsi", + "submit": "Bidali", + "verify": "Egiaztatu" }, - "version": { - "title": "Bertsioa", - "backend_version": "Backend bertsioa", - "frontend_version": "Frontend bertsioa" + "image_cropper": { + "cancel": "Ezeztatu", + "crop_picture": "Moztu argazkia", + "save": "Gorde", + "save_without_cropping": "Gorde moztu gabe" }, - "save": "Aldaketak gorde", - "setting_changed": "Ezarpena lehenetsitakoaren desberdina da", - "allow_following_move": "Baimendu jarraipen automatikoa, jarraitzen duzun kontua beste instantzia batera eramaten denean", - "new_email": "E-posta berria" - }, - "time": { - "now": "oraintxe bertan", - "now_short": "orain", - "in_future": "{0} barru", - "in_past": "duela {0}", - "unit": { - "day": "{0} egun", - "days": "{0} egun", - "day_short": "{0}e", - "days_short": "{0}e", - "hour": "{0} ordu", - "hours": "{0} ordu", - "hour_short": "{0}o", - "hours_short": "{0}o", - "minute": "{0} minutu", - "minutes": "{0} minutu", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} hilabete", - "months": "{0} hilabete", - "month_short": "{0}h", - "months_short": "{0}h", - "second": "{0} segundu", - "seconds": "{0} segundu", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} aste", - "weeks": "{0} aste", - "week_short": "{0}a", - "weeks_short": "{0}a", - "year": "{0} urte", - "years": "{0} urte", - "year_short": "{0}u", - "years_short": "{0}u" + "importer": { + "error": "Errore bat gertatu da fitxategi hau inportatzerakoan.", + "submit": "Bidali", + "success": "Ondo inportatu da." + }, + "interactions": { + "favs_repeats": "Errepikapen eta gogokoak", + "follows": "Jarraitzaile berriak", + "load_older": "Kargatu elkarrekintza zaharragoak", + "moves": "Erabiltzailea migratuta" + }, + "login": { + "authentication_code": "Autentifikazio kodea", + "description": "OAuth-ekin saioa hasi", + "enter_recovery_code": "Sartu berreskuratze kodea", + "enter_two_factor_code": "Sartu bi-faktore kodea", + "heading": { + "recovery": "Bi-faktore berreskuratzea", + "totp": "Bi-faktore autentifikazioa" + }, + "hint": "Hasi saioa eztabaidan parte-hartzeko", + "login": "Saioa hasi", + "logout": "Saioa itxi", + "password": "Pasahitza", + "placeholder": "adibidez Lain", + "recovery_code": "Berreskuratze kodea", + "register": "Erregistratu", + "username": "Erabiltzaile-izena" + }, + "media_modal": { + "next": "Hurrengoa", + "previous": "Aurrekoa" + }, + "nav": { + "about": "Honi buruz", + "administration": "Administrazioa", + "back": "Atzera", + "bookmarks": "Laster-markak", + "chats": "Txatak", + "dms": "Zuzeneko mezuak", + "friend_requests": "Jarraitzeko eskaerak", + "home_timeline": "Denbora-lerro pertsonala", + "interactions": "Interakzioak", + "mentions": "Aipamenak", + "preferences": "Hobespenak", + "public_tl": "Denbora-lerro publikoa", + "search": "Bilatu", + "timeline": "Denbora-lerroa", + "timelines": "Denbora-lerroak", + "twkn": "Ezagutzen den Sarea", + "user_search": "Erabiltzailea Bilatu", + "who_to_follow": "Nori jarraitu" + }, + "notifications": { + "broken_favorite": "Egoera ezezaguna, bilatzen…", + "error": "Errorea jakinarazpenak eskuratzean: {0}", + "favorited_you": "zure mezua gogoko du", + "follow_request": "jarraitu nahi zaitu", + "followed_you": "Zu jarraitzen zaitu", + "load_older": "Kargatu jakinarazpen zaharragoak", + "migrated_to": "hona migratua:", + "no_more_notifications": "Ez dago jakinarazpen gehiago", + "notifications": "Jakinarazpenak", + "reacted_with": "{0}kin erreakzionatu zuen", + "read": "Irakurrita!", + "repeated_you": "zure mezua errepikatu du" + }, + "password_reset": { + "check_email": "Begiratu zure posta elektronikoa pasahitza berrezarri ahal izateko.", + "forgot_password": "Pasahitza ahaztua?", + "instruction": "Idatzi zure helbide elektronikoa edo erabiltzaile izena. Pasahitza berrezartzeko esteka bidaliko dizugu.", + "password_reset": "Pasahitza berrezarri", + "password_reset_disabled": "Pasahitza berrezartzea debekatuta dago. Mesedez, jarri harremanetan instantzia administratzailearekin.", + "password_reset_required": "Pasahitza berrezarri behar duzu saioa hasteko.", + "password_reset_required_but_mailer_is_disabled": "Pasahitza berrezarri behar duzu, baina pasahitza berrezartzeko aukera desgaituta dago. Mesedez, jarri harremanetan instantziaren administratzailearekin.", + "placeholder": "Zure e-posta edo erabiltzaile izena", + "return_home": "Itzuli hasierara", + "too_many_requests": "Saiakera gehiegi burutu ditzu, saiatu berriro geroxeago." + }, + "polls": { + "add_option": "Gehitu aukera", + "add_poll": "Inkesta gehitu", + "expired": "Inkesta {0} bukatu zen", + "expires_in": "Inkesta {0} bukatzen da", + "expiry": "Inkestaren iraupena", + "multiple_choices": "Aukera anizkoitza", + "not_enough_options": "Aukera gutxiegi inkestan", + "option": "Aukera", + "people_voted_count": "Pertsona batek bozkatu du | {count} pertsonak bozkatu dute", + "single_choice": "Aukera bakarra", + "type": "Inkesta mota", + "vote": "Bozka", + "votes": "Bozkak", + "votes_count": "{count} boto| {count} boto" + }, + "post_status": { + "account_not_locked_warning": "Zure kontua ez dago {0}. Edozeinek jarraitzen hastearekin, zure mezuak irakur ditzake.", + "account_not_locked_warning_link": "Blokeatuta", + "attachments_sensitive": "Nabarmendu eranskinak hunkigarri gisa", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Testu arrunta" + }, + "content_warning": "Gaia (hautazkoa)", + "default": "Iadanik Los Angeles-en", + "direct_warning_to_all": "Mezu hau aipatutako erabiltzaile guztientzat ikusgai egongo da.", + "direct_warning_to_first_only": "Mezu hau ikusgai egongo da bakarrik hasieran aipatzen diren erabiltzaileei.", + "empty_status_error": "Ezin da argitaratu ezer idatzi gabe edo eranskinik gabe", + "media_description": "Media deskribapena", + "media_description_error": "Ezin izan da artxiboa eguneratu, saiatu berriro", + "new_status": "Mezu berri bat idatzi", + "post": "Bidali", + "posting": "Argitaratzen", + "preview": "Aurrebista", + "preview_empty": "Hutsik", + "scope": { + "direct": "Zuzena: bidali aipatutako erabiltzaileei besterik ez", + "private": "Jarraitzaileentzako bakarrik: bidali jarraitzaileentzat bakarrik", + "public": "Publikoa: bistaratu denbora-lerro publikoetan", + "unlisted": "Zerrendatu gabea: ez bidali denbora-lerro publikoetara" + }, + "scope_notice": { + "private": "Mezu hau zure jarraitzaileek soilik ikusiko dute", + "public": "Mezu hau guztiontzat ikusgai izango da", + "unlisted": "Mezu hau ez da argitaratuko Denbora-lerro Publikoan ezta Ezagutzen den Sarean" + } + }, + "registration": { + "bio": "Biografia", + "bio_placeholder": "Adidibez.\nKaixo, Lain naiz.\nFedibertsoa gustokoa dut eta euskeraz hitzegiten dut.", + "captcha": "CAPTCHA", + "email": "E-posta", + "fullname": "Erakutsi izena", + "fullname_placeholder": "Adibidez Lain Iwakura", + "new_captcha": "Klikatu irudia captcha berri bat lortzeko", + "password_confirm": "Pasahitza berretsi", + "reason": "Kontua sortzeko arrazoia", + "reason_placeholder": "Instantzia honek kontu berriak eskuz onartzen ditu.\nJakinarazi administrazioari zergatik erregistratu nahi duzun.", + "register": "Erregistratu", + "registration": "Sortu kontua", + "token": "Gonbidapen txartela", + "username_placeholder": "Adibidez lain", + "validations": { + "email_required": "Ezin da hutsik utzi", + "fullname_required": "Ezin da hutsik utzi", + "password_confirmation_match": "Pasahitzaren berdina izan behar du", + "password_confirmation_required": "Ezin da hutsik utzi", + "password_required": "Ezin da hutsik utzi", + "username_required": "Ezin da hutsik utzi" + } + }, + "remote_user_resolver": { + "error": "Ez da aurkitu.", + "searching_for": "Bilatzen" + }, + "search": { + "hashtags": "Traolak", + "no_results": "Emaitzarik ez", + "people": "Erabiltzaileak", + "people_talking": "{count} jende hitzegiten", + "person_talking": "{count} pertsona hitzegiten" + }, + "selectable_list": { + "select_all": "Hautatu denak" + }, + "settings": { + "allow_following_move": "Baimendu jarraipen automatikoa, jarraitzen duzun kontua beste instantzia batera eramaten denean", + "app_name": "App izena", + "attachmentRadius": "Eranskinak", + "attachments": "Eranskinak", + "autohide_floating_post_button": "Automatikoki ezkutatu Mezu Berriaren botoia (sakelako)", + "avatar": "Avatarra", + "avatarAltRadius": "Abatarra (aipamenak)", + "avatarRadius": "Avatarrak", + "avatar_size_instruction": "Avatar irudien gomendatutako gutxieneko tamaina 150x150 pixel dira.", + "background": "Atzeko planoa", + "bio": "Biografia", + "block_export": "Blokeatu dituzunak esportatu", + "block_export_button": "Esportatu blokeatutakoak csv fitxategi batera", + "block_import": "Blokeatu dituzunak inportatu", + "block_import_error": "Errorea blokeatutakoak inportatzen", + "blocks_imported": "Blokeatutakoak inportaturik! Hauek prozesatzeak denbora hartuko du.", + "blocks_tab": "Blokeatutakoak", + "btnRadius": "Botoiak", + "cBlue": "Urdina (erantzun, jarraitu)", + "cGreen": "Berdea (Bertxiotu)", + "cOrange": "Laranja (Gogokoa)", + "cRed": "Gorria (ezeztatu)", + "change_password": "Pasahitza aldatu", + "change_password_error": "Arazao bat egon da zure pasahitza aldatzean.", + "changed_password": "Pasahitza ondo aldatu da!", + "checkboxRadius": "Kuadrotxoak", + "collapse_subject": "Bildu gaia daukaten mezuak", + "composing": "Idazten", + "confirm_new_password": "Baieztatu pasahitz berria", + "current_avatar": "Zure uneko avatarra", + "current_password": "Indarrean dagoen pasahitza", + "data_import_export_tab": "Datuak inportatu / esportatu", + "default_vis": "Lehenetsitako ikusgaitasunak", + "delete_account": "Ezabatu kontua", + "delete_account_description": "Betirako ezabatu zure datuak eta desaktibatu kontua.", + "delete_account_error": "Arazo bat gertatu da zure kontua ezabatzerakoan. Arazoa jarraitu eskero, administratzailearekin harremanetan jarri.", + "delete_account_instructions": "Idatzi zure pasahitza kontua ezabatzeko.", + "discoverable": "Baimendu zure kontua kanpo bilaketa-emaitzetan eta bestelako zerbitzuetan agertzea", + "enable_web_push_notifications": "Gaitu web jakinarazpenak", + "enter_current_password_to_confirm": "Sar ezazu zure egungo pasahitza zure identitatea baieztatzeko", + "export_theme": "Gorde aurre-ezarpena", + "filtering": "Iragazten", + "filtering_explanation": "Hitz hauek dituzten mezu guztiak isilduak izango dira. Lerro bakoitzeko bat", + "follow_export": "Jarraitzen dituzunak esportatu", + "follow_export_button": "Esportatu zure jarraitzaileak csv fitxategi batean", + "follow_import": "Jarraitzen dituzunak inportatu", + "follow_import_error": "Errorea jarraitzaileak inportatzerakoan", + "follows_imported": "Jarraitzaileak inportatuta! Prozesatzeak denbora pixka bat iraungo du.", + "foreground": "Aurreko planoa", + "general": "Orokorra", + "hide_attachments_in_convo": "Ezkutatu eranskinak elkarrizketatan", + "hide_attachments_in_tl": "Ezkutatu eranskinak donbora-lerroan", + "hide_filtered_statuses": "Ezkutatu iragazitako mezuak", + "hide_followers_count_description": "Ez erakutsi nire jarraitzaileen kontuen kopurua", + "hide_followers_description": "Ez erakutsi nor ari den ni jarraitzen", + "hide_follows_count_description": "Ez erakutsi jarraitzen ari naizen kontuen kopurua", + "hide_follows_description": "Ez erakutsi nor jarraitzen ari naizen", + "hide_isp": "Instantziari buruzko panela ezkutatu", + "hide_muted_posts": "Ezkutatu mutututako erabiltzaileen mezuak", + "hide_post_stats": "Ezkutatu mezuaren estatistikak (adibidez faborito kopurua)", + "hide_user_stats": "Ezkutatu erabiltzaile estatistikak (adibidez jarraitzaile kopurua)", + "import_blocks_from_a_csv_file": "Blokeatutakoak inportatu CSV fitxategi batetik", + "import_followers_from_a_csv_file": "Inportatu jarraitzaileak csv fitxategi batetik", + "import_theme": "Kargatu aurre-ezarpena", + "inputRadius": "Sarrera eremuak", + "instance_default": "(lehenetsia: {value})", + "instance_default_simple": "(lehenetsia)", + "interface": "Interfazea", + "interfaceLanguage": "Interfazearen hizkuntza", + "invalid_theme_imported": "Hautatutako fitxategia ez da onartutako Pleroma gaia. Ez da zure gaian aldaketarik burutu.", + "limited_availability": "Ez dago erabilgarri zure nabigatzailean", + "links": "Estekak", + "lock_account_description": "Mugatu zure kontua soilik onartutako jarraitzaileei", + "loop_video": "Begizta bideoak", + "loop_video_silent_only": "Soinu gabeko bideoak begiztatu bakarrik (adibidez Mastodon-eko gif-ak)", + "max_thumbnails": "Mezu bakoitzeko argazki-miniatura kopuru maximoa", + "mfa": { + "authentication_methods": "Autentifikazio metodoa", + "confirm_and_enable": "Baieztatu eta gaitu OTP", + "generate_new_recovery_codes": "Sortu berreskuratze kode berriak", + "otp": "OTP", + "recovery_codes": "Berreskuratze kodea.", + "recovery_codes_warning": "Idatzi edo gorde kodeak leku seguruan - bestela ez dituzu berriro ikusiko. Zure 2FA aplikaziorako sarbidea eta berreskuratze kodeak galduz gero, zure kontutik blokeatuta egongo zara.", + "scan": { + "desc": "Zure bi-faktore aplikazioa erabiliz, eskaneatu QR kode hau edo idatzi testu-gakoa:", + "secret_code": "Giltza", + "title": "Eskaneatu" + }, + "setup_otp": "OTP konfiguratu", + "title": "Bi-faktore autentifikazioa", + "verify": { + "desc": "Bi-faktore autentifikazioa gaitzeko, sar ezazu bi-faktore kodea zure app-tik:" + }, + "wait_pre_setup_otp": "OTP aurredoitzen", + "waiting_a_recovery_codes": "Babes-kopia kodeak jasotzen…", + "warning_of_generate_new_codes": "Berreskuratze kode berriak sortzean, zure berreskuratze kode zaharrak ez dute balioko." + }, + "minimal_scopes_mode": "Bildu ikusgaitasun aukerak", + "mutes_tab": "Mututuak", + "name": "Izena", + "name_bio": "Izena eta biografia", + "new_email": "E-posta berria", + "new_password": "Pasahitz berria", + "no_blocks": "Ez daude erabiltzaile blokeatutak", + "no_mutes": "Ez daude erabiltzaile mututuak", + "no_rich_text_description": "Kendu testu-formatu aberastuak mezu guztietatik", + "notification_blocks": "Erabiltzaile bat blokeatzeak jakinarazpen guztiak gelditzen ditu eta harpidetza ezeztatu.", + "notification_mutes": "Erabiltzaile jakin baten jakinarazpenak jasotzeari uzteko, isilarazi ezazu.", + "notification_visibility": "Erakusteko jakinarazpen motak", + "notification_visibility_follows": "Jarraitzaileak", + "notification_visibility_likes": "Gogokoak", + "notification_visibility_mentions": "Aipamenak", + "notification_visibility_repeats": "Errepikapenak", + "notifications": "Jakinarazpenak", + "nsfw_clickthrough": "Gaitu klika hunkigarri eranskinak ezkutatzeko", + "oauth_tokens": "OAuth tokenak", + "pad_emoji": "Zuriuneak gehitu emoji bat aukeratzen denean", + "panelRadius": "Panelak", + "pause_on_unfocused": "Eguneraketa automatikoa gelditu fitxatik kanpo", + "play_videos_in_modal": "Erreproduzitu bideoak zuzenean multimedia erreproduzigailuan", + "post_status_content_type": "Argitarapen formatua", + "preload_images": "Argazkiak aurrekargatu", + "presets": "Aurrezarpenak", + "profile_background": "Profilaren atzeko planoa", + "profile_banner": "Profilaren banner-a", + "profile_tab": "Profila", + "radii_help": "Konfiguratu interfazearen ertzen biribiltzea (pixeletan)", + "refresh_token": "Berrgin tokena", + "replies_in_timeline": "Denbora-lerroko erantzunak", + "reply_visibility_all": "Erakutsi erantzun guztiak", + "reply_visibility_following": "Erakutsi bakarrik niri zuzendutako edo nik jarraitutako erabiltzaileen erantzunak", + "reply_visibility_self": "Erakutsi bakarrik niri zuzendutako erantzunak", + "revoke_token": "Ezeztatu", + "save": "Aldaketak gorde", + "saving_err": "Errorea ezarpenak gordetzean", + "saving_ok": "Ezarpenak gordeta", + "scope_copy": "Ikusgaitasun aukerak kopiatu mezua erantzuterakoan (Zuzeneko Mezuak beti kopiatzen dute)", + "search_user_to_block": "Bilatu zein blokeatu nahi duzun", + "search_user_to_mute": "Bilatu zein isilarazi nahi duzun", + "security": "Segurtasuna", + "security_tab": "Segurtasuna", + "set_new_avatar": "Ezarri avatar berria", + "set_new_profile_background": "Ezarri atzeko plano berria", + "set_new_profile_banner": "Ezarri profil banner berria", + "setting_changed": "Ezarpena lehenetsitakoaren desberdina da", + "settings": "Ezarpenak", + "show_admin_badge": "Erakutsi \"Administratzaile\" etiketa nire profilan", + "show_moderator_badge": "Erakutsi \"Moderatzaile\" etiketa nire profilan", + "stop_gifs": "GIF-a iniziatu arratoia gainean jarrita", + "streaming": "Gaitu mezu berrien karga goraino mugitzean", + "style": { + "advanced_colors": { + "_tab_label": "Aurreratua", + "alert": "Alerten atzeko planoa", + "alert_error": "Errorea", + "badge": "Etiketen atzeko planoa", + "badge_notification": "Jakinarazpenak", + "borders": "Ertzak", + "buttons": "Botoiak", + "faint_text": "Testu itzalita", + "inputs": "Sarrera eremuak", + "panel_header": "Panelaren goiburua", + "top_bar": "Goiko barra" + }, + "common": { + "color": "Kolorea", + "contrast": { + "context": { + "18pt": "testu handientzat (+18pt)", + "text": "testuentzat" + }, + "hint": "Kontrastearen erlazioa {ratio} da, {level} {context}", + "level": { + "aa": "AA Mailako gidaliburua betetzen du (gutxienezkoa)", + "aaa": "AAA Mailako gidaliburua betetzen du (gomendatua)", + "bad": "ez ditu irisgarritasun arauak betetzen" + } + }, + "opacity": "Opakotasuna" + }, + "common_colors": { + "_tab_label": "Ohikoa", + "foreground_hint": "Ikusi \"Aurreratua\" fitxa kontrol zehatzagoa lortzeko", + "main": "Ohiko koloreak", + "rgbo": "Ikono, azentu eta etiketak" + }, + "fonts": { + "_tab_label": "Letra-tipoak", + "components": { + "input": "Sarrera eremuak", + "interface": "Interfazea", + "post": "Mezuen testua", + "postCode": "Tarte-bakarreko testua mezuetan (testu-formatu aberastuak)" + }, + "custom": "Pertsonalizatua", + "family": "Letra-tipoaren izena", + "help": "Aukeratu letra-tipoak erabiltzailearen interfazean erabiltzeko. \"Pertsonalizatua\" letra-tipoan, sisteman agertzen den izen berdinarekin idatzi behar duzu.", + "size": "Tamaina (px)", + "weight": "Pisua (lodiera)" + }, + "preview": { + "button": "Botoia", + "checkbox": "Baldintzak berrikusi ditut", + "content": "Edukia", + "error": "Adibide errorea", + "faint_link": "laguntza", + "fine_print": "Irakurri gure {0} ezer erabilgarria ikasteko!", + "header": "Aurrebista", + "header_faint": "Ondo dago", + "input": "Jadanik Los Angeles-en.", + "link": "esteka polita", + "mono": "edukia", + "text": "Hamaika {0} eta {1}" + }, + "radii": { + "_tab_label": "Biribiltasuna" + }, + "shadows": { + "_tab_label": "Itzal eta argiak", + "blur": "Lausotu", + "component": "Atala", + "components": { + "avatar": "Erabiltzailearen avatarra (profilan)", + "avatarStatus": "Erabiltzailearen avatarra (mezuetan)", + "button": "Botoia", + "buttonHover": "Botoia (gainean)", + "buttonPressed": "Botoai (sakatuta)", + "buttonPressedHover": "Botoia (sakatuta+gainean)", + "input": "Sarrera eremuak", + "panel": "Panela", + "panelHeader": "Panel goiburua", + "popup": "Popup-ak eta argibideak", + "topBar": "Goiko barra" + }, + "filter_hint": { + "always_drop_shadow": "Kontuz, itzal honek beti erabiltzen du {0} nabigatzaileak onartzen duenean.", + "avatar_inset": "Kontuan izan behar da barruko eta kanpoko itzal konbinazioak, ez esparotako emaitzak ager daitezkeela atzeko plano gardena duten Avatarretan.", + "drop_shadow_syntax": "{0} ez du onartzen {1} parametroa eta {2} gako-hitza.", + "inset_classic": "Barruko itzalak {0} erabiliko dute", + "spread_zero": "Hedapena > 0 duten itzalak zero izango balitz bezala agertuko dira" + }, + "inset": "Barrutik", + "override": "Berridatzi", + "shadow_id": "Itzala #{value}", + "spread": "Hedapena" + }, + "switcher": { + "clear_all": "Garbitu dena", + "clear_opacity": "Garbitu opakotasuna", + "keep_color": "Mantendu koloreak", + "keep_fonts": "Mantendu iturriak", + "keep_opacity": "Mantendu opakotasuna", + "keep_roundness": "Mantendu biribiltasuna", + "keep_shadows": "Mantendu itzalak", + "reset": "Berrezarri", + "save_load_hint": "\"Mantendu\" aukerak uneko konfiguratutako aukerak gordetzen ditu gaiak hautatzerakoan edo kargatzean, gai hauek esportatze garaian ere gordetzen ditu. Kontrol-lauki guztiak garbitzen direnean, esportazio-gaiak dena gordeko du." + } + }, + "subject_input_always_show": "Erakutsi beti gaiaren eremua", + "subject_line_behavior": "Gaia kopiatu erantzuterakoan", + "subject_line_email": "E-maila bezala: \"re: gaia\"", + "subject_line_mastodon": "Mastodon bezala: kopiatu den bezala", + "subject_line_noop": "Ez kopiatu", + "text": "Testua", + "theme": "Gaia", + "theme_help": "Erabili hex-kolore kodeak (#rrggbb) gaiaren koloreak pertsonalizatzeko.", + "theme_help_v2_1": "Zenbait osagaien koloreak eta opakutasuna ezeztatu ditzakezu kontrol-laukia aktibatuz, \"Garbitu dena\" botoia erabili aldaketak deusezteko.", + "theme_help_v2_2": "Sarreren batzuen azpian dauden ikonoak atzeko planoaren eta testuaren arteko kontrastearen adierazleak dira, kokatu arratoia gainean informazio zehatza eskuratzeko. Kontuan izan gardentasun kontrasteen adierazleek erabiltzen direnean, kasurik okerrena erakusten dutela.", + "token": "Tokena", + "tooltipRadius": "Argibideak/alertak", + "upload_a_photo": "Argazkia kargatu", + "use_contain_fit": "Eranskinak ez moztu miniaturetan", + "use_one_click_nsfw": "Ireki eduki hunkigarria duten eranskinak klik batekin", + "user_settings": "Erabiltzaile Ezarpenak", + "valid_until": "Baliozkoa arte", + "values": { + "false": "ez", + "true": "bai" + }, + "version": { + "backend_version": "Backend bertsioa", + "frontend_version": "Frontend bertsioa", + "title": "Bertsioa" + } + }, + "status": { + "delete": "Mezua ezabatu", + "delete_confirm": "Mezu hau benetan ezabatu nahi duzu?", + "favorites": "Gogokoak", + "mute_conversation": "Elkarrizketa isilarazi", + "pin": "Profilan ainguratu", + "pinned": "Ainguratuta", + "repeats": "Errepikapenak", + "replies_list": "Erantzunak:", + "reply_to": "Erantzuten", + "unmute_conversation": "Elkarrizketa aktibatu", + "unpin": "Aingura ezeztatu profilatik" + }, + "time": { + "in_future": "{0} barru", + "in_past": "duela {0}", + "now": "oraintxe bertan", + "now_short": "orain", + "unit": { + "days": "{0} egun", + "days_short": "{0}e", + "hours": "{0} ordu", + "hours_short": "{0}o", + "minutes": "{0} minutu", + "minutes_short": "{0}min", + "months": "{0} hilabete", + "months_short": "{0}h", + "seconds": "{0} segundu", + "seconds_short": "{0}s", + "weeks": "{0} aste", + "weeks_short": "{0}a", + "years": "{0} urte", + "years_short": "{0}u" + } + }, + "timeline": { + "collapse": "Bildu", + "conversation": "Elkarrizketa", + "load_older": "Kargatu mezu zaharragoak", + "no_more_statuses": "Ez daude mezu gehiago", + "no_retweet_hint": "Mezu hau jarraitzailentzako bakarrik markatuta dago eta ezin da errepikatu", + "no_statuses": "Mezurik gabe", + "repeated": "Errepikatuta", + "show_new": "Berriena erakutsi", + "up_to_date": "Eguneratuta" + }, + "tool_tip": { + "favorite": "Gogokoa", + "media_upload": "Multimedia igo", + "repeat": "Errepikatu", + "reply": "Erantzun", + "user_settings": "Erabiltzaile ezarpenak" + }, + "upload": { + "error": { + "base": "Igoerak huts egin du.", + "default": "Saiatu berriro geroago", + "file_too_big": "Artxiboa haundiegia [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktibatu kontua", + "deactivate_account": "Desaktibatu kontua", + "delete_account": "Ezabatu kontua", + "delete_user": "Erabiltzailea ezabatu", + "disable_any_subscription": "Ez utzi beste erabiltzaileak zuri jarraitzea", + "disable_remote_subscription": "Ez utzi istantzia kanpoko erabiltzaileak zuri jarraitzea", + "force_nsfw": "Markatu mezu guztiak hunkigarri gisa", + "force_unlisted": "Behartu mezuak listatu gabekoak izatea", + "grant_admin": "Administratzaile baimena", + "grant_moderator": "Moderatzaile baimena", + "moderation": "Moderazioa", + "quarantine": "Ez onartu mezuak beste instantzietatik", + "revoke_admin": "Ezeztatu administratzaile baimena", + "revoke_moderator": "Ezeztatu moderatzaile baimena", + "sandbox": "Behartu zure jarraitzaileentzako bakarrik argitaratzera", + "strip_media": "Kendu multimedia mezuetatik" + }, + "approve": "Onartu", + "block": "Blokeatu", + "block_progress": "Blokeatzen…", + "blocked": "Blokeatuta!", + "deny": "Ukatu", + "favorites": "Gogokoak", + "follow": "Jarraitu", + "follow_progress": "Eskatzen…", + "follow_sent": "Eskaera bidalita!", + "follow_unfollow": "Jarraitzeari utzi", + "followees": "Jarraitzen", + "followers": "Jarraitzaileak", + "following": "Jarraitzen!", + "follows_you": "Jarraitzen dizu!", + "hide_repeats": "Ezkutatu errepikapenak", + "its_you": "Zu zara!", + "media": "Multimedia", + "mention": "Aipatu", + "mute": "Isilarazi", + "mute_progress": "Isiltzen…", + "muted": "Isilduta", + "per_day": "eguneko", + "remote_follow": "Jarraitu", + "report": "Berri eman", + "show_repeats": "Erakutsi errpekiapenak", + "statuses": "Mezuak", + "subscribe": "Harpidetu", + "unblock": "Blokeoa kendu", + "unblock_progress": "Blokeoa ezeztatzen…", + "unmute": "Isiltasuna kendu", + "unmute_progress": "Isiltasuna kentzen…", + "unsubscribe": "Harpidetza ezeztatu" + }, + "user_profile": { + "profile_does_not_exist": "Barkatu, profil hau ez da existitzen.", + "profile_loading_error": "Barkatu, errore bat gertatu da profila kargatzean.", + "timeline_title": "Erabiltzailearen denbora-lerroa" + }, + "user_reporting": { + "add_comment_description": "Zure kexa moderatzaileei bidaliko da. Nahi baduzu zure kexaren zergatia idatz dezakezu:", + "additional_comments": "Iruzkin gehiago", + "forward_description": "Kontu hau beste instantzia batekoa da. Nahi duzu txostenaren kopia bat bidali ere?", + "forward_to": "{0}-ri birbidali", + "generic_error": "Errore bat gertatu da zure eskaera prozesatzerakoan.", + "submit": "Bidali", + "title": "{0}-ri buruz berri ematen" + }, + "who_to_follow": { + "more": "Gehiago", + "who_to_follow": "Nori jarraitu" } - }, - "timeline": { - "collapse": "Bildu", - "conversation": "Elkarrizketa", - "error_fetching": "Errorea eguneraketak eskuratzen", - "load_older": "Kargatu mezu zaharragoak", - "no_retweet_hint": "Mezu hau jarraitzailentzako bakarrik markatuta dago eta ezin da errepikatu", - "repeated": "Errepikatuta", - "show_new": "Berriena erakutsi", - "up_to_date": "Eguneratuta", - "no_more_statuses": "Ez daude mezu gehiago", - "no_statuses": "Mezurik gabe" - }, - "status": { - "favorites": "Gogokoak", - "repeats": "Errepikapenak", - "delete": "Mezua ezabatu", - "pin": "Profilan ainguratu", - "unpin": "Aingura ezeztatu profilatik", - "pinned": "Ainguratuta", - "delete_confirm": "Mezu hau benetan ezabatu nahi duzu?", - "reply_to": "Erantzuten", - "replies_list": "Erantzunak:", - "mute_conversation": "Elkarrizketa isilarazi", - "unmute_conversation": "Elkarrizketa aktibatu" - }, - "user_card": { - "approve": "Onartu", - "block": "Blokeatu", - "blocked": "Blokeatuta!", - "deny": "Ukatu", - "favorites": "Gogokoak", - "follow": "Jarraitu", - "follow_sent": "Eskaera bidalita!", - "follow_progress": "Eskatzen…", - "follow_unfollow": "Jarraitzeari utzi", - "followees": "Jarraitzen", - "followers": "Jarraitzaileak", - "following": "Jarraitzen!", - "follows_you": "Jarraitzen dizu!", - "its_you": "Zu zara!", - "media": "Multimedia", - "mention": "Aipatu", - "mute": "Isilarazi", - "muted": "Isilduta", - "per_day": "eguneko", - "remote_follow": "Jarraitu", - "report": "Berri eman", - "statuses": "Mezuak", - "subscribe": "Harpidetu", - "unsubscribe": "Harpidetza ezeztatu", - "unblock": "Blokeoa kendu", - "unblock_progress": "Blokeoa ezeztatzen…", - "block_progress": "Blokeatzen…", - "unmute": "Isiltasuna kendu", - "unmute_progress": "Isiltasuna kentzen…", - "mute_progress": "Isiltzen…", - "hide_repeats": "Ezkutatu errepikapenak", - "show_repeats": "Erakutsi errpekiapenak", - "admin_menu": { - "moderation": "Moderazioa", - "grant_admin": "Administratzaile baimena", - "revoke_admin": "Ezeztatu administratzaile baimena", - "grant_moderator": "Moderatzaile baimena", - "revoke_moderator": "Ezeztatu moderatzaile baimena", - "activate_account": "Aktibatu kontua", - "deactivate_account": "Desaktibatu kontua", - "delete_account": "Ezabatu kontua", - "force_nsfw": "Markatu mezu guztiak hunkigarri gisa", - "strip_media": "Kendu multimedia mezuetatik", - "force_unlisted": "Behartu mezuak listatu gabekoak izatea", - "sandbox": "Behartu zure jarraitzaileentzako bakarrik argitaratzera", - "disable_remote_subscription": "Ez utzi istantzia kanpoko erabiltzaileak zuri jarraitzea", - "disable_any_subscription": "Ez utzi beste erabiltzaileak zuri jarraitzea", - "quarantine": "Ez onartu mezuak beste instantzietatik", - "delete_user": "Erabiltzailea ezabatu" - } - }, - "user_profile": { - "timeline_title": "Erabiltzailearen denbora-lerroa", - "profile_does_not_exist": "Barkatu, profil hau ez da existitzen.", - "profile_loading_error": "Barkatu, errore bat gertatu da profila kargatzean." - }, - "user_reporting": { - "title": "{0}-ri buruz berri ematen", - "add_comment_description": "Zure kexa moderatzaileei bidaliko da. Nahi baduzu zure kexaren zergatia idatz dezakezu:", - "additional_comments": "Iruzkin gehiago", - "forward_description": "Kontu hau beste instantzia batekoa da. Nahi duzu txostenaren kopia bat bidali ere?", - "forward_to": "{0}-ri birbidali", - "submit": "Bidali", - "generic_error": "Errore bat gertatu da zure eskaera prozesatzerakoan." - }, - "who_to_follow": { - "more": "Gehiago", - "who_to_follow": "Nori jarraitu" - }, - "tool_tip": { - "media_upload": "Multimedia igo", - "repeat": "Errepikatu", - "reply": "Erantzun", - "favorite": "Gogokoa", - "user_settings": "Erabiltzaile ezarpenak" - }, - "upload": { - "error": { - "base": "Igoerak huts egin du.", - "file_too_big": "Artxiboa haundiegia [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Saiatu berriro geroago" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "Erabiltzaileak", - "hashtags": "Traolak", - "person_talking": "{count} pertsona hitzegiten", - "people_talking": "{count} jende hitzegiten", - "no_results": "Emaitzarik ez" - }, - "password_reset": { - "forgot_password": "Pasahitza ahaztua?", - "password_reset": "Pasahitza berrezarri", - "instruction": "Idatzi zure helbide elektronikoa edo erabiltzaile izena. Pasahitza berrezartzeko esteka bidaliko dizugu.", - "placeholder": "Zure e-posta edo erabiltzaile izena", - "check_email": "Begiratu zure posta elektronikoa pasahitza berrezarri ahal izateko.", - "return_home": "Itzuli hasierara", - "too_many_requests": "Saiakera gehiegi burutu ditzu, saiatu berriro geroxeago.", - "password_reset_disabled": "Pasahitza berrezartzea debekatuta dago. Mesedez, jarri harremanetan instantzia administratzailearekin.", - "password_reset_required": "Pasahitza berrezarri behar duzu saioa hasteko.", - "password_reset_required_but_mailer_is_disabled": "Pasahitza berrezarri behar duzu, baina pasahitza berrezartzeko aukera desgaituta dago. Mesedez, jarri harremanetan instantziaren administratzailearekin." - }, - "about": { - "mrf": { - "keyword": { - "keyword_policies": "Gako-hitz politika", - "ftl_removal": "\"Ezagutzen den Sarea\" denbora-lerrotik ezabatu", - "is_replaced_by": "→", - "replace": "Ordezkatuak", - "reject": "Ukatuak" - }, - "federation": "Federazioa", - "simple": { - "media_nsfw_desc": "Instantzia honek hurrengo instantzien multimediak sentikorrak izatera behartzen ditu:", - "media_nsfw": "Behartu multimedia sentikor moduan", - "media_removal_desc": "Instantzia honek atxikitutako multimedia hurrengo instantzietatik ezabatzen ditu:", - "media_removal": "Multimedia Ezabatu", - "ftl_removal_desc": "Instantzia honek hurrengo instantziak ezabatzen ditu \"Ezagutzen den Sarea\" denbora-lerrotik:", - "ftl_removal": "\"Ezagutzen den Sarea\" denbora-lerrotik ezabatu", - "quarantine_desc": "Instantzia honek soilik mezu publikoak bidaliko ditu instantzia hauetara:", - "quarantine": "Koarentena", - "reject_desc": "Instantzia honek ez ditu hurrengo instantzien mezuak onartuko:", - "reject": "Ukatuak", - "accept_desc": "Instantzia honek hurrengo instantzietako mezuak soilik onartzen ditu:", - "accept": "Onartu", - "simple_policies": "Gure instantziaren politika zehatzak" - }, - "mrf_policies_desc": "MRF politikek instantzia honen federazioa manipulatzen dute gainerako instantziekin. Honako politika hauek daude gaituta:", - "mrf_policies": "Gaitutako MRF politikak" - }, - "staff": "Arduradunak" - }, - "domain_mute_card": { - "unmute_progress": "Isiltasuna kentzen…", - "unmute": "Isiltasuna kendu", - "mute_progress": "Isiltzen…", - "mute": "Isilarazi" - }, - "shoutbox": { - "title": "Oihu-kutxa" - }, - "errors": { - "storage_unavailable": "Pleromak ezin izan du nabigatzailearen biltegira sartu. Hasiera-saioa edo tokiko ezarpenak ez dira gordeko eta ustekabeko arazoak sor ditzake. Saiatu cookie-ak gaitzen." - }, - "remote_user_resolver": { - "searching_for": "Bilatzen", - "error": "Ez da aurkitu." - } -} +} \ No newline at end of file diff --git a/src/i18n/fa.json b/src/i18n/fa.json index 0e8bda4b..fab982df 100644 --- a/src/i18n/fa.json +++ b/src/i18n/fa.json @@ -1,155 +1,149 @@ { - "about": { - "mrf": { - "simple": { - "media_removal_desc": "این نمونه رسانه‌ی پیغام‌های نمونه‌های ذکر شده را حذف می‌کند:", - "ftl_removal_desc": "این نمونه،‌ نمونه‌های ذکر شده را از تایم‌لاین «تمام شبکه‌ شناخته شده» حذف می‌کند:", - "media_removal": "حذف رسانه", - "ftl_removal": "حذف از تایم‌لاین «تمام شبکه شناخته شده»", - "quarantine_desc": "این نمونه تنها پیغام‌های عمومی را به نمونه‌های ذکر شده پیغام ارسال می‌کند:", - "quarantine": "قرنطینه شده", - "reject_desc": "این نمونه از نمونه‌های ذکر شده پیغامی دریافت نمی‌کند:", - "reject": "رد کننده", - "accept_desc": "این نمونه تنها از نمونه‌های ذکر شده پیغام دریافت می‌کند:", - "simple_policies": "سیاست‌های مخصوص نمونه", - "accept": "دریافت کننده", - "media_nsfw_desc": "این نمونه،‌ رسانه نمونه‌های ذکر شده را به اجبار حساس می‌کند:", - "media_nsfw": "به اجبار حساس کردن رسانه" - }, - "federation": "فدراسیون", - "mrf_policies_desc": "سیاست‌های MRF رفتار فدراسیون این نمونه را تغییر می‌دهد. سیاست‌هایی که در ادامه آمده اعمال شده است:", - "keyword": { - "reject": "رد کننده", - "replace": "جایگزین کننده", - "keyword_policies": "سیاست‌های واژگان کلیدی", - "is_replaced_by": "→", - "ftl_removal": "حذف از تایم‌لاین «تمام شبکه شناخته شده»" - }, - "mrf_policies": "سیاست‌های MRF(وسیله بازنویسی پیغام) فعال شده" + "about": { + "mrf": { + "federation": "فدراسیون", + "keyword": { + "ftl_removal": "حذف از تایم‌لاین «تمام شبکه شناخته شده»", + "is_replaced_by": "→", + "keyword_policies": "سیاست‌های واژگان کلیدی", + "reject": "رد کننده", + "replace": "جایگزین کننده" + }, + "mrf_policies": "سیاست‌های MRF(وسیله بازنویسی پیغام) فعال شده", + "mrf_policies_desc": "سیاست‌های MRF رفتار فدراسیون این نمونه را تغییر می‌دهد. سیاست‌هایی که در ادامه آمده اعمال شده است:", + "simple": { + "accept": "دریافت کننده", + "accept_desc": "این نمونه تنها از نمونه‌های ذکر شده پیغام دریافت می‌کند:", + "ftl_removal": "حذف از تایم‌لاین «تمام شبکه شناخته شده»", + "ftl_removal_desc": "این نمونه،‌ نمونه‌های ذکر شده را از تایم‌لاین «تمام شبکه‌ شناخته شده» حذف می‌کند:", + "media_nsfw": "به اجبار حساس کردن رسانه", + "media_nsfw_desc": "این نمونه،‌ رسانه نمونه‌های ذکر شده را به اجبار حساس می‌کند:", + "media_removal": "حذف رسانه", + "media_removal_desc": "این نمونه رسانه‌ی پیغام‌های نمونه‌های ذکر شده را حذف می‌کند:", + "quarantine": "قرنطینه شده", + "quarantine_desc": "این نمونه تنها پیغام‌های عمومی را به نمونه‌های ذکر شده پیغام ارسال می‌کند:", + "reject": "رد کننده", + "reject_desc": "این نمونه از نمونه‌های ذکر شده پیغامی دریافت نمی‌کند:", + "simple_policies": "سیاست‌های مخصوص نمونه" + } + }, + "staff": "کارکنان" }, - "staff": "کارکنان" - }, - "image_cropper": { - "crop_picture": "برش تصویر", - "cancel": "لغو", - "save_without_cropping": "ذخیره بدون برش", - "save": "ذخیره" - }, - "notifications": { - "followed_you": "پیگیر شما شد", - "favorited_you": "پیغام شما را پسندید", - "broken_favorite": "پیغام ناشناخته، در حال جستجو…" - }, - "nav": { - "chats": "گپ‌ها", - "timelines": "تایم‌لاین‌ها", - "preferences": "ترجیحات", - "who_to_follow": "چه کسانی را پیگیری کنیم", - "search": "جستجو", - "user_search": "جستجوی کاربر", - "bookmarks": "نشانک‌ها", - "twkn": "شبکه شناخته شده", - "timeline": "تایم‌لاین", - "public_tl": "تایم‌لاین عمومی", - "dms": "پیغام‌های مستقیم", - "interactions": "تعاملات", - "mentions": "نام بردن‌ها", - "friend_requests": "درخواست پیگیری", - "back": "قبلی", - "administration": "مدیریت", - "about": "درباره" - }, - "features_panel": { - "who_to_follow": "چه کسانی را پیگیری کنیم", - "title": "ویژگی‌ها", - "text_limit": "محدودیت متن", - "scope_options": "تنظیمات حوزه", - "media_proxy": "پروکسی رسانه", - "gopher": "گوفر", - "pleroma_chat_messages": "گپ پلروما", - "chat": "گپ" - }, - "media_modal": { - "next": "بعدی", - "previous": "قبلی" - }, - "login": { - "heading": { - "recovery": "بازیابی دو مرحله‌ای", - "totp": "احراز هویت دو مرحله‌ای" + "chats": { + "chats": "گپ‌ها", + "delete": "حذف", + "delete_confirm": "آیا از حذف این پیغام اطمینان دارید؟", + "empty_chat_list_placeholder": "شما هنوز هیچ گپی ندارید، گپ جدیدی را آغاز کنید!", + "empty_message_error": "نمی‌توان پیغام خالی فرستاد", + "error_loading_chat": "در هنگام بارگذاری گپ خطایی رخ داد.", + "error_sending_message": "در حین ارسال پیغام خطایی رخ داد.", + "more": "بیشتر", + "new": "گپ جدید" }, - "enter_two_factor_code": "کد احراز هویت دو مرحله‌ای را وارد کنید", - "recovery_code": "کد بازیابی", - "enter_recovery_code": "کد بازیابی را وارد کنید", - "authentication_code": "کد احراز هویت", - "hint": "برای شرکت در گفتگو، وارد سامانه شوید", - "username": "نام کاربری", - "register": "ثبت نام", - "description": "ورود به سامانه از طریق OAuth", - "placeholder": "به عنوان مثال: lain", - "password": "رمز عبور", - "logout": "خروج از سامانه", - "login": "ورود به سامانه" - }, - "importer": { - "error": "در حین بارگذاری فایل خطایی رخ داد.", - "success": "با موفقیت بارگذاری شد.", - "submit": "ارسال" - }, - "general": { - "peek": "نگاه سریع", - "close": "بستن", - "verify": "تأیید", - "confirm": "تأیید", - "enable": "فعال", - "disable": "غیر فعال", - "cancel": "لغو", - "show_less": "کمتر نشان بده", - "show_more": "بیشتر نشان بده", - "optional": "اختیاری", - "retry": "دوباره امتحان کنید", - "error_retry": "لطفاً دوباره امتحان کنید", - "generic_error": "خطایی رخ داد", - "loading": "در حال بارگذاری…", - "more": "بیشتر", - "submit": "ارسال", - "apply": "اعمال" - }, - "finder": { - "find_user": "جستجوی ‌ کاربر", - "error_fetching_user": "دریافت کاربر با خطا مواجه شد" - }, - "exporter": { - "processing": "در حال پردازش، شما به زودی قادر به دانلود فایل خواهید بود", - "export": "صادر کردن" - }, - "domain_mute_card": { - "unmute": "صدا دار", - "unmute_progress": "در حال صدا دار کردن …", - "mute_progress": "در حال بی صدا کردن…", - "mute": "بی صدا" - }, - "shoutbox": { - "title": "چت باکس" - }, - "display_date": { - "today": "امروز" - }, - "file_type": { - "file": "فایل", - "image": "تصویر", - "video": "ویدئو", - "audio": "صدا" - }, - "chats": { - "empty_chat_list_placeholder": "شما هنوز هیچ گپی ندارید، گپ جدیدی را آغاز کنید!", - "delete": "حذف", - "error_sending_message": "در حین ارسال پیغام خطایی رخ داد.", - "error_loading_chat": "در هنگام بارگذاری گپ خطایی رخ داد.", - "delete_confirm": "آیا از حذف این پیغام اطمینان دارید؟", - "more": "بیشتر", - "empty_message_error": "نمی‌توان پیغام خالی فرستاد", - "new": "گپ جدید", - "chats": "گپ‌ها" - } -} + "display_date": { + "today": "امروز" + }, + "domain_mute_card": { + "mute": "بی صدا", + "mute_progress": "در حال بی صدا کردن…", + "unmute": "صدا دار", + "unmute_progress": "در حال صدا دار کردن …" + }, + "exporter": { + "export": "صادر کردن", + "processing": "در حال پردازش، شما به زودی قادر به دانلود فایل خواهید بود" + }, + "features_panel": { + "media_proxy": "پروکسی رسانه", + "scope_options": "تنظیمات حوزه", + "text_limit": "محدودیت متن", + "title": "ویژگی‌ها", + "who_to_follow": "چه کسانی را پیگیری کنیم" + }, + "file_type": { + "audio": "صدا", + "file": "فایل", + "image": "تصویر", + "video": "ویدئو" + }, + "finder": { + "error_fetching_user": "دریافت کاربر با خطا مواجه شد", + "find_user": "جستجوی ‌ کاربر" + }, + "general": { + "apply": "اعمال", + "cancel": "لغو", + "close": "بستن", + "confirm": "تأیید", + "disable": "غیر فعال", + "enable": "فعال", + "error_retry": "لطفاً دوباره امتحان کنید", + "generic_error": "خطایی رخ داد", + "loading": "در حال بارگذاری…", + "more": "بیشتر", + "optional": "اختیاری", + "peek": "نگاه سریع", + "retry": "دوباره امتحان کنید", + "show_less": "کمتر نشان بده", + "show_more": "بیشتر نشان بده", + "submit": "ارسال", + "verify": "تأیید" + }, + "image_cropper": { + "cancel": "لغو", + "crop_picture": "برش تصویر", + "save": "ذخیره", + "save_without_cropping": "ذخیره بدون برش" + }, + "importer": { + "error": "در حین بارگذاری فایل خطایی رخ داد.", + "submit": "ارسال", + "success": "با موفقیت بارگذاری شد." + }, + "login": { + "authentication_code": "کد احراز هویت", + "description": "ورود به سامانه از طریق OAuth", + "enter_recovery_code": "کد بازیابی را وارد کنید", + "enter_two_factor_code": "کد احراز هویت دو مرحله‌ای را وارد کنید", + "heading": { + "recovery": "بازیابی دو مرحله‌ای", + "totp": "احراز هویت دو مرحله‌ای" + }, + "hint": "برای شرکت در گفتگو، وارد سامانه شوید", + "login": "ورود به سامانه", + "logout": "خروج از سامانه", + "password": "رمز عبور", + "placeholder": "به عنوان مثال: lain", + "recovery_code": "کد بازیابی", + "register": "ثبت نام", + "username": "نام کاربری" + }, + "media_modal": { + "next": "بعدی", + "previous": "قبلی" + }, + "nav": { + "about": "درباره", + "administration": "مدیریت", + "back": "قبلی", + "bookmarks": "نشانک‌ها", + "chats": "گپ‌ها", + "dms": "پیغام‌های مستقیم", + "friend_requests": "درخواست پیگیری", + "interactions": "تعاملات", + "mentions": "نام بردن‌ها", + "preferences": "ترجیحات", + "public_tl": "تایم‌لاین عمومی", + "search": "جستجو", + "timeline": "تایم‌لاین", + "timelines": "تایم‌لاین‌ها", + "twkn": "شبکه شناخته شده", + "user_search": "جستجوی کاربر", + "who_to_follow": "چه کسانی را پیگیری کنیم" + }, + "notifications": { + "broken_favorite": "پیغام ناشناخته، در حال جستجو…", + "favorited_you": "پیغام شما را پسندید", + "followed_you": "پیگیر شما شد" + } +} \ No newline at end of file diff --git a/src/i18n/fi.json b/src/i18n/fi.json index dac47e85..9a1b15cf 100644 --- a/src/i18n/fi.json +++ b/src/i18n/fi.json @@ -1,779 +1,752 @@ { - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Media-välityspalvelin", - "scope_options": "Näkyvyyden rajaus", - "text_limit": "Tekstin pituusraja", - "title": "Ominaisuudet", - "who_to_follow": "Seurausehdotukset" - }, - "finder": { - "error_fetching_user": "Virhe hakiessa käyttäjää", - "find_user": "Hae käyttäjä" - }, - "general": { - "apply": "Aseta", - "submit": "Lähetä", - "more": "Lisää", - "generic_error": "Virhe tapahtui", - "optional": "valinnainen", - "show_more": "Näytä lisää", - "show_less": "Näytä vähemmän", - "dismiss": "Sulje", - "cancel": "Peruuta", - "disable": "Poista käytöstä", - "confirm": "Hyväksy", - "verify": "Varmenna", - "enable": "Ota käyttöön", - "loading": "Ladataan…", - "error_retry": "Yritä uudelleen", - "retry": "Yritä uudelleen", - "close": "Sulje", - "peek": "Kurkkaa" - }, - "login": { - "login": "Kirjaudu sisään", - "description": "Kirjaudu sisään OAuthilla", - "logout": "Kirjaudu ulos", - "password": "Salasana", - "placeholder": "esim. Seppo", - "register": "Rekisteröidy", - "username": "Käyttäjänimi", - "hint": "Kirjaudu sisään liittyäksesi keskusteluun", - "authentication_code": "Todennuskoodi", - "enter_recovery_code": "Syötä palautuskoodi", - "recovery_code": "Palautuskoodi", - "heading": { - "totp": "Monivaihetodennus", - "recovery": "Monivaihepalautus" - }, - "enter_two_factor_code": "Syötä monivaihetodennuskoodi" - }, - "nav": { - "about": "Tietoja", - "back": "Takaisin", - "chat": "Paikallinen Chat", - "friend_requests": "Seurauspyynnöt", - "mentions": "Maininnat", - "interactions": "Interaktiot", - "dms": "Yksityisviestit", - "public_tl": "Julkinen Aikajana", - "timeline": "Aikajana", - "twkn": "Tunnettu Verkosto", - "user_search": "Käyttäjähaku", - "who_to_follow": "Seurausehdotukset", - "preferences": "Asetukset", - "administration": "Ylläpito", - "search": "Haku", - "bookmarks": "Kirjanmerkit" - }, - "notifications": { - "broken_favorite": "Viestiä ei löydetty…", - "favorited_you": "tykkäsi viestistäsi", - "followed_you": "seuraa sinua", - "load_older": "Lataa vanhempia ilmoituksia", - "notifications": "Ilmoitukset", - "read": "Lue!", - "repeated_you": "toisti viestisi", - "no_more_notifications": "Ei enempää ilmoituksia", - "reacted_with": "lisäsi reaktion {0}", - "migrated_to": "siirtyi sivulle", - "follow_request": "haluaa seurata sinua" - }, - "polls": { - "add_poll": "Lisää äänestys", - "add_option": "Lisää vaihtoehto", - "option": "Vaihtoehto", - "votes": "ääntä", - "vote": "Äänestä", - "type": "Äänestyksen tyyppi", - "single_choice": "Yksi valinta", - "multiple_choices": "Monivalinta", - "expiry": "Äänestyksen kesto", - "expires_in": "Päättyy {0} päästä", - "expired": "Päättyi {0} sitten", - "not_enough_option": "Liian vähän uniikkeja vaihtoehtoja äänestyksessä", - "not_enough_options": "Liian vähän ainutkertaisia vaihtoehtoja" - }, - "interactions": { - "favs_repeats": "Toistot ja tykkäykset", - "follows": "Uudet seuraukset", - "load_older": "Lataa vanhempia interaktioita", - "moves": "Käyttäjien siirtymiset" - }, - "post_status": { - "new_status": "Uusi viesti", - "account_not_locked_warning": "Tilisi ei ole {0}. Kuka vain voi seurata sinua nähdäksesi 'vain-seuraajille' -viestisi.", - "account_not_locked_warning_link": "lukittu", - "attachments_sensitive": "Merkkaa liitteet arkaluonteisiksi", - "content_type": { - "text/plain": "Tavallinen teksti", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Aihe (valinnainen)", - "default": "Tulin juuri saunasta.", - "direct_warning": "Tämä viesti näkyy vain mainituille käyttäjille.", - "posting": "Lähetetään", - "scope": { - "direct": "Yksityisviesti - Näkyy vain mainituille käyttäjille", - "private": "Vain-seuraajille - Näkyy vain seuraajillesi", - "public": "Julkinen - Näkyy julkisilla aikajanoilla", - "unlisted": "Listaamaton - Ei näy julkisilla aikajanoilla" - }, - "direct_warning_to_all": "Tämä viesti näkyy vain viestissä mainituille käyttäjille.", - "direct_warning_to_first_only": "Tämä viesti näkyy vain viestin alussa mainituille käyttäjille.", - "scope_notice": { - "public": "Tämä viesti näkyy kaikille", - "private": "Tämä viesti näkyy vain sinun seuraajillesi", - "unlisted": "Tämä viesti ei näy Julkisella Aikajanalla tai Koko Tunnettu Verkosto -aikajanalla" - }, - "preview": "Esikatselu", - "preview_empty": "Tyhjä", - "empty_status_error": "Tyhjää viestiä ilman tiedostoja ei voi lähettää", - "media_description": "Tiedoston kuvaus", - "media_description_error": "Tiedostojen päivitys epäonnistui, yritä uudelleen" - }, - "registration": { - "bio": "Kuvaus", - "email": "Sähköposti", - "fullname": "Koko nimi", - "password_confirm": "Salasanan vahvistaminen", - "registration": "Rekisteröityminen", - "token": "Kutsuvaltuus", - "captcha": "Varmenne", - "new_captcha": "Paina kuvaa saadaksesi uuden varmenteen", - "validations": { - "username_required": "ei voi olla tyhjä", - "fullname_required": "ei voi olla tyhjä", - "email_required": "ei voi olla tyhjä", - "password_required": "ei voi olla tyhjä", - "password_confirmation_required": "ei voi olla tyhjä", - "password_confirmation_match": "pitää vastata salasanaa" - }, - "username_placeholder": "esim. peke", - "fullname_placeholder": "esim. Pekka Postaaja", - "bio_placeholder": "esim.\nHei, olen Pekka.\nOlen esimerkkikäyttäjä tässä verkostossa." - }, - "settings": { - "attachmentRadius": "Liitteet", - "attachments": "Liitteet", - "avatar": "Profiilikuva", - "avatarAltRadius": "Profiilikuvat (ilmoitukset)", - "avatarRadius": "Profiilikuvat", - "background": "Tausta", - "bio": "Kuvaus", - "btnRadius": "Napit", - "cBlue": "Sininen (Vastaukset, seuraukset)", - "cGreen": "Vihreä (Toistot)", - "cOrange": "Oranssi (Tykkäykset)", - "cRed": "Punainen (Peruminen)", - "change_password": "Vaihda salasana", - "change_password_error": "Virhe vaihtaessa salasanaa.", - "changed_password": "Salasana vaihdettu!", - "collapse_subject": "Minimoi viestit, joille on asetettu aihe", - "composing": "Viestien laatiminen", - "confirm_new_password": "Vahvista uusi salasana", - "current_avatar": "Nykyinen profiilikuvasi", - "current_password": "Nykyinen salasana", - "current_profile_banner": "Nykyinen julisteesi", - "data_import_export_tab": "Tietojen tuonti / vienti", - "default_vis": "Oletusnäkyvyysrajaus", - "delete_account": "Poista tili", - "delete_account_description": "Poista tietosi ja lukitse tili pysyvästi.", - "delete_account_error": "Virhe poistaessa tiliäsi. Jos virhe jatkuu, ota yhteyttä palvelimesi ylläpitoon.", - "delete_account_instructions": "Syötä salasanasi vahvistaaksesi tilin poiston.", - "emoji_reactions_on_timeline": "Näytä emojireaktiot aikajanalla", - "export_theme": "Tallenna teema", - "filtering": "Suodatus", - "filtering_explanation": "Kaikki viestit, jotka sisältävät näitä sanoja, suodatetaan. Yksi sana per rivi.", - "follow_export": "Seurausten vienti", - "follow_export_button": "Vie seurauksesi CSV-tiedostoon", - "follow_export_processing": "Käsitellään, sinua pyydetään lataamaan tiedosto hetken päästä", - "follow_import": "Seurausten tuonti", - "follow_import_error": "Virhe tuodessa seuraksia", - "follows_imported": "Seuraukset tuotu! Niiden käsittely vie hetken.", - "foreground": "Etuala", - "general": "Yleinen", - "hide_attachments_in_convo": "Piilota liitteet keskusteluissa", - "hide_attachments_in_tl": "Piilota liitteet aikajanalla", - "max_thumbnails": "Suurin sallittu määrä liitteitä esikatselussa", - "hide_isp": "Piilota palvelimenkohtainen ruutu", - "preload_images": "Esilataa kuvat", - "use_one_click_nsfw": "Avaa NSFW-liitteet yhdellä painalluksella", - "hide_post_stats": "Piilota viestien statistiikka (esim. tykkäysten määrä)", - "hide_user_stats": "Piilota käyttäjien statistiikka (esim. seuraajien määrä)", - "import_followers_from_a_csv_file": "Tuo seuraukset CSV-tiedostosta", - "import_theme": "Tuo tallennettu teema", - "inputRadius": "Syöttökentät", - "checkboxRadius": "Valintalaatikot", - "instance_default": "(oletus: {value})", - "instance_default_simple": "(oletus)", - "interface": "Käyttöliittymä", - "interfaceLanguage": "Käyttöliittymän kieli", - "invalid_theme_imported": "Tuotu tallennettu teema on epäkelpo, muutoksia ei tehty nykyiseen teemaasi.", - "limited_availability": "Ei saatavilla selaimessasi", - "links": "Linkit", - "lock_account_description": "Vain erikseen hyväksytyt käyttäjät voivat seurata tiliäsi", - "loop_video": "Uudelleentoista videot", - "loop_video_silent_only": "Uudelleentoista ainoastaan äänettömät videot (Video-\"giffit\")", - "play_videos_in_modal": "Toista videot modaalissa", - "use_contain_fit": "Älä rajaa liitteitä esikatselussa", - "name": "Nimi", - "name_bio": "Nimi ja kuvaus", - "new_password": "Uusi salasana", - "notification_visibility": "Ilmoitusten näkyvyys", - "notification_visibility_follows": "Seuraukset", - "notification_visibility_likes": "Tykkäykset", - "notification_visibility_mentions": "Maininnat", - "notification_visibility_repeats": "Toistot", - "notification_visibility_emoji_reactions": "Reaktiot", - "no_rich_text_description": "Älä näytä tekstin muotoilua", - "hide_network_description": "Älä näytä seurauksiani tai seuraajiani", - "nsfw_clickthrough": "Piilota NSFW liitteet klikkauksen taakse", - "oauth_tokens": "OAuth-merkit", - "token": "Token", - "refresh_token": "Päivitä token", - "valid_until": "Voimassa asti", - "revoke_token": "Peruuta", - "panelRadius": "Ruudut", - "pause_on_unfocused": "Pysäytä automaattinen viestien näyttö välilehden ollessa pois fokuksesta", - "presets": "Valmiit teemat", - "profile_background": "Taustakuva", - "profile_banner": "Juliste", - "profile_tab": "Profiili", - "radii_help": "Aseta reunojen pyöristys (pikseleinä)", - "replies_in_timeline": "Keskustelut aikajanalla", - "reply_visibility_all": "Näytä kaikki vastaukset", - "reply_visibility_following": "Näytä vain vastaukset minulle tai seuraamilleni käyttäjille", - "reply_visibility_self": "Näytä vain vastaukset minulle", - "saving_err": "Virhe tallentaessa asetuksia", - "saving_ok": "Asetukset tallennettu", - "security_tab": "Tietoturva", - "scope_copy": "Kopioi näkyvyysrajaus vastatessa (Yksityisviestit aina kopioivat)", - "set_new_avatar": "Aseta uusi profiilikuva", - "set_new_profile_background": "Aseta uusi taustakuva", - "set_new_profile_banner": "Aseta uusi juliste", - "settings": "Asetukset", - "subject_input_always_show": "Näytä aihe-kenttä", - "subject_line_behavior": "Aihe-kentän kopiointi", - "subject_line_email": "Kuten sähköposti: \"re: aihe\"", - "subject_line_mastodon": "Kopioi sellaisenaan", - "subject_line_noop": "Älä kopioi", - "stop_gifs": "Toista giffit vain kohdistaessa", - "streaming": "Näytä uudet viestit automaattisesti ollessasi ruudun huipulla", - "text": "Teksti", - "theme": "Teema", - "theme_help": "Käytä heksadesimaalivärejä muokataksesi väriteemaasi.", - "theme_help_v2_1": "Voit asettaa tiettyjen osien värin tai läpinäkyvyyden täyttämällä valintalaatikon, käytä \"Tyhjennä kaikki\"-nappia tyhjentääksesi kaiken.", - "theme_help_v2_2": "Ikonit kenttien alla ovat kontrasti-indikaattoreita, lisätietoa kohdistamalla. Käyttäessä läpinäkyvyyttä ne näyttävät pahimman skenaarion.", - "tooltipRadius": "Ohje- tai huomioviestit", - "user_settings": "Käyttäjän asetukset", - "values": { - "false": "pois päältä", - "true": "päällä" - }, - "hide_follows_description": "Älä näytä ketä seuraan", - "show_moderator_badge": "Näytä Moderaattori-merkki profiilissani", - "useStreamingApi": "Vastaanota viestiejä ja ilmoituksia reaaliajassa", - "notification_setting_filters": "Suodattimet", - "notification_setting_privacy_option": "Piilota lähettäjä ja sisältö sovelluksen ulkopuolisista ilmoituksista", - "enable_web_push_notifications": "Ota käyttöön sovelluksen ulkopuoliset ilmoitukset", - "app_name": "Sovelluksen nimi", - "security": "Turvallisuus", - "mfa": { - "otp": "OTP", - "setup_otp": "OTP-asetukset", - "wait_pre_setup_otp": "esiasetetaan OTP:ta", - "confirm_and_enable": "Hyväksy ja käytä OTP", - "title": "Monivaihetodennus", - "generate_new_recovery_codes": "Luo uudet palautuskoodit", - "authentication_methods": "Todennus", - "warning_of_generate_new_codes": "Luodessasi uudet palautuskoodit, vanhat koodisi lakkaavat toimimasta.", - "recovery_codes": "Palautuskoodit.", - "waiting_a_recovery_codes": "Odotetaan palautuskoodeja…", - "recovery_codes_warning": "Kirjoita koodit ylös tai tallenna ne turvallisesti, muuten et näe niitä uudestaan. Jos et voi käyttää monivaihetodennusta ja sinulla ei ole palautuskoodeja, et voi enää kirjautua sisään tilillesi.", - "scan": { - "title": "Skannaa", - "secret_code": "Avain", - "desc": "Käytä monivaihetodennus-sovellusta skannakksesi tämän QR-kooding, tai syötä avain:" - }, - "verify": { - "desc": "Kytkeäksesi päälle monivaihetodennuksen, syötä koodi monivaihetodennussovellksesta:" - } - }, - "allow_following_move": "Salli automaattinen seuraaminen kun käyttäjä siirtää tilinsä", - "block_export": "Estojen vienti", - "block_export_button": "Vie estosi CSV-tiedostoon", - "block_import": "Estojen tuonti", - "block_import_error": "Virhe tuodessa estoja", - "blocks_imported": "Estot tuotu! Käsittely vie hetken.", - "blocks_tab": "Estot", - "change_email": "Vaihda sähköpostiosoite", - "change_email_error": "Virhe vaihtaessa sähköpostiosoitetta.", - "changed_email": "Sähköpostiosoite vaihdettu!", - "domain_mutes": "Sivut", - "avatar_size_instruction": "Suositeltu vähimmäiskoko profiilikuville on 150x150 pikseliä.", - "accent": "Korostus", - "hide_muted_posts": "Piilota mykistettyjen käyttäjien viestit", - "hide_filtered_statuses": "Piilota mykistetyt viestit", - "import_blocks_from_a_csv_file": "Tuo estot CSV-tiedostosta", - "no_blocks": "Ei estoja", - "no_mutes": "Ei mykistyksiä", - "notification_visibility_moves": "Käyttäjien siirtymiset", - "hide_followers_description": "Älä näytä ketkä seuraavat minua", - "hide_follows_count_description": "Älä näytä seurauksien määrää", - "hide_followers_count_description": "Älä näytä seuraajien määrää", - "show_admin_badge": "Näytä Ylläpitäjä-merkki proofilissani", - "autohide_floating_post_button": "Piilota Uusi Viesti -nappi automaattisesti (mobiili)", - "search_user_to_block": "Hae estettäviä käyttäjiä", - "search_user_to_mute": "Hae mykistettäviä käyttäjiä", - "minimal_scopes_mode": "Yksinkertaista näkyvyydenrajauksen vaihtoehdot", - "post_status_content_type": "Uuden viestin sisällön muoto", - "user_mutes": "Käyttäjät", - "useStreamingApiWarning": "(Kokeellinen)", - "type_domains_to_mute": "Etsi mykistettäviä sivustoja", - "upload_a_photo": "Lataa kuva", - "fun": "Hupi", - "greentext": "Meeminuolet", - "notifications": "Ilmoitukset", - "style": { - "switcher": { - "save_load_hint": "\"Säilytä\" asetukset säilyttävät tällä hetkellä asetetut asetukset valittaessa tai ladatessa teemaa, se myös tallentaa kyseiset asetukset viedessä teemaa. Kun kaikki laatikot ovat tyhjänä, viety teema tallentaa kaiken.", - "help": { - "older_version_imported": "Tuomasi tiedosto on luotu vanhemmalla versiolla.", - "fe_upgraded": "PleromaFE:n teemaus päivitetty versiopäivityksen yhteydessä.", - "migration_snapshot_ok": "Varmuuden vuoksi teeman kaappaus ladattu. Voit koittaa ladata teeman sisällön.", - "migration_napshot_gone": "Jostain syystä teeman kaappaus puuttuu, kaikki asiat eivät välttämättä näytä oikealta.", - "snapshot_source_mismatch": "Versiot eivät täsmää: todennäköisesti versio vaihdettu vanhempaan ja päivitetty uudestaan, jos vaihdoit teemaa vanhalla versiolla, sinun tulisi käyttää vanhaa versiota, muutoin uutta.", - "upgraded_from_v2": "PleromaFE on päivitetty, teemasi saattaa näyttää erilaiselta kuin muistat.", - "v2_imported": "Tuomasi tiedosto on luotu vanhemmalla versiolla. Yhteensopivuus ei välttämättä ole täydellinen.", - "future_version_imported": "Tuomasi tiedosto on luotu uudemmalla versiolla.", - "snapshot_present": "Teeman kaappaus ladattu, joten kaikki arvot ovat ylikirjoitettu. Voit sen sijaan ladata teeman sisällön.", - "snapshot_missing": "Teeman kaappausta ei tiedostossa, joten se voi näyttää erilaiselta kuin suunniteltu.", - "fe_downgraded": "PleromaFE:n versio vaihtunut vanhempaan." + "about": { + "mrf": { + "federation": "Federaatio", + "keyword": { + "ftl_removal": "Poistettu \"Koko Tunnettu Verkosto\" -aikajanalta", + "is_replaced_by": "→", + "keyword_policies": "Avainsanasäännöt", + "reject": "Hylkää", + "replace": "Korvaa" + }, + "mrf_policies": "Aktivoidut MRF-säännöt", + "mrf_policies_desc": "MRF-säännöt muuttavat federaation toimintaa sivulla. Seuraavat säännöt ovat kytketty päälle:", + "simple": { + "accept": "Hyväksy", + "accept_desc": "Tämä palvelin hyväksyy viestit vain seuraavilta palvelimilta:", + "ftl_removal": "Poisto \"Koko Tunnettu Verkosto\" -aikajanalta", + "ftl_removal_desc": "Tämä palvelin poistaa nämä palvelimet \"Koko Tunnettu Verkosto\"-aikajanalta:", + "media_nsfw": "Pakota Media Arkaluontoiseksi", + "media_nsfw_desc": "Tämä palvelin pakottaa mediatiedostot arkaluonteisiksi seuraavilta palvelimilta:", + "media_removal": "Media-tiedostojen poisto", + "media_removal_desc": "Tämä palvelin postaa mediatiedostot viesteistä seuraavilta palvelimilta:", + "quarantine": "Karanteeni", + "quarantine_desc": "Tämä palvelin lähettää vain julkisia viestejä seuraaville palvelimille:", + "reject": "Hylkää", + "reject_desc": "Tämä palvelin ei hyväksy viestejä seuraavilta palvelimilta:", + "simple_policies": "Palvelinkohtaiset Säännöt" + } }, - "keep_color": "Säilytä värit", - "keep_shadows": "Säilytä varjot", - "keep_opacity": "Säilytä läpinäkyvyys", - "keep_roundness": "Säilytä pyöristys", - "keep_fonts": "Säilytä fontit", - "reset": "Palauta", - "clear_all": "Tyhjennä kaikki", - "clear_opacity": "Tyhjennä läpinäkyvyys", - "load_theme": "Lataa teema", - "keep_as_is": "Pidä sellaisenaan", - "use_snapshot": "Vanha", - "use_source": "Uusi" - }, - "advanced_colors": { - "selectedPost": "Valittu viesti", - "_tab_label": "Edistynyt", - "alert": "Varoituksen tausta", - "alert_error": "Virhe", - "alert_warning": "Varoitus", - "alert_neutral": "Neutraali", - "post": "Viestit/Käyttäjien kuvaukset", - "badge": "Merkin tausta", - "badge_notification": "Ilmoitus", - "panel_header": "Ruudun otsikko", - "top_bar": "Yläpalkki", - "borders": "Reunat", - "buttons": "Napit", - "inputs": "Syöttökentät", - "faint_text": "Häivytetty teksti", - "underlay": "Taustapeite", - "poll": "Äänestyksen kuvaaja", - "icons": "Ikonit", - "highlight": "Korostetut elementit", - "pressed": "Painettu", - "selectedMenu": "Valikon valinta", - "disabled": "Pois käytöstä", - "toggled": "Kytketty", - "tabs": "Välilehdet", - "popover": "Työkaluvinkit, valikot, ponnahdusviestit" - }, - "common": { - "color": "Väri", - "opacity": "Läpinäkyvyys", - "contrast": { - "level": { - "aaa": "saavuttaa AAA-tason (suositeltu)", - "aa": "saavuttaa AA-tason (minimi)", - "bad": "ei saavuta mitään helppokäyttöisyyssuosituksia" - }, - "hint": "Kontrastisuhde on {ratio}, se {level} {context}", - "context": { - "18pt": "suurella (18pt+) tekstillä", - "text": "tekstillä" - } + "staff": "Henkilökunta" + }, + "domain_mute_card": { + "mute": "Mykistä", + "mute_progress": "Mykistetään…", + "unmute": "Poista mykistys", + "unmute_progress": "Poistetaan mykistystä…" + }, + "emoji": { + "add_emoji": "Lisää emoji", + "custom": "Custom-emoji", + "emoji": "Emoji", + "keep_open": "Pidä valitsin auki", + "load_all": "Ladataan kaikkia {emojiAmount} emojia", + "load_all_hint": "Ensimmäiset {saneAmount} emojia ladattu, kaikkien emojien lataaminen voi aiheuttaa hidastelua.", + "search_emoji": "Hae emojia", + "stickers": "Tarrat", + "unicode": "Unicode-emoji" + }, + "errors": { + "storage_unavailable": "Pleroma ei voinut käyttää selaimen muistia. Kirjautumisesi ja paikalliset asetukset eivät tallennu ja saatat kohdata odottamattomia ongelmia. Yritä sallia evästeet." + }, + "exporter": { + "export": "Vie", + "processing": "Käsitellään, hetken päästä voit tallentaa tiedoston" + }, + "features_panel": { + "media_proxy": "Media-välityspalvelin", + "scope_options": "Näkyvyyden rajaus", + "text_limit": "Tekstin pituusraja", + "title": "Ominaisuudet", + "who_to_follow": "Seurausehdotukset" + }, + "finder": { + "error_fetching_user": "Virhe hakiessa käyttäjää", + "find_user": "Hae käyttäjä" + }, + "general": { + "apply": "Aseta", + "cancel": "Peruuta", + "close": "Sulje", + "confirm": "Hyväksy", + "disable": "Poista käytöstä", + "dismiss": "Sulje", + "enable": "Ota käyttöön", + "error_retry": "Yritä uudelleen", + "generic_error": "Virhe tapahtui", + "loading": "Ladataan…", + "more": "Lisää", + "optional": "valinnainen", + "peek": "Kurkkaa", + "retry": "Yritä uudelleen", + "show_less": "Näytä vähemmän", + "show_more": "Näytä lisää", + "submit": "Lähetä", + "verify": "Varmenna" + }, + "image_cropper": { + "cancel": "Peruuta", + "crop_picture": "Rajaa kuva", + "save": "Tallenna", + "save_without_cropping": "Tallenna rajaamatta" + }, + "importer": { + "error": "Virhe tapahtui tietoja tuodessa.", + "submit": "Hyväksy", + "success": "Tuonti onnistui." + }, + "interactions": { + "favs_repeats": "Toistot ja tykkäykset", + "follows": "Uudet seuraukset", + "load_older": "Lataa vanhempia interaktioita", + "moves": "Käyttäjien siirtymiset" + }, + "login": { + "authentication_code": "Todennuskoodi", + "description": "Kirjaudu sisään OAuthilla", + "enter_recovery_code": "Syötä palautuskoodi", + "enter_two_factor_code": "Syötä monivaihetodennuskoodi", + "heading": { + "recovery": "Monivaihepalautus", + "totp": "Monivaihetodennus" + }, + "hint": "Kirjaudu sisään liittyäksesi keskusteluun", + "login": "Kirjaudu sisään", + "logout": "Kirjaudu ulos", + "password": "Salasana", + "placeholder": "esim. Seppo", + "recovery_code": "Palautuskoodi", + "register": "Rekisteröidy", + "username": "Käyttäjänimi" + }, + "media_modal": { + "next": "Seuraava", + "previous": "Edellinen" + }, + "nav": { + "about": "Tietoja", + "administration": "Ylläpito", + "back": "Takaisin", + "bookmarks": "Kirjanmerkit", + "dms": "Yksityisviestit", + "friend_requests": "Seurauspyynnöt", + "interactions": "Interaktiot", + "mentions": "Maininnat", + "preferences": "Asetukset", + "public_tl": "Julkinen Aikajana", + "search": "Haku", + "timeline": "Aikajana", + "twkn": "Tunnettu Verkosto", + "user_search": "Käyttäjähaku", + "who_to_follow": "Seurausehdotukset" + }, + "notifications": { + "broken_favorite": "Viestiä ei löydetty…", + "favorited_you": "tykkäsi viestistäsi", + "follow_request": "haluaa seurata sinua", + "followed_you": "seuraa sinua", + "load_older": "Lataa vanhempia ilmoituksia", + "migrated_to": "siirtyi sivulle", + "no_more_notifications": "Ei enempää ilmoituksia", + "notifications": "Ilmoitukset", + "reacted_with": "lisäsi reaktion {0}", + "read": "Lue!", + "repeated_you": "toisti viestisi" + }, + "password_reset": { + "check_email": "Tarkista sähköpostisi salasanannollausta varten.", + "forgot_password": "Unohditko salasanan?", + "instruction": "Syötä sähköpostiosoite tai käyttäjänimi. Lähetämme linkin salasanan nollausta varten.", + "password_reset": "Salasanan nollaus", + "password_reset_disabled": "Salasanan nollaus ei käytössä. Ota yhteyttä sivun ylläpitäjään.", + "password_reset_required": "Sinun täytyy vaihtaa salasana kirjautuaksesi.", + "password_reset_required_but_mailer_is_disabled": "Sinun täytyy vaihtaa salasana, mutta salasanan nollaus on pois käytöstä. Ota yhteyttä sivun ylläpitäjään.", + "placeholder": "Sähköpostiosoite tai käyttäjänimi", + "return_home": "Palaa etusivulle", + "too_many_requests": "Olet käyttänyt kaikki yritykset, yritä uudelleen myöhemmin." + }, + "polls": { + "add_option": "Lisää vaihtoehto", + "add_poll": "Lisää äänestys", + "expired": "Päättyi {0} sitten", + "expires_in": "Päättyy {0} päästä", + "expiry": "Äänestyksen kesto", + "multiple_choices": "Monivalinta", + "not_enough_options": "Liian vähän ainutkertaisia vaihtoehtoja", + "option": "Vaihtoehto", + "single_choice": "Yksi valinta", + "type": "Äänestyksen tyyppi", + "vote": "Äänestä", + "votes": "ääntä" + }, + "post_status": { + "account_not_locked_warning": "Tilisi ei ole {0}. Kuka vain voi seurata sinua nähdäksesi 'vain-seuraajille' -viestisi.", + "account_not_locked_warning_link": "lukittu", + "attachments_sensitive": "Merkkaa liitteet arkaluonteisiksi", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Tavallinen teksti" + }, + "content_warning": "Aihe (valinnainen)", + "default": "Tulin juuri saunasta.", + "direct_warning_to_all": "Tämä viesti näkyy vain viestissä mainituille käyttäjille.", + "direct_warning_to_first_only": "Tämä viesti näkyy vain viestin alussa mainituille käyttäjille.", + "empty_status_error": "Tyhjää viestiä ilman tiedostoja ei voi lähettää", + "media_description": "Tiedoston kuvaus", + "media_description_error": "Tiedostojen päivitys epäonnistui, yritä uudelleen", + "new_status": "Uusi viesti", + "posting": "Lähetetään", + "preview": "Esikatselu", + "preview_empty": "Tyhjä", + "scope": { + "direct": "Yksityisviesti - Näkyy vain mainituille käyttäjille", + "private": "Vain-seuraajille - Näkyy vain seuraajillesi", + "public": "Julkinen - Näkyy julkisilla aikajanoilla", + "unlisted": "Listaamaton - Ei näy julkisilla aikajanoilla" + }, + "scope_notice": { + "private": "Tämä viesti näkyy vain sinun seuraajillesi", + "public": "Tämä viesti näkyy kaikille", + "unlisted": "Tämä viesti ei näy Julkisella Aikajanalla tai Koko Tunnettu Verkosto -aikajanalla" } - }, - "common_colors": { - "_tab_label": "Yleinen", - "main": "Yleiset värit", - "foreground_hint": "Löydät \"Edistynyt\"-välilehdeltä tarkemmat asetukset", - "rgbo": "Ikonit, korostukset, merkit" - }, - "shadows": { - "filter_hint": { - "always_drop_shadow": "Varoitus, tämä varjo käyttää aina {0} kun selain tukee sitä.", - "avatar_inset": "Huom. sisennettyjen ja ei-sisennettyjen varjojen yhdistelmät saattavat luoda ei-odotettuja lopputuloksia läpinäkyvillä profiilikuvilla.", - "drop_shadow_syntax": "{0} ei tue {1} parametria ja {2} avainsanaa.", - "spread_zero": "Varjot joiden levitys > 0 näyttävät samalta kuin se olisi nolla", - "inset_classic": "Sisennetyt varjot käyttävät {0}" - }, - "components": { - "buttonPressedHover": "Nappi (painettu ja kohdistettu)", - "panel": "Ruutu", - "panelHeader": "Ruudun otsikko", - "topBar": "Yläpalkki", - "avatar": "Profiilikuva (profiilinäkymässä)", - "avatarStatus": "Profiilikuva (viestin yhtyedessä)", - "popup": "Ponnahdusviestit ja työkaluvinkit", - "button": "Nappi", - "buttonHover": "Nappi (kohdistus)", - "buttonPressed": "Nappi (painettu)", - "input": "Syöttökenttä" - }, - "hintV3": "Voit käyttää {0} merkintää varjoille käyttääksesi väriä toisesta asetuksesta.", - "_tab_label": "Valo ja varjostus", - "component": "Komponentti", - "override": "Ylikirjoita", - "shadow_id": "Varjo #{value}", - "blur": "Sumennus", - "spread": "Levitys", - "inset": "Sisennys" - }, - "fonts": { - "help": "Valitse fontti käyttöliittymälle. \"Oma\"-vaihtohdolle on syötettävä fontin nimi tarkalleen samana kuin se on järjestelmässäsi.", - "_tab_label": "Fontit", - "components": { - "interface": "Käyttöliittymä", - "input": "Syöttökentät", - "post": "Viestin teksti", - "postCode": "Tasavälistetty teksti viestissä" - }, - "family": "Fontin nimi", - "size": "Koko (pikseleissä)", - "weight": "Painostus (paksuus)", - "custom": "Oma" - }, - "preview": { - "input": "Tulin juuri saunasta.", - "header": "Esikatselu", - "content": "Sisältö", - "error": "Esimerkkivirhe", - "button": "Nappi", - "text": "Vähän lisää {0} ja {1}", - "mono": "sisältöä", - "faint_link": "manuaali", - "fine_print": "Lue meidän {0} vaikka huvin vuoksi!", - "header_faint": "Tämä on OK", - "checkbox": "Olen silmäillyt käyttöehdot", - "link": "kiva linkki" - }, - "radii": { - "_tab_label": "Pyöristys" - } }, - "enter_current_password_to_confirm": "Syötä nykyinen salasanasi todentaaksesi henkilöllisyytesi", - "discoverable": "Salli tilisi näkyvyys hakukoneisiin ja muihin palveluihin", - "pad_emoji": "Välistä emojit välilyönneillä lisätessäsi niitä valitsimesta", - "mutes_tab": "Mykistykset", - "new_email": "Uusi sähköpostiosoite", - "notification_setting_privacy": "Yksityisyys", - "notification_mutes": "Jos et halua ilmoituksia joltain käyttäjältä, käytä mykistystä.", - "notification_blocks": "Estäminen pysäyttää kaikki ilmoitukset käyttäjältä ja poistaa seurauksen.", - "version": { - "title": "Versio", - "backend_version": "Palvelimen versio", - "frontend_version": "Käyttöliittymän versio" + "registration": { + "bio": "Kuvaus", + "bio_placeholder": "esim.\nHei, olen Pekka.\nOlen esimerkkikäyttäjä tässä verkostossa.", + "captcha": "Varmenne", + "email": "Sähköposti", + "fullname": "Koko nimi", + "fullname_placeholder": "esim. Pekka Postaaja", + "new_captcha": "Paina kuvaa saadaksesi uuden varmenteen", + "password_confirm": "Salasanan vahvistaminen", + "registration": "Rekisteröityminen", + "token": "Kutsuvaltuus", + "username_placeholder": "esim. peke", + "validations": { + "email_required": "ei voi olla tyhjä", + "fullname_required": "ei voi olla tyhjä", + "password_confirmation_match": "pitää vastata salasanaa", + "password_confirmation_required": "ei voi olla tyhjä", + "password_required": "ei voi olla tyhjä", + "username_required": "ei voi olla tyhjä" + } }, - "reset_profile_background": "Nollaa taustakuva", - "reset_background_confirm": "Haluatko todella nollata taustakuvan?", - "mutes_and_blocks": "Mykistykset ja Estot", - "bot": "Tämä on bottitili", - "profile_fields": { - "label": "Profiilin metatiedot", - "add_field": "Lisää kenttä", - "name": "Nimi", - "value": "Sisältö" + "remote_user_resolver": { + "error": "Ei löytynyt.", + "remote_user_resolver": "Ulkopuolinen käyttäjä", + "searching_for": "Etsitään käyttäjää" }, - "reset_avatar": "Nollaa profiilikuva", - "reset_profile_banner": "Nollaa profiilin tausta", - "reset_avatar_confirm": "Haluatko todella nollata profiilikuvan?", - "reset_banner_confirm": "Haluatko todella nollata profiilin taustan?" - }, - "time": { - "now": "juuri nyt", - "now_short": "nyt", - "in_future": "{0} tulevaisuudessa", - "in_past": "{0} sitten", - "unit": { - "day": "{0} päivä", - "days": "{0} päivää", - "day_short": "{0}pv", - "days_short": "{0}pv", - "hour": "{0} tunti", - "hours": "{0} tuntia", - "hour_short": "{0}t", - "hours_short": "{0}t", - "minute": "{0} minuutti", - "minutes": "{0} minuuttia", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} kuukausi", - "months": "{0} kuukautta", - "month_short": "{0}kk", - "months_short": "{0}kk", - "second": "{0} sekunti", - "seconds": "{0} sekuntia", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} viikko", - "weeks": "{0} viikkoa", - "week_short": "{0}vk", - "weeks_short": "{0}vk", - "year": "{0} vuosi", - "years": "{0} vuotta", - "year_short": "{0}v", - "years_short": "{0}v" + "search": { + "hashtags": "Aihetunnisteet", + "no_results": "Ei tuloksia", + "people": "Käyttäjät", + "people_talking": "{0} käyttäjää puhuvat", + "person_talking": "{0} käyttäjä puhuu" + }, + "selectable_list": { + "select_all": "Valitse kaikki" + }, + "settings": { + "accent": "Korostus", + "allow_following_move": "Salli automaattinen seuraaminen kun käyttäjä siirtää tilinsä", + "app_name": "Sovelluksen nimi", + "attachmentRadius": "Liitteet", + "attachments": "Liitteet", + "autohide_floating_post_button": "Piilota Uusi Viesti -nappi automaattisesti (mobiili)", + "avatar": "Profiilikuva", + "avatarAltRadius": "Profiilikuvat (ilmoitukset)", + "avatarRadius": "Profiilikuvat", + "avatar_size_instruction": "Suositeltu vähimmäiskoko profiilikuville on 150x150 pikseliä.", + "background": "Tausta", + "bio": "Kuvaus", + "block_export": "Estojen vienti", + "block_export_button": "Vie estosi CSV-tiedostoon", + "block_import": "Estojen tuonti", + "block_import_error": "Virhe tuodessa estoja", + "blocks_imported": "Estot tuotu! Käsittely vie hetken.", + "blocks_tab": "Estot", + "bot": "Tämä on bottitili", + "btnRadius": "Napit", + "cBlue": "Sininen (Vastaukset, seuraukset)", + "cGreen": "Vihreä (Toistot)", + "cOrange": "Oranssi (Tykkäykset)", + "cRed": "Punainen (Peruminen)", + "change_email": "Vaihda sähköpostiosoite", + "change_email_error": "Virhe vaihtaessa sähköpostiosoitetta.", + "change_password": "Vaihda salasana", + "change_password_error": "Virhe vaihtaessa salasanaa.", + "changed_email": "Sähköpostiosoite vaihdettu!", + "changed_password": "Salasana vaihdettu!", + "checkboxRadius": "Valintalaatikot", + "collapse_subject": "Minimoi viestit, joille on asetettu aihe", + "composing": "Viestien laatiminen", + "confirm_new_password": "Vahvista uusi salasana", + "current_avatar": "Nykyinen profiilikuvasi", + "current_password": "Nykyinen salasana", + "data_import_export_tab": "Tietojen tuonti / vienti", + "default_vis": "Oletusnäkyvyysrajaus", + "delete_account": "Poista tili", + "delete_account_description": "Poista tietosi ja lukitse tili pysyvästi.", + "delete_account_error": "Virhe poistaessa tiliäsi. Jos virhe jatkuu, ota yhteyttä palvelimesi ylläpitoon.", + "delete_account_instructions": "Syötä salasanasi vahvistaaksesi tilin poiston.", + "discoverable": "Salli tilisi näkyvyys hakukoneisiin ja muihin palveluihin", + "domain_mutes": "Sivut", + "emoji_reactions_on_timeline": "Näytä emojireaktiot aikajanalla", + "enable_web_push_notifications": "Ota käyttöön sovelluksen ulkopuoliset ilmoitukset", + "enter_current_password_to_confirm": "Syötä nykyinen salasanasi todentaaksesi henkilöllisyytesi", + "export_theme": "Tallenna teema", + "filtering": "Suodatus", + "filtering_explanation": "Kaikki viestit, jotka sisältävät näitä sanoja, suodatetaan. Yksi sana per rivi.", + "follow_export": "Seurausten vienti", + "follow_export_button": "Vie seurauksesi CSV-tiedostoon", + "follow_import": "Seurausten tuonti", + "follow_import_error": "Virhe tuodessa seuraksia", + "follows_imported": "Seuraukset tuotu! Niiden käsittely vie hetken.", + "foreground": "Etuala", + "fun": "Hupi", + "general": "Yleinen", + "greentext": "Meeminuolet", + "hide_attachments_in_convo": "Piilota liitteet keskusteluissa", + "hide_attachments_in_tl": "Piilota liitteet aikajanalla", + "hide_filtered_statuses": "Piilota mykistetyt viestit", + "hide_followers_count_description": "Älä näytä seuraajien määrää", + "hide_followers_description": "Älä näytä ketkä seuraavat minua", + "hide_follows_count_description": "Älä näytä seurauksien määrää", + "hide_follows_description": "Älä näytä ketä seuraan", + "hide_isp": "Piilota palvelimenkohtainen ruutu", + "hide_muted_posts": "Piilota mykistettyjen käyttäjien viestit", + "hide_post_stats": "Piilota viestien statistiikka (esim. tykkäysten määrä)", + "hide_user_stats": "Piilota käyttäjien statistiikka (esim. seuraajien määrä)", + "import_blocks_from_a_csv_file": "Tuo estot CSV-tiedostosta", + "import_followers_from_a_csv_file": "Tuo seuraukset CSV-tiedostosta", + "import_theme": "Tuo tallennettu teema", + "inputRadius": "Syöttökentät", + "instance_default": "(oletus: {value})", + "instance_default_simple": "(oletus)", + "interface": "Käyttöliittymä", + "interfaceLanguage": "Käyttöliittymän kieli", + "invalid_theme_imported": "Tuotu tallennettu teema on epäkelpo, muutoksia ei tehty nykyiseen teemaasi.", + "limited_availability": "Ei saatavilla selaimessasi", + "links": "Linkit", + "lock_account_description": "Vain erikseen hyväksytyt käyttäjät voivat seurata tiliäsi", + "loop_video": "Uudelleentoista videot", + "loop_video_silent_only": "Uudelleentoista ainoastaan äänettömät videot (Video-\"giffit\")", + "max_thumbnails": "Suurin sallittu määrä liitteitä esikatselussa", + "mfa": { + "authentication_methods": "Todennus", + "confirm_and_enable": "Hyväksy ja käytä OTP", + "generate_new_recovery_codes": "Luo uudet palautuskoodit", + "otp": "OTP", + "recovery_codes": "Palautuskoodit.", + "recovery_codes_warning": "Kirjoita koodit ylös tai tallenna ne turvallisesti, muuten et näe niitä uudestaan. Jos et voi käyttää monivaihetodennusta ja sinulla ei ole palautuskoodeja, et voi enää kirjautua sisään tilillesi.", + "scan": { + "desc": "Käytä monivaihetodennus-sovellusta skannakksesi tämän QR-kooding, tai syötä avain:", + "secret_code": "Avain", + "title": "Skannaa" + }, + "setup_otp": "OTP-asetukset", + "title": "Monivaihetodennus", + "verify": { + "desc": "Kytkeäksesi päälle monivaihetodennuksen, syötä koodi monivaihetodennussovellksesta:" + }, + "wait_pre_setup_otp": "esiasetetaan OTP:ta", + "waiting_a_recovery_codes": "Odotetaan palautuskoodeja…", + "warning_of_generate_new_codes": "Luodessasi uudet palautuskoodit, vanhat koodisi lakkaavat toimimasta." + }, + "minimal_scopes_mode": "Yksinkertaista näkyvyydenrajauksen vaihtoehdot", + "mutes_and_blocks": "Mykistykset ja Estot", + "mutes_tab": "Mykistykset", + "name": "Nimi", + "name_bio": "Nimi ja kuvaus", + "new_email": "Uusi sähköpostiosoite", + "new_password": "Uusi salasana", + "no_blocks": "Ei estoja", + "no_mutes": "Ei mykistyksiä", + "no_rich_text_description": "Älä näytä tekstin muotoilua", + "notification_blocks": "Estäminen pysäyttää kaikki ilmoitukset käyttäjältä ja poistaa seurauksen.", + "notification_mutes": "Jos et halua ilmoituksia joltain käyttäjältä, käytä mykistystä.", + "notification_setting_filters": "Suodattimet", + "notification_setting_privacy": "Yksityisyys", + "notification_visibility": "Ilmoitusten näkyvyys", + "notification_visibility_emoji_reactions": "Reaktiot", + "notification_visibility_follows": "Seuraukset", + "notification_visibility_likes": "Tykkäykset", + "notification_visibility_mentions": "Maininnat", + "notification_visibility_moves": "Käyttäjien siirtymiset", + "notification_visibility_repeats": "Toistot", + "notifications": "Ilmoitukset", + "nsfw_clickthrough": "Piilota NSFW liitteet klikkauksen taakse", + "oauth_tokens": "OAuth-merkit", + "pad_emoji": "Välistä emojit välilyönneillä lisätessäsi niitä valitsimesta", + "panelRadius": "Ruudut", + "pause_on_unfocused": "Pysäytä automaattinen viestien näyttö välilehden ollessa pois fokuksesta", + "play_videos_in_modal": "Toista videot modaalissa", + "post_status_content_type": "Uuden viestin sisällön muoto", + "preload_images": "Esilataa kuvat", + "presets": "Valmiit teemat", + "profile_background": "Taustakuva", + "profile_banner": "Juliste", + "profile_fields": { + "add_field": "Lisää kenttä", + "label": "Profiilin metatiedot", + "name": "Nimi", + "value": "Sisältö" + }, + "profile_tab": "Profiili", + "radii_help": "Aseta reunojen pyöristys (pikseleinä)", + "refresh_token": "Päivitä token", + "replies_in_timeline": "Keskustelut aikajanalla", + "reply_visibility_all": "Näytä kaikki vastaukset", + "reply_visibility_following": "Näytä vain vastaukset minulle tai seuraamilleni käyttäjille", + "reply_visibility_self": "Näytä vain vastaukset minulle", + "reset_avatar": "Nollaa profiilikuva", + "reset_avatar_confirm": "Haluatko todella nollata profiilikuvan?", + "reset_background_confirm": "Haluatko todella nollata taustakuvan?", + "reset_banner_confirm": "Haluatko todella nollata profiilin taustan?", + "reset_profile_background": "Nollaa taustakuva", + "reset_profile_banner": "Nollaa profiilin tausta", + "revoke_token": "Peruuta", + "saving_err": "Virhe tallentaessa asetuksia", + "saving_ok": "Asetukset tallennettu", + "scope_copy": "Kopioi näkyvyysrajaus vastatessa (Yksityisviestit aina kopioivat)", + "search_user_to_block": "Hae estettäviä käyttäjiä", + "search_user_to_mute": "Hae mykistettäviä käyttäjiä", + "security": "Turvallisuus", + "security_tab": "Tietoturva", + "set_new_avatar": "Aseta uusi profiilikuva", + "set_new_profile_background": "Aseta uusi taustakuva", + "set_new_profile_banner": "Aseta uusi juliste", + "settings": "Asetukset", + "show_admin_badge": "Näytä Ylläpitäjä-merkki proofilissani", + "show_moderator_badge": "Näytä Moderaattori-merkki profiilissani", + "stop_gifs": "Toista giffit vain kohdistaessa", + "streaming": "Näytä uudet viestit automaattisesti ollessasi ruudun huipulla", + "style": { + "advanced_colors": { + "_tab_label": "Edistynyt", + "alert": "Varoituksen tausta", + "alert_error": "Virhe", + "alert_neutral": "Neutraali", + "alert_warning": "Varoitus", + "badge": "Merkin tausta", + "badge_notification": "Ilmoitus", + "borders": "Reunat", + "buttons": "Napit", + "disabled": "Pois käytöstä", + "faint_text": "Häivytetty teksti", + "highlight": "Korostetut elementit", + "icons": "Ikonit", + "inputs": "Syöttökentät", + "panel_header": "Ruudun otsikko", + "poll": "Äänestyksen kuvaaja", + "popover": "Työkaluvinkit, valikot, ponnahdusviestit", + "post": "Viestit/Käyttäjien kuvaukset", + "pressed": "Painettu", + "selectedMenu": "Valikon valinta", + "selectedPost": "Valittu viesti", + "tabs": "Välilehdet", + "toggled": "Kytketty", + "top_bar": "Yläpalkki", + "underlay": "Taustapeite" + }, + "common": { + "color": "Väri", + "contrast": { + "context": { + "18pt": "suurella (18pt+) tekstillä", + "text": "tekstillä" + }, + "hint": "Kontrastisuhde on {ratio}, se {level} {context}", + "level": { + "aa": "saavuttaa AA-tason (minimi)", + "aaa": "saavuttaa AAA-tason (suositeltu)", + "bad": "ei saavuta mitään helppokäyttöisyyssuosituksia" + } + }, + "opacity": "Läpinäkyvyys" + }, + "common_colors": { + "_tab_label": "Yleinen", + "foreground_hint": "Löydät \"Edistynyt\"-välilehdeltä tarkemmat asetukset", + "main": "Yleiset värit", + "rgbo": "Ikonit, korostukset, merkit" + }, + "fonts": { + "_tab_label": "Fontit", + "components": { + "input": "Syöttökentät", + "interface": "Käyttöliittymä", + "post": "Viestin teksti", + "postCode": "Tasavälistetty teksti viestissä" + }, + "custom": "Oma", + "family": "Fontin nimi", + "help": "Valitse fontti käyttöliittymälle. \"Oma\"-vaihtohdolle on syötettävä fontin nimi tarkalleen samana kuin se on järjestelmässäsi.", + "size": "Koko (pikseleissä)", + "weight": "Painostus (paksuus)" + }, + "preview": { + "button": "Nappi", + "checkbox": "Olen silmäillyt käyttöehdot", + "content": "Sisältö", + "error": "Esimerkkivirhe", + "faint_link": "manuaali", + "fine_print": "Lue meidän {0} vaikka huvin vuoksi!", + "header": "Esikatselu", + "header_faint": "Tämä on OK", + "input": "Tulin juuri saunasta.", + "link": "kiva linkki", + "mono": "sisältöä", + "text": "Vähän lisää {0} ja {1}" + }, + "radii": { + "_tab_label": "Pyöristys" + }, + "shadows": { + "_tab_label": "Valo ja varjostus", + "blur": "Sumennus", + "component": "Komponentti", + "components": { + "avatar": "Profiilikuva (profiilinäkymässä)", + "avatarStatus": "Profiilikuva (viestin yhtyedessä)", + "button": "Nappi", + "buttonHover": "Nappi (kohdistus)", + "buttonPressed": "Nappi (painettu)", + "buttonPressedHover": "Nappi (painettu ja kohdistettu)", + "input": "Syöttökenttä", + "panel": "Ruutu", + "panelHeader": "Ruudun otsikko", + "popup": "Ponnahdusviestit ja työkaluvinkit", + "topBar": "Yläpalkki" + }, + "filter_hint": { + "always_drop_shadow": "Varoitus, tämä varjo käyttää aina {0} kun selain tukee sitä.", + "avatar_inset": "Huom. sisennettyjen ja ei-sisennettyjen varjojen yhdistelmät saattavat luoda ei-odotettuja lopputuloksia läpinäkyvillä profiilikuvilla.", + "drop_shadow_syntax": "{0} ei tue {1} parametria ja {2} avainsanaa.", + "inset_classic": "Sisennetyt varjot käyttävät {0}", + "spread_zero": "Varjot joiden levitys > 0 näyttävät samalta kuin se olisi nolla" + }, + "hintV3": "Voit käyttää {0} merkintää varjoille käyttääksesi väriä toisesta asetuksesta.", + "inset": "Sisennys", + "override": "Ylikirjoita", + "shadow_id": "Varjo #{value}", + "spread": "Levitys" + }, + "switcher": { + "clear_all": "Tyhjennä kaikki", + "clear_opacity": "Tyhjennä läpinäkyvyys", + "help": { + "fe_downgraded": "PleromaFE:n versio vaihtunut vanhempaan.", + "fe_upgraded": "PleromaFE:n teemaus päivitetty versiopäivityksen yhteydessä.", + "future_version_imported": "Tuomasi tiedosto on luotu uudemmalla versiolla.", + "migration_napshot_gone": "Jostain syystä teeman kaappaus puuttuu, kaikki asiat eivät välttämättä näytä oikealta.", + "migration_snapshot_ok": "Varmuuden vuoksi teeman kaappaus ladattu. Voit koittaa ladata teeman sisällön.", + "older_version_imported": "Tuomasi tiedosto on luotu vanhemmalla versiolla.", + "snapshot_missing": "Teeman kaappausta ei tiedostossa, joten se voi näyttää erilaiselta kuin suunniteltu.", + "snapshot_present": "Teeman kaappaus ladattu, joten kaikki arvot ovat ylikirjoitettu. Voit sen sijaan ladata teeman sisällön.", + "snapshot_source_mismatch": "Versiot eivät täsmää: todennäköisesti versio vaihdettu vanhempaan ja päivitetty uudestaan, jos vaihdoit teemaa vanhalla versiolla, sinun tulisi käyttää vanhaa versiota, muutoin uutta.", + "upgraded_from_v2": "PleromaFE on päivitetty, teemasi saattaa näyttää erilaiselta kuin muistat.", + "v2_imported": "Tuomasi tiedosto on luotu vanhemmalla versiolla. Yhteensopivuus ei välttämättä ole täydellinen." + }, + "keep_as_is": "Pidä sellaisenaan", + "keep_color": "Säilytä värit", + "keep_fonts": "Säilytä fontit", + "keep_opacity": "Säilytä läpinäkyvyys", + "keep_roundness": "Säilytä pyöristys", + "keep_shadows": "Säilytä varjot", + "load_theme": "Lataa teema", + "reset": "Palauta", + "save_load_hint": "\"Säilytä\" asetukset säilyttävät tällä hetkellä asetetut asetukset valittaessa tai ladatessa teemaa, se myös tallentaa kyseiset asetukset viedessä teemaa. Kun kaikki laatikot ovat tyhjänä, viety teema tallentaa kaiken.", + "use_snapshot": "Vanha", + "use_source": "Uusi" + } + }, + "subject_input_always_show": "Näytä aihe-kenttä", + "subject_line_behavior": "Aihe-kentän kopiointi", + "subject_line_email": "Kuten sähköposti: \"re: aihe\"", + "subject_line_mastodon": "Kopioi sellaisenaan", + "subject_line_noop": "Älä kopioi", + "text": "Teksti", + "theme": "Teema", + "theme_help": "Käytä heksadesimaalivärejä muokataksesi väriteemaasi.", + "theme_help_v2_1": "Voit asettaa tiettyjen osien värin tai läpinäkyvyyden täyttämällä valintalaatikon, käytä \"Tyhjennä kaikki\"-nappia tyhjentääksesi kaiken.", + "theme_help_v2_2": "Ikonit kenttien alla ovat kontrasti-indikaattoreita, lisätietoa kohdistamalla. Käyttäessä läpinäkyvyyttä ne näyttävät pahimman skenaarion.", + "token": "Token", + "tooltipRadius": "Ohje- tai huomioviestit", + "type_domains_to_mute": "Etsi mykistettäviä sivustoja", + "upload_a_photo": "Lataa kuva", + "useStreamingApi": "Vastaanota viestiejä ja ilmoituksia reaaliajassa", + "useStreamingApiWarning": "(Kokeellinen)", + "use_contain_fit": "Älä rajaa liitteitä esikatselussa", + "use_one_click_nsfw": "Avaa NSFW-liitteet yhdellä painalluksella", + "user_mutes": "Käyttäjät", + "user_settings": "Käyttäjän asetukset", + "valid_until": "Voimassa asti", + "values": { + "false": "pois päältä", + "true": "päällä" + }, + "version": { + "backend_version": "Palvelimen versio", + "frontend_version": "Käyttöliittymän versio", + "title": "Versio" + } + }, + "status": { + "bookmark": "Lisää kirjanmerkkeihin", + "copy_link": "Kopioi linkki", + "delete": "Poista", + "delete_confirm": "Haluatko varmasti postaa viestin?", + "favorites": "Tykkäykset", + "hide_content": "Piilota sisältö", + "hide_full_subject": "Piilota koko otsikko", + "mute_conversation": "Mykistä keskustelu", + "pin": "Kiinnitä profiiliisi", + "pinned": "Kiinnitetty", + "repeats": "Toistot", + "replies_list": "Vastaukset:", + "reply_to": "Vastaus", + "show_content": "Näytä sisältö", + "show_full_subject": "Näytä koko otsikko", + "status_deleted": "Poistettu viesti", + "status_unavailable": "Viesti ei saatavissa", + "thread_muted": "Keskustelu mykistetty", + "thread_muted_and_words": ", sisältää sanat:", + "unbookmark": "Poista kirjanmerkeistä", + "unmute_conversation": "Poista mykistys", + "unpin": "Poista kiinnitys", + "you": "(sinä)" + }, + "time": { + "in_future": "{0} tulevaisuudessa", + "in_past": "{0} sitten", + "now": "juuri nyt", + "now_short": "nyt", + "unit": { + "days": "{0} päivää", + "days_short": "{0}pv", + "hours": "{0} tuntia", + "hours_short": "{0}t", + "minutes": "{0} minuuttia", + "minutes_short": "{0}min", + "months": "{0} kuukautta", + "months_short": "{0}kk", + "seconds": "{0} sekuntia", + "seconds_short": "{0}s", + "weeks": "{0} viikkoa", + "weeks_short": "{0}vk", + "years": "{0} vuotta", + "years_short": "{0}v" + } + }, + "timeline": { + "collapse": "Sulje", + "conversation": "Keskustelu", + "load_older": "Lataa vanhempia viestejä", + "no_more_statuses": "Ei enempää viestejä", + "no_retweet_hint": "Viesti ei ole julkinen, eikä sitä voi toistaa", + "no_statuses": "Ei viestejä", + "reload": "Päivitä", + "repeated": "toisti", + "show_new": "Näytä uudet", + "up_to_date": "Ajantasalla" + }, + "tool_tip": { + "accept_follow_request": "Hyväksy seurauspyyntö", + "add_reaction": "Lisää Reaktio", + "bookmark": "Kirjanmerkki", + "favorite": "Tykkää", + "media_upload": "Lataa tiedosto", + "reject_follow_request": "Hylkää seurauspyyntö", + "repeat": "Toista", + "reply": "Vastaa", + "user_settings": "Käyttäjäasetukset" + }, + "upload": { + "error": { + "base": "Lataus epäonnistui.", + "default": "Yritä uudestaan myöhemmin", + "file_too_big": "Tiedosto liian suuri [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "tavua", + "GiB": "Gt", + "KiB": "kt", + "MiB": "Mt", + "TiB": "Tt" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktivoi tili", + "deactivate_account": "Deaktivoi tili", + "delete_account": "Poista tili", + "delete_user": "Poista käyttäjä", + "disable_any_subscription": "Estä käyttäjän seuraaminen", + "disable_remote_subscription": "Estä seuraaminen ulkopuolisilta sivuilta", + "force_nsfw": "Merkitse kaikki viestit NSFW:nä", + "force_unlisted": "Pakota viestit listaamattomiksi", + "grant_admin": "Anna Ylläpitöoikeudet", + "grant_moderator": "Anna Moderaattorioikeudet", + "moderation": "Moderaatio", + "quarantine": "Estä käyttäjän viestin federoituminen", + "revoke_admin": "Poista Ylläpitöoikeudet", + "revoke_moderator": "Poista Moderaattorioikeudet", + "sandbox": "Pakota viestit vain seuraajille", + "strip_media": "Poista media viesteistä" + }, + "approve": "Hyväksy", + "block": "Estä", + "block_progress": "Estetään…", + "blocked": "Estetty!", + "deny": "Älä hyväksy", + "favorites": "Tykkäykset", + "follow": "Seuraa", + "follow_progress": "Pyydetään…", + "follow_sent": "Pyyntö lähetetty!", + "follow_unfollow": "Älä seuraa", + "followees": "Seuraa", + "followers": "Seuraajat", + "following": "Seuraat!", + "follows_you": "Seuraa sinua!", + "hidden": "Piilotettu", + "hide_repeats": "Piilota toistot", + "its_you": "Sinun tili!", + "media": "Media", + "mention": "Mainitse", + "mute": "Mykistä", + "mute_progress": "Mykistetään…", + "muted": "Mykistetty", + "per_day": "päivässä", + "remote_follow": "Seuraa muualta", + "report": "Ilmianna", + "show_repeats": "Näytä toistot", + "statuses": "Viestit", + "subscribe": "Tilaa", + "unblock": "Poista esto", + "unblock_progress": "Poistetaan estoa…", + "unmute": "Poista mykistys", + "unmute_progress": "Poistetaan mykistystä…", + "unsubscribe": "Poista tilaus" + }, + "user_profile": { + "profile_does_not_exist": "Tätä profiilia ei ole.", + "profile_loading_error": "Virhe ladatessa profiilia.", + "timeline_title": "Käyttäjän aikajana" + }, + "user_reporting": { + "add_comment_description": "Tämä raportti lähetetään sivun moderaattoreille. Voit antaa selityksen miksi ilmiannoit tilin:", + "additional_comments": "Lisäkommentit", + "forward_description": "Tämä tili on toiselta palvelimelta. Lähetä kopio ilmiannosta sinnekin?", + "forward_to": "Lähetä eteenpäin: {0}", + "generic_error": "Virhe käsitellessä pyyntöä.", + "submit": "Lähetä", + "title": "Ilmiannetaan {0}" + }, + "who_to_follow": { + "more": "Lisää", + "who_to_follow": "Seurausehdotukset" } - }, - "timeline": { - "collapse": "Sulje", - "conversation": "Keskustelu", - "error_fetching": "Virhe ladatessa viestejä", - "load_older": "Lataa vanhempia viestejä", - "no_retweet_hint": "Viesti ei ole julkinen, eikä sitä voi toistaa", - "repeated": "toisti", - "show_new": "Näytä uudet", - "up_to_date": "Ajantasalla", - "no_more_statuses": "Ei enempää viestejä", - "no_statuses": "Ei viestejä", - "reload": "Päivitä" - }, - "status": { - "favorites": "Tykkäykset", - "repeats": "Toistot", - "delete": "Poista", - "pin": "Kiinnitä profiiliisi", - "unpin": "Poista kiinnitys", - "pinned": "Kiinnitetty", - "delete_confirm": "Haluatko varmasti postaa viestin?", - "reply_to": "Vastaus", - "replies_list": "Vastaukset:", - "mute_conversation": "Mykistä keskustelu", - "unmute_conversation": "Poista mykistys", - "status_unavailable": "Viesti ei saatavissa", - "copy_link": "Kopioi linkki", - "bookmark": "Lisää kirjanmerkkeihin", - "unbookmark": "Poista kirjanmerkeistä", - "thread_muted": "Keskustelu mykistetty", - "thread_muted_and_words": ", sisältää sanat:", - "show_full_subject": "Näytä koko otsikko", - "hide_full_subject": "Piilota koko otsikko", - "show_content": "Näytä sisältö", - "hide_content": "Piilota sisältö", - "status_deleted": "Poistettu viesti", - "you": "(sinä)" - }, - "user_card": { - "approve": "Hyväksy", - "block": "Estä", - "blocked": "Estetty!", - "deny": "Älä hyväksy", - "follow": "Seuraa", - "follow_sent": "Pyyntö lähetetty!", - "follow_progress": "Pyydetään…", - "follow_unfollow": "Älä seuraa", - "followees": "Seuraa", - "followers": "Seuraajat", - "following": "Seuraat!", - "follows_you": "Seuraa sinua!", - "its_you": "Sinun tili!", - "mute": "Mykistä", - "muted": "Mykistetty", - "per_day": "päivässä", - "remote_follow": "Seuraa muualta", - "statuses": "Viestit", - "hidden": "Piilotettu", - "media": "Media", - "block_progress": "Estetään…", - "admin_menu": { - "grant_admin": "Anna Ylläpitöoikeudet", - "force_nsfw": "Merkitse kaikki viestit NSFW:nä", - "disable_any_subscription": "Estä käyttäjän seuraaminen", - "moderation": "Moderaatio", - "revoke_admin": "Poista Ylläpitöoikeudet", - "grant_moderator": "Anna Moderaattorioikeudet", - "revoke_moderator": "Poista Moderaattorioikeudet", - "activate_account": "Aktivoi tili", - "deactivate_account": "Deaktivoi tili", - "delete_account": "Poista tili", - "strip_media": "Poista media viesteistä", - "force_unlisted": "Pakota viestit listaamattomiksi", - "sandbox": "Pakota viestit vain seuraajille", - "disable_remote_subscription": "Estä seuraaminen ulkopuolisilta sivuilta", - "quarantine": "Estä käyttäjän viestin federoituminen", - "delete_user": "Poista käyttäjä" - }, - "favorites": "Tykkäykset", - "mention": "Mainitse", - "report": "Ilmianna", - "subscribe": "Tilaa", - "unsubscribe": "Poista tilaus", - "unblock": "Poista esto", - "unblock_progress": "Poistetaan estoa…", - "unmute": "Poista mykistys", - "unmute_progress": "Poistetaan mykistystä…", - "mute_progress": "Mykistetään…", - "hide_repeats": "Piilota toistot", - "show_repeats": "Näytä toistot" - }, - "user_profile": { - "timeline_title": "Käyttäjän aikajana", - "profile_does_not_exist": "Tätä profiilia ei ole.", - "profile_loading_error": "Virhe ladatessa profiilia." - }, - "who_to_follow": { - "more": "Lisää", - "who_to_follow": "Seurausehdotukset" - }, - "tool_tip": { - "media_upload": "Lataa tiedosto", - "repeat": "Toista", - "reply": "Vastaa", - "favorite": "Tykkää", - "user_settings": "Käyttäjäasetukset", - "add_reaction": "Lisää Reaktio", - "accept_follow_request": "Hyväksy seurauspyyntö", - "reject_follow_request": "Hylkää seurauspyyntö", - "bookmark": "Kirjanmerkki" - }, - "upload": { - "error": { - "base": "Lataus epäonnistui.", - "file_too_big": "Tiedosto liian suuri [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Yritä uudestaan myöhemmin" - }, - "file_size_units": { - "B": "tavua", - "KiB": "kt", - "MiB": "Mt", - "GiB": "Gt", - "TiB": "Tt" - } - }, - "about": { - "mrf": { - "keyword": { - "keyword_policies": "Avainsanasäännöt", - "ftl_removal": "Poistettu \"Koko Tunnettu Verkosto\" -aikajanalta", - "reject": "Hylkää", - "replace": "Korvaa", - "is_replaced_by": "→" - }, - "simple": { - "accept": "Hyväksy", - "reject": "Hylkää", - "quarantine": "Karanteeni", - "ftl_removal": "Poisto \"Koko Tunnettu Verkosto\" -aikajanalta", - "media_removal": "Media-tiedostojen poisto", - "simple_policies": "Palvelinkohtaiset Säännöt", - "accept_desc": "Tämä palvelin hyväksyy viestit vain seuraavilta palvelimilta:", - "reject_desc": "Tämä palvelin ei hyväksy viestejä seuraavilta palvelimilta:", - "quarantine_desc": "Tämä palvelin lähettää vain julkisia viestejä seuraaville palvelimille:", - "ftl_removal_desc": "Tämä palvelin poistaa nämä palvelimet \"Koko Tunnettu Verkosto\"-aikajanalta:", - "media_removal_desc": "Tämä palvelin postaa mediatiedostot viesteistä seuraavilta palvelimilta:", - "media_nsfw": "Pakota Media Arkaluontoiseksi", - "media_nsfw_desc": "Tämä palvelin pakottaa mediatiedostot arkaluonteisiksi seuraavilta palvelimilta:" - }, - "federation": "Federaatio", - "mrf_policies": "Aktivoidut MRF-säännöt", - "mrf_policies_desc": "MRF-säännöt muuttavat federaation toimintaa sivulla. Seuraavat säännöt ovat kytketty päälle:" - }, - "staff": "Henkilökunta" - }, - "domain_mute_card": { - "mute": "Mykistä", - "unmute": "Poista mykistys", - "mute_progress": "Mykistetään…", - "unmute_progress": "Poistetaan mykistystä…" - }, - "exporter": { - "export": "Vie", - "processing": "Käsitellään, hetken päästä voit tallentaa tiedoston" - }, - "image_cropper": { - "crop_picture": "Rajaa kuva", - "save": "Tallenna", - "save_without_cropping": "Tallenna rajaamatta", - "cancel": "Peruuta" - }, - "importer": { - "submit": "Hyväksy", - "error": "Virhe tapahtui tietoja tuodessa.", - "success": "Tuonti onnistui." - }, - "media_modal": { - "previous": "Edellinen", - "next": "Seuraava" - }, - "emoji": { - "stickers": "Tarrat", - "emoji": "Emoji", - "keep_open": "Pidä valitsin auki", - "search_emoji": "Hae emojia", - "add_emoji": "Lisää emoji", - "custom": "Custom-emoji", - "load_all": "Ladataan kaikkia {emojiAmount} emojia", - "unicode": "Unicode-emoji", - "load_all_hint": "Ensimmäiset {saneAmount} emojia ladattu, kaikkien emojien lataaminen voi aiheuttaa hidastelua." - }, - "remote_user_resolver": { - "remote_user_resolver": "Ulkopuolinen käyttäjä", - "searching_for": "Etsitään käyttäjää", - "error": "Ei löytynyt." - }, - "selectable_list": { - "select_all": "Valitse kaikki" - }, - "password_reset": { - "check_email": "Tarkista sähköpostisi salasanannollausta varten.", - "instruction": "Syötä sähköpostiosoite tai käyttäjänimi. Lähetämme linkin salasanan nollausta varten.", - "password_reset_disabled": "Salasanan nollaus ei käytössä. Ota yhteyttä sivun ylläpitäjään.", - "password_reset_required_but_mailer_is_disabled": "Sinun täytyy vaihtaa salasana, mutta salasanan nollaus on pois käytöstä. Ota yhteyttä sivun ylläpitäjään.", - "forgot_password": "Unohditko salasanan?", - "password_reset": "Salasanan nollaus", - "placeholder": "Sähköpostiosoite tai käyttäjänimi", - "return_home": "Palaa etusivulle", - "too_many_requests": "Olet käyttänyt kaikki yritykset, yritä uudelleen myöhemmin.", - "password_reset_required": "Sinun täytyy vaihtaa salasana kirjautuaksesi." - }, - "user_reporting": { - "add_comment_description": "Tämä raportti lähetetään sivun moderaattoreille. Voit antaa selityksen miksi ilmiannoit tilin:", - "title": "Ilmiannetaan {0}", - "additional_comments": "Lisäkommentit", - "forward_description": "Tämä tili on toiselta palvelimelta. Lähetä kopio ilmiannosta sinnekin?", - "forward_to": "Lähetä eteenpäin: {0}", - "submit": "Lähetä", - "generic_error": "Virhe käsitellessä pyyntöä." - }, - "search": { - "people": "Käyttäjät", - "hashtags": "Aihetunnisteet", - "people_talking": "{0} käyttäjää puhuvat", - "person_talking": "{0} käyttäjä puhuu", - "no_results": "Ei tuloksia" - }, - "errors": { - "storage_unavailable": "Pleroma ei voinut käyttää selaimen muistia. Kirjautumisesi ja paikalliset asetukset eivät tallennu ja saatat kohdata odottamattomia ongelmia. Yritä sallia evästeet." - } -} +} \ No newline at end of file diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 8d5bc98d..73d8c1c7 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -1,885 +1,1007 @@ { - "chat": { - "title": "Chat" - }, - "exporter": { - "export": "Exporter", - "processing": "En cours de traitement, vous pourrez bientôt télécharger votre fichier" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Proxy pièce-jointes", - "scope_options": "Options de visibilité", - "text_limit": "Limite du texte", - "title": "Fonctionnalités", - "who_to_follow": "Suggestions de suivis", - "pleroma_chat_messages": "Chat Pleroma", - "upload_limit": "Limite de téléversement" - }, - "finder": { - "error_fetching_user": "Erreur lors de la recherche du compte", - "find_user": "Rechercher un compte" - }, - "general": { - "apply": "Appliquer", - "submit": "Envoyer", - "more": "Plus", - "generic_error": "Une erreur s'est produite", - "optional": "optionnel", - "show_more": "Afficher plus", - "show_less": "Afficher moins", - "cancel": "Annuler", - "disable": "Désactiver", - "enable": "Activer", - "confirm": "Confirmer", - "verify": "Vérifier", - "dismiss": "Ignorer", - "peek": "Jeter un coup d'œil", - "close": "Fermer", - "retry": "Réessayez", - "error_retry": "Veuillez réessayer", - "loading": "Chargement…", - "role": { - "moderator": "Modo'", - "admin": "Admin" - }, - "flash_content": "Clique pour afficher le contenu Flash avec Ruffle (Expérimental, peut ne pas fonctionner).", - "flash_security": "Cela reste potentiellement dangereux, Flash restant du code arbitraire.", - "flash_fail": "Échec de chargement du contenu Flash, voir la console pour les détails." - }, - "image_cropper": { - "crop_picture": "Rogner l'image", - "save": "Sauvegarder", - "save_without_cropping": "Sauvegarder sans rogner", - "cancel": "Annuler" - }, - "importer": { - "submit": "Envoyer", - "success": "Importé avec succès.", - "error": "Une erreur est survenue pendant l'import de ce fichier." - }, - "login": { - "login": "Connexion", - "description": "Connexion avec OAuth", - "logout": "Déconnexion", - "password": "Mot de passe", - "placeholder": "ex. lain", - "register": "S'inscrire", - "username": "Identifiant", - "hint": "Connectez-vous pour rejoindre la discussion", - "authentication_code": "Code d'authentification", - "enter_recovery_code": "Entrez un code de récupération", - "enter_two_factor_code": "Entrez un code double-facteur", - "recovery_code": "Code de récupération", - "heading": { - "totp": "Authentification à double-facteur", - "recovery": "Récupération de l'authentification à double-facteur" - } - }, - "media_modal": { - "previous": "Précédent", - "next": "Suivant" - }, - "nav": { - "about": "À propos", - "back": "Retour", - "chat": "Chat local", - "friend_requests": "Demandes de suivi", - "mentions": "Mentions", - "interactions": "Interactions", - "dms": "Messages directs", - "public_tl": "Flux publique", - "public_timeline_description": "Tous les status publics de cette instance", - "timeline": "Flux personnel", - "twkn": "Réseau connu", - "twkn_timeline_description": "Les status du réseau entier", - "user_search": "Recherche de comptes", - "who_to_follow": "Suggestion de suivit", - "preferences": "Préférences", - "search": "Recherche", - "administration": "Administration", - "chats": "Chats", - "bookmarks": "Marques-Pages", - "timelines": "Flux", - "home_timeline": "Flux personnel", - "home_timeline_description": "Les status de vos abonnements", - "bubble_timeline": "Flux de cette bulle", - "bubble_timeline_description": "Les status des instances proches de celle-ci, choisies par l'administrateur⋅ice" - }, - "notifications": { - "broken_favorite": "Message inconnu, recherche en cours…", - "favorited_you": "a aimé votre statut", - "followed_you": "vous suit", - "load_older": "Charger les notifications précédentes", - "notifications": "Notifications", - "read": "Lu !", - "repeated_you": "a partagé votre statut", - "no_more_notifications": "Aucune notification supplémentaire", - "migrated_to": "a migré à", - "reacted_with": "a réagi avec {0}", - "follow_request": "veut vous suivre", - "error": "Erreur de chargement des notifications : {0}" - }, - "interactions": { - "favs_repeats": "Partages et favoris", - "follows": "Nouveaux suivis", - "load_older": "Chargez d'anciennes interactions", - "moves": "Migrations de comptes" - }, - "post_status": { - "new_status": "Poster un nouveau statut", - "account_not_locked_warning": "Votre compte n'est pas {0}. N'importe qui peut vous suivre pour voir vos billets en Abonné·e·s uniquement.", - "account_not_locked_warning_link": "verrouillé", - "attachments_sensitive": "Marquer les pièce-jointes comme sensible", - "content_type": { - "text/plain": "Texte brut", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Sujet (optionnel)", - "default": "Je viens d'atterrir en Tchéquie.", - "direct_warning_to_all": "Ce message sera visible pour toutes les personnes mentionnées.", - "direct_warning_to_first_only": "Ce message sera visible uniquement pour personnes mentionnées au début du message.", - "posting": "Envoi en cours", - "scope_notice": { - "public": "Ce statut sera visible par tout le monde", - "private": "Ce statut sera visible par seulement vos abonné⋅e⋅s", - "unlisted": "Ce statut ne sera pas visible dans les flux publics ni les flux fédérés", - "local": "Ce statut ne sera pas visible dans le flux fédéré" - }, - "scope": { - "direct": "Direct - N'envoyer qu'aux personnes mentionnées", - "private": "Abonné·e·s uniquement - Seul·e·s vos abonné·e·s verront vos status", - "public": "Publique - Afficher dans les flux publics", - "unlisted": "Non-Listé - Ne pas afficher dans les flux publics" - }, - "media_description_error": "Échec de téléversement du media, essayez encore", - "empty_status_error": "Impossible de poster un statut vide sans pièces-jointes", - "preview_empty": "Vide", - "preview": "Prévisualisation", - "media_description": "Description de la pièce-jointe", - "post": "Post" - }, - "registration": { - "bio": "Biographie", - "email": "Courriel", - "fullname": "Pseudonyme", - "password_confirm": "Confirmation du mot de passe", - "registration": "Inscription", - "token": "Jeton d'invitation", - "captcha": "CAPTCHA", - "new_captcha": "Cliquez sur l'image pour avoir un nouveau captcha", - "username_placeholder": "ex. lain", - "fullname_placeholder": "ex. Lain Iwakura", - "bio_placeholder": "ex.\nSalut, je suis Lain\nJe suis une héroïne d'animation qui vit dans une banlieue japonaise. Vous me connaissez peut-être du Wired.", - "validations": { - "username_required": "ne peut pas être laissé vide", - "fullname_required": "ne peut pas être laissé vide", - "email_required": "ne peut pas être laissé vide", - "password_required": "ne peut pas être laissé vide", - "password_confirmation_required": "ne peut pas être laissé vide", - "password_confirmation_match": "doit être identique au mot de passe" - }, - "reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.", - "reason": "Motivation d'inscription", - "register": "Enregistrer" - }, - "selectable_list": { - "select_all": "Tout selectionner" - }, - "settings": { - "app_name": "Nom de l'application", - "security": "Sécurité", - "enter_current_password_to_confirm": "Entrez votre mot de passe actuel pour confirmer votre identité", - "mfa": { - "otp": "OTP", - "setup_otp": "Configurer OTP", - "wait_pre_setup_otp": "préconfiguration OTP", - "confirm_and_enable": "Confirmer & activer OTP", - "title": "Authentification double-facteur", - "generate_new_recovery_codes": "Générer de nouveaux codes de récupération", - "warning_of_generate_new_codes": "Quand vous générez de nouveaux codes de récupération, vos anciens codes ne fonctionnerons plus.", - "recovery_codes": "Codes de récupération.", - "waiting_a_recovery_codes": "Réception des codes de récupération…", - "recovery_codes_warning": "Écrivez ces codes ou sauvegardez les dans un endroit sécurisé - sinon vous ne les verrez plus jamais. Si vous perdez l'accès à votre application de double authentification et codes de récupération vous serez verrouillé en dehors de votre compte.", - "authentication_methods": "Méthodes d'authentification", - "scan": { - "title": "Scanner", - "desc": "En utilisant votre application d'authentification à double-facteur, scannez ce QR code ou entrez la clé textuelle :", - "secret_code": "Clé" - }, - "verify": { - "desc": "Pour activer l'authentification à double-facteur, entrez le code donné par votre application :" - } - }, - "attachmentRadius": "Pièces jointes", - "attachments": "Pièces jointes", - "avatar": "Avatar", - "avatarAltRadius": "Avatars (Notifications)", - "avatarRadius": "Avatars", - "background": "Arrière-plan", - "bio": "Biographie", - "block_export": "Export des comptes bloqués", - "block_export_button": "Export des comptes bloqués vers un fichier CSV", - "block_import": "Import des comptes bloqués", - "block_import_error": "Erreur lors de l'import des comptes bloqués", - "blocks_imported": "Blocages importés ! Le traitement va prendre un moment.", - "blocks_tab": "Bloqué·e·s", - "btnRadius": "Boutons", - "cBlue": "Bleu (répondre, suivre)", - "cGreen": "Vert (partager)", - "cOrange": "Orange (aimer)", - "cRed": "Rouge (annuler)", - "change_password": "Changez votre mot de passe", - "change_password_error": "Il y a eu un problème pour changer votre mot de passe.", - "changed_password": "Mot de passe modifié avec succès !", - "collapse_subject": "Réduire les messages avec des sujets", - "composing": "Composition", - "confirm_new_password": "Confirmation du nouveau mot de passe", - "current_avatar": "Avatar actuel", - "current_password": "Mot de passe actuel", - "current_profile_banner": "Bannière de profil actuelle", - "data_import_export_tab": "Import / Export des Données", - "default_vis": "Visibilité par défaut", - "delete_account": "Supprimer le compte", - "delete_account_description": "Supprimer définitivement vos données et désactiver votre compte.", - "delete_account_error": "Il y a eu un problème lors de la tentative de suppression de votre compte. Si le problème persiste, contactez l'administration de cette instance.", - "delete_account_instructions": "Indiquez votre mot de passe ci-dessous pour confirmer la suppression de votre compte.", - "avatar_size_instruction": "La taille minimale recommandée pour l'image de l'avatar est de 150x150 pixels.", - "export_theme": "Enregistrer le thème", - "filtering": "Filtrage", - "filtering_explanation": "Tous les statuts contenant ces mots seront masqués. Un mot par ligne", - "follow_export": "Exporter les suivis", - "follow_export_button": "Exporter les suivis dans un fichier CSV", - "follow_import": "Import des suivis", - "follow_import_error": "Erreur lors de l'importation des suivis", - "follows_imported": "Suivis importés ! Le traitement peut prendre un moment.", - "foreground": "Premier plan", - "general": "Général", - "hide_attachments_in_convo": "Masquer les pièces jointes dans les conversations", - "hide_attachments_in_tl": "Masquer les pièces jointes dans le flux", - "hide_muted_posts": "Masquer les statuts des comptes masqués", - "max_thumbnails": "Nombre maximum de miniatures par statuts", - "hide_isp": "Masquer le panneau de l'instance", - "preload_images": "Précharger les images", - "use_one_click_nsfw": "Ouvrir les pièces-jointes sensibles avec un seul clic", - "hide_post_stats": "Masquer les statistiques des messages (ex. le nombre de favoris)", - "hide_user_stats": "Masquer les statistiques de compte (ex. le nombre de suivis)", - "hide_filtered_statuses": "Masquer les statuts filtrés", - "import_blocks_from_a_csv_file": "Import de blocages depuis un fichier CSV", - "import_followers_from_a_csv_file": "Import de suivis depuis un fichier CSV", - "import_theme": "Charger le thème", - "inputRadius": "Champs de texte", - "checkboxRadius": "Cases à cocher", - "instance_default": "(default : {value})", - "instance_default_simple": "(default)", - "interface": "Interface", - "interfaceLanguage": "Langue de l'interface", - "invalid_theme_imported": "Le fichier sélectionné n'est pas un thème Pleroma pris en charge. Aucun changement n'a été apporté à votre thème.", - "limited_availability": "Non disponible dans votre navigateur", - "links": "Liens", - "lock_account_description": "Limitez votre compte aux abonnés acceptés uniquement", - "loop_video": "Vidéos en boucle", - "loop_video_silent_only": "Boucle uniquement les vidéos sans le son (les « gifs » de Mastodon)", - "mutes_tab": "Comptes silenciés", - "play_videos_in_modal": "Jouer les vidéos directement dans le visionneur de médias", - "use_contain_fit": "Ne pas rogner les miniatures des pièces-jointes", - "name": "Nom", - "name_bio": "Nom & Bio", - "new_password": "Nouveau mot de passe", - "notification_visibility": "Types de notifications à afficher", - "notification_visibility_follows": "Suivis", - "notification_visibility_likes": "Favoris", - "notification_visibility_mentions": "Mentionnés", - "notification_visibility_repeats": "Partages", - "no_rich_text_description": "Ne formatez pas le texte", - "no_blocks": "Aucun bloqués", - "no_mutes": "Aucun masqués", - "hide_follows_description": "Ne pas afficher à qui je suis abonné", - "hide_followers_description": "Ne pas afficher qui est abonné à moi", - "show_admin_badge": "Afficher le badge d'Admin sur mon profil", - "show_moderator_badge": "Afficher le badge de Modo' sur mon profil", - "nsfw_clickthrough": "Activer le clic pour dévoiler les pièces jointes et cacher l'aperçu des liens pour les statuts marqués comme sensibles", - "oauth_tokens": "Jetons OAuth", - "token": "Jeton", - "refresh_token": "Rafraichir le jeton", - "valid_until": "Valable jusque", - "revoke_token": "Révoquer", - "panelRadius": "Fenêtres", - "pause_on_unfocused": "Suspendre le streaming lorsque l'onglet n'est pas actif", - "presets": "Thèmes prédéfinis", - "profile_background": "Image de fond de profil", - "profile_banner": "Bannière de profil", - "profile_tab": "Profil", - "radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)", - "replies_in_timeline": "Réponses dans le flux", - "reply_visibility_all": "Montrer toutes les réponses", - "reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux personnes que je suis", - "reply_visibility_self": "Afficher uniquement les réponses adressées à moi", - "autohide_floating_post_button": "Automatiquement cacher le bouton de Nouveau Statut (sur mobile)", - "saving_err": "Erreur lors de l'enregistrement des paramètres", - "saving_ok": "Paramètres enregistrés", - "search_user_to_block": "Rechercher qui vous voulez bloquer", - "search_user_to_mute": "Rechercher qui vous voulez masquer", - "security_tab": "Sécurité", - "scope_copy": "Garder la même visibilité en répondant (les DMs restent toujours des DMs)", - "minimal_scopes_mode": "Rétrécir les options de séléction de la portée", - "set_new_avatar": "Changer d'avatar", - "set_new_profile_background": "Changer d'image de fond", - "set_new_profile_banner": "Changer de bannière", - "settings": "Paramètres", - "subject_input_always_show": "Toujours afficher le champ Sujet", - "subject_line_behavior": "Copier le sujet en répondant", - "subject_line_email": "Similaire au courriel : « re : sujet »", - "subject_line_mastodon": "Comme mastodon : copier tel quel", - "subject_line_noop": "Ne pas copier", - "post_status_content_type": "Type de contenu du statuts", - "stop_gifs": "N'animer les GIFS que lors du survol du curseur de la souris", - "streaming": "Charger automatiquement les nouveaux statuts lorsque vous êtes au haut de la page", - "text": "Texte", - "theme": "Thème", - "theme_help": "Spécifiez des codes couleur hexadécimaux (#rrvvbb) pour personnaliser les couleurs du thème.", - "theme_help_v2_1": "Vous pouvez aussi surcharger certaines couleurs de composants et transparence via la case à cocher, utilisez le bouton « Vider tout » pour effacer toutes les surcharges.", - "theme_help_v2_2": "Les icônes sous certaines des entrées ont un indicateur de contraste du fond/texte, survolez les pour plus d'informations détailles. Veuillez garder a l'esprit que lors de l'utilisation de transparence l'indicateur de contraste indique le pire des cas.", - "tooltipRadius": "Info-bulles/alertes", - "upload_a_photo": "Envoyer une photo", - "user_settings": "Paramètres utilisateur", - "values": { - "false": "non", - "true": "oui" - }, - "notifications": "Notifications", - "notification_mutes": "Pour stopper la récéption de notifications d'un utilisateur particulier, utilisez un masquage.", - "notification_blocks": "Bloquer un utilisateur stoppe toute notification et se désabonne de lui.", - "enable_web_push_notifications": "Activer les notifications de push web", - "style": { - "switcher": { - "keep_color": "Garder les couleurs", - "keep_shadows": "Garder les ombres", - "keep_opacity": "Garder la transparence", - "keep_roundness": "Garder la rondeur", - "keep_fonts": "Garder les polices", - "save_load_hint": "L'option « Garder » préserve les options activés en cours lors de la séléction ou chargement des thèmes, il sauve aussi les dites options lors de l'export d'un thème. Quand toutes les cases sont décochés, exporter un thème sauvera tout.", - "reset": "Remise à zéro", - "clear_all": "Tout vider", - "clear_opacity": "Vider la transparence", - "load_theme": "Charger le thème", - "use_snapshot": "Ancienne version", - "help": { - "upgraded_from_v2": "PleromaFE à été mis à jour, le thème peut être un peu différent que dans vos souvenirs.", - "v2_imported": "Le fichier que vous avez importé vient d'une version antérieure. Nous essayons de maximizer la compatibilité mais il peut y avoir quelques incohérences.", - "future_version_imported": "Le fichier importé viens d'une version postérieure de PleromaFE.", - "older_version_imported": "Le fichier importé viens d'une version antérieure de PleromaFE.", - "snapshot_source_mismatch": "Conflict de version : Probablement due à un retour arrière puis remise à jour de la version de PleromaFE, si vous avez charger le thème en utilisant une version antérieure vous voulez probablement utiliser la version antérieure, autrement utiliser la version postérieure.", - "migration_napshot_gone": "Pour une raison inconnue l'instantané est manquant, des parties peuvent rendre différentes que dans vos souvenirs.", - "migration_snapshot_ok": "Pour être sûr un instantanée du thème à été chargé. Vos pouvez essayer de charger ses données.", - "fe_downgraded": "Retour en arrière de la version de PleromaFE.", - "fe_upgraded": "Le moteur de thème PleromaFE à été mis à jour après un changement de version.", - "snapshot_missing": "Aucun instantané du thème à été trouvé dans le fichier, il peut y avoir un rendu différent à la vision originelle.", - "snapshot_present": "Un instantané du thème à été chargé, toutes les valeurs sont dont écrasées. Vous pouvez autrement charger le thème complètement." + "about": { + "mrf": { + "federation": "Fédération", + "keyword": { + "ftl_removal": "Suppression du flux fédéré", + "is_replaced_by": "→", + "keyword_policies": "Filtrage par mots-clés", + "reject": "Rejette", + "replace": "Remplace" + }, + "mrf_policies": "Politiques MRF actives", + "mrf_policies_desc": "Les politiques MRF modifient la fédération entre les instances. Les politiques suivantes sont activées :", + "simple": { + "accept": "Acceptées", + "accept_desc": "Cette instance accepte les messages seulement depuis ces instances :", + "ftl_removal": "Supprimées du flux fédéré", + "ftl_removal_desc": "Cette instance supprime les instance suivantes du flux fédéré :", + "instance": "Instance", + "media_nsfw": "Force le contenu multimédia comme sensible", + "media_nsfw_desc": "Cette instance force les pièce-jointes comme sensible pour les messages des instances suivantes :", + "media_removal": "Suppression des pièce-jointes", + "media_removal_desc": "Cette instance supprime le contenu multimédia des instances suivantes :", + "not_applicable": "n.c.", + "quarantine": "Quarantaine", + "quarantine_desc": "Cette instance n'enverra pas de statut à ces instances :", + "reason": "Motif", + "reject": "Rejetées", + "reject_desc": "Cette instance n'acceptera pas de message de ces instances :", + "simple_policies": "Politiques par instances" + } }, - "keep_as_is": "Garder tel-quel", - "use_source": "Nouvelle version" - }, - "common": { - "color": "Couleur", - "opacity": "Transparence", - "contrast": { - "hint": "Le ratio de contraste est {ratio}, il {level} {context}", - "level": { - "aa": "répond aux directives de niveau AA (minimum)", - "aaa": "répond aux directives de niveau AAA (recommandé)", - "bad": "ne réponds à aucune directive d'accessibilité" - }, - "context": { - "18pt": "pour texte large (19pt+)", - "text": "pour texte" - } + "staff": "Staff" + }, + "announcements": { + "all_day_prompt": "Journée entière", + "cancel_edit_action": "Annuler", + "close_error": "Fermer", + "delete_action": "Supprimer", + "edit_action": "Editer", + "end_time_display": "Termine à {time}", + "end_time_prompt": "Terminer: ", + "inactive_message": "Cette annonce est inactive", + "mark_as_read_action": "Marquer comme lue(s)", + "page_header": "Annonces", + "post_action": "Publier", + "post_error": "Erreur: {error}", + "post_form_header": "Créer une annonce", + "post_placeholder": "Écrivez votre annonce ici", + "published_time_display": "Publiée à {time}", + "start_time_display": "Commence à {time}", + "start_time_prompt": "Commencer: ", + "submit_edit_action": "Envoyer", + "title": "Annonce" + }, + "chats": { + "chats": "Discussions", + "delete": "Effacer", + "delete_confirm": "Voulez-vous vraiment effacer ce message ?", + "empty_chat_list_placeholder": "Vous n'avez pas encore de discussions. Démarrez-en une nouvelle !", + "empty_message_error": "Impossible d'envoyer un message vide", + "error_loading_chat": "Quelque chose s'est mal passé au chargement de la discussion.", + "error_sending_message": "Quelque chose s'est mal passé pendant l'envoi du message.", + "message_user": "Message à {nickname}", + "more": "Plus", + "new": "Nouvelle discussion", + "you": "Vous :" + }, + "display_date": { + "today": "Aujourd'hui" + }, + "domain_mute_card": { + "mute": "Masqué", + "mute_progress": "Masquage…", + "unmute": "Démasquer", + "unmute_progress": "Démasquage…" + }, + "emoji": { + "add_emoji": "Insérer un émoji", + "custom": "émoji personnalisé", + "emoji": "Émoji", + "keep_open": "Garder ouvert", + "load_all": "Charger tout les {emojiAmount} émojis", + "load_all_hint": "{saneAmount} émojis chargé, charger tout les émojis peuvent causer des problèmes de performances.", + "search_emoji": "Rechercher un émoji", + "stickers": "Stickers", + "unicode": "émoji unicode" + }, + "errors": { + "storage_unavailable": "Pleroma n'a pas pu accéder au stockage du navigateur. Votre identifiant ou vos mots de passes ne seront sauvegardés et des problèmes pourront être rencontrés. Essayez d'activer les cookies." + }, + "exporter": { + "export": "Exporter", + "processing": "En cours de traitement, vous pourrez bientôt télécharger votre fichier" + }, + "features_panel": { + "media_proxy": "Proxy pièce-jointes", + "scope_options": "Options de visibilité", + "shout": "Shoutbox", + "text_limit": "Limite du texte", + "title": "Fonctionnalités", + "upload_limit": "Limite de téléversement", + "who_to_follow": "Suggestions de suivis" + }, + "file_type": { + "audio": "Audio", + "file": "Fichier", + "image": "Image", + "video": "Vidéo" + }, + "finder": { + "error_fetching_user": "Erreur lors de la recherche du compte", + "find_user": "Rechercher un compte" + }, + "general": { + "apply": "Appliquer", + "cancel": "Annuler", + "close": "Fermer", + "confirm": "Confirmer", + "disable": "Désactiver", + "dismiss": "Ignorer", + "enable": "Activer", + "error_retry": "Veuillez réessayer", + "flash_content": "Clique pour afficher le contenu Flash avec Ruffle (Expérimental, peut ne pas fonctionner).", + "flash_fail": "Échec de chargement du contenu Flash, voir la console pour les détails.", + "flash_security": "Cela reste potentiellement dangereux, Flash restant du code arbitraire.", + "generic_error": "Une erreur s'est produite", + "loading": "Chargement…", + "more": "Plus", + "optional": "optionnel", + "peek": "Jeter un coup d'œil", + "retry": "Réessayez", + "role": { + "admin": "Admin", + "moderator": "Modo'" + }, + "scope_in_timeline": { + "direct": "Direct", + "private": "Abonné·e·s uniquement", + "public": "Public", + "unlisted": "Non-listé" + }, + "show_less": "Afficher moins", + "show_more": "Afficher plus", + "submit": "Envoyer", + "verify": "Vérifier" + }, + "image_cropper": { + "cancel": "Annuler", + "crop_picture": "Rogner l'image", + "save": "Sauvegarder", + "save_without_cropping": "Sauvegarder sans rogner" + }, + "importer": { + "error": "Une erreur est survenue pendant l'import de ce fichier.", + "submit": "Envoyer", + "success": "Importé avec succès." + }, + "interactions": { + "favs_repeats": "Partages et favoris", + "follows": "Nouveaux suivis", + "load_older": "Chargez d'anciennes interactions", + "moves": "Migrations de comptes" + }, + "lists": { + "create": "Créer", + "delete": "Supprimer la liste", + "following_only": "Limiter aux abonnements", + "lists": "Listes", + "new": "Créer une liste", + "save": "Enregistrer les modifications", + "search": "Chercher les utilisateurs", + "title": "Nom de la liste" + }, + "login": { + "authentication_code": "Code d'authentification", + "description": "Connexion avec OAuth", + "enter_recovery_code": "Entrez un code de récupération", + "enter_two_factor_code": "Entrez un code double-facteur", + "heading": { + "recovery": "Récupération de l'authentification à double-facteur", + "totp": "Authentification à double-facteur" + }, + "hint": "Connectez-vous pour rejoindre la discussion", + "login": "Connexion", + "logout": "Déconnexion", + "password": "Mot de passe", + "placeholder": "mon nom d'utilisateur", + "recovery_code": "Code de récupération", + "register": "S'inscrire", + "username": "Identifiant" + }, + "media_modal": { + "counter": "{current} / {total}", + "hide": "Fermer la visionneuse", + "next": "Suivant", + "previous": "Précédent" + }, + "nav": { + "about": "À propos", + "administration": "Administration", + "announcements": "Annonces", + "back": "Retour", + "bookmarks": "Marques-Pages", + "bubble_timeline": "Flux de cette bulle", + "bubble_timeline_description": "Les status des instances proches de celle-ci, choisies par l'administration", + "chats": "Chats", + "dms": "Messages directs", + "friend_requests": "Demandes de suivi", + "home_timeline": "Flux personnel", + "home_timeline_description": "Les status de vos abonnements", + "interactions": "Interactions", + "lists": "Listes", + "mentions": "Mentions", + "preferences": "Préférences", + "public_timeline_description": "Tous les status publics de cette instance", + "public_tl": "Flux publique", + "search": "Recherche", + "timeline": "Flux personnel", + "timelines": "Flux", + "twkn": "Réseau connu", + "twkn_timeline_description": "Les status du réseau entier", + "user_search": "Recherche de comptes", + "who_to_follow": "Suggestion de suivit" + }, + "notifications": { + "broken_favorite": "Message inconnu, recherche en cours…", + "error": "Erreur de chargement des notifications : {0}", + "favorited_you": "a aimé votre statut", + "follow_request": "veut vous suivre", + "followed_you": "vous suit", + "load_older": "Charger les notifications précédentes", + "migrated_to": "a migré à", + "no_more_notifications": "Aucune notification supplémentaire", + "notifications": "Notifications", + "poll_ended": "Un sondage vient de se terminer", + "reacted_with": "a réagi avec {0}", + "read": "Lu !", + "repeated_you": "a partagé votre statut" + }, + "password_reset": { + "check_email": "Vérifiez vos courriels pour le lien permettant de changer votre mot de passe.", + "forgot_password": "Mot de passe oublié ?", + "instruction": "Entrer votre address de courriel ou votre nom utilisateur. Nous enverrons un lien pour changer votre mot de passe.", + "password_reset": "Nouveau mot de passe", + "password_reset_disabled": "Le changement de mot de passe est désactivé. Veuillez contacter l'administration de votre instance.", + "password_reset_required": "Vous devez changer votre mot de passe pour vous authentifier.", + "password_reset_required_but_mailer_is_disabled": "Vous devez changer votre mot de passe mais sont changement est désactivé. Veuillez contacter l’administration de votre instance.", + "placeholder": "Votre email ou nom d'utilisateur", + "return_home": "Retourner à la page d'accueil", + "too_many_requests": "Vos avez atteint la limite d'essais, essayez plus tard." + }, + "polls": { + "add_option": "Ajouter une option", + "add_poll": "Ajouter un Sondage", + "expired": "Sondage terminé il y a {0}", + "expires_in": "Fin du sondage dans {0}", + "expiry": "Age du sondage", + "multiple_choices": "Choix multiples", + "not_enough_options": "Trop peu d'options unique au sondage", + "option": "Option", + "people_voted_count": "{count} voteur | {count} voteurs", + "single_choice": "Choix unique", + "type": "Type de Sondage", + "vote": "Voter", + "votes": "votes", + "votes_count": "{count} vote | {count} votes" + }, + "post_status": { + "account_not_locked_warning": "Votre compte n'est pas {0}. N'importe qui peut vous suivre pour voir vos billets en Abonné·e·s uniquement.", + "account_not_locked_warning_link": "verrouillé", + "attachments_sensitive": "Marquer les pièce-jointes comme sensible", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Texte brut", + "text/x.misskeymarkdown": "Markdown (Misskey)" + }, + "content_warning": "Sujet (optionnel)", + "default": "Je viens d'arriver au QG de la NERV", + "direct_warning_to_all": "Ce message sera visible pour toutes les personnes mentionnées.", + "direct_warning_to_first_only": "Ce message sera visible uniquement pour personnes mentionnées au début du message.", + "empty_status_error": "Impossible de poster un statut vide sans pièces-jointes", + "media_description": "Description de la pièce-jointe", + "media_description_error": "Échec de téléversement du media, essayez encore", + "media_not_sensitive_warning": "Il y a un avertissment, mais les pièces jointes ne sont pas marquées comme sensibles !", + "new_status": "Poster un nouveau statut", + "post": "Post", + "posting": "Envoi en cours", + "preview": "Prévisualisation", + "preview_empty": "Vide", + "scope": { + "direct": "Direct - N'envoyer qu'aux personnes mentionnées", + "local": "Local - Ne pas publier dans les flux fédérés", + "private": "Abonné·e·s uniquement - Seul·e·s vos abonné·e·s verront vos status", + "public": "Publique - Publier dans les flux publics", + "unlisted": "Non-listé - Ne pas publier dans les flux publics" + }, + "scope_notice": { + "local": "Ce statut ne sera pas visible dans le flux fédéré", + "private": "Ce statut sera visible par seulement vos abonné⋅e⋅s", + "public": "Ce statut sera visible par tout le monde", + "unlisted": "Ce statut ne sera pas visible dans les flux publics ni les flux fédérés" } - }, - "common_colors": { - "_tab_label": "Commun", - "main": "Couleurs communes", - "foreground_hint": "Voir l'onglet « Avancé » pour plus de contrôle détaillé", - "rgbo": "Icônes, accents, badges" - }, - "advanced_colors": { - "_tab_label": "Avancé", - "alert": "Fond d'alerte", - "alert_error": "Erreur", - "badge": "Fond de badge", - "badge_notification": "Notification", - "panel_header": "Entête de panneau", - "top_bar": "Barre du haut", - "borders": "Bordures", - "buttons": "Boutons", - "inputs": "Champs de saisie", - "faint_text": "Texte en fondu", - "underlay": "sous-calque", - "pressed": "Appuyé", - "alert_warning": "Avertissement", - "alert_neutral": "Neutre", - "post": "Messages/Bios des comptes", - "poll": "Graphique de Sondage", - "icons": "Icônes", - "selectedPost": "Message sélectionné", - "selectedMenu": "Objet sélectionné du menu", - "disabled": "Désactivé", - "tabs": "Onglets", - "toggled": "(Dés)activé", - "highlight": "Éléments mis en valeur", - "popover": "Infobulles, menus", - "chat": { - "border": "Bordure", - "outgoing": "Sortant(s)", - "incoming": "Entrant(s)" + }, + "registration": { + "bio": "Biographie", + "bio_placeholder": "ex.\nSalut, je suis Lain\nJe suis une héroïne d'animation qui vit dans une banlieue japonaise. Vous me connaissez peut-être du Wired.", + "captcha": "CAPTCHA", + "email": "Courriel", + "email_language": "Dans quelle langue souhaitez-vous recevoir des courriels ?", + "fullname": "Pseudonyme", + "fullname_placeholder": "ex. Lain Iwakura", + "new_captcha": "Cliquez sur l'image pour avoir un nouveau captcha", + "password_confirm": "Confirmation du mot de passe", + "reason": "Motivation d'inscription", + "reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.", + "register": "Enregistrer", + "registration": "Inscription", + "token": "Jeton d'invitation", + "username_placeholder": "ex. lain", + "validations": { + "email_required": "ne peut pas être laissé vide", + "fullname_required": "ne peut pas être laissé vide", + "password_confirmation_match": "doit être identique au mot de passe", + "password_confirmation_required": "ne peut pas être laissé vide", + "password_required": "ne peut pas être laissé vide", + "username_required": "ne peut pas être laissé vide" + } + }, + "remote_user_resolver": { + "error": "Non trouvé.", + "remote_user_resolver": "Résolution de compte distant", + "searching_for": "Recherche pour" + }, + "search": { + "hashtags": "Mot-dièses", + "no_results": "Aucun résultats", + "people": "Comptes", + "people_talking": "{count} personnes discutant", + "person_talking": "{count} personnes discutant" + }, + "selectable_list": { + "select_all": "Tout selectionner" + }, + "settings": { + "accent": "Accent", + "account_alias": "Aliass de compte", + "account_alias_table_head": "Alias", + "account_backup": "Sauvegarde", + "account_backup_description": "Vous pouvez télécharger tous vos information de compte, y compris tous vos status. Par contre, il n'est pas encore possible de restaurer un compte à partir de cette archive.", + "account_backup_table_head": "Sauvegarde", + "account_privacy": "Vie privée", + "add_alias_error": "Erreur pendant la création du alias : {error}", + "add_backup": "Créer une archive", + "add_backup_error": "Erreur pendant la création d'une nouvelle archive: {error}", + "added_alias": "Alias créé", + "added_backup": "Archive créée", + "allow_following_move": "Activer le suivit automatique à la migration des comptes", + "always_show_post_button": "Toujours afficher le bouton de Nouveau statut", + "app_name": "Nom de l'application", + "attachmentRadius": "Pièces jointes", + "attachments": "Pièces jointes", + "autohide_floating_post_button": "Automatiquement cacher le bouton de Nouveau Statut (sur mobile)", + "avatar": "Avatar", + "avatarAltRadius": "Avatars (Notifications)", + "avatarRadius": "Avatars", + "avatar_size_instruction": "La taille minimale recommandée pour l'image de l'avatar est de 150x150 pixels.", + "background": "Arrière-plan", + "backup_not_ready": "Archive en cours de préparation", + "bio": "Biographie", + "block_export": "Export des comptes bloqués", + "block_export_button": "Export des comptes bloqués vers un fichier CSV", + "block_import": "Import des comptes bloqués", + "block_import_error": "Erreur lors de l'import des comptes bloqués", + "blocks_imported": "Blocages importés ! Le traitement va prendre un moment.", + "blocks_tab": "Bloqué·e·s", + "bot": "Ce compte est un robot", + "btnRadius": "Boutons", + "cBlue": "Bleu (répondre, suivre)", + "cGreen": "Vert (partager)", + "cOrange": "Orange (aimer)", + "cRed": "Rouge (annuler)", + "change_email": "Changer de courriel", + "change_email_error": "Il y a eu un problème pour changer votre courriel.", + "change_password": "Changez votre mot de passe", + "change_password_error": "Il y a eu un problème pour changer votre mot de passe.", + "changed_email": "Courriel changé avec succès !", + "changed_password": "Mot de passe modifié avec succès !", + "chatMessageRadius": "Message de chat", + "checkboxRadius": "Cases à cocher", + "collapse_subject": "Réduire les messages avec des sujets", + "composing": "Composition", + "confirm_new_password": "Confirmation du nouveau mot de passe", + "conversation_display": "Affichage des fils", + "conversation_display_linear": "Vue linéaire", + "conversation_display_tree": "Vue arborescente", + "conversation_other_replies_button": "Afficher le bouton « autres réponses »", + "conversation_other_replies_button_below": "En dessous des statuts", + "conversation_other_replies_button_inside": "Intégré aux statuts", + "current_avatar": "Avatar actuel", + "current_mascot": "Mascotte actuelle", + "current_password": "Mot de passe actuel", + "data_import_export_tab": "Import / Export des Données", + "default_vis": "Visibilité par défaut", + "delete_account": "Supprimer le compte", + "delete_account_description": "Supprimer définitivement vos données et désactiver votre compte.", + "delete_account_error": "Il y a eu un problème lors de la tentative de suppression de votre compte. Si le problème persiste, contactez l'administration de cette instance.", + "delete_account_instructions": "Indiquez votre mot de passe ci-dessous pour confirmer la suppression de votre compte.", + "disable_sticky_headers": "Ne pas afficher les en-têtes en haut de l'écran", + "discoverable": "Permettre de découvrir ce compte dans les résultats de recherche web et autres services", + "domain_mutes": "Domaines", + "download_backup": "Télécharger", + "email_language": "Langue des courriels provenant de ce serveur", + "emoji_reactions_on_timeline": "Montrer les émojis-réactions dans le flux", + "enable_web_push_notifications": "Activer les notifications de push web", + "enter_current_password_to_confirm": "Entrez votre mot de passe actuel pour confirmer votre identité", + "expert_mode": "Avancé", + "export_theme": "Enregistrer le thème", + "file_export_import": { + "backup_restore": "Sauvegarde des Paramètres", + "backup_settings": "Sauvegarder les paramètres dans un fichier", + "backup_settings_theme": "Sauvegarder les paramètres et le thème dans un fichier", + "errors": { + "file_slightly_new": "La version mineure du fichier est différente, quelques paramètres on pût ne pas chargés", + "file_too_new": "Version majeure incompatible. {fileMajor}, ce PleromaFE ({feMajor}) est trop ancien", + "file_too_old": "Version majeure incompatible : {fileMajor}, la version du fichier est trop vielle et n'est plus supportée (vers. min. {feMajor})", + "invalid_file": "Le fichier sélectionné n'est pas un format supporté pour les sauvegarde Pleroma. Aucun changement n'a été fait." + }, + "restore_settings": "Restaurer les paramètres depuis un fichier" }, - "wallpaper": "Fond d'écran" - }, - "radii": { - "_tab_label": "Rondeur" - }, - "shadows": { - "_tab_label": "Ombres et éclairage", - "component": "Composant", - "override": "Surcharger", - "shadow_id": "Ombre #{value}", - "blur": "Flou", - "spread": "Dispersion", - "inset": "Interne", - "hint": "Pour les ombres, vous pouvez aussi utiliser --variable comme valeur de couleur en CSS3. Veuillez noter que spécifier la transparence ne fonctionnera pas dans ce cas.", - "filter_hint": { - "always_drop_shadow": "Attention, cette ombre utilise toujours {0} quand le navigateur le supporte.", - "drop_shadow_syntax": "{0} ne supporte pas le paramètre {1} et mot-clé {2}.", - "avatar_inset": "Veuillez noter que combiner à la fois les ombres internes et non-internes sur les avatars peut fournir des résultats inattendus avec la transparence des avatars.", - "spread_zero": "Les ombres avec une dispersion > 0 apparaitrons comme si ils étaient à zéro", - "inset_classic": "L'ombre interne utilisera toujours {0}" + "filtering": "Filtrage", + "filtering_explanation": "Tous les statuts contenant ces mots seront masqués. Un mot par ligne", + "follow_export": "Exporter les suivis", + "follow_export_button": "Exporter les suivis dans un fichier CSV", + "follow_import": "Import des suivis", + "follow_import_error": "Erreur lors de l'importation des suivis", + "follows_imported": "Suivis importés ! Le traitement peut prendre un moment.", + "foreground": "Premier plan", + "fun": "Rigolo", + "general": "Général", + "greentext": "greentexting", + "hide_all_muted_posts": "Cacher les messages masqués", + "hide_attachments_in_convo": "Masquer les pièces jointes dans les conversations", + "hide_attachments_in_tl": "Masquer les pièces jointes dans le flux", + "hide_bot_indication": "Masquer l'indicateur des robots", + "hide_favorites_description": "Ne pas afficher mes favoris (l'objet recevra quand-même une notification)", + "hide_filtered_statuses": "Masquer les statuts filtrés", + "hide_followers_count_description": "Masquer le nombre d'abonnés", + "hide_followers_description": "Ne pas afficher qui est abonné à moi", + "hide_follows_count_description": "Masquer le nombre de suivis", + "hide_follows_description": "Ne pas afficher à qui je suis abonné", + "hide_isp": "Masquer le panneau de l'instance", + "hide_list_aliases_error_action": "Fermer", + "hide_media_previews": "Cacher la prévisualisation des pièces jointes", + "hide_muted_posts": "Masquer les statuts des comptes masqués", + "hide_muted_threads": "Masquer les fils de discussion silenciés", + "hide_post_stats": "Masquer les statistiques des messages (ex. le nombre de favoris)", + "hide_shoutbox": "Cacher la shoutbox de l'instance", + "hide_threads_with_blocked_users": "Masquer les fils qui mentionnent les personnes bloquées", + "hide_user_stats": "Masquer les statistiques de compte (ex. le nombre de suivis)", + "hide_wallpaper": "Cacher le fond d'écran", + "hide_wordfiltered_statuses": "Masquer les statuts filtrés par mot-clé", + "import_blocks_from_a_csv_file": "Import de blocages depuis un fichier CSV", + "import_followers_from_a_csv_file": "Import de suivis depuis un fichier CSV", + "import_mutes_from_a_csv_file": "Import de masquages depuis un fichier CSV", + "import_theme": "Charger le thème", + "inputRadius": "Champs de texte", + "instance_default": "(default : {value})", + "instance_default_simple": "(default)", + "interface": "Interface", + "interfaceLanguage": "Langue de l'interface", + "invalid_theme_imported": "Le fichier sélectionné n'est pas un thème Pleroma pris en charge. Aucun changement n'a été apporté à votre thème.", + "limited_availability": "Non disponible dans votre navigateur", + "links": "Liens", + "list_aliases_error": "Erreur lors de la récupération des alias : {error}", + "list_backups_error": "Erreur pendant la sauvegarde des listes: {error}", + "lock_account_description": "Limitez votre compte aux abonnés acceptés uniquement", + "loop_video": "Vidéos en boucle", + "loop_video_silent_only": "Boucle uniquement les vidéos sans le son (les « gifs » de Mastodon)", + "mascot": "Mascotte de l'interface Mastodon", + "max_depth_in_thread": "Nombre maximum de niveaux à afficher dans les fils par défaut", + "max_thumbnails": "Nombre maximum de miniatures par statuts", + "mention_link_bolden_you": "Souligner votre pseudo quand vous êtes mentionné⋅e", + "mention_link_display": "Afficher les liens pour les personnes mentionnées", + "mention_link_display_full": "toujours affiches les pseudos complets (ex : {'@'}foo{'@'}example.org)", + "mention_link_display_full_for_remote": "les peusodos complets pour les utilisateurs distants (ex : {'@'}foo{'@'}example.org)", + "mention_link_display_short": "les pseudos courts (ex : {'@'}foo)", + "mention_link_fade_domain": "Afficher le nom de domaine en gris clair (ex : {'@'}example.org dans {'@'}foo{'@'}example.org)", + "mention_link_show_avatar": "Afficher l'avatar à côté du lien", + "mention_link_show_tooltip": "Afficher une info-bulle pour les utilisateurs distants", + "mention_links": "Mentions", + "mfa": { + "authentication_methods": "Méthodes d'authentification", + "confirm_and_enable": "Confirmer & activer OTP", + "generate_new_recovery_codes": "Générer de nouveaux codes de récupération", + "otp": "OTP", + "recovery_codes": "Codes de récupération.", + "recovery_codes_warning": "Écrivez ces codes ou sauvegardez les dans un endroit sécurisé - sinon vous ne les verrez plus jamais. Si vous perdez l'accès à votre application de double authentification et codes de récupération vous serez verrouillé en dehors de votre compte.", + "scan": { + "desc": "En utilisant votre application d'authentification à double-facteur, scannez ce QR code ou entrez la clé textuelle :", + "secret_code": "Clé", + "title": "Scanner" + }, + "setup_otp": "Configurer OTP", + "title": "Authentification double-facteur", + "verify": { + "desc": "Pour activer l'authentification à double-facteur, entrez le code donné par votre application :" + }, + "wait_pre_setup_otp": "préconfiguration OTP", + "waiting_a_recovery_codes": "Réception des codes de récupération…", + "warning_of_generate_new_codes": "Quand vous générez de nouveaux codes de récupération, vos anciens codes ne fonctionnerons plus." }, - "components": { - "panel": "Panneau", - "panelHeader": "En-tête de panneau", - "topBar": "Barre du haut", - "avatar": "Avatar utilisateur⋅ice (dans la vue de profil)", - "avatarStatus": "Avatar utilisateur⋅ice (dans la vue de statuts)", - "popup": "Popups et infobulles", - "button": "Bouton", - "buttonHover": "Bouton (survol)", - "buttonPressed": "Bouton (cliqué)", - "buttonPressedHover": "Bouton (cliqué+survol)", - "input": "Champ de saisie" + "minimal_scopes_mode": "Rétrécir les options de séléction de la portée", + "more_settings": "Plus de préférences", + "move_account": "Transférer un compte", + "move_account_error": "Erreur pendant le transfert de compte : {error}", + "move_account_notes": "Pour transférer votre compte vers une autre instance, il faut créer sur cette dernière un alias vers ce compte.", + "move_account_target": "Compte destinaire (ex : {example})", + "moved_account": "Compte transféré", + "mute_bot_posts": "Silencier les comptes robots", + "mute_export": "Export des masquages", + "mute_export_button": "Exporter vos masquages dans un fichier CSV", + "mute_import": "Import des masquages", + "mute_import_error": "Erreur à l'import des masquages", + "mutes_and_blocks": "Masquage et Blocages", + "mutes_imported": "Masquages importés ! Leur application peut prendre du temps.", + "mutes_tab": "Comptes silenciés", + "name": "Nom", + "name_bio": "Nom & Bio", + "new_alias_target": "Créer un alias (ex : {example})", + "new_email": "Nouveau courriel", + "new_password": "Nouveau mot de passe", + "no_blocks": "Aucun bloqués", + "no_mutes": "Aucun masqués", + "no_rich_text_description": "Ne formatez pas le texte", + "notification_blocks": "Bloquer un utilisateur stoppe toute notification et se désabonne de lui.", + "notification_mutes": "Pour stopper la récéption de notifications d'un utilisateur particulier, utilisez un masquage.", + "notification_setting_block_from_strangers": "Bloquer les notifications des utilisateur⋅ice⋅s que vous ne suivez pas", + "notification_setting_filters": "Filtres", + "notification_setting_hide_if_cw": "Cacher les notifications avec avertissement de contenu sensible", + "notification_setting_hide_notification_contents": "Cacher l'expéditeur et le contenu des notifications push", + "notification_setting_privacy": "Vie privée", + "notification_visibility": "Types de notifications à afficher", + "notification_visibility_emoji_reactions": "Réactions", + "notification_visibility_follows": "Suivis", + "notification_visibility_likes": "Favoris", + "notification_visibility_mentions": "Mentionnés", + "notification_visibility_moves": "Migrations de compte", + "notification_visibility_polls": "Fins des sondages", + "notification_visibility_repeats": "Partages", + "notifications": "Notifications", + "nsfw_clickthrough": "Activer le clic pour dévoiler les pièces jointes et cacher l'aperçu des liens pour les statuts marqués comme sensibles", + "oauth_tokens": "Jetons OAuth", + "pad_emoji": "Entourer les émoji d'espaces après leur sélections", + "panelRadius": "Fenêtres", + "pause_on_unfocused": "Suspendre le streaming lorsque l'onglet n'est pas actif", + "play_videos_in_modal": "Jouer les vidéos directement dans le visionneur de médias", + "post_look_feel": "Apparence des status", + "post_status_content_type": "Type de contenu du statuts", + "posts": "Statuts", + "preload_images": "Précharger les images", + "presets": "Thèmes prédéfinis", + "profile_background": "Image de fond de profil", + "profile_banner": "Bannière de profil", + "profile_fields": { + "add_field": "Ajouter un champ", + "label": "Champs du profil", + "name": "Nom du champ", + "value": "Contenu" }, - "hintV3": "Pour les ombres vous pouvez aussi utiliser la notation {0} pour utiliser un autre emplacement de couleur." - }, - "fonts": { - "_tab_label": "Polices", - "help": "Sélectionnez la police à utiliser pour les éléments de l'UI. Pour « personnalisé » vous avez à entrer le nom exact de la police comme il apparaît dans le système.", - "components": { - "interface": "Interface", - "input": "Champs de saisie", - "post": "Post text", - "postCode": "Texte à taille fixe dans un article (texte enrichi)" + "profile_tab": "Profil", + "radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)", + "refresh_token": "Rafraichir le jeton", + "remove_alias": "Supprimer ce pseudo", + "remove_backup": "Supprimer", + "render_mfm": "Afficher le contenu Misskey Markdown", + "replies_in_timeline": "Réponses dans le flux", + "reply_visibility_all": "Montrer toutes les réponses", + "reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux personnes que je suis", + "reply_visibility_following_short": "Montrer les réponses à mes suivis", + "reply_visibility_self": "Afficher uniquement les réponses adressées à moi", + "reply_visibility_self_short": "Uniquement les réponses à moi", + "reset_avatar": "Réinitialiser l'avatar", + "reset_avatar_confirm": "Voulez-vraiment réinitialiser l'avatar ?", + "reset_background_confirm": "Voulez-vraiment réinitialiser l'arrière-plan ?", + "reset_banner_confirm": "Voulez-vraiment réinitialiser la bannière ?", + "reset_profile_background": "Réinitialiser le fond du profil", + "reset_profile_banner": "Réinitialiser la bannière du profil", + "revoke_token": "Révoquer", + "right_sidebar": "Afficher le paneau latéral à droite", + "save": "Enregistrer les changements", + "saving_err": "Erreur lors de l'enregistrement des paramètres", + "saving_ok": "Paramètres enregistrés", + "scope_copy": "Garder la même visibilité en répondant (les DMs restent toujours des DMs)", + "search_user_to_block": "Rechercher qui vous voulez bloquer", + "search_user_to_mute": "Rechercher qui vous voulez masquer", + "security": "Sécurité", + "security_tab": "Sécurité", + "sensitive_by_default": "Marquer les messages comme sensible par défaut", + "sensitive_if_subject": "Automatiquement marquer les images comme sensible quand le statut a un sujet", + "set_new_avatar": "Changer d'avatar", + "set_new_mascot": "Changer de mascotte", + "set_new_profile_background": "Changer d'image de fond", + "set_new_profile_banner": "Changer de bannière", + "setting_changed": "Préférence modifiée", + "setting_server_side": "Modifier cette préférence répercute sur tous vos clients", + "settings": "Paramètres", + "show_admin_badge": "Afficher le badge d'Admin sur mon profil", + "show_moderator_badge": "Afficher le badge de Modo' sur mon profil", + "show_scrollbars": "Afficher la barre de défilement", + "show_yous": "Afficher « Vous : »", + "stop_gifs": "N'animer les GIFS que lors du survol du curseur de la souris", + "streaming": "Charger automatiquement les nouveaux statuts lorsque vous êtes au haut de la page", + "style": { + "advanced_colors": { + "_tab_label": "Avancé", + "alert": "Fond d'alerte", + "alert_error": "Erreur", + "alert_neutral": "Neutre", + "alert_warning": "Avertissement", + "badge": "Fond de badge", + "badge_notification": "Notification", + "borders": "Bordures", + "buttons": "Boutons", + "chat": { + "border": "Bordure", + "incoming": "Entrant(s)", + "outgoing": "Sortant(s)" + }, + "disabled": "Désactivé", + "faint_text": "Texte en fondu", + "highlight": "Éléments mis en valeur", + "icons": "Icônes", + "inputs": "Champs de saisie", + "panel_header": "Entête de panneau", + "poll": "Graphique de Sondage", + "popover": "Infobulles, menus", + "post": "Messages/Bios des comptes", + "pressed": "Appuyé", + "selectedMenu": "Objet sélectionné du menu", + "selectedPost": "Message sélectionné", + "tabs": "Onglets", + "toggled": "(Dés)activé", + "top_bar": "Barre du haut", + "underlay": "sous-calque", + "wallpaper": "Fond d'écran" + }, + "common": { + "color": "Couleur", + "contrast": { + "context": { + "18pt": "pour texte large (19pt+)", + "text": "pour texte" + }, + "hint": "Le ratio de contraste est {ratio}, il {level} {context}", + "level": { + "aa": "répond aux directives de niveau AA (minimum)", + "aaa": "répond aux directives de niveau AAA (recommandé)", + "bad": "ne réponds à aucune directive d'accessibilité" + } + }, + "opacity": "Transparence" + }, + "common_colors": { + "_tab_label": "Commun", + "foreground_hint": "Voir l'onglet « Avancé » pour plus de contrôle détaillé", + "main": "Couleurs communes", + "rgbo": "Icônes, accents, badges" + }, + "fonts": { + "_tab_label": "Polices", + "components": { + "input": "Champs de saisie", + "interface": "Interface", + "post": "Post text", + "postCode": "Texte à taille fixe dans un article (texte enrichi)" + }, + "custom": "Personnalisé", + "family": "Nom de la police", + "help": "Sélectionnez la police à utiliser pour les éléments de l'UI. Pour « personnalisé » vous avez à entrer le nom exact de la police comme il apparaît dans le système.", + "size": "Taille (en px)", + "weight": "Poid (gras)" + }, + "preview": { + "button": "Bouton", + "checkbox": "J'ai survolé les conditions d'utilisation", + "content": "Contenu", + "error": "Exemple d'erreur", + "faint_link": "manuel utile", + "fine_print": "Lisez notre {0} pour n'apprendre rien d'utile !", + "header": "Prévisualisation", + "header_faint": "Tout va bien", + "input": "Je viens juste d’atterrir à L.A.", + "link": "un petit lien sympa", + "mono": "contenu", + "text": "Un certain nombre de {0} et {1}" + }, + "radii": { + "_tab_label": "Rondeur" + }, + "shadows": { + "_tab_label": "Ombres et éclairage", + "blur": "Flou", + "component": "Composant", + "components": { + "avatar": "Avatar utilisateur⋅ice (dans la vue de profil)", + "avatarStatus": "Avatar utilisateur⋅ice (dans la vue de statuts)", + "button": "Bouton", + "buttonHover": "Bouton (survol)", + "buttonPressed": "Bouton (cliqué)", + "buttonPressedHover": "Bouton (cliqué+survol)", + "input": "Champ de saisie", + "panel": "Panneau", + "panelHeader": "En-tête de panneau", + "popup": "Popups et infobulles", + "topBar": "Barre du haut" + }, + "filter_hint": { + "always_drop_shadow": "Attention, cette ombre utilise toujours {0} quand le navigateur le supporte.", + "avatar_inset": "Veuillez noter que combiner à la fois les ombres internes et non-internes sur les avatars peut fournir des résultats inattendus avec la transparence des avatars.", + "drop_shadow_syntax": "{0} ne supporte pas le paramètre {1} et mot-clé {2}.", + "inset_classic": "L'ombre interne utilisera toujours {0}", + "spread_zero": "Les ombres avec une dispersion > 0 apparaitrons comme si ils étaient à zéro" + }, + "hintV3": "Pour les ombres vous pouvez aussi utiliser la notation {0} pour utiliser un autre emplacement de couleur.", + "inset": "Interne", + "override": "Surcharger", + "shadow_id": "Ombre #{value}", + "spread": "Dispersion" + }, + "switcher": { + "clear_all": "Tout vider", + "clear_opacity": "Vider la transparence", + "help": { + "fe_downgraded": "Retour en arrière de la version de PleromaFE.", + "fe_upgraded": "Le moteur de thème PleromaFE à été mis à jour après un changement de version.", + "future_version_imported": "Le fichier importé viens d'une version postérieure de PleromaFE.", + "migration_napshot_gone": "Pour une raison inconnue l'instantané est manquant, des parties peuvent rendre différentes que dans vos souvenirs.", + "migration_snapshot_ok": "Pour être sûr un instantanée du thème à été chargé. Vos pouvez essayer de charger ses données.", + "older_version_imported": "Le fichier importé viens d'une version antérieure de PleromaFE.", + "snapshot_missing": "Aucun instantané du thème à été trouvé dans le fichier, il peut y avoir un rendu différent à la vision originelle.", + "snapshot_present": "Un instantané du thème à été chargé, toutes les valeurs sont dont écrasées. Vous pouvez autrement charger le thème complètement.", + "snapshot_source_mismatch": "Conflict de version : Probablement due à un retour arrière puis remise à jour de la version de PleromaFE, si vous avez charger le thème en utilisant une version antérieure vous voulez probablement utiliser la version antérieure, autrement utiliser la version postérieure.", + "upgraded_from_v2": "PleromaFE à été mis à jour, le thème peut être un peu différent que dans vos souvenirs.", + "v2_imported": "Le fichier que vous avez importé vient d'une version antérieure. Nous essayons de maximizer la compatibilité mais il peut y avoir quelques incohérences." + }, + "keep_as_is": "Garder tel-quel", + "keep_color": "Garder les couleurs", + "keep_fonts": "Garder les polices", + "keep_opacity": "Garder la transparence", + "keep_roundness": "Garder la rondeur", + "keep_shadows": "Garder les ombres", + "load_theme": "Charger le thème", + "reset": "Remise à zéro", + "save_load_hint": "L'option « Garder » préserve les options activés en cours lors de la séléction ou chargement des thèmes, il sauve aussi les dites options lors de l'export d'un thème. Quand toutes les cases sont décochés, exporter un thème sauvera tout.", + "use_snapshot": "Ancienne version", + "use_source": "Nouvelle version" + } }, - "family": "Nom de la police", - "size": "Taille (en px)", - "weight": "Poid (gras)", - "custom": "Personnalisé" - }, - "preview": { - "header": "Prévisualisation", - "content": "Contenu", - "error": "Exemple d'erreur", - "button": "Bouton", - "text": "Un certain nombre de {0} et {1}", - "mono": "contenu", - "input": "Je viens juste d’atterrir à L.A.", - "faint_link": "manuel utile", - "fine_print": "Lisez notre {0} pour n'apprendre rien d'utile !", - "header_faint": "Tout va bien", - "checkbox": "J'ai survolé les conditions d'utilisation", - "link": "un petit lien sympa" - } + "subject_input_always_show": "Toujours afficher le champ Sujet", + "subject_line_behavior": "Copier le sujet en répondant", + "subject_line_email": "Similaire au courriel : « re : sujet »", + "subject_line_mastodon": "Comme mastodon : copier tel quel", + "subject_line_noop": "Ne pas copier", + "text": "Texte", + "theme": "Thème", + "theme_help": "Spécifiez des codes couleur hexadécimaux (#rrvvbb) pour personnaliser les couleurs du thème.", + "theme_help_v2_1": "Vous pouvez aussi surcharger certaines couleurs de composants et transparence via la case à cocher, utilisez le bouton « Vider tout » pour effacer toutes les surcharges.", + "theme_help_v2_2": "Les icônes sous certaines des entrées ont un indicateur de contraste du fond/texte, survolez les pour plus d'informations détailles. Veuillez garder a l'esprit que lors de l'utilisation de transparence l'indicateur de contraste indique le pire des cas.", + "third_column_mode": "Afficher la troisième colonne selon l'éspace disponible", + "third_column_mode_none": "Ne pas afficher la troisième colonne", + "third_column_mode_notifications": "Notifications", + "third_column_mode_postform": "Création de statut et navigation", + "token": "Jeton", + "tooltipRadius": "Info-bulles/alertes", + "tree_advanced": "Navigation plus flexible en vue arborescente", + "tree_fade_ancestors": "Afficher les statuts précédents en gris clair", + "type_domains_to_mute": "Chercher les domaines à masquer", + "upload_a_photo": "Envoyer une photo", + "useStreamingApi": "Recevoir les messages et notifications en temps réel", + "useStreamingApiWarning": "(Non recommandé, expérimental, connu pour rater des messages)", + "use_at_icon": "Afficher le symbol {'@'} comme une image", + "use_contain_fit": "Ne pas rogner les miniatures des pièces-jointes", + "use_one_click_nsfw": "Ouvrir les pièces-jointes sensibles avec un seul clic", + "user_mutes": "Comptes", + "user_profiles": "Profils utilisateurs", + "user_settings": "Paramètres utilisateur", + "valid_until": "Valable jusque", + "values": { + "false": "non", + "true": "oui" + }, + "version": { + "backend_version": "Version du Backend", + "frontend_version": "Version du Frontend", + "title": "Version" + }, + "virtual_scrolling": "Optimiser le rendu des flux", + "word_filter": "Filtrage par mots", + "wordfilter": "Filtrage par mot-clé" }, - "version": { - "title": "Version", - "backend_version": "Version du Backend", - "frontend_version": "Version du Frontend" + "status": { + "ancestor_follow": "Voir {numReplies} autre réponse en dessous de ce status | Voir {numReplies} autres réponses en dessous de ce status", + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "Arrêter le lecteur Flash", + "bookmark": "Ajouter aux favoris", + "collapse_attachments": "Réduire les pièces jointes", + "copy_link": "Copier le lien au status", + "delete": "Supprimer statuts", + "delete_confirm": "Voulez-vous vraiment supprimer ce statuts ?", + "expand": "Développer", + "external_source": "Source externe", + "favorites": "Favoris", + "hide_attachment": "Masquer la pièce jointe", + "hide_content": "Cacher le contenu", + "hide_full_subject": "Cacher le sujet", + "many_attachments": "Le statut a {number} pièce jointe | Le statut a {number} pièces jointes", + "mentions": "Mentions", + "move_down": "Déplacer à droit", + "move_up": "Déplacer à gauche", + "mute_conversation": "Masquer la conversation", + "nsfw": "Contenu sensible", + "open_gallery": "Afficher la galerie", + "pin": "Agrafer sur le profil", + "pinned": "Agraffé", + "plus_more": "+{number} autre | +{number} autres", + "remove_attachment": "Supprimer la pièce jointe", + "repeats": "Partages", + "replies_list": "Réponses :", + "replies_list_with_others": "Réponses (+{numReplies} autre): | Réponses (+{numReplies} autres) :", + "reply_to": "Réponse à", + "show_all_attachments": "Afficher toutes les pièces jointes", + "show_all_conversation": "Afficher le fils entier ({numStatus} autre statut) | Afficher le fil entier ({numStatus} autres statuts)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "Aperçu (ouvrir la pièce joint pour voir la description complète)", + "show_attachment_in_modal": "Ouvrir dans la visionneuse", + "show_content": "Montrer le contenu", + "show_full_subject": "Montrer le sujet en entier", + "show_only_conversation_under_this": "N'afficher que les réponses a ce statut", + "status_deleted": "Ce post a été effacé", + "status_unavailable": "Status indisponible", + "thread_follow": "Afficher la partie restante du fil ({numStatus} statut au total) | Afficher la partie restante du fil ({numStatus} statuts au total)", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "Masquer ce fil", + "thread_muted": "Fil de discussion masqué", + "thread_muted_and_words": ", contient les mots :", + "thread_show": "Afficher ce fil", + "thread_show_full": "Afficher tout les statuts dans ce fil ({numStatus} au total, profondeur maximale {depth})", + "thread_show_full_with_icon": "{icon} {text}", + "unbookmark": "Supprimer des favoris", + "unmute_conversation": "Démasquer la conversation", + "unpin": "Dégrafer du profil", + "you": "(Vous)" }, - "change_email": "Changer de courriel", - "domain_mutes": "Domaines", - "pad_emoji": "Entourer les émoji d'espaces après leur sélections", - "notification_visibility_emoji_reactions": "Réactions", - "hide_follows_count_description": "Masquer le nombre de suivis", - "useStreamingApiWarning": "(Non recommandé, expérimental, connu pour rater des messages)", - "type_domains_to_mute": "Chercher les domaines à masquer", - "fun": "Rigolo", - "greentext": "greentexting", - "allow_following_move": "Activer le suivit automatique à la migration des comptes", - "change_email_error": "Il y a eu un problème pour changer votre courriel.", - "changed_email": "Courriel changé avec succès !", - "discoverable": "Permettre de découvrir ce compte dans les résultats de recherche web et autres services", - "emoji_reactions_on_timeline": "Montrer les émojis-réactions dans le flux", - "new_email": "Nouveau courriel", - "notification_visibility_moves": "Migrations de compte", - "user_mutes": "Comptes", - "useStreamingApi": "Recevoir les messages et notifications en temps réel", - "notification_setting_filters": "Filtres", - "notification_setting_privacy_option": "Masquer l'expéditeur et le contenu des notifications push", - "notification_setting_privacy": "Intimité", - "hide_followers_count_description": "Masquer le nombre d'abonnés", - "accent": "Accent", - "chatMessageRadius": "Message de chat", - "bot": "Ce compte est un robot", - "import_mutes_from_a_csv_file": "Import de masquages depuis un fichier CSV", - "mutes_imported": "Masquages importés ! Leur application peut prendre du temps.", - "mute_import_error": "Erreur à l'import des masquages", - "mute_import": "Import des masquages", - "mute_export_button": "Exporter vos masquages dans un fichier CSV", - "mute_export": "Export des masquages", - "notification_setting_hide_notification_contents": "Cacher l'expéditeur et le contenu des notifications push", - "notification_setting_block_from_strangers": "Bloquer les notifications des utilisateur⋅ice⋅s que vous ne suivez pas", - "virtual_scrolling": "Optimiser le rendu des flux", - "reset_background_confirm": "Voulez-vraiment réinitialiser l'arrière-plan ?", - "reset_banner_confirm": "Voulez-vraiment réinitialiser la bannière ?", - "reset_avatar_confirm": "Voulez-vraiment réinitialiser l'avatar ?", - "reset_profile_banner": "Réinitialiser la bannière du profil", - "reset_profile_background": "Réinitialiser le fond du profil", - "reset_avatar": "Réinitialiser l'avatar", - "profile_fields": { - "value": "Contenu", - "name": "Nom du champ", - "add_field": "Ajouter un champ", - "label": "Champs du profil" + "time": { + "in_future": "dans {0}", + "in_past": "il y a {0}", + "now": "tout de suite", + "now_short": "maintenant", + "unit": { + "days": "{0} jours", + "days_short": "{0}j", + "hours": "{0} heures", + "hours_short": "{0}h", + "minutes": "{0} minutes", + "minutes_short": "{0}min", + "months": "{0} mois", + "months_short": "{0}m", + "seconds": "{0} secondes", + "seconds_short": "{0}s", + "weeks": "{0} semaines", + "weeks_short": "{0}s", + "years": "{0} années", + "years_short": "{0}a" + } }, - "hide_media_previews": "Cacher la prévisualisation des pièces jointes", - "mutes_and_blocks": "Masquage et Blocages", - "setting_changed": "Préférence modifiée", - "more_settings": "Plus de préférences", - "sensitive_by_default": "Marquer les messages comme sensible par défaut", - "reply_visibility_self_short": "Uniquement les réponses à moi", - "reply_visibility_following_short": "Montrer les réponses à mes suivis", - "hide_wallpaper": "Cacher le fond d'écran", - "hide_all_muted_posts": "Cacher les messages masqués", - "word_filter": "Filtrage par mots", - "save": "Enregistrer les changements", - "file_export_import": { - "backup_settings_theme": "Sauvegarder les paramètres et le thème dans un fichier", - "errors": { - "invalid_file": "Le fichier sélectionné n'est pas un format supporté pour les sauvegarde Pleroma. Aucun changement n'a été fait.", - "file_too_new": "Version majeure incompatible. {fileMajor}, ce PleromaFE ({feMajor}) est trop ancien", - "file_too_old": "Version majeure incompatible : {fileMajor}, la version du fichier est trop vielle et n'est plus supportée (vers. min. {feMajor})", - "file_slightly_new": "La version mineure du fichier est différente, quelques paramètres on pût ne pas chargés" - }, - "backup_restore": "Sauvegarde des Paramètres", - "backup_settings": "Sauvegarder les paramètres dans un fichier", - "restore_settings": "Restaurer les paramètres depuis un fichier" + "timeline": { + "collapse": "Fermer", + "conversation": "Conversation", + "error": "Erreur lors de l'affichage du flux : {0}", + "load_older": "Afficher des status plus ancien", + "no_more_statuses": "Pas plus de statuts", + "no_retweet_hint": "Le message est marqué en abonnés-seulement ou direct et ne peut pas être partagé", + "no_statuses": "Aucun statuts", + "reload": "Recharger", + "repeated": "a partagé", + "show_new": "Afficher plus", + "socket_broke": "Connexion temps-réel perdue : CloseEvent code {0}", + "socket_reconnected": "Connexion temps-réel établie", + "up_to_date": "À jour" }, - "hide_shoutbox": "Cacher la shoutbox de l'instance", - "right_sidebar": "Afficher le paneau latéral à droite" - }, - "timeline": { - "collapse": "Fermer", - "conversation": "Conversation", - "error_fetching": "Erreur en cherchant les mises à jour", - "load_older": "Afficher des status plus ancien", - "no_retweet_hint": "Le message est marqué en abonnés-seulement ou direct et ne peut pas être partagé", - "repeated": "a partagé", - "show_new": "Afficher plus", - "up_to_date": "À jour", - "no_more_statuses": "Pas plus de statuts", - "no_statuses": "Aucun statuts", - "reload": "Recharger", - "error": "Erreur lors de l'affichage du flux : {0}", - "socket_broke": "Connexion temps-réel perdue : CloseEvent code {0}", - "socket_reconnected": "Connexion temps-réel établie" - }, - "status": { - "favorites": "Favoris", - "repeats": "Partages", - "delete": "Supprimer statuts", - "pin": "Agrafer sur le profil", - "unpin": "Dégrafer du profil", - "pinned": "Agraffé", - "delete_confirm": "Voulez-vous vraiment supprimer ce statuts ?", - "reply_to": "Réponse à", - "replies_list": "Réponses :", - "mute_conversation": "Masquer la conversation", - "unmute_conversation": "Démasquer la conversation", - "status_unavailable": "Status indisponible", - "copy_link": "Copier le lien au status", - "expand": "Développer", - "nsfw": "Contenu sensible", - "status_deleted": "Ce post a été effacé", - "hide_content": "Cacher le contenu", - "show_content": "Montrer le contenu", - "hide_full_subject": "Cacher le sujet", - "show_full_subject": "Montrer le sujet en entier", - "thread_muted_and_words": ", contient les mots :", - "thread_muted": "Fil de discussion masqué", - "external_source": "Source externe", - "unbookmark": "Supprimer des favoris", - "bookmark": "Ajouter aux favoris" - }, - "user_card": { - "approve": "Accepter", - "block": "Bloquer", - "blocked": "Bloqué !", - "deny": "Rejeter", - "favorites": "Favoris", - "follow": "Suivre", - "follow_sent": "Demande envoyée !", - "follow_progress": "Demande en cours…", - "follow_unfollow": "Désabonner", - "followees": "Suivis", - "followers": "Vous suivent", - "following": "Suivi !", - "follows_you": "Vous suit !", - "its_you": "C'est vous !", - "media": "Media", - "mute": "Masquer", - "muted": "Masqué", - "per_day": "par jour", - "remote_follow": "Suivre d'une autre instance", - "report": "Signalement", - "statuses": "Statuts", - "unblock": "Débloquer", - "unblock_progress": "Déblocage…", - "block_progress": "Blocage…", - "unmute": "Démasquer", - "unmute_progress": "Démasquage…", - "mute_progress": "Masquage…", - "admin_menu": { - "moderation": "Moderation", - "grant_admin": "Promouvoir Administrateur⋅ice", - "revoke_admin": "Dégrader Administrateur⋅ice", - "grant_moderator": "Promouvoir Modérateur⋅ice", - "revoke_moderator": "Dégrader Modérateur⋅ice", - "activate_account": "Activer le compte", - "deactivate_account": "Désactiver le compte", - "delete_account": "Supprimer le compte", - "force_nsfw": "Marquer tous les statuts comme NSFW", - "strip_media": "Supprimer les medias des statuts", - "force_unlisted": "Forcer les statuts à être délistés", - "sandbox": "Forcer les statuts à être visibles seuleument pour les abonné⋅e⋅s", - "disable_remote_subscription": "Interdir de s'abonner a l'utilisateur depuis l'instance distante", - "disable_any_subscription": "Interdir de s'abonner à l'utilisateur tout court", - "quarantine": "Interdir les statuts de l'utilisateur à fédérer", - "delete_user": "Supprimer l'utilisateur" + "tool_tip": { + "accept_follow_request": "Accepter la demande de suivit", + "add_reaction": "Ajouter une réaction", + "bookmark": "Favori", + "favorite": "Favoriser", + "media_upload": "Envoyer un media", + "quote": "Citer", + "reject_follow_request": "Rejeter la demande de suivit", + "repeat": "Répéter", + "reply": "Répondre", + "user_settings": "Paramètres utilisateur" }, - "mention": "Mention", - "hidden": "Caché", - "subscribe": "Abonner", - "unsubscribe": "Désabonner", - "hide_repeats": "Cacher les partages", - "show_repeats": "Montrer les partages", - "roles": { - "moderator": "Modérateur⋅ice", - "admin": "Administrateur⋅ice" + "upload": { + "error": { + "base": "L'envoi a échoué.", + "default": "Réessayez plus tard", + "file_too_big": "Fichier trop gros [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Envoi échoué : {0}" + }, + "file_size_units": { + "B": "o", + "GiB": "Go", + "KiB": "Ko", + "MiB": "Mo", + "TiB": "To" + } }, - "message": "Message", - "highlight": { - "disabled": "Sans mise-en-valeur", - "solid": "Fond uni", - "side": "Coté rayé", - "striped": "Fond rayé" + "user_card": { + "admin_menu": { + "activate_account": "Activer le compte", + "deactivate_account": "Désactiver le compte", + "delete_account": "Supprimer le compte", + "delete_user": "Supprimer l'utilisateur", + "delete_user_data_and_deactivate_confirmation": "Tous les données de ce compte seront définitivement supprimées, et le compte désactivé. Êtes-vous absolument sûr de vouloir procéder ?", + "disable_any_subscription": "Interdir de s'abonner à l'utilisateur tout court", + "disable_remote_subscription": "Interdir de s'abonner a l'utilisateur depuis l'instance distante", + "force_nsfw": "Marquer tous les statuts comme NSFW", + "force_unlisted": "Forcer les statuts à être délistés", + "grant_admin": "Promouvoir Administrateur⋅ice", + "grant_moderator": "Promouvoir Modérateur⋅ice", + "moderation": "Moderation", + "quarantine": "Interdir les statuts de l'utilisateur à fédérer", + "revoke_admin": "Dégrader Administrateur⋅ice", + "revoke_moderator": "Dégrader Modérateur⋅ice", + "sandbox": "Forcer les statuts à être visibles seuleument pour les abonné⋅e⋅s", + "strip_media": "Supprimer les medias des statuts" + }, + "approve": "Accepter", + "block": "Bloquer", + "block_progress": "Blocage…", + "blocked": "Bloqué !", + "bot": "Robot", + "deactivated": "Désactivé", + "deny": "Rejeter", + "domain_muted": "Débloquer la domaine", + "edit_profile": "Éditer le profil", + "favorites": "Favoris", + "follow": "Suivre", + "follow_cancel": "Annuler la demande d'abonnement", + "follow_progress": "Demande en cours…", + "follow_sent": "Demande envoyée !", + "follow_unfollow": "Désabonner", + "followees": "Suivis", + "followers": "Vous suivent", + "following": "Suivi !", + "follows_you": "Vous suit !", + "hidden": "Caché", + "hide_repeats": "Cacher les partages", + "highlight": { + "disabled": "Sans mise-en-valeur", + "side": "Coté rayé", + "solid": "Fond uni", + "striped": "Fond rayé" + }, + "its_you": "C'est vous !", + "media": "Media", + "mention": "Mention", + "message": "Message", + "mute": "Masquer", + "mute_domain": "Bloquer la domaine", + "mute_progress": "Masquage…", + "muted": "Masqué", + "note": "Note privée", + "per_day": "par jour", + "remote_follow": "Suivre d'une autre instance", + "report": "Signalement", + "show_repeats": "Montrer les partages", + "statuses": "Statuts", + "subscribe": "Abonner", + "unblock": "Débloquer", + "unblock_progress": "Déblocage…", + "unmute": "Démasquer", + "unmute_progress": "Démasquage…", + "unsubscribe": "Désabonner" }, - "bot": "Robot", - "edit_profile": "Éditer le profil" - }, - "user_profile": { - "timeline_title": "Flux du compte", - "profile_does_not_exist": "Désolé, ce profil n'existe pas.", - "profile_loading_error": "Désolé, il y a eu une erreur au chargement du profil." - }, - "user_reporting": { - "title": "Signaler {0}", - "add_comment_description": "Ce signalement sera envoyé aux modérateur⋅ice⋅s de votre instance. Vous pouvez fournir une explication de pourquoi vous signalez ce compte ci-dessous :", - "additional_comments": "Commentaires additionnels", - "forward_description": "Le compte vient d'un autre serveur. Envoyer une copie du signalement à celui-ci aussi ?", - "forward_to": "Transmettre à {0}", - "submit": "Envoyer", - "generic_error": "Une erreur est survenue lors du traitement de votre requête." - }, - "who_to_follow": { - "more": "Plus", - "who_to_follow": "À qui s'abonner" - }, - "tool_tip": { - "media_upload": "Envoyer un media", - "repeat": "Répéter", - "reply": "Répondre", - "favorite": "Favoriser", - "user_settings": "Paramètres utilisateur", - "add_reaction": "Ajouter une réaction", - "accept_follow_request": "Accepter la demande de suivit", - "reject_follow_request": "Rejeter la demande de suivit", - "bookmark": "Favori" - }, - "upload": { - "error": { - "base": "L'envoi a échoué.", - "file_too_big": "Fichier trop gros [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Réessayez plus tard", - "message": "Envoi échoué : {0}" + "user_profile": { + "profile_does_not_exist": "Désolé, ce profil n'existe pas.", + "profile_loading_error": "Désolé, il y a eu une erreur au chargement du profil.", + "timeline_title": "Flux du compte" }, - "file_size_units": { - "B": "o", - "KiB": "Ko", - "MiB": "Mo", - "GiB": "Go", - "TiB": "To" + "user_reporting": { + "add_comment_description": "Ce signalement sera envoyé aux modérateur⋅ice⋅s de votre instance. Vous pouvez fournir une explication de pourquoi vous signalez ce compte ci-dessous :", + "additional_comments": "Commentaires additionnels", + "forward_description": "Le compte vient d'un autre serveur. Envoyer une copie du signalement à celui-ci aussi ?", + "forward_to": "Transmettre à {0}", + "generic_error": "Une erreur est survenue lors du traitement de votre requête.", + "submit": "Envoyer", + "title": "Signaler {0}" + }, + "who_to_follow": { + "more": "Plus", + "who_to_follow": "À qui s'abonner" } - }, - "about": { - "mrf": { - "keyword": { - "reject": "Rejette", - "replace": "Remplace", - "keyword_policies": "Filtrage par mots-clés", - "ftl_removal": "Suppression du flux fédéré", - "is_replaced_by": "→" - }, - "simple": { - "simple_policies": "Politiques par instances", - "accept": "Acceptées", - "accept_desc": "Cette instance accepte les messages seulement depuis ces instances :", - "reject": "Rejetées", - "reject_desc": "Cette instance n'acceptera pas de message de ces instances :", - "quarantine": "Quarantaine", - "quarantine_desc": "Cette instance enverra seulement des messages publics à ces instances :", - "ftl_removal_desc": "Cette instance supprime les instance suivantes du flux fédéré :", - "media_removal": "Suppression des pièce-jointes", - "media_removal_desc": "Cette instance supprime le contenu multimédia des instances suivantes :", - "media_nsfw": "Force le contenu multimédia comme sensible", - "ftl_removal": "Supprimées du flux fédéré", - "media_nsfw_desc": "Cette instance force les pièce-jointes comme sensible pour les messages des instances suivantes :" - }, - "federation": "Fédération", - "mrf_policies": "Politiques MRF actives", - "mrf_policies_desc": "Les politiques MRF modifient la fédération entre les instances. Les politiques suivantes sont activées :" - }, - "staff": "Staff" - }, - "domain_mute_card": { - "mute": "Masqué", - "mute_progress": "Masquage…", - "unmute": "Démasquer", - "unmute_progress": "Démasquage…" - }, - "polls": { - "add_poll": "Ajouter un Sondage", - "add_option": "Ajouter une option", - "option": "Option", - "votes": "votes", - "type": "Type de Sondage", - "single_choice": "Choix unique", - "multiple_choices": "Choix multiples", - "expiry": "Age du sondage", - "expires_in": "Fin du sondage dans {0}", - "not_enough_options": "Trop peu d'options unique au sondage", - "vote": "Voter", - "expired": "Sondage terminé il y a {0}", - "people_voted_count": "{count} voteur | {count} voteurs", - "votes_count": "{count} vote | {count} votes" - }, - "emoji": { - "emoji": "Émoji", - "search_emoji": "Rechercher un émoji", - "add_emoji": "Insérer un émoji", - "custom": "émoji personnalisé", - "unicode": "émoji unicode", - "load_all": "Charger tout les {emojiAmount} émojis", - "load_all_hint": "{saneAmount} émojis chargé, charger tout les émojis peuvent causer des problèmes de performances.", - "stickers": "Stickers", - "keep_open": "Garder ouvert" - }, - "remote_user_resolver": { - "error": "Non trouvé.", - "searching_for": "Recherche pour", - "remote_user_resolver": "Résolution de compte distant" - }, - "time": { - "now": "tout de suite", - "now_short": "maintenant", - "in_future": "dans {0}", - "in_past": "il y a {0}", - "unit": { - "minutes_short": "{0}min", - "second_short": "{0}s", - "day": "{0} jour", - "days": "{0} jours", - "months": "{0} mois", - "month_short": "{0}m", - "months_short": "{0}m", - "second": "{0} seconde", - "seconds": "{0} secondes", - "seconds_short": "{0}s", - "day_short": "{0}j", - "days_short": "{0}j", - "hour": "{0} heure", - "hours": "{0} heures", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minute", - "minutes": "{0} minutes", - "minute_short": "{0}min", - "month": "{0} mois", - "week": "{0} semaine", - "weeks": "{0} semaines", - "week_short": "{0}s", - "weeks_short": "{0}s", - "year": "{0} année", - "years": "{0} années", - "year_short": "{0}a", - "years_short": "{0}a" - } - }, - "search": { - "people": "Comptes", - "person_talking": "{count} personnes discutant", - "hashtags": "Mot-dièses", - "people_talking": "{count} personnes discutant", - "no_results": "Aucun résultats" - }, - "password_reset": { - "forgot_password": "Mot de passe oublié ?", - "check_email": "Vérifiez vos courriels pour le lien permettant de changer votre mot de passe.", - "password_reset_disabled": "Le changement de mot de passe est désactivé. Veuillez contacter l'administration de votre instance.", - "password_reset_required_but_mailer_is_disabled": "Vous devez changer votre mot de passe mais sont changement est désactivé. Veuillez contacter l’administration de votre instance.", - "password_reset": "Nouveau mot de passe", - "instruction": "Entrer votre address de courriel ou votre nom utilisateur. Nous enverrons un lien pour changer votre mot de passe.", - "placeholder": "Votre email ou nom d'utilisateur", - "return_home": "Retourner à la page d'accueil", - "too_many_requests": "Vos avez atteint la limite d'essais, essayez plus tard.", - "password_reset_required": "Vous devez changer votre mot de passe pour vous authentifier." - }, - "errors": { - "storage_unavailable": "Pleroma n'a pas pu accéder au stockage du navigateur. Votre identifiant ou vos mots de passes ne seront sauvegardés et des problèmes pourront être rencontrés. Essayez d'activer les cookies." - }, - "shoutbox": { - "title": "Shoutbox" - }, - "display_date": { - "today": "Aujourd'hui" - }, - "file_type": { - "file": "Fichier", - "image": "Image", - "video": "Vidéo", - "audio": "Audio" - }, - "chats": { - "empty_chat_list_placeholder": "Vous n'avez pas encore de discussions. Démarrez-en une nouvelle !", - "error_sending_message": "Quelque chose s'est mal passé pendant l'envoi du message.", - "error_loading_chat": "Quelque chose s'est mal passé au chargement de la discussion.", - "delete_confirm": "Voulez-vous vraiment effacer ce message ?", - "more": "Plus", - "empty_message_error": "Impossible d'envoyer un message vide", - "new": "Nouvelle discussion", - "chats": "Discussions", - "delete": "Effacer", - "message_user": "Message à {nickname}", - "you": "Vous :" - } -} +} \ No newline at end of file diff --git a/src/i18n/ga.json b/src/i18n/ga.json index 858f8a55..b9020e74 100644 --- a/src/i18n/ga.json +++ b/src/i18n/ga.json @@ -1,240 +1,216 @@ { - "chat": { - "title": "Comhrá" - }, - "features_panel": { - "chat": "Comhrá", - "gopher": "Gófar", - "media_proxy": "Seachfhreastalaí meáin", - "scope_options": "Rogha scóip", - "text_limit": "Teorainn Téacs", - "title": "Gnéithe", - "who_to_follow": "Daoine le leanúint" - }, - "finder": { - "error_fetching_user": "Earráid a aimsiú d'úsáideoir", - "find_user": "Aimsigh úsáideoir" - }, - "general": { - "apply": "Feidhmigh", - "submit": "Deimhnigh" - }, - "login": { - "login": "Logáil isteach", - "logout": "Logáil amach", - "password": "Pasfhocal", - "placeholder": "m.sh. Daire", - "register": "Clárú", - "username": "Ainm Úsáideora" - }, - "nav": { - "chat": "Comhrá Áitiúil", - "friend_requests": "Iarratas ar Cairdeas", - "mentions": "Tagairt", - "public_tl": "Amlíne Poiblí", - "timeline": "Amlíne", - "twkn": "An Líonra Iomlán" - }, - "notifications": { - "broken_favorite": "Post anaithnid. Cuardach dó…", - "favorited_you": "toghadh le do phost", - "followed_you": "lean tú", - "load_older": "Luchtaigh fógraí aosta", - "notifications": "Fógraí", - "read": "Léigh!", - "repeated_you": "athphostáil tú" - }, - "post_status": { - "account_not_locked_warning": "Níl do chuntas {0}. Is féidir le duine ar bith a leanúint leat chun do phoist leantacha amháin a fheiceáil.", - "account_not_locked_warning_link": "faoi glas", - "attachments_sensitive": "Marcáil ceangaltán mar íogair", - "content_type": { - "text/plain": "Gnáth-théacs" + "features_panel": { + "media_proxy": "Seachfhreastalaí meáin", + "scope_options": "Rogha scóip", + "text_limit": "Teorainn Téacs", + "title": "Gnéithe", + "who_to_follow": "Daoine le leanúint" }, - "content_warning": "Teideal (roghnach)", - "default": "Lá iontach anseo i nGaillimh", - "direct_warning": "Ní bheidh an post seo le feiceáil ach amháin do na húsáideoirí atá luaite.", - "posting": "Post nua", - "scope": { - "direct": "Díreach - Post chuig úsáideoirí luaite amháin", - "private": "Leanúna amháin - Post chuig lucht leanúna amháin", - "public": "Poiblí - Post chuig amlínte poiblí", - "unlisted": "Neamhliostaithe - Ná cuir post chuig amlínte poiblí" + "finder": { + "error_fetching_user": "Earráid a aimsiú d'úsáideoir", + "find_user": "Aimsigh úsáideoir" + }, + "general": { + "apply": "Feidhmigh", + "submit": "Deimhnigh" + }, + "login": { + "login": "Logáil isteach", + "logout": "Logáil amach", + "password": "Pasfhocal", + "placeholder": "m.sh. Daire", + "register": "Clárú", + "username": "Ainm Úsáideora" + }, + "nav": { + "friend_requests": "Iarratas ar Cairdeas", + "mentions": "Tagairt", + "public_tl": "Amlíne Poiblí", + "timeline": "Amlíne", + "twkn": "An Líonra Iomlán" + }, + "notifications": { + "broken_favorite": "Post anaithnid. Cuardach dó…", + "favorited_you": "toghadh le do phost", + "followed_you": "lean tú", + "load_older": "Luchtaigh fógraí aosta", + "notifications": "Fógraí", + "read": "Léigh!", + "repeated_you": "athphostáil tú" + }, + "post_status": { + "account_not_locked_warning": "Níl do chuntas {0}. Is féidir le duine ar bith a leanúint leat chun do phoist leantacha amháin a fheiceáil.", + "account_not_locked_warning_link": "faoi glas", + "attachments_sensitive": "Marcáil ceangaltán mar íogair", + "content_type": { + "text/plain": "Gnáth-théacs" + }, + "content_warning": "Teideal (roghnach)", + "default": "Lá iontach anseo i nGaillimh", + "posting": "Post nua", + "scope": { + "direct": "Díreach - Post chuig úsáideoirí luaite amháin", + "private": "Leanúna amháin - Post chuig lucht leanúna amháin", + "public": "Poiblí - Post chuig amlínte poiblí", + "unlisted": "Neamhliostaithe - Ná cuir post chuig amlínte poiblí" + } + }, + "registration": { + "bio": "Scéal saoil", + "email": "Ríomhphost", + "fullname": "Ainm taispeána'", + "password_confirm": "Deimhnigh do pasfhocal", + "registration": "Clárú", + "token": "Cód cuireadh" + }, + "settings": { + "attachmentRadius": "Ceangaltáin", + "attachments": "Ceangaltáin", + "avatar": "Phictúir phrófíle", + "avatarAltRadius": "Phictúirí phrófíle (Fograí)", + "avatarRadius": "Phictúirí phrófíle", + "background": "Cúlra", + "bio": "Scéal saoil", + "btnRadius": "Cnaipí", + "cBlue": "Gorm (Freagra, lean)", + "cGreen": "Glas (Athphóstail)", + "cOrange": "Oráiste (Cosúil)", + "cRed": "Dearg (Cealaigh)", + "change_password": "Athraigh do pasfhocal", + "change_password_error": "Bhí fadhb ann ag athrú do pasfhocail.", + "changed_password": "Athraigh an pasfhocal go rathúil!", + "collapse_subject": "Poist a chosc le teidil", + "confirm_new_password": "Deimhnigh do pasfhocal nua", + "current_avatar": "Phictúir phrófíle", + "current_password": "Pasfhocal reatha", + "data_import_export_tab": "Iompórtáil / Easpórtáil Sonraí", + "default_vis": "Scóip infheicthe réamhshocraithe", + "delete_account": "Scrios cuntas", + "delete_account_description": "Do chuntas agus do chuid teachtaireachtaí go léir a scriosadh go buan.", + "delete_account_error": "Bhí fadhb ann a scriosadh do chuntas. Má leanann sé seo, téigh i dteagmháil le do riarthóir.", + "delete_account_instructions": "Scríobh do phasfhocal san ionchur thíos chun deimhniú a scriosadh.", + "export_theme": "Sábháil Téama", + "filtering": "Scagadh", + "filtering_explanation": "Beidh gach post ina bhfuil na focail seo i bhfolach, ceann in aghaidh an líne", + "follow_export": "Easpórtáil do leanann", + "follow_export_button": "Easpórtáil do leanann chuig comhad csv", + "follow_import": "Iompórtáil do leanann", + "follow_import_error": "Earráid agus do leanann a iompórtáil", + "follows_imported": "Do leanann iompórtáil! Tógfaidh an próiseas iad le tamall.", + "foreground": "Tulra", + "general": "Ginearálta", + "hide_attachments_in_convo": "Folaigh ceangaltáin i comhráite", + "hide_attachments_in_tl": "Folaigh ceangaltáin sa amlíne", + "hide_post_stats": "Folaigh staitisticí na bpost (m.sh. líon na n-athrá)", + "hide_user_stats": "Folaigh na staitisticí úsáideora (m.sh. líon na leantóiri)", + "import_followers_from_a_csv_file": "Iompórtáil leanann ó chomhad csv", + "import_theme": "Luchtaigh Téama", + "inputRadius": "Limistéar iontrála", + "instance_default": "(Réamhshocrú: {value})", + "interfaceLanguage": "Teanga comhéadain", + "invalid_theme_imported": "Ní téama bailí é an comhad dícheangailte. Níor rinneadh aon athruithe.", + "limited_availability": "Níl sé ar fáil i do bhrabhsálaí", + "links": "Naisc", + "lock_account_description": "Srian a chur ar do chuntas le lucht leanúna ceadaithe amháin", + "loop_video": "Lúb físeáin", + "loop_video_silent_only": "Lúb físeáin amháin gan fuaim (i.e. Mastodon's \"gifs\")", + "name": "Ainm", + "name_bio": "Ainm ⁊ Scéal", + "new_password": "Pasfhocal nua'", + "no_rich_text_description": "Bain formáidiú téacs saibhir ó gach post", + "notification_visibility": "Cineálacha fógraí a thaispeáint", + "notification_visibility_follows": "Leana", + "notification_visibility_likes": "Thaithin", + "notification_visibility_mentions": "Tagairt", + "notification_visibility_repeats": "Atphostáil", + "nsfw_clickthrough": "Cumasaigh an ceangaltán NSFW cliceáil ar an gcnaipe", + "oauth_tokens": "Tocanna OAuth", + "panelRadius": "Painéil", + "pause_on_unfocused": "Sruthú ar sos nuair a bhíonn an fócas caillte", + "presets": "Réamhshocruithe", + "profile_background": "Cúlra Próifíl", + "profile_banner": "Phictúir Ceanntáisc", + "profile_tab": "Próifíl", + "radii_help": "Cruinniú imeall comhéadan a chumrú (i bpicteilíní)", + "refresh_token": "Athnuachan Comórtas", + "replies_in_timeline": "Freagraí sa amlíne", + "reply_visibility_all": "Taispeáin gach freagra", + "reply_visibility_following": "Taispeáin freagraí amháin atá dírithe ar mise nó ar úsáideoirí atá mé ag leanúint", + "reply_visibility_self": "Taispeáin freagraí amháin atá dírithe ar mise", + "revoke_token": "Athghairm", + "saving_err": "Earráid socruithe a shábháil", + "saving_ok": "Socruithe sábháilte", + "security_tab": "Slándáil", + "set_new_avatar": "Athraigh do phictúir phrófíle", + "set_new_profile_background": "Athraigh do cúlra próifíl", + "set_new_profile_banner": "Athraigh do phictúir ceanntáisc", + "settings": "Socruithe", + "stop_gifs": "Seinn GIFs ar an scáileán", + "streaming": "Cumasaigh post nua a shruthú uathoibríoch nuair a scrollaítear go barr an leathanaigh", + "text": "Téacs", + "theme": "Téama", + "theme_help": "Úsáid cód daith hex (#rrggbb) chun do schéim a saincheapadh.", + "token": "Token", + "tooltipRadius": "Bileoga eolais", + "user_settings": "Socruithe úsáideora", + "valid_until": "Bailí Go dtí", + "values": { + "false": "níl", + "true": "tá" + } + }, + "time": { + "in_future": "in {0}", + "in_past": "{0} ago", + "now": "Anois", + "now_short": "Anois", + "unit": { + "days": "{0} lá", + "days_short": "{0}l", + "hours": "{0} uair", + "hours_short": "{0}u", + "minutes": "{0} nóimeád", + "minutes_short": "{0}n", + "months": "{0} mí", + "months_short": "{0}m", + "seconds": "{0} s", + "seconds_short": "{0}s", + "weeks": "{0} seachtaine", + "weeks_short": "{0}se", + "years": "{0} bliainta", + "years_short": "{0}b" + } + }, + "timeline": { + "collapse": "Folaigh", + "conversation": "Cómhra", + "load_older": "Luchtaigh níos mó", + "no_retweet_hint": "Tá an post seo marcáilte mar lucht leanúna amháin nó díreach agus ní féidir é a athphostáil", + "repeated": "athphostáil", + "show_new": "Taispeáin nua", + "up_to_date": "Nuashonraithe" + }, + "user_card": { + "approve": "Údaraigh", + "block": "Cosc", + "blocked": "Cuireadh coisc!", + "deny": "Diúltaigh", + "follow": "Lean", + "followees": "Leantóirí", + "followers": "Á Leanúint", + "following": "Á Leanúint", + "follows_you": "Leanann tú", + "mute": "Cuir i mód ciúin", + "muted": "Mód ciúin", + "per_day": "laethúil", + "remote_follow": "Leaníunt iargúlta", + "statuses": "Poist" + }, + "user_profile": { + "timeline_title": "Amlíne úsáideora" + }, + "who_to_follow": { + "more": "Feach uile", + "who_to_follow": "Daoine le leanúint" } - }, - "registration": { - "bio": "Scéal saoil", - "email": "Ríomhphost", - "fullname": "Ainm taispeána'", - "password_confirm": "Deimhnigh do pasfhocal", - "registration": "Clárú", - "token": "Cód cuireadh" - }, - "settings": { - "attachmentRadius": "Ceangaltáin", - "attachments": "Ceangaltáin", - "avatar": "Phictúir phrófíle", - "avatarAltRadius": "Phictúirí phrófíle (Fograí)", - "avatarRadius": "Phictúirí phrófíle", - "background": "Cúlra", - "bio": "Scéal saoil", - "btnRadius": "Cnaipí", - "cBlue": "Gorm (Freagra, lean)", - "cGreen": "Glas (Athphóstail)", - "cOrange": "Oráiste (Cosúil)", - "cRed": "Dearg (Cealaigh)", - "change_password": "Athraigh do pasfhocal", - "change_password_error": "Bhí fadhb ann ag athrú do pasfhocail.", - "changed_password": "Athraigh an pasfhocal go rathúil!", - "collapse_subject": "Poist a chosc le teidil", - "confirm_new_password": "Deimhnigh do pasfhocal nua", - "current_avatar": "Phictúir phrófíle", - "current_password": "Pasfhocal reatha", - "current_profile_banner": "Phictúir ceanntáisc", - "data_import_export_tab": "Iompórtáil / Easpórtáil Sonraí", - "default_vis": "Scóip infheicthe réamhshocraithe", - "delete_account": "Scrios cuntas", - "delete_account_description": "Do chuntas agus do chuid teachtaireachtaí go léir a scriosadh go buan.", - "delete_account_error": "Bhí fadhb ann a scriosadh do chuntas. Má leanann sé seo, téigh i dteagmháil le do riarthóir.", - "delete_account_instructions": "Scríobh do phasfhocal san ionchur thíos chun deimhniú a scriosadh.", - "export_theme": "Sábháil Téama", - "filtering": "Scagadh", - "filtering_explanation": "Beidh gach post ina bhfuil na focail seo i bhfolach, ceann in aghaidh an líne", - "follow_export": "Easpórtáil do leanann", - "follow_export_button": "Easpórtáil do leanann chuig comhad csv", - "follow_export_processing": "Próiseáil. Iarrtar ort go luath an comhad a íoslódáil.", - "follow_import": "Iompórtáil do leanann", - "follow_import_error": "Earráid agus do leanann a iompórtáil", - "follows_imported": "Do leanann iompórtáil! Tógfaidh an próiseas iad le tamall.", - "foreground": "Tulra", - "general": "Ginearálta", - "hide_attachments_in_convo": "Folaigh ceangaltáin i comhráite", - "hide_attachments_in_tl": "Folaigh ceangaltáin sa amlíne", - "hide_post_stats": "Folaigh staitisticí na bpost (m.sh. líon na n-athrá)", - "hide_user_stats": "Folaigh na staitisticí úsáideora (m.sh. líon na leantóiri)", - "import_followers_from_a_csv_file": "Iompórtáil leanann ó chomhad csv", - "import_theme": "Luchtaigh Téama", - "inputRadius": "Limistéar iontrála", - "instance_default": "(Réamhshocrú: {value})", - "interfaceLanguage": "Teanga comhéadain", - "invalid_theme_imported": "Ní téama bailí é an comhad dícheangailte. Níor rinneadh aon athruithe.", - "limited_availability": "Níl sé ar fáil i do bhrabhsálaí", - "links": "Naisc", - "lock_account_description": "Srian a chur ar do chuntas le lucht leanúna ceadaithe amháin", - "loop_video": "Lúb físeáin", - "loop_video_silent_only": "Lúb físeáin amháin gan fuaim (i.e. Mastodon's \"gifs\")", - "name": "Ainm", - "name_bio": "Ainm ⁊ Scéal", - "new_password": "Pasfhocal nua'", - "notification_visibility": "Cineálacha fógraí a thaispeáint", - "notification_visibility_follows": "Leana", - "notification_visibility_likes": "Thaithin", - "notification_visibility_mentions": "Tagairt", - "notification_visibility_repeats": "Atphostáil", - "no_rich_text_description": "Bain formáidiú téacs saibhir ó gach post", - "nsfw_clickthrough": "Cumasaigh an ceangaltán NSFW cliceáil ar an gcnaipe", - "oauth_tokens": "Tocanna OAuth", - "token": "Token", - "refresh_token": "Athnuachan Comórtas", - "valid_until": "Bailí Go dtí", - "revoke_token": "Athghairm", - "panelRadius": "Painéil", - "pause_on_unfocused": "Sruthú ar sos nuair a bhíonn an fócas caillte", - "presets": "Réamhshocruithe", - "profile_background": "Cúlra Próifíl", - "profile_banner": "Phictúir Ceanntáisc", - "profile_tab": "Próifíl", - "radii_help": "Cruinniú imeall comhéadan a chumrú (i bpicteilíní)", - "replies_in_timeline": "Freagraí sa amlíne", - "reply_visibility_all": "Taispeáin gach freagra", - "reply_visibility_following": "Taispeáin freagraí amháin atá dírithe ar mise nó ar úsáideoirí atá mé ag leanúint", - "reply_visibility_self": "Taispeáin freagraí amháin atá dírithe ar mise", - "saving_err": "Earráid socruithe a shábháil", - "saving_ok": "Socruithe sábháilte", - "security_tab": "Slándáil", - "set_new_avatar": "Athraigh do phictúir phrófíle", - "set_new_profile_background": "Athraigh do cúlra próifíl", - "set_new_profile_banner": "Athraigh do phictúir ceanntáisc", - "settings": "Socruithe", - "stop_gifs": "Seinn GIFs ar an scáileán", - "streaming": "Cumasaigh post nua a shruthú uathoibríoch nuair a scrollaítear go barr an leathanaigh", - "text": "Téacs", - "theme": "Téama", - "theme_help": "Úsáid cód daith hex (#rrggbb) chun do schéim a saincheapadh.", - "tooltipRadius": "Bileoga eolais", - "user_settings": "Socruithe úsáideora", - "values": { - "false": "níl", - "true": "tá" - } - }, - "time": { - "now": "Anois", - "now_short": "Anois", - "in_future": "in {0}", - "in_past": "{0} ago", - "unit": { - "day": "{0} lá", - "days": "{0} lá", - "day_short": "{0}l", - "days_short": "{0}l", - "hour": "{0} uair", - "hours": "{0} uair", - "hour_short": "{0}u", - "hours_short": "{0}u", - "minute": "{0} nóimeád", - "minutes": "{0} nóimeád", - "minute_short": "{0}n", - "minutes_short": "{0}n", - "month": "{0} mí", - "months": "{0} mí", - "month_short": "{0}m", - "months_short": "{0}m", - "second": "{0} s", - "seconds": "{0} s", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} seachtain", - "weeks": "{0} seachtaine", - "week_short": "{0}se", - "weeks_short": "{0}se", - "year": "{0} bliainta", - "years": "{0} bliainta", - "year_short": "{0}b", - "years_short": "{0}b" - } - }, - "timeline": { - "collapse": "Folaigh", - "conversation": "Cómhra", - "error_fetching": "Earráid a thabhairt cothrom le dáta", - "load_older": "Luchtaigh níos mó", - "no_retweet_hint": "Tá an post seo marcáilte mar lucht leanúna amháin nó díreach agus ní féidir é a athphostáil", - "repeated": "athphostáil", - "show_new": "Taispeáin nua", - "up_to_date": "Nuashonraithe" - }, - "user_card": { - "approve": "Údaraigh", - "block": "Cosc", - "blocked": "Cuireadh coisc!", - "deny": "Diúltaigh", - "follow": "Lean", - "followees": "Leantóirí", - "followers": "Á Leanúint", - "following": "Á Leanúint", - "follows_you": "Leanann tú", - "mute": "Cuir i mód ciúin", - "muted": "Mód ciúin", - "per_day": "laethúil", - "remote_follow": "Leaníunt iargúlta", - "statuses": "Poist" - }, - "user_profile": { - "timeline_title": "Amlíne úsáideora" - }, - "who_to_follow": { - "more": "Feach uile", - "who_to_follow": "Daoine le leanúint" - } -} +} \ No newline at end of file diff --git a/src/i18n/he.json b/src/i18n/he.json index 6c62acc4..d508e5bc 100644 --- a/src/i18n/he.json +++ b/src/i18n/he.json @@ -1,400 +1,392 @@ { - "chat": { - "title": "צ'אט" - }, - "exporter": { - "export": "ייצוא", - "processing": "מעבד, בקרוב תופיע אפשרות להוריד את הקובץ" - }, - "features_panel": { - "chat": "צ'אט", - "gopher": "גופר", - "media_proxy": "מדיה פרוקסי", - "scope_options": "אפשרויות טווח", - "text_limit": "מגבלת טקסט", - "title": "מאפיינים", - "who_to_follow": "אחרי מי לעקוב" - }, - "finder": { - "error_fetching_user": "שגיאה במציאת משתמש", - "find_user": "מציאת משתמש" - }, - "general": { - "apply": "החל", - "submit": "שלח", - "more": "עוד", - "generic_error": "קרתה שגיאה", - "optional": "לבחירה", - "show_more": "הראה עוד", - "show_less": "הראה פחות", - "cancel": "בטל" - }, - "image_cropper": { - "crop_picture": "חתוך תמונה", - "save": "שמור", - "save_without_cropping": "שמור בלי לחתוך", - "cancel": "בטל" - }, - "importer": { - "submit": "שלח", - "success": "ייובא בהצלחה.", - "error": "אירעתה שגיאה בזמן ייבוא קובץ זה." - }, - "login": { - "login": "התחבר", - "description": "היכנס עם OAuth", - "logout": "התנתק", - "password": "סיסמה", - "placeholder": "למשל lain", - "register": "הירשם", - "username": "שם המשתמש", - "hint": "הירשם על מנת להצטרף לדיון" - }, - "media_modal": { - "previous": "הקודם", - "next": "הבא" - }, - "nav": { - "about": "על-אודות", - "back": "חזור", - "chat": "צ'אט מקומי", - "friend_requests": "בקשות עקיבה", - "mentions": "אזכורים", - "interactions": "אינטרקציות", - "dms": "הודעות ישירות", - "public_tl": "ציר הזמן הציבורי", - "timeline": "ציר הזמן", - "twkn": "כל הרשת הידועה", - "user_search": "חיפוש משתמש", - "who_to_follow": "אחרי מי לעקוב", - "preferences": "העדפות" - }, - "notifications": { - "broken_favorite": "סטאטוס לא ידוע, מחפש…", - "favorited_you": "אהב את הסטטוס שלך", - "followed_you": "עקב אחריך", - "load_older": "טען התראות ישנות", - "notifications": "התראות", - "read": "קרא!", - "repeated_you": "חזר על הסטטוס שלך", - "no_more_notifications": "לא עוד התראות" - }, - "interactions": { - "favs_repeats": "חזרות ומועדפים", - "follows": "עוקבים חדשים", - "load_older": "טען אינטרקציות ישנות" - }, - "post_status": { - "new_status": "פרסם סטאטוס חדש", - "account_not_locked_warning": "המשתמש שלך אינו {0}. כל אחד יכול לעקוב אחריך ולראות את ההודעות לעוקבים-בלבד שלך.", - "account_not_locked_warning_link": "נעול", - "attachments_sensitive": "סמן מסמכים מצורפים כלא בטוחים לצפייה", - "content_type": { - "text/plain": "טקסט פשוט", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" + "about": { + "mrf": { + "federation": "פדרציה", + "keyword": { + "keyword_policies": "פוליסת מילות מפתח" + } + } }, - "content_warning": "נושא (נתון לבחירה)", - "default": "הרגע נחת ב-ל.א.", - "direct_warning_to_all": "הודעה זו תהיה נראית לכל המשתמשים המוזכרים.", - "direct_warning_to_first_only": "הודעה זו תהיה נראית לכל המשתמשים במוזכרים בתחילת ההודעה בלבד.", - "posting": "מפרסם", - "scope_notice": { - "public": "הודעה זו תהיה נראית לכולם", - "private": "הודעה זו תהיה נראית לעוקבים שלך בלבד", - "unlisted": "הודעה זו לא תהיה נראית בציר זמן הציבורי או בכל הרשת הידועה" + "exporter": { + "export": "ייצוא", + "processing": "מעבד, בקרוב תופיע אפשרות להוריד את הקובץ" }, - "scope": { - "direct": "ישיר - שלח לאנשים המוזכרים בלבד", - "private": "עוקבים-בלבד - שלח לעוקבים בלבד", - "public": "ציבורי - שלח לציר הזמן הציבורי", - "unlisted": "מחוץ לרשימה - אל תשלח לציר הזמן הציבורי" - } - }, - "registration": { - "bio": "אודות", - "email": "אימייל", - "fullname": "שם תצוגה", - "password_confirm": "אישור סיסמה", - "registration": "הרשמה", - "token": "טוקן הזמנה", - "captcha": "אימות אנוש", - "new_captcha": "לחץ על התמונה על מנת לקבל אימות אנוש חדש", - "username_placeholder": "למשל lain", - "fullname_placeholder": "למשל Lain Iwakura", - "bio_placeholder": "למשל\nהיי, אני ליין.\nאני ילדת אנימה שגרה בפרוורי יפן. אולי אתם מכירים אותי מהWired.", - "validations": { - "username_required": "לא יכול להישאר ריק", - "fullname_required": "לא יכול להישאר ריק", - "email_required": "לא יכול להישאר ריק", - "password_required": "לא יכול להישאר ריק", - "password_confirmation_required": "לא יכול להישאר ריק", - "password_confirmation_match": "צריך להיות דומה לסיסמה" - } - }, - "selectable_list": { - "select_all": "בחר הכל" - }, - "settings": { - "app_name": "שם האפליקציה", - "attachmentRadius": "צירופים", - "attachments": "צירופים", - "avatar": "תמונת פרופיל", - "avatarAltRadius": "תמונות פרופיל (התראות)", - "avatarRadius": "תמונות פרופיל", - "background": "רקע", - "bio": "אודות", - "block_export": "ייצוא חסימות", - "block_export_button": "ייצוא חסימות אל קובץ csv", - "block_import": "ייבוא חסימות", - "block_import_error": "שגיאה בייבוא החסימות", - "blocks_imported": "החסימות יובאו! ייקח מעט זמן לעבד אותן.", - "blocks_tab": "חסימות", - "btnRadius": "כפתורים", - "cBlue": "כחול (תגובה, עקיבה)", - "cGreen": "ירוק (חזרה)", - "cOrange": "כתום (לייק)", - "cRed": "אדום (ביטול)", - "change_password": "שנה סיסמה", - "change_password_error": "הייתה בעיה בשינוי סיסמתך.", - "changed_password": "סיסמה שונתה בהצלחה!", - "collapse_subject": "מזער הודעות עם נושאים", - "composing": "מרכיב", - "confirm_new_password": "אשר סיסמה", - "current_avatar": "תמונת הפרופיל הנוכחית שלך", - "current_password": "סיסמה נוכחית", - "current_profile_banner": "כרזת הפרופיל הנוכחית שלך", - "data_import_export_tab": "ייבוא או ייצוא מידע", - "default_vis": "ברירת מחדל לטווח הנראות", - "delete_account": "מחק משתמש", - "delete_account_description": "מחק לצמיתות את המשתמש שלך ואת כל הודעותיך.", - "delete_account_error": "הייתה בעיה במחיקת המשתמש. אם זה ממשיך, אנא עדכן את מנהל השרת שלך.", - "delete_account_instructions": "הכנס את סיסמתך בקלט למטה על מנת לאשר מחיקת משתמש.", - "avatar_size_instruction": "הגודל המינימלי המומלץ לתמונות פרופיל הוא 150x150 פיקסלים.", - "export_theme": "שמור ערכים", - "filtering": "סינון", - "filtering_explanation": "כל הסטטוסים הכוללים את המילים הללו יושתקו, אחד לשורה", - "follow_export": "יצוא עקיבות", - "follow_export_button": "ייצא את הנעקבים שלך לקובץ csv", - "follow_import": "יבוא עקיבות", - "follow_import_error": "שגיאה בייבוא נעקבים", - "follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.", - "foreground": "חזית", - "general": "כללי", - "hide_attachments_in_convo": "החבא צירופים בשיחות", - "hide_attachments_in_tl": "החבא צירופים בציר הזמן", - "hide_muted_posts": "הסתר הודעות של משתמשים מושתקים", - "max_thumbnails": "מספר מירבי של תמונות ממוזערות להודעה", - "hide_isp": "הסתר פאנל-צד", - "preload_images": "טען תמונות מראש", - "use_one_click_nsfw": "פתח תמונות לא-בטוחות-לעבודה עם לחיצה אחת בלבד", - "hide_post_stats": "הסתר נתוני הודעה (למשל, מספר החזרות)", - "hide_user_stats": "הסתר נתוני משתמש (למשל, מספר העוקבים)", - "hide_filtered_statuses": "מסתר סטטוסים מסוננים", - "import_blocks_from_a_csv_file": "ייבא חסימות מקובץ csv", - "import_followers_from_a_csv_file": "ייבא את הנעקבים שלך מקובץ csv", - "import_theme": "טען ערכים", - "inputRadius": "שדות קלט", - "checkboxRadius": "תיבות סימון", - "instance_default": "(default: {value})", - "instance_default_simple": "(default)", - "interface": "ממשק", - "interfaceLanguage": "שפת הממשק", - "invalid_theme_imported": "הקובץ הנבחר אינו תמה הנתמכת ע\"י פלרומה. שום שינויים לא נעשו לתמה שלך.", - "limited_availability": "לא זמין בדפדפן שלך", - "links": "לינקים", - "lock_account_description": "הגבל את המשתמש לעוקבים מאושרים בלבד", - "loop_video": "נגן סרטונים ללא הפסקה", - "loop_video_silent_only": "נגן רק סרטונים חסרי קול ללא הפסקה", - "mutes_tab": "השתקות", - "play_videos_in_modal": "נגן סרטונים ישירות בנגן המדיה", - "use_contain_fit": "אל תחתוך את הצירוף בתמונות הממוזערות", - "name": "שם", - "name_bio": "שם ואודות", - "new_password": "סיסמה חדשה", - "notification_visibility": "סוג ההתראות שתרצו לראות", - "notification_visibility_follows": "עקיבות", - "notification_visibility_likes": "לייקים", - "notification_visibility_mentions": "אזכורים", - "notification_visibility_repeats": "חזרות", - "no_rich_text_description": "הסר פורמט טקסט עשיר מכל ההודעות", - "no_blocks": "ללא חסימות", - "no_mutes": "ללא השתקות", - "hide_follows_description": "אל תראה אחרי מי אני עוקב", - "hide_followers_description": "אל תראה מי עוקב אחרי", - "show_admin_badge": "הראה סמל מנהל בפרופיל שלי", - "show_moderator_badge": "הראה סמל צוות בפרופיל שלי", - "nsfw_clickthrough": "החל החבאת צירופים לא בטוחים לצפיה בעת עבודה בעזרת לחיצת עכבר", - "oauth_tokens": "אסימוני OAuth", - "token": "אסימון", - "refresh_token": "רענון האסימון", - "valid_until": "בתוקף עד", - "revoke_token": "בטל", - "panelRadius": "פאנלים", - "pause_on_unfocused": "השהה זרימת הודעות כשהחלון לא בפוקוס", - "presets": "ערכים קבועים מראש", - "profile_background": "רקע הפרופיל", - "profile_banner": "כרזת הפרופיל", - "profile_tab": "פרופיל", - "radii_help": "קבע מראש עיגול פינות לממשק (בפיקסלים)", - "replies_in_timeline": "תגובות בציר הזמן", - "reply_visibility_all": "הראה את כל התגובות", - "reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד", - "reply_visibility_self": "הראה תגובות שמופנות אליי בלבד", - "autohide_floating_post_button": "החבא אוטומטית את הכפתור הודעה חדשה (נייד)", - "saving_err": "שגיאה בשמירת הגדרות", - "saving_ok": "הגדרות נשמרו", - "search_user_to_block": "חפש משתמש לחסימה", - "search_user_to_mute": "חפש משתמש להשתקה", - "security_tab": "ביטחון", - "scope_copy": "העתק תחום הודעה בתגובה להודעה (הודעות ישירות תמיד מועתקות)", - "minimal_scopes_mode": "צמצם אפשרויות בחירה לתחום הודעה", - "set_new_avatar": "קבע תמונת פרופיל חדשה", - "set_new_profile_background": "קבע רקע פרופיל חדש", - "set_new_profile_banner": "קבע כרזת פרופיל חדשה", - "settings": "הגדרות", - "subject_input_always_show": "תמיד הראה את שדה הנושא", - "subject_line_behavior": "העתק נושא בתגובה", - "subject_line_email": "כמו אימייל: \"re: נושא\"", - "subject_line_mastodon": "כמו מסטודון: העתק כפי שזה", - "subject_line_noop": "אל תעתיק", - "post_status_content_type": "שלח את סוג תוכן ההודעה", - "stop_gifs": "נגן-בעת-ריחוף GIFs", - "streaming": "החל זרימת הודעות אוטומטית בעת גלילה למעלה הדף", - "text": "טקסט", - "theme": "תמה", - "theme_help": "השתמש בקודי צבע הקס (#אדום-אדום-ירוק-ירוק-כחול-כחול) על מנת להתאים אישית את תמת הצבע שלך.", - "tooltipRadius": "טולטיפ \\ התראות", - "upload_a_photo": "העלה תמונה", - "user_settings": "הגדרות משתמש", - "values": { - "false": "לא", - "true": "כן" + "features_panel": { + "media_proxy": "מדיה פרוקסי", + "scope_options": "אפשרויות טווח", + "text_limit": "מגבלת טקסט", + "title": "מאפיינים", + "who_to_follow": "אחרי מי לעקוב" }, - "notifications": "התראות", - "enable_web_push_notifications": "אפשר התראות web push", - "version": { - "title": "גרסה", - "backend_version": "גרסת קצה אחורי", - "frontend_version": "גרסת קצה קדמי" - } - }, - "timeline": { - "collapse": "מוטט", - "conversation": "שיחה", - "error_fetching": "שגיאה בהבאת הודעות", - "load_older": "טען סטטוסים חדשים", - "no_retweet_hint": "ההודעה מסומנת כ\"לעוקבים-בלבד\" ולא ניתן לחזור עליה", - "repeated": "חזר", - "show_new": "הראה חדש", - "up_to_date": "עדכני", - "no_more_statuses": "אין עוד סטטוסים", - "no_statuses": "אין סטטוסים" - }, - "status": { - "favorites": "מועדפים", - "repeats": "חזרות", - "delete": "מחק סטטוס", - "pin": "הצמד לפרופיל", - "unpin": "הסר הצמדה מהפרופיל", - "pinned": "מוצמד", - "delete_confirm": "האם באמת למחוק סטטוס זה?", - "reply_to": "הגב ל", - "replies_list": "תגובות:" - }, - "user_card": { - "approve": "אשר", - "block": "חסימה", - "blocked": "חסום!", - "deny": "דחה", - "favorites": "מועדפים", - "follow": "עקוב", - "follow_sent": "בקשה נשלחה!", - "follow_progress": "מבקש…", - "follow_unfollow": "בטל עקיבה", - "followees": "נעקבים", - "followers": "עוקבים", - "following": "עוקב!", - "follows_you": "עוקב אחריך!", - "its_you": "זה אתה!", - "media": "מדיה", - "mute": "השתק", - "muted": "מושתק", - "per_day": "ליום", - "remote_follow": "עקיבה מרחוק", - "report": "דווח", - "statuses": "סטטוסים", - "unblock": "הסר חסימה", - "unblock_progress": "מסיר חסימה…", - "block_progress": "חוסם…", - "unmute": "הסר השתקה", - "unmute_progress": "מסיר השתקה…", - "mute_progress": "משתיק…", - "admin_menu": { - "moderation": "ניהול (צוות)", - "grant_admin": "הפוך למנהל", - "revoke_admin": "הסר מנהל", - "grant_moderator": "הפוך לצוות", - "revoke_moderator": "הסר צוות", - "activate_account": "הפעל משתמש", - "deactivate_account": "השבת משתמש", - "delete_account": "מחק משתמש", - "force_nsfw": "סמן את כל ההודעות בתור לא-מתאימות-לעבודה", - "strip_media": "הסר מדיה מההודעות", - "force_unlisted": "הפוך הודעות ללא רשומות", - "sandbox": "הפוך הודעות לנראות לעוקבים-בלבד", - "disable_remote_subscription": "אל תאפשר עקיבה של המשתמש מאינסטנס אחר", - "disable_any_subscription": "אל תאפשר עקיבה של המשתמש בכלל", - "quarantine": "אל תאפשר פדרציה של ההודעות של המשתמש", - "delete_user": "מחק משתמש" - } - }, - "user_profile": { - "timeline_title": "ציר זמן המשתמש", - "profile_does_not_exist": "סליחה, פרופיל זה אינו קיים.", - "profile_loading_error": "סליחה, הייתה שגיאה בטעינת הפרופיל." - }, - "user_reporting": { - "title": "מדווח על {0}", - "add_comment_description": "הדיווח ישלח לצוות האינסטנס. אפשר להסביר למה הנך מדווחים על משתמש זה למטה:", - "additional_comments": "תגובות נוספות", - "forward_description": "המשתמש משרת אחר. לשלוח לשם עותק של הדיווח?", - "forward_to": "העבר ל {0}", - "submit": "הגש", - "generic_error": "קרתה שגיאה בעת עיבוד הבקשה." - }, - "who_to_follow": { - "more": "עוד", - "who_to_follow": "אחרי מי לעקוב" - }, - "tool_tip": { - "media_upload": "העלה מדיה", - "repeat": "חזור", - "reply": "הגב", - "favorite": "מועדף", - "user_settings": "הגדרות משתמש" - }, - "upload": { - "error": { - "base": "העלאה נכשלה.", - "file_too_big": "קובץ גדול מדי [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "נסה שוב אחר כך" + "finder": { + "error_fetching_user": "שגיאה במציאת משתמש", + "find_user": "מציאת משתמש" }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "general": { + "apply": "החל", + "cancel": "בטל", + "generic_error": "קרתה שגיאה", + "more": "עוד", + "optional": "לבחירה", + "show_less": "הראה פחות", + "show_more": "הראה עוד", + "submit": "שלח" + }, + "image_cropper": { + "cancel": "בטל", + "crop_picture": "חתוך תמונה", + "save": "שמור", + "save_without_cropping": "שמור בלי לחתוך" + }, + "importer": { + "error": "אירעתה שגיאה בזמן ייבוא קובץ זה.", + "submit": "שלח", + "success": "ייובא בהצלחה." + }, + "interactions": { + "favs_repeats": "חזרות ומועדפים", + "follows": "עוקבים חדשים", + "load_older": "טען אינטרקציות ישנות" + }, + "login": { + "description": "היכנס עם OAuth", + "hint": "הירשם על מנת להצטרף לדיון", + "login": "התחבר", + "logout": "התנתק", + "password": "סיסמה", + "placeholder": "למשל lain", + "register": "הירשם", + "username": "שם המשתמש" + }, + "media_modal": { + "next": "הבא", + "previous": "הקודם" + }, + "nav": { + "about": "על-אודות", + "back": "חזור", + "dms": "הודעות ישירות", + "friend_requests": "בקשות עקיבה", + "interactions": "אינטרקציות", + "mentions": "אזכורים", + "preferences": "העדפות", + "public_tl": "ציר הזמן הציבורי", + "timeline": "ציר הזמן", + "twkn": "כל הרשת הידועה", + "user_search": "חיפוש משתמש", + "who_to_follow": "אחרי מי לעקוב" + }, + "notifications": { + "broken_favorite": "סטאטוס לא ידוע, מחפש…", + "favorited_you": "אהב את הסטטוס שלך", + "followed_you": "עקב אחריך", + "load_older": "טען התראות ישנות", + "no_more_notifications": "לא עוד התראות", + "notifications": "התראות", + "read": "קרא!", + "repeated_you": "חזר על הסטטוס שלך" + }, + "post_status": { + "account_not_locked_warning": "המשתמש שלך אינו {0}. כל אחד יכול לעקוב אחריך ולראות את ההודעות לעוקבים-בלבד שלך.", + "account_not_locked_warning_link": "נעול", + "attachments_sensitive": "סמן מסמכים מצורפים כלא בטוחים לצפייה", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "טקסט פשוט" + }, + "content_warning": "נושא (נתון לבחירה)", + "default": "הרגע נחת ב-ל.א.", + "direct_warning_to_all": "הודעה זו תהיה נראית לכל המשתמשים המוזכרים.", + "direct_warning_to_first_only": "הודעה זו תהיה נראית לכל המשתמשים במוזכרים בתחילת ההודעה בלבד.", + "new_status": "פרסם סטאטוס חדש", + "posting": "מפרסם", + "scope": { + "direct": "ישיר - שלח לאנשים המוזכרים בלבד", + "private": "עוקבים-בלבד - שלח לעוקבים בלבד", + "public": "ציבורי - שלח לציר הזמן הציבורי", + "unlisted": "מחוץ לרשימה - אל תשלח לציר הזמן הציבורי" + }, + "scope_notice": { + "private": "הודעה זו תהיה נראית לעוקבים שלך בלבד", + "public": "הודעה זו תהיה נראית לכולם", + "unlisted": "הודעה זו לא תהיה נראית בציר זמן הציבורי או בכל הרשת הידועה" + } + }, + "registration": { + "bio": "אודות", + "bio_placeholder": "למשל\nהיי, אני ליין.\nאני ילדת אנימה שגרה בפרוורי יפן. אולי אתם מכירים אותי מהWired.", + "captcha": "אימות אנוש", + "email": "אימייל", + "fullname": "שם תצוגה", + "fullname_placeholder": "למשל Lain Iwakura", + "new_captcha": "לחץ על התמונה על מנת לקבל אימות אנוש חדש", + "password_confirm": "אישור סיסמה", + "registration": "הרשמה", + "token": "טוקן הזמנה", + "username_placeholder": "למשל lain", + "validations": { + "email_required": "לא יכול להישאר ריק", + "fullname_required": "לא יכול להישאר ריק", + "password_confirmation_match": "צריך להיות דומה לסיסמה", + "password_confirmation_required": "לא יכול להישאר ריק", + "password_required": "לא יכול להישאר ריק", + "username_required": "לא יכול להישאר ריק" + } + }, + "selectable_list": { + "select_all": "בחר הכל" + }, + "settings": { + "app_name": "שם האפליקציה", + "attachmentRadius": "צירופים", + "attachments": "צירופים", + "autohide_floating_post_button": "החבא אוטומטית את הכפתור הודעה חדשה (נייד)", + "avatar": "תמונת פרופיל", + "avatarAltRadius": "תמונות פרופיל (התראות)", + "avatarRadius": "תמונות פרופיל", + "avatar_size_instruction": "הגודל המינימלי המומלץ לתמונות פרופיל הוא 150x150 פיקסלים.", + "background": "רקע", + "bio": "אודות", + "block_export": "ייצוא חסימות", + "block_export_button": "ייצוא חסימות אל קובץ csv", + "block_import": "ייבוא חסימות", + "block_import_error": "שגיאה בייבוא החסימות", + "blocks_imported": "החסימות יובאו! ייקח מעט זמן לעבד אותן.", + "blocks_tab": "חסימות", + "btnRadius": "כפתורים", + "cBlue": "כחול (תגובה, עקיבה)", + "cGreen": "ירוק (חזרה)", + "cOrange": "כתום (לייק)", + "cRed": "אדום (ביטול)", + "change_password": "שנה סיסמה", + "change_password_error": "הייתה בעיה בשינוי סיסמתך.", + "changed_password": "סיסמה שונתה בהצלחה!", + "checkboxRadius": "תיבות סימון", + "collapse_subject": "מזער הודעות עם נושאים", + "composing": "מרכיב", + "confirm_new_password": "אשר סיסמה", + "current_avatar": "תמונת הפרופיל הנוכחית שלך", + "current_password": "סיסמה נוכחית", + "data_import_export_tab": "ייבוא או ייצוא מידע", + "default_vis": "ברירת מחדל לטווח הנראות", + "delete_account": "מחק משתמש", + "delete_account_description": "מחק לצמיתות את המשתמש שלך ואת כל הודעותיך.", + "delete_account_error": "הייתה בעיה במחיקת המשתמש. אם זה ממשיך, אנא עדכן את מנהל השרת שלך.", + "delete_account_instructions": "הכנס את סיסמתך בקלט למטה על מנת לאשר מחיקת משתמש.", + "enable_web_push_notifications": "אפשר התראות web push", + "export_theme": "שמור ערכים", + "filtering": "סינון", + "filtering_explanation": "כל הסטטוסים הכוללים את המילים הללו יושתקו, אחד לשורה", + "follow_export": "יצוא עקיבות", + "follow_export_button": "ייצא את הנעקבים שלך לקובץ csv", + "follow_import": "יבוא עקיבות", + "follow_import_error": "שגיאה בייבוא נעקבים", + "follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.", + "foreground": "חזית", + "general": "כללי", + "hide_attachments_in_convo": "החבא צירופים בשיחות", + "hide_attachments_in_tl": "החבא צירופים בציר הזמן", + "hide_filtered_statuses": "מסתר סטטוסים מסוננים", + "hide_followers_description": "אל תראה מי עוקב אחרי", + "hide_follows_description": "אל תראה אחרי מי אני עוקב", + "hide_isp": "הסתר פאנל-צד", + "hide_muted_posts": "הסתר הודעות של משתמשים מושתקים", + "hide_post_stats": "הסתר נתוני הודעה (למשל, מספר החזרות)", + "hide_user_stats": "הסתר נתוני משתמש (למשל, מספר העוקבים)", + "import_blocks_from_a_csv_file": "ייבא חסימות מקובץ csv", + "import_followers_from_a_csv_file": "ייבא את הנעקבים שלך מקובץ csv", + "import_theme": "טען ערכים", + "inputRadius": "שדות קלט", + "instance_default": "(default: {value})", + "instance_default_simple": "(default)", + "interface": "ממשק", + "interfaceLanguage": "שפת הממשק", + "invalid_theme_imported": "הקובץ הנבחר אינו תמה הנתמכת ע\"י פלרומה. שום שינויים לא נעשו לתמה שלך.", + "limited_availability": "לא זמין בדפדפן שלך", + "links": "לינקים", + "lock_account_description": "הגבל את המשתמש לעוקבים מאושרים בלבד", + "loop_video": "נגן סרטונים ללא הפסקה", + "loop_video_silent_only": "נגן רק סרטונים חסרי קול ללא הפסקה", + "max_thumbnails": "מספר מירבי של תמונות ממוזערות להודעה", + "minimal_scopes_mode": "צמצם אפשרויות בחירה לתחום הודעה", + "mutes_tab": "השתקות", + "name": "שם", + "name_bio": "שם ואודות", + "new_password": "סיסמה חדשה", + "no_blocks": "ללא חסימות", + "no_mutes": "ללא השתקות", + "no_rich_text_description": "הסר פורמט טקסט עשיר מכל ההודעות", + "notification_visibility": "סוג ההתראות שתרצו לראות", + "notification_visibility_follows": "עקיבות", + "notification_visibility_likes": "לייקים", + "notification_visibility_mentions": "אזכורים", + "notification_visibility_repeats": "חזרות", + "notifications": "התראות", + "nsfw_clickthrough": "החל החבאת צירופים לא בטוחים לצפיה בעת עבודה בעזרת לחיצת עכבר", + "oauth_tokens": "אסימוני OAuth", + "panelRadius": "פאנלים", + "pause_on_unfocused": "השהה זרימת הודעות כשהחלון לא בפוקוס", + "play_videos_in_modal": "נגן סרטונים ישירות בנגן המדיה", + "post_status_content_type": "שלח את סוג תוכן ההודעה", + "preload_images": "טען תמונות מראש", + "presets": "ערכים קבועים מראש", + "profile_background": "רקע הפרופיל", + "profile_banner": "כרזת הפרופיל", + "profile_tab": "פרופיל", + "radii_help": "קבע מראש עיגול פינות לממשק (בפיקסלים)", + "refresh_token": "רענון האסימון", + "replies_in_timeline": "תגובות בציר הזמן", + "reply_visibility_all": "הראה את כל התגובות", + "reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד", + "reply_visibility_self": "הראה תגובות שמופנות אליי בלבד", + "revoke_token": "בטל", + "saving_err": "שגיאה בשמירת הגדרות", + "saving_ok": "הגדרות נשמרו", + "scope_copy": "העתק תחום הודעה בתגובה להודעה (הודעות ישירות תמיד מועתקות)", + "search_user_to_block": "חפש משתמש לחסימה", + "search_user_to_mute": "חפש משתמש להשתקה", + "security_tab": "ביטחון", + "set_new_avatar": "קבע תמונת פרופיל חדשה", + "set_new_profile_background": "קבע רקע פרופיל חדש", + "set_new_profile_banner": "קבע כרזת פרופיל חדשה", + "settings": "הגדרות", + "show_admin_badge": "הראה סמל מנהל בפרופיל שלי", + "show_moderator_badge": "הראה סמל צוות בפרופיל שלי", + "stop_gifs": "נגן-בעת-ריחוף GIFs", + "streaming": "החל זרימת הודעות אוטומטית בעת גלילה למעלה הדף", + "subject_input_always_show": "תמיד הראה את שדה הנושא", + "subject_line_behavior": "העתק נושא בתגובה", + "subject_line_email": "כמו אימייל: \"re: נושא\"", + "subject_line_mastodon": "כמו מסטודון: העתק כפי שזה", + "subject_line_noop": "אל תעתיק", + "text": "טקסט", + "theme": "תמה", + "theme_help": "השתמש בקודי צבע הקס (#אדום-אדום-ירוק-ירוק-כחול-כחול) על מנת להתאים אישית את תמת הצבע שלך.", + "token": "אסימון", + "tooltipRadius": "טולטיפ \\ התראות", + "upload_a_photo": "העלה תמונה", + "use_contain_fit": "אל תחתוך את הצירוף בתמונות הממוזערות", + "use_one_click_nsfw": "פתח תמונות לא-בטוחות-לעבודה עם לחיצה אחת בלבד", + "user_settings": "הגדרות משתמש", + "valid_until": "בתוקף עד", + "values": { + "false": "לא", + "true": "כן" + }, + "version": { + "backend_version": "גרסת קצה אחורי", + "frontend_version": "גרסת קצה קדמי", + "title": "גרסה" + } + }, + "status": { + "delete": "מחק סטטוס", + "delete_confirm": "האם באמת למחוק סטטוס זה?", + "favorites": "מועדפים", + "pin": "הצמד לפרופיל", + "pinned": "מוצמד", + "repeats": "חזרות", + "replies_list": "תגובות:", + "reply_to": "הגב ל", + "unpin": "הסר הצמדה מהפרופיל" + }, + "timeline": { + "collapse": "מוטט", + "conversation": "שיחה", + "load_older": "טען סטטוסים חדשים", + "no_more_statuses": "אין עוד סטטוסים", + "no_retweet_hint": "ההודעה מסומנת כ\"לעוקבים-בלבד\" ולא ניתן לחזור עליה", + "no_statuses": "אין סטטוסים", + "repeated": "חזר", + "show_new": "הראה חדש", + "up_to_date": "עדכני" + }, + "tool_tip": { + "favorite": "מועדף", + "media_upload": "העלה מדיה", + "repeat": "חזור", + "reply": "הגב", + "user_settings": "הגדרות משתמש" + }, + "upload": { + "error": { + "base": "העלאה נכשלה.", + "default": "נסה שוב אחר כך", + "file_too_big": "קובץ גדול מדי [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "הפעל משתמש", + "deactivate_account": "השבת משתמש", + "delete_account": "מחק משתמש", + "delete_user": "מחק משתמש", + "disable_any_subscription": "אל תאפשר עקיבה של המשתמש בכלל", + "disable_remote_subscription": "אל תאפשר עקיבה של המשתמש מאינסטנס אחר", + "force_nsfw": "סמן את כל ההודעות בתור לא-מתאימות-לעבודה", + "force_unlisted": "הפוך הודעות ללא רשומות", + "grant_admin": "הפוך למנהל", + "grant_moderator": "הפוך לצוות", + "moderation": "ניהול (צוות)", + "quarantine": "אל תאפשר פדרציה של ההודעות של המשתמש", + "revoke_admin": "הסר מנהל", + "revoke_moderator": "הסר צוות", + "sandbox": "הפוך הודעות לנראות לעוקבים-בלבד", + "strip_media": "הסר מדיה מההודעות" + }, + "approve": "אשר", + "block": "חסימה", + "block_progress": "חוסם…", + "blocked": "חסום!", + "deny": "דחה", + "favorites": "מועדפים", + "follow": "עקוב", + "follow_progress": "מבקש…", + "follow_sent": "בקשה נשלחה!", + "follow_unfollow": "בטל עקיבה", + "followees": "נעקבים", + "followers": "עוקבים", + "following": "עוקב!", + "follows_you": "עוקב אחריך!", + "its_you": "זה אתה!", + "media": "מדיה", + "mute": "השתק", + "mute_progress": "משתיק…", + "muted": "מושתק", + "per_day": "ליום", + "remote_follow": "עקיבה מרחוק", + "report": "דווח", + "statuses": "סטטוסים", + "unblock": "הסר חסימה", + "unblock_progress": "מסיר חסימה…", + "unmute": "הסר השתקה", + "unmute_progress": "מסיר השתקה…" + }, + "user_profile": { + "profile_does_not_exist": "סליחה, פרופיל זה אינו קיים.", + "profile_loading_error": "סליחה, הייתה שגיאה בטעינת הפרופיל.", + "timeline_title": "ציר זמן המשתמש" + }, + "user_reporting": { + "add_comment_description": "הדיווח ישלח לצוות האינסטנס. אפשר להסביר למה הנך מדווחים על משתמש זה למטה:", + "additional_comments": "תגובות נוספות", + "forward_description": "המשתמש משרת אחר. לשלוח לשם עותק של הדיווח?", + "forward_to": "העבר ל {0}", + "generic_error": "קרתה שגיאה בעת עיבוד הבקשה.", + "submit": "הגש", + "title": "מדווח על {0}" + }, + "who_to_follow": { + "more": "עוד", + "who_to_follow": "אחרי מי לעקוב" } - }, - "about": { - "mrf": { - "keyword": { - "keyword_policies": "פוליסת מילות מפתח" - }, - "federation": "פדרציה" - } - } -} +} \ No newline at end of file diff --git a/src/i18n/hu.json b/src/i18n/hu.json index 41355800..062b0207 100644 --- a/src/i18n/hu.json +++ b/src/i18n/hu.json @@ -1,81 +1,79 @@ { - "finder": { - "error_fetching_user": "Hiba felhasználó beszerzésével", - "find_user": "Felhasználó keresése" - }, - "general": { - "submit": "Elküld" - }, - "login": { - "login": "Bejelentkezés", - "logout": "Kijelentkezés", - "password": "Jelszó", - "placeholder": "e.g. lain", - "register": "Feliratkozás", - "username": "Felhasználó név" - }, - "nav": { - "mentions": "Említéseim", - "public_tl": "Publikus Idővonal", - "timeline": "Idővonal", - "twkn": "Az Egész Ismert Hálózat" - }, - "notifications": { - "followed_you": "követ téged", - "notifications": "Értesítések", - "read": "Olvasva!" - }, - "post_status": { - "default": "Most érkeztem L.A.-be", - "posting": "Küldés folyamatban" - }, - "registration": { - "bio": "Bio", - "email": "Email", - "fullname": "Teljes név", - "password_confirm": "Jelszó megerősítése", - "registration": "Feliratkozás" - }, - "settings": { - "attachments": "Csatolmányok", - "avatar": "Avatár", - "bio": "Bio", - "current_avatar": "Jelenlegi avatár", - "current_profile_banner": "Jelenlegi profil banner", - "filtering": "Szűrés", - "filtering_explanation": "Minden tartalom mely ezen szavakat tartalmazza némítva lesz, soronként egy", - "hide_attachments_in_convo": "Csatolmányok elrejtése a társalgásokban", - "hide_attachments_in_tl": "Csatolmányok elrejtése az idővonalon", - "name": "Név", - "name_bio": "Név és Bio", - "nsfw_clickthrough": "NSFW átkattintási tartalom elrejtésének engedélyezése", - "profile_background": "Profil háttérkép", - "profile_banner": "Profil Banner", - "set_new_avatar": "Új avatár", - "set_new_profile_background": "Új profil háttér beállítása", - "set_new_profile_banner": "Új profil banner", - "settings": "Beállítások", - "theme": "Téma", - "user_settings": "Felhasználói beállítások" - }, - "timeline": { - "conversation": "Társalgás", - "error_fetching": "Hiba a frissítések beszerzésénél", - "load_older": "Régebbi állapotok betöltése", - "show_new": "Újak mutatása", - "up_to_date": "Naprakész" - }, - "user_card": { - "block": "Letilt", - "blocked": "Letiltva!", - "follow": "Követ", - "followees": "Követettek", - "followers": "Követők", - "following": "Követve!", - "follows_you": "Követ téged!", - "mute": "Némít", - "muted": "Némított", - "per_day": "naponta", - "statuses": "Állapotok" - } -} + "finder": { + "error_fetching_user": "Hiba felhasználó beszerzésével", + "find_user": "Felhasználó keresése" + }, + "general": { + "submit": "Elküld" + }, + "login": { + "login": "Bejelentkezés", + "logout": "Kijelentkezés", + "password": "Jelszó", + "placeholder": "e.g. lain", + "register": "Feliratkozás", + "username": "Felhasználó név" + }, + "nav": { + "mentions": "Említéseim", + "public_tl": "Publikus Idővonal", + "timeline": "Idővonal", + "twkn": "Az Egész Ismert Hálózat" + }, + "notifications": { + "followed_you": "követ téged", + "notifications": "Értesítések", + "read": "Olvasva!" + }, + "post_status": { + "default": "Most érkeztem L.A.-be", + "posting": "Küldés folyamatban" + }, + "registration": { + "bio": "Bio", + "email": "Email", + "fullname": "Teljes név", + "password_confirm": "Jelszó megerősítése", + "registration": "Feliratkozás" + }, + "settings": { + "attachments": "Csatolmányok", + "avatar": "Avatár", + "bio": "Bio", + "current_avatar": "Jelenlegi avatár", + "filtering": "Szűrés", + "filtering_explanation": "Minden tartalom mely ezen szavakat tartalmazza némítva lesz, soronként egy", + "hide_attachments_in_convo": "Csatolmányok elrejtése a társalgásokban", + "hide_attachments_in_tl": "Csatolmányok elrejtése az idővonalon", + "name": "Név", + "name_bio": "Név és Bio", + "nsfw_clickthrough": "NSFW átkattintási tartalom elrejtésének engedélyezése", + "profile_background": "Profil háttérkép", + "profile_banner": "Profil Banner", + "set_new_avatar": "Új avatár", + "set_new_profile_background": "Új profil háttér beállítása", + "set_new_profile_banner": "Új profil banner", + "settings": "Beállítások", + "theme": "Téma", + "user_settings": "Felhasználói beállítások" + }, + "timeline": { + "conversation": "Társalgás", + "load_older": "Régebbi állapotok betöltése", + "show_new": "Újak mutatása", + "up_to_date": "Naprakész" + }, + "user_card": { + "block": "Letilt", + "blocked": "Letiltva!", + "follow": "Követ", + "followees": "Követettek", + "followers": "Követők", + "following": "Követve!", + "follows_you": "Követ téged!", + "mute": "Némít", + "muted": "Némított", + "per_day": "naponta", + "statuses": "Állapotok" + } +} \ No newline at end of file diff --git a/src/i18n/id.json b/src/i18n/id.json index d97c8abb..109d268c 100644 --- a/src/i18n/id.json +++ b/src/i18n/id.json @@ -1,633 +1,612 @@ { - "settings": { - "style": { - "preview": { - "link": "sebuah tautan yang kecil nan bagus", - "header": "Pratinjau", - "error": "Contoh kesalahan", - "button": "Tombol", - "input": "Baru saja mendarat di L.A.", - "faint_link": "manual berguna", - "fine_print": "Baca {0} kami untuk belajar sesuatu yang tak ada gunanya!", - "header_faint": "Ini baik-baik saja", - "checkbox": "Saya telah membaca sekilas syarat dan ketentuan" - }, - "advanced_colors": { - "alert_neutral": "Neutral", - "alert_warning": "Peringatan", - "alert_error": "Kesalahan", - "_tab_label": "Lanjutan", - "post": "Postingan/Bio pengguna", - "popover": "Tooltip, menu, popover", - "badge_notification": "Notifikasi", - "top_bar": "Bar atas", - "borders": "", - "buttons": "Tombol", - "wallpaper": "Latar belakang", - "panel_header": "Header panel", - "icons": "Ikon-ikon", - "disabled": "Dinonaktifkan" - }, - "common_colors": { - "main": "Warna umum", - "_tab_label": "Umum" - }, - "common": { - "contrast": { - "context": { - "text": "untuk teks", - "18pt": "Untuk teks besar (18pt+)" - } + "about": { + "mrf": { + "federation": "Federasi", + "keyword": { + "is_replaced_by": "→", + "reject": "Tolak" + }, + "mrf_policies": "Kebijakan MRF yang diaktifkan", + "simple": { + "accept": "Terima", + "accept_desc": "Instansi ini hanya menerima pesan dari instansi-instansi berikut:", + "media_removal": "Penghapusan Media", + "media_removal_desc": "Instansi ini menghapus media dari postingan yang berasal dari instansi-instansi berikut:", + "quarantine": "Karantina", + "quarantine_desc": "Instansi ini hanya akan mengirim postingan publik ke instansi-instansi berikut:", + "reject": "Tolak", + "reject_desc": "Instansi ini tidak akan menerima pesan dari instansi-instansi berikut:" + } }, - "color": "Warna" - }, - "switcher": { - "help": { - "upgraded_from_v2": "PleromaFE telah diperbarui, tema dapat terlihat sedikit berbeda dari apa yang Anda ingat.", - "future_version_imported": "Berkas yang Anda impor dibuat pada versi FE yang lebih baru.", - "older_version_imported": "Berkas yang Anda impor dibuat pada versi FE yang lebih lama.", - "fe_upgraded": "Mesin tema PleromaFE diperbarui setelah pembaruan versi." + "staff": "Staf" + }, + "chats": { + "chats": "Obrolan", + "delete": "Hapus", + "delete_confirm": "Apakah Anda benar-benar ingin menghapus pesan ini?", + "empty_chat_list_placeholder": "Anda belum memiliki obrolan. Buat sbeuah obrolan baru!", + "empty_message_error": "Tidak dapat memposting pesan yang kosong", + "error_loading_chat": "Sesuatu yang salah terjadi ketika memuat obrolan.", + "error_sending_message": "Sesuatu yang salah terjadi ketika mengirim pesan.", + "message_user": "Kirim Pesan ke {nickname}", + "more": "Lebih banyak", + "new": "Obrolan Baru", + "you": "Anda:" + }, + "display_date": { + "today": "Hari Ini" + }, + "domain_mute_card": { + "mute": "Bisukan", + "mute_progress": "Membisukan…", + "unmute": "Berhenti membisukan", + "unmute_progress": "Memberhentikan pembisuan…" + }, + "emoji": { + "add_emoji": "Sisipkan emoji", + "custom": "Emoji kustom", + "emoji": "Emoji", + "keep_open": "Tetap buka pemilih", + "load_all": "Memuat semua {emojiAmount} emoji", + "load_all_hint": "Memuat {saneAmount} emoji pertama, memuat semua emoji dapat menyebabkan masalah performa.", + "search_emoji": "Cari emoji", + "stickers": "Stiker", + "unicode": "Emoji unicode" + }, + "errors": { + "storage_unavailable": "Pleroma tidak dapat mengakses penyimpanan browser. Login Anda atau pengaturan lokal Anda tidak akan tersimpan dan masalah yang tidak terduga dapat terjadi. Coba mengaktifkan kuki." + }, + "exporter": { + "export": "Ekspor", + "processing": "Memproses, Anda akan segera diminta untuk mengunduh berkas Anda" + }, + "features_panel": { + "text_limit": "Batas teks", + "title": "Fitur-fitur", + "upload_limit": "Batas unggahan" + }, + "file_type": { + "audio": "Audio", + "file": "Berkas", + "image": "Gambar", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Terjadi kesalahan ketika memuat pengguna", + "find_user": "Cari pengguna" + }, + "general": { + "apply": "Terapkan", + "cancel": "Batal", + "close": "Tutup", + "confirm": "Konfirmasi", + "disable": "Nonaktifkan", + "enable": "Aktifkan", + "error_retry": "Harap coba lagi", + "flash_content": "Klik untuk menampilkan konten Flash menggunakan Ruffle (Eksperimental, mungkin tidak bekerja).", + "flash_fail": "Gagal memuat konten flash, lihat console untuk keterangan.", + "flash_security": "Harap ingat ini dapat menjadi berbahaya karena konten Flash masih termasuk arbitrary code.", + "generic_error": "Terjadi kesalahan", + "loading": "Memuat…", + "more": "Lebih banyak", + "optional": "opsional", + "peek": "Intip", + "retry": "Coba lagi", + "role": { + "admin": "Admin", + "moderator": "Moderator" }, - "use_source": "Versi baru", - "use_snapshot": "Versi lama", - "load_theme": "Muat tema" - }, - "fonts": { - "_tab_label": "Font", - "components": { - "interface": "Antarmuka", - "post": "Teks postingan" + "show_less": "Tampilkan lebih sedikit", + "show_more": "Tampilkan lebih banyak", + "submit": "Kirim", + "verify": "Verifikasi" + }, + "image_cropper": { + "cancel": "Batal", + "crop_picture": "Potong gambar", + "save": "Simpan", + "save_without_cropping": "Simpan tanpa memotong" + }, + "importer": { + "error": "Terjadi kesalahan ketika mnengimpor berkas ini.", + "submit": "Kirim", + "success": "Berhasil mengimpor." + }, + "interactions": { + "favs_repeats": "Ulangan dan favorit", + "follows": "Pengikut baru", + "load_older": "Muat interaksi yang lebih tua", + "moves": "Pengguna yang bermigrasi" + }, + "login": { + "authentication_code": "Kode otentikasi", + "description": "Masuk dengan OAuth", + "enter_recovery_code": "Masukkan kode pemulihan", + "enter_two_factor_code": "Masukkan kode dua-faktor", + "heading": { + "totp": "Otentikasi dua-faktor" }, - "family": "Nama font", - "size": "Ukuran (dalam px)", - "weight": "Berat (ketebalan)" - }, - "shadows": { - "components": { - "panel": "Panel", - "panelHeader": "Header panel" + "hint": "Masuk untuk ikut berdiskusi", + "login": "Masuk", + "logout": "Keluar", + "password": "Kata sandi", + "placeholder": "contoh: lain", + "recovery_code": "Kode pemulihan", + "register": "Daftar", + "username": "Nama pengguna" + }, + "media_modal": { + "next": "Selanjutnya", + "previous": "Sebelum" + }, + "nav": { + "about": "Tentang", + "administration": "Administrasi", + "back": "Kembali", + "chats": "Obrolan", + "dms": "Pesan langsung", + "friend_requests": "Ingin mengikuti", + "home_timeline": "Linimasa beranda", + "interactions": "Interaksi", + "mentions": "Sebutan", + "preferences": "Preferensi", + "public_tl": "Linimasa publik", + "search": "Cari", + "timeline": "Linimasa", + "timelines": "Linimasa", + "user_search": "Pencarian Pengguna" + }, + "notifications": { + "broken_favorite": "Status tak diketahui, mencarinya…", + "error": "Terjadi kesalahan ketika memuat notifikasi: {0}", + "favorited_you": "memfavoritkan status Anda", + "follow_request": "ingin mengikuti Anda", + "followed_you": "mengikuti Anda", + "load_older": "Muat notifikasi yang lebih lama", + "migrated_to": "bermigrasi ke", + "no_more_notifications": "Tidak ada notifikasi lagi", + "notifications": "Notifikasi", + "reacted_with": "bereaksi dengan {0}", + "read": "Dibaca!", + "repeated_you": "mengulangi status Anda" + }, + "password_reset": { + "forgot_password": "Lupa kata sandi?", + "instruction": "Masukkan surel atau nama pengguna Anda. Kami akan mengirimkan Anda tautan untuk mengatur ulang kata sandi.", + "password_reset": "Pengatur-ulangan kata sandi", + "password_reset_disabled": "Pengatur-ulangan kata sandi dinonaktifkan. Hubungi administrator instansi Anda.", + "password_reset_required": "Anda harus mengatur ulang kata sandi Anda untuk masuk.", + "password_reset_required_but_mailer_is_disabled": "Anda harus mengatur ulang kata sandi, tetapi pengatur-ulangan kata sandi dinonaktifkan. Silakan hubungi administrator instansi Anda.", + "placeholder": "Surel atau nama pengguna Anda", + "return_home": "Kembali ke halaman beranda", + "too_many_requests": "Anda telah mencapai batas percobaan, coba lagi nanti." + }, + "polls": { + "add_option": "Tambahkan opsi", + "add_poll": "Tambahkan japat", + "expired": "Japat berakhir {0} yang lalu", + "expires_in": "Japat berakhir dalam {0}", + "expiry": "Usia japat", + "not_enough_options": "Terlalu sedikit opsi yang unik pada japat", + "option": "Opsi", + "people_voted_count": "{count} orang memilih | {count} orang memilih", + "type": "Jenis japat", + "vote": "Pilih", + "votes": "suara", + "votes_count": "{count} suara | {count} suara" + }, + "post_status": { + "account_not_locked_warning": "Akun Anda tidak {0}. Siapapun dapat mengikuti Anda untuk melihat postingan hanya-pengikut Anda.", + "account_not_locked_warning_link": "terkunci", + "attachments_sensitive": "Tandai lampiran sebagai sensitif", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Teks biasa" + }, + "content_warning": "Subyek (opsional)", + "default": "Baru saja mendarat di L.A.", + "direct_warning_to_all": "Postingan ini akan terlihat oleh pengguna yang disebutkan.", + "direct_warning_to_first_only": "Postingan ini akan terlihat oleh pengguna yang disebutkan di awal pesan.", + "empty_status_error": "Tidak dapat memposting status kosong tanpa berkas", + "media_description": "Keterangan media", + "media_description_error": "Gagal memperbarui media, coba lagi", + "new_status": "Posting status baru", + "post": "Posting", + "posting": "Memposting", + "preview": "Pratinjau", + "preview_empty": "Kosong", + "scope": { + "direct": "Langsung - posting hanya kepada pengguna yang disebut", + "private": "Hanya-pengikut - posting hanya kepada pengikut", + "public": "Publik - posting ke linimasa publik" + }, + "scope_notice": { + "private": "Postingan ini akan terlihat hanya oleh pengikut Anda", + "public": "Postingan ini akan terlihat oleh siapa saja" } - } }, - "notification_setting_privacy": "Privasi", - "notifications": "Notifikasi", - "values": { - "true": "ya", - "false": "tidak" + "registration": { + "bio": "Bio", + "bio_placeholder": "contoh.\nHai, aku Lain.\nAku seorang putri anime yang tinggal di pinggiran kota Jepang. Kamu mungkin mengenal aku dari Wired.", + "captcha": "CAPTCHA", + "email": "Surel", + "fullname_placeholder": "contoh. Lain Iwakura", + "new_captcha": "Klik gambarnya untuk mendapatkan captcha baru", + "password_confirm": "Konfirmasi kata sandi", + "reason": "Alasan mendaftar", + "reason_placeholder": "Instansi ini menerima pendaftaran secara manual.\nBeritahu administrasinya mengapa Anda ingin mendaftar.", + "register": "Daftar", + "registration": "Pendaftaran", + "token": "Token undangan", + "username_placeholder": "contoh. lain", + "validations": { + "email_required": "tidak boleh kosong", + "fullname_required": "tidak boleh kosong", + "password_confirmation_required": "tidak boleh kosong", + "password_required": "tidak boleh kosong", + "username_required": "tidak boleh kosong" + } }, - "user_settings": "Pengaturan Pengguna", - "upload_a_photo": "Unggah foto", - "theme": "Tema", - "text": "Teks", - "settings": "Pengaturan", - "security_tab": "Keamanan", - "saving_ok": "Pengaturan disimpan", - "profile_tab": "Profil", - "profile_background": "Latar belakang profil", - "token": "Token", - "oauth_tokens": "Token OAuth", - "show_moderator_badge": "Tampilkan lencana \"Moderator\" di profil saya", - "show_admin_badge": "Tampilkan lencana \"Admin\" di profil saya", - "new_password": "Kata sandi baru", - "new_email": "Surel baru", - "name_bio": "Nama & bio", - "name": "Nama", - "profile_fields": { - "value": "Isi", - "name": "Label", - "label": "Metadata profil" + "remote_user_resolver": { + "error": "Tidak ditemukan." }, - "limited_availability": "Tidak tersedia di browser Anda", - "invalid_theme_imported": "Berkas yang dipilih bukan sebuah tema yang didukung Pleroma. Tidak ada perbuahan yang dibuat pada tema Anda.", - "interfaceLanguage": "Bahasa antarmuka", - "interface": "Antarmuka", - "instance_default_simple": "(bawaan)", - "instance_default": "(bawaan: {value})", - "general": "Umum", - "delete_account_error": "Ada masalah ketika menghapus akun Anda. Jika ini terus terjadi harap hubungi adminstrator instansi Anda.", - "delete_account_description": "Hapus data Anda secara permanen dan menonaktifkan akun Anda.", - "delete_account": "Hapus akun", - "data_import_export_tab": "Impor / ekspor data", - "current_password": "Kata sandi saat ini", - "confirm_new_password": "Konfirmasi kata sandi baru", - "version": { - "title": "Versi", - "backend_version": "Versi backend", - "frontend_version": "Versi frontend" + "search": { + "hashtags": "Tagar", + "no_results": "Tidak ada hasil", + "people": "Orang", + "people_talking": "{count} orang berbicara", + "person_talking": "{count} orang berbicara" }, - "security": "Keamanan", - "changed_password": "Kata sandi berhasil diubah!", - "change_password_error": "Ada masalah ketika mengubah kata sandi Anda.", - "change_password": "Ubah kata sandi", - "changed_email": "Surel berhasil diubah!", - "change_email_error": "Ada masalah ketika mengubah surel Anda.", - "change_email": "Ubah surel", - "cRed": "Merah (Batal)", - "cBlue": "Biru (Balas, ikuti)", - "btnRadius": "Tombol", - "bot": "Ini adalah akun bot", - "block_export": "Ekspor blokiran", - "bio": "Bio", - "background": "Latar belakang", - "avatarRadius": "Avatar", - "avatar": "Avatar", - "attachments": "Lampiran", - "mfa": { - "scan": { - "title": "Pindai" - }, - "confirm_and_enable": "Konfirmasi & aktifkan OTP", - "setup_otp": "Siapkan OTP", - "otp": "OTP", - "recovery_codes_warning": "Tulis kode-kode nya atau simpan mereka di tempat yang aman - jika tidak Anda tidak akan melihat mereka lagi. Jika Anda tidak dapat mengakses aplikasi 2FA Anda dan kode pemulihan Anda hilang Anda tidak akan bisa mengakses akun Anda.", - "authentication_methods": "Metode otentikasi", - "recovery_codes": "Kode pemulihan.", - "warning_of_generate_new_codes": "Ketika Anda menghasilkan kode pemulihan baru, kode lama Anda berhenti bekerja.", - "generate_new_recovery_codes": "Hasilkan kode pemulihan baru", - "title": "Otentikasi Dua-faktor", - "waiting_a_recovery_codes": "Menerima kode cadangan…", - "verify": { - "desc": "Untuk mengaktifkan otentikasi dua-faktor, masukkan kode dari aplikasi dua-faktor Anda:" - } + "selectable_list": { + "select_all": "Pilih semua" }, - "app_name": "Nama aplikasi", - "save": "Simpan perubahan", - "valid_until": "Valid hingga", - "follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut", - "emoji_reactions_on_timeline": "Tampilkan reaksi emoji pada linimasa", - "chatMessageRadius": "Pesan obrolan", - "cOrange": "Jingga (Favorit)", - "avatarAltRadius": "Avatar (notifikasi)", - "hide_shoutbox": "Sembunyikan kotak suara instansi", - "hide_followers_count_description": "Jangan tampilkan jumlah pengikut", - "hide_follows_count_description": "Jangan tampilkan jumlah mengikuti", - "hide_followers_description": "Jangan tampilkan siapa yang mengikuti saya", - "hide_follows_description": "Jangan tampilkan siapa yang saya ikuti", - "notification_visibility_emoji_reactions": "Reaksi", - "notification_visibility_follows": "Diikuti", - "notification_visibility_moves": "Pengguna Bermigrasi", - "notification_visibility_repeats": "Ulangan", - "notification_visibility_mentions": "Sebutan", - "notification_visibility_likes": "Favorit", - "notification_visibility": "Jenis notifikasi yang perlu ditampilkan", - "links": "Tautan", - "hide_user_stats": "Sembunyikan statistik pengguna (contoh. jumlah pengikut)", - "hide_post_stats": "Sembunyikan statistik postingan (contoh. jumlah favorit)", - "use_one_click_nsfw": "Buka lampiran NSFW hanya dengan satu klik", - "hide_wallpaper": "Sembunyikan latar belakang instansi", - "blocks_imported": "Blokiran diimpor! Pemrosesannya mungkin memakan sedikit waktu.", - "block_import_error": "Terjadi kesalahan ketika mengimpor blokiran", - "block_import": "Impor blokiran", - "block_export_button": "Ekspor blokiran Anda menjadi berkas csv", - "blocks_tab": "Blokiran", - "delete_account_instructions": "Ketik kata sandi Anda pada input di bawah untuk mengkonfirmasi penghapusan akun.", - "mutes_and_blocks": "Bisuan dan Blokiran", - "enter_current_password_to_confirm": "Masukkan kata sandi Anda saat ini untuk mengkonfirmasi identitas Anda", - "filtering": "Penyaringan", - "word_filter": "Penyaring kata", - "avatar_size_instruction": "Ukuran minimum gambar avatar yang disarankan adalah 150x150 piksel.", - "attachmentRadius": "Lampiran", - "cGreen": "Hijau (Retweet)", - "max_thumbnails": "Jumlah thumbnail maksimum per postingan", - "loop_video": "Ulang-ulang video", - "loop_video_silent_only": "Ulang-ulang video tanpa suara (seperti \"gif\" Mastodon)", - "pause_on_unfocused": "Jeda aliran ketika tab di dalam fokus", - "reply_visibility_following": "Hanya tampilkan balasan yang ditujukan kepada saya atau orang yang saya ikuti", - "reply_visibility_following_short": "Tampilkan balasan ke orang yang saya ikuti", - "saving_err": "Terjadi kesalahan ketika menyimpan pengaturan", - "search_user_to_block": "Cari siapa yang Anda ingin blokir", - "search_user_to_mute": "Cari siapa yang ingin Anda bisukan", - "set_new_avatar": "Tetapkan avatar baru", - "set_new_profile_background": "Tetapkan latar belakang profil baru", - "subject_line_behavior": "Salin subyek ketika membalas", - "subject_line_email": "Seperti surel: \"re: subyek\"", - "subject_line_mastodon": "Seperti mastodon: salin saja", - "subject_line_noop": "Jangan salin", - "useStreamingApiWarning": "(Tidak disarankan, eksperimental, diketahui dapat melewati postingan-postingan)", - "fun": "Seru", - "enable_web_push_notifications": "Aktifkan notifikasi push web", - "more_settings": "Lebih banyak pengaturan", - "reply_visibility_all": "Tampilkan semua balasan", - "reply_visibility_self": "Hanya tampilkan balasan yang ditujukan kepada saya", - "hide_muted_posts": "Sembunyikan postingan-postingan dari pengguna yang dibisukan", - "import_blocks_from_a_csv_file": "Impor blokiran dari berkas csv", - "domain_mutes": "Domain", - "composing": "Menulis", - "no_blocks": "Tidak ada yang diblokir", - "no_mutes": "Tidak ada yang dibisukan" - }, - "about": { - "mrf": { - "keyword": { - "reject": "Tolak", - "is_replaced_by": "→" - }, - "simple": { - "quarantine_desc": "Instansi ini hanya akan mengirim postingan publik ke instansi-instansi berikut:", - "quarantine": "Karantina", - "reject_desc": "Instansi ini tidak akan menerima pesan dari instansi-instansi berikut:", - "reject": "Tolak", - "accept_desc": "Instansi ini hanya menerima pesan dari instansi-instansi berikut:", - "accept": "Terima", - "media_removal": "Penghapusan Media", - "media_removal_desc": "Instansi ini menghapus media dari postingan yang berasal dari instansi-instansi berikut:" - }, - "federation": "Federasi", - "mrf_policies": "Kebijakan MRF yang diaktifkan" + "settings": { + "app_name": "Nama aplikasi", + "attachmentRadius": "Lampiran", + "attachments": "Lampiran", + "avatar": "Avatar", + "avatarAltRadius": "Avatar (notifikasi)", + "avatarRadius": "Avatar", + "avatar_size_instruction": "Ukuran minimum gambar avatar yang disarankan adalah 150x150 piksel.", + "background": "Latar belakang", + "bio": "Bio", + "block_export": "Ekspor blokiran", + "block_export_button": "Ekspor blokiran Anda menjadi berkas csv", + "block_import": "Impor blokiran", + "block_import_error": "Terjadi kesalahan ketika mengimpor blokiran", + "blocks_imported": "Blokiran diimpor! Pemrosesannya mungkin memakan sedikit waktu.", + "blocks_tab": "Blokiran", + "bot": "Ini adalah akun bot", + "btnRadius": "Tombol", + "cBlue": "Biru (Balas, ikuti)", + "cGreen": "Hijau (Retweet)", + "cOrange": "Jingga (Favorit)", + "cRed": "Merah (Batal)", + "change_email": "Ubah surel", + "change_email_error": "Ada masalah ketika mengubah surel Anda.", + "change_password": "Ubah kata sandi", + "change_password_error": "Ada masalah ketika mengubah kata sandi Anda.", + "changed_email": "Surel berhasil diubah!", + "changed_password": "Kata sandi berhasil diubah!", + "chatMessageRadius": "Pesan obrolan", + "composing": "Menulis", + "confirm_new_password": "Konfirmasi kata sandi baru", + "current_password": "Kata sandi saat ini", + "data_import_export_tab": "Impor / ekspor data", + "delete_account": "Hapus akun", + "delete_account_description": "Hapus data Anda secara permanen dan menonaktifkan akun Anda.", + "delete_account_error": "Ada masalah ketika menghapus akun Anda. Jika ini terus terjadi harap hubungi adminstrator instansi Anda.", + "delete_account_instructions": "Ketik kata sandi Anda pada input di bawah untuk mengkonfirmasi penghapusan akun.", + "domain_mutes": "Domain", + "emoji_reactions_on_timeline": "Tampilkan reaksi emoji pada linimasa", + "enable_web_push_notifications": "Aktifkan notifikasi push web", + "enter_current_password_to_confirm": "Masukkan kata sandi Anda saat ini untuk mengkonfirmasi identitas Anda", + "filtering": "Penyaringan", + "follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut", + "fun": "Seru", + "general": "Umum", + "hide_followers_count_description": "Jangan tampilkan jumlah pengikut", + "hide_followers_description": "Jangan tampilkan siapa yang mengikuti saya", + "hide_follows_count_description": "Jangan tampilkan jumlah mengikuti", + "hide_follows_description": "Jangan tampilkan siapa yang saya ikuti", + "hide_muted_posts": "Sembunyikan postingan-postingan dari pengguna yang dibisukan", + "hide_post_stats": "Sembunyikan statistik postingan (contoh. jumlah favorit)", + "hide_shoutbox": "Sembunyikan kotak suara instansi", + "hide_user_stats": "Sembunyikan statistik pengguna (contoh. jumlah pengikut)", + "hide_wallpaper": "Sembunyikan latar belakang instansi", + "import_blocks_from_a_csv_file": "Impor blokiran dari berkas csv", + "instance_default": "(bawaan: {value})", + "instance_default_simple": "(bawaan)", + "interface": "Antarmuka", + "interfaceLanguage": "Bahasa antarmuka", + "invalid_theme_imported": "Berkas yang dipilih bukan sebuah tema yang didukung Pleroma. Tidak ada perbuahan yang dibuat pada tema Anda.", + "limited_availability": "Tidak tersedia di browser Anda", + "links": "Tautan", + "loop_video": "Ulang-ulang video", + "loop_video_silent_only": "Ulang-ulang video tanpa suara (seperti \"gif\" Mastodon)", + "max_thumbnails": "Jumlah thumbnail maksimum per postingan", + "mfa": { + "authentication_methods": "Metode otentikasi", + "confirm_and_enable": "Konfirmasi & aktifkan OTP", + "generate_new_recovery_codes": "Hasilkan kode pemulihan baru", + "otp": "OTP", + "recovery_codes": "Kode pemulihan.", + "recovery_codes_warning": "Tulis kode-kode nya atau simpan mereka di tempat yang aman - jika tidak Anda tidak akan melihat mereka lagi. Jika Anda tidak dapat mengakses aplikasi 2FA Anda dan kode pemulihan Anda hilang Anda tidak akan bisa mengakses akun Anda.", + "scan": { + "title": "Pindai" + }, + "setup_otp": "Siapkan OTP", + "title": "Otentikasi Dua-faktor", + "verify": { + "desc": "Untuk mengaktifkan otentikasi dua-faktor, masukkan kode dari aplikasi dua-faktor Anda:" + }, + "waiting_a_recovery_codes": "Menerima kode cadangan…", + "warning_of_generate_new_codes": "Ketika Anda menghasilkan kode pemulihan baru, kode lama Anda berhenti bekerja." + }, + "more_settings": "Lebih banyak pengaturan", + "mutes_and_blocks": "Bisuan dan Blokiran", + "name": "Nama", + "name_bio": "Nama & bio", + "new_email": "Surel baru", + "new_password": "Kata sandi baru", + "no_blocks": "Tidak ada yang diblokir", + "no_mutes": "Tidak ada yang dibisukan", + "notification_setting_privacy": "Privasi", + "notification_visibility": "Jenis notifikasi yang perlu ditampilkan", + "notification_visibility_emoji_reactions": "Reaksi", + "notification_visibility_follows": "Diikuti", + "notification_visibility_likes": "Favorit", + "notification_visibility_mentions": "Sebutan", + "notification_visibility_moves": "Pengguna Bermigrasi", + "notification_visibility_repeats": "Ulangan", + "notifications": "Notifikasi", + "oauth_tokens": "Token OAuth", + "pause_on_unfocused": "Jeda aliran ketika tab di dalam fokus", + "profile_background": "Latar belakang profil", + "profile_fields": { + "label": "Metadata profil", + "name": "Label", + "value": "Isi" + }, + "profile_tab": "Profil", + "reply_visibility_all": "Tampilkan semua balasan", + "reply_visibility_following": "Hanya tampilkan balasan yang ditujukan kepada saya atau orang yang saya ikuti", + "reply_visibility_following_short": "Tampilkan balasan ke orang yang saya ikuti", + "reply_visibility_self": "Hanya tampilkan balasan yang ditujukan kepada saya", + "save": "Simpan perubahan", + "saving_err": "Terjadi kesalahan ketika menyimpan pengaturan", + "saving_ok": "Pengaturan disimpan", + "search_user_to_block": "Cari siapa yang Anda ingin blokir", + "search_user_to_mute": "Cari siapa yang ingin Anda bisukan", + "security": "Keamanan", + "security_tab": "Keamanan", + "set_new_avatar": "Tetapkan avatar baru", + "set_new_profile_background": "Tetapkan latar belakang profil baru", + "settings": "Pengaturan", + "show_admin_badge": "Tampilkan lencana \"Admin\" di profil saya", + "show_moderator_badge": "Tampilkan lencana \"Moderator\" di profil saya", + "style": { + "advanced_colors": { + "_tab_label": "Lanjutan", + "alert_error": "Kesalahan", + "alert_neutral": "Neutral", + "alert_warning": "Peringatan", + "badge_notification": "Notifikasi", + "borders": "", + "buttons": "Tombol", + "disabled": "Dinonaktifkan", + "icons": "Ikon-ikon", + "panel_header": "Header panel", + "popover": "Tooltip, menu, popover", + "post": "Postingan/Bio pengguna", + "top_bar": "Bar atas", + "wallpaper": "Latar belakang" + }, + "common": { + "color": "Warna", + "contrast": { + "context": { + "18pt": "Untuk teks besar (18pt+)", + "text": "untuk teks" + } + } + }, + "common_colors": { + "_tab_label": "Umum", + "main": "Warna umum" + }, + "fonts": { + "_tab_label": "Font", + "components": { + "interface": "Antarmuka", + "post": "Teks postingan" + }, + "family": "Nama font", + "size": "Ukuran (dalam px)", + "weight": "Berat (ketebalan)" + }, + "preview": { + "button": "Tombol", + "checkbox": "Saya telah membaca sekilas syarat dan ketentuan", + "error": "Contoh kesalahan", + "faint_link": "manual berguna", + "fine_print": "Baca {0} kami untuk belajar sesuatu yang tak ada gunanya!", + "header": "Pratinjau", + "header_faint": "Ini baik-baik saja", + "input": "Baru saja mendarat di L.A.", + "link": "sebuah tautan yang kecil nan bagus" + }, + "shadows": { + "components": { + "panel": "Panel", + "panelHeader": "Header panel" + } + }, + "switcher": { + "help": { + "fe_upgraded": "Mesin tema PleromaFE diperbarui setelah pembaruan versi.", + "future_version_imported": "Berkas yang Anda impor dibuat pada versi FE yang lebih baru.", + "older_version_imported": "Berkas yang Anda impor dibuat pada versi FE yang lebih lama.", + "upgraded_from_v2": "PleromaFE telah diperbarui, tema dapat terlihat sedikit berbeda dari apa yang Anda ingat." + }, + "load_theme": "Muat tema", + "use_snapshot": "Versi lama", + "use_source": "Versi baru" + } + }, + "subject_line_behavior": "Salin subyek ketika membalas", + "subject_line_email": "Seperti surel: \"re: subyek\"", + "subject_line_mastodon": "Seperti mastodon: salin saja", + "subject_line_noop": "Jangan salin", + "text": "Teks", + "theme": "Tema", + "token": "Token", + "upload_a_photo": "Unggah foto", + "useStreamingApiWarning": "(Tidak disarankan, eksperimental, diketahui dapat melewati postingan-postingan)", + "use_one_click_nsfw": "Buka lampiran NSFW hanya dengan satu klik", + "user_settings": "Pengaturan Pengguna", + "valid_until": "Valid hingga", + "values": { + "false": "tidak", + "true": "ya" + }, + "version": { + "backend_version": "Versi backend", + "frontend_version": "Versi frontend", + "title": "Versi" + }, + "word_filter": "Penyaring kata" }, - "staff": "Staf" - }, - "time": { - "now": "baru saja", - "now_short": "sekarang", - "in_future": "dalam {0}", - "in_past": "{0} yang lalu", - "unit": { - "day": "{0} hari", - "days": "{0} hari", - "day_short": "{0}h", - "days_short": "{0}h", - "hour": "{0} jam", - "hours": "{0} jam", - "hour_short": "{0}j", - "hours_short": "{0}j", - - "minute": "{0} menit", - "minutes": "{0} menit", - "minute_short": "{0}m", - "minutes_short": "{0}m", - "month": "{0} bulan", - "months": "{0} bulan", - "month_short": "{0}b", - "months_short": "{0}b", - "second": "{0} detik", - "seconds": "{0} detik", - "second_short": "{0}d", - "seconds_short": "{0}d", - "week": "{0} pekan", - "weeks": "{0} pekan", - "week_short": "{0}p", - "weeks_short": "{0}p", - "year": "{0} tahun", - "years": "{0} tahun", - "year_short": "{0}t", - "years_short": "{0}t" + "status": { + "delete": "Hapus status", + "delete_confirm": "Apakah Anda benar-benar ingin menghapus status ini?", + "favorites": "Favorit", + "hide_content": "", + "mute_conversation": "Bisukan percakapan", + "nsfw": "NSFW", + "pin": "Sematkan di profil", + "pinned": "Disematkan", + "repeats": "Ulangan", + "replies_list": "Balasan:", + "reply_to": "Balas ke", + "show_content": "", + "status_deleted": "Postingan ini telah dihapus", + "status_unavailable": "Status tidak tersedia", + "thread_muted_and_words": ", memiliki kata:", + "unmute_conversation": "Berhenti membisikan percakapan", + "unpin": "Berhenti menyematkan dari profil" + }, + "time": { + "in_future": "dalam {0}", + "in_past": "{0} yang lalu", + "now": "baru saja", + "now_short": "sekarang", + "unit": { + "days": "{0} hari", + "days_short": "{0}h", + "hours": "{0} jam", + "hours_short": "{0}j", + "minutes": "{0} menit", + "minutes_short": "{0}m", + "months": "{0} bulan", + "months_short": "{0}b", + "seconds": "{0} detik", + "seconds_short": "{0}d", + "weeks": "{0} pekan", + "weeks_short": "{0}p", + "years": "{0} tahun", + "years_short": "{0}t" + } + }, + "timeline": { + "conversation": "Percakapan", + "error": "Terjadi kesalahan memuat linimasa: {0}", + "no_more_statuses": "Tidak ada status lagi", + "no_retweet_hint": "Postingan ditandai sebagai hanya-pengikut atau langsung dan tidak dapat diulang", + "no_statuses": "Tidak ada status", + "reload": "Muat ulang", + "repeated": "diulangi" + }, + "tool_tip": { + "add_reaction": "Tambahkan Reaksi", + "favorite": "Favorit", + "media_upload": "Unggah media", + "repeat": "Ulangi", + "reply": "Balas", + "user_settings": "Pengaturan Pengguna" + }, + "upload": { + "error": { + "base": "Pengunggahan gagal.", + "default": "Coba lagi nanti", + "file_too_big": "Berkas terlalu besar [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Pengunggahan gagal: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktifkan akun", + "deactivate_account": "Nonaktifkan akun", + "delete_account": "Hapus akun", + "delete_user": "Hapus pengguna", + "force_nsfw": "Tandai semua postingan sebagai NSFW", + "moderation": "Moderasi", + "strip_media": "Hapus media dari postingan-postingan" + }, + "block": "Blokir", + "block_progress": "Memblokir…", + "blocked": "Diblokir!", + "bot": "Bot", + "deny": "Tolak", + "edit_profile": "Sunting profil", + "favorites": "Favorit", + "follow": "Ikuti", + "follow_progress": "Meminta…", + "follow_sent": "Permintaan dikirim!", + "follow_unfollow": "Berhenti mengikuti", + "followees": "Mengikuti", + "followers": "Pengikut", + "following": "Diikuti!", + "follows_you": "Mengikuti Anda!", + "hidden": "Disembunyikan", + "hide_repeats": "Sembunyikan ulangan", + "its_you": "Ini Anda!", + "media": "Media", + "mention": "Sebut", + "message": "Kirimkan pesan", + "mute": "Bisukan", + "mute_progress": "Membisukan…", + "muted": "Dibisukan", + "per_day": "per hari", + "report": "Laporkan", + "show_repeats": "Tampilkan ulangan", + "statuses": "Status", + "unblock": "Berhenti memblokir", + "unmute": "Berhenti membisukan" + }, + "user_profile": { + "profile_does_not_exist": "Maaf, profil ini tidak ada.", + "profile_loading_error": "Maaf, terjadi kesalahan ketika memuat profil ini.", + "timeline_title": "Linimasa pengguna" + }, + "user_reporting": { + "add_comment_description": "Laporan ini akan dikirim ke moderator instansi Anda. Anda dapat menyediakan penjelasan mengapa Anda melaporkan akun ini di bawah:", + "additional_comments": "Komentar tambahan", + "forward_description": "Akun ini berada di server lain. Kirim salinan dari laporannya juga?", + "generic_error": "Sebuah kesalahan terjadi ketika memproses permintaan Anda.", + "submit": "Kirim", + "title": "Melaporkan {0}" + }, + "who_to_follow": { + "more": "Lebih banyak" } - }, - "timeline": { - "conversation": "Percakapan", - "error": "Terjadi kesalahan memuat linimasa: {0}", - "no_retweet_hint": "Postingan ditandai sebagai hanya-pengikut atau langsung dan tidak dapat diulang", - "repeated": "diulangi", - "reload": "Muat ulang", - "no_more_statuses": "Tidak ada status lagi", - "no_statuses": "Tidak ada status" - }, - "status": { - "favorites": "Favorit", - "repeats": "Ulangan", - "delete": "Hapus status", - "pin": "Sematkan di profil", - "unpin": "Berhenti menyematkan dari profil", - "pinned": "Disematkan", - "delete_confirm": "Apakah Anda benar-benar ingin menghapus status ini?", - "reply_to": "Balas ke", - "replies_list": "Balasan:", - "mute_conversation": "Bisukan percakapan", - "unmute_conversation": "Berhenti membisikan percakapan", - "status_unavailable": "Status tidak tersedia", - "thread_muted_and_words": ", memiliki kata:", - "hide_content": "", - "show_content": "", - "status_deleted": "Postingan ini telah dihapus", - "nsfw": "NSFW" - }, - "user_card": { - "block": "Blokir", - "blocked": "Diblokir!", - "deny": "Tolak", - "edit_profile": "Sunting profil", - "favorites": "Favorit", - "follow": "Ikuti", - "follow_sent": "Permintaan dikirim!", - "follow_progress": "Meminta…", - "mute": "Bisukan", - "muted": "Dibisukan", - "per_day": "per hari", - "report": "Laporkan", - "statuses": "Status", - "unblock": "Berhenti memblokir", - "block_progress": "Memblokir…", - "unmute": "Berhenti membisukan", - "mute_progress": "Membisukan…", - "hide_repeats": "Sembunyikan ulangan", - "show_repeats": "Tampilkan ulangan", - "bot": "Bot", - "admin_menu": { - "moderation": "Moderasi", - "activate_account": "Aktifkan akun", - "deactivate_account": "Nonaktifkan akun", - "delete_account": "Hapus akun", - "force_nsfw": "Tandai semua postingan sebagai NSFW", - "strip_media": "Hapus media dari postingan-postingan", - "delete_user": "Hapus pengguna" - }, - "follow_unfollow": "Berhenti mengikuti", - "followees": "Mengikuti", - "followers": "Pengikut", - "following": "Diikuti!", - "follows_you": "Mengikuti Anda!", - "hidden": "Disembunyikan", - "its_you": "Ini Anda!", - "media": "Media", - "mention": "Sebut", - "message": "Kirimkan pesan" - }, - "user_profile": { - "timeline_title": "Linimasa pengguna", - "profile_does_not_exist": "Maaf, profil ini tidak ada.", - "profile_loading_error": "Maaf, terjadi kesalahan ketika memuat profil ini." - }, - "user_reporting": { - "title": "Melaporkan {0}", - "add_comment_description": "Laporan ini akan dikirim ke moderator instansi Anda. Anda dapat menyediakan penjelasan mengapa Anda melaporkan akun ini di bawah:", - "additional_comments": "Komentar tambahan", - "forward_description": "Akun ini berada di server lain. Kirim salinan dari laporannya juga?", - "submit": "Kirim", - "generic_error": "Sebuah kesalahan terjadi ketika memproses permintaan Anda." - }, - "notifications": { - "favorited_you": "memfavoritkan status Anda", - "reacted_with": "bereaksi dengan {0}", - "no_more_notifications": "Tidak ada notifikasi lagi", - "repeated_you": "mengulangi status Anda", - "read": "Dibaca!", - "notifications": "Notifikasi", - "follow_request": "ingin mengikuti Anda", - "followed_you": "mengikuti Anda", - "error": "Terjadi kesalahan ketika memuat notifikasi: {0}", - "migrated_to": "bermigrasi ke", - "load_older": "Muat notifikasi yang lebih lama", - "broken_favorite": "Status tak diketahui, mencarinya…" - }, - "who_to_follow": { - "more": "Lebih banyak" - }, - "tool_tip": { - "media_upload": "Unggah media", - "repeat": "Ulangi", - "reply": "Balas", - "favorite": "Favorit", - "add_reaction": "Tambahkan Reaksi", - "user_settings": "Pengaturan Pengguna" - }, - "upload": { - "error": { - "base": "Pengunggahan gagal.", - "message": "Pengunggahan gagal: {0}", - "file_too_big": "Berkas terlalu besar [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Coba lagi nanti" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "Orang", - "hashtags": "Tagar", - "person_talking": "{count} orang berbicara", - "people_talking": "{count} orang berbicara", - "no_results": "Tidak ada hasil" - }, - "password_reset": { - "forgot_password": "Lupa kata sandi?", - "placeholder": "Surel atau nama pengguna Anda", - "return_home": "Kembali ke halaman beranda", - "too_many_requests": "Anda telah mencapai batas percobaan, coba lagi nanti.", - "instruction": "Masukkan surel atau nama pengguna Anda. Kami akan mengirimkan Anda tautan untuk mengatur ulang kata sandi.", - "password_reset": "Pengatur-ulangan kata sandi", - "password_reset_disabled": "Pengatur-ulangan kata sandi dinonaktifkan. Hubungi administrator instansi Anda.", - "password_reset_required": "Anda harus mengatur ulang kata sandi Anda untuk masuk.", - "password_reset_required_but_mailer_is_disabled": "Anda harus mengatur ulang kata sandi, tetapi pengatur-ulangan kata sandi dinonaktifkan. Silakan hubungi administrator instansi Anda." - }, - "chats": { - "you": "Anda:", - "message_user": "Kirim Pesan ke {nickname}", - "delete": "Hapus", - "chats": "Obrolan", - "new": "Obrolan Baru", - "empty_message_error": "Tidak dapat memposting pesan yang kosong", - "more": "Lebih banyak", - "delete_confirm": "Apakah Anda benar-benar ingin menghapus pesan ini?", - "error_loading_chat": "Sesuatu yang salah terjadi ketika memuat obrolan.", - "error_sending_message": "Sesuatu yang salah terjadi ketika mengirim pesan.", - "empty_chat_list_placeholder": "Anda belum memiliki obrolan. Buat sbeuah obrolan baru!" - }, - "file_type": { - "audio": "Audio", - "video": "Video", - "image": "Gambar", - "file": "Berkas" - }, - "registration": { - "bio_placeholder": "contoh.\nHai, aku Lain.\nAku seorang putri anime yang tinggal di pinggiran kota Jepang. Kamu mungkin mengenal aku dari Wired.", - "validations": { - "password_confirmation_required": "tidak boleh kosong", - "password_required": "tidak boleh kosong", - "email_required": "tidak boleh kosong", - "fullname_required": "tidak boleh kosong", - "username_required": "tidak boleh kosong" - }, - "register": "Daftar", - "fullname_placeholder": "contoh. Lain Iwakura", - "username_placeholder": "contoh. lain", - "new_captcha": "Klik gambarnya untuk mendapatkan captcha baru", - "captcha": "CAPTCHA", - "token": "Token undangan", - "password_confirm": "Konfirmasi kata sandi", - "email": "Surel", - "bio": "Bio", - "reason_placeholder": "Instansi ini menerima pendaftaran secara manual.\nBeritahu administrasinya mengapa Anda ingin mendaftar.", - "reason": "Alasan mendaftar", - "registration": "Pendaftaran" - }, - "post_status": { - "preview_empty": "Kosong", - "default": "Baru saja mendarat di L.A.", - "content_warning": "Subyek (opsional)", - "content_type": { - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML", - "text/plain": "Teks biasa" - }, - "media_description": "Keterangan media", - "attachments_sensitive": "Tandai lampiran sebagai sensitif", - "scope": { - "public": "Publik - posting ke linimasa publik", - "private": "Hanya-pengikut - posting hanya kepada pengikut", - "direct": "Langsung - posting hanya kepada pengguna yang disebut" - }, - "preview": "Pratinjau", - "post": "Posting", - "posting": "Memposting", - "direct_warning_to_first_only": "Postingan ini akan terlihat oleh pengguna yang disebutkan di awal pesan.", - "direct_warning_to_all": "Postingan ini akan terlihat oleh pengguna yang disebutkan.", - "scope_notice": { - "private": "Postingan ini akan terlihat hanya oleh pengikut Anda", - "public": "Postingan ini akan terlihat oleh siapa saja" - }, - "media_description_error": "Gagal memperbarui media, coba lagi", - "empty_status_error": "Tidak dapat memposting status kosong tanpa berkas", - "account_not_locked_warning_link": "terkunci", - "account_not_locked_warning": "Akun Anda tidak {0}. Siapapun dapat mengikuti Anda untuk melihat postingan hanya-pengikut Anda.", - "new_status": "Posting status baru" - }, - "general": { - "apply": "Terapkan", - "flash_fail": "Gagal memuat konten flash, lihat console untuk keterangan.", - "flash_security": "Harap ingat ini dapat menjadi berbahaya karena konten Flash masih termasuk arbitrary code.", - "flash_content": "Klik untuk menampilkan konten Flash menggunakan Ruffle (Eksperimental, mungkin tidak bekerja).", - "role": { - "moderator": "Moderator", - "admin": "Admin" - }, - "peek": "Intip", - "close": "Tutup", - "verify": "Verifikasi", - "confirm": "Konfirmasi", - "enable": "Aktifkan", - "disable": "Nonaktifkan", - "cancel": "Batal", - "show_less": "Tampilkan lebih sedikit", - "show_more": "Tampilkan lebih banyak", - "optional": "opsional", - "retry": "Coba lagi", - "error_retry": "Harap coba lagi", - "generic_error": "Terjadi kesalahan", - "loading": "Memuat…", - "more": "Lebih banyak", - "submit": "Kirim" - }, - "remote_user_resolver": { - "error": "Tidak ditemukan." - }, - "emoji": { - "load_all": "Memuat semua {emojiAmount} emoji", - "load_all_hint": "Memuat {saneAmount} emoji pertama, memuat semua emoji dapat menyebabkan masalah performa.", - "unicode": "Emoji unicode", - "add_emoji": "Sisipkan emoji", - "search_emoji": "Cari emoji", - "emoji": "Emoji", - "stickers": "Stiker", - "keep_open": "Tetap buka pemilih", - "custom": "Emoji kustom" - }, - "polls": { - "expired": "Japat berakhir {0} yang lalu", - "expires_in": "Japat berakhir dalam {0}", - "expiry": "Usia japat", - "type": "Jenis japat", - "vote": "Pilih", - "votes_count": "{count} suara | {count} suara", - "people_voted_count": "{count} orang memilih | {count} orang memilih", - "votes": "suara", - "option": "Opsi", - "add_option": "Tambahkan opsi", - "add_poll": "Tambahkan japat", - "not_enough_options": "Terlalu sedikit opsi yang unik pada japat" - }, - "nav": { - "preferences": "Preferensi", - "search": "Cari", - "user_search": "Pencarian Pengguna", - "home_timeline": "Linimasa beranda", - "timeline": "Linimasa", - "public_tl": "Linimasa publik", - "interactions": "Interaksi", - "mentions": "Sebutan", - "back": "Kembali", - "administration": "Administrasi", - "about": "Tentang", - "timelines": "Linimasa", - "chats": "Obrolan", - "dms": "Pesan langsung", - "friend_requests": "Ingin mengikuti" - }, - "media_modal": { - "next": "Selanjutnya", - "previous": "Sebelum" - }, - "login": { - "recovery_code": "Kode pemulihan", - "enter_recovery_code": "Masukkan kode pemulihan", - "authentication_code": "Kode otentikasi", - "hint": "Masuk untuk ikut berdiskusi", - "username": "Nama pengguna", - "register": "Daftar", - "placeholder": "contoh: lain", - "password": "Kata sandi", - "logout": "Keluar", - "description": "Masuk dengan OAuth", - "login": "Masuk", - "heading": { - "totp": "Otentikasi dua-faktor" - }, - "enter_two_factor_code": "Masukkan kode dua-faktor" - }, - "importer": { - "error": "Terjadi kesalahan ketika mnengimpor berkas ini.", - "success": "Berhasil mengimpor.", - "submit": "Kirim" - }, - "image_cropper": { - "cancel": "Batal", - "save_without_cropping": "Simpan tanpa memotong", - "save": "Simpan", - "crop_picture": "Potong gambar" - }, - "finder": { - "find_user": "Cari pengguna", - "error_fetching_user": "Terjadi kesalahan ketika memuat pengguna" - }, - "features_panel": { - "title": "Fitur-fitur", - "text_limit": "Batas teks", - "gopher": "Gopher", - "pleroma_chat_messages": "Pleroma Obrolan", - "chat": "Obrolan", - "upload_limit": "Batas unggahan" - }, - "exporter": { - "processing": "Memproses, Anda akan segera diminta untuk mengunduh berkas Anda", - "export": "Ekspor" - }, - "domain_mute_card": { - "unmute": "Berhenti membisukan", - "mute_progress": "Membisukan…", - "mute": "Bisukan", - "unmute_progress": "Memberhentikan pembisuan…" - }, - "display_date": { - "today": "Hari Ini" - }, - "selectable_list": { - "select_all": "Pilih semua" - }, - "interactions": { - "moves": "Pengguna yang bermigrasi", - "follows": "Pengikut baru", - "favs_repeats": "Ulangan dan favorit", - "load_older": "Muat interaksi yang lebih tua" - }, - "errors": { - "storage_unavailable": "Pleroma tidak dapat mengakses penyimpanan browser. Login Anda atau pengaturan lokal Anda tidak akan tersimpan dan masalah yang tidak terduga dapat terjadi. Coba mengaktifkan kuki." - }, - "shoutbox": { - "title": "Kotak Suara" - } -} +} \ No newline at end of file diff --git a/src/i18n/it.json b/src/i18n/it.json index 084477ba..3c1ec603 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -1,882 +1,851 @@ { - "general": { - "submit": "Invia", - "apply": "Applica", - "more": "Altro", - "generic_error": "Errore", - "optional": "facoltativo", - "show_more": "Mostra tutto", - "show_less": "Ripiega", - "dismiss": "Chiudi", - "cancel": "Annulla", - "disable": "Disabilita", - "enable": "Abilita", - "confirm": "Conferma", - "verify": "Verifica", - "peek": "Anteprima", - "close": "Chiudi", - "retry": "Riprova", - "error_retry": "Per favore, riprova", - "loading": "Carico…", - "role": { - "moderator": "Moderatore", - "admin": "Amministratore" - }, - "flash_fail": "Contenuto Flash non caricato, vedi console del browser.", - "flash_content": "Mostra contenuto Flash tramite Ruffle (funzione in prova).", - "flash_security": "Può essere pericoloso perché i contenuti in Flash sono eseguibili." - }, - "nav": { - "mentions": "Menzioni", - "public_tl": "Sequenza pubblica", - "timeline": "Sequenza personale", - "twkn": "Sequenza federale", - "chat": "Chat della stanza", - "friend_requests": "Vogliono seguirti", - "about": "Informazioni", - "administration": "Amministrazione", - "back": "Indietro", - "interactions": "Interazioni", - "dms": "Messaggi privati", - "user_search": "Ricerca utenti", - "search": "Ricerca", - "who_to_follow": "Chi seguire", - "preferences": "Preferenze", - "bookmarks": "Segnalibri", - "chats": "Conversazioni", - "timelines": "Sequenze", - "home_timeline": "Sequenza personale" - }, - "notifications": { - "followed_you": "ti segue", - "notifications": "Notifiche", - "read": "Letto!", - "broken_favorite": "Stato sconosciuto, lo sto cercando…", - "favorited_you": "ha gradito", - "load_older": "Carica notifiche precedenti", - "repeated_you": "ha condiviso il tuo messaggio", - "follow_request": "vuole seguirti", - "no_more_notifications": "Fine delle notifiche", - "migrated_to": "è migrato verso", - "reacted_with": "ha reagito con {0}", - "error": "Errore nel caricare le notifiche: {0}" - }, - "settings": { - "attachments": "Allegati", - "avatar": "Icona utente", - "bio": "Introduzione", - "current_avatar": "La tua icona attuale", - "current_profile_banner": "Il tuo stendardo attuale", - "filtering": "Filtri", - "filtering_explanation": "Tutti i messaggi contenenti queste parole saranno silenziati, una per riga", - "hide_attachments_in_convo": "Nascondi gli allegati presenti nelle conversazioni", - "hide_attachments_in_tl": "Nascondi gli allegati presenti nelle sequenze", - "name": "Nome", - "name_bio": "Nome ed introduzione", - "nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati", - "profile_background": "Sfondo del tuo profilo", - "profile_banner": "Gonfalone del tuo profilo", - "set_new_avatar": "Scegli una nuova icona", - "set_new_profile_background": "Scegli un nuovo sfondo", - "set_new_profile_banner": "Scegli un nuovo gonfalone", - "settings": "Impostazioni", - "theme": "Tema", - "user_settings": "Impostazioni Utente", - "attachmentRadius": "Allegati", - "avatarAltRadius": "Icone utente (Notifiche)", - "avatarRadius": "Icone utente", - "background": "Sfondo", - "btnRadius": "Pulsanti", - "cBlue": "Blu (rispondi, segui)", - "cGreen": "Verde (ripeti)", - "cOrange": "Arancione (gradisci)", - "cRed": "Rosso (annulla)", - "change_password": "Cambia password", - "change_password_error": "C'è stato un problema durante il cambiamento della password.", - "changed_password": "Password cambiata correttamente!", - "collapse_subject": "Ripiega messaggi con oggetto", - "confirm_new_password": "Conferma la nuova password", - "current_password": "La tua password attuale", - "data_import_export_tab": "Importa o esporta dati", - "default_vis": "Visibilità predefinita dei messaggi", - "delete_account": "Elimina profilo", - "delete_account_description": "Elimina definitivamente i tuoi dati e disattiva il tuo profilo.", - "delete_account_error": "C'è stato un problema durante l'eliminazione del tuo profilo. Se il problema persiste contatta l'amministratore della tua stanza.", - "delete_account_instructions": "Digita la tua password nel campo sottostante per eliminare il tuo profilo.", - "export_theme": "Salva impostazioni", - "follow_export": "Esporta la lista di chi segui", - "follow_export_button": "Esporta la lista di chi segui in un file CSV", - "follow_export_processing": "Sto elaborando, presto ti sarà chiesto di scaricare il tuo file", - "follow_import": "Importa la lista di chi segui", - "follow_import_error": "Errore nell'importazione della lista di chi segui", - "follows_imported": "Importazione riuscita! L'elaborazione richiederà un po' di tempo.", - "foreground": "Primo piano", - "general": "Generale", - "hide_post_stats": "Nascondi statistiche dei messaggi (es. il numero di preferenze)", - "hide_user_stats": "Nascondi statistiche dell'utente (es. il numero di seguaci)", - "import_followers_from_a_csv_file": "Importa una lista di chi segui da un file CSV", - "import_theme": "Carica impostazioni", - "inputRadius": "Campi di testo", - "instance_default": "(predefinito: {value})", - "interfaceLanguage": "Lingua dell'interfaccia", - "invalid_theme_imported": "Il file selezionato non è un tema supportato da Pleroma. Il tuo tema non è stato modificato.", - "limited_availability": "Non disponibile nel tuo browser", - "links": "Collegamenti", - "lock_account_description": "Vaglia manualmente i nuovi seguaci", - "loop_video": "Riproduci video in ciclo continuo", - "loop_video_silent_only": "Riproduci solo video muti in ciclo continuo (es. le \"gif\" di Mastodon)", - "new_password": "Nuova password", - "notification_visibility": "Tipi di notifiche da mostrare", - "notification_visibility_follows": "Nuovi seguaci", - "notification_visibility_likes": "Preferiti", - "notification_visibility_mentions": "Menzioni", - "notification_visibility_repeats": "Condivisioni", - "no_rich_text_description": "Togli la formattazione del testo da tutti i messaggi", - "oauth_tokens": "Token OAuth", - "token": "Token", - "refresh_token": "Aggiorna token", - "valid_until": "Valido fino a", - "revoke_token": "Revoca", - "panelRadius": "Pannelli", - "pause_on_unfocused": "Interrompi l'aggiornamento continuo mentre la scheda è in secondo piano", - "presets": "Valori predefiniti", - "profile_tab": "Profilo", - "radii_help": "Imposta il raggio degli angoli (in pixel)", - "replies_in_timeline": "Risposte nelle sequenze", - "reply_visibility_all": "Mostra tutte le risposte", - "reply_visibility_following": "Mostra solo le risposte rivolte a me o agli utenti che seguo", - "reply_visibility_self": "Mostra solo risposte rivolte a me", - "saving_err": "Errore nel salvataggio delle impostazioni", - "saving_ok": "Impostazioni salvate", - "security_tab": "Sicurezza", - "stop_gifs": "Riproduci GIF al passaggio del cursore", - "streaming": "Mostra automaticamente i nuovi messaggi quando sei in cima alla pagina", - "text": "Testo", - "theme_help": "Usa colori esadecimali (#rrggbb) per personalizzare il tuo schema di colori.", - "tooltipRadius": "Suggerimenti/avvisi", - "values": { - "false": "no", - "true": "sì" - }, - "avatar_size_instruction": "La taglia minima per l'icona personale è 150x150 pixel.", - "domain_mutes": "Domini", - "discoverable": "Permetti la scoperta di questo profilo a servizi di ricerca ed altro", - "composing": "Composizione", - "changed_email": "Email cambiata con successo!", - "change_email_error": "C'è stato un problema nel cambiare la tua email.", - "change_email": "Cambia email", - "blocks_tab": "Bloccati", - "blocks_imported": "Blocchi importati! Saranno elaborati a breve.", - "block_import_error": "Errore nell'importazione", - "block_import": "Importa blocchi", - "block_export_button": "Esporta i tuoi blocchi in un file CSV", - "block_export": "Esporta blocchi", - "allow_following_move": "Consenti l'iscrizione automatica ai profili traslocati", - "mfa": { - "verify": { - "desc": "Per abilitare l'autenticazione bifattoriale, inserisci il codice fornito dalla tua applicazione:" - }, - "scan": { - "secret_code": "Codice", - "desc": "Con la tua applicazione bifattoriale, acquisisci il QR o inserisci il codice:", - "title": "Acquisisci" - }, - "authentication_methods": "Metodi di accesso", - "recovery_codes_warning": "Metti i codici al sicuro, perché non potrai più visualizzarli. Se perderai l'accesso sia alla tua applicazione bifattoriale che ai codici di recupero non potrai più accedere al tuo profilo.", - "waiting_a_recovery_codes": "Ricevo codici di recupero…", - "recovery_codes": "Codici di recupero.", - "warning_of_generate_new_codes": "Alla generazione di nuovi codici di recupero, quelli vecchi saranno disattivati.", - "generate_new_recovery_codes": "Genera nuovi codici di recupero", - "title": "Accesso bifattoriale", - "confirm_and_enable": "Conferma ed abilita OTP", - "wait_pre_setup_otp": "preimposto OTP", - "setup_otp": "Imposta OTP", - "otp": "OTP" - }, - "enter_current_password_to_confirm": "Inserisci la tua password per identificarti", - "security": "Sicurezza", - "app_name": "Nome applicazione", - "style": { - "switcher": { - "help": { - "older_version_imported": "Il tema importato è stato creato per una versione precedente dell'interfaccia.", - "future_version_imported": "Il tema importato è stato creato per una versione più recente dell'interfaccia.", - "v2_imported": "Il tema importato è stato creato per una vecchia interfaccia. Non tutto potrebbe essere come inteso.", - "upgraded_from_v2": "L'interfaccia è stata aggiornata, il tema potrebbe essere diverso da come lo ricordi.", - "migration_snapshot_ok": "Ho caricato l'anteprima del tema. Puoi provare a caricarne i contenuti.", - "fe_downgraded": "L'interfaccia è stata portata ad una versione precedente.", - "fe_upgraded": "Lo schema dei temi è stato aggiornato insieme all'interfaccia.", - "snapshot_missing": "Il tema non è provvisto di anteprima, quindi potrebbe essere diverso da come appare.", - "snapshot_present": "Tutti i valori sono sostituiti dall'anteprima del tema. Puoi invece caricare i suoi contenuti.", - "snapshot_source_mismatch": "Conflitto di versione: probabilmente l'interfaccia è stata portata indietro e poi aggiornata di nuovo. Se hai modificato il tema con una vecchia versione usa il tema precedente, altrimenti puoi usare il nuovo.", - "migration_napshot_gone": "Anteprima del tema non trovata, non tutto potrebbe essere come ricordi." + "about": { + "mrf": { + "federation": "Federazione", + "keyword": { + "ftl_removal": "Rimozione dalla sequenza federale", + "is_replaced_by": "→", + "keyword_policies": "Regole per parole chiave", + "reject": "Rifiuta", + "replace": "Sostituisci" + }, + "mrf_policies": "Regole RM abilitate", + "mrf_policies_desc": "Le regole RM cambiano il comportamento federativo della stanza. Vigono le seguenti regole:", + "simple": { + "accept": "Accetta", + "accept_desc": "Questa stanza accetta messaggi solo dalle seguenti altre:", + "ftl_removal": "Rimozione dalla sequenza federale", + "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza federale:", + "media_nsfw": "Allegati oscurati d'ufficio", + "media_nsfw_desc": "Questa stanza oscura gli allegati dei messaggi provenienti da queste stanze:", + "media_removal": "Rimozione multimedia", + "media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:", + "quarantine": "Quarantena", + "quarantine_desc": "Questa stanza inoltrerà solo messaggi pubblici alle seguenti:", + "reject": "Rifiuta", + "reject_desc": "Questa stanza rifiuterà i messaggi provenienti dalle seguenti:", + "simple_policies": "Regole specifiche alla stanza" + } }, - "use_source": "Nuova versione", - "use_snapshot": "Versione precedente", - "keep_as_is": "Mantieni tal quale", - "load_theme": "Carica tema", - "clear_opacity": "Rimuovi opacità", - "clear_all": "Azzera tutto", - "reset": "Reimposta", - "save_load_hint": "Le opzioni \"mantieni\" conservano le impostazioni correnti quando selezioni o carichi un tema, e le salvano quando ne esporti uno. Quando nessuna casella è selezionata, tutte le impostazioni correnti saranno salvate nel tema.", - "keep_fonts": "Mantieni font", - "keep_roundness": "Mantieni vertici", - "keep_opacity": "Mantieni opacità", - "keep_shadows": "Mantieni ombre", - "keep_color": "Mantieni colori" - }, - "common": { - "opacity": "Opacità", - "color": "Colore", - "contrast": { - "context": { - "text": "per il testo", - "18pt": "per il testo oltre 17pt" - }, - "level": { - "bad": "non soddisfa le linee guida di alcun livello", - "aaa": "soddisfa le linee guida di livello AAA (ottimo)", - "aa": "soddisfa le linee guida di livello AA (sufficiente)" - }, - "hint": "Il rapporto di contrasto è {ratio}, e {level} {context}" + "staff": "Responsabili" + }, + "chats": { + "chats": "Conversazioni", + "delete": "Elimina", + "delete_confirm": "Vuoi veramente eliminare questo messaggio?", + "empty_chat_list_placeholder": "Non hai conversazioni. Contatta qualcuno!", + "empty_message_error": "Non puoi inviare messaggi vuoti", + "error_loading_chat": "Errore. La conversazione non è stata caricata.", + "error_sending_message": "Errore. Il messaggio non è stato inviato.", + "message_user": "Contatta {nickname}", + "more": "Altro", + "new": "Nuova conversazione", + "you": "Tu:" + }, + "display_date": { + "today": "Oggi" + }, + "domain_mute_card": { + "mute": "Silenzia", + "mute_progress": "Procedo…", + "unmute": "Ascolta", + "unmute_progress": "Procedo…" + }, + "emoji": { + "add_emoji": "Inserisci emoji", + "custom": "Emoji della stanza", + "emoji": "Emoji", + "keep_open": "Tieni aperto il menù", + "load_all": "Carico tutti i {emojiAmount} emoji", + "load_all_hint": "Primi {saneAmount} emoji caricati, caricarli tutti potrebbe causare rallentamenti.", + "search_emoji": "Cerca un emoji", + "stickers": "Adesivi", + "unicode": "Emoji Unicode" + }, + "errors": { + "storage_unavailable": "Pleroma non può accedere ai dati del tuo browser. Il tuo accesso o le tue impostazioni non saranno salvate e potresti incontrare strani errori. Prova ad abilitare i cookie." + }, + "exporter": { + "export": "Esporta", + "processing": "In elaborazione, il tuo file sarà scaricabile a breve" + }, + "features_panel": { + "media_proxy": "Proxy allegati", + "scope_options": "Opzioni visibilità", + "text_limit": "Lunghezza massima", + "title": "Caratteristiche", + "upload_limit": "Limite allegati", + "who_to_follow": "Chi seguire" + }, + "file_type": { + "audio": "Audio", + "file": "File", + "image": "Immagine", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Errore nel recupero dell'utente", + "find_user": "Cerca utente" + }, + "general": { + "apply": "Applica", + "cancel": "Annulla", + "close": "Chiudi", + "confirm": "Conferma", + "disable": "Disabilita", + "dismiss": "Chiudi", + "enable": "Abilita", + "error_retry": "Per favore, riprova", + "flash_content": "Mostra contenuto Flash tramite Ruffle (funzione in prova).", + "flash_fail": "Contenuto Flash non caricato, vedi console del browser.", + "flash_security": "Può essere pericoloso perché i contenuti in Flash sono eseguibili.", + "generic_error": "Errore", + "loading": "Carico…", + "more": "Altro", + "optional": "facoltativo", + "peek": "Anteprima", + "retry": "Riprova", + "role": { + "admin": "Amministratore", + "moderator": "Moderatore" + }, + "show_less": "Ripiega", + "show_more": "Mostra tutto", + "submit": "Invia", + "verify": "Verifica" + }, + "image_cropper": { + "cancel": "Annulla", + "crop_picture": "Ritaglia immagine", + "save": "Salva", + "save_without_cropping": "Salva senza ritagliare" + }, + "importer": { + "error": "L'importazione non è andata a buon fine.", + "submit": "Invia", + "success": "Importato." + }, + "interactions": { + "favs_repeats": "Condivisi e Graditi", + "follows": "Nuovi seguìti", + "load_older": "Carica interazioni precedenti", + "moves": "Utenti migrati" + }, + "login": { + "authentication_code": "Codice di autenticazione", + "description": "Accedi con OAuth", + "enter_recovery_code": "Inserisci un codice di recupero", + "enter_two_factor_code": "Inserisci un codice 2FA", + "heading": { + "recovery": "Recupero 2FA", + "totp": "Autenticazione 2FA" + }, + "hint": "Accedi per conversare", + "login": "Accedi", + "logout": "Disconnettiti", + "password": "Password", + "placeholder": "es. Lupo Lucio", + "recovery_code": "Codice di recupero", + "register": "Registrati", + "username": "Nome utente" + }, + "media_modal": { + "next": "Prossimo", + "previous": "Precedente" + }, + "nav": { + "about": "Informazioni", + "administration": "Amministrazione", + "back": "Indietro", + "bookmarks": "Segnalibri", + "chats": "Conversazioni", + "dms": "Messaggi privati", + "friend_requests": "Vogliono seguirti", + "home_timeline": "Sequenza personale", + "interactions": "Interazioni", + "mentions": "Menzioni", + "preferences": "Preferenze", + "public_tl": "Sequenza pubblica", + "search": "Ricerca", + "timeline": "Sequenza personale", + "timelines": "Sequenze", + "twkn": "Sequenza federale", + "user_search": "Ricerca utenti", + "who_to_follow": "Chi seguire" + }, + "notifications": { + "broken_favorite": "Stato sconosciuto, lo sto cercando…", + "error": "Errore nel caricare le notifiche: {0}", + "favorited_you": "ha gradito", + "follow_request": "vuole seguirti", + "followed_you": "ti segue", + "load_older": "Carica notifiche precedenti", + "migrated_to": "è migrato verso", + "no_more_notifications": "Fine delle notifiche", + "notifications": "Notifiche", + "reacted_with": "ha reagito con {0}", + "read": "Letto!", + "repeated_you": "ha condiviso il tuo messaggio" + }, + "password_reset": { + "check_email": "Controlla la tua posta elettronica.", + "forgot_password": "Password dimenticata?", + "instruction": "Inserisci il tuo indirizzo email o il tuo nome utente. Ti invieremo un collegamento per reimpostare la tua password.", + "password_reset": "Azzera password", + "password_reset_disabled": "Non puoi azzerare la tua password. Contatta il tuo amministratore.", + "password_reset_required": "Devi reimpostare la tua password per poter continuare.", + "password_reset_required_but_mailer_is_disabled": "Devi reimpostare la tua password, ma non puoi farlo. Contatta l'amministratore.", + "placeholder": "La tua email o nome utente", + "return_home": "Torna alla pagina principale", + "too_many_requests": "Hai raggiunto il numero massimo di tentativi, riprova più tardi." + }, + "polls": { + "add_option": "Aggiungi opzione", + "add_poll": "Sondaggio", + "expired": "Chiuso {0} fa", + "expires_in": "Chiude fra {0}", + "expiry": "Età", + "multiple_choices": "Scelta multipla", + "not_enough_options": "Aggiungi altre risposte", + "option": "Opzione", + "people_voted_count": "{count} votante | {count} votanti", + "single_choice": "Scelta singola", + "type": "Tipo di sondaggio", + "vote": "Vota", + "votes": "voti", + "votes_count": "{count} voto | {count} voti" + }, + "post_status": { + "account_not_locked_warning": "Il tuo profilo non è {0}. Chiunque può seguirti e vedere i tuoi messaggi per seguaci.", + "account_not_locked_warning_link": "protetto", + "attachments_sensitive": "Nascondi gli allegati", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Testo normale" + }, + "content_warning": "Oggetto (facoltativo)", + "default": "Sono appena atterrato a Città Laggiù.", + "direct_warning_to_all": "Questo messaggio sarà visibile a tutti i menzionati.", + "direct_warning_to_first_only": "Questo messaggio sarà visibile solo agli utenti menzionati in testa.", + "empty_status_error": "Aggiungi del testo o degli allegati", + "media_description": "Descrizione allegati", + "media_description_error": "Allegati non caricati, riprova", + "new_status": "Nuovo messaggio", + "post": "Pubblica", + "posting": "Sto pubblicando", + "preview": "Anteprima", + "preview_empty": "Vuoto", + "scope": { + "direct": "Diretto - Visibile solo agli utenti menzionati", + "private": "Solo per seguaci - Visibile solo dai tuoi seguaci", + "public": "Pubblico - Visibile sulla sequenza pubblica", + "unlisted": "Nascosto - Non visibile sulla sequenza pubblica" + }, + "scope_notice": { + "private": "Questo messaggio sarà visibile solo ai tuoi seguaci", + "public": "Questo messaggio sarà visibile a tutti", + "unlisted": "Questo messaggio non sarà visibile sulla sequenza locale né su quella pubblica" } - }, - "advanced_colors": { - "badge": "Sfondo medaglie", - "post": "Messaggi / Biografie", - "alert_neutral": "Neutro", - "alert_warning": "Attenzione", - "alert_error": "Errore", - "alert": "Sfondo degli avvertimenti", - "_tab_label": "Avanzate", - "tabs": "Etichette", - "disabled": "Disabilitato", - "selectedMenu": "Voce menù selezionata", - "selectedPost": "Messaggio selezionato", - "pressed": "Premuto", - "highlight": "Elementi in risalto", - "icons": "Icone", - "poll": "Grafico sondaggi", - "underlay": "Sottostante", - "faint_text": "Testo sbiadito", - "inputs": "Campi d'immissione", - "buttons": "Pulsanti", - "borders": "Bordi", - "top_bar": "Barra superiore", - "panel_header": "Titolo pannello", - "badge_notification": "Notifica", - "popover": "Suggerimenti, menù, sbalzi", - "toggled": "Scambiato", - "chat": { - "border": "Bordo", - "outgoing": "Inviati", - "incoming": "Ricevuti" + }, + "registration": { + "bio": "Introduzione", + "bio_placeholder": "es.\nCiao, sono Lupo Lucio.\nSono un lupo fantastico che vive nel Fantabosco. Forse mi hai visto alla Melevisione.", + "captcha": "CAPTCHA", + "email": "Email", + "fullname": "Nome visualizzato", + "fullname_placeholder": "es. Lupo Lucio", + "new_captcha": "Clicca il captcha per averne uno nuovo", + "password_confirm": "Conferma password", + "reason": "Motivo dell'iscrizione", + "reason_placeholder": "L'amministratore esamina ciascuna richiesta.\nFornisci il motivo della tua iscrizione.", + "register": "Registrati", + "registration": "Registrazione", + "token": "Codice d'invito", + "username_placeholder": "es. mister_wolf", + "validations": { + "email_required": "non può essere vuoto", + "fullname_required": "non può essere vuoto", + "password_confirmation_match": "dovrebbe essere uguale alla password", + "password_confirmation_required": "non può essere vuoto", + "password_required": "non può essere vuoto", + "username_required": "non può essere vuoto" + } + }, + "remote_user_resolver": { + "error": "Non trovato.", + "remote_user_resolver": "Cerca utenti remoti", + "searching_for": "Cerco" + }, + "search": { + "hashtags": "Etichette", + "no_results": "Nessun risultato", + "people": "Utenti", + "people_talking": "{count} partecipanti", + "person_talking": "{count} partecipante" + }, + "selectable_list": { + "select_all": "Seleziona tutto" + }, + "settings": { + "accent": "Accento", + "allow_following_move": "Consenti l'iscrizione automatica ai profili traslocati", + "always_show_post_button": "Non nascondere il pulsante di composizione", + "app_name": "Nome applicazione", + "attachmentRadius": "Allegati", + "attachments": "Allegati", + "autohide_floating_post_button": "Nascondi automaticamente il pulsante di composizione (mobile)", + "avatar": "Icona utente", + "avatarAltRadius": "Icone utente (Notifiche)", + "avatarRadius": "Icone utente", + "avatar_size_instruction": "La taglia minima per l'icona personale è 150x150 pixel.", + "background": "Sfondo", + "bio": "Introduzione", + "block_export": "Esporta blocchi", + "block_export_button": "Esporta i tuoi blocchi in un file CSV", + "block_import": "Importa blocchi", + "block_import_error": "Errore nell'importazione", + "blocks_imported": "Blocchi importati! Saranno elaborati a breve.", + "blocks_tab": "Bloccati", + "bot": "Questo è un robot", + "btnRadius": "Pulsanti", + "cBlue": "Blu (rispondi, segui)", + "cGreen": "Verde (ripeti)", + "cOrange": "Arancione (gradisci)", + "cRed": "Rosso (annulla)", + "change_email": "Cambia email", + "change_email_error": "C'è stato un problema nel cambiare la tua email.", + "change_password": "Cambia password", + "change_password_error": "C'è stato un problema durante il cambiamento della password.", + "changed_email": "Email cambiata con successo!", + "changed_password": "Password cambiata correttamente!", + "chatMessageRadius": "Messaggi istantanei", + "checkboxRadius": "Caselle di selezione", + "collapse_subject": "Ripiega messaggi con oggetto", + "composing": "Composizione", + "confirm_new_password": "Conferma la nuova password", + "current_avatar": "La tua icona attuale", + "current_password": "La tua password attuale", + "data_import_export_tab": "Importa o esporta dati", + "default_vis": "Visibilità predefinita dei messaggi", + "delete_account": "Elimina profilo", + "delete_account_description": "Elimina definitivamente i tuoi dati e disattiva il tuo profilo.", + "delete_account_error": "C'è stato un problema durante l'eliminazione del tuo profilo. Se il problema persiste contatta l'amministratore della tua stanza.", + "delete_account_instructions": "Digita la tua password nel campo sottostante per eliminare il tuo profilo.", + "discoverable": "Permetti la scoperta di questo profilo a servizi di ricerca ed altro", + "domain_mutes": "Domini", + "emoji_reactions_on_timeline": "Mostra reazioni nelle sequenze", + "enable_web_push_notifications": "Abilita notifiche web push", + "enter_current_password_to_confirm": "Inserisci la tua password per identificarti", + "export_theme": "Salva impostazioni", + "file_export_import": { + "backup_restore": "Archiviazione impostazioni", + "backup_settings": "Archivia impostazioni localmente", + "backup_settings_theme": "Archivia impostazioni e tema localmente", + "errors": { + "file_slightly_new": "Versione minore diversa, qualcosa potrebbe non combaciare.", + "file_too_new": "Versione troppo recente: {fileMajor}. Questa versione dell'interfaccia ({feMajor}) non supporta il file.", + "file_too_old": "Versione troppo vecchia: {fileMajor}. Questa versione dell'interfaccia ({feMajor}) non supporta il file.", + "invalid_file": "Il file selezionato non è un archivio supportato. Nessuna modifica è stata apportata." + }, + "restore_settings": "Carica impostazioni sul server" }, - "wallpaper": "Sfondo" - }, - "common_colors": { - "rgbo": "Icone, accenti, medaglie", - "foreground_hint": "Seleziona l'etichetta \"Avanzate\" per controlli più fini", - "main": "Colori comuni", - "_tab_label": "Comuni" - }, - "shadows": { - "inset": "Includi", - "spread": "Spandi", - "blur": "Sfoca", - "shadow_id": "Ombra numero {value}", - "override": "Sostituisci", - "component": "Componente", - "_tab_label": "Luci ed ombre", - "components": { - "avatarStatus": "Icona utente (vista messaggio)", - "avatar": "Icona utente (vista profilo)", - "topBar": "Barra superiore", - "panelHeader": "Intestazione pannello", - "panel": "Pannello", - "input": "Campo d'immissione", - "buttonPressedHover": "Pulsante (puntato e premuto)", - "buttonPressed": "Pulsante (premuto)", - "buttonHover": "Pulsante (puntato)", - "button": "Pulsante", - "popup": "Sbalzi e suggerimenti" + "filtering": "Filtri", + "filtering_explanation": "Tutti i messaggi contenenti queste parole saranno silenziati, una per riga", + "follow_export": "Esporta la lista di chi segui", + "follow_export_button": "Esporta la lista di chi segui in un file CSV", + "follow_import": "Importa la lista di chi segui", + "follow_import_error": "Errore nell'importazione della lista di chi segui", + "follows_imported": "Importazione riuscita! L'elaborazione richiederà un po' di tempo.", + "foreground": "Primo piano", + "fun": "Divertimento", + "general": "Generale", + "greentext": "Frecce da meme", + "hide_all_muted_posts": "Nascondi messaggi silenziati", + "hide_attachments_in_convo": "Nascondi gli allegati presenti nelle conversazioni", + "hide_attachments_in_tl": "Nascondi gli allegati presenti nelle sequenze", + "hide_filtered_statuses": "Nascondi messaggi filtrati", + "hide_followers_count_description": "Non mostrare quanti seguaci ho", + "hide_followers_description": "Non mostrare i miei seguaci", + "hide_follows_count_description": "Non mostrare quanti utenti seguo", + "hide_follows_description": "Non mostrare chi seguo", + "hide_isp": "Nascondi pannello della stanza", + "hide_media_previews": "Nascondi anteprime", + "hide_muted_posts": "Nascondi messaggi degli utenti silenziati", + "hide_post_stats": "Nascondi statistiche dei messaggi (es. il numero di preferenze)", + "hide_shoutbox": "Nascondi muro dei graffiti", + "hide_user_stats": "Nascondi statistiche dell'utente (es. il numero di seguaci)", + "hide_wallpaper": "Nascondi sfondo della stanza", + "import_blocks_from_a_csv_file": "Importa blocchi da un file CSV", + "import_followers_from_a_csv_file": "Importa una lista di chi segui da un file CSV", + "import_mutes_from_a_csv_file": "Importa silenziati da un file CSV", + "import_theme": "Carica impostazioni", + "inputRadius": "Campi di testo", + "instance_default": "(predefinito: {value})", + "instance_default_simple": "(predefinito)", + "interface": "Interfaccia", + "interfaceLanguage": "Lingua dell'interfaccia", + "invalid_theme_imported": "Il file selezionato non è un tema supportato da Pleroma. Il tuo tema non è stato modificato.", + "limited_availability": "Non disponibile nel tuo browser", + "links": "Collegamenti", + "lock_account_description": "Vaglia manualmente i nuovi seguaci", + "loop_video": "Riproduci video in ciclo continuo", + "loop_video_silent_only": "Riproduci solo video muti in ciclo continuo (es. le \"gif\" di Mastodon)", + "max_thumbnails": "Numero massimo di anteprime per messaggio", + "mfa": { + "authentication_methods": "Metodi di accesso", + "confirm_and_enable": "Conferma ed abilita OTP", + "generate_new_recovery_codes": "Genera nuovi codici di recupero", + "otp": "OTP", + "recovery_codes": "Codici di recupero.", + "recovery_codes_warning": "Metti i codici al sicuro, perché non potrai più visualizzarli. Se perderai l'accesso sia alla tua applicazione bifattoriale che ai codici di recupero non potrai più accedere al tuo profilo.", + "scan": { + "desc": "Con la tua applicazione bifattoriale, acquisisci il QR o inserisci il codice:", + "secret_code": "Codice", + "title": "Acquisisci" + }, + "setup_otp": "Imposta OTP", + "title": "Accesso bifattoriale", + "verify": { + "desc": "Per abilitare l'autenticazione bifattoriale, inserisci il codice fornito dalla tua applicazione:" + }, + "wait_pre_setup_otp": "preimposto OTP", + "waiting_a_recovery_codes": "Ricevo codici di recupero…", + "warning_of_generate_new_codes": "Alla generazione di nuovi codici di recupero, quelli vecchi saranno disattivati." }, - "filter_hint": { - "inset_classic": "Le ombre incluse usano {0}", - "spread_zero": "Lo spandimento maggiore di zero si azzera sulle ombre", - "avatar_inset": "Tieni presente che combinare ombre (sia incluse che non) sulle icone utente potrebbe dare risultati strani con quelle trasparenti.", - "drop_shadow_syntax": "{0} non supporta il parametro {1} né la keyword {2}.", - "always_drop_shadow": "Attenzione: quest'ombra usa sempre {0} se il tuo browser lo supporta." + "minimal_scopes_mode": "Riduci opzioni di visibilità", + "more_settings": "Altre impostazioni", + "mute_export": "Esporta silenziati", + "mute_export_button": "Esporta i silenziati in un file CSV", + "mute_import": "Carica silenziati", + "mute_import_error": "Errore nell'importazione", + "mutes_and_blocks": "Silenziati e bloccati", + "mutes_imported": "Silenziati importati! Elaborazione in corso.", + "mutes_tab": "Silenziati", + "name": "Nome", + "name_bio": "Nome ed introduzione", + "new_email": "Nuova email", + "new_password": "Nuova password", + "no_blocks": "Nessun utente bloccato", + "no_mutes": "Nessun utente silenziato", + "no_rich_text_description": "Togli la formattazione del testo da tutti i messaggi", + "notification_blocks": "Bloccando un utente non riceverai più le sue notifiche né lo seguirai più.", + "notification_mutes": "Per non ricevere notifiche da uno specifico utente, silenzialo.", + "notification_setting_block_from_strangers": "Blocca notifiche da utenti che non segui", + "notification_setting_filters": "Filtri", + "notification_setting_hide_notification_contents": "Nascondi mittente e contenuti delle notifiche push", + "notification_setting_privacy": "Privacy", + "notification_visibility": "Tipi di notifiche da mostrare", + "notification_visibility_emoji_reactions": "Reazioni", + "notification_visibility_follows": "Nuovi seguaci", + "notification_visibility_likes": "Preferiti", + "notification_visibility_mentions": "Menzioni", + "notification_visibility_moves": "Migrazioni utenti", + "notification_visibility_repeats": "Condivisioni", + "notifications": "Notifiche", + "nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati", + "oauth_tokens": "Token OAuth", + "pad_emoji": "Affianca spazi agli emoji inseriti tramite selettore", + "panelRadius": "Pannelli", + "pause_on_unfocused": "Interrompi l'aggiornamento continuo mentre la scheda è in secondo piano", + "play_videos_in_modal": "Riproduci video in un riquadro a sbalzo", + "post_status_content_type": "Tipo di contenuto dei messaggi", + "preload_images": "Precarica immagini", + "presets": "Valori predefiniti", + "profile_background": "Sfondo del tuo profilo", + "profile_banner": "Gonfalone del tuo profilo", + "profile_fields": { + "add_field": "Aggiungi campo", + "label": "Metadati profilo", + "name": "Descrizione", + "value": "Contenuto" }, - "hintV3": "Per le ombre puoi anche usare la sintassi {0} per sfruttare il secondo colore." - }, - "radii": { - "_tab_label": "Raggio" - }, - "fonts": { - "_tab_label": "Font", - "custom": "Personalizzato", - "weight": "Grassettatura", - "size": "Dimensione in pixel", - "family": "Nome font", - "components": { - "postCode": "Font a spaziatura fissa incluso in un messaggio", - "post": "Testo del messaggio", - "input": "Campi d'immissione", - "interface": "Interfaccia" + "profile_tab": "Profilo", + "radii_help": "Imposta il raggio degli angoli (in pixel)", + "refresh_token": "Aggiorna token", + "replies_in_timeline": "Risposte nelle sequenze", + "reply_visibility_all": "Mostra tutte le risposte", + "reply_visibility_following": "Mostra solo le risposte rivolte a me o agli utenti che seguo", + "reply_visibility_following_short": "Vedi risposte a messaggi di altri", + "reply_visibility_self": "Mostra solo risposte rivolte a me", + "reply_visibility_self_short": "Vedi solo risposte a te", + "reset_avatar": "Azzera icona", + "reset_avatar_confirm": "Vuoi veramente azzerare l'icona?", + "reset_background_confirm": "Vuoi veramente azzerare lo sfondo?", + "reset_banner_confirm": "Vuoi veramente azzerare il gonfalone?", + "reset_profile_background": "Azzera sfondo", + "reset_profile_banner": "Azzera gonfalone", + "revoke_token": "Revoca", + "right_sidebar": "Mostra barra laterale a destra", + "save": "Salva modifiche", + "saving_err": "Errore nel salvataggio delle impostazioni", + "saving_ok": "Impostazioni salvate", + "scope_copy": "Risposte ereditano la visibilità (messaggi privati lo fanno sempre)", + "search_user_to_block": "Cerca utente da bloccare", + "search_user_to_mute": "Cerca utente da silenziare", + "security": "Sicurezza", + "security_tab": "Sicurezza", + "sensitive_by_default": "Tutti i miei messaggi sono scabrosi", + "set_new_avatar": "Scegli una nuova icona", + "set_new_profile_background": "Scegli un nuovo sfondo", + "set_new_profile_banner": "Scegli un nuovo gonfalone", + "setting_changed": "Valore personalizzato", + "settings": "Impostazioni", + "show_admin_badge": "Mostra l'insegna di amministratore sul mio profilo", + "show_moderator_badge": "Mostra l'insegna di moderatore sul mio profilo", + "stop_gifs": "Riproduci GIF al passaggio del cursore", + "streaming": "Mostra automaticamente i nuovi messaggi quando sei in cima alla pagina", + "style": { + "advanced_colors": { + "_tab_label": "Avanzate", + "alert": "Sfondo degli avvertimenti", + "alert_error": "Errore", + "alert_neutral": "Neutro", + "alert_warning": "Attenzione", + "badge": "Sfondo medaglie", + "badge_notification": "Notifica", + "borders": "Bordi", + "buttons": "Pulsanti", + "chat": { + "border": "Bordo", + "incoming": "Ricevuti", + "outgoing": "Inviati" + }, + "disabled": "Disabilitato", + "faint_text": "Testo sbiadito", + "highlight": "Elementi in risalto", + "icons": "Icone", + "inputs": "Campi d'immissione", + "panel_header": "Titolo pannello", + "poll": "Grafico sondaggi", + "popover": "Suggerimenti, menù, sbalzi", + "post": "Messaggi / Biografie", + "pressed": "Premuto", + "selectedMenu": "Voce menù selezionata", + "selectedPost": "Messaggio selezionato", + "tabs": "Etichette", + "toggled": "Scambiato", + "top_bar": "Barra superiore", + "underlay": "Sottostante", + "wallpaper": "Sfondo" + }, + "common": { + "color": "Colore", + "contrast": { + "context": { + "18pt": "per il testo oltre 17pt", + "text": "per il testo" + }, + "hint": "Il rapporto di contrasto è {ratio}, e {level} {context}", + "level": { + "aa": "soddisfa le linee guida di livello AA (sufficiente)", + "aaa": "soddisfa le linee guida di livello AAA (ottimo)", + "bad": "non soddisfa le linee guida di alcun livello" + } + }, + "opacity": "Opacità" + }, + "common_colors": { + "_tab_label": "Comuni", + "foreground_hint": "Seleziona l'etichetta \"Avanzate\" per controlli più fini", + "main": "Colori comuni", + "rgbo": "Icone, accenti, medaglie" + }, + "fonts": { + "_tab_label": "Font", + "components": { + "input": "Campi d'immissione", + "interface": "Interfaccia", + "post": "Testo del messaggio", + "postCode": "Font a spaziatura fissa incluso in un messaggio" + }, + "custom": "Personalizzato", + "family": "Nome font", + "help": "Seleziona il font da usare per gli elementi dell'interfaccia. Se scegli \"personalizzato\" devi inserire il suo nome di sistema.", + "size": "Dimensione in pixel", + "weight": "Grassettatura" + }, + "preview": { + "button": "Pulsante", + "checkbox": "Ho dato uno sguardo a termini e condizioni", + "content": "Contenuto", + "error": "Errore d'esempio", + "faint_link": "utilissimo manuale", + "fine_print": "Leggi il nostro {0} per imparare un bel niente!", + "header": "Anteprima", + "header_faint": "Tutto bene", + "input": "Sono appena atterrato a Fiumicino.", + "link": "un bel collegamentino", + "mono": "contenuto", + "text": "Altro {0} e {1}" + }, + "radii": { + "_tab_label": "Raggio" + }, + "shadows": { + "_tab_label": "Luci ed ombre", + "blur": "Sfoca", + "component": "Componente", + "components": { + "avatar": "Icona utente (vista profilo)", + "avatarStatus": "Icona utente (vista messaggio)", + "button": "Pulsante", + "buttonHover": "Pulsante (puntato)", + "buttonPressed": "Pulsante (premuto)", + "buttonPressedHover": "Pulsante (puntato e premuto)", + "input": "Campo d'immissione", + "panel": "Pannello", + "panelHeader": "Intestazione pannello", + "popup": "Sbalzi e suggerimenti", + "topBar": "Barra superiore" + }, + "filter_hint": { + "always_drop_shadow": "Attenzione: quest'ombra usa sempre {0} se il tuo browser lo supporta.", + "avatar_inset": "Tieni presente che combinare ombre (sia incluse che non) sulle icone utente potrebbe dare risultati strani con quelle trasparenti.", + "drop_shadow_syntax": "{0} non supporta il parametro {1} né la keyword {2}.", + "inset_classic": "Le ombre incluse usano {0}", + "spread_zero": "Lo spandimento maggiore di zero si azzera sulle ombre" + }, + "hintV3": "Per le ombre puoi anche usare la sintassi {0} per sfruttare il secondo colore.", + "inset": "Includi", + "override": "Sostituisci", + "shadow_id": "Ombra numero {value}", + "spread": "Spandi" + }, + "switcher": { + "clear_all": "Azzera tutto", + "clear_opacity": "Rimuovi opacità", + "help": { + "fe_downgraded": "L'interfaccia è stata portata ad una versione precedente.", + "fe_upgraded": "Lo schema dei temi è stato aggiornato insieme all'interfaccia.", + "future_version_imported": "Il tema importato è stato creato per una versione più recente dell'interfaccia.", + "migration_napshot_gone": "Anteprima del tema non trovata, non tutto potrebbe essere come ricordi.", + "migration_snapshot_ok": "Ho caricato l'anteprima del tema. Puoi provare a caricarne i contenuti.", + "older_version_imported": "Il tema importato è stato creato per una versione precedente dell'interfaccia.", + "snapshot_missing": "Il tema non è provvisto di anteprima, quindi potrebbe essere diverso da come appare.", + "snapshot_present": "Tutti i valori sono sostituiti dall'anteprima del tema. Puoi invece caricare i suoi contenuti.", + "snapshot_source_mismatch": "Conflitto di versione: probabilmente l'interfaccia è stata portata indietro e poi aggiornata di nuovo. Se hai modificato il tema con una vecchia versione usa il tema precedente, altrimenti puoi usare il nuovo.", + "upgraded_from_v2": "L'interfaccia è stata aggiornata, il tema potrebbe essere diverso da come lo ricordi.", + "v2_imported": "Il tema importato è stato creato per una vecchia interfaccia. Non tutto potrebbe essere come inteso." + }, + "keep_as_is": "Mantieni tal quale", + "keep_color": "Mantieni colori", + "keep_fonts": "Mantieni font", + "keep_opacity": "Mantieni opacità", + "keep_roundness": "Mantieni vertici", + "keep_shadows": "Mantieni ombre", + "load_theme": "Carica tema", + "reset": "Reimposta", + "save_load_hint": "Le opzioni \"mantieni\" conservano le impostazioni correnti quando selezioni o carichi un tema, e le salvano quando ne esporti uno. Quando nessuna casella è selezionata, tutte le impostazioni correnti saranno salvate nel tema.", + "use_snapshot": "Versione precedente", + "use_source": "Nuova versione" + } }, - "help": "Seleziona il font da usare per gli elementi dell'interfaccia. Se scegli \"personalizzato\" devi inserire il suo nome di sistema." - }, - "preview": { - "link": "un bel collegamentino", - "checkbox": "Ho dato uno sguardo a termini e condizioni", - "header_faint": "Tutto bene", - "fine_print": "Leggi il nostro {0} per imparare un bel niente!", - "faint_link": "utilissimo manuale", - "input": "Sono appena atterrato a Fiumicino.", - "mono": "contenuto", - "text": "Altro {0} e {1}", - "content": "Contenuto", - "button": "Pulsante", - "error": "Errore d'esempio", - "header": "Anteprima" - } + "subject_input_always_show": "Mostra sempre il campo Oggetto", + "subject_line_behavior": "Copia oggetto quando rispondi", + "subject_line_email": "Come nelle email: \"re: oggetto\"", + "subject_line_mastodon": "Come in Mastodon: copia tal quale", + "subject_line_noop": "Non copiare", + "text": "Testo", + "theme": "Tema", + "theme_help": "Usa colori esadecimali (#rrggbb) per personalizzare il tuo schema di colori.", + "theme_help_v2_1": "Puoi anche forzare colore ed opacità di alcuni elementi selezionando la casella. Usa il pulsante \"Azzera\" per azzerare tutte le forzature.", + "theme_help_v2_2": "Le icone vicino alcuni elementi sono indicatori del contrasto fra testo e sfondo, passaci sopra col puntatore per ulteriori informazioni. Se usani trasparenze, questi indicatori mostrano il peggior caso possibile.", + "token": "Token", + "tooltipRadius": "Suggerimenti/avvisi", + "type_domains_to_mute": "Cerca domini da silenziare", + "upload_a_photo": "Carica un'immagine", + "useStreamingApi": "Ricevi messaggi e notifiche in tempo reale", + "useStreamingApiWarning": "(Sconsigliato, sperimentale, può saltare messaggi)", + "use_contain_fit": "Non ritagliare le anteprime degli allegati", + "use_one_click_nsfw": "Apri media offuscati con un solo click", + "user_mutes": "Utenti", + "user_settings": "Impostazioni Utente", + "valid_until": "Valido fino a", + "values": { + "false": "no", + "true": "sì" + }, + "version": { + "backend_version": "Versione backend", + "frontend_version": "Versione interfaccia", + "title": "Versione" + }, + "virtual_scrolling": "Velocizza l'elaborazione delle sequenze", + "word_filter": "Parole filtrate" }, - "enable_web_push_notifications": "Abilita notifiche web push", - "fun": "Divertimento", - "notification_mutes": "Per non ricevere notifiche da uno specifico utente, silenzialo.", - "notification_setting_privacy_option": "Nascondi mittente e contenuti delle notifiche push", - "notification_setting_privacy": "Privacy", - "notification_setting_filters": "Filtri", - "notifications": "Notifiche", - "greentext": "Frecce da meme", - "upload_a_photo": "Carica un'immagine", - "type_domains_to_mute": "Cerca domini da silenziare", - "theme_help_v2_2": "Le icone vicino alcuni elementi sono indicatori del contrasto fra testo e sfondo, passaci sopra col puntatore per ulteriori informazioni. Se usani trasparenze, questi indicatori mostrano il peggior caso possibile.", - "theme_help_v2_1": "Puoi anche forzare colore ed opacità di alcuni elementi selezionando la casella. Usa il pulsante \"Azzera\" per azzerare tutte le forzature.", - "useStreamingApiWarning": "(Sconsigliato, sperimentale, può saltare messaggi)", - "useStreamingApi": "Ricevi messaggi e notifiche in tempo reale", - "user_mutes": "Utenti", - "post_status_content_type": "Tipo di contenuto dei messaggi", - "subject_line_noop": "Non copiare", - "subject_line_mastodon": "Come in Mastodon: copia tal quale", - "subject_line_email": "Come nelle email: \"re: oggetto\"", - "subject_line_behavior": "Copia oggetto quando rispondi", - "subject_input_always_show": "Mostra sempre il campo Oggetto", - "minimal_scopes_mode": "Riduci opzioni di visibilità", - "scope_copy": "Risposte ereditano la visibilità (messaggi privati lo fanno sempre)", - "search_user_to_mute": "Cerca utente da silenziare", - "search_user_to_block": "Cerca utente da bloccare", - "autohide_floating_post_button": "Nascondi automaticamente il pulsante di composizione (mobile)", - "show_moderator_badge": "Mostra l'insegna di moderatore sul mio profilo", - "show_admin_badge": "Mostra l'insegna di amministratore sul mio profilo", - "hide_followers_count_description": "Non mostrare quanti seguaci ho", - "hide_follows_count_description": "Non mostrare quanti utenti seguo", - "hide_followers_description": "Non mostrare i miei seguaci", - "hide_follows_description": "Non mostrare chi seguo", - "no_mutes": "Nessun utente silenziato", - "no_blocks": "Nessun utente bloccato", - "notification_visibility_emoji_reactions": "Reazioni", - "notification_visibility_moves": "Migrazioni utenti", - "new_email": "Nuova email", - "use_contain_fit": "Non ritagliare le anteprime degli allegati", - "play_videos_in_modal": "Riproduci video in un riquadro a sbalzo", - "mutes_tab": "Silenziati", - "interface": "Interfaccia", - "instance_default_simple": "(predefinito)", - "checkboxRadius": "Caselle di selezione", - "import_blocks_from_a_csv_file": "Importa blocchi da un file CSV", - "hide_filtered_statuses": "Nascondi messaggi filtrati", - "use_one_click_nsfw": "Apri media offuscati con un solo click", - "preload_images": "Precarica immagini", - "hide_isp": "Nascondi pannello della stanza", - "max_thumbnails": "Numero massimo di anteprime per messaggio", - "hide_muted_posts": "Nascondi messaggi degli utenti silenziati", - "accent": "Accento", - "emoji_reactions_on_timeline": "Mostra reazioni nelle sequenze", - "pad_emoji": "Affianca spazi agli emoji inseriti tramite selettore", - "notification_blocks": "Bloccando un utente non riceverai più le sue notifiche né lo seguirai più.", - "mutes_and_blocks": "Silenziati e bloccati", - "profile_fields": { - "value": "Contenuto", - "name": "Descrizione", - "add_field": "Aggiungi campo", - "label": "Metadati profilo" + "status": { + "bookmark": "Aggiungi segnalibro", + "copy_link": "Copia collegamento", + "delete": "Elimina messaggio", + "delete_confirm": "Vuoi veramente eliminare questo messaggio?", + "expand": "Espandi", + "external_source": "Vai all'origine", + "favorites": "Preferiti", + "hide_content": "Nascondi contenuti", + "hide_full_subject": "Nascondi oggetto intero", + "mentions": "Menzioni", + "mute_conversation": "Silenzia conversazione", + "nsfw": "DISDICEVOLE", + "pin": "Intesta al profilo", + "pinned": "Intestato", + "plus_more": "+{number} altri", + "repeats": "Condivisi", + "replies_list": "Risposte:", + "reply_to": "In risposta a", + "show_content": "Mostra contenuti", + "show_full_subject": "Mostra oggetto intero", + "status_deleted": "Questo messagio è stato cancellato", + "status_unavailable": "Messaggio non disponibile", + "thread_muted": "Discussione silenziata", + "thread_muted_and_words": ", contiene:", + "unbookmark": "Rimuovi segnalibro", + "unmute_conversation": "Riabilita conversazione", + "unpin": "De-intesta", + "you": "(Tu)" }, - "bot": "Questo è un robot", - "version": { - "frontend_version": "Versione interfaccia", - "backend_version": "Versione backend", - "title": "Versione" + "time": { + "in_future": "fra {0}", + "in_past": "{0} fa", + "now": "adesso", + "now_short": "adesso", + "unit": { + "days": "{0} giorni", + "days_short": "{0} g", + "hours": "{0} ore", + "hours_short": "{0} h", + "minutes": "{0} minuti", + "minutes_short": "{0} min", + "months": "{0} mesi", + "months_short": "{0} mes", + "seconds": "{0} secondi", + "seconds_short": "{0} sec", + "weeks": "{0} settimane", + "weeks_short": "{0} stm", + "years": "{0} anni", + "years_short": "{0} a" + } }, - "reset_avatar": "Azzera icona", - "reset_profile_background": "Azzera sfondo", - "reset_profile_banner": "Azzera gonfalone", - "reset_avatar_confirm": "Vuoi veramente azzerare l'icona?", - "reset_banner_confirm": "Vuoi veramente azzerare il gonfalone?", - "reset_background_confirm": "Vuoi veramente azzerare lo sfondo?", - "chatMessageRadius": "Messaggi istantanei", - "notification_setting_hide_notification_contents": "Nascondi mittente e contenuti delle notifiche push", - "notification_setting_block_from_strangers": "Blocca notifiche da utenti che non segui", - "virtual_scrolling": "Velocizza l'elaborazione delle sequenze", - "import_mutes_from_a_csv_file": "Importa silenziati da un file CSV", - "mutes_imported": "Silenziati importati! Elaborazione in corso.", - "mute_import_error": "Errore nell'importazione", - "mute_import": "Carica silenziati", - "mute_export_button": "Esporta i silenziati in un file CSV", - "mute_export": "Esporta silenziati", - "hide_wallpaper": "Nascondi sfondo della stanza", - "setting_changed": "Valore personalizzato", - "more_settings": "Altre impostazioni", - "sensitive_by_default": "Tutti i miei messaggi sono scabrosi", - "reply_visibility_self_short": "Vedi solo risposte a te", - "reply_visibility_following_short": "Vedi risposte a messaggi di altri", - "hide_all_muted_posts": "Nascondi messaggi silenziati", - "hide_media_previews": "Nascondi anteprime", - "word_filter": "Parole filtrate", - "save": "Salva modifiche", - "file_export_import": { - "errors": { - "file_slightly_new": "Versione minore diversa, qualcosa potrebbe non combaciare.", - "file_too_old": "Versione troppo vecchia: {fileMajor}. Questa versione dell'interfaccia ({feMajor}) non supporta il file.", - "file_too_new": "Versione troppo recente: {fileMajor}. Questa versione dell'interfaccia ({feMajor}) non supporta il file.", - "invalid_file": "Il file selezionato non è un archivio supportato. Nessuna modifica è stata apportata." - }, - "restore_settings": "Carica impostazioni sul server", - "backup_settings_theme": "Archivia impostazioni e tema localmente", - "backup_settings": "Archivia impostazioni localmente", - "backup_restore": "Archiviazione impostazioni" + "timeline": { + "collapse": "Ripiega", + "conversation": "Conversazione", + "error": "Errore nel caricare la sequenza: {0}", + "load_older": "Carica messaggi precedenti", + "no_more_statuses": "Fine dei messaggi", + "no_retweet_hint": "Il messaggio è diretto o solo per seguaci e non può essere condiviso", + "no_statuses": "Nessun messaggio", + "reload": "Ricarica", + "repeated": "ha condiviso", + "show_new": "Mostra nuovi", + "socket_broke": "Connessione tempo reale interrotta: codice {0}", + "socket_reconnected": "Connesso in tempo reale", + "up_to_date": "Aggiornato" }, - "right_sidebar": "Mostra barra laterale a destra", - "hide_shoutbox": "Nascondi muro dei graffiti", - "mentions_new_style": "Menzioni abbreviate", - "mentions_new_place": "Segrega le menzioni", - "always_show_post_button": "Non nascondere il pulsante di composizione" - }, - "timeline": { - "error_fetching": "Errore nell'aggiornamento", - "load_older": "Carica messaggi precedenti", - "show_new": "Mostra nuovi", - "up_to_date": "Aggiornato", - "collapse": "Ripiega", - "conversation": "Conversazione", - "no_retweet_hint": "Il messaggio è diretto o solo per seguaci e non può essere condiviso", - "repeated": "ha condiviso", - "no_statuses": "Nessun messaggio", - "no_more_statuses": "Fine dei messaggi", - "reload": "Ricarica", - "error": "Errore nel caricare la sequenza: {0}", - "socket_broke": "Connessione tempo reale interrotta: codice {0}", - "socket_reconnected": "Connesso in tempo reale" - }, - "user_card": { - "follow": "Segui", - "followees": "Segue", - "followers": "Seguaci", - "following": "Seguìto!", - "follows_you": "Ti segue!", - "mute": "Silenzia", - "muted": "Silenziato", - "per_day": "al giorno", - "statuses": "Messaggi", - "approve": "Approva", - "block": "Blocca", - "blocked": "Bloccato!", - "deny": "Nega", - "remote_follow": "Segui da remoto", - "admin_menu": { - "delete_user": "Elimina utente", - "quarantine": "I messaggi non arriveranno alle altre stanze", - "disable_any_subscription": "Rendi utente non seguibile", - "disable_remote_subscription": "Blocca i tentativi di seguirlo da altre stanze", - "sandbox": "Rendi tutti i messaggi solo per seguaci", - "force_unlisted": "Nascondi tutti i messaggi", - "strip_media": "Rimuovi ogni allegato ai messaggi", - "force_nsfw": "Oscura tutti i messaggi", - "delete_account": "Elimina profilo", - "deactivate_account": "Disattiva profilo", - "activate_account": "Attiva profilo", - "revoke_moderator": "Divesti Moderatore", - "grant_moderator": "Crea Moderatore", - "revoke_admin": "Divesti Amministratore", - "grant_admin": "Crea Amministratore", - "moderation": "Moderazione" + "tool_tip": { + "accept_follow_request": "Accetta seguace", + "add_reaction": "Reagisci", + "bookmark": "Aggiungi segnalibro", + "favorite": "Gradisci", + "media_upload": "Carica allegati", + "reject_follow_request": "Rifiuta seguace", + "repeat": "Condividi", + "reply": "Rispondi", + "user_settings": "Impostazioni utente" }, - "show_repeats": "Mostra condivisioni", - "hide_repeats": "Nascondi condivisioni", - "mute_progress": "Silenzio…", - "unmute_progress": "Riabilito…", - "unmute": "Riabilita", - "block_progress": "Blocco…", - "unblock_progress": "Sblocco…", - "unblock": "Sblocca", - "unsubscribe": "Disdici", - "subscribe": "Abbònati", - "report": "Segnala", - "mention": "Menziona", - "media": "Media", - "its_you": "Sei tu!", - "hidden": "Nascosto", - "follow_unfollow": "Disconosci", - "follow_progress": "Richiedo…", - "follow_sent": "Richiesta inviata!", - "favorites": "Preferiti", - "message": "Contatta", - "bot": "Bot", - "highlight": { - "side": "Nastro a lato", - "striped": "A righe", - "solid": "Un colore", - "disabled": "Nessun risalto" + "upload": { + "error": { + "base": "Caricamento fallito.", + "default": "Riprova in seguito", + "file_too_big": "File troppo pesante [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Caricamento fallito: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "edit_profile": "Modifica profilo" - }, - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Proxy allegati", - "scope_options": "Opzioni visibilità", - "text_limit": "Lunghezza massima", - "title": "Caratteristiche", - "who_to_follow": "Chi seguire", - "pleroma_chat_messages": "Chiacchiere", - "upload_limit": "Limite allegati" - }, - "finder": { - "error_fetching_user": "Errore nel recupero dell'utente", - "find_user": "Cerca utente" - }, - "login": { - "login": "Accedi", - "logout": "Disconnettiti", - "password": "Password", - "placeholder": "es. Lupo Lucio", - "register": "Registrati", - "username": "Nome utente", - "description": "Accedi con OAuth", - "hint": "Accedi per conversare", - "authentication_code": "Codice di autenticazione", - "enter_recovery_code": "Inserisci un codice di recupero", - "enter_two_factor_code": "Inserisci un codice 2FA", - "recovery_code": "Codice di recupero", - "heading": { - "totp": "Autenticazione 2FA", - "recovery": "Recupero 2FA" + "user_card": { + "admin_menu": { + "activate_account": "Attiva profilo", + "deactivate_account": "Disattiva profilo", + "delete_account": "Elimina profilo", + "delete_user": "Elimina utente", + "disable_any_subscription": "Rendi utente non seguibile", + "disable_remote_subscription": "Blocca i tentativi di seguirlo da altre stanze", + "force_nsfw": "Oscura tutti i messaggi", + "force_unlisted": "Nascondi tutti i messaggi", + "grant_admin": "Crea Amministratore", + "grant_moderator": "Crea Moderatore", + "moderation": "Moderazione", + "quarantine": "I messaggi non arriveranno alle altre stanze", + "revoke_admin": "Divesti Amministratore", + "revoke_moderator": "Divesti Moderatore", + "sandbox": "Rendi tutti i messaggi solo per seguaci", + "strip_media": "Rimuovi ogni allegato ai messaggi" + }, + "approve": "Approva", + "block": "Blocca", + "block_progress": "Blocco…", + "blocked": "Bloccato!", + "bot": "Bot", + "deny": "Nega", + "edit_profile": "Modifica profilo", + "favorites": "Preferiti", + "follow": "Segui", + "follow_progress": "Richiedo…", + "follow_sent": "Richiesta inviata!", + "follow_unfollow": "Disconosci", + "followees": "Segue", + "followers": "Seguaci", + "following": "Seguìto!", + "follows_you": "Ti segue!", + "hidden": "Nascosto", + "hide_repeats": "Nascondi condivisioni", + "highlight": { + "disabled": "Nessun risalto", + "side": "Nastro a lato", + "solid": "Un colore", + "striped": "A righe" + }, + "its_you": "Sei tu!", + "media": "Media", + "mention": "Menziona", + "message": "Contatta", + "mute": "Silenzia", + "mute_progress": "Silenzio…", + "muted": "Silenziato", + "per_day": "al giorno", + "remote_follow": "Segui da remoto", + "report": "Segnala", + "show_repeats": "Mostra condivisioni", + "statuses": "Messaggi", + "subscribe": "Abbònati", + "unblock": "Sblocca", + "unblock_progress": "Sblocco…", + "unmute": "Riabilita", + "unmute_progress": "Riabilito…", + "unsubscribe": "Disdici" + }, + "user_profile": { + "profile_does_not_exist": "Spiacente, questo profilo non esiste.", + "profile_loading_error": "Spiacente, c'è stato un errore nel caricamento del profilo.", + "timeline_title": "Sequenza dell'utente" + }, + "user_reporting": { + "add_comment_description": "La segnalazione sarà inviata ai moderatori della tua stanza. Puoi motivarla qui sotto:", + "additional_comments": "Osservazioni accessorie", + "forward_description": "Il profilo appartiene ad un'altra stanza. Inviare la segnalazione anche a quella?", + "forward_to": "Inoltra a {0}", + "generic_error": "C'è stato un errore nell'elaborazione della tua richiesta.", + "submit": "Invia", + "title": "Segnalo {0}" + }, + "who_to_follow": { + "more": "Altro", + "who_to_follow": "Chi seguire" } - }, - "post_status": { - "account_not_locked_warning": "Il tuo profilo non è {0}. Chiunque può seguirti e vedere i tuoi messaggi per seguaci.", - "account_not_locked_warning_link": "protetto", - "attachments_sensitive": "Nascondi gli allegati", - "content_type": { - "text/plain": "Testo normale", - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML" - }, - "content_warning": "Oggetto (facoltativo)", - "default": "Sono appena atterrato a Città Laggiù.", - "direct_warning": "Questo post sarà visibile solo dagli utenti menzionati.", - "posting": "Sto pubblicando", - "scope": { - "direct": "Diretto - Visibile solo agli utenti menzionati", - "private": "Solo per seguaci - Visibile solo dai tuoi seguaci", - "public": "Pubblico - Visibile sulla sequenza pubblica", - "unlisted": "Nascosto - Non visibile sulla sequenza pubblica" - }, - "scope_notice": { - "unlisted": "Questo messaggio non sarà visibile sulla sequenza locale né su quella pubblica", - "private": "Questo messaggio sarà visibile solo ai tuoi seguaci", - "public": "Questo messaggio sarà visibile a tutti" - }, - "direct_warning_to_first_only": "Questo messaggio sarà visibile solo agli utenti menzionati in testa.", - "direct_warning_to_all": "Questo messaggio sarà visibile a tutti i menzionati.", - "new_status": "Nuovo messaggio", - "empty_status_error": "Aggiungi del testo o degli allegati", - "preview_empty": "Vuoto", - "preview": "Anteprima", - "media_description_error": "Allegati non caricati, riprova", - "media_description": "Descrizione allegati", - "post": "Pubblica" - }, - "registration": { - "bio": "Introduzione", - "email": "Email", - "fullname": "Nome visualizzato", - "password_confirm": "Conferma password", - "registration": "Registrazione", - "token": "Codice d'invito", - "validations": { - "password_confirmation_match": "dovrebbe essere uguale alla password", - "password_confirmation_required": "non può essere vuoto", - "password_required": "non può essere vuoto", - "email_required": "non può essere vuoto", - "fullname_required": "non può essere vuoto", - "username_required": "non può essere vuoto" - }, - "bio_placeholder": "es.\nCiao, sono Lupo Lucio.\nSono un lupo fantastico che vive nel Fantabosco. Forse mi hai visto alla Melevisione.", - "fullname_placeholder": "es. Lupo Lucio", - "username_placeholder": "es. mister_wolf", - "new_captcha": "Clicca il captcha per averne uno nuovo", - "captcha": "CAPTCHA", - "reason_placeholder": "L'amministratore esamina ciascuna richiesta.\nFornisci il motivo della tua iscrizione.", - "reason": "Motivo dell'iscrizione", - "register": "Registrati" - }, - "user_profile": { - "timeline_title": "Sequenza dell'utente", - "profile_loading_error": "Spiacente, c'è stato un errore nel caricamento del profilo.", - "profile_does_not_exist": "Spiacente, questo profilo non esiste." - }, - "who_to_follow": { - "more": "Altro", - "who_to_follow": "Chi seguire" - }, - "about": { - "mrf": { - "federation": "Federazione", - "keyword": { - "reject": "Rifiuta", - "replace": "Sostituisci", - "is_replaced_by": "→", - "keyword_policies": "Regole per parole chiave", - "ftl_removal": "Rimozione dalla sequenza federale" - }, - "simple": { - "reject": "Rifiuta", - "accept": "Accetta", - "simple_policies": "Regole specifiche alla stanza", - "accept_desc": "Questa stanza accetta messaggi solo dalle seguenti altre:", - "reject_desc": "Questa stanza rifiuterà i messaggi provenienti dalle seguenti:", - "quarantine": "Quarantena", - "quarantine_desc": "Questa stanza inoltrerà solo messaggi pubblici alle seguenti:", - "ftl_removal": "Rimozione dalla sequenza federale", - "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza federale:", - "media_removal": "Rimozione multimedia", - "media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:", - "media_nsfw": "Allegati oscurati d'ufficio", - "media_nsfw_desc": "Questa stanza oscura gli allegati dei messaggi provenienti da queste stanze:" - }, - "mrf_policies": "Regole RM abilitate", - "mrf_policies_desc": "Le regole RM cambiano il comportamento federativo della stanza. Vigono le seguenti regole:" - }, - "staff": "Responsabili" - }, - "domain_mute_card": { - "mute": "Silenzia", - "mute_progress": "Procedo…", - "unmute": "Ascolta", - "unmute_progress": "Procedo…" - }, - "exporter": { - "export": "Esporta", - "processing": "In elaborazione, il tuo file sarà scaricabile a breve" - }, - "image_cropper": { - "crop_picture": "Ritaglia immagine", - "save": "Salva", - "save_without_cropping": "Salva senza ritagliare", - "cancel": "Annulla" - }, - "importer": { - "submit": "Invia", - "success": "Importato.", - "error": "L'importazione non è andata a buon fine." - }, - "media_modal": { - "previous": "Precedente", - "next": "Prossimo" - }, - "polls": { - "add_poll": "Sondaggio", - "add_option": "Aggiungi opzione", - "option": "Opzione", - "votes": "voti", - "vote": "Vota", - "type": "Tipo di sondaggio", - "single_choice": "Scelta singola", - "multiple_choices": "Scelta multipla", - "expiry": "Età", - "expires_in": "Chiude fra {0}", - "expired": "Chiuso {0} fa", - "not_enough_options": "Aggiungi altre risposte", - "votes_count": "{count} voto | {count} voti", - "people_voted_count": "{count} votante | {count} votanti" - }, - "interactions": { - "favs_repeats": "Condivisi e Graditi", - "load_older": "Carica interazioni precedenti", - "moves": "Utenti migrati", - "follows": "Nuovi seguìti" - }, - "emoji": { - "load_all": "Carico tutti i {emojiAmount} emoji", - "load_all_hint": "Primi {saneAmount} emoji caricati, caricarli tutti potrebbe causare rallentamenti.", - "unicode": "Emoji Unicode", - "custom": "Emoji della stanza", - "add_emoji": "Inserisci emoji", - "search_emoji": "Cerca un emoji", - "keep_open": "Tieni aperto il menù", - "emoji": "Emoji", - "stickers": "Adesivi" - }, - "selectable_list": { - "select_all": "Seleziona tutto" - }, - "remote_user_resolver": { - "error": "Non trovato.", - "searching_for": "Cerco", - "remote_user_resolver": "Cerca utenti remoti" - }, - "errors": { - "storage_unavailable": "Pleroma non può accedere ai dati del tuo browser. Il tuo accesso o le tue impostazioni non saranno salvate e potresti incontrare strani errori. Prova ad abilitare i cookie." - }, - "status": { - "pinned": "Intestato", - "unpin": "De-intesta", - "pin": "Intesta al profilo", - "delete": "Elimina messaggio", - "repeats": "Condivisi", - "favorites": "Preferiti", - "hide_content": "Nascondi contenuti", - "show_content": "Mostra contenuti", - "hide_full_subject": "Nascondi oggetto intero", - "show_full_subject": "Mostra oggetto intero", - "thread_muted_and_words": ", contiene:", - "thread_muted": "Discussione silenziata", - "copy_link": "Copia collegamento", - "status_unavailable": "Messaggio non disponibile", - "unmute_conversation": "Riabilita conversazione", - "mute_conversation": "Silenzia conversazione", - "replies_list": "Risposte:", - "reply_to": "In risposta a", - "delete_confirm": "Vuoi veramente eliminare questo messaggio?", - "unbookmark": "Rimuovi segnalibro", - "bookmark": "Aggiungi segnalibro", - "status_deleted": "Questo messagio è stato cancellato", - "nsfw": "DISDICEVOLE", - "external_source": "Vai all'origine", - "expand": "Espandi", - "mentions": "Menzioni", - "you": "(Tu)", - "plus_more": "+{number} altri" - }, - "time": { - "now_short": "adesso", - "now": "adesso", - "in_past": "{0} fa", - "in_future": "fra {0}", - "unit": { - "years_short": "{0} a", - "year_short": "{0} a", - "years": "{0} anni", - "year": "{0} anno", - "weeks_short": "{0} stm", - "week_short": "{0} stm", - "seconds_short": "{0} sec", - "second_short": "{0} sec", - "weeks": "{0} settimane", - "week": "{0} settimana", - "seconds": "{0} secondi", - "second": "{0} secondo", - "months_short": "{0} mes", - "month_short": "{0} mes", - "months": "{0} mesi", - "month": "{0} mese", - "minutes_short": "{0} min", - "minute_short": "{0} min", - "minutes": "{0} minuti", - "minute": "{0} minuto", - "hours_short": "{0} h", - "days_short": "{0} g", - "hour_short": "{0} h", - "hours": "{0} ore", - "hour": "{0} ora", - "day_short": "{0} g", - "days": "{0} giorni", - "day": "{0} giorno" - } - }, - "user_reporting": { - "title": "Segnalo {0}", - "additional_comments": "Osservazioni accessorie", - "generic_error": "C'è stato un errore nell'elaborazione della tua richiesta.", - "submit": "Invia", - "forward_to": "Inoltra a {0}", - "forward_description": "Il profilo appartiene ad un'altra stanza. Inviare la segnalazione anche a quella?", - "add_comment_description": "La segnalazione sarà inviata ai moderatori della tua stanza. Puoi motivarla qui sotto:" - }, - "password_reset": { - "password_reset_required_but_mailer_is_disabled": "Devi reimpostare la tua password, ma non puoi farlo. Contatta l'amministratore.", - "password_reset_required": "Devi reimpostare la tua password per poter continuare.", - "password_reset_disabled": "Non puoi azzerare la tua password. Contatta il tuo amministratore.", - "too_many_requests": "Hai raggiunto il numero massimo di tentativi, riprova più tardi.", - "return_home": "Torna alla pagina principale", - "check_email": "Controlla la tua posta elettronica.", - "placeholder": "La tua email o nome utente", - "instruction": "Inserisci il tuo indirizzo email o il tuo nome utente. Ti invieremo un collegamento per reimpostare la tua password.", - "password_reset": "Azzera password", - "forgot_password": "Password dimenticata?" - }, - "search": { - "no_results": "Nessun risultato", - "people_talking": "{count} partecipanti", - "person_talking": "{count} partecipante", - "hashtags": "Etichette", - "people": "Utenti" - }, - "upload": { - "file_size_units": { - "TiB": "TiB", - "GiB": "GiB", - "MiB": "MiB", - "KiB": "KiB", - "B": "B" - }, - "error": { - "default": "Riprova in seguito", - "file_too_big": "File troppo pesante [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "base": "Caricamento fallito.", - "message": "Caricamento fallito: {0}" - } - }, - "tool_tip": { - "bookmark": "Aggiungi segnalibro", - "reject_follow_request": "Rifiuta seguace", - "accept_follow_request": "Accetta seguace", - "user_settings": "Impostazioni utente", - "add_reaction": "Reagisci", - "favorite": "Gradisci", - "reply": "Rispondi", - "repeat": "Condividi", - "media_upload": "Carica allegati" - }, - "display_date": { - "today": "Oggi" - }, - "file_type": { - "file": "File", - "image": "Immagine", - "video": "Video", - "audio": "Audio" - }, - "chats": { - "empty_chat_list_placeholder": "Non hai conversazioni. Contatta qualcuno!", - "error_sending_message": "Errore. Il messaggio non è stato inviato.", - "error_loading_chat": "Errore. La conversazione non è stata caricata.", - "delete_confirm": "Vuoi veramente eliminare questo messaggio?", - "more": "Altro", - "empty_message_error": "Non puoi inviare messaggi vuoti", - "new": "Nuova conversazione", - "chats": "Conversazioni", - "delete": "Elimina", - "message_user": "Contatta {nickname}", - "you": "Tu:" - }, - "shoutbox": { - "title": "Graffiti" - } -} +} \ No newline at end of file diff --git a/src/i18n/ja_easy.json b/src/i18n/ja_easy.json index 407a8481..dfd6b2a0 100644 --- a/src/i18n/ja_easy.json +++ b/src/i18n/ja_easy.json @@ -1,674 +1,646 @@ { - "about": { - "mrf": { - "federation": "フェデレーション", - "mrf_policies": "ゆうこうなMRFポリシー", - "mrf_policies_desc": "MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:", - "simple": { - "simple_policies": "インスタンスのポリシー", - "accept": "うけいれ", - "accept_desc": "このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:", - "reject": "おことわり", - "reject_desc": "このインスタンスは、これらのインスタンスからのメッセージをうけいれません:", - "quarantine": "けんえき", - "quarantine_desc": "このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:", - "ftl_removal": "「つながっているすべてのネットワーク」タイムラインからのぞく", - "ftl_removal_desc": "このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:", - "media_removal": "メディアをのぞく", - "media_removal_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:", - "media_nsfw": "メディアをすべてセンシティブにする", - "media_nsfw_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:" - } - }, - "staff": "スタッフ" - }, - "chat": { - "title": "チャット" - }, - "exporter": { - "export": "エクスポート", - "processing": "おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます" - }, - "features_panel": { - "chat": "チャット", - "gopher": "Gopher", - "media_proxy": "メディアプロクシ", - "scope_options": "こうかいはんいせんたく", - "text_limit": "もじのかず", - "title": "ゆうこうなきのう", - "who_to_follow": "おすすめユーザー" - }, - "finder": { - "error_fetching_user": "ユーザーけんさくがエラーになりました", - "find_user": "ユーザーをさがす" - }, - "general": { - "apply": "てきよう", - "submit": "そうしん", - "more": "つづき", - "generic_error": "エラーになりました", - "optional": "かかなくてもよい", - "show_more": "つづきをみる", - "show_less": "たたむ", - "cancel": "キャンセル", - "disable": "なし", - "enable": "あり", - "confirm": "たしかめる", - "verify": "たしかめる" - }, - "image_cropper": { - "crop_picture": "がぞうをきりぬく", - "save": "セーブ", - "save_without_cropping": "きりぬかずにセーブ", - "cancel": "キャンセル" - }, - "importer": { - "submit": "そうしん", - "success": "インポートできました。", - "error": "インポートがエラーになりました。" - }, - "login": { - "login": "ログイン", - "description": "OAuthでログイン", - "logout": "ログアウト", - "password": "パスワード", - "placeholder": "れい: lain", - "register": "はじめる", - "username": "ユーザーめい", - "hint": "はなしあいにくわわるには、ログインしてください", - "authentication_code": "にんしょうコード", - "enter_recovery_code": "リカバリーコードをいれてください", - "enter_two_factor_code": "2-ファクターコードをいれてください", - "recovery_code": "リカバリーコード", - "heading": { - "totp": "2-ファクターにんしょう", - "recovery": "2-ファクターリカバリー" - } - }, - "media_modal": { - "previous": "まえ", - "next": "つぎ" - }, - "nav": { - "about": "これはなに?", - "administration": "アドミニストレーション", - "back": "もどる", - "chat": "ローカルチャット", - "friend_requests": "フォローリクエスト", - "mentions": "メンション", - "interactions": "やりとり", - "dms": "ダイレクトメッセージ", - "public_tl": "パブリックタイムライン", - "timeline": "タイムライン", - "twkn": "つながっているすべてのネットワーク", - "user_search": "ユーザーをさがす", - "search": "さがす", - "who_to_follow": "おすすめユーザー", - "preferences": "せってい" - }, - "notifications": { - "broken_favorite": "ステータスがみつかりません。さがしています…", - "favorited_you": "あなたのステータスがおきにいりされました", - "followed_you": "フォローされました", - "load_older": "ふるいつうちをみる", - "notifications": "つうち", - "read": "よんだ!", - "repeated_you": "あなたのステータスがリピートされました", - "no_more_notifications": "つうちはありません" - }, - "polls": { - "add_poll": "いれふだをはじめる", - "add_option": "オプションをふやす", - "option": "オプション", - "votes": "いれふだ", - "vote": "ふだをいれる", - "type": "いれふだのかた", - "single_choice": "ひとつえらぶ", - "multiple_choices": "いくつでもえらべる", - "expiry": "いれふだのながさ", - "expires_in": "いれふだは {0} で、おわります", - "expired": "いれふだは {0} まえに、おわりました", - "not_enough_options": "ユニークなオプションが、たりません" - }, - "emoji": { - "stickers": "ステッカー", - "emoji": "えもじ", - "keep_open": "ピッカーをあけたままにする", - "search_emoji": "えもじをさがす", - "add_emoji": "えもじをうちこむ", - "custom": "カスタムえもじ", - "unicode": "ユニコードえもじ", - "load_all_hint": "はじめの {saneAmount} このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。", - "load_all": "すべてのえもじをロード ({emojiAmount} こあります)" - }, - "stickers": { - "add_sticker": "ステッカーをふやす" - }, - "interactions": { - "favs_repeats": "リピートとおきにいり", - "follows": "あたらしいフォロー", - "load_older": "ふるいやりとりをみる" - }, - "post_status": { - "new_status": "とうこうする", - "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。", - "account_not_locked_warning_link": "ロックされたアカウント", - "attachments_sensitive": "ファイルをNSFWにする", - "content_type": { - "text/plain": "プレーンテキスト", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "せつめい (かかなくてもよい)", - "default": "はねだくうこうに、つきました。", - "direct_warning_to_all": "このとうこうは、メンションされたすべてのユーザーが、みることができます。", - "direct_warning_to_first_only": "このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。", - "direct_warning": "このステータスは、メンションされたユーザーだけが、よむことができます。", - "posting": "とうこう", - "scope_notice": { - "public": "このとうこうは、だれでもみることができます", - "private": "このとうこうは、あなたのフォロワーだけが、みることができます", - "unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません" - }, - "scope": { - "direct": "ダイレクト: メンションされたユーザーのみにとどきます", - "private": "フォロワーげんてい: フォロワーのみにとどきます", - "public": "パブリック: パブリックタイムラインにとどきます", - "unlisted": "アンリステッド: パブリックタイムラインにとどきません" - } - }, - "registration": { - "bio": "プロフィール", - "email": "Eメール", - "fullname": "スクリーンネーム", - "password_confirm": "パスワードのかくにん", - "registration": "はじめる", - "token": "しょうたいトークン", - "captcha": "CAPTCHA", - "new_captcha": "もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります", - "username_placeholder": "れい: lain", - "fullname_placeholder": "れい: いわくら れいん", - "bio_placeholder": "れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。", - "validations": { - "username_required": "なにかかいてください", - "fullname_required": "なにかかいてください", - "email_required": "なにかかいてください", - "password_required": "なにかかいてください", - "password_confirmation_required": "なにかかいてください", - "password_confirmation_match": "パスワードがちがいます" - } - }, - "remote_user_resolver": { - "remote_user_resolver": "リモートユーザーリゾルバー", - "searching_for": "さがしています:", - "error": "みつかりませんでした。" - }, - "selectable_list": { - "select_all": "すべてえらぶ" - }, - "settings": { - "app_name": "アプリのなまえ", - "security": "セキュリティ", - "enter_current_password_to_confirm": "あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください", - "mfa": { - "otp": "OTP", - "setup_otp": "OTPをつくる", - "wait_pre_setup_otp": "OTPをよういしています", - "confirm_and_enable": "OTPをたしかめて、ゆうこうにする", - "title": "2-ファクターにんしょう", - "generate_new_recovery_codes": "あたらしいリカバリーコードをつくる", - "warning_of_generate_new_codes": "あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。", - "recovery_codes": "リカバリーコード。", - "waiting_a_recovery_codes": "バックアップコードをうけとっています…", - "recovery_codes_warning": "コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。", - "authentication_methods": "にんしょうメソッド", - "scan": { - "title": "スキャン", - "desc": "あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:", - "secret_code": "キー" - }, - "verify": { - "desc": "2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:" - } - }, - "attachmentRadius": "ファイル", - "attachments": "ファイル", - "avatar": "アバター", - "avatarAltRadius": "つうちのアバター", - "avatarRadius": "アバター", - "background": "バックグラウンド", - "bio": "プロフィール", - "block_export": "ブロックのエクスポート", - "block_export_button": "ブロックをCSVファイルにエクスポート", - "block_import": "ブロックのインポート", - "block_import_error": "ブロックのインポートがエラーになりました", - "blocks_imported": "ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。", - "blocks_tab": "ブロック", - "btnRadius": "ボタン", - "cBlue": "リプライとフォロー", - "cGreen": "リピート", - "cOrange": "おきにいり", - "cRed": "キャンセル", - "change_email": "メールアドレスをかえる", - "change_email_error": "メールアドレスをかえようとしましたが、なにかがおかしいです。", - "changed_email": "メールアドレスをかえることができました!", - "change_password": "パスワードをかえる", - "change_password_error": "パスワードをかえることが、できなかったかもしれません。", - "changed_password": "パスワードが、かわりました!", - "collapse_subject": "せつめいのあるとうこうをたたむ", - "composing": "とうこう", - "confirm_new_password": "あたらしいパスワードのかくにん", - "current_avatar": "いまのアバター", - "current_password": "いまのパスワード", - "current_profile_banner": "いまのプロフィールバナー", - "data_import_export_tab": "インポートとエクスポート", - "default_vis": "デフォルトのこうかいはんい", - "delete_account": "アカウントをけす", - "delete_account_description": "あなたのアカウントとメッセージが、きえます。", - "delete_account_error": "アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。", - "delete_account_instructions": "ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。", - "discoverable": "けんさくなどのサービスで、このアカウントをみつけてもよい", - "avatar_size_instruction": "アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。", - "pad_emoji": "えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる", - "export_theme": "セーブ", - "filtering": "フィルタリング", - "filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください", - "follow_export": "フォローのエクスポート", - "follow_export_button": "エクスポート", - "follow_export_processing": "おまちください。まもなくファイルをダウンロードできます。", - "follow_import": "フォローインポート", - "follow_import_error": "フォローのインポートがエラーになりました", - "follows_imported": "フォローがインポートされました! すこしじかんがかかるかもしれません。", - "foreground": "フォアグラウンド", - "general": "ぜんぱん", - "hide_attachments_in_convo": "スレッドのファイルをかくす", - "hide_attachments_in_tl": "タイムラインのファイルをかくす", - "hide_muted_posts": "ミュートしたユーザーのとうこうをかくす", - "max_thumbnails": "ひとつのとうこうにいれられるサムネイルのかず", - "hide_isp": "インスタンススペシフィックパネルをかくす", - "preload_images": "がぞうをさきよみする", - "use_one_click_nsfw": "NSFWなファイルを1クリックでひらく", - "hide_post_stats": "とうこうのとうけいをかくす (れい: おきにいりのかず)", - "hide_user_stats": "ユーザーのとうけいをかくす (れい: フォロワーのかず)", - "hide_filtered_statuses": "フィルターされたとうこうをかくす", - "import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする", - "import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする", - "import_theme": "ロード", - "inputRadius": "インプットフィールド", - "checkboxRadius": "チェックボックス", - "instance_default": "(デフォルト: {value})", - "instance_default_simple": "(デフォルト)", - "interface": "インターフェース", - "interfaceLanguage": "インターフェースのことば", - "invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。", - "limited_availability": "あなたのブラウザではできません", - "links": "リンク", - "lock_account_description": "あなたがみとめたひとだけ、あなたのアカウントをフォローできる", - "loop_video": "ビデオをくりかえす", - "loop_video_silent_only": "おとのないビデオだけくりかえす", - "mutes_tab": "ミュート", - "play_videos_in_modal": "ビデオをメディアビューアーでみる", - "use_contain_fit": "がぞうのサムネイルを、きりぬかない", - "name": "なまえ", - "name_bio": "なまえとプロフィール", - "new_email": "あたらしいメールアドレス", - "new_password": "あたらしいパスワード", - "notification_visibility": "ひょうじするつうち", - "notification_visibility_follows": "フォロー", - "notification_visibility_likes": "おきにいり", - "notification_visibility_mentions": "メンション", - "notification_visibility_repeats": "リピート", - "no_rich_text_description": "リッチテキストをつかわない", - "no_blocks": "ブロックしていません", - "no_mutes": "ミュートしていません", - "hide_follows_description": "フォローしているひとをみせない", - "hide_followers_description": "フォロワーをみせない", - "hide_follows_count_description": "フォローしているひとのかずをみせない", - "hide_followers_count_description": "フォロワーのかずをみせない", - "show_admin_badge": "アドミンのしるしをみせる", - "show_moderator_badge": "モデレーターのしるしをみせる", - "nsfw_clickthrough": "NSFWなファイルをかくす", - "oauth_tokens": "OAuthトークン", - "token": "トークン", - "refresh_token": "トークンをリフレッシュ", - "valid_until": "おわりのとき", - "revoke_token": "とりけす", - "panelRadius": "パネル", - "pause_on_unfocused": "タブにフォーカスがないときストリーミングをとめる", - "presets": "プリセット", - "profile_background": "プロフィールのバックグラウンド", - "profile_banner": "プロフィールバナー", - "profile_tab": "プロフィール", - "radii_help": "インターフェースのまるさをせっていする", - "replies_in_timeline": "タイムラインのリプライ", - "reply_visibility_all": "すべてのリプライをみる", - "reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる", - "reply_visibility_self": "わたしにあてられたリプライをみる", - "autohide_floating_post_button": "あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)", - "saving_err": "せっていをセーブできませんでした", - "saving_ok": "せっていをセーブしました", - "search_user_to_block": "ブロックしたいひとを、ここでけんさくできます", - "search_user_to_mute": "ミュートしたいひとを、ここでけんさくできます", - "security_tab": "セキュリティ", - "scope_copy": "リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)", - "minimal_scopes_mode": "こうかいはんいせんたくオプションを、ちいさくする", - "set_new_avatar": "あたらしいアバターをせっていする", - "set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする", - "set_new_profile_banner": "あたらしいプロフィールバナーを設定する", - "settings": "せってい", - "subject_input_always_show": "サブジェクトフィールドをいつでもひょうじする", - "subject_line_behavior": "リプライするときサブジェクトをコピーする", - "subject_line_email": "メールふう: \"re: サブジェクト\"", - "subject_line_mastodon": "マストドンふう: そのままコピー", - "subject_line_noop": "コピーしない", - "post_status_content_type": "とうこうのコンテントタイプ", - "stop_gifs": "カーソルをかさねたとき、GIFをうごかす", - "streaming": "うえまでスクロールしたとき、じどうてきにストリーミングする", - "text": "もじ", - "theme": "テーマ", - "theme_help": "カラーテーマをカスタマイズできます。", - "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。", - "theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。", - "upload_a_photo": "がぞうをアップロード", - "tooltipRadius": "ツールチップとアラート", - "user_settings": "ユーザーせってい", - "values": { - "false": "いいえ", - "true": "はい" - }, - "fun": "おたのしみ", - "greentext": "ミームやじるし", - "notifications": "つうち", - "notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。", - "notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。", - "enable_web_push_notifications": "ウェブプッシュつうちをゆるす", - "style": { - "switcher": { - "keep_color": "いろをのこす", - "keep_shadows": "かげをのこす", - "keep_opacity": "とうめいどをのこす", - "keep_roundness": "まるさをのこす", - "keep_fonts": "フォントをのこす", - "save_load_hint": "「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。", - "reset": "リセット", - "clear_all": "すべてクリア", - "clear_opacity": "とうめいどをクリア" - }, - "common": { - "color": "いろ", - "opacity": "とうめいど", - "contrast": { - "hint": "コントラストは {ratio} です。{level}。({context})", - "level": { - "aa": "AAレベルガイドライン (ミニマル) をみたします", - "aaa": "AAAレベルガイドライン (レコメンデッド) をみたします", - "bad": "ガイドラインをみたしません" - }, - "context": { - "18pt": "おおきい (18ポイントいじょう) テキスト", - "text": "テキスト" - } - } - }, - "common_colors": { - "_tab_label": "きょうつう", - "main": "きょうつうのいろ", - "foreground_hint": "「くわしく」タブで、もっとこまかくせっていできます", - "rgbo": "アイコンとアクセントとバッジ" - }, - "advanced_colors": { - "_tab_label": "くわしく", - "alert": "アラートのバックグラウンド", - "alert_error": "エラー", - "alert_warning": "けいこく", - "badge": "バッジのバックグラウンド", - "badge_notification": "つうち", - "panel_header": "パネルヘッダー", - "top_bar": "トップバー", - "borders": "さかいめ", - "buttons": "ボタン", - "inputs": "インプットフィールド", - "faint_text": "うすいテキスト" - }, - "radii": { - "_tab_label": "まるさ" - }, - "shadows": { - "_tab_label": "ひかりとかげ", - "component": "コンポーネント", - "override": "オーバーライド", - "shadow_id": "かげ #{value}", - "blur": "ぼかし", - "spread": "ひろがり", - "inset": "うちがわ", - "hint": "かげのせっていでは、いろのあたいとして --variable をつかうことができます。これはCSS3へんすうです。ただし、とうめいどのせっていは、きかなくなります。", - "filter_hint": { - "always_drop_shadow": "ブラウザーがサポートしていれば、つねに {0} がつかわれます。", - "drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。", - "avatar_inset": "うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。", - "spread_zero": "ひろがりが 0 よりもおおきなかげは、0 とおなじです", - "inset_classic": "うちがわのかげは {0} をつかいます" + "about": { + "mrf": { + "federation": "フェデレーション", + "mrf_policies": "ゆうこうなMRFポリシー", + "mrf_policies_desc": "MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:", + "simple": { + "accept": "うけいれ", + "accept_desc": "このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:", + "ftl_removal": "「つながっているすべてのネットワーク」タイムラインからのぞく", + "ftl_removal_desc": "このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:", + "media_nsfw": "メディアをすべてセンシティブにする", + "media_nsfw_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:", + "media_removal": "メディアをのぞく", + "media_removal_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:", + "quarantine": "けんえき", + "quarantine_desc": "このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:", + "reject": "おことわり", + "reject_desc": "このインスタンスは、これらのインスタンスからのメッセージをうけいれません:", + "simple_policies": "インスタンスのポリシー" + } }, - "components": { - "panel": "パネル", - "panelHeader": "パネルヘッダー", - "topBar": "トップバー", - "avatar": "ユーザーアバター (プロフィール)", - "avatarStatus": "ユーザーアバター (とうこう)", - "popup": "ポップアップとツールチップ", - "button": "ボタン", - "buttonHover": "ボタン (ホバー)", - "buttonPressed": "ボタン (おされているとき)", - "buttonPressedHover": "ボタン (ホバー、かつ、おされているとき)", - "input": "インプットフィールド" - } - }, - "fonts": { - "_tab_label": "フォント", - "help": "「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。", - "components": { - "interface": "インターフェース", - "input": "インプットフィールド", - "post": "とうこう", - "postCode": "モノスペース (とうこうがリッチテキストであるとき)" + "staff": "スタッフ" + }, + "emoji": { + "add_emoji": "えもじをうちこむ", + "custom": "カスタムえもじ", + "emoji": "えもじ", + "keep_open": "ピッカーをあけたままにする", + "load_all": "すべてのえもじをロード ({emojiAmount} こあります)", + "load_all_hint": "はじめの {saneAmount} このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。", + "search_emoji": "えもじをさがす", + "stickers": "ステッカー", + "unicode": "ユニコードえもじ" + }, + "exporter": { + "export": "エクスポート", + "processing": "おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます" + }, + "features_panel": { + "media_proxy": "メディアプロクシ", + "scope_options": "こうかいはんいせんたく", + "text_limit": "もじのかず", + "title": "ゆうこうなきのう", + "who_to_follow": "おすすめユーザー" + }, + "finder": { + "error_fetching_user": "ユーザーけんさくがエラーになりました", + "find_user": "ユーザーをさがす" + }, + "general": { + "apply": "てきよう", + "cancel": "キャンセル", + "confirm": "たしかめる", + "disable": "なし", + "enable": "あり", + "generic_error": "エラーになりました", + "more": "つづき", + "optional": "かかなくてもよい", + "show_less": "たたむ", + "show_more": "つづきをみる", + "submit": "そうしん", + "verify": "たしかめる" + }, + "image_cropper": { + "cancel": "キャンセル", + "crop_picture": "がぞうをきりぬく", + "save": "セーブ", + "save_without_cropping": "きりぬかずにセーブ" + }, + "importer": { + "error": "インポートがエラーになりました。", + "submit": "そうしん", + "success": "インポートできました。" + }, + "interactions": { + "favs_repeats": "リピートとおきにいり", + "follows": "あたらしいフォロー", + "load_older": "ふるいやりとりをみる" + }, + "login": { + "authentication_code": "にんしょうコード", + "description": "OAuthでログイン", + "enter_recovery_code": "リカバリーコードをいれてください", + "enter_two_factor_code": "2-ファクターコードをいれてください", + "heading": { + "recovery": "2-ファクターリカバリー", + "totp": "2-ファクターにんしょう" }, - "family": "フォントめい", - "size": "おおきさ (px)", - "weight": "ふとさ", - "custom": "カスタム" - }, - "preview": { - "header": "プレビュー", - "content": "ほんぶん", - "error": "エラーのれい", - "button": "ボタン", - "text": "これは{0}と{1}のれいです", - "mono": "monospace", - "input": "はねだくうこうに、つきました。", - "faint_link": "とてもたすけになるマニュアル", - "fine_print": "わたしたちの{0}を、よまないでください!", - "header_faint": "エラーではありません", - "checkbox": "りようきやくを、よみました", - "link": "ハイパーリンク" - } + "hint": "はなしあいにくわわるには、ログインしてください", + "login": "ログイン", + "logout": "ログアウト", + "password": "パスワード", + "placeholder": "れい: lain", + "recovery_code": "リカバリーコード", + "register": "はじめる", + "username": "ユーザーめい" }, - "version": { - "title": "バージョン", - "backend_version": "バックエンドのバージョン", - "frontend_version": "フロントエンドのバージョン" - } - }, - "time": { - "now": "たった今", - "now_short": "たった今", - "in_future": "{0}で", - "in_past": "{0}前", - "unit": { - "day": "{0}日", - "days": "{0}日", - "day_short": "{0}日", - "days_short": "{0}日", - "hour": "{0}時間", - "hours": "{0}時間", - "hour_short": "{0}時間", - "hours_short": "{0}時間", - "minute": "{0}分", - "minutes": "{0}分", - "minute_short": "{0}分", - "minutes_short": "{0}分", - "month": "{0}ヶ月前", - "months": "{0}ヶ月前", - "month_short": "{0}ヶ月前", - "months_short": "{0}ヶ月前", - "second": "{0}秒", - "seconds": "{0}秒", - "second_short": "{0}秒", - "seconds_short": "{0}秒", - "week": "{0}週間", - "weeks": "{0}週間", - "week_short": "{0}週間", - "weeks_short": "{0}週間", - "year": "{0}年", - "years": "{0}年", - "year_short": "{0}年", - "years_short": "{0}年" - } - }, - "timeline": { - "collapse": "たたむ", - "conversation": "スレッド", - "error_fetching": "よみこみがエラーになりました", - "load_older": "ふるいステータス", - "no_retweet_hint": "とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", - "repeated": "リピート", - "show_new": "よみこみ", - "up_to_date": "さいしん", - "no_more_statuses": "これでおわりです", - "no_statuses": "ありません" - }, - "status": { - "favorites": "おきにいり", - "repeats": "リピート", - "delete": "ステータスをけす", - "pin": "プロフィールにピンどめする", - "unpin": "プロフィールにピンどめするのをやめる", - "pinned": "ピンどめ", - "delete_confirm": "ほんとうに、このステータスを、けしてもいいですか?", - "reply_to": "へんしん:", - "replies_list": "へんしん:", - "mute_conversation": "スレッドをミュートする", - "unmute_conversation": "スレッドをミュートするのをやめる" - }, - "user_card": { - "approve": "うけいれ", - "block": "ブロック", - "blocked": "ブロックしています!", - "deny": "おことわり", - "favorites": "おきにいり", - "follow": "フォロー", - "follow_sent": "リクエストを、おくりました!", - "follow_progress": "リクエストしています…", - "follow_unfollow": "フォローをやめる", - "followees": "フォロー", - "followers": "フォロワー", - "following": "フォローしています!", - "follows_you": "フォローされました!", - "hidden": "かくされています", - "its_you": "これはあなたです!", - "media": "メディア", - "mention": "メンション", - "mute": "ミュート", - "muted": "ミュートしています!", - "per_day": "/日", - "remote_follow": "リモートフォロー", - "report": "つうほう", - "statuses": "ステータス", - "subscribe": "サブスクライブ", - "unsubscribe": "サブスクライブをやめる", - "unblock": "ブロックをやめる", - "unblock_progress": "ブロックをとりけしています…", - "block_progress": "ブロックしています…", - "unmute": "ミュートをやめる", - "unmute_progress": "ミュートをとりけしています…", - "mute_progress": "ミュートしています…", - "hide_repeats": "リピートをかくす", - "show_repeats": "リピートをみる", - "admin_menu": { - "moderation": "モデレーション", - "grant_admin": "アドミンにする", - "revoke_admin": "アドミンをやめさせる", - "grant_moderator": "モデレーターにする", - "revoke_moderator": "モデレーターをやめさせる", - "activate_account": "アカウントをアクティブにする", - "deactivate_account": "アカウントをアクティブでなくする", - "delete_account": "アカウントをけす", - "force_nsfw": "すべてのとうこうをNSFWにする", - "strip_media": "とうこうからメディアをなくす", - "force_unlisted": "とうこうをアンリステッドにする", - "sandbox": "とうこうをフォロワーのみにする", - "disable_remote_subscription": "ほかのインスタンスからフォローされないようにする", - "disable_any_subscription": "フォローされないようにする", - "quarantine": "ほかのインスタンスのユーザーのとうこうをとめる", - "delete_user": "ユーザーをけす" - } - }, - "user_profile": { - "timeline_title": "ユーザータイムライン", - "profile_does_not_exist": "ごめんなさい。このプロフィールは、そんざいしません。", - "profile_loading_error": "ごめんなさい。プロフィールのロードがエラーになりました。" - }, - "user_reporting": { - "title": "つうほうする: {0}", - "add_comment_description": "このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:", - "additional_comments": "ついかのコメント", - "forward_description": "このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?", - "forward_to": "コピーをおくる: {0}", - "submit": "そうしん", - "generic_error": "あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。" - }, - "who_to_follow": { - "more": "くわしく", - "who_to_follow": "おすすめユーザー" - }, - "tool_tip": { - "media_upload": "メディアをアップロード", - "repeat": "リピート", - "reply": "リプライ", - "favorite": "おきにいり", - "user_settings": "ユーザーせってい" - }, - "upload": { - "error": { - "base": "アップロードにしっぱいしました。", - "file_too_big": "ファイルがおおきすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", - "default": "しばらくしてから、ためしてください" + "media_modal": { + "next": "つぎ", + "previous": "まえ" }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "nav": { + "about": "これはなに?", + "administration": "アドミニストレーション", + "back": "もどる", + "dms": "ダイレクトメッセージ", + "friend_requests": "フォローリクエスト", + "interactions": "やりとり", + "mentions": "メンション", + "preferences": "せってい", + "public_tl": "パブリックタイムライン", + "search": "さがす", + "timeline": "タイムライン", + "twkn": "つながっているすべてのネットワーク", + "user_search": "ユーザーをさがす", + "who_to_follow": "おすすめユーザー" + }, + "notifications": { + "broken_favorite": "ステータスがみつかりません。さがしています…", + "favorited_you": "あなたのステータスがおきにいりされました", + "followed_you": "フォローされました", + "load_older": "ふるいつうちをみる", + "no_more_notifications": "つうちはありません", + "notifications": "つうち", + "read": "よんだ!", + "repeated_you": "あなたのステータスがリピートされました" + }, + "password_reset": { + "check_email": "パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。", + "forgot_password": "パスワードを、わすれましたか?", + "instruction": "あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。", + "password_reset": "パスワードリセット", + "password_reset_disabled": "このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。", + "password_reset_required": "ログインするには、パスワードをリセットしてください。", + "password_reset_required_but_mailer_is_disabled": "あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。", + "placeholder": "あなたのメールアドレスかユーザーめい", + "return_home": "ホームページにもどる", + "too_many_requests": "パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。" + }, + "polls": { + "add_option": "オプションをふやす", + "add_poll": "いれふだをはじめる", + "expired": "いれふだは {0} まえに、おわりました", + "expires_in": "いれふだは {0} で、おわります", + "expiry": "いれふだのながさ", + "multiple_choices": "いくつでもえらべる", + "not_enough_options": "ユニークなオプションが、たりません", + "option": "オプション", + "single_choice": "ひとつえらぶ", + "type": "いれふだのかた", + "vote": "ふだをいれる", + "votes": "いれふだ" + }, + "post_status": { + "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。", + "account_not_locked_warning_link": "ロックされたアカウント", + "attachments_sensitive": "ファイルをNSFWにする", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "プレーンテキスト" + }, + "content_warning": "せつめい (かかなくてもよい)", + "default": "はねだくうこうに、つきました。", + "direct_warning_to_all": "このとうこうは、メンションされたすべてのユーザーが、みることができます。", + "direct_warning_to_first_only": "このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。", + "new_status": "とうこうする", + "posting": "とうこう", + "scope": { + "direct": "ダイレクト: メンションされたユーザーのみにとどきます", + "private": "フォロワーげんてい: フォロワーのみにとどきます", + "public": "パブリック: パブリックタイムラインにとどきます", + "unlisted": "アンリステッド: パブリックタイムラインにとどきません" + }, + "scope_notice": { + "private": "このとうこうは、あなたのフォロワーだけが、みることができます", + "public": "このとうこうは、だれでもみることができます", + "unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません" + } + }, + "registration": { + "bio": "プロフィール", + "bio_placeholder": "れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。", + "captcha": "CAPTCHA", + "email": "Eメール", + "fullname": "スクリーンネーム", + "fullname_placeholder": "れい: いわくら れいん", + "new_captcha": "もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります", + "password_confirm": "パスワードのかくにん", + "registration": "はじめる", + "token": "しょうたいトークン", + "username_placeholder": "れい: lain", + "validations": { + "email_required": "なにかかいてください", + "fullname_required": "なにかかいてください", + "password_confirmation_match": "パスワードがちがいます", + "password_confirmation_required": "なにかかいてください", + "password_required": "なにかかいてください", + "username_required": "なにかかいてください" + } + }, + "remote_user_resolver": { + "error": "みつかりませんでした。", + "remote_user_resolver": "リモートユーザーリゾルバー", + "searching_for": "さがしています:" + }, + "search": { + "hashtags": "ハッシュタグ", + "no_results": "みつかりませんでした", + "people": "ひとびと", + "people_talking": "{count} にんが、はなしています", + "person_talking": "{count} にんが、はなしています" + }, + "selectable_list": { + "select_all": "すべてえらぶ" + }, + "settings": { + "app_name": "アプリのなまえ", + "attachmentRadius": "ファイル", + "attachments": "ファイル", + "autohide_floating_post_button": "あたらしいとうこうのボタンを、じどうてきにかくす (モバイル)", + "avatar": "アバター", + "avatarAltRadius": "つうちのアバター", + "avatarRadius": "アバター", + "avatar_size_instruction": "アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。", + "background": "バックグラウンド", + "bio": "プロフィール", + "block_export": "ブロックのエクスポート", + "block_export_button": "ブロックをCSVファイルにエクスポート", + "block_import": "ブロックのインポート", + "block_import_error": "ブロックのインポートがエラーになりました", + "blocks_imported": "ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。", + "blocks_tab": "ブロック", + "btnRadius": "ボタン", + "cBlue": "リプライとフォロー", + "cGreen": "リピート", + "cOrange": "おきにいり", + "cRed": "キャンセル", + "change_email": "メールアドレスをかえる", + "change_email_error": "メールアドレスをかえようとしましたが、なにかがおかしいです。", + "change_password": "パスワードをかえる", + "change_password_error": "パスワードをかえることが、できなかったかもしれません。", + "changed_email": "メールアドレスをかえることができました!", + "changed_password": "パスワードが、かわりました!", + "checkboxRadius": "チェックボックス", + "collapse_subject": "せつめいのあるとうこうをたたむ", + "composing": "とうこう", + "confirm_new_password": "あたらしいパスワードのかくにん", + "current_avatar": "いまのアバター", + "current_password": "いまのパスワード", + "data_import_export_tab": "インポートとエクスポート", + "default_vis": "デフォルトのこうかいはんい", + "delete_account": "アカウントをけす", + "delete_account_description": "あなたのアカウントとメッセージが、きえます。", + "delete_account_error": "アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。", + "delete_account_instructions": "ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。", + "discoverable": "けんさくなどのサービスで、このアカウントをみつけてもよい", + "enable_web_push_notifications": "ウェブプッシュつうちをゆるす", + "enter_current_password_to_confirm": "あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください", + "export_theme": "セーブ", + "filtering": "フィルタリング", + "filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください", + "follow_export": "フォローのエクスポート", + "follow_export_button": "エクスポート", + "follow_import": "フォローインポート", + "follow_import_error": "フォローのインポートがエラーになりました", + "follows_imported": "フォローがインポートされました! すこしじかんがかかるかもしれません。", + "foreground": "フォアグラウンド", + "fun": "おたのしみ", + "general": "ぜんぱん", + "greentext": "ミームやじるし", + "hide_attachments_in_convo": "スレッドのファイルをかくす", + "hide_attachments_in_tl": "タイムラインのファイルをかくす", + "hide_filtered_statuses": "フィルターされたとうこうをかくす", + "hide_followers_count_description": "フォロワーのかずをみせない", + "hide_followers_description": "フォロワーをみせない", + "hide_follows_count_description": "フォローしているひとのかずをみせない", + "hide_follows_description": "フォローしているひとをみせない", + "hide_isp": "インスタンススペシフィックパネルをかくす", + "hide_muted_posts": "ミュートしたユーザーのとうこうをかくす", + "hide_post_stats": "とうこうのとうけいをかくす (れい: おきにいりのかず)", + "hide_user_stats": "ユーザーのとうけいをかくす (れい: フォロワーのかず)", + "import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする", + "import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする", + "import_theme": "ロード", + "inputRadius": "インプットフィールド", + "instance_default": "(デフォルト: {value})", + "instance_default_simple": "(デフォルト)", + "interface": "インターフェース", + "interfaceLanguage": "インターフェースのことば", + "invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。", + "limited_availability": "あなたのブラウザではできません", + "links": "リンク", + "lock_account_description": "あなたがみとめたひとだけ、あなたのアカウントをフォローできる", + "loop_video": "ビデオをくりかえす", + "loop_video_silent_only": "おとのないビデオだけくりかえす", + "max_thumbnails": "ひとつのとうこうにいれられるサムネイルのかず", + "mfa": { + "authentication_methods": "にんしょうメソッド", + "confirm_and_enable": "OTPをたしかめて、ゆうこうにする", + "generate_new_recovery_codes": "あたらしいリカバリーコードをつくる", + "otp": "OTP", + "recovery_codes": "リカバリーコード。", + "recovery_codes_warning": "コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。", + "scan": { + "desc": "あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:", + "secret_code": "キー", + "title": "スキャン" + }, + "setup_otp": "OTPをつくる", + "title": "2-ファクターにんしょう", + "verify": { + "desc": "2-ファクターにんしょうをつかうには、あなたの2-ファクターアプリのコードをいれてください:" + }, + "wait_pre_setup_otp": "OTPをよういしています", + "waiting_a_recovery_codes": "バックアップコードをうけとっています…", + "warning_of_generate_new_codes": "あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。" + }, + "minimal_scopes_mode": "こうかいはんいせんたくオプションを、ちいさくする", + "mutes_tab": "ミュート", + "name": "なまえ", + "name_bio": "なまえとプロフィール", + "new_email": "あたらしいメールアドレス", + "new_password": "あたらしいパスワード", + "no_blocks": "ブロックしていません", + "no_mutes": "ミュートしていません", + "no_rich_text_description": "リッチテキストをつかわない", + "notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。", + "notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。", + "notification_visibility": "ひょうじするつうち", + "notification_visibility_follows": "フォロー", + "notification_visibility_likes": "おきにいり", + "notification_visibility_mentions": "メンション", + "notification_visibility_repeats": "リピート", + "notifications": "つうち", + "nsfw_clickthrough": "NSFWなファイルをかくす", + "oauth_tokens": "OAuthトークン", + "pad_emoji": "えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる", + "panelRadius": "パネル", + "pause_on_unfocused": "タブにフォーカスがないときストリーミングをとめる", + "play_videos_in_modal": "ビデオをメディアビューアーでみる", + "post_status_content_type": "とうこうのコンテントタイプ", + "preload_images": "がぞうをさきよみする", + "presets": "プリセット", + "profile_background": "プロフィールのバックグラウンド", + "profile_banner": "プロフィールバナー", + "profile_tab": "プロフィール", + "radii_help": "インターフェースのまるさをせっていする", + "refresh_token": "トークンをリフレッシュ", + "replies_in_timeline": "タイムラインのリプライ", + "reply_visibility_all": "すべてのリプライをみる", + "reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる", + "reply_visibility_self": "わたしにあてられたリプライをみる", + "revoke_token": "とりけす", + "saving_err": "せっていをセーブできませんでした", + "saving_ok": "せっていをセーブしました", + "scope_copy": "リプライするとき、こうかいはんいをコピーする (DMのこうかいはんいは、つねにコピーされます)", + "search_user_to_block": "ブロックしたいひとを、ここでけんさくできます", + "search_user_to_mute": "ミュートしたいひとを、ここでけんさくできます", + "security": "セキュリティ", + "security_tab": "セキュリティ", + "set_new_avatar": "あたらしいアバターをせっていする", + "set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする", + "set_new_profile_banner": "あたらしいプロフィールバナーを設定する", + "settings": "せってい", + "show_admin_badge": "アドミンのしるしをみせる", + "show_moderator_badge": "モデレーターのしるしをみせる", + "stop_gifs": "カーソルをかさねたとき、GIFをうごかす", + "streaming": "うえまでスクロールしたとき、じどうてきにストリーミングする", + "style": { + "advanced_colors": { + "_tab_label": "くわしく", + "alert": "アラートのバックグラウンド", + "alert_error": "エラー", + "alert_warning": "けいこく", + "badge": "バッジのバックグラウンド", + "badge_notification": "つうち", + "borders": "さかいめ", + "buttons": "ボタン", + "faint_text": "うすいテキスト", + "inputs": "インプットフィールド", + "panel_header": "パネルヘッダー", + "top_bar": "トップバー" + }, + "common": { + "color": "いろ", + "contrast": { + "context": { + "18pt": "おおきい (18ポイントいじょう) テキスト", + "text": "テキスト" + }, + "hint": "コントラストは {ratio} です。{level}。({context})", + "level": { + "aa": "AAレベルガイドライン (ミニマル) をみたします", + "aaa": "AAAレベルガイドライン (レコメンデッド) をみたします", + "bad": "ガイドラインをみたしません" + } + }, + "opacity": "とうめいど" + }, + "common_colors": { + "_tab_label": "きょうつう", + "foreground_hint": "「くわしく」タブで、もっとこまかくせっていできます", + "main": "きょうつうのいろ", + "rgbo": "アイコンとアクセントとバッジ" + }, + "fonts": { + "_tab_label": "フォント", + "components": { + "input": "インプットフィールド", + "interface": "インターフェース", + "post": "とうこう", + "postCode": "モノスペース (とうこうがリッチテキストであるとき)" + }, + "custom": "カスタム", + "family": "フォントめい", + "help": "「カスタム」をえらんだときは、システムにあるフォントのなまえを、ただしくにゅうりょくしてください。", + "size": "おおきさ (px)", + "weight": "ふとさ" + }, + "preview": { + "button": "ボタン", + "checkbox": "りようきやくを、よみました", + "content": "ほんぶん", + "error": "エラーのれい", + "faint_link": "とてもたすけになるマニュアル", + "fine_print": "わたしたちの{0}を、よまないでください!", + "header": "プレビュー", + "header_faint": "エラーではありません", + "input": "はねだくうこうに、つきました。", + "link": "ハイパーリンク", + "mono": "monospace", + "text": "これは{0}と{1}のれいです" + }, + "radii": { + "_tab_label": "まるさ" + }, + "shadows": { + "_tab_label": "ひかりとかげ", + "blur": "ぼかし", + "component": "コンポーネント", + "components": { + "avatar": "ユーザーアバター (プロフィール)", + "avatarStatus": "ユーザーアバター (とうこう)", + "button": "ボタン", + "buttonHover": "ボタン (ホバー)", + "buttonPressed": "ボタン (おされているとき)", + "buttonPressedHover": "ボタン (ホバー、かつ、おされているとき)", + "input": "インプットフィールド", + "panel": "パネル", + "panelHeader": "パネルヘッダー", + "popup": "ポップアップとツールチップ", + "topBar": "トップバー" + }, + "filter_hint": { + "always_drop_shadow": "ブラウザーがサポートしていれば、つねに {0} がつかわれます。", + "avatar_inset": "うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。", + "drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。", + "inset_classic": "うちがわのかげは {0} をつかいます", + "spread_zero": "ひろがりが 0 よりもおおきなかげは、0 とおなじです" + }, + "inset": "うちがわ", + "override": "オーバーライド", + "shadow_id": "かげ #{value}", + "spread": "ひろがり" + }, + "switcher": { + "clear_all": "すべてクリア", + "clear_opacity": "とうめいどをクリア", + "keep_color": "いろをのこす", + "keep_fonts": "フォントをのこす", + "keep_opacity": "とうめいどをのこす", + "keep_roundness": "まるさをのこす", + "keep_shadows": "かげをのこす", + "reset": "リセット", + "save_load_hint": "「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。" + } + }, + "subject_input_always_show": "サブジェクトフィールドをいつでもひょうじする", + "subject_line_behavior": "リプライするときサブジェクトをコピーする", + "subject_line_email": "メールふう: \"re: サブジェクト\"", + "subject_line_mastodon": "マストドンふう: そのままコピー", + "subject_line_noop": "コピーしない", + "text": "もじ", + "theme": "テーマ", + "theme_help": "カラーテーマをカスタマイズできます。", + "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。", + "theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。", + "token": "トークン", + "tooltipRadius": "ツールチップとアラート", + "upload_a_photo": "がぞうをアップロード", + "use_contain_fit": "がぞうのサムネイルを、きりぬかない", + "use_one_click_nsfw": "NSFWなファイルを1クリックでひらく", + "user_settings": "ユーザーせってい", + "valid_until": "おわりのとき", + "values": { + "false": "いいえ", + "true": "はい" + }, + "version": { + "backend_version": "バックエンドのバージョン", + "frontend_version": "フロントエンドのバージョン", + "title": "バージョン" + } + }, + "status": { + "delete": "ステータスをけす", + "delete_confirm": "ほんとうに、このステータスを、けしてもいいですか?", + "favorites": "おきにいり", + "mute_conversation": "スレッドをミュートする", + "pin": "プロフィールにピンどめする", + "pinned": "ピンどめ", + "repeats": "リピート", + "replies_list": "へんしん:", + "reply_to": "へんしん:", + "unmute_conversation": "スレッドをミュートするのをやめる", + "unpin": "プロフィールにピンどめするのをやめる" + }, + "time": { + "in_future": "{0}で", + "in_past": "{0}前", + "now": "たった今", + "now_short": "たった今", + "unit": { + "days": "{0}日", + "days_short": "{0}日", + "hours": "{0}時間", + "hours_short": "{0}時間", + "minutes": "{0}分", + "minutes_short": "{0}分", + "months": "{0}ヶ月前", + "months_short": "{0}ヶ月前", + "seconds": "{0}秒", + "seconds_short": "{0}秒", + "weeks": "{0}週間", + "weeks_short": "{0}週間", + "years": "{0}年", + "years_short": "{0}年" + } + }, + "timeline": { + "collapse": "たたむ", + "conversation": "スレッド", + "load_older": "ふるいステータス", + "no_more_statuses": "これでおわりです", + "no_retweet_hint": "とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", + "no_statuses": "ありません", + "repeated": "リピート", + "show_new": "よみこみ", + "up_to_date": "さいしん" + }, + "tool_tip": { + "favorite": "おきにいり", + "media_upload": "メディアをアップロード", + "repeat": "リピート", + "reply": "リプライ", + "user_settings": "ユーザーせってい" + }, + "upload": { + "error": { + "base": "アップロードにしっぱいしました。", + "default": "しばらくしてから、ためしてください", + "file_too_big": "ファイルがおおきすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "アカウントをアクティブにする", + "deactivate_account": "アカウントをアクティブでなくする", + "delete_account": "アカウントをけす", + "delete_user": "ユーザーをけす", + "disable_any_subscription": "フォローされないようにする", + "disable_remote_subscription": "ほかのインスタンスからフォローされないようにする", + "force_nsfw": "すべてのとうこうをNSFWにする", + "force_unlisted": "とうこうをアンリステッドにする", + "grant_admin": "アドミンにする", + "grant_moderator": "モデレーターにする", + "moderation": "モデレーション", + "quarantine": "ほかのインスタンスのユーザーのとうこうをとめる", + "revoke_admin": "アドミンをやめさせる", + "revoke_moderator": "モデレーターをやめさせる", + "sandbox": "とうこうをフォロワーのみにする", + "strip_media": "とうこうからメディアをなくす" + }, + "approve": "うけいれ", + "block": "ブロック", + "block_progress": "ブロックしています…", + "blocked": "ブロックしています!", + "deny": "おことわり", + "favorites": "おきにいり", + "follow": "フォロー", + "follow_progress": "リクエストしています…", + "follow_sent": "リクエストを、おくりました!", + "follow_unfollow": "フォローをやめる", + "followees": "フォロー", + "followers": "フォロワー", + "following": "フォローしています!", + "follows_you": "フォローされました!", + "hidden": "かくされています", + "hide_repeats": "リピートをかくす", + "its_you": "これはあなたです!", + "media": "メディア", + "mention": "メンション", + "mute": "ミュート", + "mute_progress": "ミュートしています…", + "muted": "ミュートしています!", + "per_day": "/日", + "remote_follow": "リモートフォロー", + "report": "つうほう", + "show_repeats": "リピートをみる", + "statuses": "ステータス", + "subscribe": "サブスクライブ", + "unblock": "ブロックをやめる", + "unblock_progress": "ブロックをとりけしています…", + "unmute": "ミュートをやめる", + "unmute_progress": "ミュートをとりけしています…", + "unsubscribe": "サブスクライブをやめる" + }, + "user_profile": { + "profile_does_not_exist": "ごめんなさい。このプロフィールは、そんざいしません。", + "profile_loading_error": "ごめんなさい。プロフィールのロードがエラーになりました。", + "timeline_title": "ユーザータイムライン" + }, + "user_reporting": { + "add_comment_description": "このつうほうは、あなたのインスタンスのモデレーターに、おくられます。このアカウントを、つうほうするりゆうを、せつめいすることができます:", + "additional_comments": "ついかのコメント", + "forward_description": "このアカウントは、ほかのインスタンスのものです。そのインスタンスにも、このつうほうのコピーを、おくりますか?", + "forward_to": "コピーをおくる: {0}", + "generic_error": "あなたのリクエストをうけつけようとしましたが、エラーになってしまいました。", + "submit": "そうしん", + "title": "つうほうする: {0}" + }, + "who_to_follow": { + "more": "くわしく", + "who_to_follow": "おすすめユーザー" } - }, - "search": { - "people": "ひとびと", - "hashtags": "ハッシュタグ", - "person_talking": "{count} にんが、はなしています", - "people_talking": "{count} にんが、はなしています", - "no_results": "みつかりませんでした" - }, - "password_reset": { - "forgot_password": "パスワードを、わすれましたか?", - "password_reset": "パスワードリセット", - "instruction": "あなたのメールアドレスかユーザーめいをいれてください。パスワードをリセットするためのリンクをおくります。", - "placeholder": "あなたのメールアドレスかユーザーめい", - "check_email": "パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。", - "return_home": "ホームページにもどる", - "too_many_requests": "パスワードリセットを、ためすことが、おおすぎます。しばらくしてから、ためしてください。", - "password_reset_disabled": "このインスタンスでは、パスワードリセットは、できません。インスタンスのアドミニストレーターに、おといあわせください。", - "password_reset_required": "ログインするには、パスワードをリセットしてください。", - "password_reset_required_but_mailer_is_disabled": "あなたはパスワードのリセットがひつようです。しかし、まずいことに、このインスタンスでは、パスワードのリセットができなくなっています。このインスタンスのアドミニストレーターに、おといあわせください。" - } -} +} \ No newline at end of file diff --git a/src/i18n/ja_pedantic.json b/src/i18n/ja_pedantic.json index 583be0ad..b2d301f2 100644 --- a/src/i18n/ja_pedantic.json +++ b/src/i18n/ja_pedantic.json @@ -1,911 +1,879 @@ { - "chat": { - "title": "チャット" - }, - "exporter": { - "export": "エクスポート", - "processing": "処理中です。処理が完了すると、ファイルをダウンロードするよう指示があります" - }, - "features_panel": { - "chat": "チャット", - "gopher": "Gopher", - "media_proxy": "メディアプロクシ", - "scope_options": "公開範囲選択", - "text_limit": "文字の数", - "title": "有効な機能", - "who_to_follow": "おすすめユーザー", - "upload_limit": "ファイルサイズの上限", - "pleroma_chat_messages": "Pleroma チャット" - }, - "finder": { - "error_fetching_user": "ユーザー検索がエラーになりました", - "find_user": "ユーザーを探す" - }, - "general": { - "apply": "適用", - "submit": "送信", - "more": "続き", - "generic_error": "エラーになりました", - "optional": "省略可", - "show_more": "もっと見る", - "show_less": "たたむ", - "cancel": "キャンセル", - "disable": "無効", - "enable": "有効", - "confirm": "確認", - "verify": "検査", - "peek": "隠す", - "close": "閉じる", - "dismiss": "無視", - "retry": "もう一度お試し下さい", - "error_retry": "もう一度お試し下さい", - "loading": "読み込み中…", - "role": { - "moderator": "モデレーター", - "admin": "管理者" - }, - "flash_security": "Flashコンテンツが任意の命令を実行させることにより、コンピューターが危険にさらされることがあります。", - "flash_fail": "Flashコンテンツの読み込みに失敗しました。コンソールで詳細を確認できます。", - "flash_content": "(試験的機能)クリックしてFlashコンテンツを再生します。" - }, - "image_cropper": { - "crop_picture": "画像を切り抜く", - "save": "保存", - "save_without_cropping": "切り抜かずに保存", - "cancel": "キャンセル" - }, - "importer": { - "submit": "送信", - "success": "正常にインポートされました。", - "error": "このファイルをインポートするとき、エラーが発生しました。" - }, - "login": { - "login": "ログイン", - "description": "OAuthでログイン", - "logout": "ログアウト", - "password": "パスワード", - "placeholder": "例: lain", - "register": "登録", - "username": "ユーザー名", - "hint": "会話に加わるには、ログインしてください", - "authentication_code": "認証コード", - "enter_recovery_code": "リカバリーコードを入力してください", - "enter_two_factor_code": "2段階認証コードを入力してください", - "recovery_code": "リカバリーコード", - "heading": { - "totp": "2段階認証", - "recovery": "2段階リカバリー" - } - }, - "media_modal": { - "previous": "前", - "next": "次" - }, - "nav": { - "about": "このインスタンスについて", - "back": "戻る", - "chat": "ローカルチャット", - "friend_requests": "フォローリクエスト", - "mentions": "通知", - "interactions": "インタラクション", - "dms": "ダイレクトメッセージ", - "public_tl": "公開タイムライン", - "public_timeline_description": "このインスタンスからの公開投稿", - "timeline": "タイムライン", - "lists": "リスト", - "twkn": "すべてのネットワーク", - "twkn_timeline_description": "全連合からの投稿", - "bubble_timeline": "バブルタイムライン", - "bubble_timeline_description": "管理者がおすすめしているインスタンスからの投稿", - "user_search": "ユーザーを探す", - "search": "検索", - "who_to_follow": "おすすめユーザー", - "preferences": "設定", - "administration": "管理", - "bookmarks": "ブックマーク", - "timelines": "タイムライン", - "chats": "チャット", - "home_timeline": "ホームタイムライン", - "home_timeline_description": "フォローしているユーザーからの投稿", - "announcements": "お知らせ" - }, - "notifications": { - "broken_favorite": "ステータスが見つかりません。探しています…", - "favorited_you": "あなたのステータスがお気に入りされました", - "followed_you": "フォローされました", - "load_older": "古い通知をみる", - "notifications": "通知", - "read": "読んだ!", - "repeated_you": "あなたのステータスがリピートされました", - "no_more_notifications": "通知はありません", - "reacted_with": "{0} でリアクションしました", - "migrated_to": "インスタンスを引っ越しました", - "follow_request": "あなたをフォローしたいです", - "error": "通知の取得に失敗しました: {0}" - }, - "polls": { - "add_poll": "投票を追加", - "add_option": "選択肢を追加", - "option": "選択肢", - "votes": "票", - "vote": "投票", - "type": "投票の形式", - "single_choice": "択一式", - "multiple_choices": "複数選択式", - "expiry": "投票期間", - "expires_in": "投票は {0} で終了します", - "expired": "投票は {0} 前に終了しました", - "not_enough_options": "相異なる選択肢が不足しています", - "votes_count": "{count} 票 | {count} 票", - "people_voted_count": "{count} 人投票 | {count} 人投票" - }, - "emoji": { - "stickers": "ステッカー", - "emoji": "絵文字", - "keep_open": "ピッカーを開いたままにする", - "search_emoji": "絵文字を検索", - "add_emoji": "絵文字を挿入", - "custom": "カスタム絵文字", - "unicode": "Unicode絵文字", - "load_all": "全 {emojiAmount} 絵文字を読み込む", - "load_all_hint": "最初の {saneAmount} 絵文字を読み込みました、全て読み込むと重くなる可能性があります。" - }, - "stickers": { - "add_sticker": "ステッカーを追加" - }, - "interactions": { - "favs_repeats": "リピートとお気に入り", - "follows": "新しいフォロワー", - "load_older": "古いインタラクションを見る", - "moves": "ユーザーの引っ越し" - }, - "post_status": { - "new_status": "投稿する", - "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、誰でも、フォロワー限定のステータスを読むことができます。", - "account_not_locked_warning_link": "ロックされたアカウント", - "attachments_sensitive": "ファイルをNSFWにする", - "content_type": { - "text/plain": "プレーンテキスト", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "説明 (省略可)", - "default": "羽田空港に着きました。", - "direct_warning_to_all": "この投稿は、メンションされたすべてのユーザーが、見ることができます。", - "direct_warning_to_first_only": "この投稿は、メッセージの冒頭でメンションされたユーザーだけが、見ることができます。", - "direct_warning": "このステータスは、メンションされたユーザーだけが、読むことができます。", - "posting": "投稿", - "scope_notice": { - "public": "この投稿は、誰でも見ることができます", - "private": "この投稿は、あなたのフォロワーだけが、見ることができます", - "unlisted": "この投稿は、パブリックタイムラインと、接続しているすべてのネットワークには、表示されません" - }, - "scope": { - "direct": "ダイレクト: メンションされたユーザーのみに届きます", - "private": "フォロワー限定: フォロワーのみに届きます", - "public": "パブリック: 公開タイムラインに届きます", - "unlisted": "アンリステッド: 公開タイムラインに届きません", - "local": "ローカル: 連合に送信しません" - }, - "media_description_error": "メディアのアップロードに失敗しました。もう一度お試しください", - "empty_status_error": "投稿内容を入力してください", - "preview_empty": "何もありません", - "preview": "プレビュー", - "media_description": "メディアの説明", - "post": "投稿" - }, - "registration": { - "bio": "プロフィール", - "email": "Eメール", - "fullname": "スクリーンネーム", - "password_confirm": "パスワードの確認", - "registration": "登録", - "token": "招待トークン", - "captcha": "CAPTCHA", - "new_captcha": "文字が読めないときは、画像をクリックすると、新しい画像になります", - "username_placeholder": "例: lain", - "fullname_placeholder": "例: 岩倉玲音", - "bio_placeholder": "例:\nこんにちは。私は玲音。\n私はアニメのキャラクターで、日本の郊外に住んでいます。私をWiredで見たことがあるかもしれません。", - "validations": { - "username_required": "必須", - "fullname_required": "必須", - "email_required": "必須", - "password_required": "必須", - "password_confirmation_required": "必須", - "password_confirmation_match": "パスワードが違います" - }, - "reason_placeholder": "このインスタンスは、新規登録を手動で受け付けています。\n登録したい理由を、インスタンスの管理者に教えてください。", - "reason": "登録するための目的", - "register": "登録" - }, - "selectable_list": { - "select_all": "すべて選択" - }, - "settings": { - "app_name": "アプリの名称", - "security": "セキュリティ", - "enter_current_password_to_confirm": "あなたのアイデンティティを証明するため、現在のパスワードを入力してください", - "expert_mode": "詳細設定を表示", - "mfa": { - "otp": "OTP", - "setup_otp": "OTPのセットアップ", - "wait_pre_setup_otp": "OTPのプリセット", - "confirm_and_enable": "OTPの確認と有効化", - "title": "2段階認証", - "generate_new_recovery_codes": "新しいリカバリーコードを生成", - "warning_of_generate_new_codes": "新しいリカバリーコードを生成すると、古いコードは使用できなくなります。", - "recovery_codes": "リカバリーコード。", - "waiting_a_recovery_codes": "バックアップコードを受信しています…", - "recovery_codes_warning": "コードを紙に書くか、安全な場所に保存してください。そうでなければ、あなたはコードを再び見ることはできません。もし2段階認証アプリのアクセスを喪失し、なおかつ、リカバリーコードもないならば、あなたは自分のアカウントから閉め出されます。", - "authentication_methods": "認証方法", - "scan": { - "title": "スキャン", - "desc": "あなたの2段階認証アプリを使って、このQRコードをスキャンするか、テキストキーを入力してください:", - "secret_code": "キー" - }, - "verify": { - "desc": "2段階認証を有効にするには、あなたの2段階認証アプリのコードを入力してください:" - } - }, - "attachmentRadius": "ファイル", - "attachments": "ファイル", - "avatar": "アバター", - "avatarAltRadius": "通知のアバター", - "avatarRadius": "アバター", - "background": "バックグラウンド", - "bio": "プロフィール", - "block_export": "ブロックのエクスポート", - "block_export_button": "ブロックをCSVファイルにエクスポートする", - "block_import": "ブロックのインポート", - "block_import_error": "ブロックのインポートに失敗しました", - "blocks_imported": "ブロックをインポートしました! 実際に処理されるまでに、しばらく時間がかかります。", - "blocks_tab": "ブロック", - "btnRadius": "ボタン", - "cBlue": "返信とフォロー", - "cGreen": "リピート", - "cOrange": "お気に入り", - "cRed": "キャンセル", - "change_password": "パスワードを変える", - "change_password_error": "パスワードを変えることが、できなかったかもしれません。", - "changed_password": "パスワードが、変わりました!", - "collapse_subject": "説明のある投稿をたたむ", - "composing": "投稿", - "confirm_new_password": "新しいパスワードの確認", - "current_avatar": "現在のアバター", - "current_password": "現在のパスワード", - "current_profile_banner": "現在のプロフィールバナー", - "data_import_export_tab": "インポートとエクスポート", - "default_vis": "デフォルトの公開範囲", - "delete_account": "アカウントを消す", - "delete_account_description": "あなたのデータが消えて、アカウントが使えなくなります。", - "delete_account_error": "アカウントを消すことが、できなかったかもしれません。インスタンスの管理者に、連絡してください。", - "delete_account_instructions": "本当にアカウントを消してもいいなら、パスワードを入力してください。", - "discoverable": "検索などのサービスでこのアカウントを見つけることを許可する", - "disable_sticky_headers": "ヘッダーを追従させない", - "show_scrollbars": "カラムのスクロールバーを表示", - "avatar_size_instruction": "アバターの大きさは、150×150ピクセルか、それよりも大きくするといいです。", - "pad_emoji": "ピッカーから絵文字を挿入するとき、絵文字の両側にスペースを入れる", - "export_theme": "保存", - "filtering": "フィルタリング", - "filtering_explanation": "これらの言葉を含むすべてのものがミュートされます。1行に1つの言葉を書いてください", - "follow_export": "フォローのエクスポート", - "follow_export_button": "エクスポート", - "follow_export_processing": "お待ちください。まもなくファイルをダウンロードできます。", - "follow_import": "フォローのインポート", - "follow_import_error": "フォローのインポートがエラーになりました", - "follows_imported": "フォローがインポートされました! 少し時間がかかるかもしれません。", - "foreground": "フォアグラウンド", - "general": "全般", - "hide_attachments_in_convo": "スレッドのファイルを隠す", - "hide_attachments_in_tl": "タイムラインのファイルを隠す", - "hide_muted_posts": "ミュートしているユーザーの投稿を隠す", - "hide_muted_threads": "ミュートしているスレを隠す", - "hide_wordfiltered_statuses": "単語フィルタに一致する投稿を隠す", - "max_thumbnails": "投稿に含まれるサムネイルの最大数", - "hide_isp": "インスタンス固有パネルを隠す", - "preload_images": "画像を先読みする", - "use_one_click_nsfw": "NSFWなファイルを1クリックで開く", - "hide_post_stats": "投稿の統計を隠す (例: お気に入りの数)", - "hide_user_stats": "ユーザーの統計を隠す (例: フォロワーの数)", - "hide_filtered_statuses": "フィルターされた投稿を隠す", - "import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする", - "import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする", - "import_theme": "ロード", - "inputRadius": "インプットフィールド", - "checkboxRadius": "チェックボックス", - "instance_default": "(デフォルト: {value})", - "instance_default_simple": "(デフォルト)", - "interface": "インターフェース", - "interfaceLanguage": "インターフェースの言語", - "invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマは変更されませんでした。", - "limited_availability": "あなたのブラウザではできません", - "links": "リンク", - "lock_account_description": "あなたが認めた人だけ、あなたのアカウントをフォローできる", - "loop_video": "ビデオを繰り返す", - "loop_video_silent_only": "音のないビデオだけ繰り返す", - "mutes_tab": "ミュート", - "play_videos_in_modal": "ビデオをメディアビューアーで見る", - "use_contain_fit": "画像のサムネイルを、切り抜かない", - "name": "名前", - "name_bio": "名前とプロフィール", - "new_password": "新しいパスワード", - "notification_visibility": "表示する通知", - "notification_visibility_follows": "フォロー", - "notification_visibility_likes": "お気に入り", - "notification_visibility_mentions": "メンション", - "notification_visibility_repeats": "リピート", - "no_rich_text_description": "リッチテキストを使わない", - "no_blocks": "ブロックはありません", - "no_mutes": "ミュートはありません", - "hide_follows_description": "フォローしている人を見せない", - "hide_followers_description": "フォロワーを見せない", - "hide_follows_count_description": "フォローしている人の数を見せない", - "hide_followers_count_description": "フォロワーの数を見せない", - "show_admin_badge": "\"管理者\"のバッジを見せる", - "show_moderator_badge": "\"モデレーター\"のバッジを見せる", - "nsfw_clickthrough": "NSFWなファイルを隠す", - "oauth_tokens": "OAuthトークン", - "token": "トークン", - "refresh_token": "トークンを更新", - "valid_until": "まで有効", - "revoke_token": "取り消す", - "panelRadius": "パネル", - "pause_on_unfocused": "タブにフォーカスがないときストリーミングを止める", - "presets": "プリセット", - "profile_background": "プロフィールの背景", - "profile_banner": "プロフィールのバナー", - "profile_tab": "プロフィール", - "radii_help": "インターフェースの丸さを設定する", - "replies_in_timeline": "タイムラインのリプライ", - "reply_visibility_all": "すべてのリプライを見る", - "reply_visibility_following": "私に宛てられたリプライと、フォローしている人からのリプライを見る", - "reply_visibility_self": "私に宛てられたリプライを見る", - "autohide_floating_post_button": "新しい投稿ボタンを自動的に隠す (モバイル)", - "saving_err": "設定を保存できませんでした", - "saving_ok": "設定を保存しました", - "search_user_to_block": "ブロックしたいユーザーを検索", - "search_user_to_mute": "ミュートしたいユーザーを検索", - "security_tab": "セキュリティ", - "scope_copy": "返信するとき、公開範囲をコピーする (DMの公開範囲は、常にコピーされます)", - "minimal_scopes_mode": "公開範囲選択オプションを最小にする", - "set_new_avatar": "新しいアバターを設定する", - "set_new_profile_background": "新しいプロフィールのバックグラウンドを設定する", - "set_new_profile_banner": "新しいプロフィールバナーを設定する", - "settings": "設定", - "subject_input_always_show": "サブジェクトフィールドをいつでも表示する", - "subject_line_behavior": "返信するときサブジェクトをコピーする", - "subject_line_email": "メール風: \"re: サブジェクト\"", - "subject_line_mastodon": "マストドン風: そのままコピー", - "subject_line_noop": "コピーしない", - "post_status_content_type": "投稿のコンテントタイプ", - "stop_gifs": "カーソルを重ねたとき、GIFを動かす", - "streaming": "上までスクロールしたとき、自動的にストリーミングする", - "text": "文字", - "theme": "テーマ", - "theme_help": "カラーテーマをカスタマイズできます。", - "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、色と透明度をオーバーライドできます。「すべてクリア」ボタンを押すと、すべてのオーバーライドをやめます。", - "theme_help_v2_2": "バックグラウンドとテキストのコントラストを表すアイコンがあります。マウスをホバーすると、詳しい説明が出ます。透明な色を使っているときは、最悪の場合のコントラストが示されます。", - "third_column_mode": "空きがあれば、3つ目のカラム", - "third_column_mode_none": "を追加しない", - "third_column_mode_notifications": "で通知を表示", - "third_column_mode_postform": "で投稿フォームを表示", - "tooltipRadius": "ツールチップとアラート", - "upload_a_photo": "画像をアップロード", - "user_settings": "ユーザー設定", - "values": { - "false": "いいえ", - "true": "はい" - }, - "notifications": "通知", - "notification_mutes": "特定のユーザーからの通知を止めるには、ミュートしてください。", - "notification_blocks": "ブロックしているユーザーからの通知は、すべて止まります。", - "enable_web_push_notifications": "ウェブプッシュ通知を許可する", - "style": { - "switcher": { - "keep_color": "色を残す", - "keep_shadows": "影を残す", - "keep_opacity": "透明度を残す", - "keep_roundness": "丸さを残す", - "keep_fonts": "フォントを残す", - "save_load_hint": "「残す」オプションをONにすると、テーマを選んだときとロードしたとき、現在の設定を残します。また、テーマをエクスポートするとき、これらのオプションを維持します。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべての設定を保存します。", - "reset": "リセット", - "clear_all": "すべてクリア", - "clear_opacity": "透明度をクリア", - "help": { - "snapshot_missing": "テーマのスナップショットがありません。思っていた見た目と違うかもしれません。", - "migration_snapshot_ok": "念のために、テーマのスナップショットが読み込まれました。テーマのデータを読み込むことができます。", - "fe_downgraded": "フロントエンドが前のバージョンに戻りました。", - "fe_upgraded": "フロントエンドと一緒に、テーマエンジンが新しくなりました。", - "older_version_imported": "古いフロントエンドで作られたファイルをインポートしました。", - "future_version_imported": "新しいフロントエンドで作られたファイルをインポートしました。", - "v2_imported": "古いフロントエンドのためのファイルをインポートしました。設定した通りにならないかもしれません。", - "upgraded_from_v2": "フロントエンドが新しくなったので、今までの見た目と少し違うかもしれません。", - "snapshot_source_mismatch": "フロントエンドがロールバックと更新を繰り返したため、バージョンが競合しています。", - "migration_napshot_gone": "スナップショットがありません、覚えているものと見た目が違うかもしれません。", - "snapshot_present": "テーマのスナップショットが読み込まれました。設定は上書きされました。代わりとして実データを読み込むことができます。" + "about": { + "mrf": { + "federation": "連合", + "keyword": { + "ftl_removal": "「接続しているすべてのネットワーク」タイムラインから除外", + "is_replaced_by": "→", + "keyword_policies": "キーワードポリシー", + "reject": "拒否", + "replace": "置き換え" + }, + "mrf_policies": "有効なMRFポリシー", + "mrf_policies_desc": "MRFポリシーは、インスタンスの振る舞いを操作します。以下のポリシーが有効になっています:", + "simple": { + "accept": "許可", + "accept_desc": "このインスタンスでは、以下のインスタンスからのメッセージのみを受け付けます:", + "ftl_removal": "「既知のネットワーク」タイムラインから除外", + "ftl_removal_desc": "このインスタンスでは、以下のインスタンスを「既知のネットワーク」タイムラインから除外します:", + "instance": "インスタンス", + "media_nsfw": "メディアを閲覧注意に設定", + "media_nsfw_desc": "このインスタンスでは、以下のインスタンスからの投稿に対して、メディアを閲覧注意に設定します:", + "media_removal": "メディア除去", + "media_removal_desc": "このインスタンスでは、以下のインスタンスからの投稿に対して、メディアを除去します:", + "quarantine": "検疫", + "quarantine_desc": "このインスタンスでは、以下のインスタンスに対して公開投稿のみを送信します:", + "reject": "拒否", + "reject_desc": "このインスタンスでは、以下のインスタンスからのメッセージを受け付けません:", + "simple_policies": "インスタンス固有のポリシー" + } }, - "use_source": "新しいバージョン", - "use_snapshot": "古いバージョン", - "load_theme": "テーマの読み込み", - "keep_as_is": "変更しない" - }, - "common": { - "color": "色", - "opacity": "透明度", - "contrast": { - "hint": "コントラストは {ratio} です。{level}。({context})", - "level": { - "aa": "AAレベルガイドライン (最低限) を満たします", - "aaa": "AAAレベルガイドライン (推奨) を満たします", - "bad": "ガイドラインを満たしません" - }, - "context": { - "18pt": "大きい (18ポイント以上) テキスト", - "text": "テキスト" - } + "staff": "スタッフ" + }, + "announcements": { + "page_header": "お知らせ" + }, + "chats": { + "chats": "チャット一覧", + "delete": "削除", + "delete_confirm": "このメッセージを本当に消してもいいですか?", + "empty_chat_list_placeholder": "チャットはありません。新規チャットのボタンを押して始めましょう!", + "empty_message_error": "メッセージを入力して下さい", + "error_loading_chat": "チャットの読み込みに失敗しました。", + "error_sending_message": "メッセージの送信に失敗しました。", + "message_user": "{nickname} にメッセージ", + "more": "もっと見る", + "new": "新規チャット", + "you": "あなた:" + }, + "display_date": { + "today": "今日" + }, + "domain_mute_card": { + "mute": "ミュート", + "mute_progress": "ミュート中…", + "unmute": "ミュート解除", + "unmute_progress": "ミュート解除中…" + }, + "emoji": { + "add_emoji": "絵文字を挿入", + "custom": "カスタム絵文字", + "emoji": "絵文字", + "keep_open": "ピッカーを開いたままにする", + "load_all": "全 {emojiAmount} 絵文字を読み込む", + "load_all_hint": "最初の {saneAmount} 絵文字を読み込みました、全て読み込むと重くなる可能性があります。", + "search_emoji": "絵文字を検索", + "stickers": "ステッカー", + "unicode": "Unicode絵文字" + }, + "errors": { + "storage_unavailable": "ブラウザのストレージに接続できなかったため、ログインや設定情報は保存されません。Cookieを有効にしてください。" + }, + "exporter": { + "export": "エクスポート", + "processing": "処理中です。処理が完了すると、ファイルをダウンロードするよう指示があります" + }, + "features_panel": { + "media_proxy": "メディアプロクシ", + "scope_options": "公開範囲選択", + "text_limit": "文字の数", + "title": "有効な機能", + "upload_limit": "ファイルサイズの上限", + "who_to_follow": "おすすめユーザー" + }, + "file_type": { + "audio": "オーディオ", + "file": "ファイル", + "image": "画像", + "video": "ビデオ" + }, + "finder": { + "error_fetching_user": "ユーザー検索がエラーになりました", + "find_user": "ユーザーを探す" + }, + "general": { + "apply": "適用", + "cancel": "キャンセル", + "close": "閉じる", + "confirm": "確認", + "disable": "無効", + "dismiss": "無視", + "enable": "有効", + "error_retry": "もう一度お試し下さい", + "flash_content": "(試験的機能)クリックしてFlashコンテンツを再生します。", + "flash_fail": "Flashコンテンツの読み込みに失敗しました。コンソールで詳細を確認できます。", + "flash_security": "Flashコンテンツが任意の命令を実行させることにより、コンピューターが危険にさらされることがあります。", + "generic_error": "エラーになりました", + "loading": "読み込み中…", + "more": "続き", + "optional": "省略可", + "peek": "隠す", + "retry": "もう一度お試し下さい", + "role": { + "admin": "管理者", + "moderator": "モデレーター" + }, + "show_less": "たたむ", + "show_more": "もっと見る", + "submit": "送信", + "verify": "検査" + }, + "image_cropper": { + "cancel": "キャンセル", + "crop_picture": "画像を切り抜く", + "save": "保存", + "save_without_cropping": "切り抜かずに保存" + }, + "importer": { + "error": "このファイルをインポートするとき、エラーが発生しました。", + "submit": "送信", + "success": "正常にインポートされました。" + }, + "interactions": { + "favs_repeats": "リピートとお気に入り", + "follows": "新しいフォロワー", + "load_older": "古いインタラクションを見る", + "moves": "ユーザーの引っ越し" + }, + "login": { + "authentication_code": "認証コード", + "description": "OAuthでログイン", + "enter_recovery_code": "リカバリーコードを入力してください", + "enter_two_factor_code": "2段階認証コードを入力してください", + "heading": { + "recovery": "2段階リカバリー", + "totp": "2段階認証" + }, + "hint": "会話に加わるには、ログインしてください", + "login": "ログイン", + "logout": "ログアウト", + "password": "パスワード", + "placeholder": "例: lain", + "recovery_code": "リカバリーコード", + "register": "登録", + "username": "ユーザー名" + }, + "media_modal": { + "next": "次", + "previous": "前" + }, + "nav": { + "about": "このインスタンスについて", + "administration": "管理", + "announcements": "お知らせ", + "back": "戻る", + "bookmarks": "ブックマーク", + "bubble_timeline": "バブルタイムライン", + "bubble_timeline_description": "管理者がおすすめしているインスタンスからの投稿", + "chats": "チャット", + "dms": "ダイレクトメッセージ", + "friend_requests": "フォローリクエスト", + "home_timeline": "ホームタイムライン", + "home_timeline_description": "フォローしているユーザーからの投稿", + "interactions": "インタラクション", + "lists": "リスト", + "mentions": "通知", + "preferences": "設定", + "public_timeline_description": "このインスタンスからの公開投稿", + "public_tl": "公開タイムライン", + "search": "検索", + "timeline": "タイムライン", + "timelines": "タイムライン", + "twkn": "すべてのネットワーク", + "twkn_timeline_description": "全連合からの投稿", + "user_search": "ユーザーを探す", + "who_to_follow": "おすすめユーザー" + }, + "notifications": { + "broken_favorite": "ステータスが見つかりません。探しています…", + "error": "通知の取得に失敗しました: {0}", + "favorited_you": "あなたのステータスがお気に入りされました", + "follow_request": "あなたをフォローしたいです", + "followed_you": "フォローされました", + "load_older": "古い通知をみる", + "migrated_to": "インスタンスを引っ越しました", + "no_more_notifications": "通知はありません", + "notifications": "通知", + "reacted_with": "{0} でリアクションしました", + "read": "読んだ!", + "repeated_you": "あなたのステータスがリピートされました" + }, + "password_reset": { + "check_email": "パスワードをリセットするためのリンクが記載されたメールが届いているか確認してください。", + "forgot_password": "パスワードを忘れましたか?", + "instruction": "メールアドレスまたはユーザー名を入力してください。パスワードをリセットするためのリンクを送信します。", + "password_reset": "パスワードリセット", + "password_reset_disabled": "このインスタンスではパスワードリセットは無効になっています。インスタンスの管理者に連絡してください。", + "password_reset_required": "ログインするためにパスワードを初期化してください。", + "password_reset_required_but_mailer_is_disabled": "パスワードの初期化が必要ですが、初期化は使えません。インスタンスの管理者に連絡してください。", + "placeholder": "メールアドレスまたはユーザー名", + "return_home": "ホームページに戻る", + "too_many_requests": "試行回数の制限に達しました。しばらく時間を置いてから再試行してください。" + }, + "polls": { + "add_option": "選択肢を追加", + "add_poll": "投票を追加", + "expired": "投票は {0} 前に終了しました", + "expires_in": "投票は {0} で終了します", + "expiry": "投票期間", + "multiple_choices": "複数選択式", + "not_enough_options": "相異なる選択肢が不足しています", + "option": "選択肢", + "people_voted_count": "{count} 人投票 | {count} 人投票", + "single_choice": "択一式", + "type": "投票の形式", + "vote": "投票", + "votes": "票", + "votes_count": "{count} 票 | {count} 票" + }, + "post_status": { + "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、誰でも、フォロワー限定のステータスを読むことができます。", + "account_not_locked_warning_link": "ロックされたアカウント", + "attachments_sensitive": "ファイルをNSFWにする", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "プレーンテキスト" + }, + "content_warning": "説明 (省略可)", + "default": "羽田空港に着きました。", + "direct_warning_to_all": "この投稿は、メンションされたすべてのユーザーが、見ることができます。", + "direct_warning_to_first_only": "この投稿は、メッセージの冒頭でメンションされたユーザーだけが、見ることができます。", + "empty_status_error": "投稿内容を入力してください", + "media_description": "メディアの説明", + "media_description_error": "メディアのアップロードに失敗しました。もう一度お試しください", + "new_status": "投稿する", + "post": "投稿", + "posting": "投稿", + "preview": "プレビュー", + "preview_empty": "何もありません", + "scope": { + "direct": "ダイレクト: メンションされたユーザーのみに届きます", + "local": "ローカル: 連合に送信しません", + "private": "フォロワー限定: フォロワーのみに届きます", + "public": "パブリック: 公開タイムラインに届きます", + "unlisted": "アンリステッド: 公開タイムラインに届きません" + }, + "scope_notice": { + "private": "この投稿は、あなたのフォロワーだけが、見ることができます", + "public": "この投稿は、誰でも見ることができます", + "unlisted": "この投稿は、パブリックタイムラインと、接続しているすべてのネットワークには、表示されません" } - }, - "common_colors": { - "_tab_label": "共通", - "main": "共通の色", - "foreground_hint": "「詳細」タブで、もっと細かく設定できます", - "rgbo": "アイコンとアクセントとバッジ" - }, - "advanced_colors": { - "_tab_label": "詳細", - "alert": "アラートのバックグラウンド", - "alert_error": "エラー", - "badge": "バッジのバックグラウンド", - "badge_notification": "通知", - "panel_header": "パネルヘッダー", - "top_bar": "トップバー", - "borders": "境界", - "buttons": "ボタン", - "inputs": "インプットフィールド", - "faint_text": "薄いテキスト", - "alert_neutral": "それ以外", - "chat": { - "border": "境界線", - "outgoing": "送信", - "incoming": "受信" - }, - "tabs": "タブ", - "toggled": "切り替えたとき", - "disabled": "無効なとき", - "selectedMenu": "選択されたメニューアイテム", - "selectedPost": "選択された投稿", - "pressed": "押したとき", - "highlight": "強調された要素", - "icons": "アイコン", - "poll": "投票グラフ", - "wallpaper": "壁紙", - "underlay": "アンダーレイ", - "popover": "ツールチップ、メニュー、ポップオーバー", - "post": "投稿/プロフィール", - "alert_warning": "警告" - }, - "radii": { - "_tab_label": "丸さ" - }, - "shadows": { - "_tab_label": "光と影", - "component": "コンポーネント", - "override": "オーバーライド", - "shadow_id": "影 #{value}", - "blur": "ぼかし", - "spread": "広がり", - "inset": "内側", - "hint": "影の設定では、色の値として --variable を使うことができます。これはCSS3変数です。ただし、透明度の設定は、効かなくなります。", - "filter_hint": { - "always_drop_shadow": "ブラウザーがサポートしていれば、常に {0} が使われます。", - "drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。", - "avatar_inset": "内側の影と外側の影を同時に使うと、透明なアバターの表示が乱れます。", - "spread_zero": "広がりが 0 よりも大きな影は、0 と同じです", - "inset_classic": "内側の影は {0} を使います" - }, - "components": { - "panel": "パネル", - "panelHeader": "パネルヘッダー", - "topBar": "トップバー", - "avatar": "ユーザーアバター (プロフィール)", - "avatarStatus": "ユーザーアバター (投稿)", - "popup": "ポップアップとツールチップ", - "button": "ボタン", - "buttonHover": "ボタン (ホバー)", - "buttonPressed": "ボタン (押されているとき)", - "buttonPressedHover": "ボタン (ホバー、かつ、押されているとき)", - "input": "インプットフィールド" - }, - "hintV3": "影の場合は、 {0} 表記を使って他の色スロットを使うこともできます。" - }, - "fonts": { - "_tab_label": "フォント", - "help": "「カスタム」を選んだときは、システムにあるフォントの名前を、正しく入力してください。", - "components": { - "interface": "インターフェース", - "input": "インプットフィールド", - "post": "投稿", - "postCode": "等幅 (投稿がリッチテキストであるとき)" - }, - "family": "フォント名", - "size": "大きさ (px)", - "weight": "太さ", - "custom": "カスタム" - }, - "preview": { - "header": "プレビュー", - "content": "本文", - "error": "エラーの例", - "button": "ボタン", - "text": "これは{0}と{1}の例です", - "mono": "monospace", - "input": "羽田空港に着きました。", - "faint_link": "とても助けになるマニュアル", - "fine_print": "私たちの{0}を、読まないでください!", - "header_faint": "エラーではありません", - "checkbox": "利用規約を読みました", - "link": "ハイパーリンク" - } }, - "version": { - "title": "バージョン", - "backend_version": "バックエンドのバージョン", - "frontend_version": "フロントエンドのバージョン" + "registration": { + "bio": "プロフィール", + "bio_placeholder": "例:\nこんにちは。私は玲音。\n私はアニメのキャラクターで、日本の郊外に住んでいます。私をWiredで見たことがあるかもしれません。", + "captcha": "CAPTCHA", + "email": "Eメール", + "fullname": "スクリーンネーム", + "fullname_placeholder": "例: 岩倉玲音", + "new_captcha": "文字が読めないときは、画像をクリックすると、新しい画像になります", + "password_confirm": "パスワードの確認", + "reason": "登録するための目的", + "reason_placeholder": "このインスタンスは、新規登録を手動で受け付けています。\n登録したい理由を、インスタンスの管理者に教えてください。", + "register": "登録", + "registration": "登録", + "token": "招待トークン", + "username_placeholder": "例: lain", + "validations": { + "email_required": "必須", + "fullname_required": "必須", + "password_confirmation_match": "パスワードが違います", + "password_confirmation_required": "必須", + "password_required": "必須", + "username_required": "必須" + } }, - "notification_setting_hide_notification_contents": "送った人と内容を、プッシュ通知に表示しない", - "notification_setting_privacy": "プライバシー", - "notification_setting_block_from_strangers": "フォローしていないユーザーからの通知を拒否する", - "notification_setting_filters": "フィルター", - "mention_link_display": "メンションリンクの表示モード", - "mention_link_display_short": "名前のみ、例:{'@'}foo", - "mention_link_display_full_for_remote": "ローカルユーザー: 名前のみ、リモートユーザー: 名前とドメイン", - "mention_link_display_full": "名前とドメイン、例: {'@'}foo{'@'}example.org", - "fun": "お楽しみ", - "virtual_scrolling": "タイムラインの描画を最適化する", - "type_domains_to_mute": "ミュートしたいドメインを検索", - "useStreamingApiWarning": "(実験中で、投稿を取りこぼすかもしれないので、おすすめしません)", - "useStreamingApi": "投稿と通知を、すぐに受け取る", - "user_mutes": "ユーザー", - "reset_background_confirm": "本当にバックグラウンドを初期化しますか?", - "reset_banner_confirm": "本当にバナーを初期化しますか?", - "reset_avatar_confirm": "本当にアバターを初期化しますか?", - "hide_wallpaper": "インスタンスのバックグラウンドを隠す", - "reset_profile_background": "プロフィールのバックグラウンドを初期化", - "reset_profile_banner": "プロフィールのバナーを初期化", - "reset_avatar": "アバターを初期化", - "notification_visibility_emoji_reactions": "リアクション", - "notification_visibility_moves": "ユーザーの引っ越し", - "new_email": "新しいメールアドレス", - "post_look_feel": "投稿の見た目", - "mention_links": "メンションリンク", - "profile_fields": { - "value": "内容", - "name": "ラベル", - "add_field": "枠を追加", - "label": "プロフィール補足情報" + "remote_user_resolver": { + "error": "見つかりませんでした。", + "remote_user_resolver": "リモートユーザーリゾルバ", + "searching_for": "検索中" }, - "accent": "アクセント", - "mutes_imported": "ミュートをインポートしました!少し時間がかかるかもしれません。", - "emoji_reactions_on_timeline": "絵文字リアクションをタイムラインに表示", - "domain_mutes": "ドメイン", - "mutes_and_blocks": "ミュートとブロック", - "chatMessageRadius": "チャットメッセージ", - "change_email_error": "メールアドレスを変えることが、できなかったかもしれません。", - "changed_email": "メールアドレスが、変わりました!", - "change_email": "メールアドレスを変える", - "bot": "これは bot アカウントです", - "mute_export_button": "ミュートをCSVファイルにエクスポートする", - "import_mutes_from_a_csv_file": "CSVファイルからミュートをインポートする", - "mute_import_error": "ミュートのインポートに失敗しました", - "mute_import": "ミュートのインポート", - "mute_export": "ミュートのエクスポート", - "allow_following_move": "フォロー中のアカウントが引っ越したとき、自動フォローを許可する", - "setting_changed": "規定の設定と異なっています", - "greentext": "引用を緑色で表示", - "sensitive_by_default": "はじめから投稿をセンシティブとして設定", - "sensitive_if_subject": "ステータスにサブジェクトをついたらNSFWにする", - "render_mfm": "Misskey Markdownを表示", - "more_settings": "その他の設定", - "reply_visibility_self_short": "自分宛のリプライを見る", - "reply_visibility_following_short": "フォローしている人に宛てられたリプライを見る", - "hide_all_muted_posts": "ミュートした投稿を隠す", - "hide_media_previews": "メディアのプレビューを隠す", - "word_filter": "単語フィルタ", - "file_export_import": { - "errors": { - "invalid_file": "これはPleromaの設定をバックアップしたファイルではありません。", - "file_slightly_new": "ファイルのマイナーバージョンが異なり、一部の設定が読み込まれないことがあります" - }, - "restore_settings": "設定をファイルから復元する", - "backup_settings_theme": "テーマを含む設定をファイルにバックアップする", - "backup_settings": "設定をファイルにバックアップする", - "backup_restore": "設定をバックアップ" + "search": { + "hashtags": "ハッシュタグ", + "no_results": "見つかりませんでした", + "people": "人々", + "people_talking": "{count} 人が話しています", + "person_talking": "{count} 人が話しています" }, - "save": "変更を保存", - "hide_shoutbox": "Shoutboxを表示しない", - "always_show_post_button": "投稿ボタンを常に表示", - "right_sidebar": "サイドバーを右に表示" - }, - "time": { - "now": "たった今", - "now_short": "たった今", - "in_future": "{0}で", - "in_past": "{0}前", - "unit": { - "day": "{0}日", - "days": "{0}日", - "day_short": "{0}日", - "days_short": "{0}日", - "hour": "{0}時間", - "hours": "{0}時間", - "hour_short": "{0}時間", - "hours_short": "{0}時間", - "minute": "{0}分", - "minutes": "{0}分", - "minute_short": "{0}分", - "minutes_short": "{0}分", - "month": "{0}ヶ月前", - "months": "{0}ヶ月前", - "month_short": "{0}ヶ月前", - "months_short": "{0}ヶ月前", - "second": "{0}秒", - "seconds": "{0}秒", - "second_short": "{0}秒", - "seconds_short": "{0}秒", - "week": "{0}週間", - "weeks": "{0}週間", - "week_short": "{0}週間", - "weeks_short": "{0}週間", - "year": "{0}年", - "years": "{0}年", - "year_short": "{0}年", - "years_short": "{0}年" + "selectable_list": { + "select_all": "すべて選択" + }, + "settings": { + "accent": "アクセント", + "allow_following_move": "フォロー中のアカウントが引っ越したとき、自動フォローを許可する", + "always_show_post_button": "投稿ボタンを常に表示", + "app_name": "アプリの名称", + "attachmentRadius": "ファイル", + "attachments": "ファイル", + "autohide_floating_post_button": "新しい投稿ボタンを自動的に隠す (モバイル)", + "avatar": "アバター", + "avatarAltRadius": "通知のアバター", + "avatarRadius": "アバター", + "avatar_size_instruction": "アバターの大きさは、150×150ピクセルか、それよりも大きくするといいです。", + "background": "バックグラウンド", + "bio": "プロフィール", + "block_export": "ブロックのエクスポート", + "block_export_button": "ブロックをCSVファイルにエクスポートする", + "block_import": "ブロックのインポート", + "block_import_error": "ブロックのインポートに失敗しました", + "blocks_imported": "ブロックをインポートしました! 実際に処理されるまでに、しばらく時間がかかります。", + "blocks_tab": "ブロック", + "bot": "これは bot アカウントです", + "btnRadius": "ボタン", + "cBlue": "返信とフォロー", + "cGreen": "リピート", + "cOrange": "お気に入り", + "cRed": "キャンセル", + "change_email": "メールアドレスを変える", + "change_email_error": "メールアドレスを変えることが、できなかったかもしれません。", + "change_password": "パスワードを変える", + "change_password_error": "パスワードを変えることが、できなかったかもしれません。", + "changed_email": "メールアドレスが、変わりました!", + "changed_password": "パスワードが、変わりました!", + "chatMessageRadius": "チャットメッセージ", + "checkboxRadius": "チェックボックス", + "collapse_subject": "説明のある投稿をたたむ", + "composing": "投稿", + "confirm_new_password": "新しいパスワードの確認", + "current_avatar": "現在のアバター", + "current_password": "現在のパスワード", + "data_import_export_tab": "インポートとエクスポート", + "default_vis": "デフォルトの公開範囲", + "delete_account": "アカウントを消す", + "delete_account_description": "あなたのデータが消えて、アカウントが使えなくなります。", + "delete_account_error": "アカウントを消すことが、できなかったかもしれません。インスタンスの管理者に、連絡してください。", + "delete_account_instructions": "本当にアカウントを消してもいいなら、パスワードを入力してください。", + "disable_sticky_headers": "ヘッダーを追従させない", + "discoverable": "検索などのサービスでこのアカウントを見つけることを許可する", + "domain_mutes": "ドメイン", + "emoji_reactions_on_timeline": "絵文字リアクションをタイムラインに表示", + "enable_web_push_notifications": "ウェブプッシュ通知を許可する", + "enter_current_password_to_confirm": "あなたのアイデンティティを証明するため、現在のパスワードを入力してください", + "expert_mode": "詳細設定を表示", + "export_theme": "保存", + "file_export_import": { + "backup_restore": "設定をバックアップ", + "backup_settings": "設定をファイルにバックアップする", + "backup_settings_theme": "テーマを含む設定をファイルにバックアップする", + "errors": { + "file_slightly_new": "ファイルのマイナーバージョンが異なり、一部の設定が読み込まれないことがあります", + "invalid_file": "これはPleromaの設定をバックアップしたファイルではありません。" + }, + "restore_settings": "設定をファイルから復元する" + }, + "filtering": "フィルタリング", + "filtering_explanation": "これらの言葉を含むすべてのものがミュートされます。1行に1つの言葉を書いてください", + "follow_export": "フォローのエクスポート", + "follow_export_button": "エクスポート", + "follow_import": "フォローのインポート", + "follow_import_error": "フォローのインポートがエラーになりました", + "follows_imported": "フォローがインポートされました! 少し時間がかかるかもしれません。", + "foreground": "フォアグラウンド", + "fun": "お楽しみ", + "general": "全般", + "greentext": "引用を緑色で表示", + "hide_all_muted_posts": "ミュートした投稿を隠す", + "hide_attachments_in_convo": "スレッドのファイルを隠す", + "hide_attachments_in_tl": "タイムラインのファイルを隠す", + "hide_filtered_statuses": "フィルターされた投稿を隠す", + "hide_followers_count_description": "フォロワーの数を見せない", + "hide_followers_description": "フォロワーを見せない", + "hide_follows_count_description": "フォローしている人の数を見せない", + "hide_follows_description": "フォローしている人を見せない", + "hide_isp": "インスタンス固有パネルを隠す", + "hide_media_previews": "メディアのプレビューを隠す", + "hide_muted_posts": "ミュートしているユーザーの投稿を隠す", + "hide_muted_threads": "ミュートしているスレを隠す", + "hide_post_stats": "投稿の統計を隠す (例: お気に入りの数)", + "hide_shoutbox": "Shoutboxを表示しない", + "hide_user_stats": "ユーザーの統計を隠す (例: フォロワーの数)", + "hide_wallpaper": "インスタンスのバックグラウンドを隠す", + "hide_wordfiltered_statuses": "単語フィルタに一致する投稿を隠す", + "import_blocks_from_a_csv_file": "CSVファイルからブロックをインポートする", + "import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする", + "import_mutes_from_a_csv_file": "CSVファイルからミュートをインポートする", + "import_theme": "ロード", + "inputRadius": "インプットフィールド", + "instance_default": "(デフォルト: {value})", + "instance_default_simple": "(デフォルト)", + "interface": "インターフェース", + "interfaceLanguage": "インターフェースの言語", + "invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマは変更されませんでした。", + "limited_availability": "あなたのブラウザではできません", + "links": "リンク", + "lock_account_description": "あなたが認めた人だけ、あなたのアカウントをフォローできる", + "loop_video": "ビデオを繰り返す", + "loop_video_silent_only": "音のないビデオだけ繰り返す", + "max_thumbnails": "投稿に含まれるサムネイルの最大数", + "mention_link_display": "メンションリンクの表示モード", + "mention_link_display_full": "名前とドメイン、例: {'@'}foo{'@'}example.org", + "mention_link_display_full_for_remote": "ローカルユーザー: 名前のみ、リモートユーザー: 名前とドメイン", + "mention_link_display_short": "名前のみ、例:{'@'}foo", + "mention_links": "メンションリンク", + "mfa": { + "authentication_methods": "認証方法", + "confirm_and_enable": "OTPの確認と有効化", + "generate_new_recovery_codes": "新しいリカバリーコードを生成", + "otp": "OTP", + "recovery_codes": "リカバリーコード。", + "recovery_codes_warning": "コードを紙に書くか、安全な場所に保存してください。そうでなければ、あなたはコードを再び見ることはできません。もし2段階認証アプリのアクセスを喪失し、なおかつ、リカバリーコードもないならば、あなたは自分のアカウントから閉め出されます。", + "scan": { + "desc": "あなたの2段階認証アプリを使って、このQRコードをスキャンするか、テキストキーを入力してください:", + "secret_code": "キー", + "title": "スキャン" + }, + "setup_otp": "OTPのセットアップ", + "title": "2段階認証", + "verify": { + "desc": "2段階認証を有効にするには、あなたの2段階認証アプリのコードを入力してください:" + }, + "wait_pre_setup_otp": "OTPのプリセット", + "waiting_a_recovery_codes": "バックアップコードを受信しています…", + "warning_of_generate_new_codes": "新しいリカバリーコードを生成すると、古いコードは使用できなくなります。" + }, + "minimal_scopes_mode": "公開範囲選択オプションを最小にする", + "more_settings": "その他の設定", + "mute_export": "ミュートのエクスポート", + "mute_export_button": "ミュートをCSVファイルにエクスポートする", + "mute_import": "ミュートのインポート", + "mute_import_error": "ミュートのインポートに失敗しました", + "mutes_and_blocks": "ミュートとブロック", + "mutes_imported": "ミュートをインポートしました!少し時間がかかるかもしれません。", + "mutes_tab": "ミュート", + "name": "名前", + "name_bio": "名前とプロフィール", + "new_email": "新しいメールアドレス", + "new_password": "新しいパスワード", + "no_blocks": "ブロックはありません", + "no_mutes": "ミュートはありません", + "no_rich_text_description": "リッチテキストを使わない", + "notification_blocks": "ブロックしているユーザーからの通知は、すべて止まります。", + "notification_mutes": "特定のユーザーからの通知を止めるには、ミュートしてください。", + "notification_setting_block_from_strangers": "フォローしていないユーザーからの通知を拒否する", + "notification_setting_filters": "フィルター", + "notification_setting_hide_notification_contents": "送った人と内容を、プッシュ通知に表示しない", + "notification_setting_privacy": "プライバシー", + "notification_visibility": "表示する通知", + "notification_visibility_emoji_reactions": "リアクション", + "notification_visibility_follows": "フォロー", + "notification_visibility_likes": "お気に入り", + "notification_visibility_mentions": "メンション", + "notification_visibility_moves": "ユーザーの引っ越し", + "notification_visibility_repeats": "リピート", + "notifications": "通知", + "nsfw_clickthrough": "NSFWなファイルを隠す", + "oauth_tokens": "OAuthトークン", + "pad_emoji": "ピッカーから絵文字を挿入するとき、絵文字の両側にスペースを入れる", + "panelRadius": "パネル", + "pause_on_unfocused": "タブにフォーカスがないときストリーミングを止める", + "play_videos_in_modal": "ビデオをメディアビューアーで見る", + "post_look_feel": "投稿の見た目", + "post_status_content_type": "投稿のコンテントタイプ", + "preload_images": "画像を先読みする", + "presets": "プリセット", + "profile_background": "プロフィールの背景", + "profile_banner": "プロフィールのバナー", + "profile_fields": { + "add_field": "枠を追加", + "label": "プロフィール補足情報", + "name": "ラベル", + "value": "内容" + }, + "profile_tab": "プロフィール", + "radii_help": "インターフェースの丸さを設定する", + "refresh_token": "トークンを更新", + "render_mfm": "Misskey Markdownを表示", + "replies_in_timeline": "タイムラインのリプライ", + "reply_visibility_all": "すべてのリプライを見る", + "reply_visibility_following": "私に宛てられたリプライと、フォローしている人からのリプライを見る", + "reply_visibility_following_short": "フォローしている人に宛てられたリプライを見る", + "reply_visibility_self": "私に宛てられたリプライを見る", + "reply_visibility_self_short": "自分宛のリプライを見る", + "reset_avatar": "アバターを初期化", + "reset_avatar_confirm": "本当にアバターを初期化しますか?", + "reset_background_confirm": "本当にバックグラウンドを初期化しますか?", + "reset_banner_confirm": "本当にバナーを初期化しますか?", + "reset_profile_background": "プロフィールのバックグラウンドを初期化", + "reset_profile_banner": "プロフィールのバナーを初期化", + "revoke_token": "取り消す", + "right_sidebar": "サイドバーを右に表示", + "save": "変更を保存", + "saving_err": "設定を保存できませんでした", + "saving_ok": "設定を保存しました", + "scope_copy": "返信するとき、公開範囲をコピーする (DMの公開範囲は、常にコピーされます)", + "search_user_to_block": "ブロックしたいユーザーを検索", + "search_user_to_mute": "ミュートしたいユーザーを検索", + "security": "セキュリティ", + "security_tab": "セキュリティ", + "sensitive_by_default": "はじめから投稿をセンシティブとして設定", + "sensitive_if_subject": "ステータスにサブジェクトをついたらNSFWにする", + "set_new_avatar": "新しいアバターを設定する", + "set_new_profile_background": "新しいプロフィールのバックグラウンドを設定する", + "set_new_profile_banner": "新しいプロフィールバナーを設定する", + "setting_changed": "規定の設定と異なっています", + "settings": "設定", + "show_admin_badge": "\"管理者\"のバッジを見せる", + "show_moderator_badge": "\"モデレーター\"のバッジを見せる", + "show_scrollbars": "カラムのスクロールバーを表示", + "stop_gifs": "カーソルを重ねたとき、GIFを動かす", + "streaming": "上までスクロールしたとき、自動的にストリーミングする", + "style": { + "advanced_colors": { + "_tab_label": "詳細", + "alert": "アラートのバックグラウンド", + "alert_error": "エラー", + "alert_neutral": "それ以外", + "alert_warning": "警告", + "badge": "バッジのバックグラウンド", + "badge_notification": "通知", + "borders": "境界", + "buttons": "ボタン", + "chat": { + "border": "境界線", + "incoming": "受信", + "outgoing": "送信" + }, + "disabled": "無効なとき", + "faint_text": "薄いテキスト", + "highlight": "強調された要素", + "icons": "アイコン", + "inputs": "インプットフィールド", + "panel_header": "パネルヘッダー", + "poll": "投票グラフ", + "popover": "ツールチップ、メニュー、ポップオーバー", + "post": "投稿/プロフィール", + "pressed": "押したとき", + "selectedMenu": "選択されたメニューアイテム", + "selectedPost": "選択された投稿", + "tabs": "タブ", + "toggled": "切り替えたとき", + "top_bar": "トップバー", + "underlay": "アンダーレイ", + "wallpaper": "壁紙" + }, + "common": { + "color": "色", + "contrast": { + "context": { + "18pt": "大きい (18ポイント以上) テキスト", + "text": "テキスト" + }, + "hint": "コントラストは {ratio} です。{level}。({context})", + "level": { + "aa": "AAレベルガイドライン (最低限) を満たします", + "aaa": "AAAレベルガイドライン (推奨) を満たします", + "bad": "ガイドラインを満たしません" + } + }, + "opacity": "透明度" + }, + "common_colors": { + "_tab_label": "共通", + "foreground_hint": "「詳細」タブで、もっと細かく設定できます", + "main": "共通の色", + "rgbo": "アイコンとアクセントとバッジ" + }, + "fonts": { + "_tab_label": "フォント", + "components": { + "input": "インプットフィールド", + "interface": "インターフェース", + "post": "投稿", + "postCode": "等幅 (投稿がリッチテキストであるとき)" + }, + "custom": "カスタム", + "family": "フォント名", + "help": "「カスタム」を選んだときは、システムにあるフォントの名前を、正しく入力してください。", + "size": "大きさ (px)", + "weight": "太さ" + }, + "preview": { + "button": "ボタン", + "checkbox": "利用規約を読みました", + "content": "本文", + "error": "エラーの例", + "faint_link": "とても助けになるマニュアル", + "fine_print": "私たちの{0}を、読まないでください!", + "header": "プレビュー", + "header_faint": "エラーではありません", + "input": "羽田空港に着きました。", + "link": "ハイパーリンク", + "mono": "monospace", + "text": "これは{0}と{1}の例です" + }, + "radii": { + "_tab_label": "丸さ" + }, + "shadows": { + "_tab_label": "光と影", + "blur": "ぼかし", + "component": "コンポーネント", + "components": { + "avatar": "ユーザーアバター (プロフィール)", + "avatarStatus": "ユーザーアバター (投稿)", + "button": "ボタン", + "buttonHover": "ボタン (ホバー)", + "buttonPressed": "ボタン (押されているとき)", + "buttonPressedHover": "ボタン (ホバー、かつ、押されているとき)", + "input": "インプットフィールド", + "panel": "パネル", + "panelHeader": "パネルヘッダー", + "popup": "ポップアップとツールチップ", + "topBar": "トップバー" + }, + "filter_hint": { + "always_drop_shadow": "ブラウザーがサポートしていれば、常に {0} が使われます。", + "avatar_inset": "内側の影と外側の影を同時に使うと、透明なアバターの表示が乱れます。", + "drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。", + "inset_classic": "内側の影は {0} を使います", + "spread_zero": "広がりが 0 よりも大きな影は、0 と同じです" + }, + "hintV3": "影の場合は、 {0} 表記を使って他の色スロットを使うこともできます。", + "inset": "内側", + "override": "オーバーライド", + "shadow_id": "影 #{value}", + "spread": "広がり" + }, + "switcher": { + "clear_all": "すべてクリア", + "clear_opacity": "透明度をクリア", + "help": { + "fe_downgraded": "フロントエンドが前のバージョンに戻りました。", + "fe_upgraded": "フロントエンドと一緒に、テーマエンジンが新しくなりました。", + "future_version_imported": "新しいフロントエンドで作られたファイルをインポートしました。", + "migration_napshot_gone": "スナップショットがありません、覚えているものと見た目が違うかもしれません。", + "migration_snapshot_ok": "念のために、テーマのスナップショットが読み込まれました。テーマのデータを読み込むことができます。", + "older_version_imported": "古いフロントエンドで作られたファイルをインポートしました。", + "snapshot_missing": "テーマのスナップショットがありません。思っていた見た目と違うかもしれません。", + "snapshot_present": "テーマのスナップショットが読み込まれました。設定は上書きされました。代わりとして実データを読み込むことができます。", + "snapshot_source_mismatch": "フロントエンドがロールバックと更新を繰り返したため、バージョンが競合しています。", + "upgraded_from_v2": "フロントエンドが新しくなったので、今までの見た目と少し違うかもしれません。", + "v2_imported": "古いフロントエンドのためのファイルをインポートしました。設定した通りにならないかもしれません。" + }, + "keep_as_is": "変更しない", + "keep_color": "色を残す", + "keep_fonts": "フォントを残す", + "keep_opacity": "透明度を残す", + "keep_roundness": "丸さを残す", + "keep_shadows": "影を残す", + "load_theme": "テーマの読み込み", + "reset": "リセット", + "save_load_hint": "「残す」オプションをONにすると、テーマを選んだときとロードしたとき、現在の設定を残します。また、テーマをエクスポートするとき、これらのオプションを維持します。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべての設定を保存します。", + "use_snapshot": "古いバージョン", + "use_source": "新しいバージョン" + } + }, + "subject_input_always_show": "サブジェクトフィールドをいつでも表示する", + "subject_line_behavior": "返信するときサブジェクトをコピーする", + "subject_line_email": "メール風: \"re: サブジェクト\"", + "subject_line_mastodon": "マストドン風: そのままコピー", + "subject_line_noop": "コピーしない", + "text": "文字", + "theme": "テーマ", + "theme_help": "カラーテーマをカスタマイズできます。", + "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、色と透明度をオーバーライドできます。「すべてクリア」ボタンを押すと、すべてのオーバーライドをやめます。", + "theme_help_v2_2": "バックグラウンドとテキストのコントラストを表すアイコンがあります。マウスをホバーすると、詳しい説明が出ます。透明な色を使っているときは、最悪の場合のコントラストが示されます。", + "third_column_mode": "空きがあれば、3つ目のカラム", + "third_column_mode_none": "を追加しない", + "third_column_mode_notifications": "で通知を表示", + "third_column_mode_postform": "で投稿フォームを表示", + "token": "トークン", + "tooltipRadius": "ツールチップとアラート", + "type_domains_to_mute": "ミュートしたいドメインを検索", + "upload_a_photo": "画像をアップロード", + "useStreamingApi": "投稿と通知を、すぐに受け取る", + "useStreamingApiWarning": "(実験中で、投稿を取りこぼすかもしれないので、おすすめしません)", + "use_contain_fit": "画像のサムネイルを、切り抜かない", + "use_one_click_nsfw": "NSFWなファイルを1クリックで開く", + "user_mutes": "ユーザー", + "user_settings": "ユーザー設定", + "valid_until": "まで有効", + "values": { + "false": "いいえ", + "true": "はい" + }, + "version": { + "backend_version": "バックエンドのバージョン", + "frontend_version": "フロントエンドのバージョン", + "title": "バージョン" + }, + "virtual_scrolling": "タイムラインの描画を最適化する", + "word_filter": "単語フィルタ" + }, + "status": { + "bookmark": "ブックマーク", + "copy_link": "リンクをコピー", + "delete": "ステータスを削除", + "delete_confirm": "本当にこのステータスを削除してもよろしいですか?", + "expand": "広げる", + "external_source": "外部ソース", + "favorites": "お気に入り", + "hide_content": "隠す", + "hide_full_subject": "隠す", + "mentions": "メンション", + "mute_conversation": "スレッドをミュート", + "nsfw": "閲覧注意", + "pin": "プロフィールにピン留め", + "pinned": "ピン留め", + "plus_more": "ほか{number}件", + "repeats": "リピート", + "replies_list": "返信:", + "reply_to": "返信", + "show_content": "見る", + "show_full_subject": "全部見る", + "status_deleted": "この投稿は削除されました", + "status_unavailable": "利用できません", + "thread_muted": "ミュートされたスレッド", + "thread_muted_and_words": "以下の単語を含むため:", + "unbookmark": "ブックマーク解除", + "unmute_conversation": "スレッドのミュートを解除", + "unpin": "プロフィールのピン留めを外す", + "you": "(あなた)" + }, + "time": { + "in_future": "{0}で", + "in_past": "{0}前", + "now": "たった今", + "now_short": "たった今", + "unit": { + "days": "{0}日", + "days_short": "{0}日", + "hours": "{0}時間", + "hours_short": "{0}時間", + "minutes": "{0}分", + "minutes_short": "{0}分", + "months": "{0}ヶ月", + "months_short": "{0}ヶ月", + "seconds": "{0}秒", + "seconds_short": "{0}秒", + "weeks": "{0}週間", + "weeks_short": "{0}週間", + "years": "{0}年", + "years_short": "{0}年" + } + }, + "timeline": { + "collapse": "たたむ", + "conversation": "スレッド", + "error": "タイムラインの読み込みに失敗しました: {0}", + "load_older": "古いステータス", + "no_more_statuses": "これで終わりです", + "no_retweet_hint": "投稿を「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", + "no_statuses": "ステータスはありません", + "reload": "再読み込み", + "repeated": "リピート", + "show_new": "読み込み", + "socket_broke": "コード{0}によりリアルタイム接続が切断されました", + "socket_reconnected": "リアルタイム接続が確立されました", + "up_to_date": "最新" + }, + "tool_tip": { + "accept_follow_request": "フォローリクエストを許可", + "add_reaction": "リアクションを追加", + "bookmark": "ブックマーク", + "favorite": "お気に入り", + "media_upload": "メディアをアップロード", + "reject_follow_request": "フォローリクエストを拒否", + "repeat": "リピート", + "reply": "返信", + "user_settings": "ユーザー設定" + }, + "upload": { + "error": { + "base": "アップロードに失敗しました。", + "default": "しばらくしてから試してください", + "file_too_big": "ファイルが大きすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", + "message": "アップロードに失敗: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "アカウントをアクティブにする", + "deactivate_account": "アカウントをアクティブでなくする", + "delete_account": "アカウントを削除", + "delete_user": "ユーザーを削除", + "disable_any_subscription": "フォローされないようにする", + "disable_remote_subscription": "他のインスタンスからフォローされないようにする", + "force_nsfw": "すべての投稿をNSFWにする", + "force_unlisted": "投稿を未収載にする", + "grant_admin": "管理者権限を付与", + "grant_moderator": "モデレーター権限を付与", + "moderation": "モデレーション", + "quarantine": "他のインスタンスからの投稿を止める", + "revoke_admin": "管理者権限を解除", + "revoke_moderator": "モデレーター権限を解除", + "sandbox": "投稿をフォロワーのみにする", + "strip_media": "投稿からメディアを除去する" + }, + "approve": "受け入れ", + "block": "ブロック", + "block_progress": "ブロックしています…", + "blocked": "ブロックしています!", + "bot": "bot", + "deny": "お断り", + "edit_profile": "プロフィールを編集", + "favorites": "お気に入り", + "follow": "フォロー", + "follow_progress": "リクエストしています…", + "follow_sent": "リクエストを送りました!", + "follow_unfollow": "フォローをやめる", + "followees": "フォロー", + "followers": "フォロワー", + "following": "フォローしています!", + "follows_you": "フォローされました!", + "hidden": "隠す", + "hide_repeats": "リピートを隠す", + "highlight": { + "disabled": "強調しない", + "side": "端に線を付ける", + "solid": "背景を単色にする", + "striped": "背景を縞模様にする" + }, + "its_you": "これはあなたです!", + "media": "メディア", + "mention": "メンション", + "message": "メッセージ", + "mute": "ミュート", + "mute_progress": "ミュートしています…", + "muted": "ミュートしています", + "note": "私的なメモ", + "per_day": "/日", + "remote_follow": "リモートフォロー", + "report": "通報", + "show_repeats": "リピートを見る", + "statuses": "ステータス", + "subscribe": "購読", + "unblock": "ブロック解除", + "unblock_progress": "ブロックを解除しています…", + "unmute": "ミュート解除", + "unmute_progress": "ミュートを解除しています…", + "unsubscribe": "購読を解除" + }, + "user_profile": { + "profile_does_not_exist": "申し訳ない。このプロフィールは存在しません。", + "profile_loading_error": "申し訳ない。プロフィールの読み込みがエラーになりました。", + "timeline_title": "ユーザータイムライン" + }, + "user_reporting": { + "add_comment_description": "この通報は、あなたのインスタンスのモデレーターに送られます。このアカウントを通報する理由を説明することができます:", + "additional_comments": "追加のコメント", + "forward_description": "このアカウントは他のサーバーに置かれています。この通報のコピーをリモートのサーバーに送りますか?", + "forward_to": "転送する: {0}", + "generic_error": "あなたのリクエストを処理しようとしましたが、エラーになりました。", + "submit": "送信", + "title": "通報する: {0}" + }, + "who_to_follow": { + "more": "詳細", + "who_to_follow": "おすすめユーザー" } - }, - "timeline": { - "collapse": "たたむ", - "conversation": "スレッド", - "error_fetching": "読み込みがエラーになりました", - "load_older": "古いステータス", - "no_retweet_hint": "投稿を「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", - "repeated": "リピート", - "show_new": "読み込み", - "up_to_date": "最新", - "no_more_statuses": "これで終わりです", - "no_statuses": "ステータスはありません", - "reload": "再読み込み", - "error": "タイムラインの読み込みに失敗しました: {0}", - "socket_reconnected": "リアルタイム接続が確立されました", - "socket_broke": "コード{0}によりリアルタイム接続が切断されました" - }, - "status": { - "favorites": "お気に入り", - "repeats": "リピート", - "delete": "ステータスを削除", - "pin": "プロフィールにピン留め", - "unpin": "プロフィールのピン留めを外す", - "pinned": "ピン留め", - "delete_confirm": "本当にこのステータスを削除してもよろしいですか?", - "reply_to": "返信", - "replies_list": "返信:", - "mute_conversation": "スレッドをミュート", - "unmute_conversation": "スレッドのミュートを解除", - "nsfw": "閲覧注意", - "expand": "広げる", - "status_deleted": "この投稿は削除されました", - "hide_content": "隠す", - "show_content": "見る", - "hide_full_subject": "隠す", - "show_full_subject": "全部見る", - "thread_muted_and_words": "以下の単語を含むため:", - "thread_muted": "ミュートされたスレッド", - "external_source": "外部ソース", - "copy_link": "リンクをコピー", - "status_unavailable": "利用できません", - "unbookmark": "ブックマーク解除", - "bookmark": "ブックマーク", - "mentions": "メンション", - "you": "(あなた)", - "plus_more": "ほか{number}件" - }, - "user_card": { - "approve": "受け入れ", - "block": "ブロック", - "blocked": "ブロックしています!", - "deny": "お断り", - "favorites": "お気に入り", - "follow": "フォロー", - "follow_sent": "リクエストを送りました!", - "follow_progress": "リクエストしています…", - "follow_unfollow": "フォローをやめる", - "followees": "フォロー", - "followers": "フォロワー", - "following": "フォローしています!", - "follows_you": "フォローされました!", - "its_you": "これはあなたです!", - "media": "メディア", - "mention": "メンション", - "mute": "ミュート", - "muted": "ミュートしています", - "per_day": "/日", - "remote_follow": "リモートフォロー", - "report": "通報", - "statuses": "ステータス", - "subscribe": "購読", - "unsubscribe": "購読を解除", - "unblock": "ブロック解除", - "unblock_progress": "ブロックを解除しています…", - "block_progress": "ブロックしています…", - "unmute": "ミュート解除", - "unmute_progress": "ミュートを解除しています…", - "mute_progress": "ミュートしています…", - "note": "私的なメモ", - "admin_menu": { - "moderation": "モデレーション", - "grant_admin": "管理者権限を付与", - "revoke_admin": "管理者権限を解除", - "grant_moderator": "モデレーター権限を付与", - "revoke_moderator": "モデレーター権限を解除", - "activate_account": "アカウントをアクティブにする", - "deactivate_account": "アカウントをアクティブでなくする", - "delete_account": "アカウントを削除", - "force_nsfw": "すべての投稿をNSFWにする", - "strip_media": "投稿からメディアを除去する", - "force_unlisted": "投稿を未収載にする", - "sandbox": "投稿をフォロワーのみにする", - "disable_remote_subscription": "他のインスタンスからフォローされないようにする", - "disable_any_subscription": "フォローされないようにする", - "quarantine": "他のインスタンスからの投稿を止める", - "delete_user": "ユーザーを削除" - }, - "roles": { - "moderator": "モデレーター", - "admin": "管理者" - }, - "show_repeats": "リピートを見る", - "hide_repeats": "リピートを隠す", - "message": "メッセージ", - "hidden": "隠す", - "bot": "bot", - "highlight": { - "solid": "背景を単色にする", - "striped": "背景を縞模様にする", - "side": "端に線を付ける", - "disabled": "強調しない" - }, - "edit_profile": "プロフィールを編集" - }, - "user_profile": { - "timeline_title": "ユーザータイムライン", - "profile_does_not_exist": "申し訳ない。このプロフィールは存在しません。", - "profile_loading_error": "申し訳ない。プロフィールの読み込みがエラーになりました。" - }, - "user_reporting": { - "title": "通報する: {0}", - "add_comment_description": "この通報は、あなたのインスタンスのモデレーターに送られます。このアカウントを通報する理由を説明することができます:", - "additional_comments": "追加のコメント", - "forward_description": "このアカウントは他のサーバーに置かれています。この通報のコピーをリモートのサーバーに送りますか?", - "forward_to": "転送する: {0}", - "submit": "送信", - "generic_error": "あなたのリクエストを処理しようとしましたが、エラーになりました。" - }, - "who_to_follow": { - "more": "詳細", - "who_to_follow": "おすすめユーザー" - }, - "tool_tip": { - "media_upload": "メディアをアップロード", - "repeat": "リピート", - "reply": "返信", - "favorite": "お気に入り", - "user_settings": "ユーザー設定", - "bookmark": "ブックマーク", - "reject_follow_request": "フォローリクエストを拒否", - "accept_follow_request": "フォローリクエストを許可", - "add_reaction": "リアクションを追加" - }, - "upload": { - "error": { - "base": "アップロードに失敗しました。", - "file_too_big": "ファイルが大きすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", - "default": "しばらくしてから試してください", - "message": "アップロードに失敗: {0}" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "人々", - "hashtags": "ハッシュタグ", - "person_talking": "{count} 人が話しています", - "people_talking": "{count} 人が話しています", - "no_results": "見つかりませんでした" - }, - "password_reset": { - "forgot_password": "パスワードを忘れましたか?", - "password_reset": "パスワードリセット", - "instruction": "メールアドレスまたはユーザー名を入力してください。パスワードをリセットするためのリンクを送信します。", - "placeholder": "メールアドレスまたはユーザー名", - "check_email": "パスワードをリセットするためのリンクが記載されたメールが届いているか確認してください。", - "return_home": "ホームページに戻る", - "too_many_requests": "試行回数の制限に達しました。しばらく時間を置いてから再試行してください。", - "password_reset_disabled": "このインスタンスではパスワードリセットは無効になっています。インスタンスの管理者に連絡してください。", - "password_reset_required_but_mailer_is_disabled": "パスワードの初期化が必要ですが、初期化は使えません。インスタンスの管理者に連絡してください。", - "password_reset_required": "ログインするためにパスワードを初期化してください。" - }, - "about": { - "mrf": { - "mrf_policies_desc": "MRFポリシーは、インスタンスの振る舞いを操作します。以下のポリシーが有効になっています:", - "federation": "連合", - "simple": { - "media_nsfw_desc": "このインスタンスでは、以下のインスタンスからの投稿に対して、メディアを閲覧注意に設定します:", - "media_nsfw": "メディアを閲覧注意に設定", - "media_removal_desc": "このインスタンスでは、以下のインスタンスからの投稿に対して、メディアを除去します:", - "media_removal": "メディア除去", - "ftl_removal": "「既知のネットワーク」タイムラインから除外", - "ftl_removal_desc": "このインスタンスでは、以下のインスタンスを「既知のネットワーク」タイムラインから除外します:", - "quarantine_desc": "このインスタンスでは、以下のインスタンスに対して公開投稿のみを送信します:", - "quarantine": "検疫", - "reject_desc": "このインスタンスでは、以下のインスタンスからのメッセージを受け付けません:", - "accept_desc": "このインスタンスでは、以下のインスタンスからのメッセージのみを受け付けます:", - "accept": "許可", - "simple_policies": "インスタンス固有のポリシー", - "reject": "拒否" - }, - "mrf_policies": "有効なMRFポリシー", - "keyword": { - "replace": "置き換え", - "ftl_removal": "「接続しているすべてのネットワーク」タイムラインから除外", - "keyword_policies": "キーワードポリシー", - "is_replaced_by": "→", - "reject": "拒否" - } - }, - "staff": "スタッフ" - }, - "display_date": { - "today": "今日" - }, - "file_type": { - "file": "ファイル", - "image": "画像", - "video": "ビデオ", - "audio": "オーディオ" - }, - "remote_user_resolver": { - "error": "見つかりませんでした。", - "searching_for": "検索中", - "remote_user_resolver": "リモートユーザーリゾルバ" - }, - "errors": { - "storage_unavailable": "ブラウザのストレージに接続できなかったため、ログインや設定情報は保存されません。Cookieを有効にしてください。" - }, - "shoutbox": { - "title": "Shoutbox" - }, - "chats": { - "empty_chat_list_placeholder": "チャットはありません。新規チャットのボタンを押して始めましょう!", - "error_sending_message": "メッセージの送信に失敗しました。", - "error_loading_chat": "チャットの読み込みに失敗しました。", - "delete_confirm": "このメッセージを本当に消してもいいですか?", - "more": "もっと見る", - "empty_message_error": "メッセージを入力して下さい", - "new": "新規チャット", - "chats": "チャット一覧", - "delete": "削除", - "message_user": "{nickname} にメッセージ", - "you": "あなた:" - }, - "domain_mute_card": { - "unmute_progress": "ミュート解除中…", - "unmute": "ミュート解除", - "mute_progress": "ミュート中…", - "mute": "ミュート" - } -} +} \ No newline at end of file diff --git a/src/i18n/ko.json b/src/i18n/ko.json index 13550259..b8bf8e73 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -1,597 +1,568 @@ { - "chat": { - "title": "챗" - }, - "features_panel": { - "chat": "챗", - "gopher": "고퍼", - "media_proxy": "미디어 프록시", - "scope_options": "범위 옵션", - "text_limit": "텍스트 제한", - "title": "기능", - "who_to_follow": "팔로우 추천", - "upload_limit": "최대 파일용량", - "pleroma_chat_messages": "Pleroma 채트" - }, - "finder": { - "error_fetching_user": "사용자 정보 불러오기 실패", - "find_user": "사용자 찾기" - }, - "general": { - "apply": "적용", - "submit": "보내기", - "loading": "로딩중…", - "peek": "숨기기", - "close": "닫기", - "verify": "검사", - "confirm": "확인", - "enable": "유효", - "disable": "무효", - "cancel": "취소", - "dismiss": "무시", - "show_less": "접기", - "show_more": "더 보기", - "optional": "필수 아님", - "retry": "다시 시도하십시오", - "error_retry": "다시 시도하십시오", - "generic_error": "잘못되었습니다", - "more": "더 보기", - "role": { - "moderator": "중재자", - "admin": "관리자" - } - }, - "login": { - "login": "로그인", - "description": "OAuth로 로그인", - "logout": "로그아웃", - "password": "암호", - "placeholder": "예시: lain", - "register": "가입", - "username": "사용자 이름", - "heading": { - "recovery": "2단계 복구", - "totp": "2단계인증" + "about": { + "mrf": { + "federation": "연합", + "keyword": { + "ftl_removal": "\"알려진 모든 네트워크\" 타임라인에서 제외", + "is_replaced_by": "→", + "keyword_policies": "단어 폴리시", + "reject": "거부", + "replace": "바꾸기" + }, + "mrf_policies": "사용되는 MRF 폴리시", + "simple": { + "accept": "허가", + "accept_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고만이 접수됩니다:", + "ftl_removal": "\"알려진 네트워크\" 타임라인에서 제외", + "ftl_removal_desc": "이 인스턴스에서 아래의 인스턴스들은 \"알려진 네트워크\" 타임라인에서 제외됩니다:", + "media_nsfw": "매체를 민감함으로 설정", + "media_nsfw_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고에 붙혀 있는 매체는 민감함으로 설정됩니다:", + "media_removal": "매체 제거", + "media_removal_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고에 붙혀 있는 매체는 제거됩니다:", + "quarantine": "검역", + "quarantine_desc": "이 인스턴스는 아래의 인스턴스에게 공개투고만을 보냅니다:", + "reject": "거부", + "reject_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고를 받아들이지 않습니다:", + "simple_policies": "인스턴스 특유의 폴리시" + } + }, + "staff": "운영자" }, - "recovery_code": "복구 코드", - "enter_two_factor_code": "2단계인증 코드를 입력하십시오", - "enter_recovery_code": "복구 코드를 입력하십시오", - "authentication_code": "인증 코드", - "hint": "로그인하여 대화에 참가합시다" - }, - "nav": { - "about": "인스턴스 소개", - "back": "뒤로", - "chat": "로컬 챗", - "friend_requests": "팔로우 요청", - "mentions": "멘션", - "dms": "다이렉트 메시지", - "public_tl": "공개 타임라인", - "timeline": "타임라인", - "twkn": "알려진 네트워크", - "user_search": "사용자 검색", - "preferences": "환경설정", - "chats": "채트", - "timelines": "타임라인", - "who_to_follow": "추천된 사용자", - "search": "검색", - "bookmarks": "북마크", - "interactions": "대화", - "administration": "관리", - "home_timeline": "홈 타임라인" - }, - "notifications": { - "broken_favorite": "알 수 없는 게시물입니다, 검색합니다…", - "favorited_you": "당신의 게시물을 즐겨찾기", - "followed_you": "당신을 팔로우", - "load_older": "오래 된 알림 불러오기", - "notifications": "알림", - "read": "읽음!", - "repeated_you": "당신의 게시물을 리핏", - "no_more_notifications": "알림이 없습니다", - "migrated_to": "이사했습니다", - "reacted_with": "{0} 로 반응했습니다", - "error": "알림 불러오기 실패: {0}", - "follow_request": "당신에게 팔로우 신청" - }, - "post_status": { - "new_status": "새 게시물 게시", - "account_not_locked_warning": "당신의 계정은 {0} 상태가 아닙니다. 누구나 당신을 팔로우 하고 팔로워 전용 게시물을 볼 수 있습니다.", - "account_not_locked_warning_link": "잠김", - "attachments_sensitive": "첨부물을 민감함으로 설정", - "content_type": { - "text/plain": "평문", - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML" + "domain_mute_card": { + "mute": "침묵", + "mute_progress": "침묵으로 설정중…", + "unmute": "침묵 해제", + "unmute_progress": "침묵을 해제중…" }, - "content_warning": "주제 (필수 아님)", - "default": "인천공항에 도착했습니다.", - "direct_warning": "이 게시물을 멘션 된 사용자들에게만 보여집니다", - "posting": "게시", - "scope": { - "direct": "다이렉트 - 멘션 된 사용자들에게만", - "private": "팔로워 전용 - 팔로워들에게만", - "public": "공개 - 공개 타임라인으로", - "unlisted": "비공개 - 공개 타임라인에 게시 안 함" + "emoji": { + "add_emoji": "이모지 넣기", + "custom": "전용 이모지", + "emoji": "이모지", + "load_all": "전체 {emojiAmount} 이모지 불러오기", + "search_emoji": "이모지 검색", + "stickers": "스티커", + "unicode": "Unicode 이모지" }, - "preview_empty": "아무것도 없습니다", - "preview": "미리보기", - "scope_notice": { - "public": "이 글은 누구나 볼 수 있습니다" + "exporter": { + "export": "내보내기", + "processing": "처리중입니다, 처리가 끝나면 파일을 다운로드하라는 지시가 있겠습니다" }, - "media_description_error": "파일을 올리지 못하였습니다. 다시한번 시도하여 주십시오", - "empty_status_error": "글을 입력하십시오", - "media_description": "첨부파일 설명" - }, - "registration": { - "bio": "소개", - "email": "이메일", - "fullname": "표시 되는 이름", - "password_confirm": "암호 확인", - "registration": "가입하기", - "token": "초대 토큰", - "captcha": "캡차", - "new_captcha": "이미지를 클릭해서 새로운 캡차", - "validations": { - "username_required": "공백으로 둘 수 없습니다", - "fullname_required": "공백으로 둘 수 없습니다", - "email_required": "공백으로 둘 수 없습니다", - "password_required": "공백으로 둘 수 없습니다", - "password_confirmation_required": "공백으로 둘 수 없습니다", - "password_confirmation_match": "패스워드와 일치해야 합니다" + "features_panel": { + "media_proxy": "미디어 프록시", + "scope_options": "범위 옵션", + "text_limit": "텍스트 제한", + "title": "기능", + "upload_limit": "최대 파일용량", + "who_to_follow": "팔로우 추천" }, - "fullname_placeholder": "예: 김례인", - "username_placeholder": "예: lain" - }, - "settings": { - "attachmentRadius": "첨부물", - "attachments": "첨부물", - "avatar": "아바타", - "avatarAltRadius": "아바타 (알림)", - "avatarRadius": "아바타", - "background": "배경", - "bio": "소개", - "btnRadius": "버튼", - "cBlue": "파랑 (답글, 팔로우)", - "cGreen": "초록 (리트윗)", - "cOrange": "주황 (즐겨찾기)", - "cRed": "빨강 (취소)", - "change_password": "암호 바꾸기", - "change_password_error": "암호를 바꾸는 데 몇 가지 문제가 있습니다.", - "changed_password": "암호를 바꾸었습니다!", - "collapse_subject": "주제를 가진 게시물 접기", - "composing": "작성", - "confirm_new_password": "새 패스워드 확인", - "current_avatar": "현재 아바타", - "current_password": "현재 패스워드", - "current_profile_banner": "현재 프로필 배너", - "data_import_export_tab": "데이터 불러오기 / 내보내기", - "default_vis": "기본 공개 범위", - "delete_account": "계정 삭제", - "delete_account_description": "데이터가 영구히 삭제되고 계정이 불활성화됩니다.", - "delete_account_error": "계정을 삭제하는데 문제가 있습니다. 계속 발생한다면 인스턴스 관리자에게 문의하세요.", - "delete_account_instructions": "계정 삭제를 확인하기 위해 아래에 패스워드 입력.", - "export_theme": "프리셋 저장", - "filtering": "필터링", - "filtering_explanation": "아래의 단어를 가진 게시물들은 뮤트 됩니다, 한 줄에 하나씩 적으세요", - "follow_export": "팔로우 내보내기", - "follow_export_button": "팔로우 목록을 csv로 내보내기", - "follow_export_processing": "진행 중입니다, 곧 다운로드 가능해 질 것입니다", - "follow_import": "팔로우 불러오기", - "follow_import_error": "팔로우 불러오기 실패", - "follows_imported": "팔로우 목록을 불러왔습니다! 처리에는 시간이 걸립니다.", - "foreground": "전경", - "general": "일반", - "hide_attachments_in_convo": "대화의 첨부물 숨기기", - "hide_attachments_in_tl": "타임라인의 첨부물 숨기기", - "hide_isp": "인스턴스 전용 패널 숨기기", - "preload_images": "이미지 미리 불러오기", - "hide_post_stats": "게시물 통계 숨기기 (즐겨찾기 수 등)", - "hide_user_stats": "사용자 통계 숨기기 (팔로워 수 등)", - "import_followers_from_a_csv_file": "csv 파일에서 팔로우 목록 불러오기", - "import_theme": "프리셋 불러오기", - "inputRadius": "입력 칸", - "checkboxRadius": "체크박스", - "instance_default": "(기본: {value})", - "instance_default_simple": "(기본)", - "interface": "인터페이스", - "interfaceLanguage": "인터페이스 언어", - "invalid_theme_imported": "선택한 파일은 지원하는 플레로마 테마가 아닙니다. 아무런 변경도 일어나지 않았습니다.", - "limited_availability": "이 브라우저에서 사용 불가", - "links": "링크", - "lock_account_description": "계정을 승인 된 팔로워들로 제한", - "loop_video": "비디오 반복재생", - "loop_video_silent_only": "소리가 없는 비디오만 반복 재생 (마스토돈의 \"gifs\" 같은 것들)", - "name": "이름", - "name_bio": "이름 & 소개", - "new_password": "새 암호", - "notification_visibility": "보여 줄 알림 종류", - "notification_visibility_follows": "팔로우", - "notification_visibility_likes": "좋아함", - "notification_visibility_mentions": "멘션", - "notification_visibility_repeats": "반복", - "no_rich_text_description": "모든 게시물의 서식을 지우기", - "hide_follows_description": "내가 팔로우하는 사람을 표시하지 않음", - "hide_followers_description": "나를 따르는 사람을 숨기기", - "nsfw_clickthrough": "NSFW 이미지 \"클릭해서 보이기\"를 활성화", - "oauth_tokens": "OAuth 토큰", - "token": "토큰", - "refresh_token": "토큰 새로 고침", - "valid_until": "까지 유효하다", - "revoke_token": "취소", - "panelRadius": "패널", - "pause_on_unfocused": "탭이 활성 상태가 아닐 때 스트리밍 멈추기", - "presets": "프리셋", - "profile_background": "프로필 배경", - "profile_banner": "프로필 배너", - "profile_tab": "프로필", - "radii_help": "인터페이스 모서리 둥글기 (픽셀 단위)", - "replies_in_timeline": "답글을 타임라인에", - "reply_visibility_all": "모든 답글 보기", - "reply_visibility_following": "나에게 직접 오는 답글이나 내가 팔로우 중인 사람에게서 오는 답글만 표시", - "reply_visibility_self": "나에게 직접 전송 된 답글만 보이기", - "saving_err": "설정 저장 실패", - "saving_ok": "설정 저장 됨", - "security_tab": "보안", - "scope_copy": "답글을 달 때 공개 범위 따라가리 (다이렉트 메시지는 언제나 따라감)", - "set_new_avatar": "새 아바타 설정", - "set_new_profile_background": "새 프로필 배경 설정", - "set_new_profile_banner": "새 프로필 배너 설정", - "settings": "설정", - "subject_input_always_show": "항상 주제 칸 보이기", - "subject_line_behavior": "답글을 달 때 주제 복사하기", - "subject_line_email": "이메일처럼: \"re: 주제\"", - "subject_line_mastodon": "마스토돈처럼: 그대로 복사", - "subject_line_noop": "복사 안 함", - "stop_gifs": "GIF파일에 마우스를 올려서 재생", - "streaming": "최상단에 도달하면 자동으로 새 게시물 스트리밍", - "text": "텍스트", - "theme": "테마", - "theme_help": "16진수 색상코드(#rrggbb)를 사용해 색상 테마를 커스터마이즈.", - "theme_help_v2_1": "체크박스를 통해 몇몇 컴포넌트의 색상과 불투명도를 조절 가능, \"모두 지우기\" 버튼으로 덮어 씌운 것을 모두 취소.", - "theme_help_v2_2": "몇몇 입력칸 밑의 아이콘은 전경/배경 대비 관련 표시등입니다, 마우스를 올려 자세한 정보를 볼 수 있습니다. 투명도 대비 표시등이 가장 최악의 경우를 나타낸다는 것을 유의하세요.", - "tooltipRadius": "툴팁/경고", - "user_settings": "사용자 설정", - "values": { - "false": "아니오", - "true": "네" + "finder": { + "error_fetching_user": "사용자 정보 불러오기 실패", + "find_user": "사용자 찾기" }, - "notifications": "알림", - "enable_web_push_notifications": "웹 푸시 알림 활성화", - "style": { - "switcher": { - "keep_color": "색상 유지", - "keep_shadows": "그림자 유지", - "keep_opacity": "불투명도 유지", - "keep_roundness": "둥글기 유지", - "keep_fonts": "글자체 유지", - "save_load_hint": "\"유지\" 옵션들은 다른 테마를 고르거나 불러 올 때 현재 설정 된 옵션들을 건드리지 않게 합니다, 테마를 내보내기 할 때도 이 옵션에 따라 저장합니다. 아무 것도 체크 되지 않았다면 모든 설정을 내보냅니다.", - "reset": "초기화", - "clear_all": "모두 지우기", - "clear_opacity": "불투명도 지우기" - }, - "common": { - "color": "색상", - "opacity": "불투명도", - "contrast": { - "hint": "대비율이 {ratio}입니다, 이것은 {context} {level}", - "level": { - "aa": "AA등급 가이드라인에 부합합니다 (최소한도)", - "aaa": "AAA등급 가이드라인에 부합합니다 (권장)", - "bad": "아무런 가이드라인 등급에도 미치지 못합니다" - }, - "context": { - "18pt": "큰 (18pt 이상) 텍스트에 대해", - "text": "텍스트에 대해" - } + "general": { + "apply": "적용", + "cancel": "취소", + "close": "닫기", + "confirm": "확인", + "disable": "무효", + "dismiss": "무시", + "enable": "유효", + "error_retry": "다시 시도하십시오", + "generic_error": "잘못되었습니다", + "loading": "로딩중…", + "more": "더 보기", + "optional": "필수 아님", + "peek": "숨기기", + "retry": "다시 시도하십시오", + "role": { + "admin": "관리자", + "moderator": "중재자" + }, + "show_less": "접기", + "show_more": "더 보기", + "submit": "보내기", + "verify": "검사" + }, + "image_cropper": { + "cancel": "취소", + "crop_picture": "사진 자르기", + "save": "저장", + "save_without_cropping": "그대로 저장" + }, + "importer": { + "error": "이 파일을 가져올 때 오류가 발생하였습니다.", + "submit": "보내기", + "success": "정상히 불러왔습니다." + }, + "interactions": { + "favs_repeats": "반복과 즐겨찾기", + "follows": "새 팔로워", + "moves": "계정 통합" + }, + "login": { + "authentication_code": "인증 코드", + "description": "OAuth로 로그인", + "enter_recovery_code": "복구 코드를 입력하십시오", + "enter_two_factor_code": "2단계인증 코드를 입력하십시오", + "heading": { + "recovery": "2단계 복구", + "totp": "2단계인증" + }, + "hint": "로그인하여 대화에 참가합시다", + "login": "로그인", + "logout": "로그아웃", + "password": "암호", + "placeholder": "예시: lain", + "recovery_code": "복구 코드", + "register": "가입", + "username": "사용자 이름" + }, + "media_modal": { + "next": "다음", + "previous": "이전" + }, + "nav": { + "about": "인스턴스 소개", + "administration": "관리", + "back": "뒤로", + "bookmarks": "북마크", + "chats": "채트", + "dms": "다이렉트 메시지", + "friend_requests": "팔로우 요청", + "home_timeline": "홈 타임라인", + "interactions": "대화", + "mentions": "멘션", + "preferences": "환경설정", + "public_tl": "공개 타임라인", + "search": "검색", + "timeline": "타임라인", + "timelines": "타임라인", + "twkn": "알려진 네트워크", + "user_search": "사용자 검색", + "who_to_follow": "추천된 사용자" + }, + "notifications": { + "broken_favorite": "알 수 없는 게시물입니다, 검색합니다…", + "error": "알림 불러오기 실패: {0}", + "favorited_you": "당신의 게시물을 즐겨찾기", + "follow_request": "당신에게 팔로우 신청", + "followed_you": "당신을 팔로우", + "load_older": "오래 된 알림 불러오기", + "migrated_to": "이사했습니다", + "no_more_notifications": "알림이 없습니다", + "notifications": "알림", + "reacted_with": "{0} 로 반응했습니다", + "read": "읽음!", + "repeated_you": "당신의 게시물을 리핏" + }, + "polls": { + "add_option": "선택지 추가", + "add_poll": "투표를 추가", + "expired": "투표는 {0} 전에 마감되었습니다", + "expires_in": "투표는 {0}에 마감됩니다", + "expiry": "투표 기간", + "option": "선택지", + "people_voted_count": "{count} 명 투표 | {count} 명 투표", + "type": "투표 형식", + "vote": "투표", + "votes": "표", + "votes_count": "{count} 표 | {count} 표" + }, + "post_status": { + "account_not_locked_warning": "당신의 계정은 {0} 상태가 아닙니다. 누구나 당신을 팔로우 하고 팔로워 전용 게시물을 볼 수 있습니다.", + "account_not_locked_warning_link": "잠김", + "attachments_sensitive": "첨부물을 민감함으로 설정", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "평문" + }, + "content_warning": "주제 (필수 아님)", + "default": "인천공항에 도착했습니다.", + "empty_status_error": "글을 입력하십시오", + "media_description": "첨부파일 설명", + "media_description_error": "파일을 올리지 못하였습니다. 다시한번 시도하여 주십시오", + "new_status": "새 게시물 게시", + "posting": "게시", + "preview": "미리보기", + "preview_empty": "아무것도 없습니다", + "scope": { + "direct": "다이렉트 - 멘션 된 사용자들에게만", + "private": "팔로워 전용 - 팔로워들에게만", + "public": "공개 - 공개 타임라인으로", + "unlisted": "비공개 - 공개 타임라인에 게시 안 함" + }, + "scope_notice": { + "public": "이 글은 누구나 볼 수 있습니다" } - }, - "common_colors": { - "_tab_label": "일반", - "main": "일반 색상", - "foreground_hint": "\"고급\" 탭에서 더 자세한 설정이 가능합니다", - "rgbo": "아이콘, 강조, 배지" - }, - "advanced_colors": { - "_tab_label": "고급", - "alert": "주의 배경", - "alert_error": "에러", - "badge": "배지 배경", - "badge_notification": "알림", - "panel_header": "패널 헤더", - "top_bar": "상단 바", - "borders": "테두리", - "buttons": "버튼", - "inputs": "입력칸", - "faint_text": "흐려진 텍스트", - "chat": { - "border": "경계선", - "outgoing": "송신", - "incoming": "수신" - }, - "selectedMenu": "선택된 메뉴 요소", - "selectedPost": "선택된 글", - "icons": "아이콘", - "alert_warning": "경고" - }, - "radii": { - "_tab_label": "둥글기" - }, - "shadows": { - "_tab_label": "그림자와 빛", - "component": "컴포넌트", - "override": "덮어쓰기", - "shadow_id": "그림자 #{value}", - "blur": "흐리기", - "spread": "퍼지기", - "inset": "안쪽으로", - "hint": "그림자에는 CSS3 변수를 --variable을 통해 색상 값으로 사용할 수 있습니다. 불투명도에는 적용 되지 않습니다.", - "filter_hint": { - "always_drop_shadow": "경고, 이 그림자는 브라우저가 지원하는 경우 항상 {0}을 사용합니다.", - "drop_shadow_syntax": "{0}는 {1} 파라미터와 {2} 키워드를 지원하지 않습니다.", - "avatar_inset": "안쪽과 안쪽이 아닌 그림자를 모두 설정하는 경우 투명 아바타에서 예상치 못 한 결과가 나올 수 있다는 것에 주의해 주세요.", - "spread_zero": "퍼지기가 0보다 큰 그림자는 0으로 설정한 것과 동일하게 보여집니다", - "inset_classic": "안쪽 그림자는 {0}를 사용합니다" - }, - "components": { - "panel": "패널", - "panelHeader": "패널 헤더", - "topBar": "상단 바", - "avatar": "사용자 아바타 (프로필 뷰에서)", - "avatarStatus": "사용자 아바타 (게시물에서)", - "popup": "팝업과 툴팁", - "button": "버튼", - "buttonHover": "버튼 (마우스 올렸을 때)", - "buttonPressed": "버튼 (눌렸을 때)", - "buttonPressedHover": "Button (마우스 올림 + 눌림)", - "input": "입력칸" + }, + "registration": { + "bio": "소개", + "captcha": "캡차", + "email": "이메일", + "fullname": "표시 되는 이름", + "fullname_placeholder": "예: 김례인", + "new_captcha": "이미지를 클릭해서 새로운 캡차", + "password_confirm": "암호 확인", + "registration": "가입하기", + "token": "초대 토큰", + "username_placeholder": "예: lain", + "validations": { + "email_required": "공백으로 둘 수 없습니다", + "fullname_required": "공백으로 둘 수 없습니다", + "password_confirmation_match": "패스워드와 일치해야 합니다", + "password_confirmation_required": "공백으로 둘 수 없습니다", + "password_required": "공백으로 둘 수 없습니다", + "username_required": "공백으로 둘 수 없습니다" } - }, - "fonts": { - "_tab_label": "글자체", - "help": "인터페이스의 요소에 사용 될 글자체를 고르세요. \"커스텀\"은 시스템에 있는 폰트 이름을 정확히 입력해야 합니다.", - "components": { - "interface": "인터페이스", - "input": "입력칸", - "post": "게시물 텍스트", - "postCode": "게시물의 고정폭 텍스트 (서식 있는 텍스트)" + }, + "remote_user_resolver": { + "error": "찾을 수 없습니다.", + "searching_for": "검색중" + }, + "selectable_list": { + "select_all": "모두 선택" + }, + "settings": { + "app_name": "앱 이름", + "attachmentRadius": "첨부물", + "attachments": "첨부물", + "avatar": "아바타", + "avatarAltRadius": "아바타 (알림)", + "avatarRadius": "아바타", + "avatar_size_instruction": "크기를 150x150 이상으로 설정할 것을 추장합니다.", + "background": "배경", + "bio": "소개", + "block_export": "차단 목록 내보내기", + "blocks_tab": "차단", + "bot": "이 계정은 bot입니다", + "btnRadius": "버튼", + "cBlue": "파랑 (답글, 팔로우)", + "cGreen": "초록 (리트윗)", + "cOrange": "주황 (즐겨찾기)", + "cRed": "빨강 (취소)", + "change_email": "메일주소 바꾸기", + "change_password": "암호 바꾸기", + "change_password_error": "암호를 바꾸는 데 몇 가지 문제가 있습니다.", + "changed_email": "메일주소가 갱신되었습니다!", + "changed_password": "암호를 바꾸었습니다!", + "chatMessageRadius": "챗 메시지", + "checkboxRadius": "체크박스", + "collapse_subject": "주제를 가진 게시물 접기", + "composing": "작성", + "confirm_new_password": "새 패스워드 확인", + "current_avatar": "현재 아바타", + "current_password": "현재 패스워드", + "data_import_export_tab": "데이터 불러오기 / 내보내기", + "default_vis": "기본 공개 범위", + "delete_account": "계정 삭제", + "delete_account_description": "데이터가 영구히 삭제되고 계정이 불활성화됩니다.", + "delete_account_error": "계정을 삭제하는데 문제가 있습니다. 계속 발생한다면 인스턴스 관리자에게 문의하세요.", + "delete_account_instructions": "계정 삭제를 확인하기 위해 아래에 패스워드 입력.", + "emoji_reactions_on_timeline": "이모지 반응을 타임라인으로 표시", + "enable_web_push_notifications": "웹 푸시 알림 활성화", + "export_theme": "프리셋 저장", + "filtering": "필터링", + "filtering_explanation": "아래의 단어를 가진 게시물들은 뮤트 됩니다, 한 줄에 하나씩 적으세요", + "follow_export": "팔로우 내보내기", + "follow_export_button": "팔로우 목록을 csv로 내보내기", + "follow_import": "팔로우 불러오기", + "follow_import_error": "팔로우 불러오기 실패", + "follows_imported": "팔로우 목록을 불러왔습니다! 처리에는 시간이 걸립니다.", + "foreground": "전경", + "general": "일반", + "hide_attachments_in_convo": "대화의 첨부물 숨기기", + "hide_attachments_in_tl": "타임라인의 첨부물 숨기기", + "hide_followers_description": "나를 따르는 사람을 숨기기", + "hide_follows_description": "내가 팔로우하는 사람을 표시하지 않음", + "hide_isp": "인스턴스 전용 패널 숨기기", + "hide_post_stats": "게시물 통계 숨기기 (즐겨찾기 수 등)", + "hide_user_stats": "사용자 통계 숨기기 (팔로워 수 등)", + "import_followers_from_a_csv_file": "csv 파일에서 팔로우 목록 불러오기", + "import_theme": "프리셋 불러오기", + "inputRadius": "입력 칸", + "instance_default": "(기본: {value})", + "instance_default_simple": "(기본)", + "interface": "인터페이스", + "interfaceLanguage": "인터페이스 언어", + "invalid_theme_imported": "선택한 파일은 지원하는 플레로마 테마가 아닙니다. 아무런 변경도 일어나지 않았습니다.", + "limited_availability": "이 브라우저에서 사용 불가", + "links": "링크", + "lock_account_description": "계정을 승인 된 팔로워들로 제한", + "loop_video": "비디오 반복재생", + "loop_video_silent_only": "소리가 없는 비디오만 반복 재생 (마스토돈의 \"gifs\" 같은 것들)", + "mfa": { + "authentication_methods": "인증 방법", + "confirm_and_enable": "OTP 확인과 활성화", + "generate_new_recovery_codes": "새로운 복구 코드를 작성", + "otp": "OTP", + "recovery_codes": "복구 코드.", + "scan": { + "secret_code": "키", + "title": "스캔" + }, + "setup_otp": "OTP 설치", + "title": "2단계인증", + "waiting_a_recovery_codes": "예비 코드를 수신하고 있습니다…" }, - "family": "글자체 이름", - "size": "크기 (px 단위)", - "weight": "굵기", - "custom": "커스텀" - }, - "preview": { - "header": "미리보기", - "content": "내용", - "error": "에러 예시", - "button": "버튼", - "text": "더 많은 {0} 그리고 {1}", - "mono": "내용", - "input": "인천공항에 도착했습니다.", - "faint_link": "도움 되는 설명서", - "fine_print": "우리의 {0} 를 읽고 도움 되지 않는 것들을 배우자!", - "header_faint": "이건 괜찮아", - "checkbox": "나는 약관을 대충 훑어보았습니다", - "link": "작고 귀여운 링크" - } + "mutes_and_blocks": "침묵과 차단", + "mutes_tab": "침묵", + "name": "이름", + "name_bio": "이름 & 소개", + "new_password": "새 암호", + "no_rich_text_description": "모든 게시물의 서식을 지우기", + "notification_setting_privacy": "보안", + "notification_visibility": "보여 줄 알림 종류", + "notification_visibility_emoji_reactions": "반응", + "notification_visibility_follows": "팔로우", + "notification_visibility_likes": "좋아함", + "notification_visibility_mentions": "멘션", + "notification_visibility_repeats": "반복", + "notifications": "알림", + "nsfw_clickthrough": "NSFW 이미지 \"클릭해서 보이기\"를 활성화", + "oauth_tokens": "OAuth 토큰", + "panelRadius": "패널", + "pause_on_unfocused": "탭이 활성 상태가 아닐 때 스트리밍 멈추기", + "preload_images": "이미지 미리 불러오기", + "presets": "프리셋", + "profile_background": "프로필 배경", + "profile_banner": "프로필 배너", + "profile_fields": { + "value": "내용" + }, + "profile_tab": "프로필", + "radii_help": "인터페이스 모서리 둥글기 (픽셀 단위)", + "refresh_token": "토큰 새로 고침", + "replies_in_timeline": "답글을 타임라인에", + "reply_visibility_all": "모든 답글 보기", + "reply_visibility_following": "나에게 직접 오는 답글이나 내가 팔로우 중인 사람에게서 오는 답글만 표시", + "reply_visibility_self": "나에게 직접 전송 된 답글만 보이기", + "revoke_token": "취소", + "saving_err": "설정 저장 실패", + "saving_ok": "설정 저장 됨", + "scope_copy": "답글을 달 때 공개 범위 따라가리 (다이렉트 메시지는 언제나 따라감)", + "security": "보안", + "security_tab": "보안", + "set_new_avatar": "새 아바타 설정", + "set_new_profile_background": "새 프로필 배경 설정", + "set_new_profile_banner": "새 프로필 배너 설정", + "settings": "설정", + "stop_gifs": "GIF파일에 마우스를 올려서 재생", + "streaming": "최상단에 도달하면 자동으로 새 게시물 스트리밍", + "style": { + "advanced_colors": { + "_tab_label": "고급", + "alert": "주의 배경", + "alert_error": "에러", + "alert_warning": "경고", + "badge": "배지 배경", + "badge_notification": "알림", + "borders": "테두리", + "buttons": "버튼", + "chat": { + "border": "경계선", + "incoming": "수신", + "outgoing": "송신" + }, + "faint_text": "흐려진 텍스트", + "icons": "아이콘", + "inputs": "입력칸", + "panel_header": "패널 헤더", + "selectedMenu": "선택된 메뉴 요소", + "selectedPost": "선택된 글", + "top_bar": "상단 바" + }, + "common": { + "color": "색상", + "contrast": { + "context": { + "18pt": "큰 (18pt 이상) 텍스트에 대해", + "text": "텍스트에 대해" + }, + "hint": "대비율이 {ratio}입니다, 이것은 {context} {level}", + "level": { + "aa": "AA등급 가이드라인에 부합합니다 (최소한도)", + "aaa": "AAA등급 가이드라인에 부합합니다 (권장)", + "bad": "아무런 가이드라인 등급에도 미치지 못합니다" + } + }, + "opacity": "불투명도" + }, + "common_colors": { + "_tab_label": "일반", + "foreground_hint": "\"고급\" 탭에서 더 자세한 설정이 가능합니다", + "main": "일반 색상", + "rgbo": "아이콘, 강조, 배지" + }, + "fonts": { + "_tab_label": "글자체", + "components": { + "input": "입력칸", + "interface": "인터페이스", + "post": "게시물 텍스트", + "postCode": "게시물의 고정폭 텍스트 (서식 있는 텍스트)" + }, + "custom": "커스텀", + "family": "글자체 이름", + "help": "인터페이스의 요소에 사용 될 글자체를 고르세요. \"커스텀\"은 시스템에 있는 폰트 이름을 정확히 입력해야 합니다.", + "size": "크기 (px 단위)", + "weight": "굵기" + }, + "preview": { + "button": "버튼", + "checkbox": "나는 약관을 대충 훑어보았습니다", + "content": "내용", + "error": "에러 예시", + "faint_link": "도움 되는 설명서", + "fine_print": "우리의 {0} 를 읽고 도움 되지 않는 것들을 배우자!", + "header": "미리보기", + "header_faint": "이건 괜찮아", + "input": "인천공항에 도착했습니다.", + "link": "작고 귀여운 링크", + "mono": "내용", + "text": "더 많은 {0} 그리고 {1}" + }, + "radii": { + "_tab_label": "둥글기" + }, + "shadows": { + "_tab_label": "그림자와 빛", + "blur": "흐리기", + "component": "컴포넌트", + "components": { + "avatar": "사용자 아바타 (프로필 뷰에서)", + "avatarStatus": "사용자 아바타 (게시물에서)", + "button": "버튼", + "buttonHover": "버튼 (마우스 올렸을 때)", + "buttonPressed": "버튼 (눌렸을 때)", + "buttonPressedHover": "Button (마우스 올림 + 눌림)", + "input": "입력칸", + "panel": "패널", + "panelHeader": "패널 헤더", + "popup": "팝업과 툴팁", + "topBar": "상단 바" + }, + "filter_hint": { + "always_drop_shadow": "경고, 이 그림자는 브라우저가 지원하는 경우 항상 {0}을 사용합니다.", + "avatar_inset": "안쪽과 안쪽이 아닌 그림자를 모두 설정하는 경우 투명 아바타에서 예상치 못 한 결과가 나올 수 있다는 것에 주의해 주세요.", + "drop_shadow_syntax": "{0}는 {1} 파라미터와 {2} 키워드를 지원하지 않습니다.", + "inset_classic": "안쪽 그림자는 {0}를 사용합니다", + "spread_zero": "퍼지기가 0보다 큰 그림자는 0으로 설정한 것과 동일하게 보여집니다" + }, + "inset": "안쪽으로", + "override": "덮어쓰기", + "shadow_id": "그림자 #{value}", + "spread": "퍼지기" + }, + "switcher": { + "clear_all": "모두 지우기", + "clear_opacity": "불투명도 지우기", + "keep_color": "색상 유지", + "keep_fonts": "글자체 유지", + "keep_opacity": "불투명도 유지", + "keep_roundness": "둥글기 유지", + "keep_shadows": "그림자 유지", + "reset": "초기화", + "save_load_hint": "\"유지\" 옵션들은 다른 테마를 고르거나 불러 올 때 현재 설정 된 옵션들을 건드리지 않게 합니다, 테마를 내보내기 할 때도 이 옵션에 따라 저장합니다. 아무 것도 체크 되지 않았다면 모든 설정을 내보냅니다." + } + }, + "subject_input_always_show": "항상 주제 칸 보이기", + "subject_line_behavior": "답글을 달 때 주제 복사하기", + "subject_line_email": "이메일처럼: \"re: 주제\"", + "subject_line_mastodon": "마스토돈처럼: 그대로 복사", + "subject_line_noop": "복사 안 함", + "text": "텍스트", + "theme": "테마", + "theme_help": "16진수 색상코드(#rrggbb)를 사용해 색상 테마를 커스터마이즈.", + "theme_help_v2_1": "체크박스를 통해 몇몇 컴포넌트의 색상과 불투명도를 조절 가능, \"모두 지우기\" 버튼으로 덮어 씌운 것을 모두 취소.", + "theme_help_v2_2": "몇몇 입력칸 밑의 아이콘은 전경/배경 대비 관련 표시등입니다, 마우스를 올려 자세한 정보를 볼 수 있습니다. 투명도 대비 표시등이 가장 최악의 경우를 나타낸다는 것을 유의하세요.", + "token": "토큰", + "tooltipRadius": "툴팁/경고", + "user_mutes": "사용자", + "user_settings": "사용자 설정", + "valid_until": "까지 유효하다", + "values": { + "false": "아니오", + "true": "네" + } }, - "block_export": "차단 목록 내보내기", - "mfa": { - "scan": { - "secret_code": "키", - "title": "스캔" - }, - "authentication_methods": "인증 방법", - "waiting_a_recovery_codes": "예비 코드를 수신하고 있습니다…", - "recovery_codes": "복구 코드.", - "generate_new_recovery_codes": "새로운 복구 코드를 작성", - "title": "2단계인증", - "confirm_and_enable": "OTP 확인과 활성화", - "setup_otp": "OTP 설치", - "otp": "OTP" + "time": { + "in_past": "{0} 전", + "now": "방끔", + "now_short": "방금", + "unit": { + "days": "{0} 일", + "days_short": "{0} 일", + "hours": "{0} 시간", + "hours_short": "{0} 시간", + "minutes": "{0} 분", + "minutes_short": "{0} 분", + "months": "{0} 달 전", + "months_short": "{0} 달 전", + "seconds": "{0} 초", + "seconds_short": "{0} 초", + "weeks": "{0} 주일", + "weeks_short": "{0} 주일", + "years": "{0} 년", + "years_short": "{0} 년" + } }, - "security": "보안", - "emoji_reactions_on_timeline": "이모지 반응을 타임라인으로 표시", - "avatar_size_instruction": "크기를 150x150 이상으로 설정할 것을 추장합니다.", - "blocks_tab": "차단", - "notification_setting_privacy": "보안", - "user_mutes": "사용자", - "notification_visibility_emoji_reactions": "반응", - "profile_fields": { - "value": "내용" + "timeline": { + "collapse": "접기", + "conversation": "대화", + "load_older": "더 오래 된 게시물 불러오기", + "no_retweet_hint": "팔로워 전용, 다이렉트 메시지는 반복할 수 없습니다", + "repeated": "반복 됨", + "show_new": "새로운 것 보기", + "up_to_date": "최신 상태" }, - "mutes_and_blocks": "침묵과 차단", - "chatMessageRadius": "챗 메시지", - "change_email": "메일주소 바꾸기", - "changed_email": "메일주소가 갱신되었습니다!", - "bot": "이 계정은 bot입니다", - "mutes_tab": "침묵", - "app_name": "앱 이름" - }, - "timeline": { - "collapse": "접기", - "conversation": "대화", - "error_fetching": "업데이트 불러오기 실패", - "load_older": "더 오래 된 게시물 불러오기", - "no_retweet_hint": "팔로워 전용, 다이렉트 메시지는 반복할 수 없습니다", - "repeated": "반복 됨", - "show_new": "새로운 것 보기", - "up_to_date": "최신 상태" - }, - "user_card": { - "approve": "승인", - "block": "차단", - "blocked": "차단 됨!", - "deny": "거부", - "follow": "팔로우", - "follow_sent": "요청 보내짐!", - "follow_progress": "요청 중…", - "follow_unfollow": "팔로우 중지", - "followees": "팔로우 중", - "followers": "팔로워", - "following": "팔로우 중!", - "follows_you": "당신을 팔로우 합니다!", - "its_you": "당신입니다!", - "mute": "침묵", - "muted": "침묵 됨", - "per_day": "/ 하루", - "remote_follow": "원격 팔로우", - "statuses": "게시물" - }, - "user_profile": { - "timeline_title": "사용자 타임라인" - }, - "who_to_follow": { - "more": "더 보기", - "who_to_follow": "팔로우 추천" - }, - "tool_tip": { - "media_upload": "미디어 업로드", - "repeat": "반복", - "reply": "답글", - "favorite": "즐겨찾기", - "user_settings": "사용자 설정" - }, - "upload": { - "error": { - "base": "업로드 실패.", - "file_too_big": "파일이 너무 커요 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "잠시 후에 다시 시도해 보세요" + "tool_tip": { + "favorite": "즐겨찾기", + "media_upload": "미디어 업로드", + "repeat": "반복", + "reply": "답글", + "user_settings": "사용자 설정" }, - "file_size_units": { - "B": "바이트", - "KiB": "키비바이트", - "MiB": "메비바이트", - "GiB": "기비바이트", - "TiB": "테비바이트" + "upload": { + "error": { + "base": "업로드 실패.", + "default": "잠시 후에 다시 시도해 보세요", + "file_too_big": "파일이 너무 커요 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "바이트", + "GiB": "기비바이트", + "KiB": "키비바이트", + "MiB": "메비바이트", + "TiB": "테비바이트" + } + }, + "user_card": { + "approve": "승인", + "block": "차단", + "blocked": "차단 됨!", + "deny": "거부", + "follow": "팔로우", + "follow_progress": "요청 중…", + "follow_sent": "요청 보내짐!", + "follow_unfollow": "팔로우 중지", + "followees": "팔로우 중", + "followers": "팔로워", + "following": "팔로우 중!", + "follows_you": "당신을 팔로우 합니다!", + "its_you": "당신입니다!", + "mute": "침묵", + "muted": "침묵 됨", + "per_day": "/ 하루", + "remote_follow": "원격 팔로우", + "statuses": "게시물" + }, + "user_profile": { + "timeline_title": "사용자 타임라인" + }, + "who_to_follow": { + "more": "더 보기", + "who_to_follow": "팔로우 추천" } - }, - "interactions": { - "follows": "새 팔로워", - "favs_repeats": "반복과 즐겨찾기", - "moves": "계정 통합" - }, - "emoji": { - "load_all": "전체 {emojiAmount} 이모지 불러오기", - "unicode": "Unicode 이모지", - "custom": "전용 이모지", - "add_emoji": "이모지 넣기", - "search_emoji": "이모지 검색", - "emoji": "이모지", - "stickers": "스티커" - }, - "polls": { - "add_poll": "투표를 추가", - "votes": "표", - "vote": "투표", - "type": "투표 형식", - "expiry": "투표 기간", - "votes_count": "{count} 표 | {count} 표", - "people_voted_count": "{count} 명 투표 | {count} 명 투표", - "option": "선택지", - "add_option": "선택지 추가", - "expired": "투표는 {0} 전에 마감되었습니다", - "expires_in": "투표는 {0}에 마감됩니다" - }, - "media_modal": { - "next": "다음", - "previous": "이전" - }, - "importer": { - "error": "이 파일을 가져올 때 오류가 발생하였습니다.", - "success": "정상히 불러왔습니다.", - "submit": "보내기" - }, - "image_cropper": { - "cancel": "취소", - "save_without_cropping": "그대로 저장", - "save": "저장", - "crop_picture": "사진 자르기" - }, - "exporter": { - "processing": "처리중입니다, 처리가 끝나면 파일을 다운로드하라는 지시가 있겠습니다", - "export": "내보내기" - }, - "domain_mute_card": { - "unmute_progress": "침묵을 해제중…", - "unmute": "침묵 해제", - "mute_progress": "침묵으로 설정중…", - "mute": "침묵" - }, - "about": { - "staff": "운영자", - "mrf": { - "simple": { - "media_nsfw_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고에 붙혀 있는 매체는 민감함으로 설정됩니다:", - "media_nsfw": "매체를 민감함으로 설정", - "media_removal_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고에 붙혀 있는 매체는 제거됩니다:", - "media_removal": "매체 제거", - "ftl_removal_desc": "이 인스턴스에서 아래의 인스턴스들은 \"알려진 네트워크\" 타임라인에서 제외됩니다:", - "ftl_removal": "\"알려진 네트워크\" 타임라인에서 제외", - "quarantine_desc": "이 인스턴스는 아래의 인스턴스에게 공개투고만을 보냅니다:", - "quarantine": "검역", - "reject_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고를 받아들이지 않습니다:", - "accept_desc": "이 인스턴스에서는 아래의 인스턴스로부터 보내온 투고만이 접수됩니다:", - "reject": "거부", - "accept": "허가", - "simple_policies": "인스턴스 특유의 폴리시" - }, - "mrf_policies": "사용되는 MRF 폴리시", - "keyword": { - "is_replaced_by": "→", - "replace": "바꾸기", - "reject": "거부", - "ftl_removal": "\"알려진 모든 네트워크\" 타임라인에서 제외", - "keyword_policies": "단어 폴리시" - }, - "federation": "연합" - } - }, - "shoutbox": { - "title": "Shoutbox" - }, - "time": { - "now_short": "방금", - "now": "방끔", - "in_past": "{0} 전", - "unit": { - "years_short": "{0} 년", - "year_short": "{0} 년", - "years": "{0} 년", - "year": "{0} 년", - "weeks_short": "{0} 주일", - "week_short": "{0} 주일", - "weeks": "{0} 주일", - "week": "{0} 주일", - "seconds_short": "{0} 초", - "second_short": "{0} 초", - "seconds": "{0} 초", - "second": "{0} 초", - "months_short": "{0} 달 전", - "month_short": "{0} 달 전", - "months": "{0} 달 전", - "month": "{0} 달 전", - "minutes_short": "{0} 분", - "minute_short": "{0} 분", - "minutes": "{0} 분", - "minute": "{0} 분", - "hours_short": "{0} 시간", - "hour_short": "{0} 시간", - "hours": "{0} 시간", - "hour": "{0} 시간", - "days_short": "{0} 일", - "day_short": "{0} 일", - "days": "{0} 일", - "day": "{0} 일" - } - }, - "remote_user_resolver": { - "error": "찾을 수 없습니다.", - "searching_for": "검색중" - }, - "selectable_list": { - "select_all": "모두 선택" - } -} +} \ No newline at end of file diff --git a/src/i18n/nb.json b/src/i18n/nb.json index 2b4d59f6..b3a7ab32 100644 --- a/src/i18n/nb.json +++ b/src/i18n/nb.json @@ -1,624 +1,598 @@ { - "chat": { - "title": "Nettprat" - }, - "exporter": { - "export": "Eksporter", - "processing": "Arbeider, du vil snart bli spurt om å laste ned filen din" - }, - "features_panel": { - "chat": "Nettprat", - "gopher": "Gopher", - "media_proxy": "Media proxy", - "scope_options": "Velg mottakere", - "text_limit": "Tekstgrense", - "title": "Egenskaper", - "who_to_follow": "Kontoer å følge" - }, - "finder": { - "error_fetching_user": "Feil ved henting av bruker", - "find_user": "Finn bruker" - }, - "general": { - "apply": "Bruk", - "submit": "Send", - "more": "Mer", - "generic_error": "Det oppsto en feil", - "optional": "valgfritt", - "show_more": "Vis mer", - "show_less": "Vis mindre", - "cancel": "Avbryt", - "disable": "Slå av", - "enable": "Slå på", - "confirm": "Godta", - "verify": "Godkjenn" - }, - "image_cropper": { - "crop_picture": "Minsk bilde", - "save": "Lagre", - "save_without_cropping": "Lagre uten å minske bildet", - "cancel": "Avbryt" - }, - "importer": { - "submit": "Send", - "success": "Importering fullført.", - "error": "Det oppsto en feil under importering av denne filen." - }, - "login": { - "login": "Logg inn", - "description": "Log inn med OAuth", - "logout": "Logg ut", - "password": "Passord", - "placeholder": "f. eks lain", - "register": "Registrer", - "username": "Brukernavn", - "hint": "Logg inn for å delta i diskusjonen", - "authentication_code": "Verifikasjonskode", - "enter_recovery_code": "Skriv inn en gjenopprettingskode", - "enter_two_factor_code": "Skriv inn en to-faktors kode", - "recovery_code": "Gjenopprettingskode", - "heading": { - "totp": "To-faktors autentisering", - "recovery": "To-faktors gjenoppretting" - } - }, - "media_modal": { - "previous": "Forrige", - "next": "Neste" - }, - "nav": { - "about": "Om", - "back": "Tilbake", - "chat": "Lokal nettprat", - "friend_requests": "Følgeforespørsler", - "mentions": "Nevnt", - "interactions": "Interaksjoner", - "dms": "Direktemeldinger", - "public_tl": "Offentlig Tidslinje", - "timeline": "Tidslinje", - "twkn": "Det hele kjente nettverket", - "user_search": "Søk etter brukere", - "search": "Søk", - "who_to_follow": "Kontoer å følge", - "preferences": "Innstillinger", - "timelines": "Tidslinjer", - "bookmarks": "Bokmerker" - }, - "notifications": { - "broken_favorite": "Ukjent status, leter etter den…", - "favorited_you": "likte din status", - "followed_you": "fulgte deg", - "load_older": "Last eldre varsler", - "notifications": "Varslinger", - "read": "Les!", - "repeated_you": "Gjentok din status", - "no_more_notifications": "Ingen gjenstående varsler", - "follow_request": "ønsker å følge deg" - }, - "polls": { - "add_poll": "Legg til undersøkelse", - "add_option": "Legg til svaralternativ", - "option": "Svaralternativ", - "votes": "stemmer", - "vote": "Stem", - "type": "Undersøkelsestype", - "single_choice": "Enkeltvalg", - "multiple_choices": "Flervalg", - "expiry": "Undersøkelsestid", - "expires_in": "Undersøkelsen er over om {0}", - "expired": "Undersøkelsen ble ferdig {0} siden", - "not_enough_options": "For få unike svaralternativer i undersøkelsen" - }, - "stickers": { - "add_sticker": "Legg til klistremerke" - }, - "interactions": { - "favs_repeats": "Gjentakelser og favoritter", - "follows": "Nye følgere", - "load_older": "Last eldre interaksjoner" - }, - "post_status": { - "new_status": "Legg ut ny status", - "account_not_locked_warning": "Kontoen din er ikke {0}. Hvem som helst kan følge deg for å se dine statuser til følgere", - "account_not_locked_warning_link": "låst", - "attachments_sensitive": "Merk vedlegg som sensitive", - "content_type": { - "text/plain": "Klar tekst", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Tema (valgfritt)", - "default": "Landet akkurat i L.A.", - "direct_warning_to_all": "Denne statusen vil være synlig av nevnte brukere", - "direct_warning_to_first_only": "Denne statusen vil være synlig for de brukerene som blir nevnt først i statusen.", - "posting": "Publiserer", - "scope_notice": { - "public": "Denne statusen vil være synlig for alle", - "private": "Denne statusen vil være synlig for dine følgere", - "unlisted": "Denne statusen vil ikke være synlig i Offentlig Tidslinje eller Det Hele Kjente Nettverket" - }, - "scope": { - "direct": "Direkte, publiser bare til nevnte brukere", - "private": "Bare følgere, publiser bare til brukere som følger deg", - "public": "Offentlig, publiser til offentlige tidslinjer", - "unlisted": "Uoppført, ikke publiser til offentlige tidslinjer" - } - }, - "registration": { - "bio": "Biografi", - "email": "Epost-adresse", - "fullname": "Visningsnavn", - "password_confirm": "Bekreft passord", - "registration": "Registrering", - "token": "Invitasjons-bevis", - "captcha": "CAPTCHA", - "new_captcha": "Trykk på bildet for å få en ny captcha", - "username_placeholder": "f.eks. Lain Iwakura", - "fullname_placeholder": "f.eks. Lain Iwakura", - "bio_placeholder": "e.g.\nHei, jeg er Lain.\nJeg er en animert jente som bor i forstaden i Japan. Du kjenner meg kanskje fra the Wired.", - "validations": { - "username_required": "kan ikke stå tomt", - "fullname_required": "kan ikke stå tomt", - "email_required": "kan ikke stå tomt", - "password_required": "kan ikke stå tomt", - "password_confirmation_required": "kan ikke stå tomt", - "password_confirmation_match": "skal være det samme som passord" - } - }, - "selectable_list": { - "select_all": "Velg alle" - }, - "settings": { - "app_name": "Applikasjonsnavn", - "security": "Sikkerhet", - "enter_current_password_to_confirm": "Skriv inn ditt nåverende passord for å bekrefte din identitet", - "mfa": { - "otp": "OTP", - "setup_otp": "Set opp OTP", - "wait_pre_setup_otp": "forhåndsstiller OTP", - "confirm_and_enable": "Bekreft og slå på OTP", - "title": "To-faktors autentisering", - "generate_new_recovery_codes": "Generer nye gjenopprettingskoder", - "warning_of_generate_new_codes": "Når du genererer nye gjenopprettingskoder, vil de gamle slutte å fungere.", - "recovery_codes": "Gjenopprettingskoder.", - "waiting_a_recovery_codes": "Mottar gjenopprettingskoder...", - "recovery_codes_warning": "Skriv disse kodene ned eller plasser dem ett sikkert sted - ellers så vil du ikke se dem igjen. Dersom du mister tilgang til din to-faktors app og dine gjenopprettingskoder, vil du bli stengt ute av kontoen din.", - "authentication_methods": "Autentiseringsmetoder", - "scan": { - "title": "Skann", - "desc": "Ved hjelp av din to-faktors applikasjon, skann denne QR-koden eller skriv inn tekstnøkkelen", - "secret_code": "Nøkkel" - }, - "verify": { - "desc": "For å skru på to-faktors autentisering, skriv inn koden i fra din to-faktors app:" - } - }, - "attachmentRadius": "Vedlegg", - "attachments": "Vedlegg", - "avatar": "Profilbilde", - "avatarAltRadius": "Profilbilde (Varslinger)", - "avatarRadius": "Profilbilde", - "background": "Bakgrunn", - "bio": "Biografi", - "block_export": "Eksporter blokkeringer", - "block_export_button": "Eksporter blokkeringer til en csv fil", - "block_import": "Import blokkeringer", - "block_import_error": "Det oppsto en feil under importering av blokkeringer", - "blocks_imported": "Blokkeringer importert, det vil ta litt å prossesere dem", - "blocks_tab": "Blokkeringer", - "btnRadius": "Knapper", - "cBlue": "Blå (Svar, følg)", - "cGreen": "Grønn (Gjenta)", - "cOrange": "Oransje (Lik)", - "cRed": "Rød (Avbryt)", - "change_password": "Endre passord", - "change_password_error": "Feil ved endring av passord", - "changed_password": "Passord endret", - "collapse_subject": "Sammenfold statuser med tema", - "composing": "komponering", - "confirm_new_password": "Bekreft nytt passord", - "current_avatar": "Ditt nåværende profilbilde", - "current_password": "Nåværende passord", - "current_profile_banner": "Din nåværende profil-banner", - "data_import_export_tab": "Data import / eksport", - "default_vis": "Standard visnings-omfang", - "delete_account": "Slett konto", - "delete_account_description": "Fjern din konto og alle dine meldinger for alltid.", - "delete_account_error": "Det oppsto et problem ved sletting av kontoen din, hvis dette problemet forblir kontakt din administrator", - "delete_account_instructions": "Skriv inn ditt passord i feltet nedenfor for å bekrefte sletting av konto", - "avatar_size_instruction": "Den anbefalte minste-størrelsen for profilbilder er 150x150 piksler", - "export_theme": "Lagre tema", - "filtering": "Filtrering", - "filtering_explanation": "Alle statuser som inneholder disse ordene vil bli dempet, en kombinasjon av tegn per linje", - "follow_export": "Eksporter følginger", - "follow_export_button": "Eksporter følgingene dine til en .csv fil", - "follow_import": "Importer følginger", - "follow_import_error": "Feil ved importering av følginger.", - "follows_imported": "Følginger importert! Behandling vil ta litt tid.", - "foreground": "Forgrunn", - "general": "Generell", - "hide_attachments_in_convo": "Gjem vedlegg i samtaler", - "hide_attachments_in_tl": "Gjem vedlegg på tidslinje", - "hide_muted_posts": "Gjem statuser i fra gjemte brukere", - "max_thumbnails": "Maks antall forhåndsbilder per status", - "hide_isp": "Gjem instans-spesifikt panel", - "preload_images": "Forhåndslast bilder", - "use_one_click_nsfw": "Åpne sensitive vedlegg med ett klikk", - "hide_post_stats": "Gjem status statistikk (f.eks. antall likes", - "hide_user_stats": "Gjem bruker statistikk (f.eks. antall følgere)", - "hide_filtered_statuses": "Gjem filtrerte statuser", - "import_blocks_from_a_csv_file": "Importer blokkeringer fra en csv fil", - "import_followers_from_a_csv_file": "Importer følginger fra en csv fil", - "import_theme": "Last tema", - "inputRadius": "Tekst felt", - "checkboxRadius": "Sjekkbokser", - "instance_default": "(standard: {value})", - "instance_default_simple": "(standard)", - "interface": "Grensesnitt", - "interfaceLanguage": "Grensesnitt-språk", - "invalid_theme_imported": "Den valgte filen er ikke ett støttet Pleroma-tema, ingen endringer til ditt tema ble gjort", - "limited_availability": "Ikke tilgjengelig i din nettleser", - "links": "Linker", - "lock_account_description": "Begrens din konto til bare godkjente følgere", - "loop_video": "Gjenta videoer", - "loop_video_silent_only": "Gjenta bare videoer uten lyd, (for eksempel Mastodon sine \"gifs\")", - "mutes_tab": "Dempinger", - "play_videos_in_modal": "Spill videoer direkte i media-avspilleren", - "use_contain_fit": "Ikke minsk vedlegget i forhåndsvisninger", - "name": "Navn", - "name_bio": "Navn & Biografi", - "new_password": "Nytt passord", - "notification_visibility": "Typer varsler som skal vises", - "notification_visibility_follows": "Følginger", - "notification_visibility_likes": "Likes", - "notification_visibility_mentions": "Nevnt", - "notification_visibility_repeats": "Gjentakelser", - "no_rich_text_description": "Fjern all formatering fra statuser", - "no_blocks": "Ingen blokkeringer", - "no_mutes": "Ingen dempinger", - "hide_follows_description": "Ikke hvis hvem jeg følger", - "hide_followers_description": "Ikke hvis hvem som følger meg", - "show_admin_badge": "Hvis ett administratormerke på min profil", - "show_moderator_badge": "Hvis ett moderatormerke på min profil", - "nsfw_clickthrough": "Krev trykk for å vise statuser som kan være upassende", - "oauth_tokens": "OAuth Tokens", - "token": "Pollett", - "refresh_token": "Fornyingspolett", - "valid_until": "Gyldig til", - "revoke_token": "Tilbakekall", - "panelRadius": "Panel", - "pause_on_unfocused": "Stopp henting av poster når vinduet ikke er i fokus", - "presets": "Forhåndsdefinerte tema", - "profile_background": "Profil-bakgrunn", - "profile_banner": "Profil-banner", - "profile_tab": "Profil", - "radii_help": "Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)", - "replies_in_timeline": "Svar på tidslinje", - "reply_visibility_all": "Vis alle svar", - "reply_visibility_following": "Vis bare svar som er til meg eller folk jeg følger", - "reply_visibility_self": "Vis bare svar som er til meg", - "autohide_floating_post_button": "Skjul Ny Status knapp automatisk (mobil)", - "saving_err": "Feil ved lagring av innstillinger", - "saving_ok": "Innstillinger lagret", - "search_user_to_block": "Søk etter hvem du vil blokkere", - "search_user_to_mute": "Søk etter hvem du vil dempe", - "security_tab": "Sikkerhet", - "scope_copy": "Kopier mottakere når du svarer noen (Direktemeldinger blir alltid kopiert", - "minimal_scopes_mode": "Minimaliser mottakervalg", - "set_new_avatar": "Rediger profilbilde", - "set_new_profile_background": "Rediger profil-bakgrunn", - "set_new_profile_banner": "Sett ny profil-banner", - "settings": "Innstillinger", - "subject_input_always_show": "Alltid hvis tema-felt", - "subject_line_behavior": "Kopier tema når du svarer", - "subject_line_email": "Som email: \"re: tema\"", - "subject_line_mastodon": "Som mastodon: kopier som den er", - "subject_line_noop": "Ikke koper", - "post_status_content_type": "Status innholdstype", - "stop_gifs": "Spill av GIFs når du holder over dem", - "streaming": "Automatisk strømming av nye statuser når du har bladd til toppen", - "text": "Tekst", - "theme": "Tema", - "theme_help": "Bruk heksadesimale fargekoder (#rrggbb) til å endre farge-temaet ditt.", - "theme_help_v2_1": "Du kan også overskrive noen komponenter sine farger og opasitet ved å sjekke av sjekkboksen, bruk \"Nullstill alt\" knappen for å fjerne alle overskrivelser.", - "theme_help_v2_2": "Ikoner under noen av innstillingene er bakgrunn/tekst kontrast indikatorer, hold over dem for detaljert informasjon. Vennligst husk at disse indikatorene viser det verste utfallet.", - "tooltipRadius": "Verktøytips/advarsler", - "upload_a_photo": "Last opp ett bilde", - "user_settings": "Brukerinstillinger", - "values": { - "false": "nei", - "true": "ja" - }, - "notifications": "Varsler", - "notification_mutes": "For å stoppe å motta varsler i fra en spesifikk bruker, kan du dempe dem.", - "notification_blocks": "Hvis du blokkerer en bruker vil det stoppe alle varsler og i tilleg få dem til å slutte å følge deg", - "enable_web_push_notifications": "Skru på pushnotifikasjoner i nettlesere", - "style": { - "switcher": { - "keep_color": "Behold farger", - "keep_shadows": "Behold skygger", - "keep_opacity": "Behold opasitet", - "keep_roundness": "Behold rundhet", - "keep_fonts": "Behold fonter", - "save_load_hint": "\"Behold\" alternativer beholder de instillingene som er satt når du velger eller laster inn temaer, det lagrer også disse alternativene når du eksporterer ett tema, Når alle sjekkboksene er tomme, vil alt bli lagret når du eksporterer ett tema.", - "reset": "Still in på nytt", - "clear_all": "Nullstill alt", - "clear_opacity": "Nullstill opasitet" - }, - "common": { - "color": "Farge", - "opacity": "Opasitet", - "contrast": { - "hint": "Kontrast forholdet er {ratio}, it {level} {context}", - "level": { - "aa": "møter Nivå AA retningslinje (minimal)", - "aaa": "møter Nivå AAA retningslinje (recommended)", - "bad": "møter ingen tilgjengeligshetsretningslinjer" - }, - "context": { - "18pt": "for stor (18pt+) tekst", - "text": "for tekst" - } + "about": { + "mrf": { + "keyword": { + "ftl_removal": "Fjerning fra \"Det hele kjente nettverket\" Tidslinjen", + "is_replaced_by": "→", + "reject": "Avvis", + "replace": "Erstatt" + }, + "simple": { + "accept": "Aksepter", + "accept_desc": "Denne instansen godtar kun meldinger fra følgende instanser:", + "quarantine": "Karantene", + "reject": "Avvis", + "reject_desc": "Denne instansen vil ikke godta meldinger fra følgende instanser:" + } } - }, - "common_colors": { - "_tab_label": "Vanlig", - "main": "Vanlige farger", - "foreground_hint": "Se \"Avansert\" fanen for mer detaljert kontroll", - "rgbo": "Ikoner, aksenter, merker" - }, - "advanced_colors": { - "_tab_label": "Avansert", - "alert": "Varslingsbakgrunn", - "alert_error": "Feil", - "badge": "Merkebakgrunn", - "badge_notification": "Varsling", - "panel_header": "Panelhode", - "top_bar": "Topplinje", - "borders": "Kanter", - "buttons": "Knapper", - "inputs": "Tekstfelt", - "faint_text": "Svak tekst" - }, - "radii": { - "_tab_label": "Rundhet" - }, - "shadows": { - "_tab_label": "Skygger og belysning", - "component": "Komponent", - "override": "Overskriv", - "shadow_id": "Skygge #{value}", - "blur": "Uklarhet", - "spread": "Spredning", - "inset": "Insett", - "hint": "For skygger kan du sette --variable som en fargeveerdi for å bruke CSS3 variabler. Vær oppmerksom på at å sette opasitet da ikke vil fungere her.", - "filter_hint": { - "always_drop_shadow": "Advarsel, denne skyggen bruker alltid {0} når nettleseren støtter det.", - "drop_shadow_syntax": "{0} støtter ikke {1} parameter og {2} nøkkelord.", - "avatar_inset": "Vær oppmerksom på at å kombinere både insatte og uinsatte skygger på profilbilder kan gi uforventede resultater med gjennomsiktige profilbilder.", - "spread_zero": "Skygger med spredning > 0 vil fremstå som de var satt til 0", - "inset_classic": "Insette skygger vil bruke {0}" + }, + "exporter": { + "export": "Eksporter", + "processing": "Arbeider, du vil snart bli spurt om å laste ned filen din" + }, + "features_panel": { + "media_proxy": "Media proxy", + "scope_options": "Velg mottakere", + "text_limit": "Tekstgrense", + "title": "Egenskaper", + "who_to_follow": "Kontoer å følge" + }, + "finder": { + "error_fetching_user": "Feil ved henting av bruker", + "find_user": "Finn bruker" + }, + "general": { + "apply": "Bruk", + "cancel": "Avbryt", + "confirm": "Godta", + "disable": "Slå av", + "enable": "Slå på", + "generic_error": "Det oppsto en feil", + "more": "Mer", + "optional": "valgfritt", + "show_less": "Vis mindre", + "show_more": "Vis mer", + "submit": "Send", + "verify": "Godkjenn" + }, + "image_cropper": { + "cancel": "Avbryt", + "crop_picture": "Minsk bilde", + "save": "Lagre", + "save_without_cropping": "Lagre uten å minske bildet" + }, + "importer": { + "error": "Det oppsto en feil under importering av denne filen.", + "submit": "Send", + "success": "Importering fullført." + }, + "interactions": { + "favs_repeats": "Gjentakelser og favoritter", + "follows": "Nye følgere", + "load_older": "Last eldre interaksjoner" + }, + "login": { + "authentication_code": "Verifikasjonskode", + "description": "Log inn med OAuth", + "enter_recovery_code": "Skriv inn en gjenopprettingskode", + "enter_two_factor_code": "Skriv inn en to-faktors kode", + "heading": { + "recovery": "To-faktors gjenoppretting", + "totp": "To-faktors autentisering" }, - "components": { - "panel": "Panel", - "panelHeader": "Panelhode", - "topBar": "Topplinje", - "avatar": "Profilbilde (i profilvisning)", - "avatarStatus": "Profilbilde (i statusvisning)", - "popup": "Popups og tooltips", - "button": "Knapp", - "buttonHover": "Knapp (holdt)", - "buttonPressed": "Knapp (nedtrykt)", - "buttonPressedHover": "Knapp (nedtrykt+holdt)", - "input": "Tekstfelt" + "hint": "Logg inn for å delta i diskusjonen", + "login": "Logg inn", + "logout": "Logg ut", + "password": "Passord", + "placeholder": "f. eks lain", + "recovery_code": "Gjenopprettingskode", + "register": "Registrer", + "username": "Brukernavn" + }, + "media_modal": { + "next": "Neste", + "previous": "Forrige" + }, + "nav": { + "about": "Om", + "back": "Tilbake", + "bookmarks": "Bokmerker", + "dms": "Direktemeldinger", + "friend_requests": "Følgeforespørsler", + "interactions": "Interaksjoner", + "mentions": "Nevnt", + "preferences": "Innstillinger", + "public_tl": "Offentlig Tidslinje", + "search": "Søk", + "timeline": "Tidslinje", + "timelines": "Tidslinjer", + "twkn": "Det hele kjente nettverket", + "user_search": "Søk etter brukere", + "who_to_follow": "Kontoer å følge" + }, + "notifications": { + "broken_favorite": "Ukjent status, leter etter den…", + "favorited_you": "likte din status", + "follow_request": "ønsker å følge deg", + "followed_you": "fulgte deg", + "load_older": "Last eldre varsler", + "no_more_notifications": "Ingen gjenstående varsler", + "notifications": "Varslinger", + "read": "Les!", + "repeated_you": "Gjentok din status" + }, + "polls": { + "add_option": "Legg til svaralternativ", + "add_poll": "Legg til undersøkelse", + "expired": "Undersøkelsen ble ferdig {0} siden", + "expires_in": "Undersøkelsen er over om {0}", + "expiry": "Undersøkelsestid", + "multiple_choices": "Flervalg", + "not_enough_options": "For få unike svaralternativer i undersøkelsen", + "option": "Svaralternativ", + "single_choice": "Enkeltvalg", + "type": "Undersøkelsestype", + "vote": "Stem", + "votes": "stemmer" + }, + "post_status": { + "account_not_locked_warning": "Kontoen din er ikke {0}. Hvem som helst kan følge deg for å se dine statuser til følgere", + "account_not_locked_warning_link": "låst", + "attachments_sensitive": "Merk vedlegg som sensitive", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Klar tekst" + }, + "content_warning": "Tema (valgfritt)", + "default": "Landet akkurat i L.A.", + "direct_warning_to_all": "Denne statusen vil være synlig av nevnte brukere", + "direct_warning_to_first_only": "Denne statusen vil være synlig for de brukerene som blir nevnt først i statusen.", + "new_status": "Legg ut ny status", + "posting": "Publiserer", + "scope": { + "direct": "Direkte, publiser bare til nevnte brukere", + "private": "Bare følgere, publiser bare til brukere som følger deg", + "public": "Offentlig, publiser til offentlige tidslinjer", + "unlisted": "Uoppført, ikke publiser til offentlige tidslinjer" + }, + "scope_notice": { + "private": "Denne statusen vil være synlig for dine følgere", + "public": "Denne statusen vil være synlig for alle", + "unlisted": "Denne statusen vil ikke være synlig i Offentlig Tidslinje eller Det Hele Kjente Nettverket" } - }, - "fonts": { - "_tab_label": "Fonter", - "help": "Velg font til elementene i brukergrensesnittet. For \"egendefinert\" må du skrive inn det nøyaktige font-navnet som det fremstår på systemet", - "components": { - "interface": "Grensesnitt", - "input": "Tekstfelt", - "post": "Statustekst", - "postCode": "Monospaced tekst i en status (rik tekst)" + }, + "registration": { + "bio": "Biografi", + "bio_placeholder": "e.g.\nHei, jeg er Lain.\nJeg er en animert jente som bor i forstaden i Japan. Du kjenner meg kanskje fra the Wired.", + "captcha": "CAPTCHA", + "email": "Epost-adresse", + "fullname": "Visningsnavn", + "fullname_placeholder": "f.eks. Lain Iwakura", + "new_captcha": "Trykk på bildet for å få en ny captcha", + "password_confirm": "Bekreft passord", + "registration": "Registrering", + "token": "Invitasjons-bevis", + "username_placeholder": "f.eks. Lain Iwakura", + "validations": { + "email_required": "kan ikke stå tomt", + "fullname_required": "kan ikke stå tomt", + "password_confirmation_match": "skal være det samme som passord", + "password_confirmation_required": "kan ikke stå tomt", + "password_required": "kan ikke stå tomt", + "username_required": "kan ikke stå tomt" + } + }, + "search": { + "hashtags": "Emneknagger", + "no_results": "Ingen resultater", + "people": "Folk", + "people_talking": "{count} personer snakker om dette", + "person_talking": "{count} person snakker om dette" + }, + "selectable_list": { + "select_all": "Velg alle" + }, + "settings": { + "app_name": "Applikasjonsnavn", + "attachmentRadius": "Vedlegg", + "attachments": "Vedlegg", + "autohide_floating_post_button": "Skjul Ny Status knapp automatisk (mobil)", + "avatar": "Profilbilde", + "avatarAltRadius": "Profilbilde (Varslinger)", + "avatarRadius": "Profilbilde", + "avatar_size_instruction": "Den anbefalte minste-størrelsen for profilbilder er 150x150 piksler", + "background": "Bakgrunn", + "bio": "Biografi", + "block_export": "Eksporter blokkeringer", + "block_export_button": "Eksporter blokkeringer til en csv fil", + "block_import": "Import blokkeringer", + "block_import_error": "Det oppsto en feil under importering av blokkeringer", + "blocks_imported": "Blokkeringer importert, det vil ta litt å prossesere dem", + "blocks_tab": "Blokkeringer", + "btnRadius": "Knapper", + "cBlue": "Blå (Svar, følg)", + "cGreen": "Grønn (Gjenta)", + "cOrange": "Oransje (Lik)", + "cRed": "Rød (Avbryt)", + "change_password": "Endre passord", + "change_password_error": "Feil ved endring av passord", + "changed_password": "Passord endret", + "checkboxRadius": "Sjekkbokser", + "collapse_subject": "Sammenfold statuser med tema", + "composing": "komponering", + "confirm_new_password": "Bekreft nytt passord", + "current_avatar": "Ditt nåværende profilbilde", + "current_password": "Nåværende passord", + "data_import_export_tab": "Data import / eksport", + "default_vis": "Standard visnings-omfang", + "delete_account": "Slett konto", + "delete_account_description": "Fjern din konto og alle dine meldinger for alltid.", + "delete_account_error": "Det oppsto et problem ved sletting av kontoen din, hvis dette problemet forblir kontakt din administrator", + "delete_account_instructions": "Skriv inn ditt passord i feltet nedenfor for å bekrefte sletting av konto", + "enable_web_push_notifications": "Skru på pushnotifikasjoner i nettlesere", + "enter_current_password_to_confirm": "Skriv inn ditt nåverende passord for å bekrefte din identitet", + "export_theme": "Lagre tema", + "filtering": "Filtrering", + "filtering_explanation": "Alle statuser som inneholder disse ordene vil bli dempet, en kombinasjon av tegn per linje", + "follow_export": "Eksporter følginger", + "follow_export_button": "Eksporter følgingene dine til en .csv fil", + "follow_import": "Importer følginger", + "follow_import_error": "Feil ved importering av følginger.", + "follows_imported": "Følginger importert! Behandling vil ta litt tid.", + "foreground": "Forgrunn", + "general": "Generell", + "hide_attachments_in_convo": "Gjem vedlegg i samtaler", + "hide_attachments_in_tl": "Gjem vedlegg på tidslinje", + "hide_filtered_statuses": "Gjem filtrerte statuser", + "hide_followers_description": "Ikke hvis hvem som følger meg", + "hide_follows_description": "Ikke hvis hvem jeg følger", + "hide_isp": "Gjem instans-spesifikt panel", + "hide_muted_posts": "Gjem statuser i fra gjemte brukere", + "hide_post_stats": "Gjem status statistikk (f.eks. antall likes", + "hide_user_stats": "Gjem bruker statistikk (f.eks. antall følgere)", + "hide_wallpaper": "Skjul instansens bakgrunnsbilde", + "import_blocks_from_a_csv_file": "Importer blokkeringer fra en csv fil", + "import_followers_from_a_csv_file": "Importer følginger fra en csv fil", + "import_theme": "Last tema", + "inputRadius": "Tekst felt", + "instance_default": "(standard: {value})", + "instance_default_simple": "(standard)", + "interface": "Grensesnitt", + "interfaceLanguage": "Grensesnitt-språk", + "invalid_theme_imported": "Den valgte filen er ikke ett støttet Pleroma-tema, ingen endringer til ditt tema ble gjort", + "limited_availability": "Ikke tilgjengelig i din nettleser", + "links": "Linker", + "lock_account_description": "Begrens din konto til bare godkjente følgere", + "loop_video": "Gjenta videoer", + "loop_video_silent_only": "Gjenta bare videoer uten lyd, (for eksempel Mastodon sine \"gifs\")", + "max_thumbnails": "Maks antall forhåndsbilder per status", + "mfa": { + "authentication_methods": "Autentiseringsmetoder", + "confirm_and_enable": "Bekreft og slå på OTP", + "generate_new_recovery_codes": "Generer nye gjenopprettingskoder", + "otp": "OTP", + "recovery_codes": "Gjenopprettingskoder.", + "recovery_codes_warning": "Skriv disse kodene ned eller plasser dem ett sikkert sted - ellers så vil du ikke se dem igjen. Dersom du mister tilgang til din to-faktors app og dine gjenopprettingskoder, vil du bli stengt ute av kontoen din.", + "scan": { + "desc": "Ved hjelp av din to-faktors applikasjon, skann denne QR-koden eller skriv inn tekstnøkkelen", + "secret_code": "Nøkkel", + "title": "Skann" + }, + "setup_otp": "Set opp OTP", + "title": "To-faktors autentisering", + "verify": { + "desc": "For å skru på to-faktors autentisering, skriv inn koden i fra din to-faktors app:" + }, + "wait_pre_setup_otp": "forhåndsstiller OTP", + "waiting_a_recovery_codes": "Mottar gjenopprettingskoder...", + "warning_of_generate_new_codes": "Når du genererer nye gjenopprettingskoder, vil de gamle slutte å fungere." }, - "family": "Font naavn", - "size": "Størrelse (i piksler)", - "weight": "Vekt (dristighet)", - "custom": "Egendefinert" - }, - "preview": { - "header": "Forhåndsvisning", - "content": "Innhold", - "error": "Eksempel feil", - "button": "Knapp", - "text": "Mye mer {0} og {1}", - "mono": "innhold", - "input": "Landet akkurat i L.A.", - "faint_link": "hjelpfull brukerveiledning", - "fine_print": "Les vår {0} for å lære ingenting nyttig!", - "header_faint": "Dette er OK", - "checkbox": "Jeg har skumlest vilkår og betingelser", - "link": "en flott liten link" - } + "minimal_scopes_mode": "Minimaliser mottakervalg", + "mutes_tab": "Dempinger", + "name": "Navn", + "name_bio": "Navn & Biografi", + "new_password": "Nytt passord", + "no_blocks": "Ingen blokkeringer", + "no_mutes": "Ingen dempinger", + "no_rich_text_description": "Fjern all formatering fra statuser", + "notification_blocks": "Hvis du blokkerer en bruker vil det stoppe alle varsler og i tilleg få dem til å slutte å følge deg", + "notification_mutes": "For å stoppe å motta varsler i fra en spesifikk bruker, kan du dempe dem.", + "notification_visibility": "Typer varsler som skal vises", + "notification_visibility_follows": "Følginger", + "notification_visibility_likes": "Likes", + "notification_visibility_mentions": "Nevnt", + "notification_visibility_repeats": "Gjentakelser", + "notifications": "Varsler", + "nsfw_clickthrough": "Krev trykk for å vise statuser som kan være upassende", + "oauth_tokens": "OAuth Tokens", + "panelRadius": "Panel", + "pause_on_unfocused": "Stopp henting av poster når vinduet ikke er i fokus", + "play_videos_in_modal": "Spill videoer direkte i media-avspilleren", + "post_status_content_type": "Status innholdstype", + "preload_images": "Forhåndslast bilder", + "presets": "Forhåndsdefinerte tema", + "profile_background": "Profil-bakgrunn", + "profile_banner": "Profil-banner", + "profile_tab": "Profil", + "radii_help": "Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)", + "refresh_token": "Fornyingspolett", + "replies_in_timeline": "Svar på tidslinje", + "reply_visibility_all": "Vis alle svar", + "reply_visibility_following": "Vis bare svar som er til meg eller folk jeg følger", + "reply_visibility_self": "Vis bare svar som er til meg", + "revoke_token": "Tilbakekall", + "saving_err": "Feil ved lagring av innstillinger", + "saving_ok": "Innstillinger lagret", + "scope_copy": "Kopier mottakere når du svarer noen (Direktemeldinger blir alltid kopiert", + "search_user_to_block": "Søk etter hvem du vil blokkere", + "search_user_to_mute": "Søk etter hvem du vil dempe", + "security": "Sikkerhet", + "security_tab": "Sikkerhet", + "set_new_avatar": "Rediger profilbilde", + "set_new_profile_background": "Rediger profil-bakgrunn", + "set_new_profile_banner": "Sett ny profil-banner", + "settings": "Innstillinger", + "show_admin_badge": "Hvis ett administratormerke på min profil", + "show_moderator_badge": "Hvis ett moderatormerke på min profil", + "stop_gifs": "Spill av GIFs når du holder over dem", + "streaming": "Automatisk strømming av nye statuser når du har bladd til toppen", + "style": { + "advanced_colors": { + "_tab_label": "Avansert", + "alert": "Varslingsbakgrunn", + "alert_error": "Feil", + "badge": "Merkebakgrunn", + "badge_notification": "Varsling", + "borders": "Kanter", + "buttons": "Knapper", + "faint_text": "Svak tekst", + "inputs": "Tekstfelt", + "panel_header": "Panelhode", + "top_bar": "Topplinje" + }, + "common": { + "color": "Farge", + "contrast": { + "context": { + "18pt": "for stor (18pt+) tekst", + "text": "for tekst" + }, + "hint": "Kontrast forholdet er {ratio}, it {level} {context}", + "level": { + "aa": "møter Nivå AA retningslinje (minimal)", + "aaa": "møter Nivå AAA retningslinje (recommended)", + "bad": "møter ingen tilgjengeligshetsretningslinjer" + } + }, + "opacity": "Opasitet" + }, + "common_colors": { + "_tab_label": "Vanlig", + "foreground_hint": "Se \"Avansert\" fanen for mer detaljert kontroll", + "main": "Vanlige farger", + "rgbo": "Ikoner, aksenter, merker" + }, + "fonts": { + "_tab_label": "Fonter", + "components": { + "input": "Tekstfelt", + "interface": "Grensesnitt", + "post": "Statustekst", + "postCode": "Monospaced tekst i en status (rik tekst)" + }, + "custom": "Egendefinert", + "family": "Font naavn", + "help": "Velg font til elementene i brukergrensesnittet. For \"egendefinert\" må du skrive inn det nøyaktige font-navnet som det fremstår på systemet", + "size": "Størrelse (i piksler)", + "weight": "Vekt (dristighet)" + }, + "preview": { + "button": "Knapp", + "checkbox": "Jeg har skumlest vilkår og betingelser", + "content": "Innhold", + "error": "Eksempel feil", + "faint_link": "hjelpfull brukerveiledning", + "fine_print": "Les vår {0} for å lære ingenting nyttig!", + "header": "Forhåndsvisning", + "header_faint": "Dette er OK", + "input": "Landet akkurat i L.A.", + "link": "en flott liten link", + "mono": "innhold", + "text": "Mye mer {0} og {1}" + }, + "radii": { + "_tab_label": "Rundhet" + }, + "shadows": { + "_tab_label": "Skygger og belysning", + "blur": "Uklarhet", + "component": "Komponent", + "components": { + "avatar": "Profilbilde (i profilvisning)", + "avatarStatus": "Profilbilde (i statusvisning)", + "button": "Knapp", + "buttonHover": "Knapp (holdt)", + "buttonPressed": "Knapp (nedtrykt)", + "buttonPressedHover": "Knapp (nedtrykt+holdt)", + "input": "Tekstfelt", + "panel": "Panel", + "panelHeader": "Panelhode", + "popup": "Popups og tooltips", + "topBar": "Topplinje" + }, + "filter_hint": { + "always_drop_shadow": "Advarsel, denne skyggen bruker alltid {0} når nettleseren støtter det.", + "avatar_inset": "Vær oppmerksom på at å kombinere både insatte og uinsatte skygger på profilbilder kan gi uforventede resultater med gjennomsiktige profilbilder.", + "drop_shadow_syntax": "{0} støtter ikke {1} parameter og {2} nøkkelord.", + "inset_classic": "Insette skygger vil bruke {0}", + "spread_zero": "Skygger med spredning > 0 vil fremstå som de var satt til 0" + }, + "inset": "Insett", + "override": "Overskriv", + "shadow_id": "Skygge #{value}", + "spread": "Spredning" + }, + "switcher": { + "clear_all": "Nullstill alt", + "clear_opacity": "Nullstill opasitet", + "keep_color": "Behold farger", + "keep_fonts": "Behold fonter", + "keep_opacity": "Behold opasitet", + "keep_roundness": "Behold rundhet", + "keep_shadows": "Behold skygger", + "reset": "Still in på nytt", + "save_load_hint": "\"Behold\" alternativer beholder de instillingene som er satt når du velger eller laster inn temaer, det lagrer også disse alternativene når du eksporterer ett tema, Når alle sjekkboksene er tomme, vil alt bli lagret når du eksporterer ett tema." + } + }, + "subject_input_always_show": "Alltid hvis tema-felt", + "subject_line_behavior": "Kopier tema når du svarer", + "subject_line_email": "Som email: \"re: tema\"", + "subject_line_mastodon": "Som mastodon: kopier som den er", + "subject_line_noop": "Ikke koper", + "text": "Tekst", + "theme": "Tema", + "theme_help": "Bruk heksadesimale fargekoder (#rrggbb) til å endre farge-temaet ditt.", + "theme_help_v2_1": "Du kan også overskrive noen komponenter sine farger og opasitet ved å sjekke av sjekkboksen, bruk \"Nullstill alt\" knappen for å fjerne alle overskrivelser.", + "theme_help_v2_2": "Ikoner under noen av innstillingene er bakgrunn/tekst kontrast indikatorer, hold over dem for detaljert informasjon. Vennligst husk at disse indikatorene viser det verste utfallet.", + "token": "Pollett", + "tooltipRadius": "Verktøytips/advarsler", + "upload_a_photo": "Last opp ett bilde", + "use_contain_fit": "Ikke minsk vedlegget i forhåndsvisninger", + "use_one_click_nsfw": "Åpne sensitive vedlegg med ett klikk", + "user_settings": "Brukerinstillinger", + "valid_until": "Gyldig til", + "values": { + "false": "nei", + "true": "ja" + }, + "version": { + "backend_version": "Backend Versjon", + "frontend_version": "Frontend Versjon", + "title": "Versjon" + } }, - "version": { - "title": "Versjon", - "backend_version": "Backend Versjon", - "frontend_version": "Frontend Versjon" + "status": { + "delete": "Slett status", + "delete_confirm": "Har du virkelig lyst til å slette denne statusen?", + "favorites": "Favoritter", + "pin": "Fremhev på profil", + "pinned": "Fremhevet", + "repeats": "Gjentakelser", + "replies_list": "Svar:", + "reply_to": "Svar til", + "unpin": "Fjern fremhevelse" }, - "hide_wallpaper": "Skjul instansens bakgrunnsbilde" - }, - "time": { - "now": "akkurat nå", - "now_short": "nå", - "in_future": "om {0}", - "in_past": "{0} siden", - "unit": { - "day": "{0} dag", - "days": "{0} dager", - "day_short": "{0}d", - "days_short": "{0}d", - "hour": "{0} time", - "hours": "{0} timer", - "hour_short": "{0}t", - "hours_short": "{0}t", - "minute": "{0} minutt", - "minutes": "{0} minutter", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} måned", - "months": "{0} måneder", - "month_short": "{0}md.", - "months_short": "{0}md.", - "second": "{0} sekund", - "seconds": "{0} sekunder", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} uke", - "weeks": "{0} uker", - "week_short": "{0}u", - "weeks_short": "{0}u", - "year": "{0} år", - "years": "{0} år", - "year_short": "{0}år", - "years_short": "{0}år" - } - }, - "timeline": { - "collapse": "Sammenfold", - "conversation": "Samtale", - "error_fetching": "Feil ved henting av oppdateringer", - "load_older": "Last eldre statuser", - "no_retweet_hint": "Status er markert som bare til følgere eller direkte og kan ikke gjentas", - "repeated": "gjentok", - "show_new": "Vis nye", - "up_to_date": "Oppdatert", - "no_more_statuses": "Ingen flere statuser", - "no_statuses": "Ingen statuser" - }, - "status": { - "favorites": "Favoritter", - "repeats": "Gjentakelser", - "delete": "Slett status", - "pin": "Fremhev på profil", - "unpin": "Fjern fremhevelse", - "pinned": "Fremhevet", - "delete_confirm": "Har du virkelig lyst til å slette denne statusen?", - "reply_to": "Svar til", - "replies_list": "Svar:" - }, - "user_card": { - "approve": "Godkjenn", - "block": "Blokker", - "blocked": "Blokkert!", - "deny": "Avslå", - "favorites": "Favoritter", - "follow": "Følg", - "follow_sent": "Forespørsel sendt!", - "follow_progress": "Forespør…", - "follow_unfollow": "Avfølg", - "followees": "Følger", - "followers": "Følgere", - "following": "Følger!", - "follows_you": "Følger deg!", - "its_you": "Det er deg!", - "media": "Media", - "mute": "Demp", - "muted": "Dempet", - "per_day": "per dag", - "remote_follow": "Følg eksternt", - "report": "Rapport", - "statuses": "Statuser", - "subscribe": "Abonner", - "unsubscribe": "Avabonner", - "unblock": "Fjern blokkering", - "unblock_progress": "Fjerner blokkering...", - "block_progress": "Blokkerer...", - "unmute": "Fjern demping", - "unmute_progress": "Fjerner demping...", - "mute_progress": "Demper...", - "admin_menu": { - "moderation": "Moderering", - "grant_admin": "Gi Administrator", - "revoke_admin": "Fjern Administrator", - "grant_moderator": "Gi Moderator", - "revoke_moderator": "Fjern Moderator", - "activate_account": "Aktiver konto", - "deactivate_account": "Deaktiver kontro", - "delete_account": "Slett konto", - "force_nsfw": "Merk alle statuser som sensitive", - "strip_media": "Fjern media i fra statuser", - "force_unlisted": "Tving statuser til å være uopplistet", - "sandbox": "Tving statuser til å bare vises til følgere", - "disable_remote_subscription": "Fjern mulighet til å følge brukeren fra andre instanser", - "disable_any_subscription": "Fjern mulighet til å følge brukeren", - "quarantine": "Gjør at statuser fra brukeren ikke kan sendes til andre instanser", - "delete_user": "Slett bruker" - } - }, - "user_profile": { - "timeline_title": "Bruker-tidslinje", - "profile_does_not_exist": "Beklager, denne profilen eksisterer ikke.", - "profile_loading_error": "Beklager, det oppsto en feil under lasting av denne profilen." - }, - "user_reporting": { - "title": "Rapporterer {0}", - "add_comment_description": "Rapporten blir sent til moderatorene av din instans. Du kan gi en forklaring på hvorfor du rapporterer denne kontoen under:", - "additional_comments": "Videre kommentarer", - "forward_description": "Denne kontoen er fra en annen server, vil du sende en kopi av rapporten til dem også?", - "forward_to": "Videresend til {0}", - "submit": "Send", - "generic_error": "Det oppsto en feil under behandling av din forespørsel." - }, - "who_to_follow": { - "more": "Mer", - "who_to_follow": "Kontoer å følge" - }, - "tool_tip": { - "media_upload": "Last opp media", - "repeat": "Gjenta", - "reply": "Svar", - "favorite": "Lik", - "user_settings": "Brukerinnstillinger" - }, - "upload": { - "error": { - "base": "Det oppsto en feil under opplastning.", - "file_too_big": "Fil for stor [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Prøv igjen senere" + "time": { + "in_future": "om {0}", + "in_past": "{0} siden", + "now": "akkurat nå", + "now_short": "nå", + "unit": { + "days": "{0} dager", + "days_short": "{0}d", + "hours": "{0} timer", + "hours_short": "{0}t", + "minutes": "{0} minutter", + "minutes_short": "{0}min", + "months": "{0} måneder", + "months_short": "{0}md.", + "seconds": "{0} sekunder", + "seconds_short": "{0}s", + "weeks": "{0} uker", + "weeks_short": "{0}u", + "years": "{0} år", + "years_short": "{0}år" + } }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "timeline": { + "collapse": "Sammenfold", + "conversation": "Samtale", + "load_older": "Last eldre statuser", + "no_more_statuses": "Ingen flere statuser", + "no_retweet_hint": "Status er markert som bare til følgere eller direkte og kan ikke gjentas", + "no_statuses": "Ingen statuser", + "repeated": "gjentok", + "show_new": "Vis nye", + "up_to_date": "Oppdatert" + }, + "tool_tip": { + "favorite": "Lik", + "media_upload": "Last opp media", + "repeat": "Gjenta", + "reply": "Svar", + "user_settings": "Brukerinnstillinger" + }, + "upload": { + "error": { + "base": "Det oppsto en feil under opplastning.", + "default": "Prøv igjen senere", + "file_too_big": "Fil for stor [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktiver konto", + "deactivate_account": "Deaktiver kontro", + "delete_account": "Slett konto", + "delete_user": "Slett bruker", + "disable_any_subscription": "Fjern mulighet til å følge brukeren", + "disable_remote_subscription": "Fjern mulighet til å følge brukeren fra andre instanser", + "force_nsfw": "Merk alle statuser som sensitive", + "force_unlisted": "Tving statuser til å være uopplistet", + "grant_admin": "Gi Administrator", + "grant_moderator": "Gi Moderator", + "moderation": "Moderering", + "quarantine": "Gjør at statuser fra brukeren ikke kan sendes til andre instanser", + "revoke_admin": "Fjern Administrator", + "revoke_moderator": "Fjern Moderator", + "sandbox": "Tving statuser til å bare vises til følgere", + "strip_media": "Fjern media i fra statuser" + }, + "approve": "Godkjenn", + "block": "Blokker", + "block_progress": "Blokkerer...", + "blocked": "Blokkert!", + "deny": "Avslå", + "favorites": "Favoritter", + "follow": "Følg", + "follow_progress": "Forespør…", + "follow_sent": "Forespørsel sendt!", + "follow_unfollow": "Avfølg", + "followees": "Følger", + "followers": "Følgere", + "following": "Følger!", + "follows_you": "Følger deg!", + "its_you": "Det er deg!", + "media": "Media", + "mute": "Demp", + "mute_progress": "Demper...", + "muted": "Dempet", + "per_day": "per dag", + "remote_follow": "Følg eksternt", + "report": "Rapport", + "statuses": "Statuser", + "subscribe": "Abonner", + "unblock": "Fjern blokkering", + "unblock_progress": "Fjerner blokkering...", + "unmute": "Fjern demping", + "unmute_progress": "Fjerner demping...", + "unsubscribe": "Avabonner" + }, + "user_profile": { + "profile_does_not_exist": "Beklager, denne profilen eksisterer ikke.", + "profile_loading_error": "Beklager, det oppsto en feil under lasting av denne profilen.", + "timeline_title": "Bruker-tidslinje" + }, + "user_reporting": { + "add_comment_description": "Rapporten blir sent til moderatorene av din instans. Du kan gi en forklaring på hvorfor du rapporterer denne kontoen under:", + "additional_comments": "Videre kommentarer", + "forward_description": "Denne kontoen er fra en annen server, vil du sende en kopi av rapporten til dem også?", + "forward_to": "Videresend til {0}", + "generic_error": "Det oppsto en feil under behandling av din forespørsel.", + "submit": "Send", + "title": "Rapporterer {0}" + }, + "who_to_follow": { + "more": "Mer", + "who_to_follow": "Kontoer å følge" } - }, - "search": { - "people": "Folk", - "hashtags": "Emneknagger", - "person_talking": "{count} person snakker om dette", - "people_talking": "{count} personer snakker om dette", - "no_results": "Ingen resultater" - }, - "about": { - "mrf": { - "simple": { - "quarantine": "Karantene", - "reject_desc": "Denne instansen vil ikke godta meldinger fra følgende instanser:", - "reject": "Avvis", - "accept_desc": "Denne instansen godtar kun meldinger fra følgende instanser:", - "accept": "Aksepter" - }, - "keyword": { - "is_replaced_by": "→", - "replace": "Erstatt", - "reject": "Avvis", - "ftl_removal": "Fjerning fra \"Det hele kjente nettverket\" Tidslinjen" - } - } - } -} +} \ No newline at end of file diff --git a/src/i18n/nl.json b/src/i18n/nl.json index 0a04f0a4..e5ad81b3 100644 --- a/src/i18n/nl.json +++ b/src/i18n/nl.json @@ -1,876 +1,1006 @@ { - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Mediaproxy", - "scope_options": "Zichtbaarheidsopties", - "text_limit": "Tekstlimiet", - "title": "Kenmerken", - "who_to_follow": "Wie te volgen", - "upload_limit": "Upload limiet", - "pleroma_chat_messages": "Pleroma Chat" - }, - "finder": { - "error_fetching_user": "Fout tijdens ophalen gebruiker", - "find_user": "Gebruiker zoeken" - }, - "general": { - "apply": "Toepassen", - "submit": "Verzenden", - "more": "Meer", - "optional": "optioneel", - "show_more": "Meer tonen", - "show_less": "Minder tonen", - "dismiss": "Opheffen", - "cancel": "Annuleren", - "disable": "Uitschakelen", - "enable": "Inschakelen", - "confirm": "Bevestigen", - "verify": "Verifiëren", - "generic_error": "Er is een fout opgetreden", - "peek": "Spieken", - "close": "Sluiten", - "retry": "Opnieuw proberen", - "error_retry": "Probeer het opnieuw", - "loading": "Laden…", - "role": { - "moderator": "Moderator", - "admin": "Beheerder" - } - }, - "login": { - "login": "Inloggen", - "description": "Inloggen met OAuth", - "logout": "Uitloggen", - "password": "Wachtwoord", - "placeholder": "bijv. barbapapa", - "register": "Registreren", - "username": "Gebruikersnaam", - "hint": "Log in om deel te nemen aan de discussie", - "authentication_code": "Authenticatiecode", - "enter_recovery_code": "Voer een herstelcode in", - "enter_two_factor_code": "Voer een twee-factorcode in", - "recovery_code": "Herstelcode", - "heading": { - "totp": "Twee-factorauthenticatie", - "recovery": "Twee-factorherstelling" - } - }, - "nav": { - "about": "Over", - "back": "Terug", - "chat": "Lokale Chat", - "friend_requests": "Volgverzoeken", - "mentions": "Vermeldingen", - "dms": "Privéberichten", - "public_tl": "Openbare tijdlijn", - "timeline": "Tijdlijn", - "twkn": "Bekende Netwerk", - "user_search": "Gebruiker Zoeken", - "who_to_follow": "Wie te volgen", - "preferences": "Voorkeuren", - "administration": "Beheer", - "search": "Zoeken", - "interactions": "Interacties", - "chats": "Chats", - "home_timeline": "Thuis tijdlijn", - "timelines": "Tijdlijnen", - "bookmarks": "Bladwijzers" - }, - "notifications": { - "broken_favorite": "Onbekende status, aan het zoeken…", - "favorited_you": "vond je status leuk", - "followed_you": "volgt jou", - "load_older": "Oudere meldingen laden", - "notifications": "Meldingen", - "read": "Gelezen!", - "repeated_you": "herhaalde je status", - "no_more_notifications": "Geen meldingen meer", - "migrated_to": "is gemigreerd naar", - "follow_request": "wil je volgen", - "reacted_with": "reageerde met {0}", - "error": "Fout bij ophalen van meldingen: {0}" - }, - "post_status": { - "new_status": "Nieuwe status plaatsen", - "account_not_locked_warning": "Je account is niet {0}. Iedereen kan je volgen om je alleen-volgers-berichten te lezen.", - "account_not_locked_warning_link": "gesloten", - "attachments_sensitive": "Bijlagen als gevoelig markeren", - "content_type": { - "text/plain": "Platte tekst", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Onderwerp (optioneel)", - "default": "Tijd voor anime!", - "direct_warning": "Deze post zal enkel zichtbaar zijn voor de personen die genoemd zijn.", - "posting": "Plaatsen", - "scope": { - "direct": "Privé - bericht enkel naar vermelde gebruikers sturen", - "private": "Enkel volgers - bericht enkel naar volgers sturen", - "public": "Openbaar - bericht op openbare tijdlijnen plaatsen", - "unlisted": "Niet vermelden - niet tonen op openbare tijdlijnen" - }, - "direct_warning_to_all": "Dit bericht zal zichtbaar zijn voor alle vermelde gebruikers.", - "direct_warning_to_first_only": "Dit bericht zal alleen zichtbaar zijn voor de vermelde gebruikers aan het begin van het bericht.", - "scope_notice": { - "public": "Dit bericht zal voor iedereen zichtbaar zijn", - "unlisted": "Dit bericht zal niet zichtbaar zijn in de Openbare Tijdlijn en Het Geheel Bekende Netwerk", - "private": "Dit bericht zal voor alleen je volgers zichtbaar zijn" - }, - "post": "Bericht", - "empty_status_error": "Kan geen lege status zonder bijlagen plaatsen", - "preview_empty": "Leeg", - "preview": "Voorbeeld", - "media_description": "Mediaomschrijving", - "media_description_error": "Kon media niet ophalen, probeer het opnieuw" - }, - "registration": { - "bio": "Bio", - "email": "E-mail", - "fullname": "Weergavenaam", - "password_confirm": "Wachtwoord bevestiging", - "registration": "Registratie", - "token": "Uitnodigingstoken", - "captcha": "CAPTCHA", - "new_captcha": "Klik op de afbeelding voor een nieuwe captcha", - "validations": { - "username_required": "moet ingevuld zijn", - "fullname_required": "moet ingevuld zijn", - "email_required": "moet ingevuld zijn", - "password_required": "moet ingevuld zijn", - "password_confirmation_required": "moet ingevuld zijn", - "password_confirmation_match": "komt niet overeen met het wachtwoord" - }, - "username_placeholder": "bijv. lain", - "fullname_placeholder": "bijv. Lain Iwakura", - "bio_placeholder": "bijv.\nHallo, ik ben Lain.\nIk ben een animemeisje woonachtig in een buitenwijk in Japan. Je kent me misschien van the Wired.", - "reason_placeholder": "Deze instantie keurt registraties handmatig goed.\nLaat de beheerder weten waarom je wilt registreren.", - "reason": "Reden voor registratie", - "register": "Registreren" - }, - "settings": { - "attachmentRadius": "Bijlages", - "attachments": "Bijlages", - "avatar": "Avatar", - "avatarAltRadius": "Avatars (meldingen)", - "avatarRadius": "Avatars", - "background": "Achtergrond", - "bio": "Bio", - "btnRadius": "Knoppen", - "cBlue": "Blauw (Beantwoorden, volgen)", - "cGreen": "Groen (Herhalen)", - "cOrange": "Oranje (Favoriet)", - "cRed": "Rood (Annuleren)", - "change_password": "Wachtwoord wijzigen", - "change_password_error": "Er is een fout opgetreden bij het wijzigen van je wachtwoord.", - "changed_password": "Wachtwoord succesvol gewijzigd!", - "collapse_subject": "Klap berichten met een onderwerp in", - "composing": "Opstellen", - "confirm_new_password": "Nieuw wachtwoord bevestigen", - "current_avatar": "Je huidige avatar", - "current_password": "Huidig wachtwoord", - "current_profile_banner": "Je huidige profiel banner", - "data_import_export_tab": "Data-import / export", - "default_vis": "Standaard zichtbaarheidsbereik", - "delete_account": "Account verwijderen", - "delete_account_description": "Permanent je gegevens verwijderen en account deactiveren.", - "delete_account_error": "Er is een fout opgetreden bij het verwijderen van je account. Indien dit probleem zich voor blijft doen, neem dan contact op met de beheerder van deze instantie.", - "delete_account_instructions": "Voer je wachtwoord in het onderstaande invoerveld in om het verwijderen van je account te bevestigen.", - "export_theme": "Voorinstelling opslaan", - "filtering": "Filtering", - "filtering_explanation": "Alle statussen die deze woorden bevatten worden genegeerd, één filter per regel", - "follow_export": "Volgers exporteren", - "follow_export_button": "Exporteer je volgers naar een csv-bestand", - "follow_export_processing": "Aan het verwerken, binnen enkele ogenblikken wordt je gevraagd je bestand te downloaden", - "follow_import": "Volgers importeren", - "follow_import_error": "Fout bij importeren volgers", - "follows_imported": "Volgers geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", - "foreground": "Voorgrond", - "general": "Algemeen", - "hide_attachments_in_convo": "Bijlagen in conversaties verbergen", - "hide_attachments_in_tl": "Bijlagen in tijdlijn verbergen", - "hide_isp": "Instantie-specifiek paneel verbergen", - "preload_images": "Afbeeldingen vooraf laden", - "hide_post_stats": "Bericht statistieken verbergen (bijv. het aantal favorieten)", - "hide_user_stats": "Gebruikers-statistieken verbergen (bijv. het aantal volgers)", - "import_followers_from_a_csv_file": "Gevolgden uit een csv bestand importeren", - "import_theme": "Preset laden", - "inputRadius": "Invoervelden", - "checkboxRadius": "Checkboxen", - "instance_default": "(standaard: {value})", - "instance_default_simple": "(standaard)", - "interface": "Interface", - "interfaceLanguage": "Interface taal", - "invalid_theme_imported": "Het geselecteerde bestand is niet een door Pleroma ondersteund thema. Er zijn geen aanpassingen gedaan.", - "limited_availability": "Niet beschikbaar in je browser", - "links": "Links", - "lock_account_description": "Volgers enkel na expliciete toestemming toelaten", - "loop_video": "Video's herhalen", - "loop_video_silent_only": "Enkel video's zonder geluid herhalen (bijv. Mastodon's \"gifs\")", - "name": "Naam", - "name_bio": "Naam & bio", - "new_password": "Nieuw wachtwoord", - "notification_visibility": "Type meldingen die getoond worden", - "notification_visibility_follows": "Gevolgden", - "notification_visibility_likes": "Favorieten", - "notification_visibility_mentions": "Vermeldingen", - "notification_visibility_repeats": "Herhalingen", - "no_rich_text_description": "Verwijder rich text formattering van alle berichten", - "hide_network_description": "Toon niet wie mij volgt en wie ik volg.", - "nsfw_clickthrough": "Doorklikbaar verbergen van gevoelige bijlages en link voorbeelden inschakelen", - "oauth_tokens": "OAuth-tokens", - "token": "Token", - "refresh_token": "Token vernieuwen", - "valid_until": "Geldig tot", - "revoke_token": "Intrekken", - "panelRadius": "Panelen", - "pause_on_unfocused": "Streamen pauzeren wanneer de tab niet in focus is", - "presets": "Presets", - "profile_background": "Profiel achtergrond", - "profile_banner": "Profiel banner", - "profile_tab": "Profiel", - "radii_help": "Afronding van hoeken in de interface instellen (in pixels)", - "replies_in_timeline": "Antwoorden in tijdlijn", - "reply_visibility_all": "Alle antwoorden tonen", - "reply_visibility_following": "Enkel antwoorden tonen die aan mij of gevolgde gebruikers gericht zijn", - "reply_visibility_self": "Enkel antwoorden tonen die aan mij gericht zijn", - "saving_err": "Fout tijdens opslaan van instellingen", - "saving_ok": "Instellingen opgeslagen", - "security_tab": "Beveiliging", - "scope_copy": "Bereik overnemen bij beantwoorden (Privéberichten blijven altijd privé)", - "set_new_avatar": "Nieuwe avatar instellen", - "set_new_profile_background": "Nieuwe profiel achtergrond instellen", - "set_new_profile_banner": "Nieuwe profiel banner instellen", - "settings": "Instellingen", - "subject_input_always_show": "Altijd onderwerpveld tonen", - "subject_line_behavior": "Onderwerp kopiëren bij beantwoorden", - "subject_line_email": "Zoals email: \"re: onderwerp\"", - "subject_line_mastodon": "Zoals mastodon: kopieer zoals het is", - "subject_line_noop": "Niet kopiëren", - "stop_gifs": "GIFs afspelen bij zweven", - "streaming": "Automatisch streamen van nieuwe berichten inschakelen wanneer tot boven gescrold is", - "text": "Tekst", - "theme": "Thema", - "theme_help": "Hex kleur codes (#rrggbb) gebruiken om je kleur thema te wijzigen.", - "theme_help_v2_1": "Je kan ook de kleur en transparantie van bepaalde componenten overschrijven door de checkbox aan te vinken, gebruik de \"Alles wissen\" knop om alle overschrijvingen te annuleren.", - "theme_help_v2_2": "Iconen onder sommige onderdelen zijn achtergrond/tekst contrast indicatoren, zweef er over voor gedetailleerde info. Hou er rekening mee dat bij doorzichtigheid de ergst mogelijke situatie wordt weer gegeven.", - "tooltipRadius": "Tooltips/alarmen", - "user_settings": "Gebruikersinstellingen", - "values": { - "false": "nee", - "true": "ja" - }, - "notifications": "Meldingen", - "enable_web_push_notifications": "Web push meldingen inschakelen", - "style": { - "switcher": { - "keep_color": "Kleuren behouden", - "keep_shadows": "Schaduwen behouden", - "keep_opacity": "Transparantie behouden", - "keep_roundness": "Rondingen behouden", - "keep_fonts": "Lettertypes behouden", - "save_load_hint": "\"Behoud\" opties behouden de momenteel ingestelde opties bij het selecteren of laden van thema's, maar slaan ook de genoemde opties op bij het exporteren van een thema. Wanneer alle selectievakjes zijn uitgeschakeld, zal het exporteren van thema's alles opslaan.", - "reset": "Reset", - "clear_all": "Alles wissen", - "clear_opacity": "Transparantie wissen", - "keep_as_is": "Hou zoals het is", - "use_snapshot": "Oude versie", - "use_source": "Nieuwe versie", - "help": { - "future_version_imported": "Het geïmporteerde bestand is gemaakt voor een nieuwere versie van FE.", - "older_version_imported": "Het geïmporteerde bestand is gemaakt voor een oudere versie van FE.", - "upgraded_from_v2": "PleromaFE is bijgewerkt, het thema kan iets anders uitzien dan dat je gewend bent.", - "v2_imported": "Het geïmporteerde bestand is gemaakt voor een oudere FE. We proberen compatibiliteit te maximaliseren, maar het kan toch voorkomen dat er inconsistenties zijn.", - "snapshot_source_mismatch": "Versie conflict: waarschijnlijk was FE terug gerold en opnieuw bijgewerkt, indien je het thema aangepast hebt met de oudere versie van FE wil je waarschijnlijk de oude versie gebruiken, gebruik anders de nieuwe versie.", - "migration_napshot_gone": "Voor een onduidelijke reden mist de momentopname, dus sommige dingen kunnen anders uitzien dan je gewend bent.", - "migration_snapshot_ok": "Voor de zekerheid is een momentopname van het thema geladen. Je kunt proberen om de thema gegevens te laden.", - "fe_downgraded": "PleromaFE's versie is terug gerold.", - "fe_upgraded": "De thema-engine van PleromaFE is bijgewerkt na de versie update.", - "snapshot_missing": "Het bestand bevat geen thema momentopname, dus het thema kan anders uitzien dan je oorspronkelijk bedacht had.", - "snapshot_present": "Thema momentopname is geladen, alle waarden zijn overschreven. Je kunt in plaats daarvan ook de daadwerkelijke data van het thema laden." + "about": { + "mrf": { + "federation": "Federatie", + "keyword": { + "ftl_removal": "Verwijderen van \"Het Gehele Netwerk\" Tijdlijn", + "is_replaced_by": "→", + "keyword_policies": "Zoekwoordbeleid", + "reject": "Afwijzen", + "replace": "Vervangen" + }, + "mrf_policies": "Ingeschakelde MRF-regels", + "mrf_policies_desc": "MRF-regels beïnvloeden het federatiegedrag van de instantie. De volgende regels zijn ingeschakeld:", + "simple": { + "accept": "Accepteren", + "accept_desc": "Deze instantie accepteert alleen berichten van de volgende instanties:", + "ftl_removal": "Verwijderen van \"Bekende Netwerk\" Tijdlijn", + "ftl_removal_desc": "Deze instantie verwijdert de volgende instanties van \"Bekende Netwerk\" tijdlijn:", + "instance": "Instantie", + "media_nsfw": "Media als gevoelig forceren", + "media_nsfw_desc": "Deze instantie markeert media als gevoelig in berichten van de volgende instanties:", + "media_removal": "Verwijderen van media", + "media_removal_desc": "Deze instantie verwijdert media van berichten van de volgende instanties:", + "not_applicable": "n.v.t.", + "quarantine": "Quarantaine", + "quarantine_desc": "Deze instantie zal géén berichten sturen naar de volgende instanties:", + "reason": "Reden", + "reject": "Afwijzen", + "reject_desc": "Deze instantie zal geen berichten accepteren van de volgende instanties:", + "simple_policies": "Instantiespecifieke regels" + } }, - "load_theme": "Thema laden" - }, - "common": { - "color": "Kleur", - "opacity": "Transparantie", - "contrast": { - "hint": "Contrast verhouding is {ratio}, {level} {context}", - "level": { - "aa": "voldoet aan de richtlijn van niveau AA (minimum)", - "aaa": "voldoet aan de richtlijn van niveau AAA (aangeraden)", - "bad": "voldoet aan geen enkele toegankelijkheidsrichtlijn" - }, - "context": { - "18pt": "voor grote (18pt+) tekst", - "text": "voor tekst" - } + "staff": "Personeel" + }, + "announcements": { + "all_day_prompt": "Deze gebeurtenis duurt de hele dag", + "cancel_edit_action": "Annuleren", + "close_error": "Sluiten", + "delete_action": "Verwijderen", + "edit_action": "Wijzigen", + "end_time_display": "Eindigt op {time}", + "end_time_prompt": "Eindtijd: ", + "inactive_message": "Deze aankondiging is inactief", + "mark_as_read_action": "Als gelezen markeren", + "page_header": "Aankondigingen", + "post_action": "Plaatsen", + "post_error": "Fout: {error}", + "post_form_header": "Aankondiging plaatsen", + "post_placeholder": "Inhoud van de aankondiging", + "published_time_display": "Gepubliceerd op {time}", + "start_time_display": "Begint op {time}", + "start_time_prompt": "Begintijd: ", + "submit_edit_action": "Verzenden", + "title": "Aankondiging" + }, + "chats": { + "chats": "Chats", + "delete": "Verwijderen", + "delete_confirm": "Wil je echt dit bericht verwijderen?", + "empty_chat_list_placeholder": "Je hebt nog geen chats. Start een nieuwe chat!", + "empty_message_error": "Kan niet een leeg bericht plaatsen", + "error_loading_chat": "Er is iets fout gegaan tijdens het laden van de chat.", + "error_sending_message": "Er is iets fout gegaan tijdens het verzenden van het bericht.", + "message_user": "Spreek met {nickname}", + "more": "Meer", + "new": "Nieuwe Chat", + "you": "Jij:" + }, + "display_date": { + "today": "Vandaag" + }, + "domain_mute_card": { + "mute": "Negeren", + "mute_progress": "Negeren…", + "unmute": "Negeren opheffen", + "unmute_progress": "Negeren wordt opgeheven…" + }, + "emoji": { + "add_emoji": "Emoji invoegen", + "custom": "Gepersonaliseerde emoji", + "emoji": "Emoji", + "keep_open": "Picker openhouden", + "load_all": "Alle {emojiAmount} emoji worden geladen", + "load_all_hint": "Eerste {saneAmount} emoji geladen, alle emoji tegelijk laden kan problemen veroorzaken met prestaties.", + "search_emoji": "Emoji zoeken", + "stickers": "Stickers", + "unicode": "Unicode-emoji" + }, + "errors": { + "storage_unavailable": "Pleroma kan de browseropslag niet benaderen. Je login of lokale instellingen worden niet opgeslagen en je kunt onverwachte problemen ondervinden. Probeer cookies te accepteren." + }, + "exporter": { + "export": "Exporteren", + "processing": "Verwerken, er wordt zo gevraagd om je bestand te downloaden" + }, + "features_panel": { + "media_proxy": "Mediaproxy", + "scope_options": "Zichtbaarheidsopties", + "shout": "Shoutbox", + "text_limit": "Tekstlimiet", + "title": "Functies", + "upload_limit": "Upload limiet", + "who_to_follow": "Wie te volgen" + }, + "file_type": { + "audio": "Audio", + "file": "Bestand", + "image": "Afbeelding", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Fout tijdens ophalen gebruiker", + "find_user": "Gebruiker zoeken" + }, + "general": { + "apply": "Toepassen", + "cancel": "Annuleren", + "close": "Sluiten", + "confirm": "Bevestigen", + "disable": "Uitschakelen", + "dismiss": "Opheffen", + "enable": "Inschakelen", + "error_retry": "Probeer het opnieuw", + "flash_content": "Klik om Flash-content te laten zien met Ruffle (Experimenteel, werkt mogelijk niet).", + "flash_fail": "Laden van Flash-content is mislukt, zie console voor details.", + "flash_security": "Let op: Flash-inhoud is niet gescreend en kan malware bevatten.", + "generic_error": "Er is een fout opgetreden", + "loading": "Laden…", + "more": "Meer", + "optional": "optioneel", + "peek": "Spieken", + "retry": "Opnieuw proberen", + "role": { + "admin": "Beheerder", + "moderator": "Moderator" + }, + "scope_in_timeline": { + "direct": "Privé", + "local": "Lokaal - alleen jou instantie kan dit bericht lezen", + "private": "Alleen-volgers", + "public": "Openbaar", + "unlisted": "Niet-openbaar" + }, + "show_less": "Minder tonen", + "show_more": "Meer tonen", + "submit": "Verzenden", + "verify": "Verifiëren" + }, + "image_cropper": { + "cancel": "Annuleren", + "crop_picture": "Afbeelding bijsnijden", + "save": "Opslaan", + "save_without_cropping": "Opslaan zonder bijsnijden" + }, + "importer": { + "error": "Er is een fout opgetreden bij het importeren van dit bestand.", + "submit": "Verzenden", + "success": "Succesvol geïmporteerd." + }, + "interactions": { + "favs_repeats": "Herhalingen en favorieten", + "follows": "Nieuwe volgs", + "load_older": "Oudere interacties laden", + "moves": "Gebruikermigraties" + }, + "lists": { + "create": "Aanmaken", + "delete": "Lijst verwijderen", + "following_only": "Beperken tot Volgen", + "lists": "Lijsten", + "new": "Nieuwe Lijst", + "save": "Wijzigingen opslaan", + "search": "Gebruikers zoeken", + "title": "Lijst titel" + }, + "login": { + "authentication_code": "Authenticatiecode", + "description": "Inloggen met OAuth", + "enter_recovery_code": "Voer een herstelcode in", + "enter_two_factor_code": "Voer een twee-factorcode in", + "heading": { + "recovery": "Twee-factorherstelling", + "totp": "Twee-factorauthenticatie" + }, + "hint": "Log in om deel te nemen aan de discussie", + "login": "Inloggen", + "logout": "Uitloggen", + "password": "Wachtwoord", + "placeholder": "mijngebruikersnaam", + "recovery_code": "Herstelcode", + "register": "Registreren", + "username": "Gebruikersnaam" + }, + "media_modal": { + "counter": "{current} / {total}", + "hide": "Media venster sluiten", + "next": "Volgende", + "previous": "Vorige" + }, + "nav": { + "about": "Over ons", + "administration": "Beheer", + "announcements": "Aankondigingen", + "back": "Terug", + "bookmarks": "Bladwijzers", + "bubble_timeline": "Bubbel tijdlijn", + "bubble_timeline_description": "Berichten van nabije instanties, aangeraden door de beheerders", + "chats": "Chats", + "dms": "Privéberichten", + "friend_requests": "Volgverzoeken", + "home_timeline": "Thuis tijdlijn", + "home_timeline_description": "Berichten van mensen die jou volgen", + "interactions": "Interacties", + "lists": "Lijsten", + "mentions": "Vermeldingen", + "preferences": "Voorkeuren", + "public_timeline_description": "Openbare berichten van deze instantie", + "public_tl": "Openbare tijdlijn", + "search": "Zoeken", + "timeline": "Tijdlijn", + "timelines": "Tijdlijnen", + "twkn": "Bekende Netwerk", + "twkn_timeline_description": "Berichten van het gehele netwerk", + "user_search": "Gebruiker Zoeken", + "who_to_follow": "Wie te volgen" + }, + "notifications": { + "broken_favorite": "Onbekend bericht, aan het zoeken…", + "error": "Fout bij ophalen van meldingen: {0}", + "favorited_you": "vond je status leuk", + "follow_request": "wil je volgen", + "followed_you": "volgt jou", + "load_older": "Oudere meldingen laden", + "migrated_to": "is gemigreerd naar", + "no_more_notifications": "Geen meldingen meer", + "notifications": "Meldingen", + "poll_ended": "peiling is beëindigd", + "reacted_with": "reageerde met {0}", + "read": "Gelezen!", + "repeated_you": "herhaalde je bericht" + }, + "password_reset": { + "check_email": "Controleer je email inbox voor een link om je wachtwoord opnieuw in te stellen.", + "forgot_password": "Wachtwoord vergeten?", + "instruction": "Voer je email adres of gebruikersnaam in. We sturen je een link om je wachtwoord opnieuw in te stellen.", + "password_reset": "Wachtwoord opnieuw instellen", + "password_reset_disabled": "Wachtwoord reset is uitgeschakeld. Neem contact op met de beheerder van deze instantie.", + "password_reset_required": "Je dient je wachtwoord opnieuw in te stellen om in te kunnen loggen.", + "password_reset_required_but_mailer_is_disabled": "Je dient je wachtwoord opnieuw in te stellen, maar wachtwoord reset is uitgeschakeld. Neem contact op met de beheerder van deze instantie.", + "placeholder": "Je email of gebruikersnaam", + "return_home": "Terugkeren naar de home pagina", + "too_many_requests": "Je hebt het maximaal aantal pogingen bereikt, probeer het later opnieuw." + }, + "polls": { + "add_option": "Optie toevoegen", + "add_poll": "Peiling toevoegen", + "expired": "Peiling is {0} geleden beëindigd", + "expires_in": "Peiling eindigt in {0}", + "expiry": "Peiling tijdsduur", + "multiple_choices": "Meerkeuze", + "not_enough_options": "Te weinig opties in peiling", + "option": "Optie", + "people_voted_count": "{count} persoon heeft gestemd | {count} personen hebben gestemd", + "single_choice": "Enkele keuze", + "type": "Peiling-type", + "vote": "Stemmen", + "votes": "stemmen", + "votes_count": "{count} stem | {count} stemmen" + }, + "post_status": { + "account_not_locked_warning": "Je account is niet {0}. Iedereen kan je volgen om je alleen-volgersberichten te lezen.", + "account_not_locked_warning_link": "gesloten", + "attachments_sensitive": "Bijlagen als gevoelig markeren", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Platte tekst", + "text/x.misskeymarkdown": "MFM" + }, + "content_warning": "Onderwerp (optioneel)", + "default": "Zojuist gearriveerd op de Zweinstein Hogeschool", + "direct_warning_to_all": "Dit bericht zal zichtbaar zijn voor alle vermelde gebruikers.", + "direct_warning_to_first_only": "Dit bericht zal alleen zichtbaar zijn voor de vermelde gebruikers aan het begin van het bericht.", + "empty_status_error": "Kan geen lege status zonder bijlagen plaatsen", + "media_description": "Mediaomschrijving", + "media_description_error": "Kon media niet ophalen, probeer het opnieuw", + "media_not_sensitive_warning": "Je hebt een Content Waarschuwing, maar de bijlagen zijn niet gemarkeerd als gevoelig!", + "new_status": "Nieuw bericht plaatsen", + "post": "Plaatsen", + "posting": "Plaatsen...", + "preview": "Voorbeeld", + "preview_empty": "Leeg", + "scope": { + "direct": "Privé - bericht enkel naar vermelde gebruikers sturen", + "local": "Lokaal - dit bericht niet federeren", + "private": "Alleen-volgers - bericht is enkel leesbaar voor volgers", + "public": "Openbaar - bericht op openbare tijdlijnen plaatsen", + "unlisted": "Niet vermelden - niet tonen op openbare tijdlijnen" + }, + "scope_notice": { + "local": "Dit bericht zal niet zichtbaar zijn op andere instanties", + "private": "Dit bericht zal voor alleen je volgers zichtbaar zijn", + "public": "Dit bericht zal voor iedereen zichtbaar zijn", + "unlisted": "Dit bericht zal niet zichtbaar zijn in de Openbare Tijdlijn en Het Gehele Netwerk" } - }, - "common_colors": { - "_tab_label": "Algemeen", - "main": "Algemene kleuren", - "foreground_hint": "Zie \"Geavanceerd\" tab voor meer gedetailleerde controle", - "rgbo": "Iconen, accenten, badges" - }, - "advanced_colors": { - "_tab_label": "Geavanceerd", - "alert": "Alarm achtergrond", - "alert_error": "Fout", - "badge": "Badge achtergrond", - "badge_notification": "Meldingen", - "panel_header": "Paneel koptekst", - "top_bar": "Top balk", - "borders": "Randen", - "buttons": "Knoppen", - "inputs": "Invoervelden", - "faint_text": "Vervaagde tekst", - "tabs": "Tabbladen", - "toggled": "Geschakeld", - "disabled": "Uitgeschakeld", - "selectedMenu": "Geselecteerd menu item", - "selectedPost": "Geselecteerd bericht", - "pressed": "Ingedrukt", - "highlight": "Gemarkeerde elementen", - "icons": "Iconen", - "poll": "Poll grafiek", - "underlay": "Onderlaag", - "popover": "Tooltips, menu's, popovers", - "post": "Berichten / Gebruiker bios", - "alert_neutral": "Neutraal", - "alert_warning": "Waarschuwing", - "chat": { - "border": "Rand", - "outgoing": "Uitgaand", - "incoming": "Binnenkomend" + }, + "registration": { + "bio": "Bio", + "bio_placeholder": "Bijv.\nHallo! Welkom op mijn bio.\nIk vind anime en games leuk. Hopelijk kunnen we vrienden zijn!", + "captcha": "CAPTCHA", + "email": "E-mail", + "email_language": "In welke taal wil je e-mails ontvangen van de server?", + "fullname": "Weergavenaam", + "fullname_placeholder": "bijv. Atsuko Kagari", + "new_captcha": "Klik op de afbeelding voor een nieuwe captcha", + "password_confirm": "Wachtwoord bevestiging", + "reason": "Reden voor registratie", + "reason_placeholder": "Deze instantie keurt registraties handmatig goed.\nLaat de beheerder weten waarom je je wilt registreren.", + "register": "Registreren", + "registration": "Registratie", + "token": "Uitnodigingstoken", + "username_placeholder": "bijv. akko", + "validations": { + "email_required": "moet ingevuld zijn", + "fullname_required": "moet ingevuld zijn", + "password_confirmation_match": "komt niet overeen met het wachtwoord", + "password_confirmation_required": "moet ingevuld zijn", + "password_required": "moet ingevuld zijn", + "username_required": "moet ingevuld zijn" + } + }, + "remote_user_resolver": { + "error": "Niet gevonden.", + "remote_user_resolver": "Externe gebruiker zoeker", + "searching_for": "Zoeken naar" + }, + "search": { + "hashtags": "Hashtags", + "no_results": "Geen resultaten", + "people": "Personen", + "people_talking": "{count} personen aan het praten", + "person_talking": "{count} persoon aan het praten" + }, + "selectable_list": { + "select_all": "Alles selecteren" + }, + "settings": { + "accent": "Accent", + "account_alias": "Account aliassen", + "account_alias_table_head": "Alias", + "account_backup": "Account back-up", + "account_backup_description": "Hiermee kun je een archief van je account gegevens en berichten downloaden, maar deze kunnen nog niet geïmporteerd worden in een Pleroma account.", + "account_backup_table_head": "Back-up", + "account_privacy": "Privacy", + "add_alias_error": "Fout bij het toevoegen van alias: {error}", + "add_backup": "Nieuwe back-up aanmaken", + "add_backup_error": "Fout bij het maken van back-up: {error}", + "added_alias": "Alias is toegevoegd.", + "added_backup": "Nieuwe back-up is toegevoegd.", + "allow_following_move": "Automatisch volgen toestaan wanneer een gevolgd account verhuist", + "always_show_post_button": "Altijd de zwevende Nieuw Bericht knop tonen", + "app_name": "App naam", + "attachmentRadius": "Bijlagen", + "attachments": "Bijlagen", + "autohide_floating_post_button": "Nieuw Bericht knop automatisch verbergen (mobiel)", + "avatar": "Avatar", + "avatarAltRadius": "Avatars (meldingen)", + "avatarRadius": "Avatars", + "avatar_size_instruction": "De aangeraden minimale afmeting voor avatar-afbeeldingen is 150x150 pixels.", + "background": "Achtergrond", + "backup_not_ready": "Deze back-up is nog niet gereed.", + "bio": "Bio", + "block_export": "Geblokkeerde gebruikers exporteren", + "block_export_button": "Exporteer je geblokkeerde gebruikers naar een csv-bestand", + "block_import": "Geblokkeerde gebruikers importeren", + "block_import_error": "Fout bij importeren geblokkeerde gebruikers", + "blocks_imported": "Geblokkeerde gebruikers geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", + "blocks_tab": "Geblokkeerde gebruikers", + "bot": "Dit is een bot-account", + "btnRadius": "Knoppen", + "cBlue": "Blauw (Beantwoorden, volgen)", + "cGreen": "Groen (Herhalen)", + "cOrange": "Oranje (Favoriet)", + "cRed": "Rood (Annuleren)", + "change_email": "E-mail wijzigen", + "change_email_error": "Er is een fout opgetreden tijdens het wijzigen van je e-mailadres.", + "change_password": "Wachtwoord wijzigen", + "change_password_error": "Er is een fout opgetreden bij het wijzigen van je wachtwoord.", + "changed_email": "E-mailadres succesvol gewijzigd!", + "changed_password": "Wachtwoord succesvol gewijzigd!", + "chatMessageRadius": "Chatbericht", + "checkboxRadius": "Checkboxen", + "collapse_subject": "Berichten met een onderwerp inklappen", + "composing": "Opstellen", + "confirm_new_password": "Nieuw wachtwoord bevestigen", + "conversation_display": "Gespreksweergave stijl", + "conversation_display_linear": "Lineaire weergave", + "conversation_display_tree": "Boom weergave", + "conversation_other_replies_button": "\"Andere antwoorden\"-knop tonen", + "conversation_other_replies_button_below": "Onder berichten", + "conversation_other_replies_button_inside": "Binnen in berichten", + "current_avatar": "Je huidige avatar", + "current_mascot": "Je huidige mascotte", + "current_password": "Huidig wachtwoord", + "data_import_export_tab": "Data-import / export", + "default_vis": "Standaard zichtbaarheidsbereik", + "delete_account": "Account verwijderen", + "delete_account_description": "Permanent je gegevens verwijderen en account deactiveren.", + "delete_account_error": "Er is een fout opgetreden bij het verwijderen van je account. Indien dit probleem zich voor blijft doen, neem dan contact op met de beheerder van deze instantie.", + "delete_account_instructions": "Voer je wachtwoord in het onderstaande invoerveld in om het verwijderen van je account te bevestigen.", + "disable_sticky_headers": "Kolomkopteksten niet bovenaan het scherm plakken", + "discoverable": "Sta toe dat dit account ontdekt kan worden in zoekresultaten en andere diensten", + "domain_mutes": "Domeinen", + "download_backup": "Downloaden", + "email_language": "Taal voor emails van de server", + "emoji_reactions_on_timeline": "Toon emoji-reacties op de tijdlijn", + "enable_web_push_notifications": "Web push meldingen inschakelen", + "enter_current_password_to_confirm": "Voer je huidige wachtwoord in om je identiteit te bevestigen", + "expert_mode": "Geavanceerde opties tonen", + "export_theme": "Preset opslaan", + "file_export_import": { + "backup_restore": "Instellingen back-up", + "backup_settings": "Instellingen naar bestand back-uppen", + "backup_settings_theme": "Instellingen en thema naar bestand back-uppen", + "errors": { + "file_slightly_new": "Minor versie van bestand is verschillend, sommige instellingen kunnen mogelijk niet worden geladen", + "file_too_new": "Incompatibele hoofdversie: {fileMajor}, deze PleromaFE (instellingen versie {feMajor}) is te oud om deze te ondersteunen", + "file_too_old": "Incompatibele hoofdversie: {fileMajor}, bestandsversie is te oud en wordt niet ondersteund (minimale versie {feMajor})", + "invalid_file": "Het geselecteerde bestand is niet een door Pleroma ondersteunde instellingen back-up. Er zijn geen wijzigingen gemaakt." + }, + "restore_settings": "Instellingen uit bestand herstellen" }, - "wallpaper": "Achtergrond" - }, - "radii": { - "_tab_label": "Rondheid" - }, - "shadows": { - "_tab_label": "Schaduw en belichting", - "component": "Onderdeel", - "override": "Overschrijven", - "shadow_id": "Schaduw #{value}", - "blur": "Vervagen", - "spread": "Spreiding", - "inset": "Inzet", - "hint": "Voor schaduw kan je ook --variable gebruiken als een kleur waarde om CSS3 variabelen te gebruiken. Houd er rekening mee dat het instellen van opaciteit in dit geval niet werkt.", - "filter_hint": { - "always_drop_shadow": "Waarschuwing, deze schaduw gebruikt altijd {0} als de browser dit ondersteund.", - "drop_shadow_syntax": "{0} ondersteund niet de {1} parameter en {2} sleutelwoord.", - "avatar_inset": "Houdt er rekening mee dat het combineren van zowel inzet and niet-inzet schaduwen op transparante avatars onverwachte resultaten kan opleveren.", - "spread_zero": "Schaduw met spreiding > 0 worden weergegeven alsof ze op nul staan", - "inset_classic": "Inzet schaduw zal {0} gebruiken" + "filtering": "Filtering", + "filtering_explanation": "Alle berichten die deze woorden bevatten worden genegeerd, één filter per regel", + "follow_export": "Volgers exporteren", + "follow_export_button": "Exporteer je volgers naar een csv-bestand", + "follow_import": "Volgers importeren", + "follow_import_error": "Fout bij importeren volgers", + "follows_imported": "Volgers geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", + "foreground": "Voorgrond", + "fun": "Plezier", + "general": "Algemeen", + "greentext": "Meme pijlen", + "hide_all_muted_posts": "Genegeerde berichten verbergen", + "hide_attachments_in_convo": "Bijlagen in gesprekken verbergen", + "hide_attachments_in_tl": "Bijlagen in tijdlijn verbergen", + "hide_bot_indication": "Bot-indicatie in berichten verbergen", + "hide_favorites_description": "Lijst van favorieten verbergen (mensen krijgen wel nog meldingen)", + "hide_filtered_statuses": "Gefilterde berichten verbergen", + "hide_followers_count_description": "Niet mijn volgers aantal tonen", + "hide_followers_description": "Niet tonen wie mij volgt", + "hide_follows_count_description": "Niet mijn gevolgden aantal tonen", + "hide_follows_description": "Niet tonen wie ik volg", + "hide_isp": "Instantie-specifiek paneel verbergen", + "hide_list_aliases_error_action": "Sluiten", + "hide_media_previews": "Media voorbeelden verbergen", + "hide_muted_posts": "Berichten van genegeerde gebruikers verbergen", + "hide_muted_threads": "Genegeerde gesprekken verbergen", + "hide_post_stats": "Bericht-statistieken verbergen (bijv. het aantal favorieten)", + "hide_shoutbox": "Shoutbox verbergen", + "hide_threads_with_blocked_users": "Gesprekken met geblokkeerde gebruikers verbergen", + "hide_user_stats": "Gebruikers-statistieken verbergen (bijv. het aantal volgers)", + "hide_wallpaper": "Achtergrond-afbeelding verbergen", + "hide_wordfiltered_statuses": "Berichten met gefilterde woorden verbergen", + "import_blocks_from_a_csv_file": "Geblokkeerde gebruikers van een csv bestand importeren", + "import_followers_from_a_csv_file": "Gevolgde gebruikers uit een csv bestand importeren", + "import_mutes_from_a_csv_file": "Genegeerde gebruikers uit een csv bestand importeren", + "import_theme": "Preset laden", + "inputRadius": "Invoervelden", + "instance_default": "(standaard: {value})", + "instance_default_simple": "(standaard)", + "interface": "Interface", + "interfaceLanguage": "Interface taal", + "invalid_theme_imported": "Het geselecteerde bestand is niet een door Pleroma ondersteund thema. Er zijn geen aanpassingen gedaan.", + "limited_availability": "Niet beschikbaar in je browser", + "links": "Links", + "list_aliases_error": "Fout bij het ophalen van aliassen: {error}", + "list_backups_error": "Fout bij het ophalen van back-ups: {error}", + "lock_account_description": "Volgers enkel na expliciete toestemming toelaten", + "loop_video": "Video's herhalen", + "loop_video_silent_only": "Enkel video's zonder geluid herhalen (bijv. Mastodon's \"gifs\")", + "mascot": "Mastodon FE Mascotte", + "max_depth_in_thread": "Maximum lagen van een gesprek welke standaard getoond dienen te worden", + "max_thumbnails": "Maximaal aantal miniaturen per bericht (leeg = geen limiet)", + "mention_link_bolden_you": "Vermeldingen naar jezelf uitlichten", + "mention_link_display": "Vermelding-links tonen", + "mention_link_display_full": "altijd als volledige namen (b.v. {'@'}foo{'@'}example.org)", + "mention_link_display_full_for_remote": "als volledige namen alleen voor externe gebruikers (b.v. {'@'}foo{'@'}example.org)", + "mention_link_display_short": "altijd als korte namen (b.v. {'@'}foo)", + "mention_link_fade_domain": "Domeinen vervagen (b.v. {'@'}example.org in {'@'}foo{'@'}example.org)", + "mention_link_show_avatar": "Profielfoto naast link tonen", + "mention_link_show_tooltip": "Volledige namen in tooltip tonen voor externe gebruikers", + "mention_links": "Vermelding-links", + "mfa": { + "authentication_methods": "Authenticatiemethoden", + "confirm_and_enable": "Bevestig en schakel OTP in", + "generate_new_recovery_codes": "Nieuwe herstelcodes genereren", + "otp": "OTP", + "recovery_codes": "Herstelcodes.", + "recovery_codes_warning": "Schrijf de codes op of sla ze op een veilige locatie op - anders kun je ze niet meer inzien. Als je toegang tot je 2FA-app en herstelcodes verliest, zal je buitengesloten zijn van je account.", + "scan": { + "desc": "Scan de QR-code of voer een sleutel in met je twee-factorapplicatie:", + "secret_code": "Sleutel", + "title": "Scannen" + }, + "setup_otp": "OTP instellen", + "title": "Twee-factorauthenticatie", + "verify": { + "desc": "Voer de code van je twee-factorapplicatie in om twee-factorauthenticatie in te schakelen:" + }, + "wait_pre_setup_otp": "OTP voorinstellen", + "waiting_a_recovery_codes": "Back-upcodes ontvangen…", + "warning_of_generate_new_codes": "Wanneer je nieuwe herstelcodes genereert, zullen je oude codes niet langer werken." }, - "components": { - "panel": "Paneel", - "panelHeader": "Paneel koptekst", - "topBar": "Top balk", - "avatar": "Gebruikers avatar (in profiel weergave)", - "avatarStatus": "Gebruikers avatar (in bericht weergave)", - "popup": "Popups en tooltips", - "button": "Knop", - "buttonHover": "Knop (zweven)", - "buttonPressed": "Knop (ingedrukt)", - "buttonPressedHover": "Knop (ingedrukt+zweven)", - "input": "Invoerveld" + "minimal_scopes_mode": "Bericht bereik-opties minimaliseren", + "more_settings": "Meer instellingen", + "move_account": "Account verhuizen", + "move_account_error": "Fout tijdens account verhuizen: {error}", + "move_account_notes": "Indien je het account ergens anders heen wilt verplaatsen, dien je eerst een alias naar dit account te maken in het nieuwe account.", + "move_account_target": "Doelwit account (b.v. {example})", + "moved_account": "Het account is verhuisd.", + "mute_bot_posts": "Bot-berichten negeren", + "mute_export": "Genegeerde gebruikers export", + "mute_export_button": "Genegeerde gebruikers naar een csv-bestand exporteren", + "mute_import": "Genegeerde gebruikers import", + "mute_import_error": "Fout tijdens het importeren van genegeerde gebruikers", + "mutes_and_blocks": "Negeren en Blokkeren", + "mutes_imported": "Genegeerde gebruikers geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", + "mutes_tab": "Genegeerde gebruikers", + "name": "Naam", + "name_bio": "Naam & bio", + "new_alias_target": "Nieuwe alias toevoegen (b.v. {example})", + "new_email": "Nieuwe e-mail", + "new_password": "Nieuw wachtwoord", + "no_blocks": "Geen geblokkeerde gebruikers", + "no_mutes": "Geen genegeerde gebruikers", + "no_rich_text_description": "Verwijder rich text formattering van alle berichten", + "notification_blocks": "Door een gebruiker te blokkeren, ontvang je geen meldingen meer van de gebruiker en wordt je abonnement op de gebruiker opgeheven.", + "notification_mutes": "Om niet langer meldingen te ontvangen van een specifieke gebruiker, kun je deze negeren.", + "notification_setting_block_from_strangers": "Meldingen van gebruikers die je niet volgt blokkeren", + "notification_setting_filters": "Filters", + "notification_setting_hide_if_cw": "Inhoud van push-meldingen verbergen indien deze een Content Waarschuwing bevatten", + "notification_setting_hide_notification_contents": "Afzender en inhoud van push-meldingen verbergen", + "notification_setting_privacy": "Privacy", + "notification_visibility": "Type meldingen die getoond worden", + "notification_visibility_emoji_reactions": "Reacties", + "notification_visibility_follows": "Gevolgde gebruikers", + "notification_visibility_likes": "Favorieten", + "notification_visibility_mentions": "Vermeldingen", + "notification_visibility_moves": "Gebruiker Migraties", + "notification_visibility_polls": "Einde van peilingen waar je in gestemd hebt", + "notification_visibility_repeats": "Herhalingen", + "notifications": "Meldingen", + "nsfw_clickthrough": "Gevoelige media verbergen", + "oauth_tokens": "OAuth-tokens", + "pad_emoji": "Emoji aan met spaties aanvullen wanneer deze met de picker ingevoegd worden", + "panelRadius": "Panelen", + "pause_on_unfocused": "Streamen pauzeren wanneer de tab niet in focus is", + "play_videos_in_modal": "Video's in een popup venster afspelen", + "post_look_feel": "Berichten Look & Feel", + "post_status_content_type": "Standaard bericht content type", + "posts": "Berichten", + "preload_images": "Afbeeldingen vooraf laden", + "presets": "Presets", + "profile_background": "Profiel achtergrond", + "profile_banner": "Profiel banner", + "profile_fields": { + "add_field": "Veld toevoegen", + "label": "Profiel metadata", + "name": "Label", + "value": "Inhoud" }, - "hintV3": "Voor schaduwen kun je ook de {0} notatie gebruiken om de andere kleur invoer te gebruiken." - }, - "fonts": { - "_tab_label": "Lettertypes", - "help": "Selecteer het lettertype om te gebruiken voor elementen van de UI. Voor \"aangepast\" dien je de exacte naam van het lettertype in te voeren zoals die in het systeem wordt weergegeven.", - "components": { - "interface": "Interface", - "input": "Invoervelden", - "post": "Bericht tekst", - "postCode": "Monospaced tekst in een bericht (rich text)" + "profile_tab": "Profiel", + "radii_help": "Afronding van hoeken in de interface instellen (in pixels)", + "refresh_token": "Token vernieuwen", + "remove_alias": "Deze alias verwijderen", + "remove_backup": "Verwijderen", + "render_mfm": "Misskey Markdown weergeven", + "replies_in_timeline": "Antwoorden in tijdlijn", + "reply_visibility_all": "Alle antwoorden tonen", + "reply_visibility_following": "Enkel antwoorden tonen die aan mij of gevolgde gebruikers gericht zijn", + "reply_visibility_following_short": "Antwoorden naar mijn gevolgden tonen", + "reply_visibility_self": "Enkel antwoorden tonen die aan mij gericht zijn", + "reply_visibility_self_short": "Alleen antwoorden aan mijzelf tonen", + "reset_avatar": "Avatar herstellen", + "reset_avatar_confirm": "Wil je echt de avatar herstellen?", + "reset_background_confirm": "Wil je echt de achtergrond herstellen?", + "reset_banner_confirm": "Wil je echt de banner herstellen?", + "reset_profile_background": "Profiel achtergrond herstellen", + "reset_profile_banner": "Profiel banner herstellen", + "revoke_token": "Intrekken", + "right_sidebar": "Kolom-volgorde omdraaien", + "save": "Wijzigingen opslaan", + "saving_err": "Fout tijdens opslaan van instellingen", + "saving_ok": "Instellingen opgeslagen", + "scope_copy": "Bereik overnemen bij beantwoorden (Privéberichten blijven altijd privé)", + "search_user_to_block": "Zoek wie je wilt blokkeren", + "search_user_to_mute": "Zoek wie je wilt negeren", + "security": "Beveiliging", + "security_tab": "Beveiliging", + "sensitive_by_default": "Berichten standaard als gevoelig markeren", + "sensitive_if_subject": "Automatisch afbeeldingen als gevoelig markeren indien een onderwerp opgegeven is", + "set_new_avatar": "Nieuwe avatar instellen", + "set_new_mascot": "Nieuwe mascotte instellen", + "set_new_profile_background": "Nieuwe profiel achtergrond instellen", + "set_new_profile_banner": "Nieuwe profiel banner instellen", + "setting_changed": "Instelling verschilt van standaard waarde", + "setting_server_side": "Deze instelling is gebonden aan je profiel en beïnvloed alle sessies en clients", + "settings": "Instellingen", + "show_admin_badge": "\"Beheerder\" badge in mijn profiel tonen", + "show_moderator_badge": "\"Moderator\" badge in mijn profiel tonen", + "show_scrollbars": "Scrollbalk tonen in zijkolommen", + "show_yous": "(Jij)'s tonen", + "stop_gifs": "Geanimeerde afbeeldingen afspelen bij zweven", + "streaming": "Automatisch streamen van nieuwe berichten inschakelen wanneer tot boven gescrold is", + "style": { + "advanced_colors": { + "_tab_label": "Geavanceerd", + "alert": "Alarm achtergrond", + "alert_error": "Fout", + "alert_neutral": "Neutraal", + "alert_warning": "Waarschuwing", + "badge": "Badge achtergrond", + "badge_notification": "Meldingen", + "borders": "Randen", + "buttons": "Knoppen", + "chat": { + "border": "Rand", + "incoming": "Binnenkomend", + "outgoing": "Uitgaand" + }, + "disabled": "Uitgeschakeld", + "faint_text": "Vervaagde tekst", + "highlight": "Uitgelichte elementen", + "icons": "Iconen", + "inputs": "Invoervelden", + "panel_header": "Paneel koptekst", + "poll": "Peiling grafiek", + "popover": "Tooltips, menu's, popovers", + "post": "Berichten / Gebruiker bios", + "pressed": "Ingedrukt", + "selectedMenu": "Geselecteerd menu item", + "selectedPost": "Geselecteerd bericht", + "tabs": "Tabbladen", + "toggled": "Geschakeld", + "top_bar": "Top balk", + "underlay": "Onderlaag", + "wallpaper": "Achtergrond" + }, + "common": { + "color": "Kleur", + "contrast": { + "context": { + "18pt": "voor grote (18pt+) tekst", + "text": "voor tekst" + }, + "hint": "Contrast verhouding is {ratio}, {level} {context}", + "level": { + "aa": "voldoet aan de richtlijn van niveau AA (minimum)", + "aaa": "voldoet aan de richtlijn van niveau AAA (aangeraden)", + "bad": "voldoet aan geen enkele toegankelijkheidsrichtlijn" + } + }, + "opacity": "Transparantie" + }, + "common_colors": { + "_tab_label": "Algemeen", + "foreground_hint": "Zie \"Geavanceerd\" tab voor meer gedetailleerde opties", + "main": "Algemene kleuren", + "rgbo": "Iconen, accenten, badges" + }, + "fonts": { + "_tab_label": "Lettertypen", + "components": { + "input": "Invoervelden", + "interface": "Interface", + "post": "Bericht tekst", + "postCode": "Monospaced tekst in een bericht (rich text)" + }, + "custom": "Aangepast", + "family": "Lettertype naam", + "help": "Selecteer het lettertype om te gebruiken voor elementen van de UI. Voor \"aangepast\" dien je de exacte naam van het lettertype in te voeren zoals die in het systeem wordt weergegeven.", + "size": "Grootte (in px)", + "weight": "Gewicht (dikgedruktheid)" + }, + "preview": { + "button": "Knop", + "checkbox": "Ik heb de gebruikersvoorwaarden gelezen", + "content": "Inhoud", + "error": "Voorbeeld fout", + "faint_link": "handige gebruikershandleiding", + "fine_print": "Lees onze {0} om niets nuttig te leren!", + "header": "Voorvertoning", + "header_faint": "Alles komt goed", + "input": "Tijd voor anime!", + "link": "een leuke kleine link", + "mono": "inhoud", + "text": "Nog een boel andere {0} en {1}" + }, + "radii": { + "_tab_label": "Rondingen" + }, + "shadows": { + "_tab_label": "Schaduw en belichting", + "blur": "Vervagen", + "component": "Onderdeel", + "components": { + "avatar": "Gebruikers-avatar (in profiel weergave)", + "avatarStatus": "Gebruikers-avatar (in bericht weergave)", + "button": "Knop", + "buttonHover": "Knop (zweven)", + "buttonPressed": "Knop (ingedrukt)", + "buttonPressedHover": "Knop (ingedrukt+zweven)", + "input": "Invoerveld", + "panel": "Paneel", + "panelHeader": "Paneel koptekst", + "popup": "Popups en tooltips", + "topBar": "Top balk" + }, + "filter_hint": { + "always_drop_shadow": "Waarschuwing, deze schaduw gebruikt altijd {0} als de browser dit ondersteund.", + "avatar_inset": "Houdt er rekening mee dat het combineren van zowel inzet and niet-inzet schaduwen op transparante avatars onverwachte resultaten kan opleveren.", + "drop_shadow_syntax": "{0} ondersteund niet de {1} parameter en {2} sleutelwoord.", + "inset_classic": "Inzet schaduw zal {0} gebruiken", + "spread_zero": "Schaduw met spreiding > 0 worden weergegeven alsof ze op nul staan" + }, + "hintV3": "Voor schaduwen kun je ook de {0} notatie gebruiken om de andere kleur invoer te gebruiken.", + "inset": "Inzet", + "override": "Overschrijven", + "shadow_id": "Schaduw #{value}", + "spread": "Spreiding" + }, + "switcher": { + "clear_all": "Alles wissen", + "clear_opacity": "Transparantie wissen", + "help": { + "fe_downgraded": "PleromaFE's versie is terug gezet.", + "fe_upgraded": "De thema-engine van PleromaFE is bijgewerkt na de versie update.", + "future_version_imported": "Het geïmporteerde bestand is gemaakt voor een nieuwere versie van FE.", + "migration_napshot_gone": "Voor een onduidelijke reden mist de momentopname, dus sommige dingen kunnen anders uitzien dan je gewend bent.", + "migration_snapshot_ok": "Voor de zekerheid is een momentopname van het thema geladen. Je kunt proberen om de thema gegevens te laden.", + "older_version_imported": "Het geïmporteerde bestand is gemaakt voor een oudere versie van FE.", + "snapshot_missing": "Het bestand bevat geen thema momentopname, dus het thema kan anders uitzien dan je oorspronkelijk bedacht had.", + "snapshot_present": "Thema momentopname is geladen, alle waarden zijn overschreven. Je kunt in plaats daarvan ook de daadwerkelijke data van het thema laden.", + "snapshot_source_mismatch": "Versie conflict: waarschijnlijk was FE terug gerold en opnieuw bijgewerkt, indien je het thema aangepast hebt met de oudere versie van FE wil je waarschijnlijk de oude versie gebruiken, gebruik anders de nieuwe versie.", + "upgraded_from_v2": "PleromaFE is bijgewerkt, het thema kan iets anders uitzien dan dat je gewend bent.", + "v2_imported": "Het geïmporteerde bestand is gemaakt voor een oudere FE. We proberen compatibiliteit te maximaliseren, maar het kan toch voorkomen dat er inconsistenties zijn." + }, + "keep_as_is": "Houden zoals het is", + "keep_color": "Kleuren behouden", + "keep_fonts": "Lettertypes behouden", + "keep_opacity": "Transparantie behouden", + "keep_roundness": "Rondingen behouden", + "keep_shadows": "Schaduwen behouden", + "load_theme": "Thema laden", + "reset": "Herstellen", + "save_load_hint": "\"Behoud\" opties behouden de momenteel ingestelde opties bij het selecteren of laden van thema's, maar slaan ook de genoemde opties op bij het exporteren van een thema. Wanneer alle selectievakjes zijn uitgeschakeld, zal het exporteren van thema's alles opslaan.", + "use_snapshot": "Oude versie", + "use_source": "Nieuwe versie" + } }, - "family": "Lettertype naam", - "size": "Grootte (in px)", - "weight": "Gewicht (dikgedruktheid)", - "custom": "Aangepast" - }, - "preview": { - "header": "Voorvertoning", - "content": "Inhoud", - "error": "Voorbeeld fout", - "button": "Knop", - "text": "Nog een boel andere {0} en {1}", - "mono": "inhoud", - "input": "Tijd voor anime!", - "faint_link": "handige gebruikershandleiding", - "fine_print": "Lees onze {0} om niets nuttig te leren!", - "header_faint": "Alles komt goed", - "checkbox": "Ik heb de gebruikersvoorwaarden gelezen", - "link": "een leuke kleine link" - } + "subject_input_always_show": "Altijd onderwerpveld tonen", + "subject_line_behavior": "Onderwerp kopiëren bij beantwoorden", + "subject_line_email": "Zoals e-mail: \"re: onderwerp\"", + "subject_line_mastodon": "Zoals mastodon: kopiëren zoals het is", + "subject_line_noop": "Niet kopiëren", + "text": "Tekst", + "theme": "Thema", + "theme_help": "Hex kleur codes (#rrggbb) gebruiken om je kleur thema te wijzigen.", + "theme_help_v2_1": "Je kan ook de kleur en transparantie van bepaalde componenten overschrijven door de checkbox aan te vinken, gebruik de \"Alles wissen\" knop om alle overschrijvingen te herstellen.", + "theme_help_v2_2": "Iconen onder sommige onderdelen zijn achtergrond/tekst contrast indicatoren, zweef er over voor gedetailleerde info. Hou er rekening mee dat bij doorzichtigheid de ergst mogelijke situatie wordt weer gegeven.", + "third_column_mode": "Indien er genoeg plaats is, derde kolom tonen met", + "third_column_mode_none": "Géén derde kolom tonen", + "third_column_mode_notifications": "Meldingen", + "third_column_mode_postform": "Berichtformulier en navigatie", + "token": "Token", + "tooltipRadius": "Tooltips/alarmen", + "tree_advanced": "Flexibelere navigatie toestaan in boom weergave", + "type_domains_to_mute": "Zoek domeinen om te negeren", + "upload_a_photo": "Foto uploaden", + "useStreamingApi": "Berichten en meldingen in real-time ontvangen", + "useStreamingApiWarning": "Iets experimenteels met berichten streamen uwu miss kun je beter uit laten ofzo", + "use_at_icon": "{'@'} symbool als icoon tonen in plaats van tekst", + "use_contain_fit": "Bijlage in miniaturen niet bijsnijden", + "use_one_click_nsfw": "Gevoelige bijlagen met slechts één klik openen", + "user_mutes": "Gebruikers", + "user_profiles": "Gebruikersprofielen", + "user_settings": "Gebruikersinstellingen", + "valid_until": "Geldig tot", + "values": { + "false": "nee", + "true": "ja" + }, + "version": { + "backend_version": "Backend versie", + "frontend_version": "Frontend versie", + "title": "Versie" + }, + "virtual_scrolling": "Tijdlijn weergave optimaliseren", + "word_filter": "Woord filter", + "wordfilter": "Woordfilter" }, - "notification_setting_privacy": "Privacy", - "notification_setting_privacy_option": "Verberg de afzender en inhoud van push meldingen", - "notification_mutes": "Om niet langer meldingen te ontvangen van een specifieke gebruiker, kun je deze negeren.", - "app_name": "App naam", - "security": "Beveiliging", - "enter_current_password_to_confirm": "Voer je huidige wachtwoord in om je identiteit te bevestigen", - "mfa": { - "otp": "OTP", - "setup_otp": "OTP instellen", - "wait_pre_setup_otp": "OTP voorinstellen", - "confirm_and_enable": "Bevestig en schakel OTP in", - "title": "Twee-factorauthenticatie", - "generate_new_recovery_codes": "Genereer nieuwe herstelcodes", - "recovery_codes": "Herstelcodes.", - "waiting_a_recovery_codes": "Back-upcodes ontvangen…", - "authentication_methods": "Authenticatiemethodes", - "scan": { - "title": "Scannen", - "desc": "Scan de QR-code of voer een sleutel in met je twee-factorapplicatie:", - "secret_code": "Sleutel" - }, - "verify": { - "desc": "Voer de code van je twee-factorapplicatie in om twee-factorauthenticatie in te schakelen:" - }, - "warning_of_generate_new_codes": "Wanneer je nieuwe herstelcodes genereert, zullen je oude codes niet langer werken.", - "recovery_codes_warning": "Schrijf de codes op of sla ze op een veilige locatie op - anders kun je ze niet meer inzien. Als je toegang tot je 2FA-app en herstelcodes verliest, zal je buitengesloten zijn van je account." + "status": { + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "Flash speler stoppen", + "bookmark": "Bladwijzer toevoegen", + "collapse_attachments": "Bijlagen invouwen", + "copy_link": "Link naar bericht kopiëren", + "delete": "Bericht verwijderen", + "delete_confirm": "Wil je echt dit bericht verwijderen?", + "expand": "Uitvouwen", + "external_source": "Externe bron", + "favorites": "Favorieten", + "hide_attachment": "Bijlage verbergen", + "hide_content": "Inhoud verbergen", + "hide_full_subject": "Volledig onderwerp verbergen", + "many_attachments": "Bericht heeft {number} bijlage | Bericht heeft {number} bijlagen", + "mentions": "Vermeldingen", + "move_down": "Bijlage naar rechts schuiven", + "move_up": "Bijlage naar links schuiven", + "mute_conversation": "Gesprek negeren", + "nsfw": "Gevoelig", + "open_gallery": "Gallerij openen", + "pin": "Aan profiel vastmaken", + "pinned": "Vastgezet", + "plus_more": "+{number} meer", + "remove_attachment": "Bijlage verwijderen", + "repeats": "Herhalingen", + "replies_list": "Antwoorden:", + "replies_list_with_others": "Antwoorden (+{numReplies} andere): | Antwoorden (+{numReplies} anderen):", + "reply_to": "Antwoorden aan", + "show_all_attachments": "Alle bijlagen tonen", + "show_all_conversation": "Volledig gesprek tonen ({numStatus} ander bericht) | Volledig gesprek tonen ({numStatus} andere berichten)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "Voorbeeld beschrijving (open bijlage om de volledige beschrijving te zien)", + "show_attachment_in_modal": "In media venster tonen", + "show_content": "Inhoud tonen", + "show_full_subject": "Volledig onderwerp tonen", + "show_only_conversation_under_this": "Alleen antwoorden op dit bericht tonen", + "status_deleted": "Dit bericht is verwijderd", + "status_unavailable": "Bericht niet beschikbaar", + "thread_follow": "Rest van gesprek tonen ({numStatus} bericht in totaal) | Rest van gesprek tonen ({numStatus} berichten in totaal)", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "Gesprek verbergen", + "thread_muted": "Gesprek genegeerd", + "thread_muted_and_words": ", heeft woorden:", + "thread_show": "Gesprek tonen", + "thread_show_full": "Alle berichten in dit gesprek tonen ({numStatus} bericht in totaal, max. diepte {depth}) | Alle berichten in dit gesprek tonen ({numStatus} berichten in totaal, max. diepte {depth})", + "thread_show_full_with_icon": "{icon} {text}", + "unbookmark": "Bladwijzer verwijderen", + "unmute_conversation": "Gesprek niet meer negeren", + "unpin": "Van profiel losmaken", + "you": "(Jij)" }, - "allow_following_move": "Automatisch volgen toestaan wanneer een gevolgd account migreert", - "block_export": "Blokkades exporteren", - "block_import": "Blokkades importeren", - "blocks_imported": "Blokkades geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", - "blocks_tab": "Blokkades", - "change_email": "E-mail wijzigen", - "change_email_error": "Er is een fout opgetreden tijdens het wijzigen van je e-mailadres.", - "changed_email": "E-mailadres succesvol gewijzigd!", - "domain_mutes": "Domeinen", - "avatar_size_instruction": "De aangeraden minimale afmeting voor avatar-afbeeldingen is 150x150 pixels.", - "pad_emoji": "Vul emoji aan met spaties wanneer deze met de picker ingevoegd worden", - "emoji_reactions_on_timeline": "Toon emoji-reacties op de tijdlijn", - "accent": "Accent", - "hide_muted_posts": "Berichten van genegeerde gebruikers verbergen", - "max_thumbnails": "Maximaal aantal miniaturen per bericht", - "use_one_click_nsfw": "Gevoelige bijlagen met slechts één klik openen", - "hide_filtered_statuses": "Gefilterde statussen verbergen", - "import_blocks_from_a_csv_file": "Blokkades van een csv bestand importeren", - "mutes_tab": "Genegeerden", - "play_videos_in_modal": "Video's in een popup frame afspelen", - "new_email": "Nieuwe e-mail", - "notification_visibility_emoji_reactions": "Reacties", - "no_blocks": "Geen blokkades", - "no_mutes": "Geen genegeerden", - "hide_followers_description": "Niet tonen wie mij volgt", - "hide_followers_count_description": "Niet mijn volgers aantal tonen", - "hide_follows_count_description": "Niet mijn gevolgde aantal tonen", - "show_admin_badge": "\"Beheerder\" badge in mijn profiel tonen", - "autohide_floating_post_button": "Nieuw Bericht knop automatisch verbergen (mobiel)", - "search_user_to_block": "Zoek wie je wilt blokkeren", - "search_user_to_mute": "Zoek wie je wilt negeren", - "minimal_scopes_mode": "Bericht bereik-opties minimaliseren", - "post_status_content_type": "Bericht status content type", - "user_mutes": "Gebruikers", - "useStreamingApi": "Berichten en meldingen in real-time ontvangen", - "useStreamingApiWarning": "(Afgeraden, experimenteel, kan berichten overslaan)", - "type_domains_to_mute": "Zoek domeinen om te negeren", - "upload_a_photo": "Foto uploaden", - "fun": "Plezier", - "greentext": "Meme pijlen", - "block_export_button": "Exporteer je geblokkeerde gebruikers naar een csv-bestand", - "block_import_error": "Fout bij importeren blokkades", - "discoverable": "Sta toe dat dit account ontdekt kan worden in zoekresultaten en andere diensten", - "use_contain_fit": "Bijlage in miniaturen niet bijsnijden", - "notification_visibility_moves": "Gebruiker Migraties", - "hide_follows_description": "Niet tonen wie ik volg", - "show_moderator_badge": "\"Moderator\" badge in mijn profiel tonen", - "notification_setting_filters": "Filters", - "notification_blocks": "Door een gebruiker te blokkeren, ontvang je geen meldingen meer van de gebruiker en wordt je abonnement op de gebruiker opgeheven.", - "version": { - "frontend_version": "Frontend versie", - "backend_version": "Backend versie", - "title": "Versie" + "time": { + "in_future": "over {0}", + "in_past": "{0} geleden", + "now": "zojuist", + "now_short": "nu", + "unit": { + "days": "{0} dag | {0} dagen", + "days_short": "{0}d", + "hours": "{0} uur | {0} uren", + "hours_short": "{0}u", + "minutes": "{0} minuut | {0} minuten", + "minutes_short": "{0}min", + "months": "{0} maand | {0} maanden", + "months_short": "{0}ma", + "seconds": "{0} seconde | {0} seconden", + "seconds_short": "{0}s", + "weeks": "{0} week | {0} weken", + "weeks_short": "{0}w", + "years": "{0} jaar | {0} jaren", + "years_short": "{0}j" + } }, - "mutes_and_blocks": "Negeringen en Blokkades", - "profile_fields": { - "value": "Inhoud", - "name": "Label", - "add_field": "Veld toevoegen", - "label": "Profiel metadata" + "timeline": { + "collapse": "Invouwen", + "conversation": "Gesprek", + "error": "Fout bij het ophalen van tijdlijn: {0}", + "load_older": "Oudere berichten laden", + "no_more_statuses": "Geen verdere berichten", + "no_retweet_hint": "Bericht is gemarkeerd als enkel-volgers of privé en kan niet worden herhaald of geciteerd", + "no_statuses": "Geen berichten", + "reload": "Verversen", + "repeated": "herhaalde", + "show_new": "Nieuwe tonen", + "socket_broke": "Realtime verbinding verloren: CloseEvent code {0}", + "socket_reconnected": "Realtime verbinding opgezet", + "up_to_date": "Up-to-date" }, - "bot": "Dit is een bot-account", - "setting_changed": "Instelling verschilt van standaard waarde", - "save": "Wijzigingen opslaan", - "hide_media_previews": "Media voorbeelden verbergen", - "word_filter": "Woord filter", - "chatMessageRadius": "Chatbericht", - "mute_export": "Genegeerden export", - "mute_export_button": "Exporteer je genegeerden naar een csv-bestand", - "mute_import_error": "Fout tijdens het importeren van genegeerden", - "mute_import": "Genegeerden import", - "mutes_imported": "Genegeerden geïmporteerd! Het kan even duren voordat deze verwerkt zijn.", - "more_settings": "Meer instellingen", - "notification_setting_hide_notification_contents": "Afzender en inhoud van push meldingen verbergen", - "notification_setting_block_from_strangers": "Meldingen van gebruikers die je niet volgt blokkeren", - "virtual_scrolling": "Tijdlijn rendering optimaliseren", - "sensitive_by_default": "Berichten standaard als gevoelig markeren", - "reset_avatar_confirm": "Wil je echt de avatar herstellen?", - "reset_banner_confirm": "Wil je echt de banner herstellen?", - "reset_background_confirm": "Wil je echt de achtergrond herstellen?", - "reset_profile_banner": "Profiel banner herstellen", - "reset_profile_background": "Profiel achtergrond herstellen", - "reset_avatar": "Avatar herstellen", - "reply_visibility_self_short": "Alleen antwoorden aan mijzelf tonen", - "reply_visibility_following_short": "Antwoorden naar mijn gevolgden tonen", - "file_export_import": { - "errors": { - "file_slightly_new": "Bestand minor versie is verschillend, sommige instellingen kunnen mogelijk niet worden geladen", - "file_too_old": "Incompatibele hoofdversie: {fileMajor}, bestandsversie is te oud en wordt niet ondersteund (minimale versie {feMajor})", - "file_too_new": "Incompatibele hoofdversie: {fileMajor}, deze PleromaFE (instellingen versie {feMajor}) is te oud om deze te ondersteunen", - "invalid_file": "Het geselecteerde bestand is niet een door Pleroma ondersteunde instellingen back-up. Er zijn geen wijzigingen gemaakt." - }, - "restore_settings": "Instellingen uit bestand herstellen", - "backup_settings_theme": "Instellingen en thema naar bestand back-uppen", - "backup_settings": "Instellingen naar bestand back-uppen", - "backup_restore": "Instellingen backup" + "tool_tip": { + "accept_follow_request": "Volgverzoek accepteren", + "add_reaction": "Reactie toevoegen", + "bookmark": "Bladwijzer maken", + "favorite": "Favoriet maken", + "media_upload": "Media uploaden", + "quote": "Citeren", + "reject_follow_request": "Volgverzoek afwijzen", + "repeat": "Herhalen", + "reply": "Beantwoorden", + "user_settings": "Gebruikersinstellingen" }, - "hide_wallpaper": "Instantie achtergrond verbergen", - "hide_all_muted_posts": "Genegeerde berichten verbergen", - "import_mutes_from_a_csv_file": "Importeer genegeerden van een csv bestand" - }, - "timeline": { - "collapse": "Inklappen", - "conversation": "Conversatie", - "error_fetching": "Fout bij ophalen van updates", - "load_older": "Oudere statussen laden", - "no_retweet_hint": "Bericht is gemarkeerd als enkel volgers of direct en kan niet worden herhaald", - "repeated": "herhaalde", - "show_new": "Nieuwe tonen", - "up_to_date": "Up-to-date", - "no_statuses": "Geen statussen", - "no_more_statuses": "Geen statussen meer", - "socket_broke": "Realtime verbinding verloren: CloseEvent code {0}", - "socket_reconnected": "Realtime verbinding opgezet", - "reload": "Verversen", - "error": "Fout tijdens het ophalen van tijdlijn: {0}" - }, - "user_card": { - "approve": "Goedkeuren", - "block": "Blokkeren", - "blocked": "Geblokkeerd!", - "deny": "Weigeren", - "favorites": "Favorieten", - "follow": "Volgen", - "follow_cancel": "Aanvraag annuleren", - "follow_sent": "Aanvraag verzonden!", - "follow_progress": "Aanvragen…", - "follow_unfollow": "Stop volgen", - "followees": "Aan het volgen", - "followers": "Volgers", - "following": "Aan het volgen!", - "follows_you": "Volgt jou!", - "its_you": "'t is jij!", - "mute": "Negeren", - "muted": "Genegeerd", - "per_day": "per dag", - "remote_follow": "Volg vanop afstand", - "statuses": "Statussen", - "admin_menu": { - "delete_user": "Gebruiker verwijderen", - "quarantine": "Federeren van gebruikers berichten verbieden", - "disable_any_subscription": "Volgen van gebruiker in zijn geheel verbieden", - "disable_remote_subscription": "Volgen van gebruiker vanaf andere instanties verbieden", - "sandbox": "Berichten forceren om alleen voor volgers zichtbaar te zijn", - "force_unlisted": "Berichten forceren om niet publiekelijk getoond te worden", - "strip_media": "Media van berichten verwijderen", - "force_nsfw": "Alle berichten als gevoelig markeren", - "delete_account": "Account verwijderen", - "deactivate_account": "Account deactiveren", - "activate_account": "Account activeren", - "revoke_moderator": "Moderatorsrechten intrekken", - "grant_moderator": "Moderatorsrechten toekennen", - "revoke_admin": "Beheerdersrechten intrekken", - "grant_admin": "Beheerdersrechten toekennen", - "moderation": "Moderatie" + "upload": { + "error": { + "base": "Upload mislukt.", + "default": "Probeer het later opnieuw", + "file_too_big": "Bestand is te groot [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Upload is mislukt: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "show_repeats": "Herhalingen tonen", - "hide_repeats": "Herhalingen verbergen", - "mute_progress": "Negeren…", - "unmute_progress": "Negering opheffen…", - "unmute": "Negering opheffen", - "block_progress": "Blokkeren…", - "unblock_progress": "Blokkade opheffen…", - "unblock": "Blokkade opheffen", - "unsubscribe": "Abonnement opzeggen", - "subscribe": "Abonneren", - "report": "Aangeven", - "mention": "Vermelding", - "media": "Media", - "hidden": "Verborgen", - "highlight": { - "side": "Zijstreep", - "striped": "Gestreepte achtergrond", - "solid": "Effen achtergrond", - "disabled": "Geen highlight" + "user_card": { + "admin_menu": { + "activate_account": "Account activeren", + "deactivate_account": "Account deactiveren", + "delete_account": "Account verwijderen", + "delete_user": "Gebruiker verwijderen", + "delete_user_data_and_deactivate_confirmation": "Dit zal permanent alle data van dit account verwijderen en het account deactiveren. Weet je het zeker?", + "disable_any_subscription": "Volgen van gebruiker in zijn geheel verbieden", + "disable_remote_subscription": "Volgen van gebruiker vanaf andere instanties verbieden", + "force_nsfw": "Alle berichten als gevoelig markeren", + "force_unlisted": "Berichten forceren om niet openbaar getoond te worden", + "grant_admin": "Beheerdersrechten toekennen", + "grant_moderator": "Moderatorsrechten toekennen", + "moderation": "Moderatie", + "quarantine": "Federeren van berichten verbieden", + "revoke_admin": "Beheerdersrechten intrekken", + "revoke_moderator": "Moderatorsrechten intrekken", + "sandbox": "Berichten forceren om alleen voor volgers zichtbaar te zijn", + "strip_media": "Media van berichten verwijderen" + }, + "approve": "Goedkeuren", + "block": "Blokkeren", + "block_progress": "Blokkeren…", + "blocked": "Geblokkeerd!", + "bot": "Bot", + "deactivated": "Gedeactiveerd", + "deny": "Weigeren", + "domain_muted": "Domein deblokkeren", + "edit_profile": "Profiel wijzigen", + "favorites": "Favorieten", + "follow": "Volgen", + "follow_cancel": "Verzoek annuleren", + "follow_progress": "Aanvragen…", + "follow_sent": "Verzoek verzonden!", + "follow_unfollow": "Ontvolgen", + "followees": "Volgen", + "followers": "Volgers", + "following": "Gevolgd!", + "follows_you": "Volgt jou!", + "hidden": "Verborgen", + "hide_repeats": "Herhalingen verbergen", + "highlight": { + "disabled": "Geen uitlichting", + "side": "Zijstreep", + "solid": "Effen achtergrond", + "striped": "Gestreepte achtergrond" + }, + "its_you": "'t is jij!", + "media": "Media", + "mention": "Vermelden", + "message": "Bericht", + "mute": "Negeren", + "mute_domain": "Domein blokkeren", + "mute_progress": "Negeren…", + "muted": "Genegeerd", + "note": "Privé notitie", + "per_day": "per dag", + "remote_follow": "Van afstand volgen", + "report": "Rapporteren", + "show_repeats": "Herhalingen tonen", + "statuses": "Berichten", + "subscribe": "Abonneren", + "unblock": "Blokkeren opheffen", + "unblock_progress": "Blokkeren opheffen…", + "unmute": "Negeren opheffen", + "unmute_progress": "Negeren opheffen…", + "unsubscribe": "Abonnement opzeggen" }, - "bot": "Bot", - "message": "Bericht" - }, - "user_profile": { - "timeline_title": "Gebruikerstijdlijn", - "profile_loading_error": "Sorry, er is een fout opgetreden bij het laden van dit profiel.", - "profile_does_not_exist": "Sorry, dit profiel bestaat niet." - }, - "who_to_follow": { - "more": "Meer", - "who_to_follow": "Wie te volgen" - }, - "tool_tip": { - "media_upload": "Media uploaden", - "repeat": "Herhalen", - "reply": "Beantwoorden", - "favorite": "Favoriet maken", - "user_settings": "Gebruikers Instellingen", - "reject_follow_request": "Volg-verzoek afwijzen", - "accept_follow_request": "Volg-aanvraag accepteren", - "add_reaction": "Reactie toevoegen", - "bookmark": "Bladwijzer" - }, - "upload": { - "error": { - "base": "Upload mislukt.", - "file_too_big": "Bestand is te groot [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Probeer het later opnieuw", - "message": "Upload is mislukt: {0}" + "user_profile": { + "profile_does_not_exist": "Sorry, dit profiel bestaat niet.", + "profile_loading_error": "Sorry, er is een fout opgetreden bij het laden van dit profiel.", + "timeline_title": "Gebruikerstijdlijn" }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "user_reporting": { + "add_comment_description": "Het rapport zal naar de moderators van de instantie worden verstuurd. Je kunt hieronder uitleg bijvoegen waarom je dit account wilt rapporteren:", + "additional_comments": "Aanvullende opmerkingen", + "forward_description": "Dit account hoort bij een andere server. Wil je een kopie van het rapport ook daarheen sturen?", + "forward_to": "Doorsturen naar {0}", + "generic_error": "Er is een fout opgetreden tijdens het verwerken van je verzoek.", + "submit": "Verzenden", + "title": "{0} rapporteren" + }, + "who_to_follow": { + "more": "Meer", + "who_to_follow": "Wie te volgen" } - }, - "about": { - "mrf": { - "federation": "Federatie", - "keyword": { - "reject": "Afwijzen", - "replace": "Vervangen", - "is_replaced_by": "→", - "keyword_policies": "Zoekwoordbeleid", - "ftl_removal": "Verwijdering van \"Het Geheel Bekende Netwerk\" Tijdlijn" - }, - "mrf_policies_desc": "MRF-regels beïnvloeden het federatiegedrag van de instantie. De volgende regels zijn ingeschakeld:", - "mrf_policies": "Ingeschakelde MRF-regels", - "simple": { - "simple_policies": "Instantiespecifieke regels", - "instance": "Instantie", - "reason": "Reden", - "not_applicable": "n.v.t.", - "accept": "Accepteren", - "accept_desc": "Deze instantie accepteert alleen berichten van de volgende instanties:", - "reject": "Afwijzen", - "reject_desc": "Deze instantie zal geen berichten accepteren van de volgende instanties:", - "quarantine": "Quarantaine", - "quarantine_desc": "Deze instantie zal alleen openbare berichten sturen naar de volgende instanties:", - "ftl_removal_desc": "Deze instantie verwijdert de volgende instanties van \"Bekende Netwerk\" tijdlijn:", - "media_removal_desc": "Deze instantie verwijdert media van berichten van de volgende instanties:", - "media_nsfw_desc": "Deze instantie stelt media in als gevoelig in berichten van de volgende instanties:", - "ftl_removal": "Verwijderen van \"Bekende Netwerk\" Tijdlijn", - "media_removal": "Mediaverwijdering", - "media_nsfw": "Forceer media als gevoelig" - } - }, - "staff": "Personeel" - }, - "domain_mute_card": { - "mute": "Negeren", - "mute_progress": "Negeren…", - "unmute": "Negering opheffen", - "unmute_progress": "Negering wordt opgeheven…" - }, - "exporter": { - "export": "Exporteren", - "processing": "Verwerken, er wordt zo gevraagd om je bestand te downloaden" - }, - "image_cropper": { - "save": "Opslaan", - "save_without_cropping": "Opslaan zonder bijsnijden", - "cancel": "Annuleren", - "crop_picture": "Afbeelding bijsnijden" - }, - "importer": { - "submit": "Verzenden", - "success": "Succesvol geïmporteerd.", - "error": "Er is een fout opgetreden bij het importeren van dit bestand." - }, - "media_modal": { - "previous": "Vorige", - "next": "Volgende" - }, - "polls": { - "add_poll": "Poll toevoegen", - "add_option": "Optie toevoegen", - "option": "Optie", - "votes": "stemmen", - "vote": "Stem", - "single_choice": "Enkele keuze", - "multiple_choices": "Meerkeuze", - "expiry": "Poll leeftijd", - "expires_in": "Poll eindigt in {0}", - "expired": "Poll is {0} geleden beëindigd", - "not_enough_options": "Te weinig opties in poll", - "type": "Poll-type", - "votes_count": "{count} stem | {count} stemmen", - "people_voted_count": "{count} persoon heeft gestemd | {count} personen hebben gestemd" - }, - "emoji": { - "emoji": "Emoji", - "keep_open": "Picker openhouden", - "search_emoji": "Emoji zoeken", - "add_emoji": "Emoji invoegen", - "unicode": "Unicode-emoji", - "load_all": "Alle {emojiAmount} emoji worden geladen", - "stickers": "Stickers", - "load_all_hint": "Eerste {saneAmount} emoji geladen, alle emoji tegelijk laden kan problemen veroorzaken met prestaties.", - "custom": "Gepersonaliseerde emoji" - }, - "interactions": { - "favs_repeats": "Herhalingen en favorieten", - "follows": "Nieuwe gevolgden", - "moves": "Gebruikermigraties", - "load_older": "Oudere interacties laden" - }, - "remote_user_resolver": { - "searching_for": "Zoeken naar", - "error": "Niet gevonden.", - "remote_user_resolver": "Externe gebruikers-zoeker" - }, - "selectable_list": { - "select_all": "Alles selecteren" - }, - "password_reset": { - "password_reset_required_but_mailer_is_disabled": "Je dient je wachtwoord opnieuw in te stellen, maar wachtwoord reset is uitgeschakeld. Neem contact op met de beheerder van deze instantie.", - "password_reset_required": "Je dient je wachtwoord opnieuw in te stellen om in te kunnen loggen.", - "password_reset_disabled": "Wachtwoord reset is uitgeschakeld. Neem contact op met de beheerder van deze instantie.", - "too_many_requests": "Je hebt het maximaal aantal pogingen bereikt, probeer het later opnieuw.", - "return_home": "Terugkeren naar de home pagina", - "check_email": "Controleer je email inbox voor een link om je wachtwoord opnieuw in te stellen.", - "placeholder": "Je email of gebruikersnaam", - "instruction": "Voer je email adres of gebruikersnaam in. We sturen je een link om je wachtwoord opnieuw in te stellen.", - "password_reset": "Wachtwoord opnieuw instellen", - "forgot_password": "Wachtwoord vergeten?" - }, - "search": { - "no_results": "Geen resultaten", - "people_talking": "{count} personen aan het praten", - "person_talking": "{count} persoon aan het praten", - "hashtags": "Hashtags", - "people": "Personen" - }, - "user_reporting": { - "generic_error": "Er is een fout opgetreden tijdens het verwerken van je verzoek.", - "submit": "Verzenden", - "forward_to": "Doorsturen naar {0}", - "forward_description": "Dit account hoort bij een andere server. Wil je een kopie van het rapport ook daarheen sturen?", - "additional_comments": "Aanvullende opmerkingen", - "add_comment_description": "Het rapport zal naar de moderators van de instantie worden verstuurd. Je kunt hieronder uitleg bijvoegen waarom je dit account wilt aangeven:", - "title": "{0} aangeven" - }, - "status": { - "copy_link": "Link naar status kopiëren", - "status_unavailable": "Status niet beschikbaar", - "unmute_conversation": "Conversatie niet meer negeren", - "mute_conversation": "Conversatie negeren", - "replies_list": "Antwoorden:", - "reply_to": "Antwoorden aan", - "delete_confirm": "Wil je echt deze status verwijderen?", - "pin": "Aan profiel vastmaken", - "pinned": "Vastgezet", - "unpin": "Van profiel losmaken", - "delete": "Status verwijderen", - "repeats": "Herhalingen", - "favorites": "Favorieten", - "thread_muted_and_words": ", heeft woorden:", - "thread_muted": "Thread genegeerd", - "expand": "Uitklappen", - "nsfw": "Gevoelig", - "status_deleted": "Dit bericht is verwijderd", - "hide_content": "Inhoud verbergen", - "show_content": "Inhoud tonen", - "hide_full_subject": "Volledig onderwerp verbergen", - "show_full_subject": "Volledig onderwerp tonen", - "external_source": "Externe bron", - "unbookmark": "Bladwijzer verwijderen", - "bookmark": "Bladwijzer toevoegen" - }, - "time": { - "now_short": "nu", - "now": "zojuist", - "in_past": "{0} geleden", - "in_future": "over {0}", - "unit": { - "years_short": "{0}j", - "year_short": "{0}j", - "years": "{0} jaren", - "year": "{0} jaar", - "weeks_short": "{0}w", - "week_short": "{0}w", - "weeks": "{0} weken", - "week": "{0} week", - "seconds_short": "{0}s", - "second_short": "{0}s", - "seconds": "{0} seconden", - "second": "{0} seconde", - "months_short": "{0}ma", - "month_short": "{0}ma", - "months": "{0} maanden", - "month": "{0} maand", - "minutes_short": "{0}min", - "minute_short": "{0}min", - "minutes": "{0} minuten", - "minute": "{0} minuut", - "hours_short": "{0}u", - "hour_short": "{0}u", - "hours": "{0} uren", - "hour": "{0} uur", - "days_short": "{0}d", - "day_short": "{0}d", - "days": "{0} dagen", - "day": "{0} dag" - } - }, - "shoutbox": { - "title": "Shoutbox" - }, - "errors": { - "storage_unavailable": "Pleroma kon browseropslag niet benaderen. Je login of lokale instellingen worden niet opgeslagen en je kunt onverwachte problemen ondervinden. Probeer cookies te accepteren." - }, - "display_date": { - "today": "Vandaag" - }, - "file_type": { - "file": "Bestand", - "image": "Afbeelding", - "video": "Video", - "audio": "Audio" - }, - "chats": { - "empty_chat_list_placeholder": "Je hebt nog geen chats. Start een nieuwe chat!", - "error_sending_message": "Er is iets fout gegaan tijdens het verzenden van het bericht.", - "error_loading_chat": "Er is iets fout gegaan tijdens het laden van de chat.", - "delete_confirm": "Wil je echt dit bericht verwijderen?", - "more": "Meer", - "empty_message_error": "Kan niet een leeg bericht plaatsen", - "new": "Nieuwe Chat", - "chats": "Chats", - "delete": "Verwijderen", - "message_user": "Spreek met {nickname}", - "you": "Jij:" - } } diff --git a/src/i18n/oc.json b/src/i18n/oc.json index 3eb05049..27210185 100644 --- a/src/i18n/oc.json +++ b/src/i18n/oc.json @@ -1,546 +1,519 @@ { - "chat": { - "title": "Messatjariá" - }, - "exporter": { - "export": "Exportar", - "processing": "Tractament, vos demandarem lèu de telecargar lo fichièr" - }, + "exporter": { + "export": "Exportar", + "processing": "Tractament, vos demandarem lèu de telecargar lo fichièr" + }, "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Servidor mandatari mèdia", - "scope_options": "Nivèls de confidencialitat", - "text_limit": "Limita de tèxte", - "title": "Foncionalitats", - "who_to_follow": "Qual seguir" - }, - "finder": { - "error_fetching_user": "Error pendent la cèrca d’un utilizaire", - "find_user": "Cercar un utilizaire" - }, - "general": { - "apply": "Aplicar", - "submit": "Mandar", - "more": "Mai", - "generic_error": "Una error s’es producha", - "optional": "opcional", - "show_more": "Mostrar mai", - "show_less": "Mostrar mens", - "cancel": "Anullar" - }, - "image_cropper": { - "crop_picture": "Talhar l’imatge", - "save": "Salvar", - "save_without_cropping": "Salvar sens talhada", - "cancel": "Anullar" - }, - "importer": { - "submit": "Mandar", - "success": "Corrèctament importat.", - "error": "Una error s’es producha pendent l’importacion d’aqueste fichièr." - }, - "login": { - "login": "Connexion", - "description": "Connexion via OAuth", - "logout": "Desconnexion", - "password": "Senhal", - "placeholder": "e.g. lain", - "register": "Se marcar", - "username": "Nom d’utilizaire", - "hint": "Connectatz-vos per participar a la discutida" - }, - "media_modal": { - "previous": "Precedent", - "next": "Seguent" - }, - "nav": { - "about": "A prepaus", - "back": "Tornar", - "chat": "Chat local", - "friend_requests": "Demandas de seguiment", - "mentions": "Notificacions", - "dms": "Messatges privats", - "public_tl": "Estatuts locals", - "timeline": "Flux d’actualitat", - "twkn": "Lo malhum conegut", - "user_search": "Cèrca d’utilizaires", - "search": "Cercar", - "who_to_follow": "Qual seguir", - "preferences": "Preferéncias" - }, - "notifications": { - "broken_favorite": "Estatut desconegut, sèm a lo cercar...", - "favorited_you": "a aimat vòstre estatut", - "followed_you": "vos a seguit", - "load_older": "Cargar las notificacions mai ancianas", - "notifications": "Notficacions", - "read": "Legit !", - "repeated_you": "a repetit vòstre estatut", - "no_more_notifications": "Pas mai de notificacions" - }, - "polls": { - "add_poll": "Ajustar un sondatge", - "add_option": "Ajustar d’opcions", - "option": "Opcion", - "votes": "vòtes", - "vote": "Votar", - "type": "Tipe de sondatge", - "single_choice": "Causida unica", - "multiple_choices": "Causida multipla", - "expiry": "Durada del sondatge", - "expires_in": "Lo sondatge s’acabarà {0}", - "expired": "Sondatge acabat {0}", - "not_enough_options": "I a pas pro d’opcions" - }, - "stickers": { - "add_sticker": "Ajustar un pegasolet" - }, - "interactions": { - "favs_repeats": "Repeticions e favorits", - "follows": "Nòus seguidors", - "load_older": "Cargar d’interaccions anterioras" - }, - "post_status": { - "new_status": "Publicar d’estatuts novèls", - "account_not_locked_warning": "Vòstre compte es pas {0}. Qual que siá pòt vos seguir per veire vòstras publicacions destinadas pas qu’a vòstres seguidors.", - "account_not_locked_warning_link": "clavat", - "attachments_sensitive": "Marcar las pèças juntas coma sensiblas", - "content_type": { - "text/plain": "Tèxte brut", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" + "media_proxy": "Servidor mandatari mèdia", + "scope_options": "Nivèls de confidencialitat", + "text_limit": "Limita de tèxte", + "title": "Foncionalitats", + "who_to_follow": "Qual seguir" }, - "content_warning": "Avís de contengut (opcional)", - "default": "Escrivètz aquí vòstre estatut.", - "direct_warning_to_all": "Aquesta publicacion serà pas que visibla pels utilizaires mencionats.", - "direct_warning_to_first_only": "Aquesta publicacion serà pas que visibla pels utilizaires mencionats a la debuta del messatge.", - "posting": "Mandadís", - "scope": { - "direct": "Dirècte - Publicar pels utilizaires mencionats solament", - "private": "Seguidors solament - Publicar pels sols seguidors", - "public": "Public - Publicar pel flux d’actualitat public", - "unlisted": "Pas listat - Publicar pas pel flux public" - } - }, - "registration": { - "bio": "Biografia", - "email": "Adreça de corrièl", - "fullname": "Nom complèt", - "password_confirm": "Confirmar lo senhal", - "registration": "Inscripcion", - "token": "Geton de convidat", - "captcha": "CAPTCHA", - "new_captcha": "Clicatz l’imatge per obténer una nòva captcha", - "username_placeholder": "e.g. lain", - "fullname_placeholder": "e.g. Lain Iwakura", - "bio_placeholder": "e.g.\nHi, Soi lo Lain\nSoi afocada d’animes e vivi al Japan. Benlèu que me coneissètz de the Wired.", - "validations": { - "username_required": "pòt pas èsser void", - "fullname_required": "pòt pas èsser void", - "email_required": "pòt pas èsser void", - "password_required": "pòt pas èsser void", - "password_confirmation_required": "pòt pas èsser void", - "password_confirmation_match": "deu èsser lo meteis senhal" - } - }, - "selectable_list": { - "select_all": "O seleccionar tot" - }, - "settings": { - "app_name": "Nom de l’aplicacion", - "attachmentRadius": "Pèças juntas", - "attachments": "Pèças juntas", - "avatar": "Avatar", - "avatarAltRadius": "Avatars (Notificacions)", - "avatarRadius": "Avatars", - "background": "Rèire plan", - "bio": "Biografia", - "block_export": "Exportar los blocatges", - "block_export_button": "Exportar los blocatges dins un fichièr csv", - "block_import": "Impòrt de blocatges", - "block_import_error": "Error en importar los blocatges", - "blocks_imported": "Blocatges importats ! Lo tractament tardarà un pauc.", - "blocks_tab": "Blocatges", - "btnRadius": "Botons", - "cBlue": "Blau (Respondre, seguir)", - "cGreen": "Verd (Repertir)", - "cOrange": "Irange (Aimar)", - "cRed": "Roge (Anullar)", - "change_password": "Cambiar lo senhal", - "change_password_error": "Una error s’es producha en cambiant lo senhal.", - "changed_password": "Senhal corrèctament cambiat !", - "collapse_subject": "Replegar las publicacions amb de subjèctes", - "composing": "Escritura", - "confirm_new_password": "Confirmatz lo nòu senhal", - "current_avatar": "Vòstre avatar actual", - "current_password": "Senhal actual", - "current_profile_banner": "Bandièra actuala del perfil", - "data_import_export_tab": "Importar / Exportar las donadas", - "default_vis": "Nivèl de visibilitat per defaut", - "delete_account": "Suprimir lo compte", - "delete_account_description": "Suprimir vòstre compte e los messatges per sempre.", - "delete_account_error": "Una error s’es producha en suprimir lo compte. S’aquò ten d’arribar mercés de contactar vòstre administrator d’instància.", - "delete_account_instructions": "Picatz vòstre senhal dins lo camp tèxte çai-jos per confirmar la supression del compte.", - "avatar_size_instruction": "La talha minimum recomandada pels imatges d’avatar es 150x150 pixèls.", - "export_theme": "Enregistrar la preconfiguracion", - "filtering": "Filtratge", - "filtering_explanation": "Totes los estatuts amb aqueles mots seràn en silenci, un mot per linha", - "follow_export": "Exportar los abonaments", - "follow_export_button": "Exportar vòstres abonaments dins un fichièr csv", - "follow_import": "Importar los abonaments", - "follow_import_error": "Error en important los seguidors", - "follows_imported": "Seguidors importats. Lo tractament pòt trigar una estona.", - "foreground": "Endavant", - "general": "General", - "hide_attachments_in_convo": "Rescondre las pèças juntas dins las conversacions", - "hide_attachments_in_tl": "Rescondre las pèças juntas", - "hide_muted_posts": "Rescondre las publicacions del monde rescondut", - "max_thumbnails": "Nombre maximum de vinhetas per publicacion", - "hide_isp": "Amagar lo panèl especial instància", - "preload_images": "Precargar los imatges", - "use_one_click_nsfw": "Dobrir las pèças juntas NSFW amb un clic", - "hide_post_stats": "Amagar las estatisticas de publicacion (ex. lo nombre de favorits)", - "hide_user_stats": "Amagar las estatisticas de l’utilizaire (ex. lo nombre de seguidors)", - "hide_filtered_statuses": "Amagar los estatuts filtrats", - "import_followers_from_a_csv_file": "Importar los seguidors d’un fichièr csv", - "import_theme": "Cargar un tèma", - "inputRadius": "Camps tèxte", - "checkboxRadius": "Casas de marcar", - "instance_default": "(defaut : {value})", - "instance_default_simple": "(defaut)", - "interface": "Interfàcia", - "interfaceLanguage": "Lenga de l’interfàcia", - "invalid_theme_imported": "Lo fichièr seleccionat es pas un tèma Pleroma valid. Cap de cambiament es estat fach a vòstre tèma.", - "limited_availability": "Pas disponible per vòstre navigador", - "links": "Ligams", - "lock_account_description": "Limitar vòstre compte als seguidors acceptats solament", - "loop_video": "Bocla vidèo", - "loop_video_silent_only": "Legir en bocla solament las vidèos sens son (coma los « Gifs » de Mastodon)", - "mutes_tab": "Agamats", - "interactions_tab": "Interaccions", - "play_videos_in_modal": "Legir las vidèos dirèctament dins la visualizaira mèdia", - "use_contain_fit": "Talhar pas las pèças juntas per las vinhetas", - "name": "Nom", - "name_bio": "Nom & Bio", - "new_password": "Nòu senhal", - "notification_visibility_follows": "Abonaments", - "notification_visibility_likes": "Aimar", - "notification_visibility_mentions": "Mencions", - "notification_visibility_repeats": "Repeticions", - "notification_visibility": "Tipes de notificacion de mostrar", - "no_rich_text_description": "Netejar lo format tèxte de totas las publicacions", - "no_blocks": "Cap de blocatge", - "no_mutes": "Cap d’amagat", - "hide_follows_description": "Mostrar pas qual seguissi", - "hide_followers_description": "Mostrar pas qual me seguisson", - "show_admin_badge": "Mostrar lo badge Admin badge al perfil meu", - "show_moderator_badge": "Mostrar lo badge Moderator al perfil meu", - "nsfw_clickthrough": "Activar lo clic per mostrar los imatges marcats coma pels adults o sensibles", - "oauth_tokens": "Listats OAuth", - "token": "Geton", - "refresh_token": "Actualizar lo geton", - "valid_until": "Valid fins a", - "revoke_token": "Revocar", - "panelRadius": "Panèls", - "pause_on_unfocused": "Pausar la difusion quand l’onglet es pas seleccionat", - "presets": "Pre-enregistrats", - "profile_background": "Imatge de fons", - "profile_banner": "Bandièra del perfil", - "profile_tab": "Perfil", - "radii_help": "Configurar los caires arredondits de l’interfàcia (en pixèls)", - "replies_in_timeline": "Responsas del flux", - "reply_visibility_all": "Mostrar totas las responsas", - "reply_visibility_following": "Mostrar pas que las responsas que me son destinada a ieu o un utilizaire que seguissi", - "reply_visibility_self": "Mostrar pas que las responsas que me son destinadas", - "saving_err": "Error en enregistrant los paramètres", - "saving_ok": "Paramètres enregistrats", - "search_user_to_block": "Cercatz qual volètz blocar", - "search_user_to_mute": "Cercatz qual volètz rescondre", - "security_tab": "Seguretat", - "scope_copy": "Copiar lo nivèl de confidencialitat per las responsas (Totjorn aissí pels Messatges Dirèctes)", - "minimal_scopes_mode": "Minimizar lo nombre d’opcions per publicacion", - "set_new_avatar": "Definir un nòu avatar", - "set_new_profile_background": "Definir un nòu fons de perfil", - "set_new_profile_banner": "Definir una nòva bandièra de perfil", - "settings": "Paramètres", - "subject_input_always_show": "Totjorn mostrar lo camp de subjècte", - "subject_line_behavior": "Copiar lo subjècte per las responsas", - "subject_line_email": "Coma los corrièls : \"re: subjècte\"", - "subject_line_mastodon": "Coma mastodon : copiar tal coma es", - "subject_line_noop": "Copiar pas", - "post_status_content_type": "Publicar lo tipe de contengut dels estatuts", - "stop_gifs": "Lançar los GIFs al subrevòl", - "streaming": "Activar lo cargament automatic dels novèls estatus en anar amont", - "text": "Tèxte", - "theme": "Tèma", - "theme_help_v2_1": "Podètz tanben remplaçar la color d’unes compausants en clicant la case, utilizatz lo boton \"O escafar tot\" per escafar totes las subrecargadas.", - "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", - "theme_help": "Emplegatz los còdis de color hex (#rrggbb) per personalizar vòstre tèma de color.", - "tooltipRadius": "Astúcias/alèrtas", - "upload_a_photo": "Enviar una fotografia", - "user_settings": "Paramètres utilizaire", - "values": { - "false": "non", - "true": "òc" + "finder": { + "error_fetching_user": "Error pendent la cèrca d’un utilizaire", + "find_user": "Cercar un utilizaire" }, - "notifications": "Notificacions", - "notification_mutes": "Per recebre pas mai d’un utilizaire en particular, botatz-lo en silenci.", - "notification_blocks": "Blocar un utilizaire arrèsta totas las notificacions tan coma quitar de los seguir.", - "enable_web_push_notifications": "Activar las notificacions web push", - "style": { - "switcher": { - "keep_color": "Gardar las colors", - "keep_shadows": "Gardar las ombras", - "keep_opacity": "Gardar l’opacitat", - "keep_roundness": "Gardar la redondetat", - "keep_fonts": "Gardar las polissas", - "save_load_hint": "Las opcions « Gardar » permeton de servar las opcions configuradas actualament quand seleccionatz o cargatz un tèma, permeton tanben d’enregistrar aquelas opcions quand exportatz un tèma. Quand totas las casas son pas marcadas, l’exportacion de tèma o enregistrarà tot.", - "reset": "Restablir", - "clear_all": "O escafar tot", - "clear_opacity": "Escafar l’opacitat" - }, - "common": { - "color": "Color", - "opacity": "Opacitat", - "contrast": { - "hint": "Lo coeficient de contraste es de {ratio}. Dòna {level} {context}", - "level": { - "aa": "un nivèl AA minimum recomandat", - "aaa": "un nivèl AAA recomandat", - "bad": "pas un nivèl d’accessibilitat recomandat" - }, - "context": { - "18pt": "pel tèxte grand (18pt+)", - "text": "pel tèxte" - } - } - }, - "common_colors": { - "_tab_label": "Comun", - "main": "Colors comunas", - "foreground_hint": "Vejatz « Avançat » per mai de paramètres detalhats", - "rgbo": "Icònas, accents, badges" - }, - "advanced_colors": { - "_tab_label": "Avançat", - "alert": "Rèire plan d’alèrtas", - "alert_error": "Error", - "badge": "Rèire plan dels badges", - "badge_notification": "Notificacion", - "panel_header": "Bandièra del tablèu de bòrd", - "top_bar": "Barra amont", - "borders": "Caires", - "buttons": "Botons", - "inputs": "Camps tèxte", - "faint_text": "Tèxte descolorit" - }, - "radii": { - "_tab_label": "Redondetat" - }, - "shadows": { - "_tab_label": "Ombra e luminositat", - "component": "Compausant", - "override": "Subrecargar", - "shadow_id": "Ombra #{value}", - "blur": "Fosc", - "spread": "Espandiment", - "inset": "Incrustacion", - "hint": "Per las ombras podètz tanben utilizar --variable coma valor de color per emplegar una variable CSS3. Notatz que lo paramètre d’opacitat foncionarà pas dins aquel cas.", - "filter_hint": { - "always_drop_shadow": "Avertiment, aquel ombra utiliza totjorn {0} quand lo navigator es compatible.", - "drop_shadow_syntax": "{0} es pas compatible amb lo paramètre {1} e lo mot clau {2}.", - "avatar_inset": "Notatz que combinar d’ombras incrustadas e pas incrustadas pòt donar de resultats inesperats amb los avatars transparents.", - "spread_zero": "L’ombra amb un espandiment de > 0 apareisserà coma reglat a zèro", - "inset_classic": "L’ombra d’incrustacion utilizarà {0}" + "general": { + "apply": "Aplicar", + "cancel": "Anullar", + "generic_error": "Una error s’es producha", + "more": "Mai", + "optional": "opcional", + "show_less": "Mostrar mens", + "show_more": "Mostrar mai", + "submit": "Mandar" + }, + "image_cropper": { + "cancel": "Anullar", + "crop_picture": "Talhar l’imatge", + "save": "Salvar", + "save_without_cropping": "Salvar sens talhada" + }, + "importer": { + "error": "Una error s’es producha pendent l’importacion d’aqueste fichièr.", + "submit": "Mandar", + "success": "Corrèctament importat." + }, + "interactions": { + "favs_repeats": "Repeticions e favorits", + "follows": "Nòus seguidors", + "load_older": "Cargar d’interaccions anterioras" + }, + "login": { + "description": "Connexion via OAuth", + "hint": "Connectatz-vos per participar a la discutida", + "login": "Connexion", + "logout": "Desconnexion", + "password": "Senhal", + "placeholder": "e.g. lain", + "register": "Se marcar", + "username": "Nom d’utilizaire" + }, + "media_modal": { + "next": "Seguent", + "previous": "Precedent" + }, + "nav": { + "about": "A prepaus", + "back": "Tornar", + "dms": "Messatges privats", + "friend_requests": "Demandas de seguiment", + "mentions": "Notificacions", + "preferences": "Preferéncias", + "public_tl": "Estatuts locals", + "search": "Cercar", + "timeline": "Flux d’actualitat", + "twkn": "Lo malhum conegut", + "user_search": "Cèrca d’utilizaires", + "who_to_follow": "Qual seguir" + }, + "notifications": { + "broken_favorite": "Estatut desconegut, sèm a lo cercar...", + "favorited_you": "a aimat vòstre estatut", + "followed_you": "vos a seguit", + "load_older": "Cargar las notificacions mai ancianas", + "no_more_notifications": "Pas mai de notificacions", + "notifications": "Notficacions", + "read": "Legit !", + "repeated_you": "a repetit vòstre estatut" + }, + "polls": { + "add_option": "Ajustar d’opcions", + "add_poll": "Ajustar un sondatge", + "expired": "Sondatge acabat {0}", + "expires_in": "Lo sondatge s’acabarà {0}", + "expiry": "Durada del sondatge", + "multiple_choices": "Causida multipla", + "not_enough_options": "I a pas pro d’opcions", + "option": "Opcion", + "single_choice": "Causida unica", + "type": "Tipe de sondatge", + "vote": "Votar", + "votes": "vòtes" + }, + "post_status": { + "account_not_locked_warning": "Vòstre compte es pas {0}. Qual que siá pòt vos seguir per veire vòstras publicacions destinadas pas qu’a vòstres seguidors.", + "account_not_locked_warning_link": "clavat", + "attachments_sensitive": "Marcar las pèças juntas coma sensiblas", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Tèxte brut" }, - "components": { - "panel": "Tablèu", - "panelHeader": "Bandièra del tablèu", - "topBar": "Barra amont", - "avatar": "Utilizar l’avatar (vista perfil)", - "avatarStatus": "Avatar de l’utilizaire (afichatge publicacion)", - "popup": "Fenèstras sorgissentas e astúcias", - "button": "Boton", - "buttonHover": "Boton (en passar la mirga)", - "buttonPressed": "Boton (en quichar)", - "buttonPressedHover": "Boton (en quichar e passar)", - "input": "Camp tèxte" + "content_warning": "Avís de contengut (opcional)", + "default": "Escrivètz aquí vòstre estatut.", + "direct_warning_to_all": "Aquesta publicacion serà pas que visibla pels utilizaires mencionats.", + "direct_warning_to_first_only": "Aquesta publicacion serà pas que visibla pels utilizaires mencionats a la debuta del messatge.", + "new_status": "Publicar d’estatuts novèls", + "posting": "Mandadís", + "scope": { + "direct": "Dirècte - Publicar pels utilizaires mencionats solament", + "private": "Seguidors solament - Publicar pels sols seguidors", + "public": "Public - Publicar pel flux d’actualitat public", + "unlisted": "Pas listat - Publicar pas pel flux public" } - }, - "fonts": { - "_tab_label": "Polissas", - "help": "Selecionatz la polissa d’utilizar pels elements de l’UI. Per « Personalizada » vos cal picar lo nom exacte tal coma apareis sul sistèma.", - "components": { - "interface": "Interfàcia", - "input": "Camps tèxte", - "post": "Tèxte de publicacion", - "postCode": "Tèxte Monospaced dins las publicacion (tèxte formatat)" + }, + "registration": { + "bio": "Biografia", + "bio_placeholder": "e.g.\nHi, Soi lo Lain\nSoi afocada d’animes e vivi al Japan. Benlèu que me coneissètz de the Wired.", + "captcha": "CAPTCHA", + "email": "Adreça de corrièl", + "fullname": "Nom complèt", + "fullname_placeholder": "e.g. Lain Iwakura", + "new_captcha": "Clicatz l’imatge per obténer una nòva captcha", + "password_confirm": "Confirmar lo senhal", + "registration": "Inscripcion", + "token": "Geton de convidat", + "username_placeholder": "e.g. lain", + "validations": { + "email_required": "pòt pas èsser void", + "fullname_required": "pòt pas èsser void", + "password_confirmation_match": "deu èsser lo meteis senhal", + "password_confirmation_required": "pòt pas èsser void", + "password_required": "pòt pas èsser void", + "username_required": "pòt pas èsser void" + } + }, + "search": { + "hashtags": "Etiquetas", + "no_results": "Cap de resultats", + "people": "Gent", + "people_talking": "{count} personas ne parlan", + "person_talking": "{count} persona ne parla" + }, + "selectable_list": { + "select_all": "O seleccionar tot" + }, + "settings": { + "app_name": "Nom de l’aplicacion", + "attachmentRadius": "Pèças juntas", + "attachments": "Pèças juntas", + "avatar": "Avatar", + "avatarAltRadius": "Avatars (Notificacions)", + "avatarRadius": "Avatars", + "avatar_size_instruction": "La talha minimum recomandada pels imatges d’avatar es 150x150 pixèls.", + "background": "Rèire plan", + "bio": "Biografia", + "block_export": "Exportar los blocatges", + "block_export_button": "Exportar los blocatges dins un fichièr csv", + "block_import": "Impòrt de blocatges", + "block_import_error": "Error en importar los blocatges", + "blocks_imported": "Blocatges importats ! Lo tractament tardarà un pauc.", + "blocks_tab": "Blocatges", + "btnRadius": "Botons", + "cBlue": "Blau (Respondre, seguir)", + "cGreen": "Verd (Repertir)", + "cOrange": "Irange (Aimar)", + "cRed": "Roge (Anullar)", + "change_password": "Cambiar lo senhal", + "change_password_error": "Una error s’es producha en cambiant lo senhal.", + "changed_password": "Senhal corrèctament cambiat !", + "checkboxRadius": "Casas de marcar", + "collapse_subject": "Replegar las publicacions amb de subjèctes", + "composing": "Escritura", + "confirm_new_password": "Confirmatz lo nòu senhal", + "current_avatar": "Vòstre avatar actual", + "current_password": "Senhal actual", + "data_import_export_tab": "Importar / Exportar las donadas", + "default_vis": "Nivèl de visibilitat per defaut", + "delete_account": "Suprimir lo compte", + "delete_account_description": "Suprimir vòstre compte e los messatges per sempre.", + "delete_account_error": "Una error s’es producha en suprimir lo compte. S’aquò ten d’arribar mercés de contactar vòstre administrator d’instància.", + "delete_account_instructions": "Picatz vòstre senhal dins lo camp tèxte çai-jos per confirmar la supression del compte.", + "enable_web_push_notifications": "Activar las notificacions web push", + "export_theme": "Enregistrar la preconfiguracion", + "filtering": "Filtratge", + "filtering_explanation": "Totes los estatuts amb aqueles mots seràn en silenci, un mot per linha", + "follow_export": "Exportar los abonaments", + "follow_export_button": "Exportar vòstres abonaments dins un fichièr csv", + "follow_import": "Importar los abonaments", + "follow_import_error": "Error en important los seguidors", + "follows_imported": "Seguidors importats. Lo tractament pòt trigar una estona.", + "foreground": "Endavant", + "general": "General", + "hide_attachments_in_convo": "Rescondre las pèças juntas dins las conversacions", + "hide_attachments_in_tl": "Rescondre las pèças juntas", + "hide_filtered_statuses": "Amagar los estatuts filtrats", + "hide_followers_description": "Mostrar pas qual me seguisson", + "hide_follows_description": "Mostrar pas qual seguissi", + "hide_isp": "Amagar lo panèl especial instància", + "hide_muted_posts": "Rescondre las publicacions del monde rescondut", + "hide_post_stats": "Amagar las estatisticas de publicacion (ex. lo nombre de favorits)", + "hide_user_stats": "Amagar las estatisticas de l’utilizaire (ex. lo nombre de seguidors)", + "import_followers_from_a_csv_file": "Importar los seguidors d’un fichièr csv", + "import_theme": "Cargar un tèma", + "inputRadius": "Camps tèxte", + "instance_default": "(defaut : {value})", + "instance_default_simple": "(defaut)", + "interface": "Interfàcia", + "interfaceLanguage": "Lenga de l’interfàcia", + "invalid_theme_imported": "Lo fichièr seleccionat es pas un tèma Pleroma valid. Cap de cambiament es estat fach a vòstre tèma.", + "limited_availability": "Pas disponible per vòstre navigador", + "links": "Ligams", + "lock_account_description": "Limitar vòstre compte als seguidors acceptats solament", + "loop_video": "Bocla vidèo", + "loop_video_silent_only": "Legir en bocla solament las vidèos sens son (coma los « Gifs » de Mastodon)", + "max_thumbnails": "Nombre maximum de vinhetas per publicacion", + "minimal_scopes_mode": "Minimizar lo nombre d’opcions per publicacion", + "mutes_tab": "Agamats", + "name": "Nom", + "name_bio": "Nom & Bio", + "new_password": "Nòu senhal", + "no_blocks": "Cap de blocatge", + "no_mutes": "Cap d’amagat", + "no_rich_text_description": "Netejar lo format tèxte de totas las publicacions", + "notification_blocks": "Blocar un utilizaire arrèsta totas las notificacions tan coma quitar de los seguir.", + "notification_mutes": "Per recebre pas mai d’un utilizaire en particular, botatz-lo en silenci.", + "notification_visibility": "Tipes de notificacion de mostrar", + "notification_visibility_follows": "Abonaments", + "notification_visibility_likes": "Aimar", + "notification_visibility_mentions": "Mencions", + "notification_visibility_repeats": "Repeticions", + "notifications": "Notificacions", + "nsfw_clickthrough": "Activar lo clic per mostrar los imatges marcats coma pels adults o sensibles", + "oauth_tokens": "Listats OAuth", + "panelRadius": "Panèls", + "pause_on_unfocused": "Pausar la difusion quand l’onglet es pas seleccionat", + "play_videos_in_modal": "Legir las vidèos dirèctament dins la visualizaira mèdia", + "post_status_content_type": "Publicar lo tipe de contengut dels estatuts", + "preload_images": "Precargar los imatges", + "presets": "Pre-enregistrats", + "profile_background": "Imatge de fons", + "profile_banner": "Bandièra del perfil", + "profile_tab": "Perfil", + "radii_help": "Configurar los caires arredondits de l’interfàcia (en pixèls)", + "refresh_token": "Actualizar lo geton", + "replies_in_timeline": "Responsas del flux", + "reply_visibility_all": "Mostrar totas las responsas", + "reply_visibility_following": "Mostrar pas que las responsas que me son destinada a ieu o un utilizaire que seguissi", + "reply_visibility_self": "Mostrar pas que las responsas que me son destinadas", + "revoke_token": "Revocar", + "saving_err": "Error en enregistrant los paramètres", + "saving_ok": "Paramètres enregistrats", + "scope_copy": "Copiar lo nivèl de confidencialitat per las responsas (Totjorn aissí pels Messatges Dirèctes)", + "search_user_to_block": "Cercatz qual volètz blocar", + "search_user_to_mute": "Cercatz qual volètz rescondre", + "security_tab": "Seguretat", + "set_new_avatar": "Definir un nòu avatar", + "set_new_profile_background": "Definir un nòu fons de perfil", + "set_new_profile_banner": "Definir una nòva bandièra de perfil", + "settings": "Paramètres", + "show_admin_badge": "Mostrar lo badge Admin badge al perfil meu", + "show_moderator_badge": "Mostrar lo badge Moderator al perfil meu", + "stop_gifs": "Lançar los GIFs al subrevòl", + "streaming": "Activar lo cargament automatic dels novèls estatus en anar amont", + "style": { + "advanced_colors": { + "_tab_label": "Avançat", + "alert": "Rèire plan d’alèrtas", + "alert_error": "Error", + "badge": "Rèire plan dels badges", + "badge_notification": "Notificacion", + "borders": "Caires", + "buttons": "Botons", + "faint_text": "Tèxte descolorit", + "inputs": "Camps tèxte", + "panel_header": "Bandièra del tablèu de bòrd", + "top_bar": "Barra amont" + }, + "common": { + "color": "Color", + "contrast": { + "context": { + "18pt": "pel tèxte grand (18pt+)", + "text": "pel tèxte" + }, + "hint": "Lo coeficient de contraste es de {ratio}. Dòna {level} {context}", + "level": { + "aa": "un nivèl AA minimum recomandat", + "aaa": "un nivèl AAA recomandat", + "bad": "pas un nivèl d’accessibilitat recomandat" + } + }, + "opacity": "Opacitat" + }, + "common_colors": { + "_tab_label": "Comun", + "foreground_hint": "Vejatz « Avançat » per mai de paramètres detalhats", + "main": "Colors comunas", + "rgbo": "Icònas, accents, badges" + }, + "fonts": { + "_tab_label": "Polissas", + "components": { + "input": "Camps tèxte", + "interface": "Interfàcia", + "post": "Tèxte de publicacion", + "postCode": "Tèxte Monospaced dins las publicacion (tèxte formatat)" + }, + "custom": "Personalizada", + "family": "Nom de la polissa", + "help": "Selecionatz la polissa d’utilizar pels elements de l’UI. Per « Personalizada » vos cal picar lo nom exacte tal coma apareis sul sistèma.", + "size": "Talha (en px)", + "weight": "Largor (gras)" + }, + "preview": { + "button": "Boton", + "checkbox": "Ai legit los tèrmes e condicions d’utilizacion", + "content": "Contengut", + "error": "Error d’exemple", + "faint_link": "manual d’ajuda", + "fine_print": "Legissètz nòstre {0} per legir pas res d’util !", + "header": "Apercebut", + "header_faint": "Va plan", + "input": "arribada al país.", + "link": "un pichon ligam simpatic", + "mono": "contengut", + "text": "A tròç de mai de {0} e {1}" + }, + "radii": { + "_tab_label": "Redondetat" + }, + "shadows": { + "_tab_label": "Ombra e luminositat", + "blur": "Fosc", + "component": "Compausant", + "components": { + "avatar": "Utilizar l’avatar (vista perfil)", + "avatarStatus": "Avatar de l’utilizaire (afichatge publicacion)", + "button": "Boton", + "buttonHover": "Boton (en passar la mirga)", + "buttonPressed": "Boton (en quichar)", + "buttonPressedHover": "Boton (en quichar e passar)", + "input": "Camp tèxte", + "panel": "Tablèu", + "panelHeader": "Bandièra del tablèu", + "popup": "Fenèstras sorgissentas e astúcias", + "topBar": "Barra amont" + }, + "filter_hint": { + "always_drop_shadow": "Avertiment, aquel ombra utiliza totjorn {0} quand lo navigator es compatible.", + "avatar_inset": "Notatz que combinar d’ombras incrustadas e pas incrustadas pòt donar de resultats inesperats amb los avatars transparents.", + "drop_shadow_syntax": "{0} es pas compatible amb lo paramètre {1} e lo mot clau {2}.", + "inset_classic": "L’ombra d’incrustacion utilizarà {0}", + "spread_zero": "L’ombra amb un espandiment de > 0 apareisserà coma reglat a zèro" + }, + "inset": "Incrustacion", + "override": "Subrecargar", + "shadow_id": "Ombra #{value}", + "spread": "Espandiment" + }, + "switcher": { + "clear_all": "O escafar tot", + "clear_opacity": "Escafar l’opacitat", + "keep_color": "Gardar las colors", + "keep_fonts": "Gardar las polissas", + "keep_opacity": "Gardar l’opacitat", + "keep_roundness": "Gardar la redondetat", + "keep_shadows": "Gardar las ombras", + "reset": "Restablir", + "save_load_hint": "Las opcions « Gardar » permeton de servar las opcions configuradas actualament quand seleccionatz o cargatz un tèma, permeton tanben d’enregistrar aquelas opcions quand exportatz un tèma. Quand totas las casas son pas marcadas, l’exportacion de tèma o enregistrarà tot." + } }, - "family": "Nom de la polissa", - "size": "Talha (en px)", - "weight": "Largor (gras)", - "custom": "Personalizada" - }, - "preview": { - "header": "Apercebut", - "content": "Contengut", - "error": "Error d’exemple", - "button": "Boton", - "text": "A tròç de mai de {0} e {1}", - "mono": "contengut", - "input": "arribada al país.", - "faint_link": "manual d’ajuda", - "fine_print": "Legissètz nòstre {0} per legir pas res d’util !", - "header_faint": "Va plan", - "checkbox": "Ai legit los tèrmes e condicions d’utilizacion", - "link": "un pichon ligam simpatic" - } + "subject_input_always_show": "Totjorn mostrar lo camp de subjècte", + "subject_line_behavior": "Copiar lo subjècte per las responsas", + "subject_line_email": "Coma los corrièls : \"re: subjècte\"", + "subject_line_mastodon": "Coma mastodon : copiar tal coma es", + "subject_line_noop": "Copiar pas", + "text": "Tèxte", + "theme": "Tèma", + "theme_help": "Emplegatz los còdis de color hex (#rrggbb) per personalizar vòstre tèma de color.", + "theme_help_v2_1": "Podètz tanben remplaçar la color d’unes compausants en clicant la case, utilizatz lo boton \"O escafar tot\" per escafar totes las subrecargadas.", + "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", + "token": "Geton", + "tooltipRadius": "Astúcias/alèrtas", + "upload_a_photo": "Enviar una fotografia", + "use_contain_fit": "Talhar pas las pèças juntas per las vinhetas", + "use_one_click_nsfw": "Dobrir las pèças juntas NSFW amb un clic", + "user_settings": "Paramètres utilizaire", + "valid_until": "Valid fins a", + "values": { + "false": "non", + "true": "òc" + }, + "version": { + "backend_version": "Version Backend", + "frontend_version": "Version Frontend", + "title": "Version" + } }, - "version": { - "title": "Version", - "backend_version": "Version Backend", - "frontend_version": "Version Frontend" - } - }, - "time": { - "now": "ara meteis", - "now_short": "ara meteis", - "in_future": "d’aquí {0}", - "in_past": "fa {0}", - "unit": { - "day": "{0} jorn", - "days": "{0} jorns", - "day_short": "{0} jorn", - "days_short": "{0} jorns", - "hour": "{0} ora", - "hours": "{0} oras", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minuta", - "minutes": "{0} minutas", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} mes", - "months": "{0} meses", - "month_short": "{0} mes", - "months_short": "{0} meses", - "second": "{0} segonda", - "seconds": "{0} segondas", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} setmana.", - "weeks": "{0} setmanas.", - "week_short": "{0} setm.", - "weeks_short": "{0} setm.", - "year": "{0} an", - "years": "{0} ans", - "year_short": "{0} an", - "years_short": "{0} ans" - } - }, - "timeline": { - "collapse": "Tampar", - "conversation": "Conversacion", - "error_fetching": "Error en cercant de mesas a jorn", - "load_older": "Ne veire mai", - "no_retweet_hint": "Las publicacions marcadas pels seguidors solament o dirèctas se pòdon pas repetir", - "repeated": "repetit", - "show_new": "Ne veire mai", - "up_to_date": "A jorn", - "no_more_statuses": "Pas mai d’estatuts", - "no_statuses": "Cap d’estatuts" - }, - "status": { - "favorites": "Li a agradat", - "repeats": "A repetit", - "reply_to": "Respond a", - "replies_list": "Responsas :" - }, - "user_card": { - "approve": "Validar", - "block": "Blocar", - "blocked": "Blocat !", - "deny": "Refusar", - "favorites": "Favorits", - "follow": "Seguir", - "follow_sent": "Demanda enviada !", - "follow_progress": "Demanda…", - "follow_unfollow": "Quitar de seguir", - "followees": "Abonaments", - "followers": "Seguidors", - "following": "Seguit !", - "follows_you": "Vos sèc !", - "its_you": "Sètz vos !", - "media": "Mèdia", - "mute": "Amagar", - "muted": "Amagat", - "per_day": "per jorn", - "remote_follow": "Seguir a distància", - "statuses": "Estatuts", - "subscribe": "S’abonar", - "unsubscribe": "Se desabonar", - "unblock": "Desblocar", - "unblock_progress": "Desblocatge...", - "block_progress": "Blocatge...", - "unmute": "Tornar mostrar", - "unmute_progress": "Afichatge...", - "mute_progress": "A amagar...", - "admin_menu": { - "moderation": "Moderacion", - "grant_admin": "Passar Admin", - "revoke_admin": "Revocar Admin", - "grant_moderator": "Passar Moderator", - "revoke_moderator": "Revocar Moderator", - "activate_account": "Activar lo compte", - "deactivate_account": "Desactivar lo compte", - "delete_account": "Suprimir lo compte", - "force_nsfw": "Marcar totas las publicacions coma sensiblas", - "strip_media": "Tirar los mèdias de las publicacions", - "force_unlisted": "Forçar las publicacions en pas-listadas", - "sandbox": "Forçar las publicacions en seguidors solament", - "disable_remote_subscription": "Desactivar lo seguiment d’utilizaire d’instàncias alonhadas", - "disable_any_subscription": "Desactivar tot seguiment", - "quarantine": "Defendre la federacion de las publicacions de l’utilizaire", - "delete_user": "Suprimir l’utilizaire" - } - }, - "user_profile": { - "timeline_title": "Flux utilizaire", - "profile_does_not_exist": "Aqueste perfil existís pas.", - "profile_loading_error": "Una error s’es producha en cargant aqueste perfil." - }, - "who_to_follow": { - "more": "Mai", - "who_to_follow": "Qual seguir" - }, - "tool_tip": { - "media_upload": "Enviar un mèdia", - "repeat": "Repetir", - "reply": "Respondre", - "favorite": "aimar", - "user_settings": "Paramètres utilizaire" - }, - "upload":{ - "error": { - "base": "Mandadís fracassat.", - "file_too_big": "Fichièr tròp grand [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Tornatz ensajar mai tard" + "status": { + "favorites": "Li a agradat", + "repeats": "A repetit", + "replies_list": "Responsas :", + "reply_to": "Respond a" }, - "file_size_units": { - "B": "o", - "KiB": "Kio", - "MiB": "Mio", - "GiB": "Gio", - "TiB": "Tio" + "time": { + "in_future": "d’aquí {0}", + "in_past": "fa {0}", + "now": "ara meteis", + "now_short": "ara meteis", + "unit": { + "days": "{0} jorns", + "days_short": "{0} jorns", + "hours": "{0} oras", + "hours_short": "{0}h", + "minutes": "{0} minutas", + "minutes_short": "{0}min", + "months": "{0} meses", + "months_short": "{0} meses", + "seconds": "{0} segondas", + "seconds_short": "{0}s", + "weeks": "{0} setmanas.", + "weeks_short": "{0} setm.", + "years": "{0} ans", + "years_short": "{0} ans" + } + }, + "timeline": { + "collapse": "Tampar", + "conversation": "Conversacion", + "load_older": "Ne veire mai", + "no_more_statuses": "Pas mai d’estatuts", + "no_retweet_hint": "Las publicacions marcadas pels seguidors solament o dirèctas se pòdon pas repetir", + "no_statuses": "Cap d’estatuts", + "repeated": "repetit", + "show_new": "Ne veire mai", + "up_to_date": "A jorn" + }, + "tool_tip": { + "favorite": "aimar", + "media_upload": "Enviar un mèdia", + "repeat": "Repetir", + "reply": "Respondre", + "user_settings": "Paramètres utilizaire" + }, + "upload": { + "error": { + "base": "Mandadís fracassat.", + "default": "Tornatz ensajar mai tard", + "file_too_big": "Fichièr tròp grand [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "o", + "GiB": "Gio", + "KiB": "Kio", + "MiB": "Mio", + "TiB": "Tio" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Activar lo compte", + "deactivate_account": "Desactivar lo compte", + "delete_account": "Suprimir lo compte", + "delete_user": "Suprimir l’utilizaire", + "disable_any_subscription": "Desactivar tot seguiment", + "disable_remote_subscription": "Desactivar lo seguiment d’utilizaire d’instàncias alonhadas", + "force_nsfw": "Marcar totas las publicacions coma sensiblas", + "force_unlisted": "Forçar las publicacions en pas-listadas", + "grant_admin": "Passar Admin", + "grant_moderator": "Passar Moderator", + "moderation": "Moderacion", + "quarantine": "Defendre la federacion de las publicacions de l’utilizaire", + "revoke_admin": "Revocar Admin", + "revoke_moderator": "Revocar Moderator", + "sandbox": "Forçar las publicacions en seguidors solament", + "strip_media": "Tirar los mèdias de las publicacions" + }, + "approve": "Validar", + "block": "Blocar", + "block_progress": "Blocatge...", + "blocked": "Blocat !", + "deny": "Refusar", + "favorites": "Favorits", + "follow": "Seguir", + "follow_progress": "Demanda…", + "follow_sent": "Demanda enviada !", + "follow_unfollow": "Quitar de seguir", + "followees": "Abonaments", + "followers": "Seguidors", + "following": "Seguit !", + "follows_you": "Vos sèc !", + "its_you": "Sètz vos !", + "media": "Mèdia", + "mute": "Amagar", + "mute_progress": "A amagar...", + "muted": "Amagat", + "per_day": "per jorn", + "remote_follow": "Seguir a distància", + "statuses": "Estatuts", + "subscribe": "S’abonar", + "unblock": "Desblocar", + "unblock_progress": "Desblocatge...", + "unmute": "Tornar mostrar", + "unmute_progress": "Afichatge...", + "unsubscribe": "Se desabonar" + }, + "user_profile": { + "profile_does_not_exist": "Aqueste perfil existís pas.", + "profile_loading_error": "Una error s’es producha en cargant aqueste perfil.", + "timeline_title": "Flux utilizaire" + }, + "who_to_follow": { + "more": "Mai", + "who_to_follow": "Qual seguir" } - }, - "search": { - "people": "Gent", - "hashtags": "Etiquetas", - "person_talking": "{count} persona ne parla", - "people_talking": "{count} personas ne parlan", - "no_results": "Cap de resultats" - } -} +} \ No newline at end of file diff --git a/src/i18n/pl.json b/src/i18n/pl.json index 7fe1051a..310ff6de 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -1,867 +1,840 @@ { - "about": { - "mrf": { - "federation": "Federacja", - "keyword": { - "keyword_policies": "Zasady słów kluczowych", - "ftl_removal": "Usunięcie z \"Całej znanej sieci\"", - "reject": "Odrzucanie", - "replace": "Zastąpienie", - "is_replaced_by": "→" - }, - "mrf_policies": "Włączone zasady MRF", - "mrf_policies_desc": "Zasady MRF zmieniają zachowanie federowania instancji. Następujące zasady są włączone:", - "simple": { - "simple_policies": "Zasady specyficzne dla instancji", - "accept": "Akceptowanie", - "accept_desc": "Ta instancja akceptuje tylko posty z wymienionych instancji:", - "reject": "Odrzucanie", - "reject_desc": "Ta instancja odrzuca posty z wymienionych instancji:", - "quarantine": "Kwarantanna", - "quarantine_desc": "Ta instancja wysyła tylko publiczne posty do wymienionych instancji:", - "ftl_removal": "Usunięcie z „Całej znanej sieci”", - "ftl_removal_desc": "Ta instancja usuwa wymienionych instancje z „Całej znanej sieci”:", - "media_removal": "Usuwanie multimediów", - "media_removal_desc": "Ta instancja usuwa multimedia z postów od wymienionych instancji:", - "media_nsfw": "Multimedia ustawione jako wrażliwe", - "media_nsfw_desc": "Ta instancja wymusza, by multimedia z wymienionych instancji były ustawione jako wrażliwe:" - } - }, - "staff": "Administracja" - }, - "chat": { - "title": "Czat" - }, - "domain_mute_card": { - "mute": "Wycisz", - "mute_progress": "Wyciszam…", - "unmute": "Odcisz", - "unmute_progress": "Odciszam…" - }, - "exporter": { - "export": "Eksportuj", - "processing": "Przetwarzam, za chwilę zostaniesz zapytany(-na) o ściągnięcie pliku" - }, - "features_panel": { - "chat": "Czat", - "gopher": "Gopher", - "media_proxy": "Proxy mediów", - "scope_options": "Ustawienia zakresu", - "text_limit": "Limit tekstu", - "title": "Funkcje", - "who_to_follow": "Propozycje obserwacji", - "pleroma_chat_messages": "Czat Pleromy", - "upload_limit": "Limit wysyłania" - }, - "finder": { - "error_fetching_user": "Błąd przy pobieraniu profilu", - "find_user": "Znajdź użytkownika" - }, - "general": { - "apply": "Zastosuj", - "submit": "Wyślij", - "more": "Więcej", - "generic_error": "Wystąpił błąd", - "optional": "nieobowiązkowe", - "show_more": "Pokaż więcej", - "show_less": "Pokaż mniej", - "dismiss": "Odrzuć", - "cancel": "Anuluj", - "disable": "Wyłącz", - "enable": "Włącz", - "confirm": "Potwierdź", - "verify": "Zweryfikuj", - "close": "Zamknij", - "loading": "Ładowanie…", - "retry": "Spróbuj ponownie", - "peek": "Spójrz", - "error_retry": "Spróbuj ponownie", - "flash_content": "Naciśnij, aby wyświetlić zawartości Flash z użyciem Ruffle (eksperymentalnie, może nie działać).", - "flash_fail": "Nie udało się załadować treści flash, zajrzyj do konsoli, aby odnaleźć szczegóły.", - "role": { - "moderator": "Moderator", - "admin": "Administrator" - } - }, - "image_cropper": { - "crop_picture": "Przytnij obrazek", - "save": "Zapisz", - "save_without_cropping": "Zapisz bez przycinania", - "cancel": "Anuluj" - }, - "importer": { - "submit": "Wyślij", - "success": "Zaimportowano pomyślnie.", - "error": "Wystąpił błąd podczas importowania pliku." - }, - "login": { - "login": "Zaloguj", - "description": "Zaloguj używając OAuth", - "logout": "Wyloguj", - "password": "Hasło", - "placeholder": "n.p. lain", - "register": "Zarejestruj", - "username": "Użytkownik", - "hint": "Zaloguj się, aby dołączyć do dyskusji", - "authentication_code": "Kod weryfikacyjny", - "enter_recovery_code": "Wprowadź kod zapasowy", - "enter_two_factor_code": "Wprowadź kod weryfikacyjny", - "recovery_code": "Kod zapasowy", - "heading": { - "totp": "Weryfikacja dwuetapowa", - "recovery": "Zapasowa weryfikacja dwuetapowa" - } - }, - "media_modal": { - "previous": "Poprzednie", - "next": "Następne" - }, - "nav": { - "about": "O nas", - "administration": "Administracja", - "back": "Wróć", - "chat": "Lokalny czat", - "friend_requests": "Prośby o możliwość obserwacji", - "mentions": "Wzmianki", - "interactions": "Interakcje", - "dms": "Wiadomości bezpośrednie", - "public_tl": "Publiczna oś czasu", - "timeline": "Oś czasu", - "twkn": "Znana sieć", - "user_search": "Wyszukiwanie użytkowników", - "search": "Wyszukiwanie", - "who_to_follow": "Sugestie obserwacji", - "preferences": "Preferencje", - "bookmarks": "Zakładki", - "chats": "Czaty", - "timelines": "Osie czasu", - "home_timeline": "Główna oś czasu" - }, - "notifications": { - "broken_favorite": "Nieznany status, szukam go…", - "favorited_you": "dodał(-a) twój status do ulubionych", - "followed_you": "obserwuje cię", - "load_older": "Załaduj starsze powiadomienia", - "notifications": "Powiadomienia", - "read": "Przeczytane!", - "repeated_you": "powtórzył(-a) twój status", - "no_more_notifications": "Nie masz więcej powiadomień", - "migrated_to": "wyemigrował do", - "reacted_with": "zareagował z {0}", - "follow_request": "chce ciebie obserwować", - "error": "Błąd pobierania powiadomień: {0}" - }, - "polls": { - "add_poll": "Dodaj ankietę", - "add_option": "Dodaj opcję", - "option": "Opcja", - "votes": "głosów", - "vote": "Głosuj", - "type": "Typ ankiety", - "single_choice": "jednokrotnego wyboru", - "multiple_choices": "wielokrotnego wyboru", - "expiry": "Czas trwania ankiety", - "expires_in": "Ankieta kończy się za {0}", - "expired": "Ankieta skończyła się {0} temu", - "not_enough_options": "Zbyt mało unikalnych opcji w ankiecie", - "people_voted_count": "{count} osoba zagłosowała | {count} osoby zagłosowały | {count} osób zagłosowało", - "votes_count": "{count} głos | {count} głosy | {count} głosów" - }, - "emoji": { - "stickers": "Naklejki", - "emoji": "Emoji", - "keep_open": "Zostaw selektor otwarty", - "search_emoji": "Wyszukaj emoji", - "add_emoji": "Wstaw emoji", - "custom": "Niestandardowe emoji", - "unicode": "Emoji unicode", - "load_all_hint": "Załadowano pierwsze {saneAmount} emoji, Załadowanie wszystkich emoji może spowodować problemy z wydajnością.", - "load_all": "Ładuję wszystkie {emojiAmount} emoji" - }, - "interactions": { - "favs_repeats": "Powtórzenia i ulubione", - "follows": "Nowi obserwujący", - "moves": "Użytkownik migruje", - "load_older": "Załaduj starsze interakcje" - }, - "post_status": { - "new_status": "Dodaj nowy status", - "account_not_locked_warning": "Twoje konto nie jest {0}. Każdy może cię zaobserwować aby zobaczyć wpisy tylko dla obserwujących.", - "account_not_locked_warning_link": "zablokowane", - "attachments_sensitive": "Oznacz załączniki jako wrażliwe", - "content_type": { - "text/plain": "Czysty tekst", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Temat (nieobowiązkowy)", - "default": "Właśnie wróciłem z kościoła", - "direct_warning_to_all": "Ten wpis zobaczą wszystkie osoby, o których wspomniałeś(-aś).", - "direct_warning_to_first_only": "Ten wpis zobaczą tylko te osoby, o których wspomniałeś(-aś) na początku wiadomości.", - "posting": "Wysyłanie", - "scope_notice": { - "public": "Ten post będzie widoczny dla każdego", - "private": "Ten post będzie widoczny tylko dla twoich obserwujących", - "unlisted": "Ten post nie będzie widoczny na publicznej osi czasu i całej znanej sieci" - }, - "scope": { - "direct": "Bezpośredni – tylko dla wspomnianych użytkowników", - "private": "Tylko dla obserwujących – umieść dla osób, które cię obserwują", - "public": "Publiczny – umieść na publicznych osiach czasu", - "unlisted": "Niewidoczny – nie umieszczaj na publicznych osiach czasu" - }, - "preview_empty": "Pusty", - "preview": "Podgląd", - "empty_status_error": "Nie można wysłać pustego wpisu bez plików", - "media_description_error": "Nie udało się zaktualizować mediów, spróbuj ponownie", - "media_description": "Opis mediów", - "post": "Opublikuj" - }, - "registration": { - "bio": "Bio", - "email": "E-mail", - "fullname": "Wyświetlana nazwa profilu", - "password_confirm": "Potwierdzenie hasła", - "registration": "Rejestracja", - "token": "Token zaproszenia", - "captcha": "CAPTCHA", - "new_captcha": "Naciśnij na obrazek, aby dostać nowy kod captcha", - "username_placeholder": "np. lain", - "fullname_placeholder": "np. Lain Iwakura", - "bio_placeholder": "e.g.\nCześć, jestem Lain.\nJestem dziewczynką z anime żyjącą na peryferiach Japonii. Możesz znać mnie z Wired.", - "validations": { - "username_required": "nie może być pusta", - "fullname_required": "nie może być pusta", - "email_required": "nie może być pusty", - "password_required": "nie może być puste", - "password_confirmation_required": "nie może być puste", - "password_confirmation_match": "musi być takie jak hasło" - }, - "reason": "Powód rejestracji", - "reason_placeholder": "Ta instancja ręcznie zatwierdza rejestracje.\nPoinformuj administratora, dlaczego chcesz się zarejestrować.", - "register": "Zarejestruj się" - }, - "remote_user_resolver": { - "remote_user_resolver": "Wyszukiwarka użytkowników nietutejszych", - "searching_for": "Szukam", - "error": "Nie znaleziono." - }, - "selectable_list": { - "select_all": "Zaznacz wszystko" - }, - "settings": { - "app_name": "Nazwa aplikacji", - "security": "Bezpieczeństwo", - "enter_current_password_to_confirm": "Wprowadź obecne hasło, by potwierdzić twoją tożsamość", - "mfa": { - "otp": "OTP", - "setup_otp": "Ustaw OTP", - "wait_pre_setup_otp": "początkowe ustawianie OTP", - "confirm_and_enable": "Potwierdź i włącz OTP", - "title": "Weryfikacja dwuetapowa", - "generate_new_recovery_codes": "Wygeneruj nowe kody zapasowe", - "warning_of_generate_new_codes": "Po tym gdy wygenerujesz nowe kody zapasowe, stare przestaną działać.", - "recovery_codes": "Kody zapasowe.", - "waiting_a_recovery_codes": "Otrzymuję kody zapasowe…", - "recovery_codes_warning": "Spisz kody na kartce papieru, albo zapisz je w bezpiecznym miejscu - inaczej nie zobaczysz ich już nigdy. Jeśli stracisz dostęp do twojej aplikacji 2FA i kodów zapasowych, nie będziesz miał(-a) dostępu do swojego konta.", - "authentication_methods": "Metody weryfikacji", - "scan": { - "title": "Skanuj", - "desc": "Zeskanuj ten kod QR używając twojej aplikacji 2FA albo wpisz ten klucz:", - "secret_code": "Klucz" - }, - "verify": { - "desc": "By włączyć weryfikację dwuetapową, wpisz kod z twojej aplikacji 2FA:" - } - }, - "allow_following_move": "Zezwalaj na automatyczną obserwację gdy obserwowane konto migruje", - "attachmentRadius": "Załączniki", - "attachments": "Załączniki", - "avatar": "Awatar", - "avatarAltRadius": "Awatary (powiadomienia)", - "avatarRadius": "Awatary", - "background": "Tło", - "bio": "Bio", - "block_export": "Eksport blokad", - "block_export_button": "Eksportuj twoje blokady do pliku .csv", - "block_import": "Import blokad", - "block_import_error": "Wystąpił błąd podczas importowania blokad", - "blocks_imported": "Zaimportowano blokady, przetwarzanie może zająć trochę czasu.", - "blocks_tab": "Bloki", - "btnRadius": "Przyciski", - "cBlue": "Niebieski (odpowiedz, obserwuj)", - "cGreen": "Zielony (powtórzenia)", - "cOrange": "Pomarańczowy (ulubione)", - "cRed": "Czerwony (anuluj)", - "change_email": "Zmień e-mail", - "change_email_error": "Wystąpił problem podczas zmiany emaila.", - "changed_email": "Pomyślnie zmieniono email!", - "change_password": "Zmień hasło", - "change_password_error": "Podczas zmiany hasła wystąpił problem.", - "changed_password": "Pomyślnie zmieniono hasło!", - "collapse_subject": "Zwijaj posty z tematami", - "composing": "Pisanie", - "confirm_new_password": "Potwierdź nowe hasło", - "current_avatar": "Twój obecny awatar", - "current_password": "Obecne hasło", - "current_profile_banner": "Twój obecny banner profilu", - "data_import_export_tab": "Import/eksport danych", - "default_vis": "Domyślny zakres widoczności", - "delete_account": "Usuń konto", - "delete_account_description": "Trwale usuń dane i zdezaktywuj konto.", - "delete_account_error": "Wystąpił problem z usuwaniem twojego konta. Jeżeli problem powtarza się, poinformuj administratora swojej instancji.", - "delete_account_instructions": "Wprowadź swoje hasło w poniższe pole aby potwierdzić usunięcie konta.", - "discoverable": "Zezwól na odkrywanie tego konta w wynikach wyszukiwania i innych usługach", - "domain_mutes": "Domeny", - "avatar_size_instruction": "Zalecany minimalny rozmiar awatarów to 150x150 pikseli.", - "pad_emoji": "Dodaj odstęp z obu stron emoji podczas dodawania selektorem", - "emoji_reactions_on_timeline": "Pokaż reakcje emoji na osi czasu", - "export_theme": "Zapisz motyw", - "filtering": "Filtrowanie", - "filtering_explanation": "Wszystkie statusy zawierające te słowa będą wyciszone. Jedno słowo na linijkę.", - "follow_export": "Eksport obserwowanych", - "follow_export_button": "Eksportuj swoją listę obserwowanych do pliku CSV", - "follow_import": "Import obserwowanych", - "follow_import_error": "Błąd przy importowaniu obserwowanych", - "follows_imported": "Obserwowani zaimportowani! Przetwarzanie może trochę potrwać.", - "accent": "Akcent", - "foreground": "Pierwszy plan", - "general": "Ogólne", - "hide_attachments_in_convo": "Ukrywaj załączniki w rozmowach", - "hide_attachments_in_tl": "Ukrywaj załączniki w osi czasu", - "hide_muted_posts": "Ukrywaj wpisy wyciszonych użytkowników", - "max_thumbnails": "Maksymalna liczba miniatur w poście", - "hide_isp": "Ukryj panel informacji o instancji", - "preload_images": "Ładuj wstępnie obrazy", - "use_one_click_nsfw": "Otwieraj załączniki NSFW jednym kliknięciem", - "hide_post_stats": "Ukrywaj statysyki postów (np. liczbę polubień)", - "hide_user_stats": "Ukrywaj statysyki użytkowników (np. liczbę obserwujących)", - "hide_filtered_statuses": "Ukrywaj filtrowane statusy", - "import_blocks_from_a_csv_file": "Importuj blokady z pliku CSV", - "import_followers_from_a_csv_file": "Importuj obserwowanych z pliku CSV", - "import_theme": "Załaduj motyw", - "inputRadius": "Pola tekstowe", - "checkboxRadius": "Pola wyboru", - "instance_default": "(domyślnie: {value})", - "instance_default_simple": "(domyślne)", - "interface": "Interfejs", - "interfaceLanguage": "Język interfejsu", - "invalid_theme_imported": "Wybrany plik nie jest obsługiwanym motywem Pleromy. Nie dokonano zmian w twoim motywie.", - "limited_availability": "Niedostępne w twojej przeglądarce", - "links": "Łącza", - "lock_account_description": "Spraw, by konto mogli wyświetlać tylko zatwierdzeni obserwujący", - "loop_video": "Zapętlaj filmy", - "loop_video_silent_only": "Zapętlaj tylko filmy bez dźwięku (np. mastodonowe „gify”)", - "mutes_tab": "Wyciszenia", - "play_videos_in_modal": "Odtwarzaj filmy bezpośrednio w przeglądarce mediów", - "use_contain_fit": "Nie przycinaj załączników na miniaturach", - "name": "Imię", - "name_bio": "Imię i bio", - "new_email": "Nowy e-mail", - "new_password": "Nowe hasło", - "notification_visibility": "Rodzaje powiadomień do wyświetlania", - "notification_visibility_follows": "Obserwacje", - "notification_visibility_likes": "Ulubione", - "notification_visibility_mentions": "Wzmianki", - "notification_visibility_repeats": "Powtórzenia", - "notification_visibility_moves": "Użytkownik migruje", - "notification_visibility_emoji_reactions": "Reakcje", - "no_rich_text_description": "Usuwaj formatowanie ze wszystkich postów", - "no_blocks": "Brak blokad", - "no_mutes": "Brak wyciszeń", - "hide_follows_description": "Nie pokazuj kogo obserwuję", - "hide_followers_description": "Nie pokazuj kto mnie obserwuje", - "hide_follows_count_description": "Nie pokazuj licznika obserwowanych", - "hide_followers_count_description": "Nie pokazuj licznika obserwujących", - "show_admin_badge": "Pokazuj odznakę „Administrator” na moim profilu", - "show_moderator_badge": "Pokazuj odznakę „Moderator” na moim profilu", - "nsfw_clickthrough": "Włącz domyślne ukrywanie załączników o treści nieprzyzwoitej (NSFW)", - "oauth_tokens": "Tokeny OAuth", - "token": "Token", - "refresh_token": "Odśwież token", - "valid_until": "Ważne do", - "revoke_token": "Odwołać", - "panelRadius": "Panele", - "pause_on_unfocused": "Wstrzymuj strumieniowanie kiedy karta nie jest aktywna", - "presets": "Gotowe motywy", - "profile_background": "Tło profilu", - "profile_banner": "Banner profilu", - "profile_tab": "Profil", - "radii_help": "Ustaw zaokrąglenie krawędzi interfejsu (w pikselach)", - "replies_in_timeline": "Odpowiedzi na osi czasu", - "reply_visibility_all": "Pokazuj wszystkie odpowiedzi", - "reply_visibility_following": "Pokazuj tylko odpowiedzi skierowane do mnie i osób które obserwuję", - "reply_visibility_self": "Pokazuj tylko odpowiedzi skierowane do mnie", - "autohide_floating_post_button": "Ukryj automatycznie przycisk \"Nowy post\" (mobile)", - "saving_err": "Nie udało się zapisać ustawień", - "saving_ok": "Zapisano ustawienia", - "search_user_to_block": "Wyszukaj kogo chcesz zablokować", - "search_user_to_mute": "Wyszukaj kogo chcesz wyciszyć", - "security_tab": "Bezpieczeństwo", - "scope_copy": "Kopiuj zakres podczas odpowiadania (DM-y zawsze są kopiowane)", - "minimal_scopes_mode": "Zminimalizuj opcje wyboru zakresu postów", - "set_new_avatar": "Ustaw nowy awatar", - "set_new_profile_background": "Ustaw nowe tło profilu", - "set_new_profile_banner": "Ustaw nowy banner profilu", - "settings": "Ustawienia", - "subject_input_always_show": "Zawsze pokazuj pole tematu", - "subject_line_behavior": "Kopiuj temat podczas odpowiedzi", - "subject_line_email": "Jak w mailach – „re: temat”", - "subject_line_mastodon": "Jak na Mastodonie – po prostu kopiuj", - "subject_line_noop": "Nie kopiuj", - "post_status_content_type": "Post status content type", - "stop_gifs": "Odtwarzaj GIFy po najechaniu kursorem", - "streaming": "Włącz automatycznie strumieniowanie nowych postów gdy jesteś na początku strony", - "user_mutes": "Użytkownicy", - "useStreamingApi": "Otrzymuj posty i powiadomienia w czasie rzeczywistym", - "useStreamingApiWarning": "(Niezalecane, eksperymentalne, pomija posty)", - "text": "Tekst", - "theme": "Motyw", - "theme_help": "Użyj kolorów w notacji szesnastkowej (#rrggbb), by stworzyć swój motyw.", - "theme_help_v2_1": "Możesz też zastąpić kolory i widoczność poszczególnych komponentów przełączając pola wyboru, użyj „Wyczyść wszystko” aby usunąć wszystkie zastąpienia.", - "theme_help_v2_2": "Ikony pod niektórych wpisami są wskaźnikami kontrastu pomiędzy tłem a tekstem, po najechaniu na nie otrzymasz szczegółowe informacje. Zapamiętaj, że jeżeli używasz przezroczystości, wskaźniki pokazują najgorszy możliwy przypadek.", - "tooltipRadius": "Etykiety/alerty", - "type_domains_to_mute": "Wyszukaj domeny, które chcesz wyciszyć", - "upload_a_photo": "Wyślij zdjęcie", - "user_settings": "Ustawienia użytkownika", - "values": { - "false": "nie", - "true": "tak" - }, - "fun": "Zabawa", - "greentext": "Memiczne strzałki", - "notifications": "Powiadomienia", - "notification_mutes": "By przestać otrzymywać powiadomienia od jednego użytkownika, wycisz go.", - "notification_blocks": "Blokowanie uzytkownika zatrzymuje wszystkie powiadomienia i odsubskrybowuje go.", - "enable_web_push_notifications": "Włącz powiadomienia push", - "style": { - "switcher": { - "keep_color": "Zachowaj kolory", - "keep_shadows": "Zachowaj cienie", - "keep_opacity": "Zachowaj widoczność", - "keep_roundness": "Zachowaj zaokrąglenie", - "keep_fonts": "Zachowaj czcionki", - "save_load_hint": "Opcje „zachowaj” pozwalają na pozostanie przy obecnych opcjach po wybraniu lub załadowaniu motywu, jak i przechowywanie ich podczas eksportowania motywu. Jeżeli wszystkie opcje są odznaczone, eksportowanie motywu spowoduje zapisanie wszystkiego.", - "reset": "Wyzeruj", - "clear_all": "Wyczyść wszystko", - "clear_opacity": "Wyczyść widoczność", - "load_theme": "Załaduj motyw", - "keep_as_is": "Zostaw po staremu", - "use_snapshot": "Stara wersja", - "use_source": "Nowa wersja", - "help": { - "upgraded_from_v2": "PleromaFE zostało zaaktualizowane, motyw może wyglądać nieco inaczej niż zapamiętałeś(-aś).", - "v2_imported": "Plik który zaimportowałeś(-aś) został stworzony dla starszego FE. Próbujemy zwiększyć kompatybilność, lecz wciąż mogą występować rozbieżności.", - "future_version_imported": "Plik który zaimportowałeś(-aś) został stworzony w nowszej wersji FE.", - "older_version_imported": "Plik który zaimportowałeś(-aś) został stworzony w starszej wersji FE.", - "snapshot_present": "Migawka motywu jest załadowana, więc wszystkie wartości zostały nadpisane. Zamiast tego możesz załadować właściwe dane motywu.", - "snapshot_missing": "Nie znaleziono migawki motywu w pliku, więc motyw może wyglądać inaczej niż pierwotnie zaplanowano.", - "fe_upgraded": "Silnik motywów PleromaFE został zaaktualizowany.", - "fe_downgraded": "Wersja PleromaFE została cofnięta.", - "migration_snapshot_ok": "Żeby być bezpiecznym, migawka motywu została załadowana. Możesz spróbować załadować dane motywu.", - "migration_napshot_gone": "Z jakiegoś powodu migawka zniknęła, niektóre rzeczy mogą wyglądać inaczej niż zapamiętałeś(-aś).", - "snapshot_source_mismatch": "Konflikt wersji: najprawdopodobniej FE zostało cofnięte do poprzedniej wersji i zaktualizowane ponownie, jeśli zmieniłeś(-aś) motyw używając starszej wersji FE, najprawdopodobniej chcesz używać starszej wersji, w przeciwnym razie użyj nowej wersji." - } - }, - "common": { - "color": "Kolor", - "opacity": "Widoczność", - "contrast": { - "hint": "Współczynnik kontrastu wynosi {ratio}, {level} {context}", - "level": { - "aa": "spełnia wymogi poziomu AA (minimalne)", - "aaa": "spełnia wymogi poziomu AAA (zalecane)", - "bad": "nie spełnia żadnych wymogów dostępności" - }, - "context": { - "18pt": "dla dużego tekstu (18pt+)", - "text": "dla tekstu" - } - } - }, - "common_colors": { - "_tab_label": "Ogólne", - "main": "Ogólne kolory", - "foreground_hint": "Zajrzyj do karty „Zaawansowane”, aby uzyskać dokładniejszą kontrolę", - "rgbo": "Ikony, wyróżnienia, odznaki" - }, - "advanced_colors": { - "_tab_label": "Zaawansowane", - "alert": "Tło alertu", - "alert_error": "Błąd", - "alert_warning": "Ostrzeżenie", - "alert_neutral": "Neutralne", - "post": "Posty/Bio użytkowników", - "badge": "Tło odznaki", - "popover": "Etykiety, menu, popovery", - "badge_notification": "Powiadomienie", - "panel_header": "Nagłówek panelu", - "top_bar": "Górny pasek", - "borders": "Granice", - "buttons": "Przyciski", - "inputs": "Pola wejścia", - "faint_text": "Zanikający tekst", - "underlay": "Podkład", - "poll": "Wykres ankiety", - "icons": "Ikony", - "highlight": "Podświetlone elementy", - "pressed": "Naciśnięte", - "selectedPost": "Wybrany post", - "selectedMenu": "Wybrany element menu", - "disabled": "Wyłączone", - "toggled": "Przełączone", - "tabs": "Karty", - "chat": { - "outgoing": "Wiadomości wychodzące", - "incoming": "Wiadomości przychodzące", - "border": "Granica" + "about": { + "mrf": { + "federation": "Federacja", + "keyword": { + "ftl_removal": "Usunięcie z \"Całej znanej sieci\"", + "is_replaced_by": "→", + "keyword_policies": "Zasady słów kluczowych", + "reject": "Odrzucanie", + "replace": "Zastąpienie" + }, + "mrf_policies": "Włączone zasady MRF", + "mrf_policies_desc": "Zasady MRF zmieniają zachowanie federowania instancji. Następujące zasady są włączone:", + "simple": { + "accept": "Akceptowanie", + "accept_desc": "Ta instancja akceptuje tylko posty z wymienionych instancji:", + "ftl_removal": "Usunięcie z „Całej znanej sieci”", + "ftl_removal_desc": "Ta instancja usuwa wymienionych instancje z „Całej znanej sieci”:", + "media_nsfw": "Multimedia ustawione jako wrażliwe", + "media_nsfw_desc": "Ta instancja wymusza, by multimedia z wymienionych instancji były ustawione jako wrażliwe:", + "media_removal": "Usuwanie multimediów", + "media_removal_desc": "Ta instancja usuwa multimedia z postów od wymienionych instancji:", + "quarantine": "Kwarantanna", + "quarantine_desc": "Ta instancja wysyła tylko publiczne posty do wymienionych instancji:", + "reject": "Odrzucanie", + "reject_desc": "Ta instancja odrzuca posty z wymienionych instancji:", + "simple_policies": "Zasady specyficzne dla instancji" + } }, - "wallpaper": "Tło" - }, - "radii": { - "_tab_label": "Zaokrąglenie" - }, - "shadows": { - "_tab_label": "Cień i podświetlenie", - "component": "Komponent", - "override": "Zastąp", - "shadow_id": "Cień #{value}", - "blur": "Rozmycie", - "spread": "Szerokość", - "inset": "Inset", - "hintV3": "Dla cieni możesz również użyć notacji {0} by użyć inny slot koloru.", - "filter_hint": { - "always_drop_shadow": "Ostrzeżenie, ten cień zawsze używa {0} jeżeli to obsługiwane przez przeglądarkę.", - "drop_shadow_syntax": "{0} nie obsługuje parametru {1} i słowa kluczowego {2}.", - "avatar_inset": "Pamiętaj że użycie jednocześnie cieni inset i nie inset na awatarach może dać nieoczekiwane wyniki z przezroczystymi awatarami.", - "spread_zero": "Cienie o ujemnej szerokości będą widoczne tak, jakby wynosiła ona zero", - "inset_classic": "Cienie inset będą używały {0}" + "staff": "Administracja" + }, + "chats": { + "chats": "Czaty", + "delete": "Usuń", + "delete_confirm": "Czy na pewno chcesz usunąć tą wiadomość?", + "empty_chat_list_placeholder": "Nie masz jeszcze żadnych czatów. Zacznij nowy czat!", + "empty_message_error": "Nie można wysłać pustej wiadomości", + "error_loading_chat": "Coś poszło nie tak podczas ładowania czatu.", + "error_sending_message": "Coś poszło nie tak podczas wysyłania wiadomości.", + "message_user": "Napisz do {nickname}", + "more": "Więcej", + "new": "Nowy czat", + "you": "Ty:" + }, + "display_date": { + "today": "Dzisiaj" + }, + "domain_mute_card": { + "mute": "Wycisz", + "mute_progress": "Wyciszam…", + "unmute": "Odcisz", + "unmute_progress": "Odciszam…" + }, + "emoji": { + "add_emoji": "Wstaw emoji", + "custom": "Niestandardowe emoji", + "emoji": "Emoji", + "keep_open": "Zostaw selektor otwarty", + "load_all": "Ładuję wszystkie {emojiAmount} emoji", + "load_all_hint": "Załadowano pierwsze {saneAmount} emoji, Załadowanie wszystkich emoji może spowodować problemy z wydajnością.", + "search_emoji": "Wyszukaj emoji", + "stickers": "Naklejki", + "unicode": "Emoji unicode" + }, + "errors": { + "storage_unavailable": "Pleroma nie mogła uzyskać dostępu do pamięci masowej przeglądarki. Twój login lub lokalne ustawienia nie zostaną zapisane i możesz napotkać problemy. Spróbuj włączyć ciasteczka." + }, + "exporter": { + "export": "Eksportuj", + "processing": "Przetwarzam, za chwilę zostaniesz zapytany(-na) o ściągnięcie pliku" + }, + "features_panel": { + "media_proxy": "Proxy mediów", + "scope_options": "Ustawienia zakresu", + "text_limit": "Limit tekstu", + "title": "Funkcje", + "upload_limit": "Limit wysyłania", + "who_to_follow": "Propozycje obserwacji" + }, + "file_type": { + "audio": "Audio", + "file": "Plik", + "image": "Zdjęcie", + "video": "Wideo" + }, + "finder": { + "error_fetching_user": "Błąd przy pobieraniu profilu", + "find_user": "Znajdź użytkownika" + }, + "general": { + "apply": "Zastosuj", + "cancel": "Anuluj", + "close": "Zamknij", + "confirm": "Potwierdź", + "disable": "Wyłącz", + "dismiss": "Odrzuć", + "enable": "Włącz", + "error_retry": "Spróbuj ponownie", + "flash_content": "Naciśnij, aby wyświetlić zawartości Flash z użyciem Ruffle (eksperymentalnie, może nie działać).", + "flash_fail": "Nie udało się załadować treści flash, zajrzyj do konsoli, aby odnaleźć szczegóły.", + "generic_error": "Wystąpił błąd", + "loading": "Ładowanie…", + "more": "Więcej", + "optional": "nieobowiązkowe", + "peek": "Spójrz", + "retry": "Spróbuj ponownie", + "role": { + "admin": "Administrator", + "moderator": "Moderator" }, - "components": { - "panel": "Panel", - "panelHeader": "Nagłówek panelu", - "topBar": "Górny pasek", - "avatar": "Awatar użytkownika (w widoku profilu)", - "avatarStatus": "Awatar użytkownika (w widoku wpisu)", - "popup": "Wyskakujące okna i podpowiedzi", - "button": "Przycisk", - "buttonHover": "Przycisk (po najechaniu)", - "buttonPressed": "Przycisk (naciśnięty)", - "buttonPressedHover": "Przycisk(naciśnięty+najechany)", - "input": "Pole wejścia" + "show_less": "Pokaż mniej", + "show_more": "Pokaż więcej", + "submit": "Wyślij", + "verify": "Zweryfikuj" + }, + "image_cropper": { + "cancel": "Anuluj", + "crop_picture": "Przytnij obrazek", + "save": "Zapisz", + "save_without_cropping": "Zapisz bez przycinania" + }, + "importer": { + "error": "Wystąpił błąd podczas importowania pliku.", + "submit": "Wyślij", + "success": "Zaimportowano pomyślnie." + }, + "interactions": { + "favs_repeats": "Powtórzenia i ulubione", + "follows": "Nowi obserwujący", + "load_older": "Załaduj starsze interakcje", + "moves": "Użytkownik migruje" + }, + "login": { + "authentication_code": "Kod weryfikacyjny", + "description": "Zaloguj używając OAuth", + "enter_recovery_code": "Wprowadź kod zapasowy", + "enter_two_factor_code": "Wprowadź kod weryfikacyjny", + "heading": { + "recovery": "Zapasowa weryfikacja dwuetapowa", + "totp": "Weryfikacja dwuetapowa" + }, + "hint": "Zaloguj się, aby dołączyć do dyskusji", + "login": "Zaloguj", + "logout": "Wyloguj", + "password": "Hasło", + "placeholder": "n.p. lain", + "recovery_code": "Kod zapasowy", + "register": "Zarejestruj", + "username": "Użytkownik" + }, + "media_modal": { + "next": "Następne", + "previous": "Poprzednie" + }, + "nav": { + "about": "O nas", + "administration": "Administracja", + "back": "Wróć", + "bookmarks": "Zakładki", + "chats": "Czaty", + "dms": "Wiadomości bezpośrednie", + "friend_requests": "Prośby o możliwość obserwacji", + "home_timeline": "Główna oś czasu", + "interactions": "Interakcje", + "mentions": "Wzmianki", + "preferences": "Preferencje", + "public_tl": "Publiczna oś czasu", + "search": "Wyszukiwanie", + "timeline": "Oś czasu", + "timelines": "Osie czasu", + "twkn": "Znana sieć", + "user_search": "Wyszukiwanie użytkowników", + "who_to_follow": "Sugestie obserwacji" + }, + "notifications": { + "broken_favorite": "Nieznany status, szukam go…", + "error": "Błąd pobierania powiadomień: {0}", + "favorited_you": "dodał(-a) twój status do ulubionych", + "follow_request": "chce ciebie obserwować", + "followed_you": "obserwuje cię", + "load_older": "Załaduj starsze powiadomienia", + "migrated_to": "wyemigrował do", + "no_more_notifications": "Nie masz więcej powiadomień", + "notifications": "Powiadomienia", + "reacted_with": "zareagował z {0}", + "read": "Przeczytane!", + "repeated_you": "powtórzył(-a) twój status" + }, + "password_reset": { + "check_email": "Sprawdź pocztę, aby uzyskać link do zresetowania hasła.", + "forgot_password": "Zapomniałeś(-aś) hasła?", + "instruction": "Wprowadź swój adres email lub nazwę użytkownika. Wyślemy ci link z którym możesz zresetować hasło.", + "password_reset": "Reset hasła", + "password_reset_disabled": "Resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji.", + "password_reset_required": "Musisz zresetować hasło, by się zalogować.", + "password_reset_required_but_mailer_is_disabled": "Musisz zresetować hasło, ale resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji.", + "placeholder": "Twój email lub nazwa użytkownika", + "return_home": "Wróć do strony głównej", + "too_many_requests": "Przekroczyłeś(-aś) limit prób, spróbuj ponownie później." + }, + "polls": { + "add_option": "Dodaj opcję", + "add_poll": "Dodaj ankietę", + "expired": "Ankieta skończyła się {0} temu", + "expires_in": "Ankieta kończy się za {0}", + "expiry": "Czas trwania ankiety", + "multiple_choices": "wielokrotnego wyboru", + "not_enough_options": "Zbyt mało unikalnych opcji w ankiecie", + "option": "Opcja", + "people_voted_count": "{count} osoba zagłosowała | {count} osoby zagłosowały | {count} osób zagłosowało", + "single_choice": "jednokrotnego wyboru", + "type": "Typ ankiety", + "vote": "Głosuj", + "votes": "głosów", + "votes_count": "{count} głos | {count} głosy | {count} głosów" + }, + "post_status": { + "account_not_locked_warning": "Twoje konto nie jest {0}. Każdy może cię zaobserwować aby zobaczyć wpisy tylko dla obserwujących.", + "account_not_locked_warning_link": "zablokowane", + "attachments_sensitive": "Oznacz załączniki jako wrażliwe", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Czysty tekst" + }, + "content_warning": "Temat (nieobowiązkowy)", + "default": "Właśnie wróciłem z kościoła", + "direct_warning_to_all": "Ten wpis zobaczą wszystkie osoby, o których wspomniałeś(-aś).", + "direct_warning_to_first_only": "Ten wpis zobaczą tylko te osoby, o których wspomniałeś(-aś) na początku wiadomości.", + "empty_status_error": "Nie można wysłać pustego wpisu bez plików", + "media_description": "Opis mediów", + "media_description_error": "Nie udało się zaktualizować mediów, spróbuj ponownie", + "new_status": "Dodaj nowy status", + "post": "Opublikuj", + "posting": "Wysyłanie", + "preview": "Podgląd", + "preview_empty": "Pusty", + "scope": { + "direct": "Bezpośredni – tylko dla wspomnianych użytkowników", + "private": "Tylko dla obserwujących – umieść dla osób, które cię obserwują", + "public": "Publiczny – umieść na publicznych osiach czasu", + "unlisted": "Niewidoczny – nie umieszczaj na publicznych osiach czasu" + }, + "scope_notice": { + "private": "Ten post będzie widoczny tylko dla twoich obserwujących", + "public": "Ten post będzie widoczny dla każdego", + "unlisted": "Ten post nie będzie widoczny na publicznej osi czasu i całej znanej sieci" } - }, - "fonts": { - "_tab_label": "Czcionki", - "help": "Wybierz czcionkę używaną przez elementy UI. Jeżeli wybierzesz niestandardową, musisz wpisać dokładnie tę nazwę, pod którą pojawia się w systemie.", - "components": { - "interface": "Interfejs", - "input": "Pola wejścia", - "post": "Tekst postu", - "postCode": "Tekst o stałej szerokości znaków w sformatowanym poście" + }, + "registration": { + "bio": "Bio", + "bio_placeholder": "e.g.\nCześć, jestem Lain.\nJestem dziewczynką z anime żyjącą na peryferiach Japonii. Możesz znać mnie z Wired.", + "captcha": "CAPTCHA", + "email": "E-mail", + "fullname": "Wyświetlana nazwa profilu", + "fullname_placeholder": "np. Lain Iwakura", + "new_captcha": "Naciśnij na obrazek, aby dostać nowy kod captcha", + "password_confirm": "Potwierdzenie hasła", + "reason": "Powód rejestracji", + "reason_placeholder": "Ta instancja ręcznie zatwierdza rejestracje.\nPoinformuj administratora, dlaczego chcesz się zarejestrować.", + "register": "Zarejestruj się", + "registration": "Rejestracja", + "token": "Token zaproszenia", + "username_placeholder": "np. lain", + "validations": { + "email_required": "nie może być pusty", + "fullname_required": "nie może być pusta", + "password_confirmation_match": "musi być takie jak hasło", + "password_confirmation_required": "nie może być puste", + "password_required": "nie może być puste", + "username_required": "nie może być pusta" + } + }, + "remote_user_resolver": { + "error": "Nie znaleziono.", + "remote_user_resolver": "Wyszukiwarka użytkowników nietutejszych", + "searching_for": "Szukam" + }, + "search": { + "hashtags": "Hasztagi", + "no_results": "Brak wyników", + "people": "Ludzie", + "people_talking": "{count} osób rozmawia o tym", + "person_talking": "{count} osoba rozmawia o tym" + }, + "selectable_list": { + "select_all": "Zaznacz wszystko" + }, + "settings": { + "accent": "Akcent", + "allow_following_move": "Zezwalaj na automatyczną obserwację gdy obserwowane konto migruje", + "app_name": "Nazwa aplikacji", + "attachmentRadius": "Załączniki", + "attachments": "Załączniki", + "autohide_floating_post_button": "Ukryj automatycznie przycisk \"Nowy post\" (mobile)", + "avatar": "Awatar", + "avatarAltRadius": "Awatary (powiadomienia)", + "avatarRadius": "Awatary", + "avatar_size_instruction": "Zalecany minimalny rozmiar awatarów to 150x150 pikseli.", + "background": "Tło", + "bio": "Bio", + "block_export": "Eksport blokad", + "block_export_button": "Eksportuj twoje blokady do pliku .csv", + "block_import": "Import blokad", + "block_import_error": "Wystąpił błąd podczas importowania blokad", + "blocks_imported": "Zaimportowano blokady, przetwarzanie może zająć trochę czasu.", + "blocks_tab": "Bloki", + "bot": "To konto jest prowadzone przez bota", + "btnRadius": "Przyciski", + "cBlue": "Niebieski (odpowiedz, obserwuj)", + "cGreen": "Zielony (powtórzenia)", + "cOrange": "Pomarańczowy (ulubione)", + "cRed": "Czerwony (anuluj)", + "change_email": "Zmień e-mail", + "change_email_error": "Wystąpił problem podczas zmiany emaila.", + "change_password": "Zmień hasło", + "change_password_error": "Podczas zmiany hasła wystąpił problem.", + "changed_email": "Pomyślnie zmieniono email!", + "changed_password": "Pomyślnie zmieniono hasło!", + "chatMessageRadius": "Wiadomość czatu", + "checkboxRadius": "Pola wyboru", + "collapse_subject": "Zwijaj posty z tematami", + "composing": "Pisanie", + "confirm_new_password": "Potwierdź nowe hasło", + "current_avatar": "Twój obecny awatar", + "current_password": "Obecne hasło", + "data_import_export_tab": "Import/eksport danych", + "default_vis": "Domyślny zakres widoczności", + "delete_account": "Usuń konto", + "delete_account_description": "Trwale usuń dane i zdezaktywuj konto.", + "delete_account_error": "Wystąpił problem z usuwaniem twojego konta. Jeżeli problem powtarza się, poinformuj administratora swojej instancji.", + "delete_account_instructions": "Wprowadź swoje hasło w poniższe pole aby potwierdzić usunięcie konta.", + "discoverable": "Zezwól na odkrywanie tego konta w wynikach wyszukiwania i innych usługach", + "domain_mutes": "Domeny", + "emoji_reactions_on_timeline": "Pokaż reakcje emoji na osi czasu", + "enable_web_push_notifications": "Włącz powiadomienia push", + "enter_current_password_to_confirm": "Wprowadź obecne hasło, by potwierdzić twoją tożsamość", + "export_theme": "Zapisz motyw", + "file_export_import": { + "backup_restore": "Kopia zapasowa ustawień", + "backup_settings": "Kopia zapasowa ustawień do pliku", + "backup_settings_theme": "Kopia zapasowa ustawień i motywu do pliku", + "errors": { + "invalid_file": "Wybrany plik nie jest obsługiwaną kopią zapasową ustawień Pleromy. Nie dokonano żadnych zmian." + }, + "restore_settings": "Przywróć ustawienia z pliku" }, - "family": "Nazwa czcionki", - "size": "Rozmiar (w pikselach)", - "weight": "Grubość", - "custom": "Niestandardowa" - }, - "preview": { - "header": "Podgląd", - "content": "Zawartość", - "error": "Przykładowy błąd", - "button": "Przycisk", - "text": "Trochę więcej {0} i {1}", - "mono": "treści", - "input": "Właśnie wróciłem z kościoła", - "faint_link": "pomocny podręcznik", - "fine_print": "Przeczytaj nasz {0}, aby nie nauczyć się niczego przydatnego!", - "header_faint": "W porządku", - "checkbox": "Przeleciałem(-am) przez zasady użytkowania", - "link": "i fajny mały odnośnik" - } + "filtering": "Filtrowanie", + "filtering_explanation": "Wszystkie statusy zawierające te słowa będą wyciszone. Jedno słowo na linijkę.", + "follow_export": "Eksport obserwowanych", + "follow_export_button": "Eksportuj swoją listę obserwowanych do pliku CSV", + "follow_import": "Import obserwowanych", + "follow_import_error": "Błąd przy importowaniu obserwowanych", + "follows_imported": "Obserwowani zaimportowani! Przetwarzanie może trochę potrwać.", + "foreground": "Pierwszy plan", + "fun": "Zabawa", + "general": "Ogólne", + "greentext": "Memiczne strzałki", + "hide_all_muted_posts": "Ukryj wyciszone słowa", + "hide_attachments_in_convo": "Ukrywaj załączniki w rozmowach", + "hide_attachments_in_tl": "Ukrywaj załączniki w osi czasu", + "hide_filtered_statuses": "Ukrywaj filtrowane statusy", + "hide_followers_count_description": "Nie pokazuj licznika obserwujących", + "hide_followers_description": "Nie pokazuj kto mnie obserwuje", + "hide_follows_count_description": "Nie pokazuj licznika obserwowanych", + "hide_follows_description": "Nie pokazuj kogo obserwuję", + "hide_isp": "Ukryj panel informacji o instancji", + "hide_media_previews": "Ukryj podgląd mediów", + "hide_muted_posts": "Ukrywaj wpisy wyciszonych użytkowników", + "hide_post_stats": "Ukrywaj statysyki postów (np. liczbę polubień)", + "hide_shoutbox": "Ukryj shoutbox instancji", + "hide_user_stats": "Ukrywaj statysyki użytkowników (np. liczbę obserwujących)", + "hide_wallpaper": "Ukryj tło instancji", + "import_blocks_from_a_csv_file": "Importuj blokady z pliku CSV", + "import_followers_from_a_csv_file": "Importuj obserwowanych z pliku CSV", + "import_mutes_from_a_csv_file": "Zaimportuj wyciszenia z pliku .csv", + "import_theme": "Załaduj motyw", + "inputRadius": "Pola tekstowe", + "instance_default": "(domyślnie: {value})", + "instance_default_simple": "(domyślne)", + "interface": "Interfejs", + "interfaceLanguage": "Język interfejsu", + "invalid_theme_imported": "Wybrany plik nie jest obsługiwanym motywem Pleromy. Nie dokonano zmian w twoim motywie.", + "limited_availability": "Niedostępne w twojej przeglądarce", + "links": "Łącza", + "lock_account_description": "Spraw, by konto mogli wyświetlać tylko zatwierdzeni obserwujący", + "loop_video": "Zapętlaj filmy", + "loop_video_silent_only": "Zapętlaj tylko filmy bez dźwięku (np. mastodonowe „gify”)", + "max_thumbnails": "Maksymalna liczba miniatur w poście", + "mfa": { + "authentication_methods": "Metody weryfikacji", + "confirm_and_enable": "Potwierdź i włącz OTP", + "generate_new_recovery_codes": "Wygeneruj nowe kody zapasowe", + "otp": "OTP", + "recovery_codes": "Kody zapasowe.", + "recovery_codes_warning": "Spisz kody na kartce papieru, albo zapisz je w bezpiecznym miejscu - inaczej nie zobaczysz ich już nigdy. Jeśli stracisz dostęp do twojej aplikacji 2FA i kodów zapasowych, nie będziesz miał(-a) dostępu do swojego konta.", + "scan": { + "desc": "Zeskanuj ten kod QR używając twojej aplikacji 2FA albo wpisz ten klucz:", + "secret_code": "Klucz", + "title": "Skanuj" + }, + "setup_otp": "Ustaw OTP", + "title": "Weryfikacja dwuetapowa", + "verify": { + "desc": "By włączyć weryfikację dwuetapową, wpisz kod z twojej aplikacji 2FA:" + }, + "wait_pre_setup_otp": "początkowe ustawianie OTP", + "waiting_a_recovery_codes": "Otrzymuję kody zapasowe…", + "warning_of_generate_new_codes": "Po tym gdy wygenerujesz nowe kody zapasowe, stare przestaną działać." + }, + "minimal_scopes_mode": "Zminimalizuj opcje wyboru zakresu postów", + "more_settings": "Więcej ustawień", + "mute_export": "Eksport wyciszeń", + "mute_export_button": "Wyeksportuj swoje wyciszenia do pliku .csv", + "mute_import": "Import wyciszeń", + "mute_import_error": "Wystąpił błąd podczas importowania wyciszeń", + "mutes_and_blocks": "Wyciszenia i blokady", + "mutes_imported": "Zaimportowano wyciszenia! Przetwarzanie zajmie chwilę.", + "mutes_tab": "Wyciszenia", + "name": "Imię", + "name_bio": "Imię i bio", + "new_email": "Nowy e-mail", + "new_password": "Nowe hasło", + "no_blocks": "Brak blokad", + "no_mutes": "Brak wyciszeń", + "no_rich_text_description": "Usuwaj formatowanie ze wszystkich postów", + "notification_blocks": "Blokowanie uzytkownika zatrzymuje wszystkie powiadomienia i odsubskrybowuje go.", + "notification_mutes": "By przestać otrzymywać powiadomienia od jednego użytkownika, wycisz go.", + "notification_setting_block_from_strangers": "Zablokuj powiadomienia od użytkowników których nie obserwujesz", + "notification_setting_filters": "Filtry", + "notification_setting_hide_notification_contents": "Ukryj nadawcę i zawartość powiadomień push", + "notification_setting_privacy": "Prywatność", + "notification_visibility": "Rodzaje powiadomień do wyświetlania", + "notification_visibility_emoji_reactions": "Reakcje", + "notification_visibility_follows": "Obserwacje", + "notification_visibility_likes": "Ulubione", + "notification_visibility_mentions": "Wzmianki", + "notification_visibility_moves": "Użytkownik migruje", + "notification_visibility_repeats": "Powtórzenia", + "notifications": "Powiadomienia", + "nsfw_clickthrough": "Włącz domyślne ukrywanie załączników o treści nieprzyzwoitej (NSFW)", + "oauth_tokens": "Tokeny OAuth", + "pad_emoji": "Dodaj odstęp z obu stron emoji podczas dodawania selektorem", + "panelRadius": "Panele", + "pause_on_unfocused": "Wstrzymuj strumieniowanie kiedy karta nie jest aktywna", + "play_videos_in_modal": "Odtwarzaj filmy bezpośrednio w przeglądarce mediów", + "post_status_content_type": "Post status content type", + "preload_images": "Ładuj wstępnie obrazy", + "presets": "Gotowe motywy", + "profile_background": "Tło profilu", + "profile_banner": "Banner profilu", + "profile_fields": { + "add_field": "Dodaj pole", + "label": "Metadane profilu", + "name": "Nazwa", + "value": "Zawartość" + }, + "profile_tab": "Profil", + "radii_help": "Ustaw zaokrąglenie krawędzi interfejsu (w pikselach)", + "refresh_token": "Odśwież token", + "replies_in_timeline": "Odpowiedzi na osi czasu", + "reply_visibility_all": "Pokazuj wszystkie odpowiedzi", + "reply_visibility_following": "Pokazuj tylko odpowiedzi skierowane do mnie i osób które obserwuję", + "reply_visibility_following_short": "Pokazuj odpowiedzi obserwującym", + "reply_visibility_self": "Pokazuj tylko odpowiedzi skierowane do mnie", + "reply_visibility_self_short": "Pokazuj odpowiedzi tylko do mnie", + "reset_avatar": "Zresetuj awatar", + "reset_avatar_confirm": "Czy naprawdę chcesz zresetować awatar?", + "reset_background_confirm": "Czy naprawdę chcesz zresetować tło?", + "reset_banner_confirm": "Czy naprawdę chcesz zresetować banner?", + "reset_profile_background": "Zresetuj tło profilowe", + "reset_profile_banner": "Zresetuj banner profilowy", + "revoke_token": "Odwołać", + "right_sidebar": "Pokaż pasek boczny po prawej", + "save": "Zapisz zmiany", + "saving_err": "Nie udało się zapisać ustawień", + "saving_ok": "Zapisano ustawienia", + "scope_copy": "Kopiuj zakres podczas odpowiadania (DM-y zawsze są kopiowane)", + "search_user_to_block": "Wyszukaj kogo chcesz zablokować", + "search_user_to_mute": "Wyszukaj kogo chcesz wyciszyć", + "security": "Bezpieczeństwo", + "security_tab": "Bezpieczeństwo", + "sensitive_by_default": "Domyślnie oznaczaj wpisy jako wrażliwe", + "set_new_avatar": "Ustaw nowy awatar", + "set_new_profile_background": "Ustaw nowe tło profilu", + "set_new_profile_banner": "Ustaw nowy banner profilu", + "setting_changed": "Opcja różni się od domyślnej", + "settings": "Ustawienia", + "show_admin_badge": "Pokazuj odznakę „Administrator” na moim profilu", + "show_moderator_badge": "Pokazuj odznakę „Moderator” na moim profilu", + "stop_gifs": "Odtwarzaj GIFy po najechaniu kursorem", + "streaming": "Włącz automatycznie strumieniowanie nowych postów gdy jesteś na początku strony", + "style": { + "advanced_colors": { + "_tab_label": "Zaawansowane", + "alert": "Tło alertu", + "alert_error": "Błąd", + "alert_neutral": "Neutralne", + "alert_warning": "Ostrzeżenie", + "badge": "Tło odznaki", + "badge_notification": "Powiadomienie", + "borders": "Granice", + "buttons": "Przyciski", + "chat": { + "border": "Granica", + "incoming": "Wiadomości przychodzące", + "outgoing": "Wiadomości wychodzące" + }, + "disabled": "Wyłączone", + "faint_text": "Zanikający tekst", + "highlight": "Podświetlone elementy", + "icons": "Ikony", + "inputs": "Pola wejścia", + "panel_header": "Nagłówek panelu", + "poll": "Wykres ankiety", + "popover": "Etykiety, menu, popovery", + "post": "Posty/Bio użytkowników", + "pressed": "Naciśnięte", + "selectedMenu": "Wybrany element menu", + "selectedPost": "Wybrany post", + "tabs": "Karty", + "toggled": "Przełączone", + "top_bar": "Górny pasek", + "underlay": "Podkład", + "wallpaper": "Tło" + }, + "common": { + "color": "Kolor", + "contrast": { + "context": { + "18pt": "dla dużego tekstu (18pt+)", + "text": "dla tekstu" + }, + "hint": "Współczynnik kontrastu wynosi {ratio}, {level} {context}", + "level": { + "aa": "spełnia wymogi poziomu AA (minimalne)", + "aaa": "spełnia wymogi poziomu AAA (zalecane)", + "bad": "nie spełnia żadnych wymogów dostępności" + } + }, + "opacity": "Widoczność" + }, + "common_colors": { + "_tab_label": "Ogólne", + "foreground_hint": "Zajrzyj do karty „Zaawansowane”, aby uzyskać dokładniejszą kontrolę", + "main": "Ogólne kolory", + "rgbo": "Ikony, wyróżnienia, odznaki" + }, + "fonts": { + "_tab_label": "Czcionki", + "components": { + "input": "Pola wejścia", + "interface": "Interfejs", + "post": "Tekst postu", + "postCode": "Tekst o stałej szerokości znaków w sformatowanym poście" + }, + "custom": "Niestandardowa", + "family": "Nazwa czcionki", + "help": "Wybierz czcionkę używaną przez elementy UI. Jeżeli wybierzesz niestandardową, musisz wpisać dokładnie tę nazwę, pod którą pojawia się w systemie.", + "size": "Rozmiar (w pikselach)", + "weight": "Grubość" + }, + "preview": { + "button": "Przycisk", + "checkbox": "Przeleciałem(-am) przez zasady użytkowania", + "content": "Zawartość", + "error": "Przykładowy błąd", + "faint_link": "pomocny podręcznik", + "fine_print": "Przeczytaj nasz {0}, aby nie nauczyć się niczego przydatnego!", + "header": "Podgląd", + "header_faint": "W porządku", + "input": "Właśnie wróciłem z kościoła", + "link": "i fajny mały odnośnik", + "mono": "treści", + "text": "Trochę więcej {0} i {1}" + }, + "radii": { + "_tab_label": "Zaokrąglenie" + }, + "shadows": { + "_tab_label": "Cień i podświetlenie", + "blur": "Rozmycie", + "component": "Komponent", + "components": { + "avatar": "Awatar użytkownika (w widoku profilu)", + "avatarStatus": "Awatar użytkownika (w widoku wpisu)", + "button": "Przycisk", + "buttonHover": "Przycisk (po najechaniu)", + "buttonPressed": "Przycisk (naciśnięty)", + "buttonPressedHover": "Przycisk(naciśnięty+najechany)", + "input": "Pole wejścia", + "panel": "Panel", + "panelHeader": "Nagłówek panelu", + "popup": "Wyskakujące okna i podpowiedzi", + "topBar": "Górny pasek" + }, + "filter_hint": { + "always_drop_shadow": "Ostrzeżenie, ten cień zawsze używa {0} jeżeli to obsługiwane przez przeglądarkę.", + "avatar_inset": "Pamiętaj że użycie jednocześnie cieni inset i nie inset na awatarach może dać nieoczekiwane wyniki z przezroczystymi awatarami.", + "drop_shadow_syntax": "{0} nie obsługuje parametru {1} i słowa kluczowego {2}.", + "inset_classic": "Cienie inset będą używały {0}", + "spread_zero": "Cienie o ujemnej szerokości będą widoczne tak, jakby wynosiła ona zero" + }, + "hintV3": "Dla cieni możesz również użyć notacji {0} by użyć inny slot koloru.", + "inset": "Inset", + "override": "Zastąp", + "shadow_id": "Cień #{value}", + "spread": "Szerokość" + }, + "switcher": { + "clear_all": "Wyczyść wszystko", + "clear_opacity": "Wyczyść widoczność", + "help": { + "fe_downgraded": "Wersja PleromaFE została cofnięta.", + "fe_upgraded": "Silnik motywów PleromaFE został zaaktualizowany.", + "future_version_imported": "Plik który zaimportowałeś(-aś) został stworzony w nowszej wersji FE.", + "migration_napshot_gone": "Z jakiegoś powodu migawka zniknęła, niektóre rzeczy mogą wyglądać inaczej niż zapamiętałeś(-aś).", + "migration_snapshot_ok": "Żeby być bezpiecznym, migawka motywu została załadowana. Możesz spróbować załadować dane motywu.", + "older_version_imported": "Plik który zaimportowałeś(-aś) został stworzony w starszej wersji FE.", + "snapshot_missing": "Nie znaleziono migawki motywu w pliku, więc motyw może wyglądać inaczej niż pierwotnie zaplanowano.", + "snapshot_present": "Migawka motywu jest załadowana, więc wszystkie wartości zostały nadpisane. Zamiast tego możesz załadować właściwe dane motywu.", + "snapshot_source_mismatch": "Konflikt wersji: najprawdopodobniej FE zostało cofnięte do poprzedniej wersji i zaktualizowane ponownie, jeśli zmieniłeś(-aś) motyw używając starszej wersji FE, najprawdopodobniej chcesz używać starszej wersji, w przeciwnym razie użyj nowej wersji.", + "upgraded_from_v2": "PleromaFE zostało zaaktualizowane, motyw może wyglądać nieco inaczej niż zapamiętałeś(-aś).", + "v2_imported": "Plik który zaimportowałeś(-aś) został stworzony dla starszego FE. Próbujemy zwiększyć kompatybilność, lecz wciąż mogą występować rozbieżności." + }, + "keep_as_is": "Zostaw po staremu", + "keep_color": "Zachowaj kolory", + "keep_fonts": "Zachowaj czcionki", + "keep_opacity": "Zachowaj widoczność", + "keep_roundness": "Zachowaj zaokrąglenie", + "keep_shadows": "Zachowaj cienie", + "load_theme": "Załaduj motyw", + "reset": "Wyzeruj", + "save_load_hint": "Opcje „zachowaj” pozwalają na pozostanie przy obecnych opcjach po wybraniu lub załadowaniu motywu, jak i przechowywanie ich podczas eksportowania motywu. Jeżeli wszystkie opcje są odznaczone, eksportowanie motywu spowoduje zapisanie wszystkiego.", + "use_snapshot": "Stara wersja", + "use_source": "Nowa wersja" + } + }, + "subject_input_always_show": "Zawsze pokazuj pole tematu", + "subject_line_behavior": "Kopiuj temat podczas odpowiedzi", + "subject_line_email": "Jak w mailach – „re: temat”", + "subject_line_mastodon": "Jak na Mastodonie – po prostu kopiuj", + "subject_line_noop": "Nie kopiuj", + "text": "Tekst", + "theme": "Motyw", + "theme_help": "Użyj kolorów w notacji szesnastkowej (#rrggbb), by stworzyć swój motyw.", + "theme_help_v2_1": "Możesz też zastąpić kolory i widoczność poszczególnych komponentów przełączając pola wyboru, użyj „Wyczyść wszystko” aby usunąć wszystkie zastąpienia.", + "theme_help_v2_2": "Ikony pod niektórych wpisami są wskaźnikami kontrastu pomiędzy tłem a tekstem, po najechaniu na nie otrzymasz szczegółowe informacje. Zapamiętaj, że jeżeli używasz przezroczystości, wskaźniki pokazują najgorszy możliwy przypadek.", + "token": "Token", + "tooltipRadius": "Etykiety/alerty", + "type_domains_to_mute": "Wyszukaj domeny, które chcesz wyciszyć", + "upload_a_photo": "Wyślij zdjęcie", + "useStreamingApi": "Otrzymuj posty i powiadomienia w czasie rzeczywistym", + "useStreamingApiWarning": "(Niezalecane, eksperymentalne, pomija posty)", + "use_contain_fit": "Nie przycinaj załączników na miniaturach", + "use_one_click_nsfw": "Otwieraj załączniki NSFW jednym kliknięciem", + "user_mutes": "Użytkownicy", + "user_settings": "Ustawienia użytkownika", + "valid_until": "Ważne do", + "values": { + "false": "nie", + "true": "tak" + }, + "version": { + "backend_version": "Wersja back-endu", + "frontend_version": "Wersja front-endu", + "title": "Wersja" + }, + "virtual_scrolling": "Optymalizuj renderowanie osi czasu", + "word_filter": "Filtr słów" }, - "version": { - "title": "Wersja", - "backend_version": "Wersja back-endu", - "frontend_version": "Wersja front-endu" + "status": { + "bookmark": "Dodaj do zakładek", + "copy_link": "Kopiuj link do statusu", + "delete": "Usuń status", + "delete_confirm": "Czy naprawdę chcesz usunąć ten status?", + "expand": "Rozwiń", + "external_source": "Zewnętrzne źródło", + "favorites": "Ulubione", + "hide_content": "Ukryj zawartość", + "hide_full_subject": "Ukryj cały temat", + "mute_conversation": "Wycisz konwersację", + "nsfw": "NSFW", + "pin": "Przypnij na profilu", + "pinned": "Przypnięte", + "repeats": "Powtórzenia", + "replies_list": "Odpowiedzi:", + "reply_to": "Odpowiedź dla", + "show_content": "Pokaż zawartość", + "show_full_subject": "Pokaż cały temat", + "status_deleted": "Ten wpis został usunięty", + "status_unavailable": "Status niedostępny", + "thread_muted": "Wątek wyciszony", + "thread_muted_and_words": ", ma słowa:", + "unbookmark": "Usuń z zakładek", + "unmute_conversation": "Odcisz konwersację", + "unpin": "Odepnij z profilu" }, - "notification_setting_privacy": "Prywatność", - "notification_setting_filters": "Filtry", - "notification_setting_privacy_option": "Ukryj nadawcę i zawartość powiadomień push", - "reset_avatar": "Zresetuj awatar", - "profile_fields": { - "value": "Zawartość", - "label": "Metadane profilu", - "name": "Nazwa", - "add_field": "Dodaj pole" + "time": { + "in_future": "za {0}", + "in_past": "{0} temu", + "now": "teraz", + "now_short": "teraz", + "unit": { + "days": "{0} dni", + "days_short": "{0} d", + "hours": "{0} godzin", + "hours_short": "{0} godz.", + "minutes": "{0} minut", + "minutes_short": "{0} min", + "months": "{0} miesięcy", + "months_short": "{0} mies.", + "seconds": "{0} sekund", + "seconds_short": "{0} s", + "weeks": "{0} tygodni", + "weeks_short": "{0} tyg.", + "years": "{0} lata", + "years_short": "{0} lata" + } }, - "bot": "To konto jest prowadzone przez bota", - "notification_setting_hide_notification_contents": "Ukryj nadawcę i zawartość powiadomień push", - "notification_setting_block_from_strangers": "Zablokuj powiadomienia od użytkowników których nie obserwujesz", - "virtual_scrolling": "Optymalizuj renderowanie osi czasu", - "reset_background_confirm": "Czy naprawdę chcesz zresetować tło?", - "reset_banner_confirm": "Czy naprawdę chcesz zresetować banner?", - "reset_avatar_confirm": "Czy naprawdę chcesz zresetować awatar?", - "reset_profile_banner": "Zresetuj banner profilowy", - "reset_profile_background": "Zresetuj tło profilowe", - "mutes_and_blocks": "Wyciszenia i blokady", - "chatMessageRadius": "Wiadomość czatu", - "import_mutes_from_a_csv_file": "Zaimportuj wyciszenia z pliku .csv", - "mutes_imported": "Zaimportowano wyciszenia! Przetwarzanie zajmie chwilę.", - "mute_import_error": "Wystąpił błąd podczas importowania wyciszeń", - "mute_import": "Import wyciszeń", - "mute_export_button": "Wyeksportuj swoje wyciszenia do pliku .csv", - "mute_export": "Eksport wyciszeń", - "hide_wallpaper": "Ukryj tło instancji", - "save": "Zapisz zmiany", - "setting_changed": "Opcja różni się od domyślnej", - "right_sidebar": "Pokaż pasek boczny po prawej", - "file_export_import": { - "errors": { - "invalid_file": "Wybrany plik nie jest obsługiwaną kopią zapasową ustawień Pleromy. Nie dokonano żadnych zmian." - }, - "backup_restore": "Kopia zapasowa ustawień", - "backup_settings": "Kopia zapasowa ustawień do pliku", - "backup_settings_theme": "Kopia zapasowa ustawień i motywu do pliku", - "restore_settings": "Przywróć ustawienia z pliku" + "timeline": { + "collapse": "Zwiń", + "conversation": "Rozmowa", + "error": "Błąd pobierania osi czasu: {0}", + "load_older": "Załaduj starsze statusy", + "no_more_statuses": "Brak kolejnych statusów", + "no_retweet_hint": "Wpis oznaczony jako tylko dla obserwujących lub bezpośredni nie może zostać powtórzony", + "no_statuses": "Brak statusów", + "reload": "Odśwież", + "repeated": "powtórzył(-a)", + "show_new": "Pokaż nowe", + "socket_broke": "Utracono połączenie w czasie rzeczywistym: kod CloseEvent {0}", + "socket_reconnected": "Osiągnięto połączenie w czasie rzeczywistym", + "up_to_date": "Na bieżąco" }, - "more_settings": "Więcej ustawień", - "word_filter": "Filtr słów", - "hide_media_previews": "Ukryj podgląd mediów", - "hide_all_muted_posts": "Ukryj wyciszone słowa", - "reply_visibility_following_short": "Pokazuj odpowiedzi obserwującym", - "reply_visibility_self_short": "Pokazuj odpowiedzi tylko do mnie", - "sensitive_by_default": "Domyślnie oznaczaj wpisy jako wrażliwe", - "hide_shoutbox": "Ukryj shoutbox instancji" - }, - "time": { - "now": "teraz", - "now_short": "teraz", - "in_future": "za {0}", - "in_past": "{0} temu", - "unit": { - "day": "{0} dzień", - "days": "{0} dni", - "day_short": "{0} d", - "days_short": "{0} d", - "hour": "{0} godzina", - "hours": "{0} godzin", - "hour_short": "{0} godz.", - "hours_short": "{0} godz.", - "minute": "{0} minuta", - "minutes": "{0} minut", - "minute_short": "{0} min", - "minutes_short": "{0} min", - "month": "{0} miesiąc", - "months": "{0} miesięcy", - "month_short": "{0} mies.", - "months_short": "{0} mies.", - "second": "{0} sekunda", - "seconds": "{0} sekund", - "second_short": "{0} s", - "seconds_short": "{0} s", - "week": "{0} tydzień", - "weeks": "{0} tygodni", - "week_short": "{0} tydz.", - "weeks_short": "{0} tyg.", - "year": "{0} rok", - "years": "{0} lata", - "year_short": "{0} r.", - "years_short": "{0} lata" + "tool_tip": { + "accept_follow_request": "Akceptuj prośbę o możliwość obserwacji", + "add_reaction": "Dodaj reakcję", + "bookmark": "Zakładka", + "favorite": "Dodaj do ulubionych", + "media_upload": "Wyślij media", + "reject_follow_request": "Odrzuć prośbę o możliwość obserwacji", + "repeat": "Powtórz", + "reply": "Odpowiedz", + "user_settings": "Ustawienia użytkownika" + }, + "upload": { + "error": { + "base": "Wysyłanie nie powiodło się.", + "default": "Spróbuj ponownie później", + "file_too_big": "Zbyt duży plik [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Błąd wysyłania: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktywuj konto", + "deactivate_account": "Dezaktywuj konto", + "delete_account": "Usuń konto", + "delete_user": "Usuń użytkownika", + "disable_any_subscription": "Zakaż całkowicie obserwowania użytkownika", + "disable_remote_subscription": "Zakaż obserwowania użytkownika ze zdalnych instancji", + "force_nsfw": "Oznacz wszystkie posty jako NSFW", + "force_unlisted": "Wymuś posty na niepubliczne", + "grant_admin": "Przyznaj admina", + "grant_moderator": "Przyznaj moderatora", + "moderation": "Moderacja", + "quarantine": "Zakaż federowania postów od tego użytkownika", + "revoke_admin": "Odwołaj admina", + "revoke_moderator": "Odwołaj moderatora", + "sandbox": "Wymuś by posty były tylko dla obserwujących", + "strip_media": "Usuń multimedia z postów" + }, + "approve": "Przyjmij", + "block": "Zablokuj", + "block_progress": "Blokuję…", + "blocked": "Zablokowany!", + "bot": "Bot", + "deny": "Odrzuć", + "edit_profile": "Edytuj profil", + "favorites": "Ulubione", + "follow": "Obserwuj", + "follow_progress": "Wysyłam prośbę…", + "follow_sent": "Wysłano prośbę!", + "follow_unfollow": "Przestań obserwować", + "followees": "Obserwowani", + "followers": "Obserwujący", + "following": "Obserwowany!", + "follows_you": "Obserwuje cię!", + "hidden": "Ukryte", + "hide_repeats": "Ukryj powtórzenia", + "highlight": { + "disabled": "Bez wyróżnienia" + }, + "its_you": "To ty!", + "media": "Media", + "mention": "Wspomnienie", + "message": "Napisz", + "mute": "Wycisz", + "mute_progress": "Wyciszam…", + "muted": "Wyciszony(-a)", + "per_day": "dziennie", + "remote_follow": "Zdalna obserwacja", + "report": "Zgłoś", + "show_repeats": "Pokaż powtórzenia", + "statuses": "Statusy", + "subscribe": "Subskrybuj", + "unblock": "Odblokuj", + "unblock_progress": "Odblokowuję…", + "unmute": "Cofnij wyciszenie", + "unmute_progress": "Cofam wyciszenie…", + "unsubscribe": "Odsubskrybuj" + }, + "user_profile": { + "profile_does_not_exist": "Przepraszamy, ten profil nie istnieje.", + "profile_loading_error": "Przepraszamy, wystąpił błąd podczas ładowania tego profilu.", + "timeline_title": "Oś czasu użytkownika" + }, + "user_reporting": { + "add_comment_description": "Zgłoszenie zostanie wysłane do moderatorów instancji. Możesz dodać powód dlaczego zgłaszasz owe konto poniżej:", + "additional_comments": "Dodatkowe komentarze", + "forward_description": "To konto jest z innego serwera. Wysłać również tam kopię zgłoszenia?", + "forward_to": "Przekaż do {0}", + "generic_error": "Wystąpił błąd podczas przetwarzania twojej prośby.", + "submit": "Wyślij", + "title": "Raportowanie {0}" + }, + "who_to_follow": { + "more": "Więcej", + "who_to_follow": "Propozycje obserwacji" } - }, - "timeline": { - "collapse": "Zwiń", - "conversation": "Rozmowa", - "error_fetching": "Błąd pobierania", - "load_older": "Załaduj starsze statusy", - "no_retweet_hint": "Wpis oznaczony jako tylko dla obserwujących lub bezpośredni nie może zostać powtórzony", - "repeated": "powtórzył(-a)", - "show_new": "Pokaż nowe", - "up_to_date": "Na bieżąco", - "no_more_statuses": "Brak kolejnych statusów", - "no_statuses": "Brak statusów", - "reload": "Odśwież", - "error": "Błąd pobierania osi czasu: {0}", - "socket_broke": "Utracono połączenie w czasie rzeczywistym: kod CloseEvent {0}", - "socket_reconnected": "Osiągnięto połączenie w czasie rzeczywistym" - }, - "status": { - "favorites": "Ulubione", - "repeats": "Powtórzenia", - "delete": "Usuń status", - "pin": "Przypnij na profilu", - "unpin": "Odepnij z profilu", - "pinned": "Przypnięte", - "delete_confirm": "Czy naprawdę chcesz usunąć ten status?", - "reply_to": "Odpowiedź dla", - "replies_list": "Odpowiedzi:", - "mute_conversation": "Wycisz konwersację", - "unmute_conversation": "Odcisz konwersację", - "status_unavailable": "Status niedostępny", - "copy_link": "Kopiuj link do statusu", - "unbookmark": "Usuń z zakładek", - "bookmark": "Dodaj do zakładek", - "hide_content": "Ukryj zawartość", - "show_content": "Pokaż zawartość", - "hide_full_subject": "Ukryj cały temat", - "show_full_subject": "Pokaż cały temat", - "thread_muted_and_words": ", ma słowa:", - "thread_muted": "Wątek wyciszony", - "status_deleted": "Ten wpis został usunięty", - "expand": "Rozwiń", - "nsfw": "NSFW", - "external_source": "Zewnętrzne źródło" - }, - "user_card": { - "approve": "Przyjmij", - "block": "Zablokuj", - "blocked": "Zablokowany!", - "deny": "Odrzuć", - "favorites": "Ulubione", - "follow": "Obserwuj", - "follow_sent": "Wysłano prośbę!", - "follow_progress": "Wysyłam prośbę…", - "follow_unfollow": "Przestań obserwować", - "followees": "Obserwowani", - "followers": "Obserwujący", - "following": "Obserwowany!", - "follows_you": "Obserwuje cię!", - "hidden": "Ukryte", - "its_you": "To ty!", - "media": "Media", - "mention": "Wspomnienie", - "mute": "Wycisz", - "muted": "Wyciszony(-a)", - "per_day": "dziennie", - "remote_follow": "Zdalna obserwacja", - "report": "Zgłoś", - "statuses": "Statusy", - "subscribe": "Subskrybuj", - "unsubscribe": "Odsubskrybuj", - "unblock": "Odblokuj", - "unblock_progress": "Odblokowuję…", - "block_progress": "Blokuję…", - "unmute": "Cofnij wyciszenie", - "unmute_progress": "Cofam wyciszenie…", - "mute_progress": "Wyciszam…", - "hide_repeats": "Ukryj powtórzenia", - "show_repeats": "Pokaż powtórzenia", - "admin_menu": { - "moderation": "Moderacja", - "grant_admin": "Przyznaj admina", - "revoke_admin": "Odwołaj admina", - "grant_moderator": "Przyznaj moderatora", - "revoke_moderator": "Odwołaj moderatora", - "activate_account": "Aktywuj konto", - "deactivate_account": "Dezaktywuj konto", - "delete_account": "Usuń konto", - "force_nsfw": "Oznacz wszystkie posty jako NSFW", - "strip_media": "Usuń multimedia z postów", - "force_unlisted": "Wymuś posty na niepubliczne", - "sandbox": "Wymuś by posty były tylko dla obserwujących", - "disable_remote_subscription": "Zakaż obserwowania użytkownika ze zdalnych instancji", - "disable_any_subscription": "Zakaż całkowicie obserwowania użytkownika", - "quarantine": "Zakaż federowania postów od tego użytkownika", - "delete_user": "Usuń użytkownika" - }, - "message": "Napisz", - "edit_profile": "Edytuj profil", - "highlight": { - "disabled": "Bez wyróżnienia" - }, - "bot": "Bot" - }, - "user_profile": { - "timeline_title": "Oś czasu użytkownika", - "profile_does_not_exist": "Przepraszamy, ten profil nie istnieje.", - "profile_loading_error": "Przepraszamy, wystąpił błąd podczas ładowania tego profilu." - }, - "user_reporting": { - "title": "Raportowanie {0}", - "add_comment_description": "Zgłoszenie zostanie wysłane do moderatorów instancji. Możesz dodać powód dlaczego zgłaszasz owe konto poniżej:", - "additional_comments": "Dodatkowe komentarze", - "forward_description": "To konto jest z innego serwera. Wysłać również tam kopię zgłoszenia?", - "forward_to": "Przekaż do {0}", - "submit": "Wyślij", - "generic_error": "Wystąpił błąd podczas przetwarzania twojej prośby." - }, - "who_to_follow": { - "more": "Więcej", - "who_to_follow": "Propozycje obserwacji" - }, - "tool_tip": { - "media_upload": "Wyślij media", - "repeat": "Powtórz", - "reply": "Odpowiedz", - "favorite": "Dodaj do ulubionych", - "add_reaction": "Dodaj reakcję", - "user_settings": "Ustawienia użytkownika", - "accept_follow_request": "Akceptuj prośbę o możliwość obserwacji", - "reject_follow_request": "Odrzuć prośbę o możliwość obserwacji", - "bookmark": "Zakładka" - }, - "upload": { - "error": { - "base": "Wysyłanie nie powiodło się.", - "file_too_big": "Zbyt duży plik [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Spróbuj ponownie później", - "message": "Błąd wysyłania: {0}" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "Ludzie", - "hashtags": "Hasztagi", - "person_talking": "{count} osoba rozmawia o tym", - "people_talking": "{count} osób rozmawia o tym", - "no_results": "Brak wyników" - }, - "password_reset": { - "forgot_password": "Zapomniałeś(-aś) hasła?", - "password_reset": "Reset hasła", - "instruction": "Wprowadź swój adres email lub nazwę użytkownika. Wyślemy ci link z którym możesz zresetować hasło.", - "placeholder": "Twój email lub nazwa użytkownika", - "check_email": "Sprawdź pocztę, aby uzyskać link do zresetowania hasła.", - "return_home": "Wróć do strony głównej", - "too_many_requests": "Przekroczyłeś(-aś) limit prób, spróbuj ponownie później.", - "password_reset_disabled": "Resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji.", - "password_reset_required": "Musisz zresetować hasło, by się zalogować.", - "password_reset_required_but_mailer_is_disabled": "Musisz zresetować hasło, ale resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji." - }, - "file_type": { - "file": "Plik", - "image": "Zdjęcie", - "video": "Wideo", - "audio": "Audio" - }, - "chats": { - "more": "Więcej", - "delete": "Usuń", - "you": "Ty:", - "delete_confirm": "Czy na pewno chcesz usunąć tą wiadomość?", - "message_user": "Napisz do {nickname}", - "error_sending_message": "Coś poszło nie tak podczas wysyłania wiadomości.", - "error_loading_chat": "Coś poszło nie tak podczas ładowania czatu.", - "empty_message_error": "Nie można wysłać pustej wiadomości", - "new": "Nowy czat", - "empty_chat_list_placeholder": "Nie masz jeszcze żadnych czatów. Zacznij nowy czat!", - "chats": "Czaty" - }, - "display_date": { - "today": "Dzisiaj" - }, - "shoutbox": { - "title": "Shoutbox" - }, - "errors": { - "storage_unavailable": "Pleroma nie mogła uzyskać dostępu do pamięci masowej przeglądarki. Twój login lub lokalne ustawienia nie zostaną zapisane i możesz napotkać problemy. Spróbuj włączyć ciasteczka." - } -} +} \ No newline at end of file diff --git a/src/i18n/prune b/src/i18n/prune new file mode 100755 index 00000000..41e6ae65 --- /dev/null +++ b/src/i18n/prune @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +from glob import glob +import json + + +def prune(other, english): + if not isinstance(other, dict): + return other + + pruned = {} + for key, value in other.items(): + if key in english: + pruned[key] = prune(value, english[key]) + + return pruned + + +with open("en.json", "r", encoding="utf-8") as f: + english = json.load(f) + +for file in glob("*.json"): + if file == "en.json": + continue + + with open(file, "r") as f: + other = json.load(f) + + pruned = prune(other, english) + + with open(file, "w", encoding="utf-8") as f: + json.dump(pruned, f, indent=4, sort_keys=True, ensure_ascii=False) diff --git a/src/i18n/pt.json b/src/i18n/pt.json index 9988f2df..5e38c0a5 100644 --- a/src/i18n/pt.json +++ b/src/i18n/pt.json @@ -1,834 +1,804 @@ { - "chat": { - "title": "Chat" - }, - "features_panel": { - "chat": "Chat", - "gopher": "Gopher", - "media_proxy": "Proxy de multimédia", - "scope_options": "Opções de privacidade", - "text_limit": "Limite de caracteres", - "title": "Características", - "who_to_follow": "Quem seguir", - "upload_limit": "Limite de carregamento", - "pleroma_chat_messages": "Chat do Pleroma" - }, - "finder": { - "error_fetching_user": "Erro ao pesquisar utilizador", - "find_user": "Pesquisar utilizador" - }, - "general": { - "apply": "Aplicar", - "submit": "Enviar", - "more": "Mais", - "generic_error": "Ocorreu um erro", - "optional": "opcional", - "peek": "Espreitar", - "close": "Fechar", - "verify": "Verificar", - "confirm": "Confirmar", - "enable": "Ativar", - "disable": "Desativar", - "cancel": "Cancelar", - "show_less": "Mostrar menos", - "show_more": "Mostrar mais", - "retry": "Tenta novamente", - "error_retry": "Por favor, tenta novamente", - "loading": "A carregar…", - "dismiss": "Ignorar", - "role": - { - "moderator": "Moderador", - "admin": "Admin" - } - }, - "image_cropper": { - "crop_picture": "Cortar imagem", - "save": "Guardar", - "cancel": "Cancelar", - "save_without_cropping": "Guardar sem recortar" - }, - "login": { - "login": "Iniciar Sessão", - "description": "Iniciar sessão com OAuth", - "logout": "Terminar sessão", - "password": "Palavra-passe", - "placeholder": "ex. lain", - "register": "Registar", - "username": "Nome de Utilizador", - "hint": "Entra para participar na discussão", - "heading": { - "totp": "Autenticação de dois fatores", - "recovery": "Recuperação de dois fatores" - }, - "recovery_code": "Código de recuperação", - "authentication_code": "Código de autenticação", - "enter_two_factor_code": "Introduza o código de dois fatores", - "enter_recovery_code": "Introduza um código de recuperação" - }, - "media_modal": { - "previous": "Anterior", - "next": "Próximo" - }, - "nav": { - "about": "Sobre", - "back": "Voltar", - "chat": "Chat local", - "friend_requests": "Pedidos de seguidores", - "mentions": "Menções", - "dms": "Mensagens Diretas", - "public_tl": "Cronologia Pública", - "timeline": "Cronologia", - "twkn": "Rede conhecida", - "user_search": "Pesquisa por Utilizadores", - "who_to_follow": "Quem seguir", - "preferences": "Preferências", - "search": "Pesquisar", - "interactions": "Interações", - "administration": "Administração", - "chats": "Salas de Chat", - "timelines": "Cronologias", - "bookmarks": "Itens Guardados" - }, - "notifications": { - "broken_favorite": "Publicação desconhecida, a procurar…", - "favorited_you": "gostou do teu post", - "followed_you": "seguiu-te", - "load_older": "Carregar notificações antigas", - "notifications": "Notificações", - "read": "Lido!", - "repeated_you": "partilhou o teu post", - "no_more_notifications": "Sem mais notificações", - "reacted_with": "reagiu com {0}", - "migrated_to": "migrou para", - "follow_request": "quer seguir-te", - "error": "Erro ao obter notificações: {0}" - }, - "post_status": { - "new_status": "Publicar nova publicação", - "account_not_locked_warning": "A sua conta não é {0}. Qualquer pessoa pode seguir-te e ver os seus posts privados (só para seguidores).", - "account_not_locked_warning_link": "restrito", - "attachments_sensitive": "Marcar anexos como sensíveis", - "content_type": { - "text/plain": "Texto puro", - "text/bbcode": "BBCode", - "text/html": "HTML", - "text/markdown": "Remarcação" - }, - "content_warning": "Assunto (opcional)", - "default": "Acabei de chegar a Lisboa.", - "direct_warning": "Este post será visível apenas para os usuários mencionados.", - "posting": "A publicar", - "scope": { - "direct": "Direto - Enviar somente aos usuários mencionados", - "private": "Apenas para seguidores - Enviar apenas para seguidores", - "public": "Público - Publicar em cronologias públicas", - "unlisted": "Não listado - Não exibir em cronologias públicas" - }, - "scope_notice": { - "unlisted": "Esta publicação não será visível na Cronologia pública e na Rede conhecida por todos", - "private": "Esta publicação será apenas visível para os teus seguidores", - "public": "Esta publicação será visível para todos" - }, - "empty_status_error": "Não consegues publicar um post vazio e sem ficheiros", - "preview_empty": "Vazio", - "preview": "Pré-visualização", - "media_description": "Descrição da multimédia", - "media_description_error": "Falha ao atualizar ficheiro, tente novamente", - "direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.", - "direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados." - }, - "registration": { - "bio": "Biografia", - "email": "Endereço de e-mail", - "fullname": "Nome para exibição", - "password_confirm": "Confirmação de palavra-passe", - "registration": "Registo", - "token": "Código do convite", - "captcha": "CAPTCHA", - "new_captcha": "Clique na imagem para carregar um novo captcha", - "username_placeholder": "ex. lain", - "fullname_placeholder": "ex. Lain Iwakura", - "bio_placeholder": "ex.\nOlá, sou a Lain\nSou uma menina de anime que vive no Japão suburbano. Devem conhecer-me do \"the Wired\".", - "validations": { - "username_required": "não pode ser deixado em branco", - "fullname_required": "não pode ser deixado em branco", - "email_required": "não pode ser deixado em branco", - "password_required": "não pode ser deixado em branco", - "password_confirmation_required": "não pode ser deixado em branco", - "password_confirmation_match": "deve corresponder à palavra-passe" - } - }, - "settings": { - "app_name": "Nome da aplicação", - "attachmentRadius": "Anexos", - "attachments": "Anexos", - "avatar": "Avatar", - "avatarAltRadius": "Avatares (Notificações)", - "avatarRadius": "Avatares", - "background": "Imagem de Fundo", - "bio": "Biografia", - "blocks_tab": "Bloqueios", - "btnRadius": "Botões", - "cBlue": "Azul (Responder, seguir)", - "cGreen": "Verde (Partilhar)", - "cOrange": "Laranja (Favoritar)", - "cRed": "Vermelho (Cancelar)", - "change_password": "Mudar palavra-passe", - "change_password_error": "Ocorreu um erro ao modificar a sua palavra-passe.", - "changed_password": "Palavra-passe modificada com sucesso!", - "collapse_subject": "Esconder posts com assunto", - "composing": "Escrita", - "confirm_new_password": "Confirmar nova palavra-passe", - "current_avatar": "Seu avatar atual", - "current_password": "Palavra-passe atual", - "current_profile_banner": "Sua capa de perfil atual", - "data_import_export_tab": "Importação/exportação de dados", - "default_vis": "Opção de privacidade padrão", - "delete_account": "Eliminar conta", - "delete_account_description": "Apagar os seus dados permanentemente e desativar a sua conta.", - "delete_account_error": "Ocorreu um erro ao remover a sua conta. Se este persistir, por favor entre em contato com o/a administrador/a da instância.", - "delete_account_instructions": "Escreva a sua palavra-passe no campo abaixo para confirmar a remoção da conta.", - "avatar_size_instruction": "O tamanho mínimo recomendado para imagens de avatar é 150x150 pixels.", - "export_theme": "Guardar predefinições", - "filtering": "Filtragem", - "filtering_explanation": "Todas as publicações que contenham estas palavras serão silenciadas; uma palavra por linha", - "follow_export": "Exportar quem você segue", - "follow_export_button": "Exportar quem você segue para um arquivo CSV", - "follow_export_processing": "Processando. Em breve você receberá a solicitação de download do arquivo", - "follow_import": "Importar quem você segue", - "follow_import_error": "Erro ao importar seguidores", - "follows_imported": "Seguidores importados! O processamento pode demorar um pouco.", - "foreground": "Primeiro Plano", - "general": "Geral", - "hide_attachments_in_convo": "Ocultar anexos em conversas", - "hide_attachments_in_tl": "Ocultar anexos na cronologia", - "max_thumbnails": "Número máximo de miniaturas por post", - "hide_isp": "Esconder painel específico da instância", - "preload_images": "Pré-carregar imagens", - "use_one_click_nsfw": "Abrir anexos sensíveis com um clique", - "hide_post_stats": "Esconder estatísticas de posts (p. ex. número de favoritos)", - "hide_user_stats": "Esconder estatísticas do usuário (p. ex. número de seguidores)", - "hide_filtered_statuses": "Esconder posts filtrados", - "import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV", - "import_theme": "Carregar pré-definição", - "inputRadius": "Campos de entrada", - "checkboxRadius": "Caixas de seleção", - "instance_default": "(padrão: {value})", - "instance_default_simple": "(padrão)", - "interface": "Interface", - "interfaceLanguage": "Idioma da interface", - "invalid_theme_imported": "O arquivo selecionado não é um tema compatível com o Pleroma. Nenhuma mudança no tema foi feita.", - "limited_availability": "Indisponível para seu navegador", - "links": "Links", - "lock_account_description": "Restringir sua conta a seguidores aprovados", - "loop_video": "Repetir vídeos", - "loop_video_silent_only": "Repetir apenas vídeos sem som (como os \"gifs\" do Mastodon)", - "mutes_tab": "Silenciados", - "play_videos_in_modal": "Reproduzir vídeos diretamente no visualizador de multimédia", - "use_contain_fit": "Não cortar o anexo na miniatura", - "name": "Nome", - "name_bio": "Nome & Biografia", - "new_password": "Nova palavra-passe", - "notification_visibility": "Tipos de notificação para mostrar", - "notification_visibility_follows": "Seguidas", - "notification_visibility_likes": "Favoritos", - "notification_visibility_mentions": "Menções", - "notification_visibility_repeats": "Partilhas", - "no_rich_text_description": "Remover formatação de todos os posts", - "no_blocks": "Sem bloqueios", - "no_mutes": "Sem silenciados", - "hide_follows_description": "Não mostrar quem estou seguindo", - "hide_followers_description": "Não mostrar quem me segue", - "show_admin_badge": "Mostrar título de Administrador em meu perfil", - "show_moderator_badge": "Mostrar título de Moderador em meu perfil", - "nsfw_clickthrough": "Ativar clique em anexos e pré-visualizações de links para ocultar anexos NSFW", - "oauth_tokens": "Token OAuth", - "token": "Token", - "refresh_token": "Atualizar Token", - "valid_until": "Válido até", - "revoke_token": "Revogar", - "panelRadius": "Paineis", - "pause_on_unfocused": "Parar transmissão quando a aba não estiver em primeiro plano", - "presets": "Predefinições", - "profile_background": "Pano de fundo de perfil", - "profile_banner": "Capa de perfil", - "profile_tab": "Perfil", - "radii_help": "Arredondar arestas da interface (em pixel)", - "replies_in_timeline": "Respostas na cronologia", - "reply_visibility_all": "Mostrar todas as respostas", - "reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo", - "reply_visibility_self": "Só mostrar respostas direcionadas a mim", - "saving_err": "Erro ao salvar configurações", - "saving_ok": "Configurações salvas", - "security_tab": "Segurança", - "scope_copy": "Copiar opções de privacidade ao responder (Mensagens diretas sempre copiam)", - "set_new_avatar": "Alterar avatar", - "set_new_profile_background": "Alterar o pano de fundo de perfil", - "set_new_profile_banner": "Alterar capa de perfil", - "settings": "Configurações", - "subject_input_always_show": "Sempre mostrar campo de assunto", - "subject_line_behavior": "Copiar assunto ao responder", - "subject_line_email": "Como num e-mail: \"re: assunto\"", - "subject_line_mastodon": "Como o Mastodon: copiar como está", - "subject_line_noop": "Não copiar", - "post_status_content_type": "Tipo de conteúdo do status", - "stop_gifs": "Reproduzir GIFs ao passar o cursor", - "streaming": "Habilitar o fluxo automático de postagens no topo da página", - "text": "Texto", - "theme": "Tema", - "theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.", - "theme_help_v2_1": "Você também pode sobrescrever as cores e opacidade de alguns componentes ao modificar o checkbox, use \"Limpar todos\" para limpar todas as modificações.", - "theme_help_v2_2": "Alguns ícones em registo são indicadores de fundo/contraste de textos, passe por cima para obter informações detalhadas. Tenha em atenção que os indicadores de contraste não funcionam muito bem com transparência.", - "tooltipRadius": "Dicas/alertas", - "upload_a_photo": "Enviar uma foto", - "user_settings": "Configurações de Usuário", - "values": { - "false": "não", - "true": "sim" - }, - "notifications": "Notificações", - "enable_web_push_notifications": "Habilitar notificações web push", - "style": { - "switcher": { - "keep_color": "Manter cores", - "keep_shadows": "Manter sombras", - "keep_opacity": "Manter opacidade", - "keep_roundness": "Manter arredondado", - "keep_fonts": "Manter fontes", - "save_load_hint": "Manter as opções preserva as opções atuais ao selecionar ou carregar temas; também salva as opções ao exportar um tempo. Quanto todos os campos estiverem desmarcados, tudo será salvo ao exportar o tema.", - "reset": "Restaurar o padrão", - "clear_all": "Limpar tudo", - "clear_opacity": "Limpar opacidade", - "help": { - "upgraded_from_v2": "O PleromaFE foi atualizado, a aparência do tema poderá ser um pouco diferente.", - "snapshot_source_mismatch": "Conflito de versões: o mais provável é que o FE tenha revertido e voltado a atualizar, foi alterado o tema numa versão anterior do FE, o mais provável é desejar utilizar a versão anterior; caso contrário, utilize a nova versão.", - "migration_napshot_gone": "Por algum motivo, a pré-visualização estava em falta, algumas coisas poderão parecer diferentes do que se lembra.", - "migration_snapshot_ok": "Para estar seguro, foi carregada uma versão de pré-visualização do tema. Pode tentar carregar dados do tema.", - "fe_downgraded": "Versão do PleromaFE revertida.", - "fe_upgraded": "O criador de temas do PleromaFE foi atualizado depois da atualização da versão.", - "snapshot_missing": "Não existia nenhuma pré-visualização do tema no ficheiro, então pode parecer diferente do previsto originalmente.", - "snapshot_present": "Foi carregada uma pré-visualização do tema, todos os valores são substituídos. Caso contrário, pode carregar o tema completo.", - "older_version_imported": "O ficheiro que importaste foi criado numa versão antiga do FE.", - "future_version_imported": "O ficheiro que importaste foi criado para uma versão mais recente do FE.", - "v2_imported": "O ficheiro que importaste foi feito para uma versão antiga do FE. Tentamos maximizar a compatibilidade, porém, poderão existir incongruências." + "about": { + "mrf": { + "federation": "Federação", + "keyword": { + "ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"", + "is_replaced_by": "→", + "keyword_policies": "Política de Palavras-Chave", + "reject": "Rejeitar", + "replace": "Substituir" + }, + "mrf_policies": "Ativar Políticas MRF", + "mrf_policies_desc": "Políticas MRF manipulam o comportamento da federação nos domínios. As seguintes políticas estão ativadas:", + "simple": { + "accept": "Aceitar", + "accept_desc": "Este domínio aceita apenas mensagens dos seguintes domínios:", + "ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"", + "ftl_removal_desc": "Este domínio remove os seguintes domínios da cronologia \"Rede conhecida por todos\":", + "media_nsfw": "Forçar definição de multimédia como Sensível", + "media_nsfw_desc": "Este domínio força a multimédia a ser marcada como sensível nos seguintes domínios:", + "media_removal": "Remoção de multimédia", + "media_removal_desc": "Este domínio remove multimédia das publicações dos seguintes domínios:", + "quarantine": "Quarentena", + "quarantine_desc": "Este domínio apenas irá publicar nos seguintes domínios:", + "reject": "Rejeitar", + "reject_desc": "Este domínio não aceitará mensagens dos seguintes domínios:", + "simple_policies": "Políticas especificas do domínio" + } }, - "use_source": "Nova versão", - "use_snapshot": "Versão antiga", - "keep_as_is": "Manter como está", - "load_theme": "Carregar tema" - }, - "common": { - "color": "Cor", - "opacity": "Opacidade", - "contrast": { - "hint": "A taxa de contraste é {ratio}, {level} {context}", - "level": { - "aa": "padrão Nível AA (mínimo)", - "aaa": "padrão Nível AAA (recomendado)", - "bad": "nenhum padrão de acessibilidade" - }, - "context": { - "18pt": "para textos longos (18pt+)", - "text": "para texto" - } + "staff": "Staff" + }, + "chats": { + "chats": "Chats", + "delete": "Apagar", + "delete_confirm": "Desejas realmente apagar esta mensagem?", + "empty_chat_list_placeholder": "Não tens conversações ainda. Inicia uma nova conversa!", + "empty_message_error": "Não podes publicar uma mensagem vazia", + "error_loading_chat": "Ocorreu algo de errado ao carregar o chat.", + "error_sending_message": "Ocorreu algo de errado ao enviar a mensagem.", + "message_user": "Mensagem de {nickname}", + "more": "Mais", + "new": "Nova conversação", + "you": "Tu:" + }, + "display_date": { + "today": "Hoje" + }, + "domain_mute_card": { + "mute": "Silenciar", + "mute_progress": "A silenciar…", + "unmute": "Remover silêncio", + "unmute_progress": "A remover o silêncio…" + }, + "emoji": { + "add_emoji": "Inserir emoji", + "custom": "Emoji customizado", + "emoji": "Emoji", + "keep_open": "Manter o seletor aberto", + "load_all": "A carregar todos os {emojiAmount} emojis", + "load_all_hint": "Carregado o primeiro emoji {saneAmount}, carregar todos os emojis pode causar problemas de desempenho.", + "search_emoji": "Pesquisar por um emoji", + "stickers": "Autocolantes", + "unicode": "Emoji Unicode" + }, + "errors": { + "storage_unavailable": "O Pleroma não conseguiu aceder ao armazenamento do navegador. A sua sessão ou definições locais não serão armazenadas e poderá encontrar problemas inesperados. Tente ativar as cookies." + }, + "exporter": { + "export": "Exportar", + "processing": "A processar, brevemente ser-te-á pedido que descarregues o ficheiro" + }, + "features_panel": { + "media_proxy": "Proxy de multimédia", + "scope_options": "Opções de privacidade", + "text_limit": "Limite de caracteres", + "title": "Características", + "upload_limit": "Limite de carregamento", + "who_to_follow": "Quem seguir" + }, + "file_type": { + "audio": "Áudio", + "file": "Ficheiro", + "image": "Imagem", + "video": "Vídeo" + }, + "finder": { + "error_fetching_user": "Erro ao pesquisar utilizador", + "find_user": "Pesquisar utilizador" + }, + "general": { + "apply": "Aplicar", + "cancel": "Cancelar", + "close": "Fechar", + "confirm": "Confirmar", + "disable": "Desativar", + "dismiss": "Ignorar", + "enable": "Ativar", + "error_retry": "Por favor, tenta novamente", + "generic_error": "Ocorreu um erro", + "loading": "A carregar…", + "more": "Mais", + "optional": "opcional", + "peek": "Espreitar", + "retry": "Tenta novamente", + "role": { + "admin": "Admin", + "moderator": "Moderador" + }, + "show_less": "Mostrar menos", + "show_more": "Mostrar mais", + "submit": "Enviar", + "verify": "Verificar" + }, + "image_cropper": { + "cancel": "Cancelar", + "crop_picture": "Cortar imagem", + "save": "Guardar", + "save_without_cropping": "Guardar sem recortar" + }, + "importer": { + "error": "Ocorreu um erro ao importar este ficheiro.", + "submit": "Enviar", + "success": "Importado com sucesso." + }, + "interactions": { + "favs_repeats": "Gostos e Partilhas", + "follows": "Novos seguidores", + "load_older": "Carregar interações mais antigas", + "moves": "O utilizador migra" + }, + "login": { + "authentication_code": "Código de autenticação", + "description": "Iniciar sessão com OAuth", + "enter_recovery_code": "Introduza um código de recuperação", + "enter_two_factor_code": "Introduza o código de dois fatores", + "heading": { + "recovery": "Recuperação de dois fatores", + "totp": "Autenticação de dois fatores" + }, + "hint": "Entra para participar na discussão", + "login": "Iniciar Sessão", + "logout": "Terminar sessão", + "password": "Palavra-passe", + "placeholder": "ex. lain", + "recovery_code": "Código de recuperação", + "register": "Registar", + "username": "Nome de Utilizador" + }, + "media_modal": { + "next": "Próximo", + "previous": "Anterior" + }, + "nav": { + "about": "Sobre", + "administration": "Administração", + "back": "Voltar", + "bookmarks": "Itens Guardados", + "chats": "Salas de Chat", + "dms": "Mensagens Diretas", + "friend_requests": "Pedidos de seguidores", + "interactions": "Interações", + "mentions": "Menções", + "preferences": "Preferências", + "public_tl": "Cronologia Pública", + "search": "Pesquisar", + "timeline": "Cronologia", + "timelines": "Cronologias", + "twkn": "Rede conhecida", + "user_search": "Pesquisa por Utilizadores", + "who_to_follow": "Quem seguir" + }, + "notifications": { + "broken_favorite": "Publicação desconhecida, a procurar…", + "error": "Erro ao obter notificações: {0}", + "favorited_you": "gostou do teu post", + "follow_request": "quer seguir-te", + "followed_you": "seguiu-te", + "load_older": "Carregar notificações antigas", + "migrated_to": "migrou para", + "no_more_notifications": "Sem mais notificações", + "notifications": "Notificações", + "reacted_with": "reagiu com {0}", + "read": "Lido!", + "repeated_you": "partilhou o teu post" + }, + "password_reset": { + "check_email": "Verifica o teu endereço de e-mail para obter um link para repor a tua palavra-passe.", + "forgot_password": "Esqueceu-se da palavra-passe?", + "instruction": "Introduz o teu endereço de e-mail ou nome de utilizador. Enviaremos um link para repores a tua palavra-passe.", + "password_reset": "Repor palavra-passe", + "password_reset_disabled": "A reposição da palavra-passe foi desativada. Contacta o administrador da tua instância.", + "password_reset_required": "Deves repor a tua palavra-passe para iniciar sessão.", + "password_reset_required_but_mailer_is_disabled": "Deves repor a tua palavra-passe, porém, a reposição de palavra-passe está desativada. Contacta o administrador da tua instância.", + "placeholder": "O teu endereço de e-mail ou nome de utilizador", + "return_home": "Voltar à página principal", + "too_many_requests": "Alcançaste o limite de tentativas, tenta novamente mais tarde." + }, + "polls": { + "add_option": "Adicionar Opção", + "add_poll": "Adicionar Sondagem", + "expired": "A sondagem terminou há {0}", + "expires_in": "A sondagem termina em {0}", + "expiry": "Tempo para finalizar sondagem", + "multiple_choices": "Escolha múltipla", + "not_enough_options": "Demasiado poucas opções únicas na sondagem", + "option": "Opção", + "single_choice": "Escolha única", + "type": "Tipo de sondagem", + "vote": "Vota", + "votes": "votos" + }, + "post_status": { + "account_not_locked_warning": "A sua conta não é {0}. Qualquer pessoa pode seguir-te e ver os seus posts privados (só para seguidores).", + "account_not_locked_warning_link": "restrito", + "attachments_sensitive": "Marcar anexos como sensíveis", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Remarcação", + "text/plain": "Texto puro" + }, + "content_warning": "Assunto (opcional)", + "default": "Acabei de chegar a Lisboa.", + "direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados.", + "direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.", + "empty_status_error": "Não consegues publicar um post vazio e sem ficheiros", + "media_description": "Descrição da multimédia", + "media_description_error": "Falha ao atualizar ficheiro, tente novamente", + "new_status": "Publicar nova publicação", + "posting": "A publicar", + "preview": "Pré-visualização", + "preview_empty": "Vazio", + "scope": { + "direct": "Direto - Enviar somente aos usuários mencionados", + "private": "Apenas para seguidores - Enviar apenas para seguidores", + "public": "Público - Publicar em cronologias públicas", + "unlisted": "Não listado - Não exibir em cronologias públicas" + }, + "scope_notice": { + "private": "Esta publicação será apenas visível para os teus seguidores", + "public": "Esta publicação será visível para todos", + "unlisted": "Esta publicação não será visível na Cronologia pública e na Rede conhecida por todos" } - }, - "common_colors": { - "_tab_label": "Comum", - "main": "Cores Comuns", - "foreground_hint": "Configurações mais detalhadas na aba\"Avançado\"", - "rgbo": "Ícones, acentuação, distintivos" - }, - "advanced_colors": { - "_tab_label": "Avançado", - "alert": "Fundo de alerta", - "alert_error": "Erro", - "badge": "Fundo do distintivo", - "badge_notification": "Notificação", - "panel_header": "Topo do painel", - "top_bar": "Barra do topo", - "borders": "Bordas", - "buttons": "Botões", - "inputs": "Caixas de entrada", - "faint_text": "Texto esmaecido", - "chat": { - "border": "Borda", - "outgoing": "Enviadas", - "incoming": "Recebidas" + }, + "registration": { + "bio": "Biografia", + "bio_placeholder": "ex.\nOlá, sou a Lain\nSou uma menina de anime que vive no Japão suburbano. Devem conhecer-me do \"the Wired\".", + "captcha": "CAPTCHA", + "email": "Endereço de e-mail", + "fullname": "Nome para exibição", + "fullname_placeholder": "ex. Lain Iwakura", + "new_captcha": "Clique na imagem para carregar um novo captcha", + "password_confirm": "Confirmação de palavra-passe", + "registration": "Registo", + "token": "Código do convite", + "username_placeholder": "ex. lain", + "validations": { + "email_required": "não pode ser deixado em branco", + "fullname_required": "não pode ser deixado em branco", + "password_confirmation_match": "deve corresponder à palavra-passe", + "password_confirmation_required": "não pode ser deixado em branco", + "password_required": "não pode ser deixado em branco", + "username_required": "não pode ser deixado em branco" + } + }, + "remote_user_resolver": { + "error": "Não encontrado.", + "remote_user_resolver": "Resolução de utilizador remoto", + "searching_for": "A pesquisar por" + }, + "search": { + "hashtags": "Hashtags", + "no_results": "Sem resultados", + "people": "Pessoas", + "people_talking": "{0} pessoas a falar", + "person_talking": "{count} pessoa a falar" + }, + "selectable_list": { + "select_all": "Seleccionar tudo" + }, + "settings": { + "accent": "Destaque", + "allow_following_move": "Permitir seguimento automático quando a conta for migrada para outra instância", + "app_name": "Nome da aplicação", + "attachmentRadius": "Anexos", + "attachments": "Anexos", + "autohide_floating_post_button": "Automaticamente ocultar o botão 'Nova Publicação' (telemóvel)", + "avatar": "Avatar", + "avatarAltRadius": "Avatares (Notificações)", + "avatarRadius": "Avatares", + "avatar_size_instruction": "O tamanho mínimo recomendado para imagens de avatar é 150x150 pixels.", + "background": "Imagem de Fundo", + "bio": "Biografia", + "block_export": "Exportar utilizadores bloqueados", + "block_export_button": "Exporta a tua lista de utilizadores bloqueados para um ficheiro csv", + "block_import": "Importar utilizadores bloqueados", + "block_import_error": "Erro ao importar a lista de utilizadores bloqueados", + "blocks_imported": "Lista de utilizadores bloqueados importada! O processo pode demorar alguns instantes.", + "blocks_tab": "Bloqueios", + "bot": "Esta uma conta robô", + "btnRadius": "Botões", + "cBlue": "Azul (Responder, seguir)", + "cGreen": "Verde (Partilhar)", + "cOrange": "Laranja (Favoritar)", + "cRed": "Vermelho (Cancelar)", + "change_email": "Mudar Endereço de E-mail", + "change_email_error": "Ocorreu um erro ao modificar o seu endereço de e-mail.", + "change_password": "Mudar palavra-passe", + "change_password_error": "Ocorreu um erro ao modificar a sua palavra-passe.", + "changed_email": "Endereço de e-mail modificado com sucesso!", + "changed_password": "Palavra-passe modificada com sucesso!", + "chatMessageRadius": "Mensagem de texto", + "checkboxRadius": "Caixas de seleção", + "collapse_subject": "Esconder posts com assunto", + "composing": "Escrita", + "confirm_new_password": "Confirmar nova palavra-passe", + "current_avatar": "Seu avatar atual", + "current_password": "Palavra-passe atual", + "data_import_export_tab": "Importação/exportação de dados", + "default_vis": "Opção de privacidade padrão", + "delete_account": "Eliminar conta", + "delete_account_description": "Apagar os seus dados permanentemente e desativar a sua conta.", + "delete_account_error": "Ocorreu um erro ao remover a sua conta. Se este persistir, por favor entre em contato com o/a administrador/a da instância.", + "delete_account_instructions": "Escreva a sua palavra-passe no campo abaixo para confirmar a remoção da conta.", + "discoverable": "Permitir a descoberta desta conta em resultados de busca e outros serviços", + "domain_mutes": "Domínios", + "emoji_reactions_on_timeline": "Mostrar reações de emoji na timeline", + "enable_web_push_notifications": "Habilitar notificações web push", + "enter_current_password_to_confirm": "Introduza a sua palavra-passe atual para confirmar a sua identidade", + "export_theme": "Guardar predefinições", + "filtering": "Filtragem", + "filtering_explanation": "Todas as publicações que contenham estas palavras serão silenciadas; uma palavra por linha", + "follow_export": "Exportar quem você segue", + "follow_export_button": "Exportar quem você segue para um arquivo CSV", + "follow_import": "Importar quem você segue", + "follow_import_error": "Erro ao importar seguidores", + "follows_imported": "Seguidores importados! O processamento pode demorar um pouco.", + "foreground": "Primeiro Plano", + "fun": "Divertido", + "general": "Geral", + "greentext": "Texto verde (meme arrows)", + "hide_attachments_in_convo": "Ocultar anexos em conversas", + "hide_attachments_in_tl": "Ocultar anexos na cronologia", + "hide_filtered_statuses": "Esconder posts filtrados", + "hide_followers_count_description": "Não mostrar o número de seguidores", + "hide_followers_description": "Não mostrar quem me segue", + "hide_follows_count_description": "Não mostrar o número de contas seguidas", + "hide_follows_description": "Não mostrar quem estou seguindo", + "hide_isp": "Esconder painel específico da instância", + "hide_muted_posts": "Esconder posts de utilizadores silenciados", + "hide_post_stats": "Esconder estatísticas de posts (p. ex. número de favoritos)", + "hide_user_stats": "Esconder estatísticas do usuário (p. ex. número de seguidores)", + "hide_wallpaper": "Esconder papel de parede da instância", + "import_blocks_from_a_csv_file": "Importar bloqueados a partir de um arquivo CSV", + "import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV", + "import_mutes_from_a_csv_file": "Importar silenciados de um ficheiro csv", + "import_theme": "Carregar pré-definição", + "inputRadius": "Campos de entrada", + "instance_default": "(padrão: {value})", + "instance_default_simple": "(padrão)", + "interface": "Interface", + "interfaceLanguage": "Idioma da interface", + "invalid_theme_imported": "O arquivo selecionado não é um tema compatível com o Pleroma. Nenhuma mudança no tema foi feita.", + "limited_availability": "Indisponível para seu navegador", + "links": "Links", + "lock_account_description": "Restringir sua conta a seguidores aprovados", + "loop_video": "Repetir vídeos", + "loop_video_silent_only": "Repetir apenas vídeos sem som (como os \"gifs\" do Mastodon)", + "max_thumbnails": "Número máximo de miniaturas por post", + "mfa": { + "authentication_methods": "Métodos de autenticação", + "confirm_and_enable": "Confirmar e ativar a palavra-passe de utilização única", + "generate_new_recovery_codes": "Gerar novos códigos de recuperação", + "otp": "Palavra-passe de utilização única", + "recovery_codes": "Códigos de recuperação.", + "recovery_codes_warning": "Anote os códigos ou armazene-os num lugar seguro - caso contrário, não os voltará a ver. Se perder acesso à sua aplicação de dois fatores e aos códigos de recuperação, a sua conta ficará bloqueada.", + "scan": { + "desc": "Utilizando a sua aplicação de dois fatores, faça scan deste código QR ou insira a chave de texto:", + "secret_code": "Chave", + "title": "Scan" + }, + "setup_otp": "Configurar palavra-passe de utilização única", + "title": "Autenticação de Dois Fatores", + "verify": { + "desc": "Para ativar a autenticação de dois fatores, introduza o código da sua aplicação de dois fatores:" + }, + "wait_pre_setup_otp": "pré-configuração de palavra-passe de utilização única", + "waiting_a_recovery_codes": "A receber códigos de recuperação…", + "warning_of_generate_new_codes": "Quando gera novos códigos de recuperação, os antigos deixam de funcionar." }, - "tabs": "Abas", - "toggled": "Alternado", - "disabled": "Desativado", - "selectedMenu": "Elemento do menu seleccionado", - "selectedPost": "Publicação seleccionada", - "pressed": "Pressionado", - "highlight": "Elementos destacados", - "icons": "Ícones", - "poll": "Gráfico da sondagem", - "wallpaper": "Fundo de ecrã", - "underlay": "Sublinhado", - "popover": "Sugestões, menus, etiquetas", - "post": "Publicações/Bios", - "alert_neutral": "Neutro", - "alert_warning": "Precaução" - }, - "radii": { - "_tab_label": "Arredondado" - }, - "shadows": { - "_tab_label": "Luz e sombra", - "component": "Componente", - "override": "Sobrescrever", - "shadow_id": "Sombra #{value}", - "blur": "Borrado", - "spread": "Difusão", - "inset": "Inserção", - "hint": "Para as sombras você também pode usar --variável como valor de cor para utilizar variáveis do CSS3. Tenha em mente que configurar a opacidade não será possível neste caso.", - "filter_hint": { - "always_drop_shadow": "Atenção, esta sombra sempre utiliza {0} quando compatível com o navegador.", - "drop_shadow_syntax": "{0} não é compatível com o parâmetro {1} e a palavra-chave {2}.", - "avatar_inset": "Tenha em mente que combinar as sombras de inserção e a não-inserção em avatares pode causar resultados inesperados em avatares transparentes.", - "spread_zero": "Sombras com difusão > 0 aparecerão como se fossem definidas como zero", - "inset_classic": "Sombras de inserção utilizarão {0}" + "minimal_scopes_mode": "Minimizar as opções de publicação", + "mute_export": "Exportar silenciados", + "mute_export_button": "Exporta os silenciados para um ficheiro csv", + "mute_import": "Importar silenciados", + "mute_import_error": "Erro ao importar os silenciados", + "mutes_and_blocks": "Silenciados e Bloqueados", + "mutes_imported": "Silenciados importados! Processá-los pode demorar alguns instantes.", + "mutes_tab": "Silenciados", + "name": "Nome", + "name_bio": "Nome & Biografia", + "new_email": "Novo endereço de e-mail", + "new_password": "Nova palavra-passe", + "no_blocks": "Sem bloqueios", + "no_mutes": "Sem silenciados", + "no_rich_text_description": "Remover formatação de todos os posts", + "notification_blocks": "Bloquear um utilizador previne todas as notificações, bem como as desativa.", + "notification_mutes": "Para deixar de receber notificações de um utilizador específico, silencia-o.", + "notification_setting_block_from_strangers": "Bloqueia as notificações de utilizadores que não segues", + "notification_setting_filters": "Filtros", + "notification_setting_hide_notification_contents": "Ocultar o remetente e o conteúdo das notificações push", + "notification_setting_privacy": "Privacidade", + "notification_visibility": "Tipos de notificação para mostrar", + "notification_visibility_emoji_reactions": "Reações", + "notification_visibility_follows": "Seguidas", + "notification_visibility_likes": "Favoritos", + "notification_visibility_mentions": "Menções", + "notification_visibility_moves": "Utilizador Migrado", + "notification_visibility_repeats": "Partilhas", + "notifications": "Notificações", + "nsfw_clickthrough": "Ativar clique em anexos e pré-visualizações de links para ocultar anexos NSFW", + "oauth_tokens": "Token OAuth", + "pad_emoji": "Preencher espaços ao adicionar emojis do seletor", + "panelRadius": "Paineis", + "pause_on_unfocused": "Parar transmissão quando a aba não estiver em primeiro plano", + "play_videos_in_modal": "Reproduzir vídeos diretamente no visualizador de multimédia", + "post_status_content_type": "Tipo de conteúdo do status", + "preload_images": "Pré-carregar imagens", + "presets": "Predefinições", + "profile_background": "Pano de fundo de perfil", + "profile_banner": "Capa de perfil", + "profile_fields": { + "add_field": "Adicionar campo", + "label": "Metadados do perfil", + "name": "Etiqueta", + "value": "Conteúdo" }, - "components": { - "panel": "Painel", - "panelHeader": "Topo do painel", - "topBar": "Barra do topo", - "avatar": "Avatar do usuário (na visualização do perfil)", - "avatarStatus": "Avatar do usuário (na exibição de posts)", - "popup": "Dicas e notificações", - "button": "Botão", - "buttonHover": "Botão (em cima)", - "buttonPressed": "Botão (pressionado)", - "buttonPressedHover": "Botão (pressionado+em cima)", - "input": "Campo de entrada" + "profile_tab": "Perfil", + "radii_help": "Arredondar arestas da interface (em pixel)", + "refresh_token": "Atualizar Token", + "replies_in_timeline": "Respostas na cronologia", + "reply_visibility_all": "Mostrar todas as respostas", + "reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo", + "reply_visibility_self": "Só mostrar respostas direcionadas a mim", + "reset_avatar": "Redefinir avatar", + "reset_avatar_confirm": "Tens a certeza que desejas redefinir o avatar?", + "reset_background_confirm": "Tens a certeza que desejas redefinir o fundo?", + "reset_banner_confirm": "Tens a certeza que desejas redefinir a imagem do cabeçalho?", + "reset_profile_background": "Redefinir fundo de perfil", + "reset_profile_banner": "Redefinir imagem do cabeçalho do perfil", + "revoke_token": "Revogar", + "saving_err": "Erro ao salvar configurações", + "saving_ok": "Configurações salvas", + "scope_copy": "Copiar opções de privacidade ao responder (Mensagens diretas sempre copiam)", + "search_user_to_block": "Pesquisa quais utilizadores desejas bloquear", + "search_user_to_mute": "Pesquisar utilizadores que pretende silenciar", + "security": "Segurança", + "security_tab": "Segurança", + "set_new_avatar": "Alterar avatar", + "set_new_profile_background": "Alterar o pano de fundo de perfil", + "set_new_profile_banner": "Alterar capa de perfil", + "settings": "Configurações", + "show_admin_badge": "Mostrar título de Administrador em meu perfil", + "show_moderator_badge": "Mostrar título de Moderador em meu perfil", + "stop_gifs": "Reproduzir GIFs ao passar o cursor", + "streaming": "Habilitar o fluxo automático de postagens no topo da página", + "style": { + "advanced_colors": { + "_tab_label": "Avançado", + "alert": "Fundo de alerta", + "alert_error": "Erro", + "alert_neutral": "Neutro", + "alert_warning": "Precaução", + "badge": "Fundo do distintivo", + "badge_notification": "Notificação", + "borders": "Bordas", + "buttons": "Botões", + "chat": { + "border": "Borda", + "incoming": "Recebidas", + "outgoing": "Enviadas" + }, + "disabled": "Desativado", + "faint_text": "Texto esmaecido", + "highlight": "Elementos destacados", + "icons": "Ícones", + "inputs": "Caixas de entrada", + "panel_header": "Topo do painel", + "poll": "Gráfico da sondagem", + "popover": "Sugestões, menus, etiquetas", + "post": "Publicações/Bios", + "pressed": "Pressionado", + "selectedMenu": "Elemento do menu seleccionado", + "selectedPost": "Publicação seleccionada", + "tabs": "Abas", + "toggled": "Alternado", + "top_bar": "Barra do topo", + "underlay": "Sublinhado", + "wallpaper": "Fundo de ecrã" + }, + "common": { + "color": "Cor", + "contrast": { + "context": { + "18pt": "para textos longos (18pt+)", + "text": "para texto" + }, + "hint": "A taxa de contraste é {ratio}, {level} {context}", + "level": { + "aa": "padrão Nível AA (mínimo)", + "aaa": "padrão Nível AAA (recomendado)", + "bad": "nenhum padrão de acessibilidade" + } + }, + "opacity": "Opacidade" + }, + "common_colors": { + "_tab_label": "Comum", + "foreground_hint": "Configurações mais detalhadas na aba\"Avançado\"", + "main": "Cores Comuns", + "rgbo": "Ícones, acentuação, distintivos" + }, + "fonts": { + "_tab_label": "Fontes", + "components": { + "input": "Campo de entrada", + "interface": "Interface", + "post": "Postar texto", + "postCode": "Texto monoespaçado em post (formatação rica)" + }, + "custom": "Personalizada", + "family": "Nome da fonte", + "help": "Selecione as fontes dos elementos da interface. Para fonte \"personalizada\" você deve inserir o mesmo nome da fonte no sistema.", + "size": "Tamanho (em px)", + "weight": "Peso" + }, + "preview": { + "button": "Botão", + "checkbox": "Li os termos e condições", + "content": "Conteúdo", + "error": "Erro de exemplo", + "faint_link": "manual útil", + "fine_print": "Leia nosso {0} para não aprender nada!", + "header": "Pré-visualizar", + "header_faint": "Isto está bem", + "input": "Acabei de chegar a Lisboa.", + "link": "um belo link", + "mono": "conteúdo", + "text": "Vários {0} e {1}" + }, + "radii": { + "_tab_label": "Arredondado" + }, + "shadows": { + "_tab_label": "Luz e sombra", + "blur": "Borrado", + "component": "Componente", + "components": { + "avatar": "Avatar do usuário (na visualização do perfil)", + "avatarStatus": "Avatar do usuário (na exibição de posts)", + "button": "Botão", + "buttonHover": "Botão (em cima)", + "buttonPressed": "Botão (pressionado)", + "buttonPressedHover": "Botão (pressionado+em cima)", + "input": "Campo de entrada", + "panel": "Painel", + "panelHeader": "Topo do painel", + "popup": "Dicas e notificações", + "topBar": "Barra do topo" + }, + "filter_hint": { + "always_drop_shadow": "Atenção, esta sombra sempre utiliza {0} quando compatível com o navegador.", + "avatar_inset": "Tenha em mente que combinar as sombras de inserção e a não-inserção em avatares pode causar resultados inesperados em avatares transparentes.", + "drop_shadow_syntax": "{0} não é compatível com o parâmetro {1} e a palavra-chave {2}.", + "inset_classic": "Sombras de inserção utilizarão {0}", + "spread_zero": "Sombras com difusão > 0 aparecerão como se fossem definidas como zero" + }, + "hintV3": "Para as sombras, também pode usar a notação {0} para usar outro espaço de cor.", + "inset": "Inserção", + "override": "Sobrescrever", + "shadow_id": "Sombra #{value}", + "spread": "Difusão" + }, + "switcher": { + "clear_all": "Limpar tudo", + "clear_opacity": "Limpar opacidade", + "help": { + "fe_downgraded": "Versão do PleromaFE revertida.", + "fe_upgraded": "O criador de temas do PleromaFE foi atualizado depois da atualização da versão.", + "future_version_imported": "O ficheiro que importaste foi criado para uma versão mais recente do FE.", + "migration_napshot_gone": "Por algum motivo, a pré-visualização estava em falta, algumas coisas poderão parecer diferentes do que se lembra.", + "migration_snapshot_ok": "Para estar seguro, foi carregada uma versão de pré-visualização do tema. Pode tentar carregar dados do tema.", + "older_version_imported": "O ficheiro que importaste foi criado numa versão antiga do FE.", + "snapshot_missing": "Não existia nenhuma pré-visualização do tema no ficheiro, então pode parecer diferente do previsto originalmente.", + "snapshot_present": "Foi carregada uma pré-visualização do tema, todos os valores são substituídos. Caso contrário, pode carregar o tema completo.", + "snapshot_source_mismatch": "Conflito de versões: o mais provável é que o FE tenha revertido e voltado a atualizar, foi alterado o tema numa versão anterior do FE, o mais provável é desejar utilizar a versão anterior; caso contrário, utilize a nova versão.", + "upgraded_from_v2": "O PleromaFE foi atualizado, a aparência do tema poderá ser um pouco diferente.", + "v2_imported": "O ficheiro que importaste foi feito para uma versão antiga do FE. Tentamos maximizar a compatibilidade, porém, poderão existir incongruências." + }, + "keep_as_is": "Manter como está", + "keep_color": "Manter cores", + "keep_fonts": "Manter fontes", + "keep_opacity": "Manter opacidade", + "keep_roundness": "Manter arredondado", + "keep_shadows": "Manter sombras", + "load_theme": "Carregar tema", + "reset": "Restaurar o padrão", + "save_load_hint": "Manter as opções preserva as opções atuais ao selecionar ou carregar temas; também salva as opções ao exportar um tempo. Quanto todos os campos estiverem desmarcados, tudo será salvo ao exportar o tema.", + "use_snapshot": "Versão antiga", + "use_source": "Nova versão" + } }, - "hintV3": "Para as sombras, também pode usar a notação {0} para usar outro espaço de cor." - }, - "fonts": { - "_tab_label": "Fontes", - "help": "Selecione as fontes dos elementos da interface. Para fonte \"personalizada\" você deve inserir o mesmo nome da fonte no sistema.", - "components": { - "interface": "Interface", - "input": "Campo de entrada", - "post": "Postar texto", - "postCode": "Texto monoespaçado em post (formatação rica)" + "subject_input_always_show": "Sempre mostrar campo de assunto", + "subject_line_behavior": "Copiar assunto ao responder", + "subject_line_email": "Como num e-mail: \"re: assunto\"", + "subject_line_mastodon": "Como o Mastodon: copiar como está", + "subject_line_noop": "Não copiar", + "text": "Texto", + "theme": "Tema", + "theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.", + "theme_help_v2_1": "Você também pode sobrescrever as cores e opacidade de alguns componentes ao modificar o checkbox, use \"Limpar todos\" para limpar todas as modificações.", + "theme_help_v2_2": "Alguns ícones em registo são indicadores de fundo/contraste de textos, passe por cima para obter informações detalhadas. Tenha em atenção que os indicadores de contraste não funcionam muito bem com transparência.", + "token": "Token", + "tooltipRadius": "Dicas/alertas", + "type_domains_to_mute": "Pesquisar domínios para silenciar", + "upload_a_photo": "Enviar uma foto", + "useStreamingApi": "Receber publicações e notificações em tempo real", + "useStreamingApiWarning": "(não recomendado, experimental, pode omitir publicações)", + "use_contain_fit": "Não cortar o anexo na miniatura", + "use_one_click_nsfw": "Abrir anexos sensíveis com um clique", + "user_mutes": "Utilizadores", + "user_settings": "Configurações de Usuário", + "valid_until": "Válido até", + "values": { + "false": "não", + "true": "sim" }, - "family": "Nome da fonte", - "size": "Tamanho (em px)", - "weight": "Peso", - "custom": "Personalizada" - }, - "preview": { - "header": "Pré-visualizar", - "content": "Conteúdo", - "error": "Erro de exemplo", - "button": "Botão", - "text": "Vários {0} e {1}", - "mono": "conteúdo", - "input": "Acabei de chegar a Lisboa.", - "faint_link": "manual útil", - "fine_print": "Leia nosso {0} para não aprender nada!", - "header_faint": "Isto está bem", - "checkbox": "Li os termos e condições", - "link": "um belo link" - } + "version": { + "backend_version": "Versão do Backend", + "frontend_version": "Versão do Frontend", + "title": "Versão" + }, + "virtual_scrolling": "Otimizar a apresentação da cronologia" }, - "mfa": { - "scan": { - "secret_code": "Chave", - "title": "Scan", - "desc": "Utilizando a sua aplicação de dois fatores, faça scan deste código QR ou insira a chave de texto:" - }, - "authentication_methods": "Métodos de autenticação", - "recovery_codes": "Códigos de recuperação.", - "generate_new_recovery_codes": "Gerar novos códigos de recuperação", - "confirm_and_enable": "Confirmar e ativar a palavra-passe de utilização única", - "otp": "Palavra-passe de utilização única", - "verify": { - "desc": "Para ativar a autenticação de dois fatores, introduza o código da sua aplicação de dois fatores:" - }, - "recovery_codes_warning": "Anote os códigos ou armazene-os num lugar seguro - caso contrário, não os voltará a ver. Se perder acesso à sua aplicação de dois fatores e aos códigos de recuperação, a sua conta ficará bloqueada.", - "waiting_a_recovery_codes": "A receber códigos de recuperação…", - "warning_of_generate_new_codes": "Quando gera novos códigos de recuperação, os antigos deixam de funcionar.", - "title": "Autenticação de Dois Fatores", - "wait_pre_setup_otp": "pré-configuração de palavra-passe de utilização única", - "setup_otp": "Configurar palavra-passe de utilização única" + "status": { + "bookmark": "Guardar", + "copy_link": "Copiar o link do post", + "delete": "Eliminar publicação", + "delete_confirm": "Tens a certeza que desejas apagar a publicação?", + "expand": "Expandir", + "external_source": "Fonte externa", + "favorites": "Favoritos", + "hide_content": "Ocultar o conteúdo", + "hide_full_subject": "Ocultar o assunto completo", + "mute_conversation": "Silenciar a conversação", + "nsfw": "NSFW (Não apropriado para trabalho)", + "pin": "Fixar no perfil", + "pinned": "Afixado", + "repeats": "Partilhados", + "replies_list": "Respostas:", + "reply_to": "Responder a", + "show_content": "Mostrar o conteúdo", + "show_full_subject": "Mostrar o assunto completo", + "status_deleted": "Esta publicação foi apagada", + "status_unavailable": "Publicação indisponível", + "thread_muted": "Conversação silenciada", + "thread_muted_and_words": ", contém:", + "unbookmark": "Remover post dos Items Guardados", + "unmute_conversation": "Mostrar a conversação", + "unpin": "Desafixar do perfil" }, - "security": "Segurança", - "mute_import_error": "Erro ao importar os silenciados", - "mute_import": "Importar silenciados", - "mute_export_button": "Exporta os silenciados para um ficheiro csv", - "mute_export": "Exportar silenciados", - "blocks_imported": "Lista de utilizadores bloqueados importada! O processo pode demorar alguns instantes.", - "block_import_error": "Erro ao importar a lista de utilizadores bloqueados", - "block_import": "Importar utilizadores bloqueados", - "block_export_button": "Exporta a tua lista de utilizadores bloqueados para um ficheiro csv", - "block_export": "Exportar utilizadores bloqueados", - "enter_current_password_to_confirm": "Introduza a sua palavra-passe atual para confirmar a sua identidade", - "mutes_and_blocks": "Silenciados e Bloqueados", - "chatMessageRadius": "Mensagem de texto", - "changed_email": "Endereço de e-mail modificado com sucesso!", - "change_email_error": "Ocorreu um erro ao modificar o seu endereço de e-mail.", - "change_email": "Mudar Endereço de E-mail", - "bot": "Esta uma conta robô", - "import_mutes_from_a_csv_file": "Importar silenciados de um ficheiro csv", - "mutes_imported": "Silenciados importados! Processá-los pode demorar alguns instantes.", - "allow_following_move": "Permitir seguimento automático quando a conta for migrada para outra instância", - "domain_mutes": "Domínios", - "discoverable": "Permitir a descoberta desta conta em resultados de busca e outros serviços", - "emoji_reactions_on_timeline": "Mostrar reações de emoji na timeline", - "hide_muted_posts": "Esconder posts de utilizadores silenciados", - "hide_follows_count_description": "Não mostrar o número de contas seguidas", - "hide_followers_count_description": "Não mostrar o número de seguidores", - "notification_visibility_emoji_reactions": "Reações", - "new_email": "Novo endereço de e-mail", - "profile_fields": { - "value": "Conteúdo", - "add_field": "Adicionar campo", - "label": "Metadados do perfil", - "name": "Etiqueta" + "time": { + "in_future": "em {0}", + "in_past": "há {0}", + "now": "agora mesmo", + "now_short": "agora", + "unit": { + "days": "{0} dias", + "days_short": "{0}d", + "hours": "{0} horas", + "hours_short": "{0}h", + "minutes": "{0} minutos", + "minutes_short": "{0}min", + "months": "{0} meses", + "months_short": "{0}m", + "seconds": "{0} segundos", + "seconds_short": "{0}s", + "weeks": "{0} semanas", + "weeks_short": "{0}sem", + "years": "{0} anos", + "years_short": "{0}a" + } }, - "import_blocks_from_a_csv_file": "Importar bloqueados a partir de um arquivo CSV", - "hide_wallpaper": "Esconder papel de parede da instância", - "notification_setting_privacy": "Privacidade", - "notification_setting_filters": "Filtros", - "fun": "Divertido", - "user_mutes": "Utilizadores", - "type_domains_to_mute": "Pesquisar domínios para silenciar", - "useStreamingApiWarning": "(não recomendado, experimental, pode omitir publicações)", - "useStreamingApi": "Receber publicações e notificações em tempo real", - "minimal_scopes_mode": "Minimizar as opções de publicação", - "search_user_to_mute": "Pesquisar utilizadores que pretende silenciar", - "search_user_to_block": "Pesquisa quais utilizadores desejas bloquear", - "notification_setting_hide_notification_contents": "Ocultar o remetente e o conteúdo das notificações push", - "version": { - "frontend_version": "Versão do Frontend", - "backend_version": "Versão do Backend", - "title": "Versão" + "timeline": { + "collapse": "Esconder", + "conversation": "Conversa", + "error": "Erro a obter a cronologia: {0}", + "load_older": "Carregar postagens antigas", + "no_more_statuses": "Sem mais posts", + "no_retweet_hint": "Posts apenas para seguidores ou diretos não podem ser partilhados", + "no_statuses": "Sem posts", + "reload": "Recarregar", + "repeated": "partilhado", + "show_new": "Mostrar novas", + "up_to_date": "Atualizado" }, - "notification_blocks": "Bloquear um utilizador previne todas as notificações, bem como as desativa.", - "notification_mutes": "Para deixar de receber notificações de um utilizador específico, silencia-o.", - "notification_setting_block_from_strangers": "Bloqueia as notificações de utilizadores que não segues", - "greentext": "Texto verde (meme arrows)", - "virtual_scrolling": "Otimizar a apresentação da cronologia", - "reset_background_confirm": "Tens a certeza que desejas redefinir o fundo?", - "reset_banner_confirm": "Tens a certeza que desejas redefinir a imagem do cabeçalho?", - "reset_avatar_confirm": "Tens a certeza que desejas redefinir o avatar?", - "reset_profile_banner": "Redefinir imagem do cabeçalho do perfil", - "reset_profile_background": "Redefinir fundo de perfil", - "reset_avatar": "Redefinir avatar", - "autohide_floating_post_button": "Automaticamente ocultar o botão 'Nova Publicação' (telemóvel)", - "notification_visibility_moves": "Utilizador Migrado", - "accent": "Destaque", - "pad_emoji": "Preencher espaços ao adicionar emojis do seletor" - }, - "timeline": { - "collapse": "Esconder", - "conversation": "Conversa", - "error_fetching": "Erro ao buscar atualizações", - "load_older": "Carregar postagens antigas", - "no_retweet_hint": "Posts apenas para seguidores ou diretos não podem ser partilhados", - "repeated": "partilhado", - "show_new": "Mostrar novas", - "up_to_date": "Atualizado", - "no_more_statuses": "Sem mais posts", - "no_statuses": "Sem posts", - "reload": "Recarregar", - "error": "Erro a obter a cronologia: {0}" - }, - "status": { - "reply_to": "Responder a", - "replies_list": "Respostas:", - "unbookmark": "Remover post dos Items Guardados", - "expand": "Expandir", - "nsfw": "NSFW (Não apropriado para trabalho)", - "status_deleted": "Esta publicação foi apagada", - "hide_content": "Ocultar o conteúdo", - "show_content": "Mostrar o conteúdo", - "hide_full_subject": "Ocultar o assunto completo", - "show_full_subject": "Mostrar o assunto completo", - "thread_muted_and_words": ", contém:", - "thread_muted": "Conversação silenciada", - "external_source": "Fonte externa", - "copy_link": "Copiar o link do post", - "status_unavailable": "Publicação indisponível", - "unmute_conversation": "Mostrar a conversação", - "mute_conversation": "Silenciar a conversação", - "delete_confirm": "Tens a certeza que desejas apagar a publicação?", - "bookmark": "Guardar", - "pin": "Fixar no perfil", - "pinned": "Afixado", - "unpin": "Desafixar do perfil", - "delete": "Eliminar publicação", - "repeats": "Partilhados", - "favorites": "Favoritos" - }, - "user_card": { - "approve": "Aprovar", - "block": "Bloquear", - "blocked": "Bloqueado!", - "deny": "Negar", - "favorites": "Favoritos", - "follow": "Seguir", - "follow_sent": "Pedido enviado!", - "follow_progress": "Enviando…", - "follow_unfollow": "Deixar de seguir", - "followees": "Seguindo", - "followers": "Seguidores", - "following": "Seguindo!", - "follows_you": "Segue você!", - "its_you": "É você!", - "media": "Multimédia", - "mute": "Silenciar", - "muted": "Silenciado", - "per_day": "por dia", - "remote_follow": "Seguir remotamente", - "statuses": "Postagens", - "unblock": "Desbloquear", - "unblock_progress": "A desbloquear…", - "block_progress": "A bloquear…", - "unmute": "Retirar silêncio", - "unmute_progress": "A retirar silêncio…", - "mute_progress": "A silenciar…", - "admin_menu": { - "delete_user": "Eliminar utilizador", - "quarantine": "Não permitir publicações de utilizadores de instâncias remotas", - "disable_any_subscription": "Não permitir que nenhum utilizador te siga", - "disable_remote_subscription": "Não permitir seguidores de instâncias remotas", - "sandbox": "Forçar publicações apenas para seguidores", - "force_unlisted": "Forçar publicações como não listadas", - "strip_media": "Eliminar ficheiros multimédia das publicações", - "force_nsfw": "Marcar todas as publicações como NSFW (não apropriado para o trabalho)", - "delete_account": "Eliminar Conta", - "deactivate_account": "Desativar conta", - "activate_account": "Ativar conta", - "revoke_moderator": "Revogar permissões de Moderador", - "grant_moderator": "Conceder permissões de Moderador", - "revoke_admin": "Revogar permissões de Admin", - "grant_admin": "Conceder permissões de Admin", - "moderation": "Moderação" + "tool_tip": { + "accept_follow_request": "Aceitar o pedido de seguimento", + "add_reaction": "Adicionar Reação", + "bookmark": "Guardar", + "favorite": "Favoritar", + "media_upload": "Envio de multimédia", + "reject_follow_request": "Rejeitar o pedido de seguimento", + "repeat": "Partilhar", + "reply": "Responder", + "user_settings": "Configurações do usuário" }, - "show_repeats": "Mostrar partilhas", - "hide_repeats": "Ocultar partilhas", - "unsubscribe": "Retirar subscrição", - "subscribe": "Subscrever", - "report": "Denunciar", - "message": "Mensagem", - "mention": "Mencionar", - "hidden": "Ocultar" - }, - "user_profile": { - "timeline_title": "Cronologia do Utilizador", - "profile_does_not_exist": "Desculpe, este perfil não existe.", - "profile_loading_error": "Desculpe, houve um erro ao carregar este perfil." - }, - "who_to_follow": { - "more": "Mais", - "who_to_follow": "Quem seguir" - }, - "tool_tip": { - "media_upload": "Envio de multimédia", - "repeat": "Partilhar", - "reply": "Responder", - "favorite": "Favoritar", - "user_settings": "Configurações do usuário", - "bookmark": "Guardar", - "reject_follow_request": "Rejeitar o pedido de seguimento", - "accept_follow_request": "Aceitar o pedido de seguimento", - "add_reaction": "Adicionar Reação" - }, - "upload": { - "error": { - "base": "Falha no envio.", - "file_too_big": "Arquivo grande demais [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Tente novamente mais tarde", - "message": "Falha ao enviar: {0}" + "upload": { + "error": { + "base": "Falha no envio.", + "default": "Tente novamente mais tarde", + "file_too_big": "Arquivo grande demais [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Falha ao enviar: {0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" + "user_card": { + "admin_menu": { + "activate_account": "Ativar conta", + "deactivate_account": "Desativar conta", + "delete_account": "Eliminar Conta", + "delete_user": "Eliminar utilizador", + "disable_any_subscription": "Não permitir que nenhum utilizador te siga", + "disable_remote_subscription": "Não permitir seguidores de instâncias remotas", + "force_nsfw": "Marcar todas as publicações como NSFW (não apropriado para o trabalho)", + "force_unlisted": "Forçar publicações como não listadas", + "grant_admin": "Conceder permissões de Admin", + "grant_moderator": "Conceder permissões de Moderador", + "moderation": "Moderação", + "quarantine": "Não permitir publicações de utilizadores de instâncias remotas", + "revoke_admin": "Revogar permissões de Admin", + "revoke_moderator": "Revogar permissões de Moderador", + "sandbox": "Forçar publicações apenas para seguidores", + "strip_media": "Eliminar ficheiros multimédia das publicações" + }, + "approve": "Aprovar", + "block": "Bloquear", + "block_progress": "A bloquear…", + "blocked": "Bloqueado!", + "deny": "Negar", + "favorites": "Favoritos", + "follow": "Seguir", + "follow_progress": "Enviando…", + "follow_sent": "Pedido enviado!", + "follow_unfollow": "Deixar de seguir", + "followees": "Seguindo", + "followers": "Seguidores", + "following": "Seguindo!", + "follows_you": "Segue você!", + "hidden": "Ocultar", + "hide_repeats": "Ocultar partilhas", + "its_you": "É você!", + "media": "Multimédia", + "mention": "Mencionar", + "message": "Mensagem", + "mute": "Silenciar", + "mute_progress": "A silenciar…", + "muted": "Silenciado", + "per_day": "por dia", + "remote_follow": "Seguir remotamente", + "report": "Denunciar", + "show_repeats": "Mostrar partilhas", + "statuses": "Postagens", + "subscribe": "Subscrever", + "unblock": "Desbloquear", + "unblock_progress": "A desbloquear…", + "unmute": "Retirar silêncio", + "unmute_progress": "A retirar silêncio…", + "unsubscribe": "Retirar subscrição" + }, + "user_profile": { + "profile_does_not_exist": "Desculpe, este perfil não existe.", + "profile_loading_error": "Desculpe, houve um erro ao carregar este perfil.", + "timeline_title": "Cronologia do Utilizador" + }, + "user_reporting": { + "add_comment_description": "Esta denúncia será enviada aos moderadores desta instância. Podes fornecer uma explicação pela qual te encontras a denunciar esta conta abaixo:", + "additional_comments": "Comentários adicionais", + "forward_description": "A conta é de outro servidor. Enviar também uma cópia da denúncia à outra instância?", + "forward_to": "Encaminhar para {0}", + "generic_error": "Ocorreu um erro ao processar o teu pedido.", + "submit": "Enviar", + "title": "Denunciar {0}" + }, + "who_to_follow": { + "more": "Mais", + "who_to_follow": "Quem seguir" } - }, - "about": { - "mrf": { - "simple": { - "quarantine": "Quarentena", - "reject": "Rejeitar", - "accept": "Aceitar", - "media_removal_desc": "Este domínio remove multimédia das publicações dos seguintes domínios:", - "media_removal": "Remoção de multimédia", - "ftl_removal_desc": "Este domínio remove os seguintes domínios da cronologia \"Rede conhecida por todos\":", - "quarantine_desc": "Este domínio apenas irá publicar nos seguintes domínios:", - "reject_desc": "Este domínio não aceitará mensagens dos seguintes domínios:", - "accept_desc": "Este domínio aceita apenas mensagens dos seguintes domínios:", - "simple_policies": "Políticas especificas do domínio", - "media_nsfw": "Forçar definição de multimédia como Sensível", - "ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"", - "media_nsfw_desc": "Este domínio força a multimédia a ser marcada como sensível nos seguintes domínios:" - }, - "keyword": { - "replace": "Substituir", - "reject": "Rejeitar", - "is_replaced_by": "→", - "keyword_policies": "Política de Palavras-Chave", - "ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"" - }, - "federation": "Federação", - "mrf_policies": "Ativar Políticas MRF", - "mrf_policies_desc": "Políticas MRF manipulam o comportamento da federação nos domínios. As seguintes políticas estão ativadas:" - }, - "staff": "Staff" - }, - "remote_user_resolver": { - "searching_for": "A pesquisar por", - "error": "Não encontrado.", - "remote_user_resolver": "Resolução de utilizador remoto" - }, - "emoji": { - "unicode": "Emoji Unicode", - "custom": "Emoji customizado", - "add_emoji": "Inserir emoji", - "search_emoji": "Pesquisar por um emoji", - "emoji": "Emoji", - "load_all": "A carregar todos os {emojiAmount} emojis", - "load_all_hint": "Carregado o primeiro emoji {saneAmount}, carregar todos os emojis pode causar problemas de desempenho.", - "keep_open": "Manter o seletor aberto", - "stickers": "Autocolantes" - }, - "polls": { - "single_choice": "Escolha única", - "vote": "Vota", - "votes": "votos", - "option": "Opção", - "add_option": "Adicionar Opção", - "not_enough_options": "Demasiado poucas opções únicas na sondagem", - "expired": "A sondagem terminou há {0}", - "expires_in": "A sondagem termina em {0}", - "expiry": "Tempo para finalizar sondagem", - "multiple_choices": "Escolha múltipla", - "type": "Tipo de sondagem", - "add_poll": "Adicionar Sondagem" - }, - "importer": { - "error": "Ocorreu um erro ao importar este ficheiro.", - "success": "Importado com sucesso.", - "submit": "Enviar" - }, - "exporter": { - "processing": "A processar, brevemente ser-te-á pedido que descarregues o ficheiro", - "export": "Exportar" - }, - "domain_mute_card": { - "mute_progress": "A silenciar…", - "mute": "Silenciar", - "unmute": "Remover silêncio", - "unmute_progress": "A remover o silêncio…" - }, - "selectable_list": { - "select_all": "Seleccionar tudo" - }, - "interactions": { - "load_older": "Carregar interações mais antigas", - "follows": "Novos seguidores", - "favs_repeats": "Gostos e Partilhas", - "moves": "O utilizador migra" - }, - "errors": { - "storage_unavailable": "O Pleroma não conseguiu aceder ao armazenamento do navegador. A sua sessão ou definições locais não serão armazenadas e poderá encontrar problemas inesperados. Tente ativar as cookies." - }, - "shoutbox": { - "title": "Chat Geral" - }, - "chats": { - "chats": "Chats", - "empty_chat_list_placeholder": "Não tens conversações ainda. Inicia uma nova conversa!", - "error_sending_message": "Ocorreu algo de errado ao enviar a mensagem.", - "error_loading_chat": "Ocorreu algo de errado ao carregar o chat.", - "delete_confirm": "Desejas realmente apagar esta mensagem?", - "more": "Mais", - "empty_message_error": "Não podes publicar uma mensagem vazia", - "new": "Nova conversação", - "delete": "Apagar", - "message_user": "Mensagem de {nickname}", - "you": "Tu:" - }, - "search": { - "hashtags": "Hashtags", - "no_results": "Sem resultados", - "person_talking": "{count} pessoa a falar", - "people_talking": "{0} pessoas a falar", - "people": "Pessoas" - }, - "display_date": { - "today": "Hoje" - }, - "file_type": { - "file": "Ficheiro", - "image": "Imagem", - "video": "Vídeo", - "audio": "Áudio" - }, - "password_reset": { - "password_reset_required_but_mailer_is_disabled": "Deves repor a tua palavra-passe, porém, a reposição de palavra-passe está desativada. Contacta o administrador da tua instância.", - "password_reset_required": "Deves repor a tua palavra-passe para iniciar sessão.", - "password_reset_disabled": "A reposição da palavra-passe foi desativada. Contacta o administrador da tua instância.", - "too_many_requests": "Alcançaste o limite de tentativas, tenta novamente mais tarde.", - "return_home": "Voltar à página principal", - "check_email": "Verifica o teu endereço de e-mail para obter um link para repor a tua palavra-passe.", - "placeholder": "O teu endereço de e-mail ou nome de utilizador", - "instruction": "Introduz o teu endereço de e-mail ou nome de utilizador. Enviaremos um link para repores a tua palavra-passe.", - "password_reset": "Repor palavra-passe", - "forgot_password": "Esqueceu-se da palavra-passe?" - }, - "user_reporting": { - "generic_error": "Ocorreu um erro ao processar o teu pedido.", - "submit": "Enviar", - "forward_to": "Encaminhar para {0}", - "forward_description": "A conta é de outro servidor. Enviar também uma cópia da denúncia à outra instância?", - "additional_comments": "Comentários adicionais", - "add_comment_description": "Esta denúncia será enviada aos moderadores desta instância. Podes fornecer uma explicação pela qual te encontras a denunciar esta conta abaixo:", - "title": "Denunciar {0}" - }, - "time": { - "now": "agora mesmo", - "now_short": "agora", - "in_past": "há {0}", - "in_future": "em {0}", - "unit": { - "years_short": "{0}a", - "year_short": "{0}a", - "years": "{0} anos", - "year": "{0} ano", - "weeks_short": "{0}sem", - "week_short": "{0}sem", - "weeks": "{0} semanas", - "week": "{0} semana", - "seconds_short": "{0}s", - "second_short": "{0}s", - "seconds": "{0} segundos", - "second": "{0} segundo", - "months_short": "{0}m", - "month_short": "{0}m", - "months": "{0} meses", - "month": "{0} mês", - "minutes_short": "{0}min", - "minute_short": "{0}min", - "minutes": "{0} minutos", - "minute": "{0} minuto", - "hours_short": "{0}h", - "hour_short": "{0}h", - "hours": "{0} horas", - "hour": "{0} hora", - "days_short": "{0}d", - "day_short": "{0}d", - "days": "{0} dias", - "day": "{0} dia" - } - } -} +} \ No newline at end of file diff --git a/src/i18n/ro.json b/src/i18n/ro.json index d800a8d4..e102a715 100644 --- a/src/i18n/ro.json +++ b/src/i18n/ro.json @@ -1,81 +1,79 @@ { - "finder": { - "error_fetching_user": "Eroare la preluarea utilizatorului", - "find_user": "Găsește utilizator" - }, - "general": { - "submit": "trimite" - }, - "login": { - "login": "Loghează", - "logout": "Deloghează", - "password": "Parolă", - "placeholder": "d.e. lain", - "register": "Înregistrare", - "username": "Nume utilizator" - }, - "nav": { - "mentions": "Menționări", - "public_tl": "Cronologie Publică", - "timeline": "Cronologie", - "twkn": "Toată Reșeaua Cunoscută" - }, - "notifications": { - "followed_you": "te-a urmărit", - "notifications": "Notificări", - "read": "Citit!" - }, - "post_status": { - "default": "Nu de mult am aterizat în L.A.", - "posting": "Postează" - }, - "registration": { - "bio": "Bio", - "email": "Email", - "fullname": "Numele întreg", - "password_confirm": "Cofirmă parola", - "registration": "Îregistrare" - }, - "settings": { - "attachments": "Atașamente", - "avatar": "Avatar", - "bio": "Bio", - "current_avatar": "Avatarul curent", - "current_profile_banner": "Bannerul curent al profilului", - "filtering": "Filtru", - "filtering_explanation": "Toate stările care conțin aceste cuvinte vor fi puse pe mut, una pe linie", - "hide_attachments_in_convo": "Ascunde atașamentele în conversații", - "hide_attachments_in_tl": "Ascunde atașamentele în cronologie", - "name": "Nume", - "name_bio": "Nume și Bio", - "nsfw_clickthrough": "Permite ascunderea al atașamentelor NSFW", - "profile_background": "Fundalul de profil", - "profile_banner": "Banner de profil", - "set_new_avatar": "Setează avatar nou", - "set_new_profile_background": "Setează fundal nou", - "set_new_profile_banner": "Setează banner nou la profil", - "settings": "Setări", - "theme": "Temă", - "user_settings": "Setările utilizatorului" - }, - "timeline": { - "conversation": "Conversație", - "error_fetching": "Erare la preluarea actualizărilor", - "load_older": "Încarcă stări mai vechi", - "show_new": "Arată cele noi", - "up_to_date": "La zi" - }, - "user_card": { - "block": "Blochează", - "blocked": "Blocat!", - "follow": "Urmărește", - "followees": "Urmărește", - "followers": "Următori", - "following": "Urmărit!", - "follows_you": "Te urmărește!", - "mute": "Pune pe mut", - "muted": "Pus pe mut", - "per_day": "pe zi", - "statuses": "Stări" - } -} + "finder": { + "error_fetching_user": "Eroare la preluarea utilizatorului", + "find_user": "Găsește utilizator" + }, + "general": { + "submit": "trimite" + }, + "login": { + "login": "Loghează", + "logout": "Deloghează", + "password": "Parolă", + "placeholder": "d.e. lain", + "register": "Înregistrare", + "username": "Nume utilizator" + }, + "nav": { + "mentions": "Menționări", + "public_tl": "Cronologie Publică", + "timeline": "Cronologie", + "twkn": "Toată Reșeaua Cunoscută" + }, + "notifications": { + "followed_you": "te-a urmărit", + "notifications": "Notificări", + "read": "Citit!" + }, + "post_status": { + "default": "Nu de mult am aterizat în L.A.", + "posting": "Postează" + }, + "registration": { + "bio": "Bio", + "email": "Email", + "fullname": "Numele întreg", + "password_confirm": "Cofirmă parola", + "registration": "Îregistrare" + }, + "settings": { + "attachments": "Atașamente", + "avatar": "Avatar", + "bio": "Bio", + "current_avatar": "Avatarul curent", + "filtering": "Filtru", + "filtering_explanation": "Toate stările care conțin aceste cuvinte vor fi puse pe mut, una pe linie", + "hide_attachments_in_convo": "Ascunde atașamentele în conversații", + "hide_attachments_in_tl": "Ascunde atașamentele în cronologie", + "name": "Nume", + "name_bio": "Nume și Bio", + "nsfw_clickthrough": "Permite ascunderea al atașamentelor NSFW", + "profile_background": "Fundalul de profil", + "profile_banner": "Banner de profil", + "set_new_avatar": "Setează avatar nou", + "set_new_profile_background": "Setează fundal nou", + "set_new_profile_banner": "Setează banner nou la profil", + "settings": "Setări", + "theme": "Temă", + "user_settings": "Setările utilizatorului" + }, + "timeline": { + "conversation": "Conversație", + "load_older": "Încarcă stări mai vechi", + "show_new": "Arată cele noi", + "up_to_date": "La zi" + }, + "user_card": { + "block": "Blochează", + "blocked": "Blocat!", + "follow": "Urmărește", + "followees": "Urmărește", + "followers": "Următori", + "following": "Urmărit!", + "follows_you": "Te urmărește!", + "mute": "Pune pe mut", + "muted": "Pus pe mut", + "per_day": "pe zi", + "statuses": "Stări" + } +} \ No newline at end of file diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 62d68052..76c46809 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -1,776 +1,751 @@ { - "chat": { - "title": "Чат" - }, - "finder": { - "error_fetching_user": "Пользователь не найден", - "find_user": "Найти пользователя" - }, - "general": { - "apply": "Применить", - "submit": "Отправить", - "cancel": "Отмена", - "disable": "Оключить", - "enable": "Включить", - "confirm": "Подтвердить", - "verify": "Подтверждение", - "more": "Больше", - "generic_error": "Произошла ошибка", - "optional": "не обязательно", - "show_less": "Показать меньше", - "show_more": "Показать больше", - "peek": "Свернуть", - "dismiss": "Закрыть", - "retry": "Попробуйте еще раз", - "error_retry": "Пожалуйста попробуйте еще раз", - "close": "Закрыть", - "loading": "Загрузка…", - "role": { - "moderator": "Модератор", - "admin": "Администратор" - } - }, - "login": { - "login": "Войти", - "logout": "Выйти", - "password": "Пароль", - "placeholder": "e.c. lain", - "register": "Зарегистрироваться", - "username": "Имя пользователя", - "authentication_code": "Код аутентификации", - "enter_recovery_code": "Ввести код восстановления", - "enter_two_factor_code": "Ввести код аутентификации", - "recovery_code": "Код восстановления", - "heading": { - "TotpForm": "Двухфакторная аутентификация", - "RecoveryForm": "Two-factor recovery", - "totp": "Двухэтапная аутентификация", - "recovery": "Восстановление двухэтапной аутентификации" - }, - "hint": "Войдите чтобы присоединиться к дискуссии", - "description": "Войти с помощью OAuth" - }, - "nav": { - "back": "Назад", - "chat": "Локальный чат", - "mentions": "Упоминания", - "interactions": "Взаимодействия", - "public_tl": "Локальная лента", - "timeline": "Главная", - "twkn": "Федеративная лента", - "search": "Поиск", - "friend_requests": "Запросы на чтение", - "bookmarks": "Закладки", - "chats": "Беседы", - "timelines": "Ленты", - "preferences": "Настройки", - "who_to_follow": "Кого читать", - "dms": "Личные сообщения", - "administration": "Панель администратора", - "about": "Об узле", - "user_search": "Поиск пользователей", - "home_timeline": "Главная" - }, - "notifications": { - "broken_favorite": "Неизвестный статус, ищем…", - "favorited_you": "нравится ваш статус", - "followed_you": "начал(а) читать вас", - "load_older": "Загрузить старые уведомления", - "notifications": "Уведомления", - "read": "Прочесть", - "repeated_you": "повторил(а) ваш статус", - "follow_request": "хочет читать вас", - "reacted_with": "добавил(а) реакцию: {0}", - "migrated_to": "перехал на", - "no_more_notifications": "Нет дальнейших уведомлений", - "error": "Ошибка при обновлении уведомлений: {0}" - }, - "interactions": { - "favs_repeats": "Повторы и отметки «Нравится»", - "follows": "Новые читатели", - "load_older": "Загрузить старые взаимодействия", - "moves": "Переезды" - }, - "post_status": { - "account_not_locked_warning": "Ваша учетная запись не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", - "account_not_locked_warning_link": "закрыт", - "attachments_sensitive": "Вложения имеют щекотливый характер", - "content_warning": "Тема (не обязательно)", - "default": "Что нового?", - "direct_warning": "Этот пост будет виден только упомянутым пользователям", - "posting": "Отправляется", - "scope_notice": { - "public": "Этот статус будет виден всем", - "private": "Этот статус будет виден только вашим читателям", - "unlisted": "Этот статус не будет виден в локальной и федеративной ленте" - }, - "scope": { - "direct": "Личное сообщение - этот статус видят только те, кто в нём упомянут", - "private": "Для читателей - этот статус видят только ваши читатели", - "public": "Публичный - этот статус виден всем", - "unlisted": "Тихий - этот пост виден всем, но не отображается в публичных лентах" - }, - "preview_empty": "Пустой предпросмотр", - "media_description_error": "Не удалось обновить вложение, попробуйте еще раз", - "empty_status_error": "Нельзя отправить пустой статус без вложений", - "preview": "Предпросмотр", - "direct_warning_to_first_only": "Это сообщение увидят только пользователи упомянутые в его начале.", - "direct_warning_to_all": "Это сообщение увидят все упомянутые пользователи.", - "content_type": { - "text/bbcode": "BBCode", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/plain": "Простой текст" - }, - "media_description": "Описание вложения", - "new_status": "Написать новый статус", - "post": "Опубликовать" - }, - "registration": { - "bio": "О себе", - "email": "Электронная почта", - "fullname": "Отображаемое имя", - "password_confirm": "Подтверждение пароля", - "registration": "Регистрация", - "token": "Код приглашения", - "validations": { - "username_required": "не должно быть пустым", - "fullname_required": "не должно быть пустым", - "email_required": "не должен быть пустым", - "password_required": "не должен быть пустым", - "password_confirmation_required": "не должно быть пустым", - "password_confirmation_match": "должно совпадать с паролем" - }, - "bio_placeholder": "например:\nПривет, я Игорь Печкин.\nРаботаю почтальоном в деревне Простоквашино. С недавних пор велосипедист.", - "fullname_placeholder": "например: Почтальон Печкин", - "username_placeholder": "например: pechkin", - "captcha": "Код подтверждения", - "new_captcha": "Нажмите на изображение чтобы получить новый код", - "reason_placeholder": "Данный узел обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", - "reason": "Причина регистрации", - "register": "Зарегистрироваться" - }, - "settings": { - "enter_current_password_to_confirm": "Введите свой текущий пароль", - "mfa": { - "otp": "OTP", - "setup_otp": "Настройка OTP", - "wait_pre_setup_otp": "предварительная настройка OTP", - "confirm_and_enable": "Подтвердить и включить OTP", - "title": "Двухэтапная аутентификация", - "generate_new_recovery_codes": "Получить новые коды востановления", - "warning_of_generate_new_codes": "После получения новых кодов восстановления, старые больше не будут работать.", - "recovery_codes": "Коды восстановления.", - "waiting_a_recovery_codes": "Получение кодов восстановления…", - "recovery_codes_warning": "Запишите эти коды и держите в безопасном месте - иначе вы их больше не увидите. Если вы потеряете доступ к OTP приложению - без резервных кодов вы больше не сможете залогиниться.", - "authentication_methods": "Методы аутентификации", - "scan": { - "title": "Сканирование", - "desc": "Отсканируйте QR-код приложением для двухэтапной аутентификации или введите текстовый ключ:", - "secret_code": "Ключ" - }, - "verify": { - "desc": "Чтобы включить двухэтапную аутентификацию, введите код из приложения-аутентификатора:" - } - }, - "attachmentRadius": "Прикреплённые файлы", - "attachments": "Вложения", - "avatar": "Аватар", - "avatarAltRadius": "Аватары в уведомлениях", - "avatarRadius": "Аватары", - "background": "Фон", - "bio": "О себе", - "btnRadius": "Кнопки", - "bot": "Это учётная запись бота", - "cBlue": "Ответить, читать", - "cGreen": "Повторить", - "cOrange": "Нравится", - "cRed": "Отменить", - "change_email": "Сменить адрес электронной почты", - "change_email_error": "Произошла ошибка при попытке изменить электронную почту.", - "changed_email": "Электронная почта изменена успешно!", - "change_password": "Сменить пароль", - "change_password_error": "Произошла ошибка при попытке изменить пароль.", - "changed_password": "Пароль изменён успешно!", - "collapse_subject": "Сворачивать статусы с темой", - "confirm_new_password": "Подтверждение нового пароля", - "current_avatar": "Текущий аватар", - "current_password": "Текущий пароль", - "current_profile_banner": "Текущий баннер профиля", - "data_import_export_tab": "Импорт / Экспорт данных", - "delete_account": "Удалить учетную запись", - "delete_account_description": "Навсегда удалить вашу учётную запись и ваши статусы.", - "delete_account_error": "Возникла ошибка в процессе удаления вашей учетной записи. Если это повторяется, свяжитесь с администратором данного узла.", - "delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.", - "export_theme": "Сохранить Тему", - "filtering": "Фильтрация", - "filtering_explanation": "Все статусы, содержащие данные слова, будут игнорироваться, по одному в строке", - "follow_export": "Экспортировать читаемых", - "follow_export_button": "Экспортировать читаемых в файл .csv", - "follow_export_processing": "Ведётся обработка, скоро вам будет предложено загрузить файл", - "follow_import": "Импортировать читаемых", - "follow_import_error": "Ошибка при импортировании читаемых", - "follows_imported": "Список читаемых импортирован. Обработка займёт некоторое время..", - "foreground": "Передний план", - "general": "Общие", - "hide_attachments_in_convo": "Прятать вложения в разговорах", - "hide_attachments_in_tl": "Прятать вложения в ленте", - "hide_isp": "Скрыть серверную панель", - "import_followers_from_a_csv_file": "Импортировать читаемых из файла .csv", - "import_theme": "Загрузить Тему", - "inputRadius": "Поля ввода", - "checkboxRadius": "Чекбоксы", - "instance_default": "(по умолчанию: {value})", - "instance_default_simple": "(по умолчанию)", - "interface": "Интерфейс", - "interfaceLanguage": "Язык интерфейса", - "limited_availability": "Не доступно в вашем браузере", - "links": "Ссылки", - "lock_account_description": "Сделать учетную запись закрытой — подтверждать читателей вручную", - "loop_video": "Зациливать видео", - "loop_video_silent_only": "Зацикливать только беззвучные видео (т.е. \"гифки\" с Mastodon)", - "name": "Имя", - "name_bio": "Личные данные", - "new_email": "Новый адрес электронной почты", - "new_password": "Новый пароль", - "fun": "Потешное", - "greentext": "Мемные стрелочки", - "notification_visibility": "Показывать уведомления", - "notification_visibility_follows": "Новые читатели", - "notification_visibility_likes": "Лайки", - "notification_visibility_mentions": "Упоминания", - "notification_visibility_repeats": "Повторы", - "no_rich_text_description": "Убрать форматирование из всех статусов", - "hide_follows_description": "Не показывать кого я читаю", - "hide_followers_description": "Не показывать кто читает меня", - "hide_follows_count_description": "Не показывать число читаемых пользователей", - "hide_followers_count_description": "Не показывать число моих читателей", - "show_admin_badge": "Показывать значок администратора в моем профиле", - "show_moderator_badge": "Показывать значок модератора в моем профиле", - "nsfw_clickthrough": "Включить скрытие вложений и предпросмотра ссылок для статусов щекотливого характера", - "oauth_tokens": "OAuth токены", - "token": "Токен", - "refresh_token": "Рефреш токен", - "valid_until": "Годен до", - "revoke_token": "Удалить", - "panelRadius": "Панели", - "pause_on_unfocused": "Приостановить загрузку когда вкладка не в фокусе", - "presets": "Пресеты", - "profile_background": "Фон профиля", - "profile_banner": "Баннер профиля", - "profile_tab": "Профиль", - "radii_help": "Скругление углов элементов интерфейса (в пикселях)", - "replies_in_timeline": "Ответы в ленте", - "reply_visibility_all": "Показывать все ответы", - "reply_visibility_following": "Показывать только ответы мне или тем кого я читаю", - "reply_visibility_self": "Показывать только ответы мне", - "autohide_floating_post_button": "Автоматически скрывать кнопку \"Написать новый статус\" (в мобильной версии)", - "saving_err": "Не удалось сохранить настройки", - "saving_ok": "Сохранено", - "security_tab": "Безопасность", - "scope_copy": "Копировать видимость поста при ответе (всегда включено для личных сообщений)", - "minimal_scopes_mode": "Показывать только личное сообщение и публичный статус в опциях видимости", - "set_new_avatar": "Загрузить новый аватар", - "set_new_profile_background": "Загрузить новый фон профиля", - "set_new_profile_banner": "Загрузить новый баннер профиля", - "settings": "Настройки", - "subject_input_always_show": "Всегда показывать поле ввода темы", - "stop_gifs": "Проигрывать GIF анимации только при наведении", - "streaming": "Включить автоматическую загрузку новых сообщений при прокрутке вверх", - "useStreamingApi": "Получать сообщения и уведомления в реальном времени", - "useStreamingApiWarning": "(Не рекомендуется, экспериментально, статусы могут пропадать)", - "text": "Текст", - "theme": "Тема", - "theme_help": "Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.", - "theme_help_v2_1": "Вы так же можете перепоределить цвета определенных компонентов нажав соотв. галочку. Используйте кнопку \"Очистить всё\" чтобы снять все переопределения.", - "theme_help_v2_2": "Под некоторыми полями ввода это идикаторы контрастности, наведите на них мышью чтобы узнать больше. Приспользовании прозрачности контраст расчитывается для наихудшего варианта.", - "tooltipRadius": "Всплывающие подсказки/уведомления", - "user_settings": "Настройки пользователя", - "values": { - "false": "нет", - "true": "да" - }, - "style": { - "switcher": { - "keep_color": "Оставить цвета", - "keep_shadows": "Оставить тени", - "keep_opacity": "Оставить прозрачность", - "keep_roundness": "Оставить скругление", - "keep_fonts": "Оставить шрифты", - "save_load_hint": "Опции \"оставить...\" позволяют сохранить текущие настройки при выборе другой темы или импорта её из файла. Так же они влияют на то какие компоненты будут сохранены при экспорте темы. Когда все галочки сняты все компоненты будут экспортированы.", - "reset": "Сбросить", - "clear_all": "Очистить всё", - "clear_opacity": "Очистить прозрачность", - "use_source": "Новая версия", - "use_snapshot": "Старая версия", - "keep_as_is": "Оставить, как есть", - "load_theme": "Загрузить тему", - "help": { - "fe_upgraded": "Движок тем для фронт-энда Pleroma был изменен после обновления.", - "older_version_imported": "Файл, который вы импортировали, был сделан в старой версии фронт-энда.", - "future_version_imported": "Файл, который вы импортировали, был сделан в новой версии фронт-энда.", - "v2_imported": "Файл, который вы импортировали, был сделан под старый фронт-энд. Мы стараемся улучшить совместимость, но все еще возможны несостыковки.", - "upgraded_from_v2": "Фронт-энд Pleroma был изменен. Выбранная тема может выглядеть слегка по-другому.", - "fe_downgraded": "Версия фронт-энда Pleroma была откачена." - } - }, - "common": { - "color": "Цвет", - "opacity": "Прозрачность", - "contrast": { - "hint": "Уровень контраста: {ratio}, что {level} {context}", - "level": { - "aa": "соответствует гайдлайну Level AA (минимальный)", - "aaa": "соответствует гайдлайну Level AAA (рекомендуемый)", - "bad": "не соответствует каким либо гайдлайнам" - }, - "context": { - "18pt": "для крупного (18pt+) текста", - "text": "для текста" - } - } - }, - "common_colors": { - "_tab_label": "Общие", - "main": "Общие цвета", - "foreground_hint": "См. вкладку \"Дополнительно\" для более детального контроля", - "rgbo": "Иконки, акценты, ярылки" - }, - "advanced_colors": { - "_tab_label": "Дополнительно", - "alert": "Фон уведомлений", - "alert_error": "Ошибки", - "badge": "Фон значков", - "badge_notification": "Уведомления", - "panel_header": "Заголовок панели", - "top_bar": "Верхняя полоска", - "borders": "Границы", - "buttons": "Кнопки", - "inputs": "Поля ввода", - "faint_text": "Маловажный текст", - "post": "Статусы и раздел \"О себе\"", - "alert_neutral": "Нейтральный", - "alert_warning": "Предупреждение", - "selectedPost": "Выбранный статус", - "pressed": "Нажатие", - "highlight": "Выделенные элементы", - "icons": "Иконки", - "poll": "График результатов опроса", - "wallpaper": "Фон", - "chat": { - "border": "Границы", - "outgoing": "Исходящие", - "incoming": "Входящие" + "about": { + "mrf": { + "federation": "Федерация", + "keyword": { + "ftl_removal": "Убрать из федеративной ленты", + "is_replaced_by": "→", + "keyword_policies": "Действия на ключевые слова", + "reject": "Отклонить", + "replace": "Заменить" + }, + "mrf_policies": "Активные правила MRF (модуль переписывания сообщений)", + "mrf_policies_desc": "Правила MRF (модуль переписывания сообщений) влияют на федерацию данного узла. Следующие правила активны:", + "simple": { + "accept": "Белый список", + "accept_desc": "Данный узел принимает сообщения только со следующих узлов:", + "ftl_removal": "Скрытие с федеративной ленты", + "ftl_removal_desc": "Данный узел скрывает следующие узлы с федеративной ленты:", + "media_nsfw": "Принужденно помеченно как имеющее щекотливый характер", + "media_nsfw_desc": "Данный узел принужденно помечает вложения со следующих узлов как имеющие щекотливый характер:", + "media_removal": "Удаление вложений", + "media_removal_desc": "Данный узел удаляет вложения со следующих узлов:", + "quarantine": "Зона карантина", + "quarantine_desc": "Данный узел отправляет только публичные статусы следующим узлам:", + "reject": "Черный список", + "reject_desc": "Данный узел не принимает сообщения со следующих узлов:", + "simple_policies": "Правила для определенных узлов" + } }, - "tabs": "Вкладки", - "toggled": "Включено", - "disabled": "Отключено", - "selectedMenu": "Выбранный пункт меню" - }, - "radii": { - "_tab_label": "Скругление" - }, - "shadows": { - "_tab_label": "Светотень", - "component": "Компонент", - "override": "Переопределить", - "shadow_id": "Тень №{value}", - "blur": "Размытие", - "spread": "Разброс", - "inset": "Внутренняя", - "hint": "Для теней вы так же можете использовать --variable в качестве цвета чтобы использовать CSS3-переменные. В таком случае прозрачность работать не будет.", - "filter_hint": { - "always_drop_shadow": "Внимание, эта тень всегда использует {0} когда браузер поддерживает это.", - "drop_shadow_syntax": "{0} не поддерживает параметр {1} и ключевое слово {2}.", - "avatar_inset": "Одновременное использование внутренних и внешних теней на (прозрачных) аватарках может дать не те результаты что вы ожидаете.", - "spread_zero": "Тени с разбросом > 0 будут выглядеть как если бы разброс установлен в 0", - "inset_classic": "Внутренние тени будут использовать {0}" + "staff": "Администрация" + }, + "chats": { + "chats": "Беседы", + "delete": "Удалить", + "delete_confirm": "Вы точно хотите удалить сообщение?", + "empty_chat_list_placeholder": "У вас пока нет бесед. Начните одну!", + "empty_message_error": "Нельзя отправить пустое сообщение", + "error_sending_message": "Произошла ошибка при отправке сообщения.", + "message_user": "Напишите {nickname}", + "new": "Новая беседа", + "you": "Вы:" + }, + "domain_mute_card": { + "mute": "Игнорировать", + "mute_progress": "В процессе…", + "unmute": "Прекратить игнорирование", + "unmute_progress": "В процессе…" + }, + "emoji": { + "add_emoji": "Добавить эмодзи", + "custom": "Пользовательские эмодзи", + "emoji": "Эмодзи", + "keep_open": "Оставить окно выбора открытым", + "load_all": "Все {emojiAmount} эмодзи загружаются", + "load_all_hint": "Загружены первые {saneAmount} эмодзи, загрузка всех эмодзи может привести к проблемам с производительностью.", + "search_emoji": "Поиск эмодзи", + "stickers": "Стикеры", + "unicode": "Стандартные эмодзи" + }, + "errors": { + "storage_unavailable": "Pleroma не смогла получить доступ к хранилищу браузера. Ваша сессия и настройки не будут сохранены, и вы можете столкнуться с непредвиденными проблемами. Попробуйте включить файлы cookie." + }, + "exporter": { + "export": "Экспорт", + "processing": "Запрос в обработке, вам скоро будет предложено загрузить файл" + }, + "features_panel": { + "media_proxy": "Прокси для внешних вложений", + "scope_options": "Настраиваемая видимость статусов", + "text_limit": "Лимит символов", + "title": "Особенности", + "upload_limit": "Наибольший размер загружаемого файла", + "who_to_follow": "Предложения кого читать" + }, + "file_type": { + "audio": "Аудиозапись", + "file": "Файл", + "image": "Изображение", + "video": "Видеозапись" + }, + "finder": { + "error_fetching_user": "Пользователь не найден", + "find_user": "Найти пользователя" + }, + "general": { + "apply": "Применить", + "cancel": "Отмена", + "close": "Закрыть", + "confirm": "Подтвердить", + "disable": "Оключить", + "dismiss": "Закрыть", + "enable": "Включить", + "error_retry": "Пожалуйста попробуйте еще раз", + "generic_error": "Произошла ошибка", + "loading": "Загрузка…", + "more": "Больше", + "optional": "не обязательно", + "peek": "Свернуть", + "retry": "Попробуйте еще раз", + "role": { + "admin": "Администратор", + "moderator": "Модератор" }, - "components": { - "panel": "Панель", - "panelHeader": "Заголовок панели", - "topBar": "Верхняя полоска", - "avatar": "Аватар (профиль)", - "avatarStatus": "Аватар (в ленте)", - "popup": "Всплывающие подсказки", - "button": "Кнопки", - "buttonHover": "Кнопки (наведен курсор)", - "buttonPressed": "Кнопки (нажата)", - "buttonPressedHover": "Кнопки (нажата+наведен курсор)", - "input": "Поля ввода" + "show_less": "Показать меньше", + "show_more": "Показать больше", + "submit": "Отправить", + "verify": "Подтверждение" + }, + "image_cropper": { + "cancel": "Отменить", + "crop_picture": "Обрезать картинку", + "save": "Сохранить", + "save_without_cropping": "Сохранить не обрезая" + }, + "importer": { + "error": "Произошла ошибка при импорте файла.", + "submit": "Отправить", + "success": "Импорт прошел успешно." + }, + "interactions": { + "favs_repeats": "Повторы и отметки «Нравится»", + "follows": "Новые читатели", + "load_older": "Загрузить старые взаимодействия", + "moves": "Переезды" + }, + "login": { + "authentication_code": "Код аутентификации", + "description": "Войти с помощью OAuth", + "enter_recovery_code": "Ввести код восстановления", + "enter_two_factor_code": "Ввести код аутентификации", + "heading": { + "recovery": "Восстановление двухэтапной аутентификации", + "totp": "Двухэтапная аутентификация" + }, + "hint": "Войдите чтобы присоединиться к дискуссии", + "login": "Войти", + "logout": "Выйти", + "password": "Пароль", + "placeholder": "e.c. lain", + "recovery_code": "Код восстановления", + "register": "Зарегистрироваться", + "username": "Имя пользователя" + }, + "media_modal": { + "next": "Следующая", + "previous": "Предыдущая" + }, + "nav": { + "about": "Об узле", + "administration": "Панель администратора", + "back": "Назад", + "bookmarks": "Закладки", + "chats": "Беседы", + "dms": "Личные сообщения", + "friend_requests": "Запросы на чтение", + "home_timeline": "Главная", + "interactions": "Взаимодействия", + "mentions": "Упоминания", + "preferences": "Настройки", + "public_tl": "Локальная лента", + "search": "Поиск", + "timeline": "Главная", + "timelines": "Ленты", + "twkn": "Федеративная лента", + "user_search": "Поиск пользователей", + "who_to_follow": "Кого читать" + }, + "notifications": { + "broken_favorite": "Неизвестный статус, ищем…", + "error": "Ошибка при обновлении уведомлений: {0}", + "favorited_you": "нравится ваш статус", + "follow_request": "хочет читать вас", + "followed_you": "начал(а) читать вас", + "load_older": "Загрузить старые уведомления", + "migrated_to": "перехал на", + "no_more_notifications": "Нет дальнейших уведомлений", + "notifications": "Уведомления", + "reacted_with": "добавил(а) реакцию: {0}", + "read": "Прочесть", + "repeated_you": "повторил(а) ваш статус" + }, + "password_reset": { + "check_email": "Проверьте вашу электронную почту и перейдите по ссылке для сброса пароля.", + "forgot_password": "Забыли пароль?", + "instruction": "Введите ваш адрес электронной почты или имя пользователя: на вашу электронную почту будет отправлена ссылка для сброса пароля.", + "password_reset": "Сброс пароля", + "password_reset_disabled": "Автоматический сброс пароля отключен. Свяжитесь с администратором данного узла для сброса пароля.", + "password_reset_required_but_mailer_is_disabled": "Вы должны сбросить свой пароль, однако автоматический сброс пароля отключен. Пожалуйста свяжитесь с администратором данного узла.", + "placeholder": "Ваш адрес электронной почты или имя пользователя", + "return_home": "Вернуться на главную страницу", + "too_many_requests": "Вы исчерпали допустимое количество попыток, попробуйте позже." + }, + "polls": { + "add_option": "Добавить вариант", + "add_poll": "Прикрепить опрос", + "expired": "Опрос закончился {0} назад", + "expires_in": "Опрос заканчивается через {0}", + "expiry": "Срок опроса", + "multiple_choices": "Несколько вариантов", + "not_enough_options": "Недостаточно уникальных вариантов в опросе", + "option": "Вариант", + "people_voted_count": "{count} человек проголосовал | {count} человек проголосовали", + "single_choice": "Один вариант", + "type": "Тип опроса", + "vote": "Проголосовать", + "votes": "голосов", + "votes_count": "{count} голос | {count} голосов" + }, + "post_status": { + "account_not_locked_warning": "Ваша учетная запись не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", + "account_not_locked_warning_link": "закрыт", + "attachments_sensitive": "Вложения имеют щекотливый характер", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Простой текст" + }, + "content_warning": "Тема (не обязательно)", + "default": "Что нового?", + "direct_warning_to_all": "Это сообщение увидят все упомянутые пользователи.", + "direct_warning_to_first_only": "Это сообщение увидят только пользователи упомянутые в его начале.", + "empty_status_error": "Нельзя отправить пустой статус без вложений", + "media_description": "Описание вложения", + "media_description_error": "Не удалось обновить вложение, попробуйте еще раз", + "new_status": "Написать новый статус", + "post": "Опубликовать", + "posting": "Отправляется", + "preview": "Предпросмотр", + "preview_empty": "Пустой предпросмотр", + "scope": { + "direct": "Личное сообщение - этот статус видят только те, кто в нём упомянут", + "private": "Для читателей - этот статус видят только ваши читатели", + "public": "Публичный - этот статус виден всем", + "unlisted": "Тихий - этот пост виден всем, но не отображается в публичных лентах" + }, + "scope_notice": { + "private": "Этот статус будет виден только вашим читателям", + "public": "Этот статус будет виден всем", + "unlisted": "Этот статус не будет виден в локальной и федеративной ленте" } - }, - "fonts": { - "_tab_label": "Шрифты", - "help": "Выберите тип шрифта для использования в интерфейсе. При выборе варианта \"другой\" надо ввести название шрифта в точности как он называется в системе.", - "components": { - "interface": "Интерфейс", - "input": "Поля ввода", - "post": "Текст постов", - "postCode": "Моноширинный текст в статусе (форматирование)" + }, + "registration": { + "bio": "О себе", + "bio_placeholder": "например:\nПривет, я Игорь Печкин.\nРаботаю почтальоном в деревне Простоквашино. С недавних пор велосипедист.", + "captcha": "Код подтверждения", + "email": "Электронная почта", + "fullname": "Отображаемое имя", + "fullname_placeholder": "например: Почтальон Печкин", + "new_captcha": "Нажмите на изображение чтобы получить новый код", + "password_confirm": "Подтверждение пароля", + "reason": "Причина регистрации", + "reason_placeholder": "Данный узел обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", + "register": "Зарегистрироваться", + "registration": "Регистрация", + "token": "Код приглашения", + "username_placeholder": "например: pechkin", + "validations": { + "email_required": "не должен быть пустым", + "fullname_required": "не должно быть пустым", + "password_confirmation_match": "должно совпадать с паролем", + "password_confirmation_required": "не должно быть пустым", + "password_required": "не должен быть пустым", + "username_required": "не должно быть пустым" + } + }, + "remote_user_resolver": { + "error": "Не найдено.", + "searching_for": "Ищем" + }, + "search": { + "hashtags": "Хэштэги", + "no_results": "Ничего не найдено", + "people": "Люди", + "people_talking": "Популярно у {count} человек", + "person_talking": "Популярно у {count} человека" + }, + "selectable_list": { + "select_all": "Выбрать все" + }, + "settings": { + "accent": "Акцент", + "allow_following_move": "Автоматически начать читать новый профиль при переезде", + "app_name": "Приложение", + "attachmentRadius": "Прикреплённые файлы", + "attachments": "Вложения", + "autohide_floating_post_button": "Автоматически скрывать кнопку \"Написать новый статус\" (в мобильной версии)", + "avatar": "Аватар", + "avatarAltRadius": "Аватары в уведомлениях", + "avatarRadius": "Аватары", + "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", + "background": "Фон", + "bio": "О себе", + "block_export": "Экспортировать блокировки", + "block_export_button": "Экспортирует блокировки в CSV файл", + "block_import": "Импорт блокировок", + "block_import_error": "Произошла ошибка при импорте блокировок", + "blocks_imported": "Блокировки импортированы! Обработка может занять некоторое время.", + "blocks_tab": "Блокировки", + "bot": "Это учётная запись бота", + "btnRadius": "Кнопки", + "cBlue": "Ответить, читать", + "cGreen": "Повторить", + "cOrange": "Нравится", + "cRed": "Отменить", + "change_email": "Сменить адрес электронной почты", + "change_email_error": "Произошла ошибка при попытке изменить электронную почту.", + "change_password": "Сменить пароль", + "change_password_error": "Произошла ошибка при попытке изменить пароль.", + "changed_email": "Электронная почта изменена успешно!", + "changed_password": "Пароль изменён успешно!", + "chatMessageRadius": "Сообщения в беседе", + "checkboxRadius": "Чекбоксы", + "collapse_subject": "Сворачивать статусы с темой", + "composing": "Составление статусов", + "confirm_new_password": "Подтверждение нового пароля", + "current_avatar": "Текущий аватар", + "current_password": "Текущий пароль", + "data_import_export_tab": "Импорт / Экспорт данных", + "default_vis": "Видимость статусов по умолчанию", + "delete_account": "Удалить учетную запись", + "delete_account_description": "Навсегда удалить вашу учётную запись и ваши статусы.", + "delete_account_error": "Возникла ошибка в процессе удаления вашей учетной записи. Если это повторяется, свяжитесь с администратором данного узла.", + "delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.", + "discoverable": "Разрешить показывать учетную запись в поисковых системах и прочих сервисах", + "domain_mutes": "Узлы", + "emoji_reactions_on_timeline": "Показывать эмодзи реакции в ленте", + "enable_web_push_notifications": "Включить web push-уведомления", + "enter_current_password_to_confirm": "Введите свой текущий пароль", + "export_theme": "Сохранить Тему", + "filtering": "Фильтрация", + "filtering_explanation": "Все статусы, содержащие данные слова, будут игнорироваться, по одному в строке", + "follow_export": "Экспортировать читаемых", + "follow_export_button": "Экспортировать читаемых в файл .csv", + "follow_import": "Импортировать читаемых", + "follow_import_error": "Ошибка при импортировании читаемых", + "follows_imported": "Список читаемых импортирован. Обработка займёт некоторое время..", + "foreground": "Передний план", + "fun": "Потешное", + "general": "Общие", + "greentext": "Мемные стрелочки", + "hide_all_muted_posts": "Не показывать игнорируемые статусы", + "hide_attachments_in_convo": "Прятать вложения в разговорах", + "hide_attachments_in_tl": "Прятать вложения в ленте", + "hide_filtered_statuses": "Не показывать отфильтрованные статусы", + "hide_followers_count_description": "Не показывать число моих читателей", + "hide_followers_description": "Не показывать кто читает меня", + "hide_follows_count_description": "Не показывать число читаемых пользователей", + "hide_follows_description": "Не показывать кого я читаю", + "hide_isp": "Скрыть серверную панель", + "hide_media_previews": "Не показывать вложения в ленте", + "hide_muted_posts": "Не показывать статусы игнорируемых пользователей", + "hide_post_stats": "Не показывать статистику статусов (например количество отметок «Нравится»)", + "hide_user_stats": "Не показывать статистику пользователей (например количество читателей)", + "hide_wallpaper": "Скрыть обои узла", + "import_blocks_from_a_csv_file": "Импортировать блокировки из CSV файла", + "import_followers_from_a_csv_file": "Импортировать читаемых из файла .csv", + "import_mutes_from_a_csv_file": "Импортировать игнорируемых из CSV файла", + "import_theme": "Загрузить Тему", + "inputRadius": "Поля ввода", + "instance_default": "(по умолчанию: {value})", + "instance_default_simple": "(по умолчанию)", + "interface": "Интерфейс", + "interfaceLanguage": "Язык интерфейса", + "invalid_theme_imported": "Выбраный файл не является темой Pleroma. Изменений в тему не было внесено.", + "limited_availability": "Не доступно в вашем браузере", + "links": "Ссылки", + "lock_account_description": "Сделать учетную запись закрытой — подтверждать читателей вручную", + "loop_video": "Зациливать видео", + "loop_video_silent_only": "Зацикливать только беззвучные видео (т.е. \"гифки\" с Mastodon)", + "max_thumbnails": "Максимальное число миниатюр показываемых в статусе", + "mfa": { + "authentication_methods": "Методы аутентификации", + "confirm_and_enable": "Подтвердить и включить OTP", + "generate_new_recovery_codes": "Получить новые коды востановления", + "otp": "OTP", + "recovery_codes": "Коды восстановления.", + "recovery_codes_warning": "Запишите эти коды и держите в безопасном месте - иначе вы их больше не увидите. Если вы потеряете доступ к OTP приложению - без резервных кодов вы больше не сможете залогиниться.", + "scan": { + "desc": "Отсканируйте QR-код приложением для двухэтапной аутентификации или введите текстовый ключ:", + "secret_code": "Ключ", + "title": "Сканирование" + }, + "setup_otp": "Настройка OTP", + "title": "Двухэтапная аутентификация", + "verify": { + "desc": "Чтобы включить двухэтапную аутентификацию, введите код из приложения-аутентификатора:" + }, + "wait_pre_setup_otp": "предварительная настройка OTP", + "waiting_a_recovery_codes": "Получение кодов восстановления…", + "warning_of_generate_new_codes": "После получения новых кодов восстановления, старые больше не будут работать." }, - "family": "Шрифт", - "size": "Размер (в пикселях)", - "weight": "Ширина", - "custom": "Другой" - }, - "preview": { - "header": "Пример", - "content": "Контент", - "error": "Ошибка стоп 000", - "button": "Кнопка", - "text": "Еще немного {0} и масенькая {1}", - "mono": "контента", - "input": "Что нового?", - "faint_link": "Его придется убрать", - "fine_print": "Если проблемы остались — ваш гуртовщик мыши плохо стоит. {0}.", - "header_faint": "Все идет по плану", - "checkbox": "Я подтверждаю что не было ни единого разрыва", - "link": "ссылка" - } + "minimal_scopes_mode": "Показывать только личное сообщение и публичный статус в опциях видимости", + "more_settings": "Остальные настройки", + "mute_export": "Экспорт игнорируемых", + "mute_export_button": "Экспортирует игнорируемых пользователей в CSV файл", + "mute_import": "Импорт игнорируемых", + "mute_import_error": "Произошла ошибка при импорте игнорируемых", + "mutes_and_blocks": "Блокировки и игнорируемые", + "mutes_imported": "Игнорируемые импортированы! Обработка может занять некоторое время.", + "mutes_tab": "Игнорируемые", + "name": "Имя", + "name_bio": "Личные данные", + "new_email": "Новый адрес электронной почты", + "new_password": "Новый пароль", + "no_blocks": "Нет блокировок", + "no_mutes": "Нет игнорируемых", + "no_rich_text_description": "Убрать форматирование из всех статусов", + "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", + "notification_mutes": "Чтобы не получать уведомления от конкретного пользователя, заглушите его.", + "notification_setting_block_from_strangers": "Не показывать уведомления от пользователей которых вы не читаете", + "notification_setting_filters": "Фильтрация", + "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений", + "notification_setting_privacy": "Приватность", + "notification_visibility": "Показывать уведомления", + "notification_visibility_emoji_reactions": "Реакции", + "notification_visibility_follows": "Новые читатели", + "notification_visibility_likes": "Лайки", + "notification_visibility_mentions": "Упоминания", + "notification_visibility_moves": "Переезды", + "notification_visibility_repeats": "Повторы", + "notifications": "Уведомления", + "nsfw_clickthrough": "Включить скрытие вложений и предпросмотра ссылок для статусов щекотливого характера", + "oauth_tokens": "OAuth токены", + "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню", + "panelRadius": "Панели", + "pause_on_unfocused": "Приостановить загрузку когда вкладка не в фокусе", + "play_videos_in_modal": "Проигрывать видео во всплывающей рамке", + "post_status_content_type": "Формат составляемых статусов по умолчанию", + "preload_images": "Предварительно загружать изображения", + "presets": "Пресеты", + "profile_background": "Фон профиля", + "profile_banner": "Баннер профиля", + "profile_fields": { + "add_field": "Добавить поле", + "label": "Таблица метаданных профиля", + "name": "Пункт", + "value": "Значение" + }, + "profile_tab": "Профиль", + "radii_help": "Скругление углов элементов интерфейса (в пикселях)", + "refresh_token": "Рефреш токен", + "replies_in_timeline": "Ответы в ленте", + "reply_visibility_all": "Показывать все ответы", + "reply_visibility_following": "Показывать только ответы мне или тем кого я читаю", + "reply_visibility_following_short": "Показывать ответы тем кого вы читаете", + "reply_visibility_self": "Показывать только ответы мне", + "reply_visibility_self_short": "Показывать ответы только вам", + "reset_avatar": "Сбросить аватар", + "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", + "reset_background_confirm": "Вы точно хотите сбросить фон?", + "reset_banner_confirm": "Вы точно хотите сбросить баннер?", + "reset_profile_background": "Сбросить фон профиля", + "reset_profile_banner": "Сбросить баннер профиля", + "revoke_token": "Удалить", + "save": "Сохранить изменения", + "saving_err": "Не удалось сохранить настройки", + "saving_ok": "Сохранено", + "scope_copy": "Копировать видимость поста при ответе (всегда включено для личных сообщений)", + "search_user_to_block": "Поиск того, кого вы хотите заблокировать", + "search_user_to_mute": "Поиск того, кого вы хотите заглушить", + "security": "Безопасность", + "security_tab": "Безопасность", + "sensitive_by_default": "Помечать статусы как имеющие щекотливый характер по умолчанию", + "set_new_avatar": "Загрузить новый аватар", + "set_new_profile_background": "Загрузить новый фон профиля", + "set_new_profile_banner": "Загрузить новый баннер профиля", + "setting_changed": "Отличается от значения по умолчанию", + "settings": "Настройки", + "show_admin_badge": "Показывать значок администратора в моем профиле", + "show_moderator_badge": "Показывать значок модератора в моем профиле", + "stop_gifs": "Проигрывать GIF анимации только при наведении", + "streaming": "Включить автоматическую загрузку новых сообщений при прокрутке вверх", + "style": { + "advanced_colors": { + "_tab_label": "Дополнительно", + "alert": "Фон уведомлений", + "alert_error": "Ошибки", + "alert_neutral": "Нейтральный", + "alert_warning": "Предупреждение", + "badge": "Фон значков", + "badge_notification": "Уведомления", + "borders": "Границы", + "buttons": "Кнопки", + "chat": { + "border": "Границы", + "incoming": "Входящие", + "outgoing": "Исходящие" + }, + "disabled": "Отключено", + "faint_text": "Маловажный текст", + "highlight": "Выделенные элементы", + "icons": "Иконки", + "inputs": "Поля ввода", + "panel_header": "Заголовок панели", + "poll": "График результатов опроса", + "post": "Статусы и раздел \"О себе\"", + "pressed": "Нажатие", + "selectedMenu": "Выбранный пункт меню", + "selectedPost": "Выбранный статус", + "tabs": "Вкладки", + "toggled": "Включено", + "top_bar": "Верхняя полоска", + "wallpaper": "Фон" + }, + "common": { + "color": "Цвет", + "contrast": { + "context": { + "18pt": "для крупного (18pt+) текста", + "text": "для текста" + }, + "hint": "Уровень контраста: {ratio}, что {level} {context}", + "level": { + "aa": "соответствует гайдлайну Level AA (минимальный)", + "aaa": "соответствует гайдлайну Level AAA (рекомендуемый)", + "bad": "не соответствует каким либо гайдлайнам" + } + }, + "opacity": "Прозрачность" + }, + "common_colors": { + "_tab_label": "Общие", + "foreground_hint": "См. вкладку \"Дополнительно\" для более детального контроля", + "main": "Общие цвета", + "rgbo": "Иконки, акценты, ярылки" + }, + "fonts": { + "_tab_label": "Шрифты", + "components": { + "input": "Поля ввода", + "interface": "Интерфейс", + "post": "Текст постов", + "postCode": "Моноширинный текст в статусе (форматирование)" + }, + "custom": "Другой", + "family": "Шрифт", + "help": "Выберите тип шрифта для использования в интерфейсе. При выборе варианта \"другой\" надо ввести название шрифта в точности как он называется в системе.", + "size": "Размер (в пикселях)", + "weight": "Ширина" + }, + "preview": { + "button": "Кнопка", + "checkbox": "Я подтверждаю что не было ни единого разрыва", + "content": "Контент", + "error": "Ошибка стоп 000", + "faint_link": "Его придется убрать", + "fine_print": "Если проблемы остались — ваш гуртовщик мыши плохо стоит. {0}.", + "header": "Пример", + "header_faint": "Все идет по плану", + "input": "Что нового?", + "link": "ссылка", + "mono": "контента", + "text": "Еще немного {0} и масенькая {1}" + }, + "radii": { + "_tab_label": "Скругление" + }, + "shadows": { + "_tab_label": "Светотень", + "blur": "Размытие", + "component": "Компонент", + "components": { + "avatar": "Аватар (профиль)", + "avatarStatus": "Аватар (в ленте)", + "button": "Кнопки", + "buttonHover": "Кнопки (наведен курсор)", + "buttonPressed": "Кнопки (нажата)", + "buttonPressedHover": "Кнопки (нажата+наведен курсор)", + "input": "Поля ввода", + "panel": "Панель", + "panelHeader": "Заголовок панели", + "popup": "Всплывающие подсказки", + "topBar": "Верхняя полоска" + }, + "filter_hint": { + "always_drop_shadow": "Внимание, эта тень всегда использует {0} когда браузер поддерживает это.", + "avatar_inset": "Одновременное использование внутренних и внешних теней на (прозрачных) аватарках может дать не те результаты что вы ожидаете.", + "drop_shadow_syntax": "{0} не поддерживает параметр {1} и ключевое слово {2}.", + "inset_classic": "Внутренние тени будут использовать {0}", + "spread_zero": "Тени с разбросом > 0 будут выглядеть как если бы разброс установлен в 0" + }, + "inset": "Внутренняя", + "override": "Переопределить", + "shadow_id": "Тень №{value}", + "spread": "Разброс" + }, + "switcher": { + "clear_all": "Очистить всё", + "clear_opacity": "Очистить прозрачность", + "help": { + "fe_downgraded": "Версия фронт-энда Pleroma была откачена.", + "fe_upgraded": "Движок тем для фронт-энда Pleroma был изменен после обновления.", + "future_version_imported": "Файл, который вы импортировали, был сделан в новой версии фронт-энда.", + "older_version_imported": "Файл, который вы импортировали, был сделан в старой версии фронт-энда.", + "upgraded_from_v2": "Фронт-энд Pleroma был изменен. Выбранная тема может выглядеть слегка по-другому.", + "v2_imported": "Файл, который вы импортировали, был сделан под старый фронт-энд. Мы стараемся улучшить совместимость, но все еще возможны несостыковки." + }, + "keep_as_is": "Оставить, как есть", + "keep_color": "Оставить цвета", + "keep_fonts": "Оставить шрифты", + "keep_opacity": "Оставить прозрачность", + "keep_roundness": "Оставить скругление", + "keep_shadows": "Оставить тени", + "load_theme": "Загрузить тему", + "reset": "Сбросить", + "save_load_hint": "Опции \"оставить...\" позволяют сохранить текущие настройки при выборе другой темы или импорта её из файла. Так же они влияют на то какие компоненты будут сохранены при экспорте темы. Когда все галочки сняты все компоненты будут экспортированы.", + "use_snapshot": "Старая версия", + "use_source": "Новая версия" + } + }, + "subject_input_always_show": "Всегда показывать поле ввода темы", + "subject_line_behavior": "Копировать тему в ответах", + "subject_line_email": "Как в электронной почте: \"re: тема\"", + "subject_line_mastodon": "Как в Mastodon: скопировать как есть", + "subject_line_noop": "Не копировать", + "text": "Текст", + "theme": "Тема", + "theme_help": "Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.", + "theme_help_v2_1": "Вы так же можете перепоределить цвета определенных компонентов нажав соотв. галочку. Используйте кнопку \"Очистить всё\" чтобы снять все переопределения.", + "theme_help_v2_2": "Под некоторыми полями ввода это идикаторы контрастности, наведите на них мышью чтобы узнать больше. Приспользовании прозрачности контраст расчитывается для наихудшего варианта.", + "token": "Токен", + "tooltipRadius": "Всплывающие подсказки/уведомления", + "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить", + "upload_a_photo": "Загрузить изображение", + "useStreamingApi": "Получать сообщения и уведомления в реальном времени", + "useStreamingApiWarning": "(Не рекомендуется, экспериментально, статусы могут пропадать)", + "use_contain_fit": "Не обрезать вложения в миниатюрах", + "use_one_click_nsfw": "Открывать вложения имеющие щекотливый характер одним кликом", + "user_mutes": "Пользователи", + "user_settings": "Настройки пользователя", + "valid_until": "Годен до", + "values": { + "false": "нет", + "true": "да" + }, + "version": { + "backend_version": "Версия бэк-энда", + "frontend_version": "Версия фронт-энда", + "title": "Версия" + }, + "virtual_scrolling": "Оптимизировать рендеринг ленты", + "word_filter": "Фильтр слов" }, - "allow_following_move": "Автоматически начать читать новый профиль при переезде", - "hide_user_stats": "Не показывать статистику пользователей (например количество читателей)", - "discoverable": "Разрешить показывать учетную запись в поисковых системах и прочих сервисах", - "default_vis": "Видимость статусов по умолчанию", - "mutes_and_blocks": "Блокировки и игнорируемые", - "composing": "Составление статусов", - "chatMessageRadius": "Сообщения в беседе", - "blocks_tab": "Блокировки", - "import_mutes_from_a_csv_file": "Импортировать игнорируемых из CSV файла", - "mutes_imported": "Игнорируемые импортированы! Обработка может занять некоторое время.", - "mute_import_error": "Произошла ошибка при импорте игнорируемых", - "mute_import": "Импорт игнорируемых", - "block_export_button": "Экспортирует блокировки в CSV файл", - "mute_export_button": "Экспортирует игнорируемых пользователей в CSV файл", - "mute_export": "Экспорт игнорируемых", - "blocks_imported": "Блокировки импортированы! Обработка может занять некоторое время.", - "block_import_error": "Произошла ошибка при импорте блокировок", - "block_import": "Импорт блокировок", - "block_export": "Экспортировать блокировки", - "security": "Безопасность", - "app_name": "Приложение", - "user_mutes": "Пользователи", - "post_status_content_type": "Формат составляемых статусов по умолчанию", - "subject_line_noop": "Не копировать", - "subject_line_mastodon": "Как в Mastodon: скопировать как есть", - "subject_line_email": "Как в электронной почте: \"re: тема\"", - "subject_line_behavior": "Копировать тему в ответах", - "no_mutes": "Нет игнорируемых", - "no_blocks": "Нет блокировок", - "notification_visibility_emoji_reactions": "Реакции", - "notification_visibility_moves": "Переезды", - "use_contain_fit": "Не обрезать вложения в миниатюрах", - "profile_fields": { - "value": "Значение", - "name": "Пункт", - "add_field": "Добавить поле", - "label": "Таблица метаданных профиля" + "status": { + "bookmark": "Добавить в закладки", + "copy_link": "Скопировать ссылку", + "delete": "Удалить", + "delete_confirm": "Вы действительно хотите удалить данный статус?", + "external_source": "Перейти к источнику", + "favorites": "Понравилось", + "mute_conversation": "Игнорировать разговор", + "repeats": "Повторы", + "reply_to": "Ответ", + "status_deleted": "Статус удален", + "thread_muted": "Разговор игнорируется", + "unbookmark": "Удалить из закладок", + "unmute_conversation": "Прекратить игнорировать разговор" }, - "play_videos_in_modal": "Проигрывать видео во всплывающей рамке", - "mutes_tab": "Игнорируемые", - "invalid_theme_imported": "Выбраный файл не является темой Pleroma. Изменений в тему не было внесено.", - "import_blocks_from_a_csv_file": "Импортировать блокировки из CSV файла", - "hide_filtered_statuses": "Не показывать отфильтрованные статусы", - "hide_muted_posts": "Не показывать статусы игнорируемых пользователей", - "hide_post_stats": "Не показывать статистику статусов (например количество отметок «Нравится»)", - "use_one_click_nsfw": "Открывать вложения имеющие щекотливый характер одним кликом", - "preload_images": "Предварительно загружать изображения", - "max_thumbnails": "Максимальное число миниатюр показываемых в статусе", - "emoji_reactions_on_timeline": "Показывать эмодзи реакции в ленте", - "domain_mutes": "Узлы", - "notification_setting_privacy": "Приватность", - "notification_setting_block_from_strangers": "Не показывать уведомления от пользователей которых вы не читаете", - "notification_setting_filters": "Фильтрация", - "notifications": "Уведомления", - "virtual_scrolling": "Оптимизировать рендеринг ленты", - "hide_wallpaper": "Скрыть обои узла", - "accent": "Акцент", - "upload_a_photo": "Загрузить изображение", - "notification_mutes": "Чтобы не получать уведомления от конкретного пользователя, заглушите его.", - "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", - "reset_profile_banner": "Сбросить баннер профиля", - "reset_profile_background": "Сбросить фон профиля", - "reset_avatar": "Сбросить аватар", - "search_user_to_mute": "Поиск того, кого вы хотите заглушить", - "search_user_to_block": "Поиск того, кого вы хотите заблокировать", - "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню", - "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", - "enable_web_push_notifications": "Включить web push-уведомления", - "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", - "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений", - "version": { - "title": "Версия", - "frontend_version": "Версия фронт-энда", - "backend_version": "Версия бэк-энда" + "time": { + "in_future": "через {0}", + "in_past": "{0} назад", + "now": "только что", + "now_short": "только что", + "unit": { + "days": "{0} дней", + "days_short": "{0}дн", + "hours_short": "{0}ч", + "minutes_short": "{0}мин", + "months_short": "{0}мес", + "seconds_short": "{0}сек", + "weeks_short": "{0}нед", + "years_short": "{0}г" + } }, - "word_filter": "Фильтр слов", - "sensitive_by_default": "Помечать статусы как имеющие щекотливый характер по умолчанию", - "reply_visibility_self_short": "Показывать ответы только вам", - "reply_visibility_following_short": "Показывать ответы тем кого вы читаете", - "hide_all_muted_posts": "Не показывать игнорируемые статусы", - "hide_media_previews": "Не показывать вложения в ленте", - "setting_changed": "Отличается от значения по умолчанию", - "reset_background_confirm": "Вы точно хотите сбросить фон?", - "reset_banner_confirm": "Вы точно хотите сбросить баннер?", - "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить", - "more_settings": "Остальные настройки", - "save": "Сохранить изменения" - }, - "timeline": { - "collapse": "Свернуть", - "conversation": "Разговор", - "error_fetching": "Ошибка при обновлении", - "load_older": "Загрузить старые статусы", - "no_retweet_hint": "Статус помечен как \"только для читателей\" или \"личное сообщение\" и потому не может быть повторён", - "repeated": "повторил(а)", - "show_new": "Показать новые", - "up_to_date": "Обновлено", - "error": "Ошибка при обновлении ленты: {0}" - }, - "status": { - "bookmark": "Добавить в закладки", - "unbookmark": "Удалить из закладок", - "status_deleted": "Статус удален", - "reply_to": "Ответ", - "repeats": "Повторы", - "favorites": "Понравилось", - "unmute_conversation": "Прекратить игнорировать разговор", - "mute_conversation": "Игнорировать разговор", - "thread_muted": "Разговор игнорируется", - "external_source": "Перейти к источнику", - "delete_confirm": "Вы действительно хотите удалить данный статус?", - "delete": "Удалить", - "copy_link": "Скопировать ссылку" - }, - "user_card": { - "block": "Заблокировать", - "blocked": "Заблокирован", - "favorites": "Понравившиеся", - "follow": "Читать", - "follow_sent": "Запрос отправлен!", - "follow_progress": "Запрашиваем…", - "follow_unfollow": "Перестать читать", - "followees": "Читаемые", - "followers": "Читатели", - "following": "Читаете!", - "follows_you": "Читает вас!", - "mute": "Игнорировать", - "muted": "Игнорирую", - "per_day": "в день", - "remote_follow": "Читать удалённо", - "statuses": "Статусы", - "admin_menu": { - "moderation": "Опции модератора", - "grant_admin": "Сделать администратором", - "revoke_admin": "Забрать права администратора", - "grant_moderator": "Сделать модератором", - "revoke_moderator": "Забрать права модератора", - "activate_account": "Активировать учетную запись", - "deactivate_account": "Деактивировать учетную запись", - "delete_account": "Удалить учетную запись", - "force_nsfw": "Отмечать статусы пользователя как имеющие щекотливый характер", - "strip_media": "Убирать вложения из статусов пользователя", - "force_unlisted": "Не показывать статусы в публичных лентах", - "sandbox": "Принудить видимость постов только читателям", - "disable_remote_subscription": "Запретить читать с других узлов", - "disable_any_subscription": "Запретить читать пользователя", - "quarantine": "Не федерировать статусы пользователя", - "delete_user": "Удалить пользователя" + "timeline": { + "collapse": "Свернуть", + "conversation": "Разговор", + "error": "Ошибка при обновлении ленты: {0}", + "load_older": "Загрузить старые статусы", + "no_retweet_hint": "Статус помечен как \"только для читателей\" или \"личное сообщение\" и потому не может быть повторён", + "repeated": "повторил(а)", + "show_new": "Показать новые", + "up_to_date": "Обновлено" }, - "media": "С вложениями", - "mention": "Упомянуть", - "show_repeats": "Показывать повторы", - "hide_repeats": "Скрыть повторы", - "report": "Пожаловаться", - "message": "Написать сообщение", - "highlight": { - "side": "Полоска сбоку", - "striped": "Фон в полоску", - "solid": "Сплошной фон", - "disabled": "Нет выделения" + "tool_tip": { + "accept_follow_request": "Принять запрос на чтение", + "media_upload": "Прикрепить вложение", + "reject_follow_request": "Отклонить запрос на чтение" + }, + "upload": { + "error": { + "message": "Произошла ошибка при загрузке: {0}" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Активировать учетную запись", + "deactivate_account": "Деактивировать учетную запись", + "delete_account": "Удалить учетную запись", + "delete_user": "Удалить пользователя", + "disable_any_subscription": "Запретить читать пользователя", + "disable_remote_subscription": "Запретить читать с других узлов", + "force_nsfw": "Отмечать статусы пользователя как имеющие щекотливый характер", + "force_unlisted": "Не показывать статусы в публичных лентах", + "grant_admin": "Сделать администратором", + "grant_moderator": "Сделать модератором", + "moderation": "Опции модератора", + "quarantine": "Не федерировать статусы пользователя", + "revoke_admin": "Забрать права администратора", + "revoke_moderator": "Забрать права модератора", + "sandbox": "Принудить видимость постов только читателям", + "strip_media": "Убирать вложения из статусов пользователя" + }, + "block": "Заблокировать", + "blocked": "Заблокирован", + "favorites": "Понравившиеся", + "follow": "Читать", + "follow_progress": "Запрашиваем…", + "follow_sent": "Запрос отправлен!", + "follow_unfollow": "Перестать читать", + "followees": "Читаемые", + "followers": "Читатели", + "following": "Читаете!", + "follows_you": "Читает вас!", + "hide_repeats": "Скрыть повторы", + "highlight": { + "disabled": "Нет выделения", + "side": "Полоска сбоку", + "solid": "Сплошной фон", + "striped": "Фон в полоску" + }, + "media": "С вложениями", + "mention": "Упомянуть", + "message": "Написать сообщение", + "mute": "Игнорировать", + "muted": "Игнорирую", + "per_day": "в день", + "remote_follow": "Читать удалённо", + "report": "Пожаловаться", + "show_repeats": "Показывать повторы", + "statuses": "Статусы" + }, + "user_profile": { + "timeline_title": "Лента пользователя" + }, + "user_reporting": { + "add_comment_description": "Жалоба будет направлена модераторам вашего узла. Вы можете указать причину жалобы ниже:", + "forward_description": "Данный пользователь находится на другом узле. Отослать туда копию вашей жалобы?" } - }, - "user_profile": { - "timeline_title": "Лента пользователя" - }, - "search": { - "people": "Люди", - "hashtags": "Хэштэги", - "person_talking": "Популярно у {count} человека", - "people_talking": "Популярно у {count} человек", - "no_results": "Ничего не найдено" - }, - "password_reset": { - "forgot_password": "Забыли пароль?", - "password_reset": "Сброс пароля", - "instruction": "Введите ваш адрес электронной почты или имя пользователя: на вашу электронную почту будет отправлена ссылка для сброса пароля.", - "placeholder": "Ваш адрес электронной почты или имя пользователя", - "check_email": "Проверьте вашу электронную почту и перейдите по ссылке для сброса пароля.", - "return_home": "Вернуться на главную страницу", - "too_many_requests": "Вы исчерпали допустимое количество попыток, попробуйте позже.", - "password_reset_disabled": "Автоматический сброс пароля отключен. Свяжитесь с администратором данного узла для сброса пароля.", - "password_reset_required_but_mailer_is_disabled": "Вы должны сбросить свой пароль, однако автоматический сброс пароля отключен. Пожалуйста свяжитесь с администратором данного узла." - }, - "about": { - "mrf": { - "federation": "Федерация", - "simple": { - "accept_desc": "Данный узел принимает сообщения только со следующих узлов:", - "ftl_removal_desc": "Данный узел скрывает следующие узлы с федеративной ленты:", - "media_nsfw_desc": "Данный узел принужденно помечает вложения со следующих узлов как имеющие щекотливый характер:", - "simple_policies": "Правила для определенных узлов", - "accept": "Белый список", - "reject": "Черный список", - "reject_desc": "Данный узел не принимает сообщения со следующих узлов:", - "quarantine": "Зона карантина", - "quarantine_desc": "Данный узел отправляет только публичные статусы следующим узлам:", - "ftl_removal": "Скрытие с федеративной ленты", - "media_removal": "Удаление вложений", - "media_removal_desc": "Данный узел удаляет вложения со следующих узлов:", - "media_nsfw": "Принужденно помеченно как имеющее щекотливый характер" - }, - "keyword": { - "ftl_removal": "Убрать из федеративной ленты", - "reject": "Отклонить", - "keyword_policies": "Действия на ключевые слова", - "replace": "Заменить", - "is_replaced_by": "→" - }, - "mrf_policies": "Активные правила MRF (модуль переписывания сообщений)", - "mrf_policies_desc": "Правила MRF (модуль переписывания сообщений) влияют на федерацию данного узла. Следующие правила активны:" - }, - "staff": "Администрация" - }, - "domain_mute_card": { - "mute": "Игнорировать", - "mute_progress": "В процессе…", - "unmute": "Прекратить игнорирование", - "unmute_progress": "В процессе…" - }, - "exporter": { - "export": "Экспорт", - "processing": "Запрос в обработке, вам скоро будет предложено загрузить файл" - }, - "features_panel": { - "chat": "Чат", - "media_proxy": "Прокси для внешних вложений", - "text_limit": "Лимит символов", - "title": "Особенности", - "gopher": "Gopher", - "who_to_follow": "Предложения кого читать", - "pleroma_chat_messages": "Pleroma Чат", - "upload_limit": "Наибольший размер загружаемого файла", - "scope_options": "Настраиваемая видимость статусов" - }, - "tool_tip": { - "accept_follow_request": "Принять запрос на чтение", - "reject_follow_request": "Отклонить запрос на чтение", - "media_upload": "Прикрепить вложение" - }, - "image_cropper": { - "save_without_cropping": "Сохранить не обрезая", - "save": "Сохранить", - "crop_picture": "Обрезать картинку", - "cancel": "Отменить" - }, - "errors": { - "storage_unavailable": "Pleroma не смогла получить доступ к хранилищу браузера. Ваша сессия и настройки не будут сохранены, и вы можете столкнуться с непредвиденными проблемами. Попробуйте включить файлы cookie." - }, - "polls": { - "not_enough_options": "Недостаточно уникальных вариантов в опросе", - "expired": "Опрос закончился {0} назад", - "expires_in": "Опрос заканчивается через {0}", - "expiry": "Срок опроса", - "multiple_choices": "Несколько вариантов", - "single_choice": "Один вариант", - "type": "Тип опроса", - "vote": "Проголосовать", - "votes": "голосов", - "option": "Вариант", - "add_option": "Добавить вариант", - "add_poll": "Прикрепить опрос", - "votes_count": "{count} голос | {count} голосов", - "people_voted_count": "{count} человек проголосовал | {count} человек проголосовали" - }, - "media_modal": { - "next": "Следующая", - "previous": "Предыдущая" - }, - "importer": { - "error": "Произошла ошибка при импорте файла.", - "success": "Импорт прошел успешно.", - "submit": "Отправить" - }, - "selectable_list": { - "select_all": "Выбрать все" - }, - "emoji": { - "load_all": "Все {emojiAmount} эмодзи загружаются", - "load_all_hint": "Загружены первые {saneAmount} эмодзи, загрузка всех эмодзи может привести к проблемам с производительностью.", - "unicode": "Стандартные эмодзи", - "custom": "Пользовательские эмодзи", - "add_emoji": "Добавить эмодзи", - "search_emoji": "Поиск эмодзи", - "keep_open": "Оставить окно выбора открытым", - "emoji": "Эмодзи", - "stickers": "Стикеры" - }, - "shoutbox": { - "title": "Болтовня" - }, - "time": { - "now_short": "только что", - "now": "только что", - "in_past": "{0} назад", - "in_future": "через {0}", - "unit": { - "days_short": "{0}дн", - "years_short": "{0}г", - "year_short": "{0}г", - "weeks_short": "{0}нед", - "week_short": "{0}нед", - "seconds_short": "{0}сек", - "second_short": "{0}с", - "months_short": "{0}мес", - "month_short": "{0}мес", - "minutes_short": "{0}мин", - "minute_short": "{0}мин", - "hours_short": "{0}ч", - "hour_short": "{0}ч", - "hour": "{0} час", - "day_short": "{0}д", - "days": "{0} дней" - } - }, - "chats": { - "empty_chat_list_placeholder": "У вас пока нет бесед. Начните одну!", - "delete_confirm": "Вы точно хотите удалить сообщение?", - "empty_message_error": "Нельзя отправить пустое сообщение", - "new": "Новая беседа", - "chats": "Беседы", - "delete": "Удалить", - "message_user": "Напишите {nickname}", - "you": "Вы:", - "error_sending_message": "Произошла ошибка при отправке сообщения." - }, - "remote_user_resolver": { - "error": "Не найдено.", - "searching_for": "Ищем" - }, - "upload": { - "error": { - "message": "Произошла ошибка при загрузке: {0}" - } - }, - "user_reporting": { - "add_comment_description": "Жалоба будет направлена модераторам вашего узла. Вы можете указать причину жалобы ниже:", - "forward_description": "Данный пользователь находится на другом узле. Отослать туда копию вашей жалобы?" - }, - "file_type": { - "file": "Файл", - "video": "Видеозапись", - "audio": "Аудиозапись", - "image": "Изображение" - } -} +} \ No newline at end of file diff --git a/src/i18n/sk.json b/src/i18n/sk.json index 09526c77..0adce47d 100644 --- a/src/i18n/sk.json +++ b/src/i18n/sk.json @@ -1,514 +1,494 @@ { - "about": { - "mrf": { - "federation": "Federácia", - "keyword": { - "keyword_policies": "Pravidlá pre kľúčové slová", - "ftl_removal": "Odstránenie z časovej osy \"Celej známej siete\"", - "reject": "Odmietni", - "replace": "Nahraď", - "is_replaced_by": "→" - }, - "mrf_policies": "Povoliť MRF pravidlá", - "mrf_policies_desc": "MRF pravidlá upravujú správanie servera v rámci federácie s inými. Nasledovné pravidlá sú aktívne:", - "simple": { - "simple_policies": "Pravidlá špecifické pre tento server", - "instance": "Server", - "reason": "Dôvod", - "not_applicable": "N/A", - "accept": "Prijať", - "accept_desc": "Tento server preberá správy len z nasledovných serverov:", - "reject": "Odmietnuť", - "reject_desc": "Tento server preberá správy spravy z nasledovných serverov:", - "quarantine": "Karanténa", - "quarantine_desc": "Tento server posiela verejné oznamy len na nasledovné servre:", - "ftl_removal": "Odstránenie časovej osy \"Známa sieť\"", - "ftl_removal_desc": "Tento server odstraňuje nasledovné serverov zo svojej časovej osy \"Známa sieť\":", - "media_removal": "Odstránenie médií", - "media_removal_desc": "Tento server odstraňuje médiá zo správ nasledovných serverov:", - "media_nsfw": "Označenie médií ako citlivých", - "media_nsfw_desc": "Tento server označuje média ako citlivé v správach z nasledovných serverov:" - } + "about": { + "mrf": { + "federation": "Federácia", + "keyword": { + "ftl_removal": "Odstránenie z časovej osy \"Celej známej siete\"", + "is_replaced_by": "→", + "keyword_policies": "Pravidlá pre kľúčové slová", + "reject": "Odmietni", + "replace": "Nahraď" + }, + "mrf_policies": "Povoliť MRF pravidlá", + "mrf_policies_desc": "MRF pravidlá upravujú správanie servera v rámci federácie s inými. Nasledovné pravidlá sú aktívne:", + "simple": { + "accept": "Prijať", + "accept_desc": "Tento server preberá správy len z nasledovných serverov:", + "ftl_removal": "Odstránenie časovej osy \"Známa sieť\"", + "ftl_removal_desc": "Tento server odstraňuje nasledovné serverov zo svojej časovej osy \"Známa sieť\":", + "instance": "Server", + "media_nsfw": "Označenie médií ako citlivých", + "media_nsfw_desc": "Tento server označuje média ako citlivé v správach z nasledovných serverov:", + "media_removal": "Odstránenie médií", + "media_removal_desc": "Tento server odstraňuje médiá zo správ nasledovných serverov:", + "not_applicable": "N/A", + "quarantine": "Karanténa", + "quarantine_desc": "Tento server posiela verejné oznamy len na nasledovné servre:", + "reason": "Dôvod", + "reject": "Odmietnuť", + "reject_desc": "Tento server preberá správy spravy z nasledovných serverov:", + "simple_policies": "Pravidlá špecifické pre tento server" + } + }, + "staff": "Personál" }, - "staff": "Personál" - }, - "shoutbox": { - "title": "Verejné fórum" - }, - "domain_mute_card": { - "mute": "Utíš", - "mute_progress": "Utišujem…", - "unmute": "Povoľ oznamy", - "unmute_progress": "Povoľujem oznamy…" - }, - "exporter": { - "export": "Export", - "processing": "Spracováva sa, čoskoro sa ti ponúknu na stiahnutie súbory s dátami exportu" - }, - "features_panel": { - "shout": "Verejné fórum", - "pleroma_chat_messages": "Pleroma Chat", - "gopher": "Gopher", - "media_proxy": "Proxy pre médiá", - "scope_options": "Nastavenia rámca", - "text_limit": "Limit počtu znakov", - "title": "Vlastnosti", - "who_to_follow": "Koho nasledovať", - "upload_limit": "Limit nahrávania" - }, - "finder": { - "error_fetching_user": "Chyba načítavania užívateľa", - "find_user": "Nájsť užívateľa" - }, - "general": { - "apply": "Použiť", - "submit": "Odoslať", - "more": "Viac", - "loading": "Nahrávam…", - "generic_error": "Nastala chyba", - "error_retry": "Zopakuj znova, prosím", - "retry": "Zopakuj znova", - "optional": "nepovinné", - "show_more": "Zobraz viac", - "show_less": "Zobraz menej", - "dismiss": "Zahoď", - "cancel": "Zruš", - "disable": "Vypni", - "enable": "Zapni", - "confirm": "Potvrdiť", - "verify": "Overiť", - "close": "Zatvoriť", - "peek": "Vybrať", - "role": { - "admin": "Správca", - "moderator": "Moderátor" + "chats": { + "chats": "Rozhovor", + "delete": "Zmazať", + "delete_confirm": "Skutočne chceš zmazať túto správu?", + "empty_chat_list_placeholder": "Nemáš za sebou žiadne rozhovory. Začni nový rozhovor!", + "empty_message_error": "Nie je možné odoslať prázdnu správu", + "error_loading_chat": "Nastala chyba pri nahrávaní rozhovoru.", + "error_sending_message": "Nastala chyba pri odosielaní správ.", + "message_user": "Správa {nickname}", + "more": "Viac", + "new": "Nový rozhovor", + "you": "Ty:" }, - "flash_content": "Klikni pre zobrazenie Flash obsahu prostredníctvom Ruffle (experimentálne, nemusí fungovať).", - "flash_security": "Flash obsah je potencionálne nebezpečný, keďže je to produkt s uzatvoreným kódom.", - "flash_fail": "Nepodarilo sa nahrať Flash obsah, pre detaily pozri konzolu prehliadača.", - "scope_in_timeline": { - "direct": "Priame", - "private": "Len pre nasledovníkov", - "public": "Verejné", - "unlisted": "Nezaradené" - } - }, - "image_cropper": { - "crop_picture": "Orezať obrázok", - "save": "Uložiť", - "save_without_cropping": "Ulož bez orezania", - "cancel": "Zrušiť" - }, - "importer": { - "submit": "Odoslať", - "success": "Úspečne naimportované.", - "error": "Pri importe súboru nastala chyba." - }, - "login": { - "login": "Prihlásiť sa", - "description": "Prihlásiť pomocou OAuth", - "logout": "Odhlásiť sa", - "password": "Heslo", - "placeholder": "napr. peter", - "register": "Registrácia", - "username": "Meno užívateľa", - "hint": "Prihlás sa, aby si sa mohol zúčastniť konverzácie", - "authentication_code": "Autentifikačný kód", - "enter_recovery_code": "Zadaj kód obnovenia", - "enter_two_factor_code": "Zadaj 2-fázový validačný kód", - "recovery_code": "Kód obnovenia", - "heading": { - "totp": "2-fázové overenie", - "recovery": "2-fázové obnova" - } - }, - "media_modal": { - "previous": "Predchádzajúce", - "next": "Nasledujúce", - "counter": "{current} / {total}", - "hide": "Zatvoriť prehliadač médií" - }, - "nav": { - "about": "O stránke", - "administration": "Administrácia", - "back": "Späť", - "friend_requests": "Žiadosti o priateľstvo", - "mentions": "Zmienky", - "interactions": "Interakcie", - "dms": "Priame správy", - "public_tl": "Verejná časová os", - "timeline": "Časová os", - "home_timeline": "Domáca časová os", - "twkn": "Známa sieť", - "bookmarks": "Záložky", - "user_search": "Hľadanie užívateľa", - "search": "Hladať", - "who_to_follow": "Koho nasledovať", - "preferences": "Nastavenia", - "timelines": "Časové osy", - "chats": "Chaty" - }, - "notifications": { - "broken_favorite": "Neznáma správa, dohľadávam ju…", - "error": "Chyba získavania upozornení: {0}", - "favorited_you": "si obľúbil tvoju správu", - "followed_you": "ťa nasleduje", - "follow_request": "ťa chce nasledovať", - "load_older": "Nahrať staršie upozornenia", - "notifications": "Upozornenia", - "read": "Prečítané!", - "repeated_you": "zopakoval tvoju správu", - "no_more_notifications": "Žiadne ďalšie upozornenia", - "migrated_to": "sa presťahoval na", - "reacted_with": "reagoval nasledovne {0}" - }, - "polls": { - "add_poll": "Pridať anketu", - "add_option": "Pridať možnosť", - "option": "Možnosť", - "votes": "hlasy", - "people_voted_count": "{count} volič | {count} voličov", - "votes_count": "{count} hlas | {count} hlasov", - "vote": "Hlas", - "type": "Typ ankety", - "single_choice": "Výber jednej možnosti", - "multiple_choices": "Výber viacerých možností", - "expiry": "Vek ankety", - "expires_in": "Anketa končí za {0}", - "expired": "Anketa skončila pre {0}", - "not_enough_options": "Príliš málo jedinečných možností v ankete" - }, - "emoji": { - "stickers": "Nálepka", - "emoji": "Emotikon", - "keep_open": "Ponechaj okno výberu otvorené", - "search_emoji": "Vyhladať emotikon", - "add_emoji": "Vložiť emotikon", - "custom": "Vlastný emotikon", - "unicode": "Unicode emotikon", - "load_all_hint": "Nahralo sa prvých {saneAmount} emotikonov, nahranie všetkých by mohlo spôsobiť zníženie výkonu.", - "load_all": "Nahrať všetkých {emojiAmount} emotikonov" - }, - "errors": { - "storage_unavailable": "Pleroma nemôže používať úložisko prehliadača. Tvoje prihlasovacie meno a lokálne nastavenia nebudú uchované a môžu sa vyskytnúť neočakávané chyby. Skús povoliť cookie." - }, - "interactions": { - "favs_repeats": "Zopakovania a obľúbené", - "follows": "Nový nasledovatelia", - "moves": "Užívateľ sa sťahuje", - "load_older": "Nahrať staršiu komunikáciu" - }, - "post_status": { - "new_status": "Poslať novú správu", - "account_not_locked_warning": "Tvoj účen nie je {0}. Ktokoľvek ťa môže začať nasledovať a tak vidieť správy určené len pre nasledovateľov.", - "account_not_locked_warning_link": "uzamknuté", - "attachments_sensitive": "Označiť prílohy ako citlivé", - "media_description": "Popis média", - "content_type": { - "text/plain": "Obyčajný text", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" + "display_date": { + "today": "Dnes" }, - "content_warning": "Nadpis (nepovinné)", - "default": "Práve som ...", - "direct_warning_to_all": "Túto správu bude vidieť každý užívateľ, ktorého v nej spomenieš.", - "direct_warning_to_first_only": "Táto správa bude viditeľná len pre užívateľov, ktorých vymenuješ na začiatku správy.", - "posting": "Posielanie", - "post": "Poslať", - "preview": "Náhľad", - "preview_empty": "Prázdne", - "empty_status_error": "Nie je možné odoslať prázdnu správu bez priložených súborov", - "media_description_error": "Nepodarilo sa aktualizovať média, skús znova", - "scope_notice": { - "public": "Túto správu bude vidieť každý", - "private": "Túto správu budú vidieť len tvoji nasledovníci", - "unlisted": "Táto správa nebude viditeľná na verejnej časovej osi a v celej známej sieti" + "domain_mute_card": { + "mute": "Utíš", + "mute_progress": "Utišujem…", + "unmute": "Povoľ oznamy", + "unmute_progress": "Povoľujem oznamy…" }, - "scope": { - "direct": "Priama správa - zobrazí sa len užívateľom spomenutým v správe", - "private": "Pre nasledovníkov - zobrazí sa len tvojim nasledovníkom", - "public": "Verejné - zobrazí sa vo všetkých časových osiach", - "unlisted": "Nezaradené - nezobrazí sa v žiadnej časovej osy" - } - }, - "registration": { - "bio": "Životopis", - "email": "Email", - "fullname": "Zobrazované meno", - "password_confirm": "Potvrdenie hesla", - "registration": "Registrácia", - "token": "Pozývací kód", - "captcha": "CAPTCHA", - "new_captcha": "Klikni na obrázok a vnikne nová captcha", - "username_placeholder": "napr. peter", - "fullname_placeholder": "napr. Peter Kukurica", - "bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.", - "reason": "Dôvod registrácie", - "reason_placeholder": "Tento server schvaľuje registrácie manuálne.\nZanechaj správcom dôvod, prečo máš záujem vytvoriť si tu účet.", - "register": "Registrácia", - "validations": { - "username_required": "nemôže byť prázdne", - "fullname_required": "nemôže byť prázdne", - "email_required": "nemôže byť prázdne", - "password_required": "nemôže byť prázdne", - "password_confirmation_required": "nemôže byť prázdne", - "password_confirmation_match": "musí byť rovnaké ako heslo" - } - }, - "remote_user_resolver": { - "remote_user_resolver": "Vzdialené overenie užívateľa", - "searching_for": "Hľadám...", - "error": "Nenájdené." - }, - "selectable_list": { - "select_all": "Vybrať všetko" - }, - "time": { - "now": "práve teraz", - "now_short": "teraz", - "in_future": "za {0}", - "in_past": "pred {0}", - "unit": { - "day": "{0} deň", - "days": "{0} dní", - "day_short": "{0}d", - "days_short": "{0}d", - "hour": "{0} hodina", - "hours": "{0} hodín", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} minúta", - "minutes": "{0} minút", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} mesiac", - "months": "{0} mesiacov", - "month_short": "{0}mes", - "months_short": "{0}mes", - "second": "{0} sekunda", - "seconds": "{0} sekúnd", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} týždeň", - "weeks": "{0} týždňov", - "week_short": "{0}t", - "weeks_short": "{0}t", - "year": "{0} rok", - "years": "{0} rokov", - "year_short": "{0}r", - "years_short": "{0}r" - } - }, - "timeline": { - "collapse": "Zbaliť", - "conversation": "Konverzácia", - "error": "Chyba pri nahrávaní časovej správy: {0}", - "load_older": "Nahrať staršie správy", - "no_retweet_hint": "Správa je označená ako len-pre-nasledovateľov alebo ako priama a nemôže byť zopakovaná na tvojej časovej osy.", - "repeated": "zopakované", - "show_new": "Zobraziť nové", - "reload": "Znovu nahrať", - "up_to_date": "Aktuálne", - "no_more_statuses": "Žiadne ďalšie správy", - "no_statuses": "Žiadne správy", - "socket_reconnected": "Prepojenie v reálnom čase bolo úspešne vytvorené", - "socket_broke": "Strata prepojenia v reálnom čase: chyba CloseEvent kód {0}" - }, - "status": { - "favorites": "Obľúbené", - "repeats": "Opakovania", - "delete": "Zmazať správu", - "pin": "Pripnúť na stránku užívateľa", - "unpin": "Odopnúť zo stránky užívateľa", - "pinned": "Pripnuté", - "bookmark": "Vytvoriť záložku", - "unbookmark": "Zmazať záložku", - "delete_confirm": "Skutočne chceš zmazať túto správu?", - "reply_to": "Odpovedať komu", - "mentions": "Spomenutia", - "replies_list": "Odpovede:", - "replies_list_with_others": "Odpoveď (+{numReplies} iný): | Odpoveď (+{numReplies} iných):", - "mute_conversation": "Stíšiť konverzáciu", - "unmute_conversation": "Oznamovať konverzáciu", - "status_unavailable": "Neznámy status", - "copy_link": "Skopírovať odkaz do správy", - "external_source": "Vzdialený zdroj", - "thread_muted": "Konverzácia stíšená", - "thread_muted_and_words": ", má slová:", - "show_full_subject": "Zobraziť celý nadpis", - "hide_full_subject": "Skry celý nadpis", - "show_content": "Zobraziť obsah", - "hide_content": "Skryť obsah", - "status_deleted": "Táto správa bola zmazaná", - "nsfw": "NSFW", - "expand": "Rozbaliť správu", - "you": "(ty)", - "plus_more": "+{number} ďalších", - "many_attachments": "Správa má {number} príloh", - "collapse_attachments": "Zabaliť médiá", - "show_all_attachments": "Zobraz všetky prílohy", - "show_attachment_in_modal": "Zobraz médiá modálne", - "show_attachment_description": "Náhľad popisku (otvor prílohu pre zobrazenie celého popisku)", - "hide_attachment": "Skryť prílohy", - "remove_attachment": "Odstrániť prílohy", - "attachment_stop_flash": "Zastaviť prehrávač Flashu", - "move_up": "Presuň prílohu doľava", - "move_down": "Presuň prílohu doprava", - "open_gallery": "Otvoriť galériu", - "thread_hide": "Skry túto konverzáciu", - "thread_show": "Zobraz túto konverzáciu", - "thread_show_full": "Zobraz všetko pod touto konverzáciou (celkovo {numStatus} správa, max hĺbka {depth}) | Zobraz všetko pod touto konverzáciou (celkovo {numStatus} správ, max hĺbka {depth})", - "thread_show_full_with_icon": "{icon} {text}", - "thread_follow": "Zobraz zvyšnú časť tejto konverzácie (celkovo {numStatus} správa) | Zobraz zvyšnú časť tejto konverzácie (celkovo {numStatus} správ)", - "thread_follow_with_icon": "{icon} {text}", - "ancestor_follow": "Pozri {numReplies} ďalšiu odpoveď pod touto správou | Pozri {numReplies} ďalších odpovedí pod touto správou", - "ancestor_follow_with_icon": "{icon} {text}", - "show_all_conversation_with_icon": "{icon} {text}", - "show_all_conversation": "Zobraz celú konverzáciu ({numStatus} iná správa) | Zobraz celú konverzáciu ({numStatus} iných správ)", - "show_only_conversation_under_this": "Zobraz len správy súvisiace s touto správou" - }, - "user_card": { - "approve": "Schváliť", - "block": "Zablokovať", - "blocked": "Blokované!", - "deactivated": "Neaktívne", - "deny": "Zakázané", - "edit_profile": "Uraviť profil", - "favorites": "Obľúbené", - "follow": "Nasledovať", - "follow_cancel": "Požiadavka zrušená", - "follow_sent": "Požiadavka zaslaná!", - "follow_progress": "Žiadam o povolenie…", - "follow_unfollow": "Prestať sledovať", - "followees": "Nasleduje", - "followers": "Nasledovatelia", - "following": "Nasleduješ!", - "follows_you": "Nasleduje teba!", - "hidden": "Skryté", - "its_you": "To si ty!", - "media": "Média", - "mention": "Spomenul", - "message": "Správa", - "mute": "Stíšiť", - "muted": "Stíšené", - "per_day": "za deň", - "remote_follow": "Nasledovanie z ďaleka", - "report": "Nahlásiť", - "statuses": "Vytvorených správ", - "subscribe": "Prihlásiť k odberu", - "unsubscribe": "Odhlásiť z odberu", - "unblock": "Odblokovať", - "unblock_progress": "Oblokováva sa…", - "block_progress": "Blokujem…", - "unmute": "Povoliť oznamy", - "unmute_progress": "Povoľujem oznamy…", - "mute_progress": "Stišujem…", - "hide_repeats": "Skry zopakovania", - "show_repeats": "Zobraz zopakovania", - "bot": "Robot", - "admin_menu": { - "moderation": "Moderovanie", - "grant_admin": "Povoliť spravovanie", - "revoke_admin": "Zakázať spravovanie", - "grant_moderator": "Povoliť moderovanie", - "revoke_moderator": "Zakázať moderovanie", - "activate_account": "Aktivovať účet", - "deactivate_account": "Deaktivovať účet", - "delete_account": "Zmazať účet", - "force_nsfw": "Označ všetky správy ako NSFW", - "strip_media": "Odstrániť média zo správy", - "force_unlisted": "Vynúť, aby správy neboli zobrazované", - "sandbox": "Vynúť, aby správy boli len pre nasledovateľov", - "disable_remote_subscription": "Odstrániť prístup k serveru nasledovnému vzdialenému užívateľovi", - "disable_any_subscription": "Zakázať nasledovanie užívateľov", - "quarantine": "Zakázať federáciu správ užívateľa", - "delete_user": "Zmazať užívateľa", - "delete_user_confirmation": "Si si úplne istý? Táto akcia sa nedá zobrať späť." + "emoji": { + "add_emoji": "Vložiť emotikon", + "custom": "Vlastný emotikon", + "emoji": "Emotikon", + "keep_open": "Ponechaj okno výberu otvorené", + "load_all": "Nahrať všetkých {emojiAmount} emotikonov", + "load_all_hint": "Nahralo sa prvých {saneAmount} emotikonov, nahranie všetkých by mohlo spôsobiť zníženie výkonu.", + "search_emoji": "Vyhladať emotikon", + "stickers": "Nálepka", + "unicode": "Unicode emotikon" }, - "highlight": { - "disabled": "Bez zvýraznenia", - "solid": "Jednoliate pozadie", - "striped": "Šrafované pozadie", - "side": "Pásik na boku" + "errors": { + "storage_unavailable": "Pleroma nemôže používať úložisko prehliadača. Tvoje prihlasovacie meno a lokálne nastavenia nebudú uchované a môžu sa vyskytnúť neočakávané chyby. Skús povoliť cookie." + }, + "exporter": { + "export": "Export", + "processing": "Spracováva sa, čoskoro sa ti ponúknu na stiahnutie súbory s dátami exportu" + }, + "features_panel": { + "media_proxy": "Proxy pre médiá", + "scope_options": "Nastavenia rámca", + "shout": "Verejné fórum", + "text_limit": "Limit počtu znakov", + "title": "Vlastnosti", + "upload_limit": "Limit nahrávania", + "who_to_follow": "Koho nasledovať" + }, + "file_type": { + "audio": "Audio", + "file": "Súbor", + "image": "Obrázok", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Chyba načítavania užívateľa", + "find_user": "Nájsť užívateľa" + }, + "general": { + "apply": "Použiť", + "cancel": "Zruš", + "close": "Zatvoriť", + "confirm": "Potvrdiť", + "disable": "Vypni", + "dismiss": "Zahoď", + "enable": "Zapni", + "error_retry": "Zopakuj znova, prosím", + "flash_content": "Klikni pre zobrazenie Flash obsahu prostredníctvom Ruffle (experimentálne, nemusí fungovať).", + "flash_fail": "Nepodarilo sa nahrať Flash obsah, pre detaily pozri konzolu prehliadača.", + "flash_security": "Flash obsah je potencionálne nebezpečný, keďže je to produkt s uzatvoreným kódom.", + "generic_error": "Nastala chyba", + "loading": "Nahrávam…", + "more": "Viac", + "optional": "nepovinné", + "peek": "Vybrať", + "retry": "Zopakuj znova", + "role": { + "admin": "Správca", + "moderator": "Moderátor" + }, + "scope_in_timeline": { + "direct": "Priame", + "private": "Len pre nasledovníkov", + "public": "Verejné", + "unlisted": "Nezaradené" + }, + "show_less": "Zobraz menej", + "show_more": "Zobraz viac", + "submit": "Odoslať", + "verify": "Overiť" + }, + "image_cropper": { + "cancel": "Zrušiť", + "crop_picture": "Orezať obrázok", + "save": "Uložiť", + "save_without_cropping": "Ulož bez orezania" + }, + "importer": { + "error": "Pri importe súboru nastala chyba.", + "submit": "Odoslať", + "success": "Úspečne naimportované." + }, + "interactions": { + "favs_repeats": "Zopakovania a obľúbené", + "follows": "Nový nasledovatelia", + "load_older": "Nahrať staršiu komunikáciu", + "moves": "Užívateľ sa sťahuje" + }, + "login": { + "authentication_code": "Autentifikačný kód", + "description": "Prihlásiť pomocou OAuth", + "enter_recovery_code": "Zadaj kód obnovenia", + "enter_two_factor_code": "Zadaj 2-fázový validačný kód", + "heading": { + "recovery": "2-fázové obnova", + "totp": "2-fázové overenie" + }, + "hint": "Prihlás sa, aby si sa mohol zúčastniť konverzácie", + "login": "Prihlásiť sa", + "logout": "Odhlásiť sa", + "password": "Heslo", + "placeholder": "napr. peter", + "recovery_code": "Kód obnovenia", + "register": "Registrácia", + "username": "Meno užívateľa" + }, + "media_modal": { + "counter": "{current} / {total}", + "hide": "Zatvoriť prehliadač médií", + "next": "Nasledujúce", + "previous": "Predchádzajúce" + }, + "nav": { + "about": "O stránke", + "administration": "Administrácia", + "back": "Späť", + "bookmarks": "Záložky", + "chats": "Chaty", + "dms": "Priame správy", + "friend_requests": "Žiadosti o priateľstvo", + "home_timeline": "Domáca časová os", + "interactions": "Interakcie", + "mentions": "Zmienky", + "preferences": "Nastavenia", + "public_tl": "Verejná časová os", + "search": "Hladať", + "timeline": "Časová os", + "timelines": "Časové osy", + "twkn": "Známa sieť", + "user_search": "Hľadanie užívateľa", + "who_to_follow": "Koho nasledovať" + }, + "notifications": { + "broken_favorite": "Neznáma správa, dohľadávam ju…", + "error": "Chyba získavania upozornení: {0}", + "favorited_you": "si obľúbil tvoju správu", + "follow_request": "ťa chce nasledovať", + "followed_you": "ťa nasleduje", + "load_older": "Nahrať staršie upozornenia", + "migrated_to": "sa presťahoval na", + "no_more_notifications": "Žiadne ďalšie upozornenia", + "notifications": "Upozornenia", + "reacted_with": "reagoval nasledovne {0}", + "read": "Prečítané!", + "repeated_you": "zopakoval tvoju správu" + }, + "password_reset": { + "check_email": "V novom emaile ti bol doručený odkaz na spôsob, ako obnovíš svoje heslo.", + "forgot_password": "Zabudol si heslo?", + "instruction": "Zadaj svoju emailovú adresu alebo užívateľské meno. Pošleme ti odkaz pomocou, ktorého môžeš obnoviť svoje heslo.", + "password_reset": "Obnovenie hesla", + "password_reset_disabled": "Obnova hesla je vypnutá. Kontaktuj, prosím, správcu tohto servera.", + "password_reset_required": "Musíš najskôr obnoviť heslo, ak sa chceš prihlásiť.", + "password_reset_required_but_mailer_is_disabled": "Musíš obnoviť svoje heslo, ale obnova hesla je na serveri vypnutá. Kontaktuj, prosím, správcu tohto servera.", + "placeholder": "Tvoj email alebo užívateľské meno", + "return_home": "Návrat na domácu stránku", + "too_many_requests": "Prekročil si limit pokusov, skús znova neskôr." + }, + "polls": { + "add_option": "Pridať možnosť", + "add_poll": "Pridať anketu", + "expired": "Anketa skončila pre {0}", + "expires_in": "Anketa končí za {0}", + "expiry": "Vek ankety", + "multiple_choices": "Výber viacerých možností", + "not_enough_options": "Príliš málo jedinečných možností v ankete", + "option": "Možnosť", + "people_voted_count": "{count} volič | {count} voličov", + "single_choice": "Výber jednej možnosti", + "type": "Typ ankety", + "vote": "Hlas", + "votes": "hlasy", + "votes_count": "{count} hlas | {count} hlasov" + }, + "post_status": { + "account_not_locked_warning": "Tvoj účen nie je {0}. Ktokoľvek ťa môže začať nasledovať a tak vidieť správy určené len pre nasledovateľov.", + "account_not_locked_warning_link": "uzamknuté", + "attachments_sensitive": "Označiť prílohy ako citlivé", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Obyčajný text" + }, + "content_warning": "Nadpis (nepovinné)", + "default": "Práve som ...", + "direct_warning_to_all": "Túto správu bude vidieť každý užívateľ, ktorého v nej spomenieš.", + "direct_warning_to_first_only": "Táto správa bude viditeľná len pre užívateľov, ktorých vymenuješ na začiatku správy.", + "empty_status_error": "Nie je možné odoslať prázdnu správu bez priložených súborov", + "media_description": "Popis média", + "media_description_error": "Nepodarilo sa aktualizovať média, skús znova", + "new_status": "Poslať novú správu", + "post": "Poslať", + "posting": "Posielanie", + "preview": "Náhľad", + "preview_empty": "Prázdne", + "scope": { + "direct": "Priama správa - zobrazí sa len užívateľom spomenutým v správe", + "private": "Pre nasledovníkov - zobrazí sa len tvojim nasledovníkom", + "public": "Verejné - zobrazí sa vo všetkých časových osiach", + "unlisted": "Nezaradené - nezobrazí sa v žiadnej časovej osy" + }, + "scope_notice": { + "private": "Túto správu budú vidieť len tvoji nasledovníci", + "public": "Túto správu bude vidieť každý", + "unlisted": "Táto správa nebude viditeľná na verejnej časovej osi a v celej známej sieti" + } + }, + "registration": { + "bio": "Životopis", + "bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.", + "captcha": "CAPTCHA", + "email": "Email", + "fullname": "Zobrazované meno", + "fullname_placeholder": "napr. Peter Kukurica", + "new_captcha": "Klikni na obrázok a vnikne nová captcha", + "password_confirm": "Potvrdenie hesla", + "reason": "Dôvod registrácie", + "reason_placeholder": "Tento server schvaľuje registrácie manuálne.\nZanechaj správcom dôvod, prečo máš záujem vytvoriť si tu účet.", + "register": "Registrácia", + "registration": "Registrácia", + "token": "Pozývací kód", + "username_placeholder": "napr. peter", + "validations": { + "email_required": "nemôže byť prázdne", + "fullname_required": "nemôže byť prázdne", + "password_confirmation_match": "musí byť rovnaké ako heslo", + "password_confirmation_required": "nemôže byť prázdne", + "password_required": "nemôže byť prázdne", + "username_required": "nemôže byť prázdne" + } + }, + "remote_user_resolver": { + "error": "Nenájdené.", + "remote_user_resolver": "Vzdialené overenie užívateľa", + "searching_for": "Hľadám..." + }, + "search": { + "hashtags": "Haštagy", + "no_results": "Žiadne výsledky", + "people": "Ľudia", + "people_talking": "{count} ľudí hovorí", + "person_talking": "{count} človek hovorí" + }, + "selectable_list": { + "select_all": "Vybrať všetko" + }, + "status": { + "ancestor_follow": "Pozri {numReplies} ďalšiu odpoveď pod touto správou | Pozri {numReplies} ďalších odpovedí pod touto správou", + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "Zastaviť prehrávač Flashu", + "bookmark": "Vytvoriť záložku", + "collapse_attachments": "Zabaliť médiá", + "copy_link": "Skopírovať odkaz do správy", + "delete": "Zmazať správu", + "delete_confirm": "Skutočne chceš zmazať túto správu?", + "expand": "Rozbaliť správu", + "external_source": "Vzdialený zdroj", + "favorites": "Obľúbené", + "hide_attachment": "Skryť prílohy", + "hide_content": "Skryť obsah", + "hide_full_subject": "Skry celý nadpis", + "many_attachments": "Správa má {number} príloh", + "mentions": "Spomenutia", + "move_down": "Presuň prílohu doprava", + "move_up": "Presuň prílohu doľava", + "mute_conversation": "Stíšiť konverzáciu", + "nsfw": "NSFW", + "open_gallery": "Otvoriť galériu", + "pin": "Pripnúť na stránku užívateľa", + "pinned": "Pripnuté", + "plus_more": "+{number} ďalších", + "remove_attachment": "Odstrániť prílohy", + "repeats": "Opakovania", + "replies_list": "Odpovede:", + "replies_list_with_others": "Odpoveď (+{numReplies} iný): | Odpoveď (+{numReplies} iných):", + "reply_to": "Odpovedať komu", + "show_all_attachments": "Zobraz všetky prílohy", + "show_all_conversation": "Zobraz celú konverzáciu ({numStatus} iná správa) | Zobraz celú konverzáciu ({numStatus} iných správ)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "Náhľad popisku (otvor prílohu pre zobrazenie celého popisku)", + "show_attachment_in_modal": "Zobraz médiá modálne", + "show_content": "Zobraziť obsah", + "show_full_subject": "Zobraziť celý nadpis", + "show_only_conversation_under_this": "Zobraz len správy súvisiace s touto správou", + "status_deleted": "Táto správa bola zmazaná", + "status_unavailable": "Neznámy status", + "thread_follow": "Zobraz zvyšnú časť tejto konverzácie (celkovo {numStatus} správa) | Zobraz zvyšnú časť tejto konverzácie (celkovo {numStatus} správ)", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "Skry túto konverzáciu", + "thread_muted": "Konverzácia stíšená", + "thread_muted_and_words": ", má slová:", + "thread_show": "Zobraz túto konverzáciu", + "thread_show_full": "Zobraz všetko pod touto konverzáciou (celkovo {numStatus} správa, max hĺbka {depth}) | Zobraz všetko pod touto konverzáciou (celkovo {numStatus} správ, max hĺbka {depth})", + "thread_show_full_with_icon": "{icon} {text}", + "unbookmark": "Zmazať záložku", + "unmute_conversation": "Oznamovať konverzáciu", + "unpin": "Odopnúť zo stránky užívateľa", + "you": "(ty)" + }, + "time": { + "in_future": "za {0}", + "in_past": "pred {0}", + "now": "práve teraz", + "now_short": "teraz", + "unit": { + "days": "{0} dní", + "days_short": "{0}d", + "hours": "{0} hodín", + "hours_short": "{0}h", + "minutes": "{0} minút", + "minutes_short": "{0}min", + "months": "{0} mesiacov", + "months_short": "{0}mes", + "seconds": "{0} sekúnd", + "seconds_short": "{0}s", + "weeks": "{0} týždňov", + "weeks_short": "{0}t", + "years": "{0} rokov", + "years_short": "{0}r" + } + }, + "timeline": { + "collapse": "Zbaliť", + "conversation": "Konverzácia", + "error": "Chyba pri nahrávaní časovej správy: {0}", + "load_older": "Nahrať staršie správy", + "no_more_statuses": "Žiadne ďalšie správy", + "no_retweet_hint": "Správa je označená ako len-pre-nasledovateľov alebo ako priama a nemôže byť zopakovaná na tvojej časovej osy.", + "no_statuses": "Žiadne správy", + "reload": "Znovu nahrať", + "repeated": "zopakované", + "show_new": "Zobraziť nové", + "socket_broke": "Strata prepojenia v reálnom čase: chyba CloseEvent kód {0}", + "socket_reconnected": "Prepojenie v reálnom čase bolo úspešne vytvorené", + "up_to_date": "Aktuálne" + }, + "tool_tip": { + "accept_follow_request": "Prijať požiadavku nasledovníka", + "add_reaction": "Reagovať", + "bookmark": "Záložka", + "favorite": "Obľúbené", + "media_upload": "Nahrať médium", + "reject_follow_request": "Odmietnuť požiadavku nasledovníka", + "repeat": "Zopakovať", + "reply": "Odpovedať", + "user_settings": "Nastavenia užívateľa" + }, + "upload": { + "error": { + "base": "Nahrávanie bolo neúspešné.", + "default": "Vyskúšaj opäť neskôr", + "file_too_big": "Súbor je príliš veľký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Nahrávanie bolo neúspešné: {0}" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Aktivovať účet", + "deactivate_account": "Deaktivovať účet", + "delete_account": "Zmazať účet", + "delete_user": "Zmazať užívateľa", + "disable_any_subscription": "Zakázať nasledovanie užívateľov", + "disable_remote_subscription": "Odstrániť prístup k serveru nasledovnému vzdialenému užívateľovi", + "force_nsfw": "Označ všetky správy ako NSFW", + "force_unlisted": "Vynúť, aby správy neboli zobrazované", + "grant_admin": "Povoliť spravovanie", + "grant_moderator": "Povoliť moderovanie", + "moderation": "Moderovanie", + "quarantine": "Zakázať federáciu správ užívateľa", + "revoke_admin": "Zakázať spravovanie", + "revoke_moderator": "Zakázať moderovanie", + "sandbox": "Vynúť, aby správy boli len pre nasledovateľov", + "strip_media": "Odstrániť média zo správy" + }, + "approve": "Schváliť", + "block": "Zablokovať", + "block_progress": "Blokujem…", + "blocked": "Blokované!", + "bot": "Robot", + "deactivated": "Neaktívne", + "deny": "Zakázané", + "edit_profile": "Uraviť profil", + "favorites": "Obľúbené", + "follow": "Nasledovať", + "follow_cancel": "Požiadavka zrušená", + "follow_progress": "Žiadam o povolenie…", + "follow_sent": "Požiadavka zaslaná!", + "follow_unfollow": "Prestať sledovať", + "followees": "Nasleduje", + "followers": "Nasledovatelia", + "following": "Nasleduješ!", + "follows_you": "Nasleduje teba!", + "hidden": "Skryté", + "hide_repeats": "Skry zopakovania", + "highlight": { + "disabled": "Bez zvýraznenia", + "side": "Pásik na boku", + "solid": "Jednoliate pozadie", + "striped": "Šrafované pozadie" + }, + "its_you": "To si ty!", + "media": "Média", + "mention": "Spomenul", + "message": "Správa", + "mute": "Stíšiť", + "mute_progress": "Stišujem…", + "muted": "Stíšené", + "per_day": "za deň", + "remote_follow": "Nasledovanie z ďaleka", + "report": "Nahlásiť", + "show_repeats": "Zobraz zopakovania", + "statuses": "Vytvorených správ", + "subscribe": "Prihlásiť k odberu", + "unblock": "Odblokovať", + "unblock_progress": "Oblokováva sa…", + "unmute": "Povoliť oznamy", + "unmute_progress": "Povoľujem oznamy…", + "unsubscribe": "Odhlásiť z odberu" + }, + "user_profile": { + "profile_does_not_exist": "Prepáč, tento profil neexistuje.", + "profile_loading_error": "Prepáč, nastala chyba pri nahrávaní profilu.", + "timeline_title": "Časová os užívateľa" + }, + "user_reporting": { + "add_comment_description": "Hlásnenie bude zaslané moderátorom servera. Nižšie môžeš napísať dôvod prečo tento účet nahlasuješ:", + "additional_comments": "Ďalšie poznámky", + "forward_description": "Účet je z iného servera. Poslať kópiu tohto hlásenia aj tam?", + "forward_to": "Preposlať komu {0}", + "generic_error": "Nastala chyba pri vykonaní tvojej požiadavky.", + "submit": "Odoslať", + "title": "Nahlásení {0}" + }, + "who_to_follow": { + "more": "Viac", + "who_to_follow": "Koho nasledovať" } - }, - "user_profile": { - "timeline_title": "Časová os užívateľa", - "profile_does_not_exist": "Prepáč, tento profil neexistuje.", - "profile_loading_error": "Prepáč, nastala chyba pri nahrávaní profilu." - }, - "user_reporting": { - "title": "Nahlásení {0}", - "add_comment_description": "Hlásnenie bude zaslané moderátorom servera. Nižšie môžeš napísať dôvod prečo tento účet nahlasuješ:", - "additional_comments": "Ďalšie poznámky", - "forward_description": "Účet je z iného servera. Poslať kópiu tohto hlásenia aj tam?", - "forward_to": "Preposlať komu {0}", - "submit": "Odoslať", - "generic_error": "Nastala chyba pri vykonaní tvojej požiadavky." - }, - "who_to_follow": { - "more": "Viac", - "who_to_follow": "Koho nasledovať" - }, - "tool_tip": { - "media_upload": "Nahrať médium", - "repeat": "Zopakovať", - "reply": "Odpovedať", - "favorite": "Obľúbené", - "add_reaction": "Reagovať", - "user_settings": "Nastavenia užívateľa", - "accept_follow_request": "Prijať požiadavku nasledovníka", - "reject_follow_request": "Odmietnuť požiadavku nasledovníka", - "bookmark": "Záložka" - }, - "upload": { - "error": { - "base": "Nahrávanie bolo neúspešné.", - "message": "Nahrávanie bolo neúspešné: {0}", - "file_too_big": "Súbor je príliš veľký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Vyskúšaj opäť neskôr" - } - }, - "search": { - "people": "Ľudia", - "hashtags": "Haštagy", - "person_talking": "{count} človek hovorí", - "people_talking": "{count} ľudí hovorí", - "no_results": "Žiadne výsledky" - }, - "password_reset": { - "forgot_password": "Zabudol si heslo?", - "password_reset": "Obnovenie hesla", - "instruction": "Zadaj svoju emailovú adresu alebo užívateľské meno. Pošleme ti odkaz pomocou, ktorého môžeš obnoviť svoje heslo.", - "placeholder": "Tvoj email alebo užívateľské meno", - "check_email": "V novom emaile ti bol doručený odkaz na spôsob, ako obnovíš svoje heslo.", - "return_home": "Návrat na domácu stránku", - "too_many_requests": "Prekročil si limit pokusov, skús znova neskôr.", - "password_reset_disabled": "Obnova hesla je vypnutá. Kontaktuj, prosím, správcu tohto servera.", - "password_reset_required": "Musíš najskôr obnoviť heslo, ak sa chceš prihlásiť.", - "password_reset_required_but_mailer_is_disabled": "Musíš obnoviť svoje heslo, ale obnova hesla je na serveri vypnutá. Kontaktuj, prosím, správcu tohto servera." - }, - "chats": { - "you": "Ty:", - "message_user": "Správa {nickname}", - "delete": "Zmazať", - "chats": "Rozhovor", - "new": "Nový rozhovor", - "empty_message_error": "Nie je možné odoslať prázdnu správu", - "more": "Viac", - "delete_confirm": "Skutočne chceš zmazať túto správu?", - "error_loading_chat": "Nastala chyba pri nahrávaní rozhovoru.", - "error_sending_message": "Nastala chyba pri odosielaní správ.", - "empty_chat_list_placeholder": "Nemáš za sebou žiadne rozhovory. Začni nový rozhovor!" - }, - "file_type": { - "audio": "Audio", - "video": "Video", - "image": "Obrázok", - "file": "Súbor" - }, - "display_date": { - "today": "Dnes" - } -} +} \ No newline at end of file diff --git a/src/i18n/te.json b/src/i18n/te.json index 4f255505..4b1f5088 100644 --- a/src/i18n/te.json +++ b/src/i18n/te.json @@ -1,349 +1,420 @@ { - "chat.title": "చాట్", - "features_panel.chat": "చాట్", - "features_panel.gopher": "గోఫర్", - "features_panel.media_proxy": "మీడియా ప్రాక్సీ", - "features_panel.scope_options": "స్కోప్ ఎంపికలు", - "features_panel.text_limit": "వచన పరిమితి", - "features_panel.title": "లక్షణాలు", - "features_panel.who_to_follow": "ఎవరిని అనుసరించాలి", - "finder.error_fetching_user": "వినియోగదారుని పొందడంలో లోపం", - "finder.find_user": "వినియోగదారుని కనుగొనండి", - "general.apply": "వర్తించు", - "general.submit": "సమర్పించు", - "general.more": "మరిన్ని", - "general.generic_error": "ఒక తప్పిదం సంభవించినది", - "general.optional": "ఐచ్చికం", - "image_cropper.crop_picture": "చిత్రాన్ని కత్తిరించండి", - "image_cropper.save": "దాచు", - "image_cropper.save_without_cropping": "కత్తిరించకుండా సేవ్ చేయి", - "image_cropper.cancel": "రద్దుచేయి", - "login.login": "లాగిన్", - "login.description": "OAuth తో లాగిన్ అవ్వండి", - "login.logout": "లాగౌట్", - "login.password": "సంకేతపదము", - "login.placeholder": "ఉదా. lain", - "login.register": "నమోదు చేసుకోండి", - "login.username": "వాడుకరి పేరు", - "login.hint": "చర్చలో చేరడానికి లాగిన్ అవ్వండి", - "media_modal.previous": "ముందరి పుట", - "media_modal.next": "తరువాత", - "nav.about": "గురించి", - "nav.back": "వెనక్కి", - "nav.chat": "స్థానిక చాట్", - "nav.friend_requests": "అనుసరించడానికి అభ్యర్థనలు", - "nav.mentions": "ప్రస్తావనలు", - "nav.dms": "నేరుగా పంపిన సందేశాలు", - "nav.public_tl": "ప్రజా కాలక్రమం", - "nav.timeline": "కాలక్రమం", - "nav.twkn": "మొత్తం తెలిసిన నెట్వర్క్", - "nav.user_search": "వాడుకరి శోధన", - "nav.who_to_follow": "ఎవరిని అనుసరించాలి", - "nav.preferences": "ప్రాధాన్యతలు", - "notifications.broken_favorite": "తెలియని స్థితి, దాని కోసం శోధిస్తోంది...", - "notifications.favorited_you": "మీ స్థితిని ఇష్టపడ్డారు", - "notifications.followed_you": "మిమ్మల్ని అనుసరించారు", - "notifications.load_older": "పాత నోటిఫికేషన్లను లోడ్ చేయండి", - "notifications.notifications": "ప్రకటనలు", - "notifications.read": "చదివాను!", - "notifications.repeated_you": "మీ స్థితిని పునరావృతం చేసారు", - "notifications.no_more_notifications": "ఇక నోటిఫికేషన్లు లేవు", - "post_status.new_status": "క్రొత్త స్థితిని పోస్ట్ చేయండి", - "post_status.account_not_locked_warning": "మీ ఖాతా {0} కాదు. ఎవరైనా మిమ్మల్ని అనుసరించి అనుచరులకు మాత్రమే ఉద్దేశించిన పోస్టులను చూడవచ్చు.", - "post_status.account_not_locked_warning_link": "తాళం వేయబడినది", - "post_status.attachments_sensitive": "జోడింపులను సున్నితమైనవిగా గుర్తించండి", - "post_status.content_type.text/plain": "సాధారణ అక్షరాలు", - "post_status.content_type.text/html": "హెచ్‌టిఎమ్ఎల్", - "post_status.content_type.text/markdown": "మార్క్డౌన్", - "post_status.content_warning": "విషయం (ఐచ్ఛికం)", - "post_status.default": "ఇప్పుడే విజయవాడలో దిగాను.", - "post_status.direct_warning": "ఈ పోస్ట్ మాత్రమే పేర్కొన్న వినియోగదారులకు మాత్రమే కనిపిస్తుంది.", - "post_status.posting": "పోస్ట్ చేస్తున్నా", - "post_status.scope.direct": "ప్రత్యక్ష - పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయబడుతుంది", - "post_status.scope.private": "అనుచరులకు మాత్రమే - అనుచరులకు మాత్రమే పోస్ట్ చేయబడుతుంది", - "post_status.scope.public": "పబ్లిక్ - ప్రజా కాలక్రమాలకు పోస్ట్ చేయబడుతుంది", - "post_status.scope.unlisted": "జాబితా చేయబడనిది - ప్రజా కాలక్రమాలకు పోస్ట్ చేయవద్దు", - "registration.bio": "బయో", - "registration.email": "ఈ మెయిల్", - "registration.fullname": "ప్రదర్శన పేరు", - "registration.password_confirm": "పాస్వర్డ్ నిర్ధారణ", - "registration.registration": "నమోదు", - "registration.token": "ఆహ్వాన టోకెన్", - "registration.captcha": "కాప్చా", - "registration.new_captcha": "కొత్త కాప్చా పొందుటకు చిత్రం మీద క్లిక్ చేయండి", - "registration.username_placeholder": "ఉదా. lain", - "registration.fullname_placeholder": "ఉదా. Lain Iwakura", - "registration.bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.", - "registration.validations.username_required": "ఖాళీగా విడిచిపెట్టరాదు", - "registration.validations.fullname_required": "ఖాళీగా విడిచిపెట్టరాదు", - "registration.validations.email_required": "ఖాళీగా విడిచిపెట్టరాదు", - "registration.validations.password_required": "ఖాళీగా విడిచిపెట్టరాదు", - "registration.validations.password_confirmation_required": "ఖాళీగా విడిచిపెట్టరాదు", - "registration.validations.password_confirmation_match": "సంకేతపదం వలె ఉండాలి", - "settings.app_name": "అనువర్తన పేరు", - "settings.attachmentRadius": "జోడింపులు", - "settings.attachments": "జోడింపులు", - "settings.avatar": "అవతారం", - "settings.avatarAltRadius": "అవతారాలు (ప్రకటనలు)", - "settings.avatarRadius": "అవతారాలు", - "settings.background": "బ్యాక్‌గ్రౌండు", - "settings.bio": "బయో", - "settings.blocks_tab": "బ్లాక్‌లు", - "settings.btnRadius": "బటన్లు", - "settings.cBlue": "నీలం (ప్రత్యుత్తరం, అనుసరించండి)", - "settings.cGreen": "Green (Retweet)", - "settings.cOrange": "ఆరెంజ్ (ఇష్టపడు)", - "settings.cRed": "Red (Cancel)", - "settings.change_password": "పాస్‌వర్డ్ మార్చండి", - "settings.change_password_error": "మీ పాస్వర్డ్ను మార్చడంలో సమస్య ఉంది.", - "settings.changed_password": "పాస్వర్డ్ విజయవంతంగా మార్చబడింది!", - "settings.collapse_subject": "Collapse posts with subjects", - "settings.composing": "Composing", - "settings.confirm_new_password": "కొత్త పాస్వర్డ్ను నిర్ధారించండి", - "settings.current_avatar": "మీ ప్రస్తుత అవతారం", - "settings.current_password": "ప్రస్తుత పాస్వర్డ్", - "settings.current_profile_banner": "మీ ప్రస్తుత ప్రొఫైల్ బ్యానర్", - "settings.data_import_export_tab": "Data Import / Export", - "settings.default_vis": "Default visibility scope", - "settings.delete_account": "Delete Account", - "settings.delete_account_description": "మీ ఖాతా మరియు మీ అన్ని సందేశాలను శాశ్వతంగా తొలగించండి.", - "settings.delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.", - "settings.delete_account_instructions": "ఖాతా తొలగింపును నిర్ధారించడానికి దిగువ ఇన్పుట్లో మీ పాస్వర్డ్ను టైప్ చేయండి.", - "settings.avatar_size_instruction": "అవతార్ చిత్రాలకు సిఫార్సు చేసిన కనీస పరిమాణం 150x150 పిక్సెల్స్.", - "settings.export_theme": "Save preset", - "settings.filtering": "వడపోత", - "settings.filtering_explanation": "All statuses containing these words will be muted, one per line", - "settings.follow_export": "Follow export", - "settings.follow_export_button": "Export your follows to a csv file", - "settings.follow_export_processing": "Processing, you'll soon be asked to download your file", - "settings.follow_import": "Follow import", - "settings.follow_import_error": "అనుచరులను దిగుమతి చేయడంలో లోపం", - "settings.follows_imported": "Follows imported! Processing them will take a while.", - "settings.foreground": "Foreground", - "settings.general": "General", - "settings.hide_attachments_in_convo": "సంభాషణలలో జోడింపులను దాచు", - "settings.hide_attachments_in_tl": "కాలక్రమంలో జోడింపులను దాచు", - "settings.hide_muted_posts": "మ్యూట్ చేసిన వినియోగదారుల యొక్క పోస్ట్లను దాచిపెట్టు", - "settings.max_thumbnails": "Maximum amount of thumbnails per post", - "settings.hide_isp": "Hide instance-specific panel", - "settings.preload_images": "Preload images", - "settings.use_one_click_nsfw": "కేవలం ఒక క్లిక్ తో NSFW జోడింపులను తెరవండి", - "settings.hide_post_stats": "Hide post statistics (e.g. the number of favorites)", - "settings.hide_user_stats": "Hide user statistics (e.g. the number of followers)", - "settings.hide_filtered_statuses": "Hide filtered statuses", - "settings.import_followers_from_a_csv_file": "Import follows from a csv file", - "settings.import_theme": "Load preset", - "settings.inputRadius": "Input fields", - "settings.checkboxRadius": "Checkboxes", - "settings.instance_default": "(default: {value})", - "settings.instance_default_simple": "(default)", - "settings.interface": "Interface", - "settings.interfaceLanguage": "Interface language", - "settings.invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", - "settings.limited_availability": "మీ బ్రౌజర్లో అందుబాటులో లేదు", - "settings.links": "Links", - "settings.lock_account_description": "మీ ఖాతాను ఆమోదించిన అనుచరులకు మాత్రమే పరిమితం చేయండి", - "settings.loop_video": "Loop videos", - "settings.loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", - "settings.mutes_tab": "మ్యూట్ చేయబడినవి", - "settings.play_videos_in_modal": "మీడియా వీక్షికలో నేరుగా వీడియోలను ప్లే చేయి", - "settings.use_contain_fit": "అటాచ్మెంట్ సూక్ష్మచిత్రాలను కత్తిరించవద్దు", - "settings.name": "Name", - "settings.name_bio": "పేరు & బయో", - "settings.new_password": "కొత్త సంకేతపదం", - "settings.notification_visibility": "చూపించవలసిన నోటిఫికేషన్ రకాలు", - "settings.notification_visibility_follows": "Follows", - "settings.notification_visibility_likes": "ఇష్టాలు", - "settings.notification_visibility_mentions": "ప్రస్తావనలు", - "settings.notification_visibility_repeats": "పునఃప్రసారాలు", - "settings.no_rich_text_description": "అన్ని పోస్ట్ల నుండి రిచ్ టెక్స్ట్ ఫార్మాటింగ్ను స్ట్రిప్ చేయండి", - "settings.no_blocks": "బ్లాక్స్ లేవు", - "settings.no_mutes": "మ్యూట్లు లేవు", - "settings.hide_follows_description": "నేను ఎవరిని అనుసరిస్తున్నానో చూపించవద్దు", - "settings.hide_followers_description": "నన్ను ఎవరు అనుసరిస్తున్నారో చూపవద్దు", - "settings.show_admin_badge": "నా ప్రొఫైల్ లో అడ్మిన్ బ్యాడ్జ్ చూపించు", - "settings.show_moderator_badge": "నా ప్రొఫైల్లో మోడరేటర్ బ్యాడ్జ్ని చూపించు", - "settings.nsfw_clickthrough": "Enable clickthrough NSFW attachment hiding", - "settings.oauth_tokens": "OAuth tokens", - "settings.token": "Token", - "settings.refresh_token": "Refresh Token", - "settings.valid_until": "Valid Until", - "settings.revoke_token": "Revoke", - "settings.panelRadius": "Panels", - "settings.pause_on_unfocused": "Pause streaming when tab is not focused", - "settings.presets": "Presets", - "settings.profile_background": "Profile Background", - "settings.profile_banner": "Profile Banner", - "settings.profile_tab": "Profile", - "settings.radii_help": "Set up interface edge rounding (in pixels)", - "settings.replies_in_timeline": "Replies in timeline", - "settings.reply_visibility_all": "Show all replies", - "settings.reply_visibility_following": "Only show replies directed at me or users I'm following", - "settings.reply_visibility_self": "Only show replies directed at me", - "settings.saving_err": "Error saving settings", - "settings.saving_ok": "Settings saved", - "settings.security_tab": "Security", - "settings.scope_copy": "Copy scope when replying (DMs are always copied)", - "settings.set_new_avatar": "Set new avatar", - "settings.set_new_profile_background": "Set new profile background", - "settings.set_new_profile_banner": "Set new profile banner", - "settings.settings": "Settings", - "settings.subject_input_always_show": "Always show subject field", - "settings.subject_line_behavior": "Copy subject when replying", - "settings.subject_line_email": "Like email: \"re: subject\"", - "settings.subject_line_mastodon": "Like mastodon: copy as is", - "settings.subject_line_noop": "Do not copy", - "settings.post_status_content_type": "Post status content type", - "settings.stop_gifs": "Play-on-hover GIFs", - "settings.streaming": "Enable automatic streaming of new posts when scrolled to the top", - "settings.text": "Text", - "settings.theme": "Theme", - "settings.theme_help": "Use hex color codes (#rrggbb) to customize your color theme.", - "settings.theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.", - "settings.theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", - "settings.tooltipRadius": "Tooltips/alerts", - "settings.upload_a_photo": "Upload a photo", - "settings.user_settings": "User Settings", - "settings.values.false": "no", - "settings.values.true": "yes", - "settings.notifications": "Notifications", - "settings.enable_web_push_notifications": "Enable web push notifications", - "settings.style.switcher.keep_color": "Keep colors", - "settings.style.switcher.keep_shadows": "Keep shadows", - "settings.style.switcher.keep_opacity": "Keep opacity", - "settings.style.switcher.keep_roundness": "Keep roundness", - "settings.style.switcher.keep_fonts": "Keep fonts", - "settings.style.switcher.save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.", - "settings.style.switcher.reset": "Reset", - "settings.style.switcher.clear_all": "Clear all", - "settings.style.switcher.clear_opacity": "Clear opacity", - "settings.style.common.color": "Color", - "settings.style.common.opacity": "Opacity", - "settings.style.common.contrast.hint": "Contrast ratio is {ratio}, it {level} {context}", - "settings.style.common.contrast.level.aa": "meets Level AA guideline (minimal)", - "settings.style.common.contrast.level.aaa": "meets Level AAA guideline (recommended)", - "settings.style.common.contrast.level.bad": "doesn't meet any accessibility guidelines", - "settings.style.common.contrast.context.18pt": "for large (18pt+) text", - "settings.style.common.contrast.context.text": "for text", - "settings.style.common_colors._tab_label": "Common", - "settings.style.common_colors.main": "Common colors", - "settings.style.common_colors.foreground_hint": "See \"Advanced\" tab for more detailed control", - "settings.style.common_colors.rgbo": "Icons, accents, badges", - "settings.style.advanced_colors._tab_label": "Advanced", - "settings.style.advanced_colors.alert": "Alert background", - "settings.style.advanced_colors.alert_error": "Error", - "settings.style.advanced_colors.badge": "Badge background", - "settings.style.advanced_colors.badge_notification": "Notification", - "settings.style.advanced_colors.panel_header": "Panel header", - "settings.style.advanced_colors.top_bar": "Top bar", - "settings.style.advanced_colors.borders": "Borders", - "settings.style.advanced_colors.buttons": "Buttons", - "settings.style.advanced_colors.inputs": "Input fields", - "settings.style.advanced_colors.faint_text": "Faded text", - "settings.style.radii._tab_label": "Roundness", - "settings.style.shadows._tab_label": "Shadow and lighting", - "settings.style.shadows.component": "Component", - "settings.style.shadows.override": "Override", - "settings.style.shadows.shadow_id": "Shadow #{value}", - "settings.style.shadows.blur": "Blur", - "settings.style.shadows.spread": "Spread", - "settings.style.shadows.inset": "Inset", - "settings.style.shadows.hint": "For shadows you can also use --variable as a color value to use CSS3 variables. Please note that setting opacity won't work in this case.", - "settings.style.shadows.filter_hint.always_drop_shadow": "Warning, this shadow always uses {0} when browser supports it.", - "settings.style.shadows.filter_hint.drop_shadow_syntax": "{0} does not support {1} parameter and {2} keyword.", - "settings.style.shadows.filter_hint.avatar_inset": "Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.", - "settings.style.shadows.filter_hint.spread_zero": "Shadows with spread > 0 will appear as if it was set to zero", - "settings.style.shadows.filter_hint.inset_classic": "Inset shadows will be using {0}", - "settings.style.shadows.components.panel": "Panel", - "settings.style.shadows.components.panelHeader": "Panel header", - "settings.style.shadows.components.topBar": "Top bar", - "settings.style.shadows.components.avatar": "User avatar (in profile view)", - "settings.style.shadows.components.avatarStatus": "User avatar (in post display)", - "settings.style.shadows.components.popup": "Popups and tooltips", - "settings.style.shadows.components.button": "Button", - "settings.style.shadows.components.buttonHover": "Button (hover)", - "settings.style.shadows.components.buttonPressed": "Button (pressed)", - "settings.style.shadows.components.buttonPressedHover": "Button (pressed+hover)", - "settings.style.shadows.components.input": "Input field", - "settings.style.fonts._tab_label": "Fonts", - "settings.style.fonts.help": "Select font to use for elements of UI. For \"custom\" you have to enter exact font name as it appears in system.", - "settings.style.fonts.components.interface": "Interface", - "settings.style.fonts.components.input": "Input fields", - "settings.style.fonts.components.post": "Post text", - "settings.style.fonts.components.postCode": "Monospaced text in a post (rich text)", - "settings.style.fonts.family": "Font name", - "settings.style.fonts.size": "Size (in px)", - "settings.style.fonts.weight": "Weight (boldness)", - "settings.style.fonts.custom": "Custom", - "settings.style.preview.header": "Preview", - "settings.style.preview.content": "Content", - "settings.style.preview.error": "Example error", - "settings.style.preview.button": "Button", - "settings.style.preview.text": "A bunch of more {0} and {1}", - "settings.style.preview.mono": "content", - "settings.style.preview.input": "Just landed in L.A.", - "settings.style.preview.faint_link": "helpful manual", - "settings.style.preview.fine_print": "Read our {0} to learn nothing useful!", - "settings.style.preview.header_faint": "This is fine", - "settings.style.preview.checkbox": "I have skimmed over terms and conditions", - "settings.style.preview.link": "a nice lil' link", - "settings.version.title": "Version", - "settings.version.backend_version": "Backend Version", - "settings.version.frontend_version": "Frontend Version", - "timeline.collapse": "Collapse", - "timeline.conversation": "Conversation", - "timeline.error_fetching": "Error fetching updates", - "timeline.load_older": "Load older statuses", - "timeline.no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated", - "timeline.repeated": "repeated", - "timeline.show_new": "Show new", - "timeline.up_to_date": "Up-to-date", - "timeline.no_more_statuses": "No more statuses", - "timeline.no_statuses": "No statuses", - "status.reply_to": "Reply to", - "status.replies_list": "Replies:", - "user_card.approve": "Approve", - "user_card.block": "Block", - "user_card.blocked": "Blocked!", - "user_card.deny": "Deny", - "user_card.favorites": "Favorites", - "user_card.follow": "Follow", - "user_card.follow_sent": "Request sent!", - "user_card.follow_progress": "Requesting…", - "user_card.follow_unfollow": "Unfollow", - "user_card.followees": "Following", - "user_card.followers": "Followers", - "user_card.following": "Following!", - "user_card.follows_you": "Follows you!", - "user_card.its_you": "It's you!", - "user_card.media": "Media", - "user_card.mute": "Mute", - "user_card.muted": "Muted", - "user_card.per_day": "per day", - "user_card.remote_follow": "Remote follow", - "user_card.statuses": "Statuses", - "user_card.unblock": "Unblock", - "user_card.unblock_progress": "Unblocking...", - "user_card.block_progress": "Blocking...", - "user_card.unmute": "Unmute", - "user_card.unmute_progress": "Unmuting...", - "user_card.mute_progress": "Muting...", - "user_profile.timeline_title": "User Timeline", - "user_profile.profile_does_not_exist": "Sorry, this profile does not exist.", - "user_profile.profile_loading_error": "Sorry, there was an error loading this profile.", - "who_to_follow.more": "More", - "who_to_follow.who_to_follow": "Who to follow", - "tool_tip.media_upload": "Upload Media", - "tool_tip.repeat": "Repeat", - "tool_tip.reply": "Reply", - "tool_tip.favorite": "Favorite", - "tool_tip.user_settings": "User Settings", - "upload.error.base": "Upload failed.", - "upload.error.file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "upload.error.default": "Try again later", - "upload.file_size_units.B": "B", - "upload.file_size_units.KiB": "KiB", - "upload.file_size_units.MiB": "MiB", - "upload.file_size_units.GiB": "GiB", - "upload.file_size_units.TiB": "TiB" -} + "features_panel": { + "media_proxy": "మీడియా ప్రాక్సీ", + "scope_options": "స్కోప్ ఎంపికలు", + "text_limit": "వచన పరిమితి", + "title": "లక్షణాలు", + "who_to_follow": "ఎవరిని అనుసరించాలి" + }, + "finder": { + "error_fetching_user": "వినియోగదారుని పొందడంలో లోపం", + "find_user": "వినియోగదారుని కనుగొనండి" + }, + "general": { + "apply": "వర్తించు", + "generic_error": "ఒక తప్పిదం సంభవించినది", + "more": "మరిన్ని", + "optional": "ఐచ్చికం", + "submit": "సమర్పించు" + }, + "image_cropper": { + "cancel": "రద్దుచేయి", + "crop_picture": "చిత్రాన్ని కత్తిరించండి", + "save": "దాచు", + "save_without_cropping": "కత్తిరించకుండా సేవ్ చేయి" + }, + "login": { + "description": "OAuth తో లాగిన్ అవ్వండి", + "hint": "చర్చలో చేరడానికి లాగిన్ అవ్వండి", + "login": "లాగిన్", + "logout": "లాగౌట్", + "password": "సంకేతపదము", + "placeholder": "ఉదా. lain", + "register": "నమోదు చేసుకోండి", + "username": "వాడుకరి పేరు" + }, + "media_modal": { + "next": "తరువాత", + "previous": "ముందరి పుట" + }, + "nav": { + "about": "గురించి", + "back": "వెనక్కి", + "dms": "నేరుగా పంపిన సందేశాలు", + "friend_requests": "అనుసరించడానికి అభ్యర్థనలు", + "mentions": "ప్రస్తావనలు", + "preferences": "ప్రాధాన్యతలు", + "public_tl": "ప్రజా కాలక్రమం", + "timeline": "కాలక్రమం", + "twkn": "మొత్తం తెలిసిన నెట్వర్క్", + "user_search": "వాడుకరి శోధన", + "who_to_follow": "ఎవరిని అనుసరించాలి" + }, + "notifications": { + "broken_favorite": "తెలియని స్థితి, దాని కోసం శోధిస్తోంది...", + "favorited_you": "మీ స్థితిని ఇష్టపడ్డారు", + "followed_you": "మిమ్మల్ని అనుసరించారు", + "load_older": "పాత నోటిఫికేషన్లను లోడ్ చేయండి", + "no_more_notifications": "ఇక నోటిఫికేషన్లు లేవు", + "notifications": "ప్రకటనలు", + "read": "చదివాను!", + "repeated_you": "మీ స్థితిని పునరావృతం చేసారు" + }, + "post_status": { + "account_not_locked_warning": "మీ ఖాతా {0} కాదు. ఎవరైనా మిమ్మల్ని అనుసరించి అనుచరులకు మాత్రమే ఉద్దేశించిన పోస్టులను చూడవచ్చు.", + "account_not_locked_warning_link": "తాళం వేయబడినది", + "attachments_sensitive": "జోడింపులను సున్నితమైనవిగా గుర్తించండి", + "content_type": { + "text/html": "హెచ్‌టిఎమ్ఎల్", + "text/markdown": "మార్క్డౌన్", + "text/plain": "సాధారణ అక్షరాలు" + }, + "content_warning": "విషయం (ఐచ్ఛికం)", + "default": "ఇప్పుడే విజయవాడలో దిగాను.", + "new_status": "క్రొత్త స్థితిని పోస్ట్ చేయండి", + "posting": "పోస్ట్ చేస్తున్నా", + "scope": { + "direct": "ప్రత్యక్ష - పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయబడుతుంది", + "private": "అనుచరులకు మాత్రమే - అనుచరులకు మాత్రమే పోస్ట్ చేయబడుతుంది", + "public": "పబ్లిక్ - ప్రజా కాలక్రమాలకు పోస్ట్ చేయబడుతుంది", + "unlisted": "జాబితా చేయబడనిది - ప్రజా కాలక్రమాలకు పోస్ట్ చేయవద్దు" + } + }, + "registration": { + "bio": "బయో", + "bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.", + "captcha": "కాప్చా", + "email": "ఈ మెయిల్", + "fullname": "ప్రదర్శన పేరు", + "fullname_placeholder": "ఉదా. Lain Iwakura", + "new_captcha": "కొత్త కాప్చా పొందుటకు చిత్రం మీద క్లిక్ చేయండి", + "password_confirm": "పాస్వర్డ్ నిర్ధారణ", + "registration": "నమోదు", + "token": "ఆహ్వాన టోకెన్", + "username_placeholder": "ఉదా. lain", + "validations": { + "email_required": "ఖాళీగా విడిచిపెట్టరాదు", + "fullname_required": "ఖాళీగా విడిచిపెట్టరాదు", + "password_confirmation_match": "సంకేతపదం వలె ఉండాలి", + "password_confirmation_required": "ఖాళీగా విడిచిపెట్టరాదు", + "password_required": "ఖాళీగా విడిచిపెట్టరాదు", + "username_required": "ఖాళీగా విడిచిపెట్టరాదు" + } + }, + "settings": { + "app_name": "అనువర్తన పేరు", + "attachmentRadius": "జోడింపులు", + "attachments": "జోడింపులు", + "avatar": "అవతారం", + "avatarAltRadius": "అవతారాలు (ప్రకటనలు)", + "avatarRadius": "అవతారాలు", + "avatar_size_instruction": "అవతార్ చిత్రాలకు సిఫార్సు చేసిన కనీస పరిమాణం 150x150 పిక్సెల్స్.", + "background": "బ్యాక్‌గ్రౌండు", + "bio": "బయో", + "blocks_tab": "బ్లాక్‌లు", + "btnRadius": "బటన్లు", + "cBlue": "నీలం (ప్రత్యుత్తరం, అనుసరించండి)", + "cGreen": "Green (Retweet)", + "cOrange": "ఆరెంజ్ (ఇష్టపడు)", + "cRed": "Red (Cancel)", + "change_password": "పాస్‌వర్డ్ మార్చండి", + "change_password_error": "మీ పాస్వర్డ్ను మార్చడంలో సమస్య ఉంది.", + "changed_password": "పాస్వర్డ్ విజయవంతంగా మార్చబడింది!", + "checkboxRadius": "Checkboxes", + "collapse_subject": "Collapse posts with subjects", + "composing": "Composing", + "confirm_new_password": "కొత్త పాస్వర్డ్ను నిర్ధారించండి", + "current_avatar": "మీ ప్రస్తుత అవతారం", + "current_password": "ప్రస్తుత పాస్వర్డ్", + "data_import_export_tab": "Data Import / Export", + "default_vis": "Default visibility scope", + "delete_account": "Delete Account", + "delete_account_description": "మీ ఖాతా మరియు మీ అన్ని సందేశాలను శాశ్వతంగా తొలగించండి.", + "delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.", + "delete_account_instructions": "ఖాతా తొలగింపును నిర్ధారించడానికి దిగువ ఇన్పుట్లో మీ పాస్వర్డ్ను టైప్ చేయండి.", + "enable_web_push_notifications": "Enable web push notifications", + "export_theme": "Save preset", + "filtering": "వడపోత", + "filtering_explanation": "All statuses containing these words will be muted, one per line", + "follow_export": "Follow export", + "follow_export_button": "Export your follows to a csv file", + "follow_import": "Follow import", + "follow_import_error": "అనుచరులను దిగుమతి చేయడంలో లోపం", + "follows_imported": "Follows imported! Processing them will take a while.", + "foreground": "Foreground", + "general": "General", + "hide_attachments_in_convo": "సంభాషణలలో జోడింపులను దాచు", + "hide_attachments_in_tl": "కాలక్రమంలో జోడింపులను దాచు", + "hide_filtered_statuses": "Hide filtered statuses", + "hide_followers_description": "నన్ను ఎవరు అనుసరిస్తున్నారో చూపవద్దు", + "hide_follows_description": "నేను ఎవరిని అనుసరిస్తున్నానో చూపించవద్దు", + "hide_isp": "Hide instance-specific panel", + "hide_muted_posts": "మ్యూట్ చేసిన వినియోగదారుల యొక్క పోస్ట్లను దాచిపెట్టు", + "hide_post_stats": "Hide post statistics (e.g. the number of favorites)", + "hide_user_stats": "Hide user statistics (e.g. the number of followers)", + "import_followers_from_a_csv_file": "Import follows from a csv file", + "import_theme": "Load preset", + "inputRadius": "Input fields", + "instance_default": "(default: {value})", + "instance_default_simple": "(default)", + "interface": "Interface", + "interfaceLanguage": "Interface language", + "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", + "limited_availability": "మీ బ్రౌజర్లో అందుబాటులో లేదు", + "links": "Links", + "lock_account_description": "మీ ఖాతాను ఆమోదించిన అనుచరులకు మాత్రమే పరిమితం చేయండి", + "loop_video": "Loop videos", + "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", + "max_thumbnails": "Maximum amount of thumbnails per post", + "mutes_tab": "మ్యూట్ చేయబడినవి", + "name": "Name", + "name_bio": "పేరు & బయో", + "new_password": "కొత్త సంకేతపదం", + "no_blocks": "బ్లాక్స్ లేవు", + "no_mutes": "మ్యూట్లు లేవు", + "no_rich_text_description": "అన్ని పోస్ట్ల నుండి రిచ్ టెక్స్ట్ ఫార్మాటింగ్ను స్ట్రిప్ చేయండి", + "notification_visibility": "చూపించవలసిన నోటిఫికేషన్ రకాలు", + "notification_visibility_follows": "Follows", + "notification_visibility_likes": "ఇష్టాలు", + "notification_visibility_mentions": "ప్రస్తావనలు", + "notification_visibility_repeats": "పునఃప్రసారాలు", + "notifications": "Notifications", + "nsfw_clickthrough": "Enable clickthrough NSFW attachment hiding", + "oauth_tokens": "OAuth tokens", + "panelRadius": "Panels", + "pause_on_unfocused": "Pause streaming when tab is not focused", + "play_videos_in_modal": "మీడియా వీక్షికలో నేరుగా వీడియోలను ప్లే చేయి", + "post_status_content_type": "Post status content type", + "preload_images": "Preload images", + "presets": "Presets", + "profile_background": "Profile Background", + "profile_banner": "Profile Banner", + "profile_tab": "Profile", + "radii_help": "Set up interface edge rounding (in pixels)", + "refresh_token": "Refresh Token", + "replies_in_timeline": "Replies in timeline", + "reply_visibility_all": "Show all replies", + "reply_visibility_following": "Only show replies directed at me or users I'm following", + "reply_visibility_self": "Only show replies directed at me", + "revoke_token": "Revoke", + "saving_err": "Error saving settings", + "saving_ok": "Settings saved", + "scope_copy": "Copy scope when replying (DMs are always copied)", + "security_tab": "Security", + "set_new_avatar": "Set new avatar", + "set_new_profile_background": "Set new profile background", + "set_new_profile_banner": "Set new profile banner", + "settings": "Settings", + "show_admin_badge": "నా ప్రొఫైల్ లో అడ్మిన్ బ్యాడ్జ్ చూపించు", + "show_moderator_badge": "నా ప్రొఫైల్లో మోడరేటర్ బ్యాడ్జ్ని చూపించు", + "stop_gifs": "Play-on-hover GIFs", + "streaming": "Enable automatic streaming of new posts when scrolled to the top", + "style": { + "advanced_colors": { + "_tab_label": "Advanced", + "alert": "Alert background", + "alert_error": "Error", + "badge": "Badge background", + "badge_notification": "Notification", + "borders": "Borders", + "buttons": "Buttons", + "faint_text": "Faded text", + "inputs": "Input fields", + "panel_header": "Panel header", + "top_bar": "Top bar" + }, + "common": { + "color": "Color", + "contrast": { + "context": { + "18pt": "for large (18pt+) text", + "text": "for text" + }, + "hint": "Contrast ratio is {ratio}, it {level} {context}", + "level": { + "aa": "meets Level AA guideline (minimal)", + "aaa": "meets Level AAA guideline (recommended)", + "bad": "doesn't meet any accessibility guidelines" + } + }, + "opacity": "Opacity" + }, + "common_colors": { + "_tab_label": "Common", + "foreground_hint": "See \"Advanced\" tab for more detailed control", + "main": "Common colors", + "rgbo": "Icons, accents, badges" + }, + "fonts": { + "_tab_label": "Fonts", + "components": { + "input": "Input fields", + "interface": "Interface", + "post": "Post text", + "postCode": "Monospaced text in a post (rich text)" + }, + "custom": "Custom", + "family": "Font name", + "help": "Select font to use for elements of UI. For \"custom\" you have to enter exact font name as it appears in system.", + "size": "Size (in px)", + "weight": "Weight (boldness)" + }, + "preview": { + "button": "Button", + "checkbox": "I have skimmed over terms and conditions", + "content": "Content", + "error": "Example error", + "faint_link": "helpful manual", + "fine_print": "Read our {0} to learn nothing useful!", + "header": "Preview", + "header_faint": "This is fine", + "input": "Just landed in L.A.", + "link": "a nice lil' link", + "mono": "content", + "text": "A bunch of more {0} and {1}" + }, + "radii": { + "_tab_label": "Roundness" + }, + "shadows": { + "_tab_label": "Shadow and lighting", + "blur": "Blur", + "component": "Component", + "components": { + "avatar": "User avatar (in profile view)", + "avatarStatus": "User avatar (in post display)", + "button": "Button", + "buttonHover": "Button (hover)", + "buttonPressed": "Button (pressed)", + "buttonPressedHover": "Button (pressed+hover)", + "input": "Input field", + "panel": "Panel", + "panelHeader": "Panel header", + "popup": "Popups and tooltips", + "topBar": "Top bar" + }, + "filter_hint": { + "always_drop_shadow": "Warning, this shadow always uses {0} when browser supports it.", + "avatar_inset": "Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.", + "drop_shadow_syntax": "{0} does not support {1} parameter and {2} keyword.", + "inset_classic": "Inset shadows will be using {0}", + "spread_zero": "Shadows with spread > 0 will appear as if it was set to zero" + }, + "inset": "Inset", + "override": "Override", + "shadow_id": "Shadow #{value}", + "spread": "Spread" + }, + "switcher": { + "clear_all": "Clear all", + "clear_opacity": "Clear opacity", + "keep_color": "Keep colors", + "keep_fonts": "Keep fonts", + "keep_opacity": "Keep opacity", + "keep_roundness": "Keep roundness", + "keep_shadows": "Keep shadows", + "reset": "Reset", + "save_load_hint": "\"Keep\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything." + } + }, + "subject_input_always_show": "Always show subject field", + "subject_line_behavior": "Copy subject when replying", + "subject_line_email": "Like email: \"re: subject\"", + "subject_line_mastodon": "Like mastodon: copy as is", + "subject_line_noop": "Do not copy", + "text": "Text", + "theme": "Theme", + "theme_help": "Use hex color codes (#rrggbb) to customize your color theme.", + "theme_help_v2_1": "You can also override certain component's colors and opacity by toggling the checkbox, use \"Clear all\" button to clear all overrides.", + "theme_help_v2_2": "Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.", + "token": "Token", + "tooltipRadius": "Tooltips/alerts", + "upload_a_photo": "Upload a photo", + "use_contain_fit": "అటాచ్మెంట్ సూక్ష్మచిత్రాలను కత్తిరించవద్దు", + "use_one_click_nsfw": "కేవలం ఒక క్లిక్ తో NSFW జోడింపులను తెరవండి", + "user_settings": "User Settings", + "valid_until": "Valid Until", + "values": { + "false": "no", + "true": "yes" + }, + "version": { + "backend_version": "Backend Version", + "frontend_version": "Frontend Version", + "title": "Version" + } + }, + "status": { + "replies_list": "Replies:", + "reply_to": "Reply to" + }, + "timeline": { + "collapse": "Collapse", + "conversation": "Conversation", + "load_older": "Load older statuses", + "no_more_statuses": "No more statuses", + "no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated", + "no_statuses": "No statuses", + "repeated": "repeated", + "show_new": "Show new", + "up_to_date": "Up-to-date" + }, + "tool_tip": { + "favorite": "Favorite", + "media_upload": "Upload Media", + "repeat": "Repeat", + "reply": "Reply", + "user_settings": "User Settings" + }, + "upload": { + "error": { + "base": "Upload failed.", + "default": "Try again later", + "file_too_big": "File too big [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "approve": "Approve", + "block": "Block", + "block_progress": "Blocking...", + "blocked": "Blocked!", + "deny": "Deny", + "favorites": "Favorites", + "follow": "Follow", + "follow_progress": "Requesting…", + "follow_sent": "Request sent!", + "follow_unfollow": "Unfollow", + "followees": "Following", + "followers": "Followers", + "following": "Following!", + "follows_you": "Follows you!", + "its_you": "It's you!", + "media": "Media", + "mute": "Mute", + "mute_progress": "Muting...", + "muted": "Muted", + "per_day": "per day", + "remote_follow": "Remote follow", + "statuses": "Statuses", + "unblock": "Unblock", + "unblock_progress": "Unblocking...", + "unmute": "Unmute", + "unmute_progress": "Unmuting..." + }, + "user_profile": { + "profile_does_not_exist": "Sorry, this profile does not exist.", + "profile_loading_error": "Sorry, there was an error loading this profile.", + "timeline_title": "User Timeline" + }, + "who_to_follow": { + "more": "More", + "who_to_follow": "Who to follow" + } +} \ No newline at end of file diff --git a/src/i18n/uk.json b/src/i18n/uk.json index b130a861..3a6c58c7 100644 --- a/src/i18n/uk.json +++ b/src/i18n/uk.json @@ -1,866 +1,846 @@ { - "general": { - "dismiss": "Закрити", - "close": "Закрити", - "verify": "Перевірити", - "confirm": "Підтвердити", - "enable": "Увімкнути", - "disable": "Вимкнути", - "cancel": "Скасувати", - "show_less": "Показати менше", - "show_more": "Показати більше", - "optional": "необов'язково", - "retry": "Спробуйте ще раз", - "error_retry": "Будь ласка, спробуйте ще раз", - "generic_error": "Виникла помилка", - "loading": "Завантаження…", - "more": "Більше", - "submit": "Відправити", - "apply": "Застосувати", - "peek": "Глянути", - "role": { - "moderator": "Модератор", - "admin": "Адміністратор" + "about": { + "mrf": { + "federation": "Федерація", + "keyword": { + "ftl_removal": "Прибрати з федеративної стрічки", + "is_replaced_by": "→", + "keyword_policies": "Політика щодо ключових слів", + "reject": "Відхилити", + "replace": "Замінити" + }, + "mrf_policies": "Активувати правила MRF (модуль переписування повідомлень)", + "mrf_policies_desc": "Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:", + "simple": { + "accept": "Прийняти", + "accept_desc": "Поточний інстанс приймає повідомлення тільки з перелічених інстансів:", + "ftl_removal": "Видалення зі стрічки Федеративної мережі", + "ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:", + "media_nsfw": "Примусове визначення медіа як дратівливого", + "media_nsfw_desc": "Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:", + "media_removal": "Видалення медіа", + "media_removal_desc": "Поточний інстанс видаляє медіа з дописів на перелічених інстансах:", + "quarantine": "Карантин", + "quarantine_desc": "Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:", + "reject": "Відхилити", + "reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:", + "simple_policies": "Правила поточного інстансу" + } + }, + "staff": "Адміністрація" }, - "flash_content": "Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати).", - "flash_security": "Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним.", - "flash_fail": "Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі." - }, - "finder": { - "error_fetching_user": "Користувача не знайдено", - "find_user": "Знайти користувача" - }, - "features_panel": { - "gopher": "Gopher", - "pleroma_chat_messages": "Чати", - "chat": "Оголошення", - "who_to_follow": "Кого відстежувати", - "title": "Особливості", - "scope_options": "Параметри обсягу", - "media_proxy": "Посередник медіа-даних", - "text_limit": "Ліміт символів", - "upload_limit": "Обмеження завантажень" - }, - "exporter": { - "processing": "Опрацьовую, скоро ви зможете завантажити файл", - "export": "Експорт" - }, - "domain_mute_card": { - "unmute_progress": "Вмикаю…", - "unmute": "Вимкнути заглушення", - "mute_progress": "Вимикаю…", - "mute": "Ігнорувати" - }, - "shoutbox": { - "title": "Оголошення" - }, - "about": { - "staff": "Адміністрація", - "mrf": { - "simple": { - "media_nsfw_desc": "Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:", - "media_nsfw": "Примусове визначення медіа як дратівливого", - "media_removal_desc": "Поточний інстанс видаляє медіа з дописів на перелічених інстансах:", - "media_removal": "Видалення медіа", - "ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:", - "ftl_removal": "Видалення зі стрічки Федеративної мережі", - "quarantine_desc": "Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:", - "quarantine": "Карантин", - "reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:", - "accept": "Прийняти", - "reject": "Відхилити", - "accept_desc": "Поточний інстанс приймає повідомлення тільки з перелічених інстансів:", - "simple_policies": "Правила поточного інстансу" - }, - "mrf_policies_desc": "Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:", - "mrf_policies": "Активувати правила MRF (модуль переписування повідомлень)", - "keyword": { - "is_replaced_by": "→", - "replace": "Замінити", - "reject": "Відхилити", - "ftl_removal": "Прибрати з федеративної стрічки", - "keyword_policies": "Політика щодо ключових слів" - }, - "federation": "Федерація" + "chats": { + "chats": "Чати", + "delete": "Видалити", + "delete_confirm": "Ви дійсно хочете видалити це повідомлення?", + "empty_chat_list_placeholder": "У вас ще немає чатів. Почніть новий чат!", + "empty_message_error": "Не вдається опублікувати порожнє повідомлення", + "error_loading_chat": "Під час завантаження чату сталася помилка.", + "error_sending_message": "Під час надсилання повідомлення сталася помилка.", + "message_user": "Повідомлення для {nickname}", + "more": "Більше", + "new": "Новий чат", + "you": "Ви:" + }, + "display_date": { + "today": "Сьогодні" + }, + "domain_mute_card": { + "mute": "Ігнорувати", + "mute_progress": "Вимикаю…", + "unmute": "Вимкнути заглушення", + "unmute_progress": "Вмикаю…" + }, + "emoji": { + "add_emoji": "Додати емодзі", + "custom": "Користувацькі емодзі", + "emoji": "Емодзі", + "keep_open": "Тримати панель відкритою", + "load_all": "Всі {emojiAmount} эмодзі завантажуються", + "load_all_hint": "Завантажені перші {saneAmount} емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю.", + "search_emoji": "Пошук емодзі", + "stickers": "Стікери", + "unicode": "Стандартні емодзі" + }, + "errors": { + "storage_unavailable": "Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie." + }, + "exporter": { + "export": "Експорт", + "processing": "Опрацьовую, скоро ви зможете завантажити файл" + }, + "features_panel": { + "media_proxy": "Посередник медіа-даних", + "scope_options": "Параметри обсягу", + "text_limit": "Ліміт символів", + "title": "Особливості", + "upload_limit": "Обмеження завантажень", + "who_to_follow": "Кого відстежувати" + }, + "file_type": { + "audio": "Аудіо", + "file": "Файл", + "image": "Зображення", + "video": "Відео" + }, + "finder": { + "error_fetching_user": "Користувача не знайдено", + "find_user": "Знайти користувача" + }, + "general": { + "apply": "Застосувати", + "cancel": "Скасувати", + "close": "Закрити", + "confirm": "Підтвердити", + "disable": "Вимкнути", + "dismiss": "Закрити", + "enable": "Увімкнути", + "error_retry": "Будь ласка, спробуйте ще раз", + "flash_content": "Натисніть для перегляду змісту Flash за допомогою Ruffle (експериментально, може не працювати).", + "flash_fail": "Не вдалося завантажити Flash-вміст, докладнішу інформацію дивись у консолі.", + "flash_security": "Ця функція може становити ризик, оскільки Flash-вміст все ще є потенційно небезпечним.", + "generic_error": "Виникла помилка", + "loading": "Завантаження…", + "more": "Більше", + "optional": "необов'язково", + "peek": "Глянути", + "retry": "Спробуйте ще раз", + "role": { + "admin": "Адміністратор", + "moderator": "Модератор" + }, + "show_less": "Показати менше", + "show_more": "Показати більше", + "submit": "Відправити", + "verify": "Перевірити" + }, + "image_cropper": { + "cancel": "Відмінити", + "crop_picture": "Обрізати малюнок", + "save": "Зберегти", + "save_without_cropping": "Зберегти не обрізаючи" + }, + "importer": { + "error": "Під час імпортування файлу сталася помилка.", + "submit": "Відправити", + "success": "Імпортовано успішно." + }, + "interactions": { + "favs_repeats": "Поширення та вподобайки", + "follows": "Нові підписки", + "load_older": "Завантажити давніші взаємодії", + "moves": "Міграції користувачів" + }, + "login": { + "authentication_code": "Код автентифікації", + "description": "Увійти за допомогою OAuth", + "enter_recovery_code": "Введіть код відновлення", + "enter_two_factor_code": "Введіть двофакторний код автентифікації", + "heading": { + "recovery": "Двофакторне відновлення", + "totp": "Двофакторна автентифікація" + }, + "hint": "Увійдіть, щоб доєднатися до дискусії", + "login": "Увійти", + "logout": "Вийти", + "password": "Пароль", + "placeholder": "напр. stepan", + "recovery_code": "Код відновлення", + "register": "Зареєструватись", + "username": "Ім'я користувача" + }, + "media_modal": { + "next": "Наступна", + "previous": "Попередня" + }, + "nav": { + "about": "Інформація", + "administration": "Адміністрування", + "back": "Назад", + "bookmarks": "Закладки", + "chats": "Чати", + "dms": "Приватні повідомлення", + "friend_requests": "Запити послідовників", + "home_timeline": "Домашня стрічка", + "interactions": "Взаємодії", + "mentions": "Згадування", + "preferences": "Налаштування", + "public_tl": "Публічна стрічка", + "search": "Пошук", + "timeline": "Домашня стрічка", + "timelines": "Стрічки", + "twkn": "Уся відома мережа", + "user_search": "Пошук користувача", + "who_to_follow": "Кого відстежувати" + }, + "notifications": { + "broken_favorite": "Невідомий допис, шукаю його…", + "error": "Помилка при оновленні сповіщень: {0}", + "favorited_you": "вподобав(-ла) ваш допис", + "follow_request": "хоче підписатись на вас", + "followed_you": "підписався(-лась) на вас", + "load_older": "Завантажити давніші сповіщення", + "migrated_to": "мігрував на", + "no_more_notifications": "Немає більше сповіщень", + "notifications": "Сповіщення", + "reacted_with": "додав реакцію: {0}", + "read": "Прочитано!", + "repeated_you": "поширив(-ла) ваш допис" + }, + "password_reset": { + "check_email": "Перевірте електронну пошту на наявність посилання для скидання пароля.", + "forgot_password": "Забули пароль?", + "instruction": "Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля.", + "password_reset": "Відновити пароль", + "password_reset_disabled": "Скидання пароля вимкнено. Зверніться до адміністратора інстансу.", + "password_reset_required": "Для входу потрібно скинути пароль.", + "password_reset_required_but_mailer_is_disabled": "Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу.", + "placeholder": "Ваша електронна адреса або ім'я користувача", + "return_home": "Повернутися на головну сторінку", + "too_many_requests": "Ви досягли ліміту спроб, спробуйте ще раз пізніше." + }, + "polls": { + "add_option": "Додати опцію", + "add_poll": "Додати опитування", + "expired": "Опитування закінчилось {0} тому", + "expires_in": "Опитування закінчується через {0}", + "expiry": "Термін опитування", + "multiple_choices": "Декілька варіантів", + "not_enough_options": "Замало унікальних варіантів в опитуванні", + "option": "Відповідь", + "people_voted_count": "{count} особа проголосувала | {count} осіб проголосувало", + "single_choice": "Один варіант", + "type": "Тип опитування", + "vote": "Проголосувати", + "votes": "голосів", + "votes_count": "{count} голос | {count} голосів" + }, + "post_status": { + "account_not_locked_warning": "Ваша обліковка не {0}. Будь-хто може відстежувати вас для перегляду дописів тільки для підписників.", + "account_not_locked_warning_link": "замкнена", + "attachments_sensitive": "Позначити вкладення як чутливі", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Текстові дані" + }, + "content_warning": "Тема (необов'язково)", + "default": "Що нового?", + "direct_warning_to_all": "Цей допис побачать всі згадані користувачі.", + "direct_warning_to_first_only": "Цей допис побачать лише користувачі, що були згадані на початку повідомлення.", + "empty_status_error": "Не можу опублікувати пустий статус без вкладень", + "media_description": "Опис медіа", + "media_description_error": "Не вдалось оновити медіа, спробуйте ще раз", + "new_status": "Створити допис", + "post": "Опублікувати", + "posting": "Відправляється", + "preview": "Попередній перегляд", + "preview_empty": "Пустий", + "scope": { + "direct": "Приватний - цей допис побачать лише згадані користувачі", + "private": "Для читачів - цей допис побачать лише ваші читачі", + "public": "Публічний - цей допис побачать усі", + "unlisted": "Непублічний - цей допис буде відсутній у публічних стрічках" + }, + "scope_notice": { + "private": "Цей допис побачать лише ваші підписники", + "public": "Цей допис бачитимуть усі", + "unlisted": "Цей допис не буде видно в публічній стрічці та усій відомій мережі" + } + }, + "registration": { + "bio": "Про себе", + "bio_placeholder": "напр.\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе.", + "captcha": "CAPTCHA", + "email": "Ел. пошта", + "fullname": "Відображене ім'я", + "fullname_placeholder": "напр. Степан Бандера", + "new_captcha": "Натисніть на зображення, щоб оновити код, якщо він нерозбірливий", + "password_confirm": "Підтвердження паролю", + "reason": "Причина реєстрації", + "reason_placeholder": "Цей інстанс обробляє запити на реєстрацію вручну.\nРозкажіть адміністрації чому ви хочете зареєструватися.", + "register": "Зареєструватися", + "registration": "Реєстрація", + "token": "Ключ запрошення", + "username_placeholder": "напр. stepan", + "validations": { + "email_required": "не може бути порожнім", + "fullname_required": "не може бути порожнім", + "password_confirmation_match": "пароль та підтвердження паролю мають бути однаковими", + "password_confirmation_required": "не може бути порожнім", + "password_required": "не може бути порожнім", + "username_required": "не може бути порожнім" + } + }, + "remote_user_resolver": { + "error": "Не знайдено.", + "remote_user_resolver": "Пошукова система для віддалених користувачів", + "searching_for": "Шукаю" + }, + "search": { + "hashtags": "Хештеги", + "no_results": "Немає результатів", + "people": "Люди", + "people_talking": "{count} людей говорять про це", + "person_talking": "{count} особа говорить про це" + }, + "selectable_list": { + "select_all": "Вибрати все" + }, + "settings": { + "accent": "Акцент", + "allow_following_move": "Дозволити автостеження при переміщенні на інший інстанс", + "app_name": "Назва програми", + "attachmentRadius": "Вкладення", + "attachments": "Вкладення", + "autohide_floating_post_button": "Автоматично ховати кнопку \"Новий допис\" (в мобільній версії)", + "avatar": "Аватар", + "avatarAltRadius": "Аватарки у сповіщеннях", + "avatarRadius": "Аватарки", + "avatar_size_instruction": "Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.", + "background": "Обкладинка", + "bio": "Про Вас", + "block_export": "Експорт блокувань", + "block_export_button": "Експорт блокувань у файл CSV", + "block_import": "Імпорт блокувань", + "block_import_error": "Помилка імпортування блокувань", + "blocks_imported": "Блокування імпортовані! Їх обробка триватиме певний час.", + "blocks_tab": "Блокування", + "bot": "Це обліковий запис бота", + "btnRadius": "Кнопки", + "cBlue": "Блакитний (Відповісти, читати)", + "cGreen": "Зелений (Поширити)", + "cOrange": "Жовтогарячий (Вподобайки)", + "cRed": "Червоний (Скасувати)", + "change_email": "Змінити email", + "change_email_error": "Сталася помилка під час зміни email.", + "change_password": "Змінити пароль", + "change_password_error": "Не вдалося змінити пароль.", + "changed_email": "Email успішно змінено!", + "changed_password": "Пароль успішно змінено!", + "chatMessageRadius": "Повідомлення в бесіді", + "checkboxRadius": "Прапорці", + "collapse_subject": "Згорнути дописи з темами", + "composing": "Складання відповіді", + "confirm_new_password": "Підтвердіть новий пароль", + "current_password": "Поточний пароль", + "data_import_export_tab": "Імпорт/експорт даних", + "default_vis": "Обсяг видимості за замовчуванням", + "delete_account": "Видалити обліковий запис", + "delete_account_description": "Остаточно видалити ваш обліковий запис та усі ваші повідомлення.", + "delete_account_error": "Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера.", + "delete_account_instructions": "Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису.", + "discoverable": "Дозволити виявлення цього облікового запису в результатах пошуку та інших службах", + "domain_mutes": "Домени", + "emoji_reactions_on_timeline": "Показувати реакції емоджі на стрічці", + "enable_web_push_notifications": "Увімкнути web push-сповіщення", + "enter_current_password_to_confirm": "Введіть свій поточний пароль", + "export_theme": "Зберегти переднабір", + "file_export_import": { + "backup_restore": "Резервне копіювання налаштувань", + "backup_settings": "Резервне копіювання налаштувань у файл", + "backup_settings_theme": "Резервне копіювання налаштувань та теми у файл", + "errors": { + "file_slightly_new": "Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті", + "file_too_new": "Несумісна основна версія: {fileMajor}, ця версія PleromaFE ({feMajor}) занадто стара для його обробки", + "file_too_old": "Несумісна основна версія: {fileMajor}, версія файлу занадто стара і не підтримується (мінімальна версія налаштувань {feMajor})", + "invalid_file": "Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено." + }, + "restore_settings": "Відновити налаштування з файлу" + }, + "filtering": "Фільтрування", + "filtering_explanation": "Усі статуси з цими словами будуть приховані, один на рядок", + "follow_export": "Експортувати відстежуваних", + "follow_export_button": "Експортувати відстежуваних до csv файлу", + "follow_import": "Імпортувати відстежуваних", + "follow_import_error": "Помилка імпортування відстежуваних", + "follows_imported": "Відстежуваних імпортовано! Їхня обробка потребує часу.", + "foreground": "Передній план", + "fun": "Розваги", + "general": "Загальні", + "greentext": "Мемний текст", + "hide_all_muted_posts": "Приховати приглушені повідомлення", + "hide_attachments_in_convo": "Приховувати вкладення у розмовах", + "hide_attachments_in_tl": "Приховувати вкладення у стрічці", + "hide_filtered_statuses": "Сховати відфільтровані статуси", + "hide_followers_count_description": "Не показувати кількість моїх підписників", + "hide_followers_description": "Не показувати хто підписаний на мене", + "hide_follows_count_description": "Не показувати кількість підписників", + "hide_follows_description": "Не показувати на кого я підписаний", + "hide_isp": "Сховати панель з особливостями сервера", + "hide_media_previews": "Приховати попередній перегляд медіа", + "hide_muted_posts": "Приховати повідомлення приглушених користувачів", + "hide_post_stats": "Приховувати статистику дописів (напр. кількість вподобаних)", + "hide_shoutbox": "Приховати оголошення інстансу", + "hide_user_stats": "Приховувати статистику користувачів (напр. кількість відстежувачів)", + "hide_wallpaper": "Сховати шпалери екземпляру", + "import_blocks_from_a_csv_file": "Імпортувати заблокованих з csv файлу", + "import_followers_from_a_csv_file": "Імпортувати відстежуваних з csv файлу", + "import_mutes_from_a_csv_file": "Імпорт заглушених з csv файлу", + "import_theme": "Завантажити переднабір", + "inputRadius": "Поля вводу", + "instance_default": "(за замовчуванням: {value})", + "instance_default_simple": "(за замовчуванням)", + "interface": "Оболонка", + "interfaceLanguage": "Мова оболонки", + "invalid_theme_imported": "Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.", + "limited_availability": "Недоступно у вашому браузері", + "links": "Посилання", + "lock_account_description": "Обмежте свій обліковий запис лише схваленими читачами", + "loop_video": "Зациклити відео", + "loop_video_silent_only": "Зациклити відео без звуку (напр. Mastodon \"gifs\")", + "max_thumbnails": "Максимальна кількість мініатюр на повідомлення", + "mfa": { + "authentication_methods": "Методи автентифікації", + "confirm_and_enable": "Підтвердити та увімкнути OTP", + "generate_new_recovery_codes": "Згенерувати нові резервні коди", + "otp": "OTP", + "recovery_codes": "Резервні коди.", + "recovery_codes_warning": "Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису.", + "scan": { + "desc": "Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:", + "secret_code": "Ключ", + "title": "Сканування" + }, + "setup_otp": "Налаштування OTP", + "title": "Двофакторна автентифікація", + "verify": { + "desc": "Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:" + }, + "wait_pre_setup_otp": "попереднє налаштування OTP", + "waiting_a_recovery_codes": "Отримую резервні коди…", + "warning_of_generate_new_codes": "Після отримання нових резервних кодів, старі перестануть працювати." + }, + "minimal_scopes_mode": "Мінімізувати набір варіантів осягу для допису", + "more_settings": "Більше налаштувань", + "mute_export": "Експорт ігнорувань", + "mute_export_button": "Експорт заглушених у csv файл", + "mute_import": "Імпорт ігнорувань", + "mute_import_error": "Під час імпорту заглушених сталася помилка", + "mutes_and_blocks": "Заглушення та блокування", + "mutes_imported": "Заглушені імпортовані! Їх обробка триватиме певний час.", + "mutes_tab": "Заглушені", + "name": "Ім'я", + "name_bio": "Особисті дані", + "new_email": "Нова ел. пошта", + "new_password": "Новий пароль", + "no_blocks": "Блокування відсутні", + "no_mutes": "Заглушені відсутні", + "no_rich_text_description": "Видалення всього форматування тексту з усіх дописів", + "notification_blocks": "Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.", + "notification_mutes": "Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.", + "notification_setting_block_from_strangers": "Блокувати сповіщення від користувачів за якими ви не слідкуєте", + "notification_setting_filters": "Фільтри", + "notification_setting_hide_notification_contents": "Ховати відправника та вміст push-сповіщень", + "notification_setting_privacy": "Приватність", + "notification_visibility": "Отримувати сповіщення про наступні події", + "notification_visibility_emoji_reactions": "Реакції", + "notification_visibility_follows": "Нові підписки", + "notification_visibility_likes": "Вподобайки", + "notification_visibility_mentions": "Згадування", + "notification_visibility_moves": "Міграція користувача", + "notification_visibility_repeats": "Поширення допису", + "notifications": "Сповіщення", + "nsfw_clickthrough": "Увімкнути приховування NSFW медіа", + "oauth_tokens": "OAuth ключі", + "pad_emoji": "Автоматично додавати простір з обидвох сторін емоджі", + "panelRadius": "Панелі", + "pause_on_unfocused": "Призупинити трансляцію, коли вкладка неактивна", + "play_videos_in_modal": "Відтворювати відео у спливаючій рамці", + "post_status_content_type": "Тип вмісту допису", + "preload_images": "Передзавантажувати світлини", + "presets": "Переднабір", + "profile_background": "Обкладинка профілю", + "profile_banner": "Банер профілю", + "profile_fields": { + "add_field": "Додати поле", + "label": "Метадані профілю", + "name": "Назва", + "value": "Зміст" + }, + "profile_tab": "Профіль", + "radii_help": "Радіус заокруглення кутів інтерфейсу (в пікселях)", + "refresh_token": "Оновити ключ", + "replies_in_timeline": "Відповіді в стрічці", + "reply_visibility_all": "Показати всі відповіді", + "reply_visibility_following": "Показувати відповіді адресовані лише мені або користувачам, яких я читаю", + "reply_visibility_following_short": "Показувати відповіді тим, на кого я підписаний", + "reply_visibility_self": "Показувати лише адресовані мені відповіді", + "reply_visibility_self_short": "Показувати відповіді лише мені", + "reset_avatar": "Скинути аватар", + "reset_avatar_confirm": "Ви дійсно хочете скинути аватар?", + "reset_background_confirm": "Ви дійсно хочете скинути обкладинку?", + "reset_banner_confirm": "Ви дійсно хочете скинути банер?", + "reset_profile_background": "Скинути обкладинку профілю", + "reset_profile_banner": "Скинули банер профілю", + "revoke_token": "Відкликати", + "right_sidebar": "Показувати бокову панель справа", + "save": "Зберегти зміни", + "saving_err": "Помилка при збереженні налаштувань", + "saving_ok": "Налаштування збережені", + "scope_copy": "Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)", + "search_user_to_block": "Шукайте кого ви хочете заблокувати", + "search_user_to_mute": "Шукайте кого ви хочете заглушити", + "security": "Безпека", + "security_tab": "Безпека", + "sensitive_by_default": "Визначати допис як дратівливий за замовчуванням", + "set_new_avatar": "Встановити новий аватар", + "set_new_profile_background": "Встановити нову обкладинку профілю", + "set_new_profile_banner": "Встановити новий банер", + "setting_changed": "Конфігурація відрізняється від типової", + "settings": "Налаштування", + "show_admin_badge": "Показувати значок адміністратора в моєму профілі", + "show_moderator_badge": "Показувати значок модератора в моєму профілі", + "stop_gifs": "Відтворювати GIF анімації тільки при наведенні", + "streaming": "Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору", + "style": { + "advanced_colors": { + "_tab_label": "Додатково", + "alert": "Фон сповіщень", + "alert_error": "Помилки", + "alert_neutral": "Нейтральний", + "alert_warning": "Попередження", + "badge": "Тло значків", + "badge_notification": "Сповіщення", + "borders": "Кордони", + "buttons": "Кнопки", + "chat": { + "border": "Кайма", + "incoming": "Вхідні повідомлення", + "outgoing": "Вихідні повідомлення" + }, + "disabled": "Вимкнено", + "faint_text": "Затемнений текст", + "highlight": "Виділені елементи", + "icons": "Іконки", + "inputs": "Поля входу", + "panel_header": "Заголовок панелі", + "poll": "Діаграма опитування", + "popover": "Підказки, меню, поповери", + "post": "Дописи/Дані користувачів", + "pressed": "Натиснуто", + "selectedMenu": "Вибраний пункт меню", + "selectedPost": "Вибраний допис", + "tabs": "Вкладки", + "toggled": "Переключено", + "top_bar": "Верхня панель", + "underlay": "Тло", + "wallpaper": "Шпалери" + }, + "common": { + "color": "Колір", + "contrast": { + "context": { + "18pt": "для великого (18pt+) тексту", + "text": "для тексту" + }, + "hint": "Рівень контрасту: {ratio}, {level} {context}", + "level": { + "aa": "відповідає вимогам рівня АА (мінімальний)", + "aaa": "відповідає вимогам рівня ААA (рекомендований)", + "bad": "Не відповідає жодним вимогам щодо доступності" + } + }, + "opacity": "Прозорість" + }, + "common_colors": { + "_tab_label": "Загальні", + "foreground_hint": "Перегляньте вкладку \"Додатково\" для більшого контролю", + "main": "Загальні кольори", + "rgbo": "Піктограми, акценти, значки" + }, + "fonts": { + "_tab_label": "Шрифти", + "components": { + "input": "Поля вводу", + "interface": "Інтерфейс", + "post": "Текст допису", + "postCode": "Моноширинний текст в дописі (форматований текст)" + }, + "custom": "Нестандартний", + "family": "Назва шрифту", + "help": "Виберіть шрифт для елементів інтерфейсу. Для \"нестандартного\" потрібно ввести точну назву шрифту, так як вона відображається в системі.", + "size": "Розмір (в пікселях)", + "weight": "Товщина" + }, + "preview": { + "button": "Кнопка", + "checkbox": "Я переглянув умови використання", + "content": "Зміст", + "error": "Приклад помилки", + "faint_link": "корисний підручник", + "fine_print": "Прочитайте наш {0} аби нічого нового не дізнатись!", + "header": "Попередній перегляд", + "header_faint": "Це нормально", + "input": "Що нового?", + "link": "невеличке посилання", + "mono": "змісту", + "text": "Трохи більше {0} та {1}" + }, + "radii": { + "_tab_label": "Скруглення" + }, + "shadows": { + "_tab_label": "Тінь і підсвічування", + "blur": "Розмиття", + "component": "Компонент", + "components": { + "avatar": "Аватар користувача (профіль)", + "avatarStatus": "Аватар користувача (в стрічці)", + "button": "Кнопка", + "buttonHover": "Кнопка (при наведенні)", + "buttonPressed": "Кнопка (натиснута)", + "buttonPressedHover": "Кнопка (натиснута + наведений курсор)", + "input": "Поле вводу", + "panel": "Панель", + "panelHeader": "Заголовок панелі", + "popup": "Спливаючі вікна та підказки", + "topBar": "Верхня панель" + }, + "filter_hint": { + "always_drop_shadow": "Увага! Ця тінь завжди використовує {0}, якщо підтримується браузером.", + "avatar_inset": "Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами.", + "drop_shadow_syntax": "{0} не підтримує параметр {1} та ключове слово {2}.", + "inset_classic": "Тіні спрямовані всередину використовуватимуть {0}", + "spread_zero": "Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль" + }, + "hintV3": "Для тіней ви також можете використовувати позначення {0} для використання іншого кольорового слота.", + "inset": "Всередину", + "override": "Перевизначити", + "shadow_id": "Тінь №{value}", + "spread": "Розмах" + }, + "switcher": { + "clear_all": "Очистити все", + "clear_opacity": "Очистити прозорість", + "help": { + "fe_downgraded": "Версію PleromaFE змінено на старшу.", + "fe_upgraded": "Двигун теми PleromaFE оновлено.", + "future_version_imported": "Імпортований файл було створено в новішій версії FE.", + "migration_napshot_gone": "З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте.", + "migration_snapshot_ok": "Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми.", + "older_version_imported": "Імпортований файл було створено в старішій версії FE.", + "snapshot_missing": "У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку.", + "snapshot_present": "Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми.", + "snapshot_source_mismatch": "Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію.", + "upgraded_from_v2": "PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте.", + "v2_imported": "Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності." + }, + "keep_as_is": "Залишити як є", + "keep_color": "Залишити кольори", + "keep_fonts": "Залишити шрифти", + "keep_opacity": "Залишити прозорості", + "keep_roundness": "Залишити скруглення", + "keep_shadows": "Залишити тіні", + "load_theme": "Завантажити тему", + "reset": "Скинути", + "save_load_hint": "Параметри \"Зберегти\" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.", + "use_snapshot": "Стара версія", + "use_source": "Нова версія" + } + }, + "subject_input_always_show": "Завжди показувати поле для вводу теми", + "subject_line_behavior": "Вигляд теми при відповіді", + "subject_line_email": "Як в email: \"re: тема\"", + "subject_line_mastodon": "Як в mastodon: просто скопіювати", + "subject_line_noop": "Не копіювати", + "text": "Текст", + "theme": "Тема", + "theme_help": "Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему.", + "theme_help_v2_1": "Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте \"Очистити все\", щоб видалити всі заміни.", + "theme_help_v2_2": "Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант.", + "token": "Ключ", + "tooltipRadius": "Підказки/попередження", + "type_domains_to_mute": "Пошук доменів для заглушення", + "upload_a_photo": "Завантажити фото", + "useStreamingApi": "Отримувати повідомлення та сповіщення в режимі реального часу", + "useStreamingApiWarning": "(Не рекомендується, експериментально, повідомлення можуть зникати)", + "use_contain_fit": "Не обрізати краї мініатюр", + "use_one_click_nsfw": "Відкривати NSFW вкладення одним кліком миші", + "user_mutes": "Користувачі", + "user_settings": "Користувацькі налаштування", + "valid_until": "Діє до", + "values": { + "false": "ні", + "true": "так" + }, + "version": { + "backend_version": "Версія бекенду", + "frontend_version": "Версія фронтенду", + "title": "Версія" + }, + "virtual_scrolling": "Оптимізувати оновлення стрічки", + "word_filter": "Фільтр слів" + }, + "status": { + "bookmark": "Додати до закладок", + "copy_link": "Скопіювати посилання на допис", + "delete": "Видалити допис", + "delete_confirm": "Ви дійсно хочете видалити цей допис?", + "expand": "Розгорнути", + "external_source": "Зовнішнє джерело", + "favorites": "Вподобане", + "hide_content": "Сховати вміст", + "hide_full_subject": "Сховати всю тему", + "mute_conversation": "Заглушити розмову", + "nsfw": "Дратівливий вміст", + "pin": "Закріпити в профілі", + "pinned": "Закріплено", + "repeats": "Поширення", + "replies_list": "Відповіді:", + "reply_to": "Відповідь", + "show_content": "Показати вміст", + "show_full_subject": "Показати всю тему", + "status_deleted": "Цей допис був видалений", + "status_unavailable": "Допис недоступний", + "thread_muted": "Нитка заглушена", + "thread_muted_and_words": ", має слова:", + "unbookmark": "Видалити із закладок", + "unmute_conversation": "Припинити глушити розмову", + "unpin": "Відкріпити від профілю" + }, + "time": { + "in_future": "через {0}", + "in_past": "{0} тому", + "now": "щойно", + "now_short": "щойно", + "unit": { + "days": "{0} дні", + "days_short": "{0}д", + "hours": "{0} години", + "hours_short": "{0}год", + "minutes": "{0} хвилини", + "minutes_short": "{0}хв", + "months": "{0} місяці", + "months_short": "{0}міс.", + "seconds": "{0} секунди", + "seconds_short": "{0}с", + "weeks": "{0} тижнів", + "weeks_short": "{0}тижд.", + "years": "{0} роки", + "years_short": "{0}р" + } + }, + "timeline": { + "collapse": "Згорнути", + "conversation": "Розмова", + "error": "Помилка завантаження стрічки: {0}", + "load_older": "Завантажити давніші дописи", + "no_more_statuses": "Більше немає дописів", + "no_retweet_hint": "Запис, позначено як \"тільки для підписників\" або \"особисте\" і тому не може бути поширений", + "no_statuses": "Ніяких статусів", + "reload": "Оновити", + "repeated": "поширив(-ла)", + "show_new": "Показати нові", + "socket_broke": "Втрачено з'єднання у реальному часі: код {0}", + "socket_reconnected": "Встановлено з'єднання у реальному часі", + "up_to_date": "Оновлено" + }, + "tool_tip": { + "accept_follow_request": "Прийняти запит на підписку", + "add_reaction": "Додати реакцію", + "bookmark": "Додати до закладок", + "favorite": "Подобається", + "media_upload": "Завантажити медіа", + "reject_follow_request": "Відхилити запит на підписку", + "repeat": "Поширити", + "reply": "Відповісти", + "user_settings": "Налаштування користувача" + }, + "upload": { + "error": { + "base": "Збій при завантаженні.", + "default": "Спробуйте ще раз пізніше", + "file_too_big": "Файл завеликий [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Помилка завантаження: {0}" + }, + "file_size_units": { + "B": "Б", + "GiB": "ГіБ", + "KiB": "КіБ", + "MiB": "МіБ", + "TiB": "ТіБ" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Активувати обліковий запис", + "deactivate_account": "Деактивувати обліковий запис", + "delete_account": "Видалити обліковий запис", + "delete_user": "Видалити обліковий запис", + "disable_any_subscription": "Взагалі заборонити підписку на користувача", + "disable_remote_subscription": "Заборонити підписуватись на користувачів з віддалених інстансів", + "force_nsfw": "Позначити всі дописи як NSFW", + "force_unlisted": "Не показувати дописи в стрічці", + "grant_admin": "Надати права адміністратора", + "grant_moderator": "Надати права модератора", + "moderation": "Модерація", + "quarantine": "Не розповсюджувати дописи на інших інстансах", + "revoke_admin": "Позбавити прав адміністратора", + "revoke_moderator": "Позбавити прав модератора", + "sandbox": "Показувати дописи лише підписникам", + "strip_media": "Вилучити медіа з дописів користувача" + }, + "approve": "Схвалити", + "block": "Заблокувати", + "block_progress": "Блокуємо…", + "blocked": "Заблоковано!", + "bot": "Бот", + "deny": "Відмовити", + "edit_profile": "Редагувати профіль", + "favorites": "Вподобання", + "follow": "Підписатись", + "follow_progress": "Запитую…", + "follow_sent": "Запит відправлено!", + "follow_unfollow": "Відписатись", + "followees": "Підписаний(-а)", + "followers": "Підписники", + "following": "Підписаний!", + "follows_you": "Підписаний на вас!", + "hidden": "Приховано", + "hide_repeats": "Приховати поширення", + "highlight": { + "disabled": "Не виділяти", + "side": "Смужка ліворуч", + "solid": "Суцільний фон", + "striped": "Смугастий фон" + }, + "its_you": "Це ти!", + "media": "Медіа", + "mention": "Згадати", + "message": "Повідомлення", + "mute": "Заглушити", + "mute_progress": "Глушимо…", + "muted": "Заглушений", + "per_day": "на день", + "remote_follow": "Підписатись", + "report": "Поскаржитись", + "show_repeats": "Показати поширення", + "statuses": "Дописи", + "subscribe": "Підписатись", + "unblock": "Розблокувати", + "unblock_progress": "Розблоковуємо…", + "unmute": "Зняти глушення", + "unmute_progress": "Знімаємо глушення…", + "unsubscribe": "Відписатись" + }, + "user_profile": { + "profile_does_not_exist": "Вибачте, цей профіль більше не існує.", + "profile_loading_error": "Вибачте, під час завантаження цього профілю виникла помилка.", + "timeline_title": "Стрічка користувача" + }, + "user_reporting": { + "add_comment_description": "Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:", + "additional_comments": "Додаткове пояснення", + "forward_description": "Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?", + "forward_to": "Переслати до {0}", + "generic_error": "Виникла помилка під час обробки вашого запиту.", + "submit": "Відправити", + "title": "Поскаржитись на {0}" + }, + "who_to_follow": { + "more": "Більше", + "who_to_follow": "На кого підписатися" } - }, - "login": { - "hint": "Увійдіть, щоб доєднатися до дискусії", - "username": "Ім'я користувача", - "register": "Зареєструватись", - "password": "Пароль", - "logout": "Вийти", - "description": "Увійти за допомогою OAuth", - "login": "Увійти", - "recovery_code": "Код відновлення", - "enter_recovery_code": "Введіть код відновлення", - "authentication_code": "Код автентифікації", - "heading": { - "recovery": "Двофакторне відновлення", - "totp": "Двофакторна автентифікація" - }, - "enter_two_factor_code": "Введіть двофакторний код автентифікації", - "placeholder": "напр. stepan" - }, - "importer": { - "error": "Під час імпортування файлу сталася помилка.", - "success": "Імпортовано успішно.", - "submit": "Відправити" - }, - "image_cropper": { - "cancel": "Відмінити", - "save_without_cropping": "Зберегти не обрізаючи", - "crop_picture": "Обрізати малюнок", - "save": "Зберегти" - }, - "polls": { - "expired": "Опитування закінчилось {0} тому", - "expires_in": "Опитування закінчується через {0}", - "expiry": "Термін опитування", - "multiple_choices": "Декілька варіантів", - "single_choice": "Один варіант", - "add_option": "Додати опцію", - "type": "Тип опитування", - "vote": "Проголосувати", - "votes": "голосів", - "option": "Відповідь", - "add_poll": "Додати опитування", - "not_enough_options": "Замало унікальних варіантів в опитуванні", - "people_voted_count": "{count} особа проголосувала | {count} осіб проголосувало", - "votes_count": "{count} голос | {count} голосів" - }, - "notifications": { - "reacted_with": "додав реакцію: {0}", - "migrated_to": "мігрував на", - "no_more_notifications": "Немає більше сповіщень", - "repeated_you": "поширив(-ла) ваш допис", - "read": "Прочитано!", - "notifications": "Сповіщення", - "load_older": "Завантажити давніші сповіщення", - "follow_request": "хоче підписатись на вас", - "followed_you": "підписався(-лась) на вас", - "favorited_you": "вподобав(-ла) ваш допис", - "broken_favorite": "Невідомий допис, шукаю його…", - "error": "Помилка при оновленні сповіщень: {0}" - }, - "nav": { - "chats": "Чати", - "timelines": "Стрічки", - "twkn": "Уся відома мережа", - "about": "Інформація", - "preferences": "Налаштування", - "friend_requests": "Запити послідовників", - "who_to_follow": "Кого відстежувати", - "search": "Пошук", - "user_search": "Пошук користувача", - "bookmarks": "Закладки", - "timeline": "Домашня стрічка", - "public_tl": "Публічна стрічка", - "dms": "Приватні повідомлення", - "interactions": "Взаємодії", - "mentions": "Згадування", - "back": "Назад", - "administration": "Адміністрування", - "home_timeline": "Домашня стрічка" - }, - "media_modal": { - "next": "Наступна", - "previous": "Попередня" - }, - "password_reset": { - "instruction": "Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля.", - "placeholder": "Ваша електронна адреса або ім'я користувача", - "check_email": "Перевірте електронну пошту на наявність посилання для скидання пароля.", - "return_home": "Повернутися на головну сторінку", - "too_many_requests": "Ви досягли ліміту спроб, спробуйте ще раз пізніше.", - "password_reset_required_but_mailer_is_disabled": "Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу.", - "password_reset_disabled": "Скидання пароля вимкнено. Зверніться до адміністратора інстансу.", - "password_reset_required": "Для входу потрібно скинути пароль.", - "password_reset": "Відновити пароль", - "forgot_password": "Забули пароль?" - }, - "chats": { - "you": "Ви:", - "message_user": "Повідомлення для {nickname}", - "delete": "Видалити", - "chats": "Чати", - "new": "Новий чат", - "empty_message_error": "Не вдається опублікувати порожнє повідомлення", - "more": "Більше", - "delete_confirm": "Ви дійсно хочете видалити це повідомлення?", - "error_loading_chat": "Під час завантаження чату сталася помилка.", - "error_sending_message": "Під час надсилання повідомлення сталася помилка.", - "empty_chat_list_placeholder": "У вас ще немає чатів. Почніть новий чат!" - }, - "file_type": { - "audio": "Аудіо", - "video": "Відео", - "image": "Зображення", - "file": "Файл" - }, - "display_date": { - "today": "Сьогодні" - }, - "interactions": { - "load_older": "Завантажити давніші взаємодії", - "follows": "Нові підписки", - "favs_repeats": "Поширення та вподобайки", - "moves": "Міграції користувачів" - }, - "errors": { - "storage_unavailable": "Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie." - }, - "emoji": { - "stickers": "Стікери", - "custom": "Користувацькі емодзі", - "search_emoji": "Пошук емодзі", - "keep_open": "Тримати панель відкритою", - "add_emoji": "Додати емодзі", - "emoji": "Емодзі", - "load_all": "Всі {emojiAmount} эмодзі завантажуються", - "load_all_hint": "Завантажені перші {saneAmount} емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю.", - "unicode": "Стандартні емодзі" - }, - "post_status": { - "content_type": { - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML", - "text/plain": "Текстові дані" - }, - "attachments_sensitive": "Позначити вкладення як чутливі", - "account_not_locked_warning_link": "замкнена", - "account_not_locked_warning": "Ваша обліковка не {0}. Будь-хто може відстежувати вас для перегляду дописів тільки для підписників.", - "new_status": "Створити допис", - "direct_warning_to_first_only": "Цей допис побачать лише користувачі, що були згадані на початку повідомлення.", - "direct_warning_to_all": "Цей допис побачать всі згадані користувачі.", - "default": "Що нового?", - "content_warning": "Тема (необов'язково)", - "preview": "Попередній перегляд", - "posting": "Відправляється", - "empty_status_error": "Не можу опублікувати пустий статус без вкладень", - "scope": { - "unlisted": "Непублічний - цей допис буде відсутній у публічних стрічках", - "public": "Публічний - цей допис побачать усі", - "private": "Для читачів - цей допис побачать лише ваші читачі", - "direct": "Приватний - цей допис побачать лише згадані користувачі" - }, - "scope_notice": { - "unlisted": "Цей допис не буде видно в публічній стрічці та усій відомій мережі", - "private": "Цей допис побачать лише ваші підписники", - "public": "Цей допис бачитимуть усі" - }, - "preview_empty": "Пустий", - "media_description_error": "Не вдалось оновити медіа, спробуйте ще раз", - "media_description": "Опис медіа", - "post": "Опублікувати" - }, - "settings": { - "blocks_imported": "Блокування імпортовані! Їх обробка триватиме певний час.", - "block_import_error": "Помилка імпортування блокувань", - "block_import": "Імпорт блокувань", - "block_export_button": "Експорт блокувань у файл CSV", - "block_export": "Експорт блокувань", - "bio": "Про Вас", - "background": "Обкладинка", - "app_name": "Назва програми", - "follow_export": "Експортувати відстежуваних", - "filtering_explanation": "Усі статуси з цими словами будуть приховані, один на рядок", - "filtering": "Фільтрування", - "export_theme": "Зберегти переднабір", - "avatar_size_instruction": "Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.", - "delete_account_instructions": "Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису.", - "delete_account_error": "Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера.", - "delete_account_description": "Остаточно видалити ваш обліковий запис та усі ваші повідомлення.", - "delete_account": "Видалити обліковий запис", - "default_vis": "Обсяг видимості за замовчуванням", - "data_import_export_tab": "Імпорт/експорт даних", - "current_password": "Поточний пароль", - "confirm_new_password": "Підтвердіть новий пароль", - "composing": "Складання відповіді", - "collapse_subject": "Згорнути дописи з темами", - "changed_password": "Пароль успішно змінено!", - "change_password_error": "Не вдалося змінити пароль.", - "change_password": "Змінити пароль", - "cRed": "Червоний (Скасувати)", - "cGreen": "Зелений (Поширити)", - "cOrange": "Жовтогарячий (Вподобайки)", - "cBlue": "Блакитний (Відповісти, читати)", - "btnRadius": "Кнопки", - "blocks_tab": "Блокування", - "avatarRadius": "Аватарки", - "avatarAltRadius": "Аватарки у сповіщеннях", - "avatar": "Аватар", - "attachments": "Вкладення", - "attachmentRadius": "Вкладення", - "general": "Загальні", - "foreground": "Передній план", - "follows_imported": "Відстежуваних імпортовано! Їхня обробка потребує часу.", - "follow_import_error": "Помилка імпортування відстежуваних", - "follow_import": "Імпортувати відстежуваних", - "follow_export_button": "Експортувати відстежуваних до csv файлу", - "lock_account_description": "Обмежте свій обліковий запис лише схваленими читачами", - "links": "Посилання", - "limited_availability": "Недоступно у вашому браузері", - "invalid_theme_imported": "Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.", - "interfaceLanguage": "Мова оболонки", - "interface": "Оболонка", - "instance_default_simple": "(за замовчуванням)", - "instance_default": "(за замовчуванням: {value})", - "checkboxRadius": "Прапорці", - "inputRadius": "Поля вводу", - "import_theme": "Завантажити переднабір", - "import_followers_from_a_csv_file": "Імпортувати відстежуваних з csv файлу", - "import_blocks_from_a_csv_file": "Імпортувати заблокованих з csv файлу", - "hide_filtered_statuses": "Сховати відфільтровані статуси", - "hide_user_stats": "Приховувати статистику користувачів (напр. кількість відстежувачів)", - "hide_post_stats": "Приховувати статистику дописів (напр. кількість вподобаних)", - "use_one_click_nsfw": "Відкривати NSFW вкладення одним кліком миші", - "preload_images": "Передзавантажувати світлини", - "hide_isp": "Сховати панель з особливостями сервера", - "max_thumbnails": "Максимальна кількість мініатюр на повідомлення", - "hide_muted_posts": "Приховати повідомлення приглушених користувачів", - "hide_attachments_in_tl": "Приховувати вкладення у стрічці", - "hide_attachments_in_convo": "Приховувати вкладення у розмовах", - "mutes_tab": "Заглушені", - "loop_video_silent_only": "Зациклити відео без звуку (напр. Mastodon \"gifs\")", - "loop_video": "Зациклити відео", - "mfa": { - "verify": { - "desc": "Щоб увімкнути двофакторну автентифікацію, введіть код з вашого застосунку для двофакторної автентифікації:" - }, - "scan": { - "desc": "Відскануйте цей QR-код за допомогою програми двофакторної автентифікації або введіть текстовий ключ:", - "title": "Сканування", - "secret_code": "Ключ" - }, - "authentication_methods": "Методи автентифікації", - "recovery_codes_warning": "Запишіть ці коди і тримайте в безпечному місці - інакше ви їх ніколи не побачите. Якщо ви втратите доступ до OTP додатку - без резервних кодів ви не зможете отримати доступ до свого облікового запису.", - "waiting_a_recovery_codes": "Отримую резервні коди…", - "recovery_codes": "Резервні коди.", - "warning_of_generate_new_codes": "Після отримання нових резервних кодів, старі перестануть працювати.", - "generate_new_recovery_codes": "Згенерувати нові резервні коди", - "title": "Двофакторна автентифікація", - "confirm_and_enable": "Підтвердити та увімкнути OTP", - "wait_pre_setup_otp": "попереднє налаштування OTP", - "setup_otp": "Налаштування OTP", - "otp": "OTP" - }, - "enter_current_password_to_confirm": "Введіть свій поточний пароль", - "security": "Безпека", - "domain_mutes": "Домени", - "discoverable": "Дозволити виявлення цього облікового запису в результатах пошуку та інших службах", - "mutes_and_blocks": "Заглушення та блокування", - "changed_email": "Email успішно змінено!", - "change_email_error": "Сталася помилка під час зміни email.", - "change_email": "Змінити email", - "bot": "Це обліковий запис бота", - "import_mutes_from_a_csv_file": "Імпорт заглушених з csv файлу", - "mutes_imported": "Заглушені імпортовані! Їх обробка триватиме певний час.", - "mute_export_button": "Експорт заглушених у csv файл", - "mute_import_error": "Під час імпорту заглушених сталася помилка", - "mute_import": "Імпорт ігнорувань", - "mute_export": "Експорт ігнорувань", - "new_password": "Новий пароль", - "new_email": "Нова ел. пошта", - "name_bio": "Особисті дані", - "set_new_profile_banner": "Встановити новий банер", - "set_new_avatar": "Встановити новий аватар", - "security_tab": "Безпека", - "saving_ok": "Налаштування збережені", - "saving_err": "Помилка при збереженні налаштувань", - "reply_visibility_self": "Показувати лише адресовані мені відповіді", - "reply_visibility_following": "Показувати відповіді адресовані лише мені або користувачам, яких я читаю", - "reply_visibility_all": "Показати всі відповіді", - "replies_in_timeline": "Відповіді в стрічці", - "profile_tab": "Профіль", - "profile_banner": "Банер профілю", - "profile_background": "Обкладинка профілю", - "revoke_token": "Відкликати", - "oauth_tokens": "OAuth ключі", - "token": "Ключ", - "refresh_token": "Оновити ключ", - "valid_until": "Діє до", - "use_contain_fit": "Не обрізати краї мініатюр", - "name": "Ім'я", - "profile_fields": { - "value": "Зміст", - "name": "Назва", - "add_field": "Додати поле", - "label": "Метадані профілю" - }, - "play_videos_in_modal": "Відтворювати відео у спливаючій рамці", - "accent": "Акцент", - "chatMessageRadius": "Повідомлення в бесіді", - "notification_mutes": "Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.", - "user_mutes": "Користувачі", - "no_mutes": "Заглушені відсутні", - "emoji_reactions_on_timeline": "Показувати реакції емоджі на стрічці", - "pad_emoji": "Автоматично додавати простір з обидвох сторін емоджі", - "allow_following_move": "Дозволити автостеження при переміщенні на інший інстанс", - "set_new_profile_background": "Встановити нову обкладинку профілю", - "radii_help": "Радіус заокруглення кутів інтерфейсу (в пікселях)", - "presets": "Переднабір", - "show_moderator_badge": "Показувати значок модератора в моєму профілі", - "show_admin_badge": "Показувати значок адміністратора в моєму профілі", - "hide_followers_description": "Не показувати хто підписаний на мене", - "hide_follows_description": "Не показувати на кого я підписаний", - "no_rich_text_description": "Видалення всього форматування тексту з усіх дописів", - "notification_visibility_emoji_reactions": "Реакції", - "notification_visibility_moves": "Міграція користувача", - "notification_visibility_repeats": "Поширення допису", - "notification_visibility_mentions": "Згадування", - "notification_visibility_likes": "Вподобайки", - "notification_visibility_follows": "Нові підписки", - "notification_visibility": "Отримувати сповіщення про наступні події", - "settings": "Налаштування", - "panelRadius": "Панелі", - "text": "Текст", - "tooltipRadius": "Підказки/попередження", - "values": { - "true": "так", - "false": "ні" - }, - "user_settings": "Користувацькі налаштування", - "upload_a_photo": "Завантажити фото", - "theme": "Тема", - "style": { - "switcher": { - "keep_fonts": "Залишити шрифти", - "keep_roundness": "Залишити скруглення", - "keep_opacity": "Залишити прозорості", - "keep_shadows": "Залишити тіні", - "keep_color": "Залишити кольори", - "use_source": "Нова версія", - "use_snapshot": "Стара версія", - "load_theme": "Завантажити тему", - "reset": "Скинути", - "clear_all": "Очистити все", - "help": { - "older_version_imported": "Імпортований файл було створено в старішій версії FE.", - "future_version_imported": "Імпортований файл було створено в новішій версії FE.", - "v2_imported": "Файл, який ви імпортували, був створений для старішої версії інтерфейсу Pleroma. Ми намагаємось покращити сумісність, але все одно можуть бути розбіжності.", - "upgraded_from_v2": "PleromaFE було оновлено, тема може дещо відрізнятися від тієї, яку ви пам’ятаєте.", - "snapshot_source_mismatch": "Конфлікт версій: Швидше за все, FE повернуто до попередньої версії та оновлено знову, якщо ви змінили тему за допомогою старішої версії FE, швидше за все, ви хочете використовувати стару версію, інакше використовуйте нову версію.", - "migration_napshot_gone": "З якоїсь причини знімок зник, деякі речі можуть бути не такими, як ви пам’ятаєте.", - "migration_snapshot_ok": "Для безпеки, знімок теми завантажено. Ви можете спробувати завантажити дані теми.", - "fe_downgraded": "Версію PleromaFE змінено на старшу.", - "fe_upgraded": "Двигун теми PleromaFE оновлено.", - "snapshot_missing": "У файлі немає жодного знімка теми, тому він може виглядати інакше, ніж передбачалося спочатку.", - "snapshot_present": "Знімок теми завантажено, тому всі значення було перезаписано. Натомість ви можете завантажити правильні дані теми." - }, - "keep_as_is": "Залишити як є", - "clear_opacity": "Очистити прозорість", - "save_load_hint": "Параметри \"Зберегти\" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все." - }, - "common": { - "color": "Колір", - "contrast": { - "context": { - "text": "для тексту", - "18pt": "для великого (18pt+) тексту" - }, - "level": { - "bad": "Не відповідає жодним вимогам щодо доступності", - "aaa": "відповідає вимогам рівня ААA (рекомендований)", - "aa": "відповідає вимогам рівня АА (мінімальний)" - }, - "hint": "Рівень контрасту: {ratio}, {level} {context}" - }, - "opacity": "Прозорість" - }, - "preview": { - "mono": "змісту", - "text": "Трохи більше {0} та {1}", - "button": "Кнопка", - "error": "Приклад помилки", - "content": "Зміст", - "header": "Попередній перегляд", - "link": "невеличке посилання", - "header_faint": "Це нормально", - "input": "Що нового?", - "checkbox": "Я переглянув умови використання", - "fine_print": "Прочитайте наш {0} аби нічого нового не дізнатись!", - "faint_link": "корисний підручник" - }, - "shadows": { - "components": { - "button": "Кнопка", - "input": "Поле вводу", - "panel": "Панель", - "panelHeader": "Заголовок панелі", - "avatarStatus": "Аватар користувача (в стрічці)", - "avatar": "Аватар користувача (профіль)", - "buttonPressedHover": "Кнопка (натиснута + наведений курсор)", - "buttonPressed": "Кнопка (натиснута)", - "buttonHover": "Кнопка (при наведенні)", - "popup": "Спливаючі вікна та підказки", - "topBar": "Верхня панель" - }, - "component": "Компонент", - "filter_hint": { - "inset_classic": "Тіні спрямовані всередину використовуватимуть {0}", - "spread_zero": "Тіні з поширенням > 0 відображатимуться так, ніби було встановлено нуль", - "avatar_inset": "Зауважте, що використання як вставних, так і невставних тіней на аватарах може привести до непередбачуваних результатів із прозорими аватарами.", - "drop_shadow_syntax": "{0} не підтримує параметр {1} та ключове слово {2}.", - "always_drop_shadow": "Увага! Ця тінь завжди використовує {0}, якщо підтримується браузером." - }, - "inset": "Всередину", - "blur": "Розмиття", - "shadow_id": "Тінь №{value}", - "override": "Перевизначити", - "_tab_label": "Тінь і підсвічування", - "hintV3": "Для тіней ви також можете використовувати позначення {0} для використання іншого кольорового слота.", - "spread": "Розмах" - }, - "fonts": { - "components": { - "input": "Поля вводу", - "interface": "Інтерфейс", - "postCode": "Моноширинний текст в дописі (форматований текст)", - "post": "Текст допису" - }, - "_tab_label": "Шрифти", - "size": "Розмір (в пікселях)", - "custom": "Нестандартний", - "weight": "Товщина", - "family": "Назва шрифту", - "help": "Виберіть шрифт для елементів інтерфейсу. Для \"нестандартного\" потрібно ввести точну назву шрифту, так як вона відображається в системі." - }, - "advanced_colors": { - "alert_warning": "Попередження", - "underlay": "Тло", - "inputs": "Поля входу", - "buttons": "Кнопки", - "borders": "Кордони", - "top_bar": "Верхня панель", - "panel_header": "Заголовок панелі", - "badge_notification": "Сповіщення", - "popover": "Підказки, меню, поповери", - "badge": "Тло значків", - "post": "Дописи/Дані користувачів", - "alert_neutral": "Нейтральний", - "alert_error": "Помилки", - "alert": "Фон сповіщень", - "_tab_label": "Додатково", - "selectedPost": "Вибраний допис", - "highlight": "Виділені елементи", - "poll": "Діаграма опитування", - "icons": "Іконки", - "faint_text": "Затемнений текст", - "chat": { - "border": "Кайма", - "outgoing": "Вихідні повідомлення", - "incoming": "Вхідні повідомлення" - }, - "toggled": "Переключено", - "disabled": "Вимкнено", - "selectedMenu": "Вибраний пункт меню", - "tabs": "Вкладки", - "pressed": "Натиснуто", - "wallpaper": "Шпалери" - }, - "common_colors": { - "rgbo": "Піктограми, акценти, значки", - "foreground_hint": "Перегляньте вкладку \"Додатково\" для більшого контролю", - "main": "Загальні кольори", - "_tab_label": "Загальні" - }, - "radii": { - "_tab_label": "Скруглення" - } - }, - "enable_web_push_notifications": "Увімкнути web push-сповіщення", - "notifications": "Сповіщення", - "fun": "Розваги", - "notification_setting_privacy": "Приватність", - "notification_setting_filters": "Фільтри", - "reset_avatar": "Скинути аватар", - "reset_profile_background": "Скинути обкладинку профілю", - "reset_avatar_confirm": "Ви дійсно хочете скинути аватар?", - "reset_profile_banner": "Скинули банер профілю", - "hide_follows_count_description": "Не показувати кількість підписників", - "reset_banner_confirm": "Ви дійсно хочете скинути банер?", - "reset_background_confirm": "Ви дійсно хочете скинути обкладинку?", - "subject_line_behavior": "Вигляд теми при відповіді", - "subject_input_always_show": "Завжди показувати поле для вводу теми", - "minimal_scopes_mode": "Мінімізувати набір варіантів осягу для допису", - "scope_copy": "Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)", - "search_user_to_mute": "Шукайте кого ви хочете заглушити", - "search_user_to_block": "Шукайте кого ви хочете заблокувати", - "autohide_floating_post_button": "Автоматично ховати кнопку \"Новий допис\" (в мобільній версії)", - "pause_on_unfocused": "Призупинити трансляцію, коли вкладка неактивна", - "hide_followers_count_description": "Не показувати кількість моїх підписників", - "notification_blocks": "Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.", - "notification_setting_hide_notification_contents": "Ховати відправника та вміст push-сповіщень", - "notification_setting_block_from_strangers": "Блокувати сповіщення від користувачів за якими ви не слідкуєте", - "type_domains_to_mute": "Пошук доменів для заглушення", - "nsfw_clickthrough": "Увімкнути приховування NSFW медіа", - "greentext": "Мемний текст", - "virtual_scrolling": "Оптимізувати оновлення стрічки", - "theme_help_v2_2": "Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант.", - "theme_help_v2_1": "Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте \"Очистити все\", щоб видалити всі заміни.", - "theme_help": "Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему.", - "no_blocks": "Блокування відсутні", - "subject_line_mastodon": "Як в mastodon: просто скопіювати", - "subject_line_email": "Як в email: \"re: тема\"", - "useStreamingApiWarning": "(Не рекомендується, експериментально, повідомлення можуть зникати)", - "useStreamingApi": "Отримувати повідомлення та сповіщення в режимі реального часу", - "streaming": "Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору", - "stop_gifs": "Відтворювати GIF анімації тільки при наведенні", - "post_status_content_type": "Тип вмісту допису", - "subject_line_noop": "Не копіювати", - "version": { - "frontend_version": "Версія фронтенду", - "backend_version": "Версія бекенду", - "title": "Версія" - }, - "hide_wallpaper": "Сховати шпалери екземпляру", - "more_settings": "Більше налаштувань", - "sensitive_by_default": "Визначати допис як дратівливий за замовчуванням", - "reply_visibility_self_short": "Показувати відповіді лише мені", - "reply_visibility_following_short": "Показувати відповіді тим, на кого я підписаний", - "hide_all_muted_posts": "Приховати приглушені повідомлення", - "hide_media_previews": "Приховати попередній перегляд медіа", - "word_filter": "Фільтр слів", - "setting_changed": "Конфігурація відрізняється від типової", - "save": "Зберегти зміни", - "file_export_import": { - "errors": { - "file_slightly_new": "Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті", - "file_too_old": "Несумісна основна версія: {fileMajor}, версія файлу занадто стара і не підтримується (мінімальна версія налаштувань {feMajor})", - "file_too_new": "Несумісна основна версія: {fileMajor}, ця версія PleromaFE ({feMajor}) занадто стара для його обробки", - "invalid_file": "Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено." - }, - "restore_settings": "Відновити налаштування з файлу", - "backup_settings_theme": "Резервне копіювання налаштувань та теми у файл", - "backup_settings": "Резервне копіювання налаштувань у файл", - "backup_restore": "Резервне копіювання налаштувань" - }, - "right_sidebar": "Показувати бокову панель справа", - "hide_shoutbox": "Приховати оголошення інстансу" - }, - "selectable_list": { - "select_all": "Вибрати все" - }, - "remote_user_resolver": { - "error": "Не знайдено.", - "searching_for": "Шукаю", - "remote_user_resolver": "Пошукова система для віддалених користувачів" - }, - "registration": { - "validations": { - "password_confirmation_match": "пароль та підтвердження паролю мають бути однаковими", - "password_confirmation_required": "не може бути порожнім", - "password_required": "не може бути порожнім", - "email_required": "не може бути порожнім", - "fullname_required": "не може бути порожнім", - "username_required": "не може бути порожнім" - }, - "bio_placeholder": "напр.\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе.", - "fullname_placeholder": "напр. Степан Бандера", - "username_placeholder": "напр. stepan", - "new_captcha": "Натисніть на зображення, щоб оновити код, якщо він нерозбірливий", - "token": "Ключ запрошення", - "registration": "Реєстрація", - "password_confirm": "Підтвердження паролю", - "fullname": "Відображене ім'я", - "email": "Ел. пошта", - "bio": "Про себе", - "captcha": "CAPTCHA", - "register": "Зареєструватися", - "reason_placeholder": "Цей інстанс обробляє запити на реєстрацію вручну.\nРозкажіть адміністрації чому ви хочете зареєструватися.", - "reason": "Причина реєстрації" - }, - "who_to_follow": { - "who_to_follow": "На кого підписатися", - "more": "Більше" - }, - "tool_tip": { - "repeat": "Поширити", - "reply": "Відповісти", - "add_reaction": "Додати реакцію", - "user_settings": "Налаштування користувача", - "favorite": "Подобається", - "reject_follow_request": "Відхилити запит на підписку", - "accept_follow_request": "Прийняти запит на підписку", - "media_upload": "Завантажити медіа", - "bookmark": "Додати до закладок" - }, - "upload": { - "error": { - "base": "Збій при завантаженні.", - "file_too_big": "Файл завеликий [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Спробуйте ще раз пізніше", - "message": "Помилка завантаження: {0}" - }, - "file_size_units": { - "TiB": "ТіБ", - "GiB": "ГіБ", - "MiB": "МіБ", - "KiB": "КіБ", - "B": "Б" - } - }, - "time": { - "now_short": "щойно", - "now": "щойно", - "in_future": "через {0}", - "in_past": "{0} тому", - "unit": { - "weeks_short": "{0}тижд.", - "week_short": "{0}тижд.", - "years_short": "{0}р", - "year_short": "{0}р", - "years": "{0} роки", - "year": "{0} рік", - "weeks": "{0} тижнів", - "week": "{0} тиждень", - "second_short": "{0}с", - "second": "{0} секунда", - "months_short": "{0}міс.", - "month_short": "{0}міс.", - "months": "{0} місяці", - "month": "{0} місяць", - "minutes_short": "{0}хв", - "hours_short": "{0}год", - "hour_short": "{0}год", - "day_short": "{0}д", - "minute_short": "{0}хв", - "minutes": "{0} хвилини", - "minute": "{0} хвилина", - "hours": "{0} години", - "hour": "{0} година", - "days_short": "{0}д", - "days": "{0} дні", - "day": "{0} день", - "seconds_short": "{0}с", - "seconds": "{0} секунди" - } - }, - "search": { - "no_results": "Немає результатів", - "hashtags": "Хештеги", - "people": "Люди", - "people_talking": "{count} людей говорять про це", - "person_talking": "{count} особа говорить про це" - }, - "user_card": { - "statuses": "Дописи", - "message": "Повідомлення", - "follow": "Підписатись", - "follow_unfollow": "Відписатись", - "follow_sent": "Запит відправлено!", - "blocked": "Заблоковано!", - "admin_menu": { - "activate_account": "Активувати обліковий запис", - "deactivate_account": "Деактивувати обліковий запис", - "delete_account": "Видалити обліковий запис", - "moderation": "Модерація", - "delete_user": "Видалити обліковий запис", - "strip_media": "Вилучити медіа з дописів користувача", - "force_nsfw": "Позначити всі дописи як NSFW", - "disable_any_subscription": "Взагалі заборонити підписку на користувача", - "disable_remote_subscription": "Заборонити підписуватись на користувачів з віддалених інстансів", - "sandbox": "Показувати дописи лише підписникам", - "force_unlisted": "Не показувати дописи в стрічці", - "revoke_moderator": "Позбавити прав модератора", - "grant_moderator": "Надати права модератора", - "revoke_admin": "Позбавити прав адміністратора", - "grant_admin": "Надати права адміністратора", - "quarantine": "Не розповсюджувати дописи на інших інстансах" - }, - "deny": "Відмовити", - "block": "Заблокувати", - "approve": "Схвалити", - "mention": "Згадати", - "unsubscribe": "Відписатись", - "subscribe": "Підписатись", - "report": "Поскаржитись", - "per_day": "на день", - "favorites": "Вподобання", - "media": "Медіа", - "show_repeats": "Показати поширення", - "hide_repeats": "Приховати поширення", - "its_you": "Це ти!", - "follows_you": "Підписаний на вас!", - "followers": "Підписники", - "followees": "Підписаний(-а)", - "follow_progress": "Запитую…", - "mute_progress": "Глушимо…", - "unmute_progress": "Знімаємо глушення…", - "unmute": "Зняти глушення", - "hidden": "Приховано", - "following": "Підписаний!", - "block_progress": "Блокуємо…", - "unblock_progress": "Розблоковуємо…", - "unblock": "Розблокувати", - "remote_follow": "Підписатись", - "muted": "Заглушений", - "mute": "Заглушити", - "highlight": { - "side": "Смужка ліворуч", - "striped": "Смугастий фон", - "solid": "Суцільний фон", - "disabled": "Не виділяти" - }, - "bot": "Бот", - "edit_profile": "Редагувати профіль" - }, - "status": { - "copy_link": "Скопіювати посилання на допис", - "status_unavailable": "Допис недоступний", - "replies_list": "Відповіді:", - "delete_confirm": "Ви дійсно хочете видалити цей допис?", - "delete": "Видалити допис", - "pin": "Закріпити в профілі", - "status_deleted": "Цей допис був видалений", - "favorites": "Вподобане", - "hide_content": "Сховати вміст", - "show_content": "Показати вміст", - "hide_full_subject": "Сховати всю тему", - "show_full_subject": "Показати всю тему", - "thread_muted_and_words": ", має слова:", - "mute_conversation": "Заглушити розмову", - "reply_to": "Відповідь", - "unbookmark": "Видалити із закладок", - "bookmark": "Додати до закладок", - "pinned": "Закріплено", - "unpin": "Відкріпити від профілю", - "repeats": "Поширення", - "nsfw": "Дратівливий вміст", - "thread_muted": "Нитка заглушена", - "unmute_conversation": "Припинити глушити розмову", - "external_source": "Зовнішнє джерело", - "expand": "Розгорнути" - }, - "timeline": { - "no_more_statuses": "Більше немає дописів", - "up_to_date": "Оновлено", - "reload": "Оновити", - "show_new": "Показати нові", - "load_older": "Завантажити давніші дописи", - "error": "Помилка завантаження стрічки: {0}", - "collapse": "Згорнути", - "conversation": "Розмова", - "no_statuses": "Ніяких статусів", - "repeated": "поширив(-ла)", - "no_retweet_hint": "Запис, позначено як \"тільки для підписників\" або \"особисте\" і тому не може бути поширений", - "socket_broke": "Втрачено з'єднання у реальному часі: код {0}", - "socket_reconnected": "Встановлено з'єднання у реальному часі" - }, - "user_reporting": { - "submit": "Відправити", - "forward_to": "Переслати до {0}", - "forward_description": "Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?", - "additional_comments": "Додаткове пояснення", - "add_comment_description": "Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:", - "title": "Поскаржитись на {0}", - "generic_error": "Виникла помилка під час обробки вашого запиту." - }, - "user_profile": { - "profile_loading_error": "Вибачте, під час завантаження цього профілю виникла помилка.", - "profile_does_not_exist": "Вибачте, цей профіль більше не існує.", - "timeline_title": "Стрічка користувача" - } -} +} \ No newline at end of file diff --git a/src/i18n/vi.json b/src/i18n/vi.json index 2457bc90..2e67e2ff 100644 --- a/src/i18n/vi.json +++ b/src/i18n/vi.json @@ -1,873 +1,850 @@ { - "about": { - "mrf": { - "federation": "Liên hợp", - "keyword": { - "keyword_policies": "Chính sách quan trọng", - "reject": "Từ chối", - "replace": "Thay thế", - "is_replaced_by": "→", - "ftl_removal": "Giới hạn chung" - }, - "mrf_policies": "Kích hoạt chính sách MRF", - "simple": { - "simple_policies": "Quy tắc máy chủ", - "accept": "Đồng ý", - "accept_desc": "Máy chủ này chỉ chấp nhận tin nhắn từ những máy chủ:", - "reject": "Từ chối", - "quarantine": "Bảo hành", - "quarantine_desc": "Máy chủ này sẽ gửi tút công khai đến những máy chủ:", - "ftl_removal": "Giới hạn chung", - "media_removal": "Ẩn Media", - "media_removal_desc": "Media từ những máy chủ sau sẽ bị ẩn:", - "media_nsfw": "Áp đặt nhạy cảm", - "media_nsfw_desc": "Nội dung từ những máy chủ sau sẽ bị tự động gắn nhãn nhạy cảm:", - "reject_desc": "Máy chủ này không chấp nhận tin nhắn từ những máy chủ:", - "ftl_removal_desc": "Nội dung từ những máy chủ sau sẽ bị ẩn:" - }, - "mrf_policies_desc": "Các chính sách MRF kiểm soát sự liên hợp của máy chủ. Các chính sách sau được bật:" - }, - "staff": "Nhân viên" - }, - "domain_mute_card": { - "mute": "Ẩn", - "mute_progress": "Đang ẩn…", - "unmute": "Ngưng ẩn", - "unmute_progress": "Đang ngưng ẩn…" - }, - "exporter": { - "export": "Xuất dữ liệu", - "processing": "Đang chuẩn bị tập tin cho bạn tải về" - }, - "features_panel": { - "chat": "Chat", - "pleroma_chat_messages": "Pleroma Chat", - "gopher": "Gopher", - "media_proxy": "Proxy media", - "text_limit": "Giới hạn ký tự", - "title": "Tính năng", - "who_to_follow": "Đề xuất theo dõi", - "upload_limit": "Giới hạn tải lên", - "scope_options": "Đa dạng kiểu đăng" - }, - "finder": { - "error_fetching_user": "Lỗi khi nạp người dùng", - "find_user": "Tìm người dùng" - }, - "shoutbox": { - "title": "Chat cùng nhau" - }, - "general": { - "apply": "Áp dụng", - "submit": "Gửi tặng", - "more": "Nhiều hơn", - "loading": "Đang tải…", - "generic_error": "Đã có lỗi xảy ra", - "error_retry": "Xin hãy thử lại", - "retry": "Thử lại", - "optional": "tùy chọn", - "show_more": "Xem thêm", - "show_less": "Thu gọn", - "dismiss": "Bỏ qua", - "cancel": "Hủy bỏ", - "disable": "Tắt", - "enable": "Bật", - "confirm": "Xác nhận", - "verify": "Xác thực", - "close": "Đóng", - "peek": "Thu gọn", - "role": { - "admin": "Quản trị viên", - "moderator": "Kiểm duyệt viên" - }, - "flash_security": "Lưu ý rằng điều này có thể tiềm ẩn nguy hiểm vì nội dung Flash là mã lập trình tùy ý.", - "flash_fail": "Tải nội dung Flash thất bại, tham khảo chi tiết trong console.", - "flash_content": "Nhấn để hiện nội dung Flash bằng Ruffle (Thử nghiệm, có thể không dùng được)." - }, - "image_cropper": { - "crop_picture": "Cắt hình ảnh", - "save": "Lưu", - "save_without_cropping": "Bỏ qua cắt", - "cancel": "Hủy bỏ" - }, - "importer": { - "submit": "Gửi đi", - "success": "Đã nhập dữ liệu thành công.", - "error": "Có lỗi xảy ra khi nhập dữ liệu từ tập tin này." - }, - "login": { - "login": "Đăng nhập", - "description": "Đăng nhập bằng OAuth", - "logout": "Đăng xuất", - "password": "Mật khẩu", - "placeholder": "vd: cobetronxinh", - "register": "Đăng ký", - "username": "Tên người dùng", - "hint": "Đăng nhập để cùng trò chuyện", - "authentication_code": "Mã truy cập", - "enter_recovery_code": "Nhập mã khôi phục", - "recovery_code": "Mã khôi phục", - "heading": { - "totp": "Xác thực hai bước", - "recovery": "Khôi phục hai bước" - }, - "enter_two_factor_code": "Nhập mã xác thực hai bước" - }, - "media_modal": { - "previous": "Trước đó", - "next": "Kế tiếp" - }, - "nav": { - "about": "Về máy chủ này", - "administration": "Vận hành bởi", - "back": "Quay lại", - "friend_requests": "Yêu cầu theo dõi", - "mentions": "Lượt nhắc đến", - "interactions": "Giao tiếp", - "dms": "Nhắn tin", - "public_tl": "Bảng tin máy chủ", - "timeline": "Bảng tin", - "home_timeline": "Bảng tin của bạn", - "twkn": "Thế giới", - "bookmarks": "Đã lưu", - "user_search": "Tìm kiếm người dùng", - "search": "Tìm kiếm", - "who_to_follow": "Đề xuất theo dõi", - "preferences": "Thiết lập", - "timelines": "Bảng tin", - "chats": "Chat" - }, - "notifications": { - "broken_favorite": "Trạng thái chưa rõ, đang tìm kiếm…", - "favorited_you": "thích tút của bạn", - "followed_you": "theo dõi bạn", - "follow_request": "yêu cầu theo dõi bạn", - "load_older": "Xem những thông báo cũ hơn", - "notifications": "Thông báo", - "read": "Đọc!", - "repeated_you": "chia sẻ tút của bạn", - "no_more_notifications": "Không còn thông báo nào", - "migrated_to": "chuyển sang", - "reacted_with": "chạm tới {0}", - "error": "Lỗi khi nạp thông báo {0}" - }, - "polls": { - "add_poll": "Tạo bình chọn", - "option": "Lựa chọn", - "votes": "người bình chọn", - "people_voted_count": "{count} người bình chọn | {count} người bình chọn", - "vote": "Bình chọn", - "type": "Kiểu bình chọn", - "single_choice": "Chỉ được chọn một lựa chọn", - "multiple_choices": "Cho phép chọn nhiều lựa chọn", - "expiry": "Thời hạn bình chọn", - "expires_in": "Bình chọn kết thúc sau {0}", - "not_enough_options": "Không đủ lựa chọn tối thiểu", - "add_option": "Thêm lựa chọn", - "votes_count": "{count} bình chọn | {count} bình chọn", - "expired": "Bình chọn đã kết thúc {0} trước" - }, - "emoji": { - "stickers": "Sticker", - "emoji": "Emoji", - "keep_open": "Mở khung lựa chọn", - "search_emoji": "Tìm emoji", - "add_emoji": "Nhập emoji", - "custom": "Tùy chỉnh emoji", - "unicode": "Unicode emoji", - "load_all_hint": "Tải trước {saneAmount} emoji, tải toàn bộ emoji có thể gây xử lí chậm.", - "load_all": "Đang tải {emojiAmount} emoji" - }, - "interactions": { - "favs_repeats": "Tương tác", - "follows": "Lượt theo dõi mới", - "moves": "Người dùng chuyển đi", - "load_older": "Xem tương tác cũ hơn" - }, - "post_status": { - "new_status": "Đăng tút", - "account_not_locked_warning": "Tài khoản của bạn chưa {0}. Bất kỳ ai cũng có thể xem những tút dành cho người theo dõi của bạn.", - "account_not_locked_warning_link": "đã khóa", - "attachments_sensitive": "Đánh dấu media là nhạy cảm", - "media_description": "Mô tả media", - "content_type": { - "text/plain": "Văn bản", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "Tiêu đề (tùy chọn)", - "default": "Đời người con gái không muốn yêu ai được không?", - "direct_warning_to_first_only": "Người đầu tiên được nhắc đến mới có thể thấy tút này.", - "posting": "Đang đăng tút", - "post": "Đăng", - "preview": "Xem trước", - "preview_empty": "Trống", - "empty_status_error": "Không thể đăng một tút trống và không có media", - "media_description_error": "Cập nhật media thất bại, thử lại sau", - "scope_notice": { - "private": "Chỉ những người theo dõi bạn mới thấy tút này", - "unlisted": "Tút này sẽ không hiện trong bảng tin máy chủ và thế giới", - "public": "Mọi người đều có thể thấy tút này" - }, - "scope": { - "public": "Công khai - hiện trên bảng tin máy chủ", - "private": "Riêng tư - Chỉ dành cho người theo dõi", - "unlisted": "Hạn chế - không hiện trên bảng tin", - "direct": "Tin nhắn - chỉ người được nhắc đến mới thấy" - }, - "direct_warning_to_all": "Những ai được nhắc đến sẽ đều thấy tút này." - }, - "registration": { - "bio": "Tiểu sử", - "email": "Email", - "fullname": "Tên hiển thị", - "password_confirm": "Xác nhận mật khẩu", - "registration": "Đăng ký", - "token": "Lời mời", - "captcha": "CAPTCHA", - "new_captcha": "Nhấn vào hình ảnh để đổi captcha mới", - "username_placeholder": "vd: cobetronxinh", - "fullname_placeholder": "vd: Cô Bé Tròn Xinh", - "bio_placeholder": "vd:\nHi, I'm Cô Bé Tròn Xinh.\nI’m an anime girl living in suburban Vietnam. You may know me from the school.", - "reason": "Lý do đăng ký", - "reason_placeholder": "Máy chủ này phê duyệt đăng ký thủ công.\nHãy cho quản trị viên biết lý do bạn muốn đăng ký.", - "register": "Đăng ký", - "validations": { - "username_required": "không được để trống", - "fullname_required": "không được để trống", - "email_required": "không được để trống", - "password_confirmation_required": "không được để trống", - "password_confirmation_match": "phải trùng khớp với mật khẩu", - "password_required": "không được để trống" - } - }, - "remote_user_resolver": { - "remote_user_resolver": "Giải quyết người dùng từ xa", - "searching_for": "Tìm kiếm", - "error": "Không tìm thấy." - }, - "selectable_list": { - "select_all": "Chọn tất cả" - }, - "settings": { - "app_name": "Tên app", - "save": "Lưu thay đổi", - "security": "Bảo mật", - "enter_current_password_to_confirm": "Nhập mật khẩu để xác thực", - "mfa": { - "otp": "OTP", - "setup_otp": "Thiết lập OTP", - "wait_pre_setup_otp": "hậu thiết lập OTP", - "confirm_and_enable": "Xác nhận và kích hoạt OTP", - "title": "Xác thực hai bước", - "recovery_codes": "Những mã khôi phục.", - "waiting_a_recovery_codes": "Đang nhận mã khôi phục…", - "authentication_methods": "Phương pháp xác thực", - "scan": { - "title": "Quét", - "desc": "Sử dụng app xác thực hai bước để quét mã QR hoặc nhập mã khôi phục:", - "secret_code": "Mã" - }, - "verify": { - "desc": "Để bật xác thực hai bước, nhập mã từ app của bạn:" - }, - "generate_new_recovery_codes": "Tạo mã khôi phục mới", - "warning_of_generate_new_codes": "Khi tạo mã khôi phục mới, những mã khôi phục cũ sẽ không sử dụng được nữa.", - "recovery_codes_warning": "Hãy viết lại mã và cất ở một nơi an toàn - những mã này sẽ không xuất hiện lại nữa. Nếu mất quyền sử dụng app 2FA app và mã khôi phục, tài khoản của bạn sẽ không thể truy cập." - }, - "allow_following_move": "Cho phép tự động theo dõi lại khi tài khoản đang theo dõi chuyển sang máy chủ khác", - "attachmentRadius": "Tập tin tải lên", - "attachments": "Tập tin tải lên", - "avatar": "Ảnh đại diện", - "avatarAltRadius": "Ảnh đại diện (thông báo)", - "avatarRadius": "Ảnh đại diện", - "background": "Ảnh nền", - "bio": "Tiểu sử", - "block_export": "Xuất danh sách chặn", - "block_import": "Nhập danh sách chặn", - "block_import_error": "Lỗi khi nhập danh sách chặn", - "mute_export": "Xuất danh sách ẩn", - "mute_export_button": "Xuất danh sách ẩn ra tập tin CSV", - "mute_import": "Nhập danh sách ẩn", - "mute_import_error": "Lỗi khi nhập danh sách ẩn", - "mutes_imported": "Đã nhập danh sách ẩn! Sẽ mất một lúc nữa để hoàn thành.", - "import_mutes_from_a_csv_file": "Nhập danh sách ẩn từ tập tin CSV", - "blocks_tab": "Danh sách chặn", - "bot": "Đây là tài khoản Bot", - "btnRadius": "Nút", - "cBlue": "Xanh (Trả lời, theo dõi)", - "cOrange": "Cam (Thích)", - "cRed": "Đỏ (Hủy bỏ)", - "change_email": "Đổi email", - "change_email_error": "Có lỗi xảy ra khi đổi email.", - "changed_email": "Đã đổi email thành công!", - "change_password": "Đổi mật khẩu", - "changed_password": "Đổi mật khẩu thành công!", - "chatMessageRadius": "Tin nhắn chat", - "follows_imported": "Đã nhập danh sách theo dõi! Sẽ mất một lúc nữa để hoàn thành.", - "collapse_subject": "Thu gọn những tút có tựa đề", - "composing": "Thu gọn", - "current_password": "Mật khẩu cũ", - "mutes_and_blocks": "Ẩn và Chặn", - "data_import_export_tab": "Nhập / Xuất dữ liệu", - "default_vis": "Kiểu đăng tút mặc định", - "delete_account": "Xóa tài khoản", - "delete_account_error": "Có lỗi khi xóa tài khoản. Xin liên hệ quản trị viên máy chủ để tìm hiểu.", - "delete_account_instructions": "Nhập mật khẩu bên dưới để xác nhận.", - "domain_mutes": "Máy chủ", - "avatar_size_instruction": "Kích cỡ tối thiểu 150x150 pixels.", - "pad_emoji": "Nhớ chừa khoảng cách khi chèn emoji", - "emoji_reactions_on_timeline": "Hiện tương tác emoji trên bảng tin", - "export_theme": "Lưu mẫu", - "filtering": "Bộ lọc", - "filtering_explanation": "Những tút chứa từ sau sẽ bị ẩn, mỗi chữ một hàng", - "word_filter": "Bộ lọc từ ngữ", - "follow_export": "Xuất danh sách theo dõi", - "follow_import": "Nhập danh sách theo dõi", - "follow_import_error": "Lỗi khi nhập danh sách theo dõi", - "accent": "Màu chủ đạo", - "foreground": "Màu phối", - "general": "Chung", - "hide_attachments_in_convo": "Ẩn tập tin đính kèm trong thảo luận", - "hide_media_previews": "Ẩn xem trước media", - "hide_all_muted_posts": "Ẩn những tút đã ẩn", - "hide_muted_posts": "Ẩn tút từ các người dùng đã ẩn", - "max_thumbnails": "Số ảnh xem trước tối đa cho mỗi tút", - "hide_isp": "Ẩn thanh bên của máy chủ", - "hide_shoutbox": "Ẩn thanh chat máy chủ", - "hide_wallpaper": "Ẩn ảnh nền máy chủ", - "preload_images": "Tải trước hình ảnh", - "use_one_click_nsfw": "Xem nội dung nhạy cảm bằng cách nhấn vào", - "hide_user_stats": "Ẩn số liệu người dùng (vd: số người theo dõi)", - "hide_filtered_statuses": "Ẩn những tút đã lọc", - "import_followers_from_a_csv_file": "Nhập danh sách theo dõi từ tập tin CSV", - "import_theme": "Tải mẫu có sẵn", - "inputRadius": "Chỗ nhập vào", - "checkboxRadius": "Hộp kiểm", - "instance_default": "(mặc định: {value})", - "instance_default_simple": "(mặc định)", - "interface": "Giao diện", - "interfaceLanguage": "Ngôn ngữ", - "limited_availability": "Trình duyệt không hỗ trợ", - "links": "Liên kết", - "lock_account_description": "Tự phê duyệt yêu cầu theo dõi", - "loop_video": "Lặp lại video", - "loop_video_silent_only": "Chỉ lặp lại những video không có âm thanh", - "mutes_tab": "Ẩn", - "play_videos_in_modal": "Phát video trong khung hình riêng", - "file_export_import": { - "backup_restore": "Sao lưu", - "backup_settings": "Thiết lập sao lưu", - "restore_settings": "Khôi phục thiết lập từ tập tin", - "errors": { - "invalid_file": "Tập tin đã chọn không hỗ trợ bởi Pleroma. Giữ nguyên mọi thay đổi.", - "file_too_old": "Phiên bản không tương thích: {fileMajor}, phiên bản tập tin quá cũ và không được hỗ trợ (min. set. ver. {feMajor})", - "file_slightly_new": "Phiên bản tập tin khác biệt, không thể áp dụng một vài thay đổi", - "file_too_new": "Phiên bản không tương thích: {fileMajor}, phiên bản PleromaFE(settings ver {feMajor}) của máy chủ này quá cũ để sử dụng" - }, - "backup_settings_theme": "Thiết lập sao lưu dữ liệu và giao diện" - }, - "profile_fields": { - "label": "Metadata", - "add_field": "Thêm mục", - "name": "Nhãn", - "value": "Nội dung" - }, - "use_contain_fit": "Không cắt ảnh đính kèm trong bản xem trước", - "name": "Tên", - "name_bio": "Tên & tiểu sử", - "new_email": "Email mới", - "new_password": "Mật khẩu mới", - "notification_visibility_follows": "Theo dõi", - "notification_visibility_mentions": "Lượt nhắc", - "notification_visibility_repeats": "Chia sẻ", - "notification_visibility_moves": "Chuyển máy chủ", - "notification_visibility_emoji_reactions": "Tương tác", - "no_blocks": "Không có chặn", - "no_mutes": "Không có ẩn", - "hide_follows_description": "Ẩn danh sách những người tôi theo dõi", - "hide_followers_description": "Ẩn danh sách những người theo dõi tôi", - "hide_followers_count_description": "Ẩn số lượng người theo dõi tôi", - "show_admin_badge": "Hiện huy hiệu \"Quản trị viên\" trên trang của tôi", - "show_moderator_badge": "Hiện huy hiệu \"Kiểm duyệt viên\" trên trang của tôi", - "oauth_tokens": "OAuth tokens", - "token": "Token", - "refresh_token": "Làm tươi token", - "valid_until": "Có giá trị tới", - "revoke_token": "Gỡ", - "panelRadius": "Panels", - "pause_on_unfocused": "Dừng phát khi đang lướt các tút khác", - "presets": "Mẫu có sẵn", - "profile_background": "Ảnh nền trang cá nhân", - "profile_banner": "Ảnh bìa trang cá nhân", - "profile_tab": "Trang cá nhân", - "radii_help": "Thiết lập góc bo tròn (bằng pixels)", - "replies_in_timeline": "Trả lời trong bảng tin", - "reply_visibility_all": "Hiện toàn bộ trả lời", - "reply_visibility_self": "Chỉ hiện những trả lời có nhắc tới tôi", - "reply_visibility_following_short": "Hiện trả lời có những người tôi theo dõi", - "reply_visibility_self_short": "Hiện trả lời của bản thân", - "setting_changed": "Thiết lập khác với mặc định", - "block_export_button": "Xuất danh sách chặn ra tập tin CSV", - "blocks_imported": "Đã nhập danh sách chặn! Sẽ mất một lúc nữa để hoàn thành.", - "cGreen": "Green (Chia sẻ)", - "change_password_error": "Có lỗi xảy ra khi đổi mật khẩu.", - "confirm_new_password": "Xác nhận mật khẩu mới", - "delete_account_description": "Xóa vĩnh viễn mọi dữ liệu và vô hiệu hóa tài khoản của bạn.", - "discoverable": "Hiện tài khoản trong công cụ tìm kiếm và những tính năng khác", - "follow_export_button": "Xuất danh sách theo dõi ra tập tin CSV", - "hide_attachments_in_tl": "Ẩn tập tin đính kèm trong bảng tin", - "right_sidebar": "Hiện thanh bên bên phải", - "hide_post_stats": "Ẩn tương tác của tút (vd: số lượt thích)", - "import_blocks_from_a_csv_file": "Nhập danh sách chặn từ tập tin CSV", - "invalid_theme_imported": "Tập tin đã chọn không hỗ trợ bởi Pleroma. Giao diện của bạn sẽ giữ nguyên.", - "notification_visibility": "Những loại thông báo sẽ hiện", - "notification_visibility_likes": "Thích", - "no_rich_text_description": "Không hiện rich text trong các tút", - "hide_follows_count_description": "Ẩn số lượng người tôi theo dõi", - "nsfw_clickthrough": "Cho phép nhấn vào xem các tút nhạy cảm", - "reply_visibility_following": "Chỉ hiện những trả lời có nhắc tới tôi hoặc từ những người mà tôi theo dõi", - "autohide_floating_post_button": "Ẩn nút viết tút khi xem bảng tin (di động)", - "saving_err": "Thiết lập lỗi lưu", - "saving_ok": "Đã lưu các thay đổi", - "search_user_to_block": "Tìm người bạn muốn chặn", - "search_user_to_mute": "Tìm người bạn muốn ẩn", - "security_tab": "Bảo mật", - "scope_copy": "Chép phạm vi khi trả lời (tin nhắn luôn được chép sẵn)", - "minimal_scopes_mode": "Tùy chọn thu nhỏ phạm vi tút", - "set_new_avatar": "Đổi ảnh đại diện", - "set_new_profile_background": "Đổi ảnh nền", - "set_new_profile_banner": "Đổi ảnh bìa", - "reset_profile_background": "Đặt lại ảnh nền", - "reset_profile_banner": "Đặt lại ảnh bìa", - "reset_banner_confirm": "Bạn có chắc chắn muốn đặt lại ảnh bìa?", - "reset_background_confirm": "Bạn có chắc chắn muốn đặt lại ảnh nền?", - "settings": "Cài đặt", - "subject_input_always_show": "Luôn hiện vùng tiêu đề", - "subject_line_behavior": "Chép tiêu đề khi trả lời", - "subject_line_email": "Giống email: \"re: subject\"", - "subject_line_mastodon": "Giống Mastodon: copy as is", - "subject_line_noop": "Đừng chép", - "sensitive_by_default": "Mặc định tút là nhạy cảm", - "stop_gifs": "Chỉ phát GIF khi chạm vào", - "streaming": "Tự động tải tút mới khi cuộn lên trên", - "user_mutes": "Người dùng", - "useStreamingApiWarning": "(Tính năng thử nghiệm, không đề xuất sử dụng)", - "text": "Văn bản", - "theme": "Theme", - "theme_help": "Dùng mã màu hex (#rrggbb) để tự chế theme.", - "tooltipRadius": "Tooltips/alerts", - "type_domains_to_mute": "Tìm máy chủ để ẩn", - "upload_a_photo": "Tải ảnh lên", - "user_settings": "Thiết lập người dùng", - "values": { - "false": "không", - "true": "có" - }, - "virtual_scrolling": "Render bảng tin", - "fun": "Vui nhộn", - "greentext": "Mũi tên meme", - "notifications": "Thông báo", - "notification_setting_filters": "Bộ lọc", - "notification_setting_block_from_strangers": "Chặn thông báo từ những người bạn không theo dõi", - "notification_setting_privacy": "Riêng tư", - "notification_setting_hide_notification_contents": "Ẩn người gửi và nội dung thông báo đẩy", - "notification_mutes": "Sử dụng ẩn nếu muốn dừng nhận thông báo từ một người cụ thể.", - "notification_blocks": "Chặn một người ngừng toàn bộ thông báo cũng giống như hủy đăng ký họ.", - "more_settings": "Cài đặt khác", - "style": { - "switcher": { - "keep_shadows": "Giữ bóng đổ", - "keep_color": "Giữ màu", - "keep_opacity": "Giữ trong suốt", - "keep_roundness": "Giữ bo tròn góc", - "reset": "Đặt lại", - "clear_all": "Xóa hết", - "clear_opacity": "Xóa trong suốt", - "load_theme": "Tải theme", - "keep_as_is": "Giữ như là", - "use_snapshot": "Bản cũ", - "use_source": "Bản mới", - "help": { - "upgraded_from_v2": "PleromaFE đã được nâng cấp, theme có thể khác hơn một chút so với bản cũ.", - "v2_imported": "Tập tin bạn nhập là từ phiên bản PleromaFE cũ. Chúng tôi sẽ cố làm nó tương thích nhưng có thể sẽ có xung đột.", - "older_version_imported": "Tập tin bạn vừa nhập được tạo ra từ phiên bản PleromaFE cũ.", - "snapshot_present": "Đã tải theme snapshot, mọi giá trị sẽ bị chép đè. Thay vào đó, bạn có thể tải dữ liệu chắc chắn của theme.", - "fe_upgraded": "Theme của PleromaFE được nâng cấp sau mỗi phiên bản.", - "fe_downgraded": "Theme của phiên bản PleromaFE đã được hạ cấp.", - "migration_snapshot_ok": "Theme snapshot đã tải xong. Bạn có thể thử tải dữ liệu theme.", - "migration_napshot_gone": "Nếu thiếu snapshot, một số thứ sẽ khác với ban đầu.", - "future_version_imported": "Tập tin bạn vừa nhập được tạo ra từ phiên bản PleromaFE mới.", - "snapshot_missing": "Không có theme snapshot trong tập tin cho nên có thể nó sẽ khác với bản gốc đôi chút.", - "snapshot_source_mismatch": "Xung đột phiên bản: hầu hết Pleroma FE đã hạ cấp và cập nhật lại, nếu bạn đổi theme sử dụng phiên bản cũ hơn của FE, bạn gần như muốn sử dụng phiên bản cũ, thay vào đó sử dụng phiên bản mới." + "about": { + "mrf": { + "federation": "Liên hợp", + "keyword": { + "ftl_removal": "Giới hạn chung", + "is_replaced_by": "→", + "keyword_policies": "Chính sách quan trọng", + "reject": "Từ chối", + "replace": "Thay thế" + }, + "mrf_policies": "Kích hoạt chính sách MRF", + "mrf_policies_desc": "Các chính sách MRF kiểm soát sự liên hợp của máy chủ. Các chính sách sau được bật:", + "simple": { + "accept": "Đồng ý", + "accept_desc": "Máy chủ này chỉ chấp nhận tin nhắn từ những máy chủ:", + "ftl_removal": "Giới hạn chung", + "ftl_removal_desc": "Nội dung từ những máy chủ sau sẽ bị ẩn:", + "media_nsfw": "Áp đặt nhạy cảm", + "media_nsfw_desc": "Nội dung từ những máy chủ sau sẽ bị tự động gắn nhãn nhạy cảm:", + "media_removal": "Ẩn Media", + "media_removal_desc": "Media từ những máy chủ sau sẽ bị ẩn:", + "quarantine": "Bảo hành", + "quarantine_desc": "Máy chủ này sẽ gửi tút công khai đến những máy chủ:", + "reject": "Từ chối", + "reject_desc": "Máy chủ này không chấp nhận tin nhắn từ những máy chủ:", + "simple_policies": "Quy tắc máy chủ" + } }, - "keep_fonts": "Giữ phông chữ", - "save_load_hint": "Giúp giữ nguyên các tùy chọn hiện tại khi chọn hoặc tải theme khác, nó cũng lưu trữ các tùy chọn đã nói khi xuất một theme. Khi tất cả các hộp kiểm bị bỏ trống, việc xuất theme sẽ lưu mọi thứ." - }, - "common": { - "color": "Màu sắc", - "opacity": "Trong suốt", - "contrast": { - "hint": "Tỉ lệ tương phản là {ratio}, nó {level} {context}", - "level": { - "aa": "đạt mức AA (tối thiểu)", - "aaa": "đạt mức AAA (đề xuất)", - "bad": "không đạt yêu cầu" - }, - "context": { - "18pt": "cỡ chữ lớn (18pt+)", - "text": "cho chữ" - } + "staff": "Nhân viên" + }, + "chats": { + "chats": "Chat", + "delete": "Xóa", + "delete_confirm": "Bạn có chắc chắn muốn xóa tin nhắn này?", + "empty_chat_list_placeholder": "Bạn không có tin nhắn. Hãy bắt đầu nhắn cho ai đó!", + "empty_message_error": "Không thể gửi tin nhắn trống", + "error_loading_chat": "Có vấn đề khi tải giao diện chat.", + "error_sending_message": "Có vấn đề khi gửi tin nhắn.", + "message_user": "Nhắn tin {nickname}", + "more": "Nhiều hơn", + "new": "Chat mới", + "you": "Bạn:" + }, + "display_date": { + "today": "Hôm nay" + }, + "domain_mute_card": { + "mute": "Ẩn", + "mute_progress": "Đang ẩn…", + "unmute": "Ngưng ẩn", + "unmute_progress": "Đang ngưng ẩn…" + }, + "emoji": { + "add_emoji": "Nhập emoji", + "custom": "Tùy chỉnh emoji", + "emoji": "Emoji", + "keep_open": "Mở khung lựa chọn", + "load_all": "Đang tải {emojiAmount} emoji", + "load_all_hint": "Tải trước {saneAmount} emoji, tải toàn bộ emoji có thể gây xử lí chậm.", + "search_emoji": "Tìm emoji", + "stickers": "Sticker", + "unicode": "Unicode emoji" + }, + "errors": { + "storage_unavailable": "Pleroma không thể truy cập lưu trữ trình duyệt. Thông tin đăng nhập và những thiết lập tạm thời sẽ bị mất. Hãy cho phép cookies." + }, + "exporter": { + "export": "Xuất dữ liệu", + "processing": "Đang chuẩn bị tập tin cho bạn tải về" + }, + "features_panel": { + "media_proxy": "Proxy media", + "scope_options": "Đa dạng kiểu đăng", + "text_limit": "Giới hạn ký tự", + "title": "Tính năng", + "upload_limit": "Giới hạn tải lên", + "who_to_follow": "Đề xuất theo dõi" + }, + "file_type": { + "audio": "Âm thanh", + "file": "Tập tin", + "image": "Hình ảnh", + "video": "Video" + }, + "finder": { + "error_fetching_user": "Lỗi khi nạp người dùng", + "find_user": "Tìm người dùng" + }, + "general": { + "apply": "Áp dụng", + "cancel": "Hủy bỏ", + "close": "Đóng", + "confirm": "Xác nhận", + "disable": "Tắt", + "dismiss": "Bỏ qua", + "enable": "Bật", + "error_retry": "Xin hãy thử lại", + "flash_content": "Nhấn để hiện nội dung Flash bằng Ruffle (Thử nghiệm, có thể không dùng được).", + "flash_fail": "Tải nội dung Flash thất bại, tham khảo chi tiết trong console.", + "flash_security": "Lưu ý rằng điều này có thể tiềm ẩn nguy hiểm vì nội dung Flash là mã lập trình tùy ý.", + "generic_error": "Đã có lỗi xảy ra", + "loading": "Đang tải…", + "more": "Nhiều hơn", + "optional": "tùy chọn", + "peek": "Thu gọn", + "retry": "Thử lại", + "role": { + "admin": "Quản trị viên", + "moderator": "Kiểm duyệt viên" + }, + "show_less": "Thu gọn", + "show_more": "Xem thêm", + "submit": "Gửi tặng", + "verify": "Xác thực" + }, + "image_cropper": { + "cancel": "Hủy bỏ", + "crop_picture": "Cắt hình ảnh", + "save": "Lưu", + "save_without_cropping": "Bỏ qua cắt" + }, + "importer": { + "error": "Có lỗi xảy ra khi nhập dữ liệu từ tập tin này.", + "submit": "Gửi đi", + "success": "Đã nhập dữ liệu thành công." + }, + "interactions": { + "favs_repeats": "Tương tác", + "follows": "Lượt theo dõi mới", + "load_older": "Xem tương tác cũ hơn", + "moves": "Người dùng chuyển đi" + }, + "login": { + "authentication_code": "Mã truy cập", + "description": "Đăng nhập bằng OAuth", + "enter_recovery_code": "Nhập mã khôi phục", + "enter_two_factor_code": "Nhập mã xác thực hai bước", + "heading": { + "recovery": "Khôi phục hai bước", + "totp": "Xác thực hai bước" + }, + "hint": "Đăng nhập để cùng trò chuyện", + "login": "Đăng nhập", + "logout": "Đăng xuất", + "password": "Mật khẩu", + "placeholder": "vd: cobetronxinh", + "recovery_code": "Mã khôi phục", + "register": "Đăng ký", + "username": "Tên người dùng" + }, + "media_modal": { + "next": "Kế tiếp", + "previous": "Trước đó" + }, + "nav": { + "about": "Về máy chủ này", + "administration": "Vận hành bởi", + "back": "Quay lại", + "bookmarks": "Đã lưu", + "chats": "Chat", + "dms": "Nhắn tin", + "friend_requests": "Yêu cầu theo dõi", + "home_timeline": "Bảng tin của bạn", + "interactions": "Giao tiếp", + "mentions": "Lượt nhắc đến", + "preferences": "Thiết lập", + "public_tl": "Bảng tin máy chủ", + "search": "Tìm kiếm", + "timeline": "Bảng tin", + "timelines": "Bảng tin", + "twkn": "Thế giới", + "user_search": "Tìm kiếm người dùng", + "who_to_follow": "Đề xuất theo dõi" + }, + "notifications": { + "broken_favorite": "Trạng thái chưa rõ, đang tìm kiếm…", + "error": "Lỗi khi nạp thông báo {0}", + "favorited_you": "thích tút của bạn", + "follow_request": "yêu cầu theo dõi bạn", + "followed_you": "theo dõi bạn", + "load_older": "Xem những thông báo cũ hơn", + "migrated_to": "chuyển sang", + "no_more_notifications": "Không còn thông báo nào", + "notifications": "Thông báo", + "reacted_with": "chạm tới {0}", + "read": "Đọc!", + "repeated_you": "chia sẻ tút của bạn" + }, + "password_reset": { + "check_email": "Kiểm tra email của bạn.", + "forgot_password": "Quên mật khẩu", + "instruction": "Nhập email hoặc tên người dùng. Chúng tôi sẽ gửi email reset mật khẩu cho bạn.", + "password_reset": "Đổi mật khẩu", + "password_reset_disabled": "Reset mật khẩu bị tắt. Hãy liên hệ quản trị viên máy chủ.", + "password_reset_required": "Bạn phải đổi mật khẩu để đăng nhập.", + "password_reset_required_but_mailer_is_disabled": "Bạn cần phải đổi mật khẩu, nhưng tính năng bị tắt. Hãy liên hệ quản trị viên máy chủ.", + "placeholder": "Email hoặc tên người dùng", + "return_home": "Quay lại Pleroma", + "too_many_requests": "Bạn đã vượt giới hạn cho phép, hãy thử lại sau." + }, + "polls": { + "add_option": "Thêm lựa chọn", + "add_poll": "Tạo bình chọn", + "expired": "Bình chọn đã kết thúc {0} trước", + "expires_in": "Bình chọn kết thúc sau {0}", + "expiry": "Thời hạn bình chọn", + "multiple_choices": "Cho phép chọn nhiều lựa chọn", + "not_enough_options": "Không đủ lựa chọn tối thiểu", + "option": "Lựa chọn", + "people_voted_count": "{count} người bình chọn | {count} người bình chọn", + "single_choice": "Chỉ được chọn một lựa chọn", + "type": "Kiểu bình chọn", + "vote": "Bình chọn", + "votes": "người bình chọn", + "votes_count": "{count} bình chọn | {count} bình chọn" + }, + "post_status": { + "account_not_locked_warning": "Tài khoản của bạn chưa {0}. Bất kỳ ai cũng có thể xem những tút dành cho người theo dõi của bạn.", + "account_not_locked_warning_link": "đã khóa", + "attachments_sensitive": "Đánh dấu media là nhạy cảm", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "Văn bản" + }, + "content_warning": "Tiêu đề (tùy chọn)", + "default": "Đời người con gái không muốn yêu ai được không?", + "direct_warning_to_all": "Những ai được nhắc đến sẽ đều thấy tút này.", + "direct_warning_to_first_only": "Người đầu tiên được nhắc đến mới có thể thấy tút này.", + "empty_status_error": "Không thể đăng một tút trống và không có media", + "media_description": "Mô tả media", + "media_description_error": "Cập nhật media thất bại, thử lại sau", + "new_status": "Đăng tút", + "post": "Đăng", + "posting": "Đang đăng tút", + "preview": "Xem trước", + "preview_empty": "Trống", + "scope": { + "direct": "Tin nhắn - chỉ người được nhắc đến mới thấy", + "private": "Riêng tư - Chỉ dành cho người theo dõi", + "public": "Công khai - hiện trên bảng tin máy chủ", + "unlisted": "Hạn chế - không hiện trên bảng tin" + }, + "scope_notice": { + "private": "Chỉ những người theo dõi bạn mới thấy tút này", + "public": "Mọi người đều có thể thấy tút này", + "unlisted": "Tút này sẽ không hiện trong bảng tin máy chủ và thế giới" } - }, - "common_colors": { - "_tab_label": "Chung", - "main": "Màu sắc chung", - "foreground_hint": "Mở tab \"Nâng cao\" để có nhiều tùy chọn hơn", - "rgbo": "Icons, accents, badges" - }, - "advanced_colors": { - "_tab_label": "Nâng cao", - "alert": "Nền cảnh báo", - "alert_error": "Lỗi", - "alert_warning": "Cảnh báo", - "alert_neutral": "Neutral", - "post": "Tút/Tiểu sử", - "badge": "Nền huy hiệu", - "popover": "Tooltips, menus, popovers", - "badge_notification": "Thông báo", - "panel_header": "Tiêu đề panel", - "top_bar": "Thanh trên cùng", - "borders": "Đường biên", - "buttons": "Nút bấm", - "faint_text": "Chữ mờ", - "underlay": "Lớp dưới", - "wallpaper": "Wallpaper", - "poll": "Biểu đồ cuộc bình chọn", - "icons": "Biểu tượng", - "highlight": "Những thành phần nổi bật", - "pressed": "Khi nhấn xuống", - "selectedPost": "Chọn tút", - "selectedMenu": "Chọn menu", - "toggled": "Toggled", - "tabs": "Tab", - "chat": { - "incoming": "Tin nhắn đến", - "outgoing": "Tin nhắn đi", - "border": "Đường biên" - }, - "inputs": "Khung soạn thảo", - "disabled": "Vô hiệu hóa" - }, - "radii": { - "_tab_label": "Góc bo tròn" - }, - "shadows": { - "component": "Thành phần", - "shadow_id": "Đổ bóng #{value}", - "blur": "Làm mờ", - "spread": "Mở rộng", - "inset": "Thu vào", - "filter_hint": { - "always_drop_shadow": "Chú ý, màu bóng đổ này luôn sử dụng {0} nếu trình duyệt hỗ trợ.", - "drop_shadow_syntax": "{0} không hỗ trợ {1} phần và từ khóa {2}.", - "spread_zero": "Bóng đổ > 0 sẽ xuất hiện nếu chọn nó thành không", - "inset_classic": "Bóng đổ inset sẽ sử dụng {0}", - "avatar_inset": "Nếu trộn lẫn bóng đổ inset và non-inset trên ảnh đại diện có thể khiến ảnh đại diện biến thành trong suốt." - }, - "components": { - "panel": "Panel", - "panelHeader": "Panel ảnh bìa", - "topBar": "Thanh trên cùng", - "avatar": "Ảnh đại diện (ở trang cá nhân)", - "avatarStatus": "Ảnh đại diện (ở tút)", - "popup": "Popups và tooltips", - "button": "Nút bấm", - "buttonHover": "Nút bấm (khi rê chuột)", - "buttonPressed": "Nút bấm (khi nhấn chuột)", - "buttonPressedHover": "Nút bấm (khi nhấn+giữ)", - "input": "Khung soạn thảo" - }, - "_tab_label": "Đổ bóng và tô sáng", - "override": "Chép đè", - "hintV3": "Với bóng đổ, bạn có thể sử dụng ký hiệu {0} để dùng slot màu khác." - }, - "fonts": { - "_tab_label": "Phông chữ", - "components": { - "interface": "Giao diện chung", - "input": "Khung soạn thảo", - "post": "Tút", - "postCode": "Chữ monospaced (rich text)" - }, - "family": "Tên phông", - "size": "Kích cỡ (px)", - "weight": "Độ đậm", - "custom": "Tùy chỉnh", - "help": "Chọn phông chữ hiển thị. Để \"tùy chọn\", bạn phải nhập chính xác tên phông chữ trên hệ thống." - }, - "preview": { - "header": "Xem trước", - "content": "Nội dung", - "error": "Lỗi mẫu ví dụ", - "button": "Nút bấm", - "text": "Một đống {0} và {1}", - "mono": "nội dung", - "input": "Đời người con gái không muốn yêu ai được không?", - "faint_link": "tài liệu hướng dẫn", - "checkbox": "Tôi đã đọc lướt qua quy tắc và chính sách bảo mật", - "link": "Link đẹp đó em yêu", - "fine_print": "Đọc {0} để tìm hiểu thêm!", - "header_faint": "OK nè" - } }, - "version": { - "title": "Phiên bản", - "frontend_version": "Frontend", - "backend_version": "Backend" + "registration": { + "bio": "Tiểu sử", + "bio_placeholder": "vd:\nHi, I'm Cô Bé Tròn Xinh.\nI’m an anime girl living in suburban Vietnam. You may know me from the school.", + "captcha": "CAPTCHA", + "email": "Email", + "fullname": "Tên hiển thị", + "fullname_placeholder": "vd: Cô Bé Tròn Xinh", + "new_captcha": "Nhấn vào hình ảnh để đổi captcha mới", + "password_confirm": "Xác nhận mật khẩu", + "reason": "Lý do đăng ký", + "reason_placeholder": "Máy chủ này phê duyệt đăng ký thủ công.\nHãy cho quản trị viên biết lý do bạn muốn đăng ký.", + "register": "Đăng ký", + "registration": "Đăng ký", + "token": "Lời mời", + "username_placeholder": "vd: cobetronxinh", + "validations": { + "email_required": "không được để trống", + "fullname_required": "không được để trống", + "password_confirmation_match": "phải trùng khớp với mật khẩu", + "password_confirmation_required": "không được để trống", + "password_required": "không được để trống", + "username_required": "không được để trống" + } }, - "reset_avatar": "Đặt lại ảnh đại diện", - "reset_avatar_confirm": "Bạn có chắc chắn muốn đặt lại ảnh đại diện?", - "post_status_content_type": "Loại tút đăng", - "useStreamingApi": "Nhận tút và thông báo theo thời gian thực", - "theme_help_v2_1": "Bạn cũng có thể xóa hết màu thành phần và làm theme trong suốt, chọn nút \"Xóa hết\".", - "theme_help_v2_2": "Các biểu tượng bên dưới các mục có độ tương phản nền/văn bản, hãy rê chuột qua để biết thông tin chi tiết. Xin lưu ý rằng, khi sử dụng các độ tương phản trong suốt có thể khiến đọc chữ không ra.", - "enable_web_push_notifications": "Cho phép thông báo đẩy trên web", - "mentions_new_style": "Lượt nhắc màu mè", - "mentions_new_place": "Đặt lượt nhắc ở dòng riêng", - "always_show_post_button": "Luôn hiện nút viết tút mới" - }, - "errors": { - "storage_unavailable": "Pleroma không thể truy cập lưu trữ trình duyệt. Thông tin đăng nhập và những thiết lập tạm thời sẽ bị mất. Hãy cho phép cookies." - }, - "time": { - "now": "vừa xong", - "now_short": "vừa xong", - "in_future": "lúc {0}", - "in_past": "{0} trước", - "unit": { - "day": "{0} ngày", - "days": "{0} ngày", - "day_short": "{0} ngày", - "days_short": "{0} ngày", - "hour": "{0} giờ", - "hours": "{0} giờ", - "hour_short": "{0} giờ", - "hours_short": "{0} giờ", - "minute": "{0} phút", - "minutes": "{0} phút", - "minute_short": "{0} phút", - "minutes_short": "{0} phút", - "month": "{0} tháng", - "months": "{0} tháng", - "month_short": "{0} tháng", - "months_short": "{0} tháng", - "second": "{0} giây", - "seconds": "{0} giây", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} tuần", - "weeks": "{0} tuần", - "week_short": "{0} tuần", - "weeks_short": "{0} tuần", - "year": "{0} năm", - "years": "{0} năm", - "year_short": "{0} năm", - "years_short": "{0} năm" + "remote_user_resolver": { + "error": "Không tìm thấy.", + "remote_user_resolver": "Giải quyết người dùng từ xa", + "searching_for": "Tìm kiếm" + }, + "search": { + "hashtags": "Hashtag", + "no_results": "Không tìm thấy", + "people": "Người", + "people_talking": "{count} người đang trò chuyện", + "person_talking": "{count} người đang trò chuyện" + }, + "selectable_list": { + "select_all": "Chọn tất cả" + }, + "settings": { + "accent": "Màu chủ đạo", + "allow_following_move": "Cho phép tự động theo dõi lại khi tài khoản đang theo dõi chuyển sang máy chủ khác", + "always_show_post_button": "Luôn hiện nút viết tút mới", + "app_name": "Tên app", + "attachmentRadius": "Tập tin tải lên", + "attachments": "Tập tin tải lên", + "autohide_floating_post_button": "Ẩn nút viết tút khi xem bảng tin (di động)", + "avatar": "Ảnh đại diện", + "avatarAltRadius": "Ảnh đại diện (thông báo)", + "avatarRadius": "Ảnh đại diện", + "avatar_size_instruction": "Kích cỡ tối thiểu 150x150 pixels.", + "background": "Ảnh nền", + "bio": "Tiểu sử", + "block_export": "Xuất danh sách chặn", + "block_export_button": "Xuất danh sách chặn ra tập tin CSV", + "block_import": "Nhập danh sách chặn", + "block_import_error": "Lỗi khi nhập danh sách chặn", + "blocks_imported": "Đã nhập danh sách chặn! Sẽ mất một lúc nữa để hoàn thành.", + "blocks_tab": "Danh sách chặn", + "bot": "Đây là tài khoản Bot", + "btnRadius": "Nút", + "cBlue": "Xanh (Trả lời, theo dõi)", + "cGreen": "Green (Chia sẻ)", + "cOrange": "Cam (Thích)", + "cRed": "Đỏ (Hủy bỏ)", + "change_email": "Đổi email", + "change_email_error": "Có lỗi xảy ra khi đổi email.", + "change_password": "Đổi mật khẩu", + "change_password_error": "Có lỗi xảy ra khi đổi mật khẩu.", + "changed_email": "Đã đổi email thành công!", + "changed_password": "Đổi mật khẩu thành công!", + "chatMessageRadius": "Tin nhắn chat", + "checkboxRadius": "Hộp kiểm", + "collapse_subject": "Thu gọn những tút có tựa đề", + "composing": "Thu gọn", + "confirm_new_password": "Xác nhận mật khẩu mới", + "current_password": "Mật khẩu cũ", + "data_import_export_tab": "Nhập / Xuất dữ liệu", + "default_vis": "Kiểu đăng tút mặc định", + "delete_account": "Xóa tài khoản", + "delete_account_description": "Xóa vĩnh viễn mọi dữ liệu và vô hiệu hóa tài khoản của bạn.", + "delete_account_error": "Có lỗi khi xóa tài khoản. Xin liên hệ quản trị viên máy chủ để tìm hiểu.", + "delete_account_instructions": "Nhập mật khẩu bên dưới để xác nhận.", + "discoverable": "Hiện tài khoản trong công cụ tìm kiếm và những tính năng khác", + "domain_mutes": "Máy chủ", + "emoji_reactions_on_timeline": "Hiện tương tác emoji trên bảng tin", + "enable_web_push_notifications": "Cho phép thông báo đẩy trên web", + "enter_current_password_to_confirm": "Nhập mật khẩu để xác thực", + "export_theme": "Lưu mẫu", + "file_export_import": { + "backup_restore": "Sao lưu", + "backup_settings": "Thiết lập sao lưu", + "backup_settings_theme": "Thiết lập sao lưu dữ liệu và giao diện", + "errors": { + "file_slightly_new": "Phiên bản tập tin khác biệt, không thể áp dụng một vài thay đổi", + "file_too_new": "Phiên bản không tương thích: {fileMajor}, phiên bản PleromaFE(settings ver {feMajor}) của máy chủ này quá cũ để sử dụng", + "file_too_old": "Phiên bản không tương thích: {fileMajor}, phiên bản tập tin quá cũ và không được hỗ trợ (min. set. ver. {feMajor})", + "invalid_file": "Tập tin đã chọn không hỗ trợ bởi Pleroma. Giữ nguyên mọi thay đổi." + }, + "restore_settings": "Khôi phục thiết lập từ tập tin" + }, + "filtering": "Bộ lọc", + "filtering_explanation": "Những tút chứa từ sau sẽ bị ẩn, mỗi chữ một hàng", + "follow_export": "Xuất danh sách theo dõi", + "follow_export_button": "Xuất danh sách theo dõi ra tập tin CSV", + "follow_import": "Nhập danh sách theo dõi", + "follow_import_error": "Lỗi khi nhập danh sách theo dõi", + "follows_imported": "Đã nhập danh sách theo dõi! Sẽ mất một lúc nữa để hoàn thành.", + "foreground": "Màu phối", + "fun": "Vui nhộn", + "general": "Chung", + "greentext": "Mũi tên meme", + "hide_all_muted_posts": "Ẩn những tút đã ẩn", + "hide_attachments_in_convo": "Ẩn tập tin đính kèm trong thảo luận", + "hide_attachments_in_tl": "Ẩn tập tin đính kèm trong bảng tin", + "hide_filtered_statuses": "Ẩn những tút đã lọc", + "hide_followers_count_description": "Ẩn số lượng người theo dõi tôi", + "hide_followers_description": "Ẩn danh sách những người theo dõi tôi", + "hide_follows_count_description": "Ẩn số lượng người tôi theo dõi", + "hide_follows_description": "Ẩn danh sách những người tôi theo dõi", + "hide_isp": "Ẩn thanh bên của máy chủ", + "hide_media_previews": "Ẩn xem trước media", + "hide_muted_posts": "Ẩn tút từ các người dùng đã ẩn", + "hide_post_stats": "Ẩn tương tác của tút (vd: số lượt thích)", + "hide_shoutbox": "Ẩn thanh chat máy chủ", + "hide_user_stats": "Ẩn số liệu người dùng (vd: số người theo dõi)", + "hide_wallpaper": "Ẩn ảnh nền máy chủ", + "import_blocks_from_a_csv_file": "Nhập danh sách chặn từ tập tin CSV", + "import_followers_from_a_csv_file": "Nhập danh sách theo dõi từ tập tin CSV", + "import_mutes_from_a_csv_file": "Nhập danh sách ẩn từ tập tin CSV", + "import_theme": "Tải mẫu có sẵn", + "inputRadius": "Chỗ nhập vào", + "instance_default": "(mặc định: {value})", + "instance_default_simple": "(mặc định)", + "interface": "Giao diện", + "interfaceLanguage": "Ngôn ngữ", + "invalid_theme_imported": "Tập tin đã chọn không hỗ trợ bởi Pleroma. Giao diện của bạn sẽ giữ nguyên.", + "limited_availability": "Trình duyệt không hỗ trợ", + "links": "Liên kết", + "lock_account_description": "Tự phê duyệt yêu cầu theo dõi", + "loop_video": "Lặp lại video", + "loop_video_silent_only": "Chỉ lặp lại những video không có âm thanh", + "max_thumbnails": "Số ảnh xem trước tối đa cho mỗi tút", + "mfa": { + "authentication_methods": "Phương pháp xác thực", + "confirm_and_enable": "Xác nhận và kích hoạt OTP", + "generate_new_recovery_codes": "Tạo mã khôi phục mới", + "otp": "OTP", + "recovery_codes": "Những mã khôi phục.", + "recovery_codes_warning": "Hãy viết lại mã và cất ở một nơi an toàn - những mã này sẽ không xuất hiện lại nữa. Nếu mất quyền sử dụng app 2FA app và mã khôi phục, tài khoản của bạn sẽ không thể truy cập.", + "scan": { + "desc": "Sử dụng app xác thực hai bước để quét mã QR hoặc nhập mã khôi phục:", + "secret_code": "Mã", + "title": "Quét" + }, + "setup_otp": "Thiết lập OTP", + "title": "Xác thực hai bước", + "verify": { + "desc": "Để bật xác thực hai bước, nhập mã từ app của bạn:" + }, + "wait_pre_setup_otp": "hậu thiết lập OTP", + "waiting_a_recovery_codes": "Đang nhận mã khôi phục…", + "warning_of_generate_new_codes": "Khi tạo mã khôi phục mới, những mã khôi phục cũ sẽ không sử dụng được nữa." + }, + "minimal_scopes_mode": "Tùy chọn thu nhỏ phạm vi tút", + "more_settings": "Cài đặt khác", + "mute_export": "Xuất danh sách ẩn", + "mute_export_button": "Xuất danh sách ẩn ra tập tin CSV", + "mute_import": "Nhập danh sách ẩn", + "mute_import_error": "Lỗi khi nhập danh sách ẩn", + "mutes_and_blocks": "Ẩn và Chặn", + "mutes_imported": "Đã nhập danh sách ẩn! Sẽ mất một lúc nữa để hoàn thành.", + "mutes_tab": "Ẩn", + "name": "Tên", + "name_bio": "Tên & tiểu sử", + "new_email": "Email mới", + "new_password": "Mật khẩu mới", + "no_blocks": "Không có chặn", + "no_mutes": "Không có ẩn", + "no_rich_text_description": "Không hiện rich text trong các tút", + "notification_blocks": "Chặn một người ngừng toàn bộ thông báo cũng giống như hủy đăng ký họ.", + "notification_mutes": "Sử dụng ẩn nếu muốn dừng nhận thông báo từ một người cụ thể.", + "notification_setting_block_from_strangers": "Chặn thông báo từ những người bạn không theo dõi", + "notification_setting_filters": "Bộ lọc", + "notification_setting_hide_notification_contents": "Ẩn người gửi và nội dung thông báo đẩy", + "notification_setting_privacy": "Riêng tư", + "notification_visibility": "Những loại thông báo sẽ hiện", + "notification_visibility_emoji_reactions": "Tương tác", + "notification_visibility_follows": "Theo dõi", + "notification_visibility_likes": "Thích", + "notification_visibility_mentions": "Lượt nhắc", + "notification_visibility_moves": "Chuyển máy chủ", + "notification_visibility_repeats": "Chia sẻ", + "notifications": "Thông báo", + "nsfw_clickthrough": "Cho phép nhấn vào xem các tút nhạy cảm", + "oauth_tokens": "OAuth tokens", + "pad_emoji": "Nhớ chừa khoảng cách khi chèn emoji", + "panelRadius": "Panels", + "pause_on_unfocused": "Dừng phát khi đang lướt các tút khác", + "play_videos_in_modal": "Phát video trong khung hình riêng", + "post_status_content_type": "Loại tút đăng", + "preload_images": "Tải trước hình ảnh", + "presets": "Mẫu có sẵn", + "profile_background": "Ảnh nền trang cá nhân", + "profile_banner": "Ảnh bìa trang cá nhân", + "profile_fields": { + "add_field": "Thêm mục", + "label": "Metadata", + "name": "Nhãn", + "value": "Nội dung" + }, + "profile_tab": "Trang cá nhân", + "radii_help": "Thiết lập góc bo tròn (bằng pixels)", + "refresh_token": "Làm tươi token", + "replies_in_timeline": "Trả lời trong bảng tin", + "reply_visibility_all": "Hiện toàn bộ trả lời", + "reply_visibility_following": "Chỉ hiện những trả lời có nhắc tới tôi hoặc từ những người mà tôi theo dõi", + "reply_visibility_following_short": "Hiện trả lời có những người tôi theo dõi", + "reply_visibility_self": "Chỉ hiện những trả lời có nhắc tới tôi", + "reply_visibility_self_short": "Hiện trả lời của bản thân", + "reset_avatar": "Đặt lại ảnh đại diện", + "reset_avatar_confirm": "Bạn có chắc chắn muốn đặt lại ảnh đại diện?", + "reset_background_confirm": "Bạn có chắc chắn muốn đặt lại ảnh nền?", + "reset_banner_confirm": "Bạn có chắc chắn muốn đặt lại ảnh bìa?", + "reset_profile_background": "Đặt lại ảnh nền", + "reset_profile_banner": "Đặt lại ảnh bìa", + "revoke_token": "Gỡ", + "right_sidebar": "Hiện thanh bên bên phải", + "save": "Lưu thay đổi", + "saving_err": "Thiết lập lỗi lưu", + "saving_ok": "Đã lưu các thay đổi", + "scope_copy": "Chép phạm vi khi trả lời (tin nhắn luôn được chép sẵn)", + "search_user_to_block": "Tìm người bạn muốn chặn", + "search_user_to_mute": "Tìm người bạn muốn ẩn", + "security": "Bảo mật", + "security_tab": "Bảo mật", + "sensitive_by_default": "Mặc định tút là nhạy cảm", + "set_new_avatar": "Đổi ảnh đại diện", + "set_new_profile_background": "Đổi ảnh nền", + "set_new_profile_banner": "Đổi ảnh bìa", + "setting_changed": "Thiết lập khác với mặc định", + "settings": "Cài đặt", + "show_admin_badge": "Hiện huy hiệu \"Quản trị viên\" trên trang của tôi", + "show_moderator_badge": "Hiện huy hiệu \"Kiểm duyệt viên\" trên trang của tôi", + "stop_gifs": "Chỉ phát GIF khi chạm vào", + "streaming": "Tự động tải tút mới khi cuộn lên trên", + "style": { + "advanced_colors": { + "_tab_label": "Nâng cao", + "alert": "Nền cảnh báo", + "alert_error": "Lỗi", + "alert_neutral": "Neutral", + "alert_warning": "Cảnh báo", + "badge": "Nền huy hiệu", + "badge_notification": "Thông báo", + "borders": "Đường biên", + "buttons": "Nút bấm", + "chat": { + "border": "Đường biên", + "incoming": "Tin nhắn đến", + "outgoing": "Tin nhắn đi" + }, + "disabled": "Vô hiệu hóa", + "faint_text": "Chữ mờ", + "highlight": "Những thành phần nổi bật", + "icons": "Biểu tượng", + "inputs": "Khung soạn thảo", + "panel_header": "Tiêu đề panel", + "poll": "Biểu đồ cuộc bình chọn", + "popover": "Tooltips, menus, popovers", + "post": "Tút/Tiểu sử", + "pressed": "Khi nhấn xuống", + "selectedMenu": "Chọn menu", + "selectedPost": "Chọn tút", + "tabs": "Tab", + "toggled": "Toggled", + "top_bar": "Thanh trên cùng", + "underlay": "Lớp dưới", + "wallpaper": "Wallpaper" + }, + "common": { + "color": "Màu sắc", + "contrast": { + "context": { + "18pt": "cỡ chữ lớn (18pt+)", + "text": "cho chữ" + }, + "hint": "Tỉ lệ tương phản là {ratio}, nó {level} {context}", + "level": { + "aa": "đạt mức AA (tối thiểu)", + "aaa": "đạt mức AAA (đề xuất)", + "bad": "không đạt yêu cầu" + } + }, + "opacity": "Trong suốt" + }, + "common_colors": { + "_tab_label": "Chung", + "foreground_hint": "Mở tab \"Nâng cao\" để có nhiều tùy chọn hơn", + "main": "Màu sắc chung", + "rgbo": "Icons, accents, badges" + }, + "fonts": { + "_tab_label": "Phông chữ", + "components": { + "input": "Khung soạn thảo", + "interface": "Giao diện chung", + "post": "Tút", + "postCode": "Chữ monospaced (rich text)" + }, + "custom": "Tùy chỉnh", + "family": "Tên phông", + "help": "Chọn phông chữ hiển thị. Để \"tùy chọn\", bạn phải nhập chính xác tên phông chữ trên hệ thống.", + "size": "Kích cỡ (px)", + "weight": "Độ đậm" + }, + "preview": { + "button": "Nút bấm", + "checkbox": "Tôi đã đọc lướt qua quy tắc và chính sách bảo mật", + "content": "Nội dung", + "error": "Lỗi mẫu ví dụ", + "faint_link": "tài liệu hướng dẫn", + "fine_print": "Đọc {0} để tìm hiểu thêm!", + "header": "Xem trước", + "header_faint": "OK nè", + "input": "Đời người con gái không muốn yêu ai được không?", + "link": "Link đẹp đó em yêu", + "mono": "nội dung", + "text": "Một đống {0} và {1}" + }, + "radii": { + "_tab_label": "Góc bo tròn" + }, + "shadows": { + "_tab_label": "Đổ bóng và tô sáng", + "blur": "Làm mờ", + "component": "Thành phần", + "components": { + "avatar": "Ảnh đại diện (ở trang cá nhân)", + "avatarStatus": "Ảnh đại diện (ở tút)", + "button": "Nút bấm", + "buttonHover": "Nút bấm (khi rê chuột)", + "buttonPressed": "Nút bấm (khi nhấn chuột)", + "buttonPressedHover": "Nút bấm (khi nhấn+giữ)", + "input": "Khung soạn thảo", + "panel": "Panel", + "panelHeader": "Panel ảnh bìa", + "popup": "Popups và tooltips", + "topBar": "Thanh trên cùng" + }, + "filter_hint": { + "always_drop_shadow": "Chú ý, màu bóng đổ này luôn sử dụng {0} nếu trình duyệt hỗ trợ.", + "avatar_inset": "Nếu trộn lẫn bóng đổ inset và non-inset trên ảnh đại diện có thể khiến ảnh đại diện biến thành trong suốt.", + "drop_shadow_syntax": "{0} không hỗ trợ {1} phần và từ khóa {2}.", + "inset_classic": "Bóng đổ inset sẽ sử dụng {0}", + "spread_zero": "Bóng đổ > 0 sẽ xuất hiện nếu chọn nó thành không" + }, + "hintV3": "Với bóng đổ, bạn có thể sử dụng ký hiệu {0} để dùng slot màu khác.", + "inset": "Thu vào", + "override": "Chép đè", + "shadow_id": "Đổ bóng #{value}", + "spread": "Mở rộng" + }, + "switcher": { + "clear_all": "Xóa hết", + "clear_opacity": "Xóa trong suốt", + "help": { + "fe_downgraded": "Theme của phiên bản PleromaFE đã được hạ cấp.", + "fe_upgraded": "Theme của PleromaFE được nâng cấp sau mỗi phiên bản.", + "future_version_imported": "Tập tin bạn vừa nhập được tạo ra từ phiên bản PleromaFE mới.", + "migration_napshot_gone": "Nếu thiếu snapshot, một số thứ sẽ khác với ban đầu.", + "migration_snapshot_ok": "Theme snapshot đã tải xong. Bạn có thể thử tải dữ liệu theme.", + "older_version_imported": "Tập tin bạn vừa nhập được tạo ra từ phiên bản PleromaFE cũ.", + "snapshot_missing": "Không có theme snapshot trong tập tin cho nên có thể nó sẽ khác với bản gốc đôi chút.", + "snapshot_present": "Đã tải theme snapshot, mọi giá trị sẽ bị chép đè. Thay vào đó, bạn có thể tải dữ liệu chắc chắn của theme.", + "snapshot_source_mismatch": "Xung đột phiên bản: hầu hết Pleroma FE đã hạ cấp và cập nhật lại, nếu bạn đổi theme sử dụng phiên bản cũ hơn của FE, bạn gần như muốn sử dụng phiên bản cũ, thay vào đó sử dụng phiên bản mới.", + "upgraded_from_v2": "PleromaFE đã được nâng cấp, theme có thể khác hơn một chút so với bản cũ.", + "v2_imported": "Tập tin bạn nhập là từ phiên bản PleromaFE cũ. Chúng tôi sẽ cố làm nó tương thích nhưng có thể sẽ có xung đột." + }, + "keep_as_is": "Giữ như là", + "keep_color": "Giữ màu", + "keep_fonts": "Giữ phông chữ", + "keep_opacity": "Giữ trong suốt", + "keep_roundness": "Giữ bo tròn góc", + "keep_shadows": "Giữ bóng đổ", + "load_theme": "Tải theme", + "reset": "Đặt lại", + "save_load_hint": "Giúp giữ nguyên các tùy chọn hiện tại khi chọn hoặc tải theme khác, nó cũng lưu trữ các tùy chọn đã nói khi xuất một theme. Khi tất cả các hộp kiểm bị bỏ trống, việc xuất theme sẽ lưu mọi thứ.", + "use_snapshot": "Bản cũ", + "use_source": "Bản mới" + } + }, + "subject_input_always_show": "Luôn hiện vùng tiêu đề", + "subject_line_behavior": "Chép tiêu đề khi trả lời", + "subject_line_email": "Giống email: \"re: subject\"", + "subject_line_mastodon": "Giống Mastodon: copy as is", + "subject_line_noop": "Đừng chép", + "text": "Văn bản", + "theme": "Theme", + "theme_help": "Dùng mã màu hex (#rrggbb) để tự chế theme.", + "theme_help_v2_1": "Bạn cũng có thể xóa hết màu thành phần và làm theme trong suốt, chọn nút \"Xóa hết\".", + "theme_help_v2_2": "Các biểu tượng bên dưới các mục có độ tương phản nền/văn bản, hãy rê chuột qua để biết thông tin chi tiết. Xin lưu ý rằng, khi sử dụng các độ tương phản trong suốt có thể khiến đọc chữ không ra.", + "token": "Token", + "tooltipRadius": "Tooltips/alerts", + "type_domains_to_mute": "Tìm máy chủ để ẩn", + "upload_a_photo": "Tải ảnh lên", + "useStreamingApi": "Nhận tút và thông báo theo thời gian thực", + "useStreamingApiWarning": "(Tính năng thử nghiệm, không đề xuất sử dụng)", + "use_contain_fit": "Không cắt ảnh đính kèm trong bản xem trước", + "use_one_click_nsfw": "Xem nội dung nhạy cảm bằng cách nhấn vào", + "user_mutes": "Người dùng", + "user_settings": "Thiết lập người dùng", + "valid_until": "Có giá trị tới", + "values": { + "false": "không", + "true": "có" + }, + "version": { + "backend_version": "Backend", + "frontend_version": "Frontend", + "title": "Phiên bản" + }, + "virtual_scrolling": "Render bảng tin", + "word_filter": "Bộ lọc từ ngữ" + }, + "status": { + "bookmark": "Lưu", + "copy_link": "Sao chép URL", + "delete": "Xóa tút", + "delete_confirm": "Bạn có chắc chắn muốn xóa tút này?", + "expand": "Xem nguyên văn", + "external_source": "Nguồn bên ngoài", + "favorites": "Thích", + "hide_content": "Ẩn nội dung", + "hide_full_subject": "Ẩn tiêu đề", + "mentions": "Lượt nhắc", + "mute_conversation": "Không quan tâm nữa", + "nsfw": "Nhạy cảm", + "pin": "Ghim trên trang cá nhân", + "pinned": "Tút được ghim", + "plus_more": "+{number} nhiều hơn", + "repeats": "Chia sẻ", + "replies_list": "Những trả lời:", + "reply_to": "Trả lời", + "show_content": "Hiện nội dung", + "show_full_subject": "Hiện đầy đủ tiêu đề", + "status_deleted": "Tút này đã bị xóa", + "status_unavailable": "Không tìm thấy tút", + "thread_muted": "Đã ẩn chủ đề", + "thread_muted_and_words": ", có từ:", + "unbookmark": "Bỏ lưu", + "unmute_conversation": "Quan tâm", + "unpin": "Bỏ ghim trên trang cá nhân", + "you": "(Bạn)" + }, + "time": { + "in_future": "lúc {0}", + "in_past": "{0} trước", + "now": "vừa xong", + "now_short": "vừa xong", + "unit": { + "days": "{0} ngày", + "days_short": "{0} ngày", + "hours": "{0} giờ", + "hours_short": "{0} giờ", + "minutes": "{0} phút", + "minutes_short": "{0} phút", + "months": "{0} tháng", + "months_short": "{0} tháng", + "seconds": "{0} giây", + "seconds_short": "{0}s", + "weeks": "{0} tuần", + "weeks_short": "{0} tuần", + "years": "{0} năm", + "years_short": "{0} năm" + } + }, + "timeline": { + "collapse": "Thu gọn", + "conversation": "Thảo luận", + "error": "Lỗi khi nạp bảng tin {0}", + "load_older": "Xem tút cũ hơn", + "no_more_statuses": "Không còn tút nào", + "no_retweet_hint": "Không thể chia sẻ tin nhắn và những tút riêng tư", + "no_statuses": "Trống trơn!", + "reload": "Tải lại", + "repeated": "chia sẻ", + "show_new": "Hiện mới", + "socket_broke": "Mất kết nối thời gian thực: CloseEvent {0}", + "socket_reconnected": "Thiết lập kết nối thời gian thực", + "up_to_date": "Đã tải những tút mới nhất" + }, + "tool_tip": { + "accept_follow_request": "Phê duyệt yêu cầu theo dõi", + "add_reaction": "Thêm tương tác", + "bookmark": "Lưu", + "favorite": "Thích", + "media_upload": "Tải lên media", + "reject_follow_request": "Từ chối yêu cầu theo dõi", + "repeat": "Chia sẻ", + "reply": "Trả lời", + "user_settings": "Thiết lập người dùng" + }, + "upload": { + "error": { + "base": "Tải lên thất bại.", + "default": "Hãy thử lại sau", + "file_too_big": "Tập tin quá lớn [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "Tải lên thất bại: {0}" + }, + "file_size_units": { + "B": "byte", + "GiB": "GB", + "KiB": "KB", + "MiB": "MB", + "TiB": "TB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "Xác thực người dùng", + "deactivate_account": "Vô hiệu hóa người dùng", + "delete_account": "Xóa người dùng", + "delete_user": "Xóa người dùng", + "disable_any_subscription": "Không cho phép theo dõi bất cứ ai", + "disable_remote_subscription": "Không cho phép theo dõi từ máy chủ khác", + "force_nsfw": "Đánh dấu tất cả tút là nhạy cảm", + "force_unlisted": "Đánh dấu tất cả tút là hạn chế", + "grant_admin": "Chỉ định Quản trị viên", + "grant_moderator": "Chỉ định Kiểm duyệt viên", + "moderation": "Kiểm duyệt", + "quarantine": "Không cho phép tút liên hợp", + "revoke_admin": "Gỡ bỏ Quản trị viên", + "revoke_moderator": "Gỡ bỏ Quản trị viên", + "sandbox": "Đánh dấu tất cả tút là riêng tư", + "strip_media": "Gỡ bỏ media trong tút" + }, + "approve": "Chấp nhận", + "block": "Chặn", + "block_progress": "Đang chặn…", + "blocked": "Đã chặn!", + "bot": "Bot", + "deny": "Từ chối", + "edit_profile": "Chỉnh sửa trang cá nhân", + "favorites": "Thích", + "follow": "Theo dõi", + "follow_progress": "Đang yêu cầu…", + "follow_sent": "Đã gửi yêu cầu!", + "follow_unfollow": "Ngưng theo dõi", + "followees": "Đang theo dõi", + "followers": "Người theo dõi", + "following": "Đang theo dõi!", + "follows_you": "Theo dõi bạn!", + "hidden": "Ẩn", + "hide_repeats": "Ẩn lượt chia sẻ", + "highlight": { + "disabled": "Không nổi bật", + "side": "Sọc bên", + "solid": "Nền 1 màu", + "striped": "Nền 2 màu" + }, + "its_you": "Đó là bạn!", + "media": "Media", + "mention": "Lượt nhắc", + "message": "Tin nhắn", + "mute": "Ẩn", + "mute_progress": "Đang ẩn…", + "muted": "Đã ẩn", + "per_day": "tút mỗi ngày", + "remote_follow": "Theo dõi từ xa", + "report": "Báo cáo", + "show_repeats": "Hiện lượt chia sẻ", + "statuses": "Tút", + "subscribe": "Đăng ký", + "unblock": "Bỏ chặn", + "unblock_progress": "Đang bỏ chặn…", + "unmute": "Bỏ ẩn", + "unmute_progress": "Đang bỏ ẩn…", + "unsubscribe": "Hủy đăng ký" + }, + "user_profile": { + "profile_does_not_exist": "Xin lỗi, tài khoản này không tồn tại.", + "profile_loading_error": "Xin lỗi, có lỗi xảy ra khi xem trang cá nhân này.", + "timeline_title": "Bảng tin người dùng" + }, + "user_reporting": { + "add_comment_description": "Hãy cho quản trị viên biết lý do vì sao bạn báo cáo người này:", + "additional_comments": "Ghi chú", + "forward_description": "Người này thuộc máy chủ khác. Gửi một báo cáo ẩn danh tới máy chủ đó?", + "forward_to": "Chuyển cho {0}", + "generic_error": "Có lỗi xảy ra khi xử lý yêu cầu của bạn.", + "submit": "Gửi", + "title": "Báo cáo {0}" + }, + "who_to_follow": { + "more": "Nhiều hơn nữa", + "who_to_follow": "Những người dùng nổi bật" } - }, - "timeline": { - "collapse": "Thu gọn", - "error": "Lỗi khi nạp bảng tin {0}", - "load_older": "Xem tút cũ hơn", - "repeated": "chia sẻ", - "show_new": "Hiện mới", - "reload": "Tải lại", - "up_to_date": "Đã tải những tút mới nhất", - "no_more_statuses": "Không còn tút nào", - "no_statuses": "Trống trơn!", - "socket_reconnected": "Thiết lập kết nối thời gian thực", - "conversation": "Thảo luận", - "no_retweet_hint": "Không thể chia sẻ tin nhắn và những tút riêng tư", - "socket_broke": "Mất kết nối thời gian thực: CloseEvent {0}" - }, - "status": { - "repeats": "Chia sẻ", - "delete": "Xóa tút", - "unpin": "Bỏ ghim trên trang cá nhân", - "pin": "Ghim trên trang cá nhân", - "pinned": "Tút được ghim", - "bookmark": "Lưu", - "unbookmark": "Bỏ lưu", - "reply_to": "Trả lời", - "replies_list": "Những trả lời:", - "mute_conversation": "Không quan tâm nữa", - "unmute_conversation": "Quan tâm", - "status_unavailable": "Không tìm thấy tút", - "copy_link": "Sao chép URL", - "external_source": "Nguồn bên ngoài", - "thread_muted": "Đã ẩn chủ đề", - "thread_muted_and_words": ", có từ:", - "hide_full_subject": "Ẩn tiêu đề", - "show_content": "Hiện nội dung", - "hide_content": "Ẩn nội dung", - "status_deleted": "Tút này đã bị xóa", - "nsfw": "Nhạy cảm", - "expand": "Xem nguyên văn", - "favorites": "Thích", - "delete_confirm": "Bạn có chắc chắn muốn xóa tút này?", - "show_full_subject": "Hiện đầy đủ tiêu đề", - "you": "(Bạn)", - "mentions": "Lượt nhắc", - "plus_more": "+{number} nhiều hơn" - }, - "user_card": { - "approve": "Chấp nhận", - "block": "Chặn", - "blocked": "Đã chặn!", - "deny": "Từ chối", - "edit_profile": "Chỉnh sửa trang cá nhân", - "favorites": "Thích", - "follow": "Theo dõi", - "follow_progress": "Đang yêu cầu…", - "follow_again": "Gửi lại yêu cầu?", - "follow_unfollow": "Ngưng theo dõi", - "followees": "Đang theo dõi", - "followers": "Người theo dõi", - "following": "Đang theo dõi!", - "follows_you": "Theo dõi bạn!", - "hidden": "Ẩn", - "media": "Media", - "mention": "Lượt nhắc", - "message": "Tin nhắn", - "mute": "Ẩn", - "muted": "Đã ẩn", - "per_day": "tút mỗi ngày", - "remote_follow": "Theo dõi từ xa", - "report": "Báo cáo", - "statuses": "Tút", - "subscribe": "Đăng ký", - "unsubscribe": "Hủy đăng ký", - "unblock": "Bỏ chặn", - "unblock_progress": "Đang bỏ chặn…", - "block_progress": "Đang chặn…", - "unmute": "Bỏ ẩn", - "unmute_progress": "Đang bỏ ẩn…", - "mute_progress": "Đang ẩn…", - "hide_repeats": "Ẩn lượt chia sẻ", - "show_repeats": "Hiện lượt chia sẻ", - "bot": "Bot", - "admin_menu": { - "moderation": "Kiểm duyệt", - "grant_admin": "Chỉ định Quản trị viên", - "revoke_admin": "Gỡ bỏ Quản trị viên", - "grant_moderator": "Chỉ định Kiểm duyệt viên", - "activate_account": "Xác thực người dùng", - "deactivate_account": "Vô hiệu hóa người dùng", - "delete_account": "Xóa người dùng", - "force_nsfw": "Đánh dấu tất cả tút là nhạy cảm", - "strip_media": "Gỡ bỏ media trong tút", - "sandbox": "Đánh dấu tất cả tút là riêng tư", - "disable_remote_subscription": "Không cho phép theo dõi từ máy chủ khác", - "disable_any_subscription": "Không cho phép theo dõi bất cứ ai", - "quarantine": "Không cho phép tút liên hợp", - "delete_user": "Xóa người dùng", - "revoke_moderator": "Gỡ bỏ Quản trị viên", - "force_unlisted": "Đánh dấu tất cả tút là hạn chế" - }, - "highlight": { - "disabled": "Không nổi bật", - "solid": "Nền 1 màu", - "striped": "Nền 2 màu", - "side": "Sọc bên" - }, - "follow_sent": "Đã gửi yêu cầu!", - "its_you": "Đó là bạn!" - }, - "user_profile": { - "timeline_title": "Bảng tin người dùng", - "profile_does_not_exist": "Xin lỗi, tài khoản này không tồn tại.", - "profile_loading_error": "Xin lỗi, có lỗi xảy ra khi xem trang cá nhân này." - }, - "user_reporting": { - "title": "Báo cáo {0}", - "additional_comments": "Ghi chú", - "forward_description": "Người này thuộc máy chủ khác. Gửi một báo cáo ẩn danh tới máy chủ đó?", - "forward_to": "Chuyển cho {0}", - "submit": "Gửi", - "generic_error": "Có lỗi xảy ra khi xử lý yêu cầu của bạn.", - "add_comment_description": "Hãy cho quản trị viên biết lý do vì sao bạn báo cáo người này:" - }, - "who_to_follow": { - "more": "Nhiều hơn nữa", - "who_to_follow": "Những người dùng nổi bật" - }, - "tool_tip": { - "media_upload": "Tải lên media", - "repeat": "Chia sẻ", - "reply": "Trả lời", - "favorite": "Thích", - "add_reaction": "Thêm tương tác", - "accept_follow_request": "Phê duyệt yêu cầu theo dõi", - "reject_follow_request": "Từ chối yêu cầu theo dõi", - "bookmark": "Lưu", - "user_settings": "Thiết lập người dùng" - }, - "upload": { - "error": { - "base": "Tải lên thất bại.", - "message": "Tải lên thất bại: {0}", - "file_too_big": "Tập tin quá lớn [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "Hãy thử lại sau" - }, - "file_size_units": { - "KiB": "KB", - "MiB": "MB", - "GiB": "GB", - "B": "byte", - "TiB": "TB" - } - }, - "search": { - "people": "Người", - "hashtags": "Hashtag", - "person_talking": "{count} người đang trò chuyện", - "people_talking": "{count} người đang trò chuyện", - "no_results": "Không tìm thấy" - }, - "password_reset": { - "forgot_password": "Quên mật khẩu", - "password_reset": "Đổi mật khẩu", - "placeholder": "Email hoặc tên người dùng", - "check_email": "Kiểm tra email của bạn.", - "return_home": "Quay lại Pleroma", - "too_many_requests": "Bạn đã vượt giới hạn cho phép, hãy thử lại sau.", - "password_reset_disabled": "Reset mật khẩu bị tắt. Hãy liên hệ quản trị viên máy chủ.", - "password_reset_required": "Bạn phải đổi mật khẩu để đăng nhập.", - "instruction": "Nhập email hoặc tên người dùng. Chúng tôi sẽ gửi email reset mật khẩu cho bạn.", - "password_reset_required_but_mailer_is_disabled": "Bạn cần phải đổi mật khẩu, nhưng tính năng bị tắt. Hãy liên hệ quản trị viên máy chủ." - }, - "chats": { - "you": "Bạn:", - "message_user": "Nhắn tin {nickname}", - "delete": "Xóa", - "chats": "Chat", - "new": "Chat mới", - "empty_message_error": "Không thể gửi tin nhắn trống", - "more": "Nhiều hơn", - "delete_confirm": "Bạn có chắc chắn muốn xóa tin nhắn này?", - "error_loading_chat": "Có vấn đề khi tải giao diện chat.", - "error_sending_message": "Có vấn đề khi gửi tin nhắn.", - "empty_chat_list_placeholder": "Bạn không có tin nhắn. Hãy bắt đầu nhắn cho ai đó!" - }, - "file_type": { - "audio": "Âm thanh", - "video": "Video", - "image": "Hình ảnh", - "file": "Tập tin" - }, - "display_date": { - "today": "Hôm nay" - } -} +} \ No newline at end of file diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 20b6350b..570c79c3 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -1,878 +1,847 @@ { - "chat": { - "title": "聊天" - }, - "exporter": { - "export": "导出", - "processing": "正在处理,稍后会提示您下载文件" - }, - "features_panel": { - "chat": "聊天", - "gopher": "Gopher", - "media_proxy": "媒体代理", - "scope_options": "可见范围设置", - "text_limit": "文字数量限制", - "title": "功能", - "who_to_follow": "推荐关注", - "pleroma_chat_messages": "Pleroma 聊天", - "upload_limit": "上传限制" - }, - "finder": { - "error_fetching_user": "获取用户时发生错误", - "find_user": "寻找用户" - }, - "general": { - "apply": "应用", - "submit": "提交", - "more": "更多", - "generic_error": "发生了一个错误", - "optional": "可选", - "show_more": "展开", - "show_less": "收起", - "cancel": "取消", - "disable": "禁用", - "enable": "启用", - "confirm": "确认", - "verify": "验证", - "dismiss": "忽略", - "peek": "预览", - "close": "关闭", - "retry": "重试", - "error_retry": "请重试", - "loading": "载入中…", - "role": { - "moderator": "监察员", - "admin": "管理员" - }, - "flash_content": "点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。", - "flash_security": "注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。", - "flash_fail": "Flash 内容加载失败,请在控制台查看详情。" - }, - "image_cropper": { - "crop_picture": "裁剪图片", - "save": "保存", - "save_without_cropping": "保存未经裁剪的图片", - "cancel": "取消" - }, - "importer": { - "submit": "提交", - "success": "导入成功。", - "error": "导入此文件时出现一个错误。" - }, - "login": { - "login": "登录", - "description": "用 OAuth 登录", - "logout": "登出", - "password": "密码", - "placeholder": "例如:lain", - "register": "注册", - "username": "用户名", - "hint": "登录后加入讨论", - "authentication_code": "验证码", - "enter_recovery_code": "输入一个恢复码", - "enter_two_factor_code": "输入一个双重因素验证码", - "recovery_code": "恢复码", - "heading": { - "totp": "双重因素验证", - "recovery": "双重因素恢复" - } - }, - "media_modal": { - "previous": "往前", - "next": "往后" - }, - "nav": { - "about": "关于", - "back": "后退", - "chat": "本站聊天", - "friend_requests": "关注请求", - "mentions": "提及", - "interactions": "互动", - "dms": "私信", - "public_tl": "公共时间线", - "timeline": "时间线", - "twkn": "已知网络", - "user_search": "用户搜索", - "search": "搜索", - "who_to_follow": "推荐关注", - "preferences": "偏好设置", - "administration": "管理员", - "chats": "聊天", - "timelines": "时间线", - "bookmarks": "书签", - "home_timeline": "主页时间线" - }, - "notifications": { - "broken_favorite": "未知的状态,正在搜索中…", - "favorited_you": "喜欢了你的状态", - "followed_you": "关注了你", - "load_older": "加载更早的通知", - "notifications": "通知", - "read": "已阅!", - "repeated_you": "转发了你的状态", - "no_more_notifications": "没有更多的通知", - "reacted_with": "作出了 {0} 的反应", - "migrated_to": "迁移到了", - "follow_request": "想要关注你", - "error": "取得通知时发生错误:{0}" - }, - "polls": { - "add_poll": "增加投票", - "add_option": "增加选项", - "option": "选项", - "votes": "投票", - "vote": "投票", - "type": "投票类型", - "single_choice": "单选", - "multiple_choices": "多选", - "expiry": "投票期限", - "expires_in": "投票于 {0} 后结束", - "expired": "投票 {0} 前已结束", - "not_enough_options": "投票的选项太少", - "votes_count": "{count} 票 | {count} 票", - "people_voted_count": "{count} 人已投票 | {count} 人已投票" - }, - "stickers": { - "add_sticker": "添加贴纸" - }, - "interactions": { - "favs_repeats": "转发和喜欢", - "follows": "新的关注者", - "load_older": "加载更早的互动", - "moves": "用户迁移" - }, - "post_status": { - "new_status": "发布新状态", - "account_not_locked_warning": "你的帐号没有 {0}。任何人都可以关注你并浏览你的上锁内容。", - "account_not_locked_warning_link": "上锁", - "attachments_sensitive": "标记附件为敏感内容", - "content_type": { - "text/plain": "纯文本", - "text/html": "HTML", - "text/markdown": "Markdown", - "text/bbcode": "BBCode" - }, - "content_warning": "主题(可选)", - "default": "刚刚抵达上海。", - "direct_warning_to_all": "本条内容只有被提及的用户能够看到。", - "direct_warning_to_first_only": "本条内容只有被在消息开始处提及的用户能够看到。", - "posting": "发送中", - "scope_notice": { - "public": "本条内容可以被所有人看到", - "private": "关注你的人才能看到本条内容", - "unlisted": "本条内容既不在公共时间线,也不会在所有已知网络上可见" - }, - "scope": { - "direct": "私信 - 只发送给被提及的用户", - "private": "仅关注者 - 只有关注了你的人能看到", - "public": "公共 - 发送到公共时间轴", - "unlisted": "不公开 - 不会发送到公共时间轴" - }, - "preview_empty": "空的", - "preview": "预览", - "media_description": "媒体描述", - "media_description_error": "更新媒体失败,请重试", - "empty_status_error": "不能发布没有内容、没有附件的发文", - "post": "发送" - }, - "registration": { - "bio": "简介", - "email": "电子邮箱", - "fullname": "显示名称", - "password_confirm": "确认密码", - "registration": "注册", - "token": "邀请码", - "captcha": "CAPTCHA", - "new_captcha": "点击图片获取新的验证码", - "username_placeholder": "例如:lain", - "fullname_placeholder": "例如:岩仓玲音", - "bio_placeholder": "例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。", - "validations": { - "username_required": "不能留空", - "fullname_required": "不能留空", - "email_required": "不能留空", - "password_required": "不能留空", - "password_confirmation_required": "不能留空", - "password_confirmation_match": "密码不一致" - }, - "reason_placeholder": "此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。", - "reason": "注册理由", - "register": "注册" - }, - "selectable_list": { - "select_all": "选择全部" - }, - "settings": { - "app_name": "App 名称", - "security": "安全", - "enter_current_password_to_confirm": "输入您当前的密码来确认您的身份", - "mfa": { - "otp": "OTP", - "setup_otp": "设置 OTP", - "wait_pre_setup_otp": "预设 OTP", - "confirm_and_enable": "确认并启用 OTP", - "title": "双因素验证", - "generate_new_recovery_codes": "生成新的恢复码", - "warning_of_generate_new_codes": "当您生成新的恢复码时,您旧的恢复码将会失效。", - "recovery_codes": "恢复码。", - "waiting_a_recovery_codes": "正在接收备份码…", - "recovery_codes_warning": "抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。", - "authentication_methods": "身份验证方法", - "scan": { - "title": "扫一下", - "desc": "使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", - "secret_code": "密钥" - }, - "verify": { - "desc": "要启用双因素验证,请输入您的双因素验证 app 里的数字:" - } - }, - "attachmentRadius": "附件", - "attachments": "附件", - "avatar": "头像", - "avatarAltRadius": "头像(通知)", - "avatarRadius": "头像", - "background": "背景", - "bio": "简介", - "block_export": "屏蔽名单导出", - "block_export_button": "导出你的屏蔽名单到一个 csv 文件", - "block_import": "屏蔽名单导入", - "block_import_error": "导入屏蔽名单出错", - "blocks_imported": "屏蔽名单导入成功!需要一点时间来处理。", - "blocks_tab": "屏蔽", - "btnRadius": "按钮", - "cBlue": "蓝色(回复,关注)", - "cGreen": "绿色(转发)", - "cOrange": "橙色(喜欢)", - "cRed": "红色(取消)", - "change_password": "修改密码", - "change_password_error": "修改密码的时候出了点问题。", - "changed_password": "成功修改了密码!", - "collapse_subject": "折叠带主题的内容", - "composing": "写作", - "confirm_new_password": "确认新密码", - "current_avatar": "当前头像", - "current_password": "当前密码", - "current_profile_banner": "您当前的横幅图片", - "data_import_export_tab": "数据导入/导出", - "default_vis": "默认可见范围", - "delete_account": "删除账户", - "delete_account_description": "永久删除你的帐号和所有数据。", - "delete_account_error": "删除账户时发生错误,如果一直删除不了,请联系实例管理员。", - "delete_account_instructions": "在下面输入您的密码来确认删除账户。", - "avatar_size_instruction": "推荐的头像图片最小尺寸为 150x150 像素。", - "export_theme": "导出预置主题", - "filtering": "过滤器", - "filtering_explanation": "所有包含以下词汇的内容都会被隐藏,一行一个", - "follow_export": "导出关注", - "follow_export_button": "将关注导出成 csv 文件", - "follow_import": "导入关注", - "follow_import_error": "导入关注时错误", - "follows_imported": "关注已导入!尚需要一些时间来处理。", - "foreground": "前景", - "general": "通用", - "hide_attachments_in_convo": "在对话中隐藏附件", - "hide_attachments_in_tl": "在时间线上隐藏附件", - "hide_muted_posts": "不显示被隐藏的用户的帖子", - "max_thumbnails": "每个帖子最多能显示的缩略图数量", - "hide_isp": "隐藏实例独有的面板", - "preload_images": "预载图片", - "use_one_click_nsfw": "点击一次以打开工作场所不适宜(NSFW)的附件", - "hide_post_stats": "隐藏帖子的统计数据(例如:喜欢的次数)", - "hide_user_stats": "隐藏用户的统计数据(例如:关注者的数量)", - "hide_filtered_statuses": "隐藏过滤的状态", - "import_blocks_from_a_csv_file": "从 csv 文件中导入拉黑名单", - "import_followers_from_a_csv_file": "从 csv 文件中导入关注", - "import_theme": "导入预置主题", - "inputRadius": "输入框", - "checkboxRadius": "复选框", - "instance_default": "(默认:{value})", - "instance_default_simple": "(默认)", - "interface": "界面", - "interfaceLanguage": "界面语言", - "invalid_theme_imported": "您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。", - "limited_availability": "在您的浏览器中无法使用", - "links": "链接", - "lock_account_description": "您需要手动审核关注请求", - "loop_video": "循环视频", - "loop_video_silent_only": "只循环没有声音的视频(例如:Mastodon 里的“GIF”)", - "mutes_tab": "隐藏", - "play_videos_in_modal": "在弹出框内播放视频", - "use_contain_fit": "生成缩略图时不要裁剪附件", - "name": "名字", - "name_bio": "名字及简介", - "new_password": "新密码", - "notification_visibility": "要显示的通知类型", - "notification_visibility_follows": "关注", - "notification_visibility_likes": "喜欢", - "notification_visibility_mentions": "提及", - "notification_visibility_repeats": "转发", - "no_rich_text_description": "不显示富文本格式", - "no_blocks": "没有屏蔽", - "no_mutes": "没有隐藏", - "hide_follows_description": "不要显示我所关注的人", - "hide_followers_description": "不要显示关注我的人", - "show_admin_badge": "在我的个人资料中显示“管理员”徽章", - "show_moderator_badge": "在我的个人资料中显示“监察员”徽章", - "nsfw_clickthrough": "将不和谐附件和链接预览隐藏,点击才会显示", - "oauth_tokens": "OAuth令牌", - "token": "令牌", - "refresh_token": "刷新令牌", - "valid_until": "有效期至", - "revoke_token": "撤消", - "panelRadius": "面板", - "pause_on_unfocused": "在离开页面时暂停时间线推送", - "presets": "预置", - "profile_background": "个人背景图", - "profile_banner": "横幅图片", - "profile_tab": "个人资料", - "radii_help": "设置界面边缘的圆角 (单位:像素)", - "replies_in_timeline": "时间线中的回复", - "reply_visibility_all": "显示所有回复", - "reply_visibility_following": "只显示发送给我的回复/发送给我关注的用户的回复", - "reply_visibility_self": "只显示发送给我的回复", - "autohide_floating_post_button": "自动隐藏新帖子的按钮(移动设备)", - "saving_err": "保存设置时发生错误", - "saving_ok": "设置已保存", - "search_user_to_block": "搜索你想屏蔽的用户", - "search_user_to_mute": "搜索你想要隐藏的用户", - "security_tab": "安全", - "scope_copy": "回复时复制可见范围(私信中永远会复制)", - "minimal_scopes_mode": "使发文可见范围的选项最少化", - "set_new_avatar": "设置新头像", - "set_new_profile_background": "设置新的个人资料背景", - "set_new_profile_banner": "设置新的横幅图片", - "settings": "设置", - "subject_input_always_show": "总是显示主题框", - "subject_line_behavior": "回复时复制主题", - "subject_line_email": "类似电子邮件: \"re: 主题\"", - "subject_line_mastodon": "类似 mastodon: 与原主题相同", - "subject_line_noop": "不要复制", - "post_status_content_type": "发文状态内容类型", - "stop_gifs": "鼠标悬停时播放GIF", - "streaming": "滚动到顶部时自动推送新内容", - "text": "文本", - "theme": "主题", - "theme_help": "使用十六进制代码(#rrggbb)来设置主题颜色。", - "theme_help_v2_1": "您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。", - "theme_help_v2_2": "某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。", - "tooltipRadius": "提醒", - "upload_a_photo": "上传照片", - "user_settings": "用户设置", - "values": { - "false": "否", - "true": "是" - }, - "notifications": "通知", - "notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。", - "notification_blocks": "屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。", - "enable_web_push_notifications": "启用 web 推送通知", - "style": { - "switcher": { - "keep_color": "保留颜色", - "keep_shadows": "保留阴影", - "keep_opacity": "保留透明度", - "keep_roundness": "保留圆角", - "keep_fonts": "保留字体", - "save_load_hint": "\"保留\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。", - "reset": "重置", - "clear_all": "清除全部", - "clear_opacity": "清除透明度", - "load_theme": "加载主题", - "help": { - "upgraded_from_v2": "PleromaFE 已升级,主题会与您记忆中的不太一样。", - "older_version_imported": "您导入的文件来自旧版本的 FE。", - "future_version_imported": "您导入的文件来自更高版本的 FE。", - "v2_imported": "您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。", - "snapshot_source_mismatch": "版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。", - "migration_napshot_gone": "不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。", - "migration_snapshot_ok": "为保万无一失,加载了主题快照。您可以试着加载主题数据。", - "fe_downgraded": "PleromaFE 的版本回滚了。", - "fe_upgraded": "PleromaFE 的主题引擎随着版本更新升级了。", - "snapshot_missing": "在文件中没有主题快照,所以网站外观可能会与原来预想的不同。", - "snapshot_present": "主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。" + "about": { + "mrf": { + "federation": "联邦互通", + "keyword": { + "ftl_removal": "从“全部已知网络”时间线上移除", + "is_replaced_by": "→", + "keyword_policies": "关键词策略", + "reject": "拒绝", + "replace": "替换" + }, + "mrf_policies": "已启用的 MRF 策略", + "mrf_policies_desc": "MRF 策略会影响本实例的互通行为。以下策略已启用:", + "simple": { + "accept": "接受", + "accept_desc": "本实例只接收来自下列实例的消息:", + "ftl_removal": "从“已知网络”时间线上移除", + "ftl_removal_desc": "该实例在从“已知网络”时间线上移除了下列实例:", + "media_nsfw": "强制设置媒体为敏感内容", + "media_nsfw_desc": "本实例将来自以下实例的媒体内容强制设置为敏感内容:", + "media_removal": "移除媒体", + "media_removal_desc": "本实例移除来自以下实例的媒体内容:", + "quarantine": "隔离", + "quarantine_desc": "本实例向以下实例仅发送公开的帖子:", + "reject": "拒绝", + "reject_desc": "本实例不会接收来自下列实例的消息:", + "simple_policies": "对于特定实例的策略" + } }, - "use_source": "新版本", - "use_snapshot": "老版本", - "keep_as_is": "保持原状" - }, - "common": { - "color": "颜色", - "opacity": "透明度", - "contrast": { - "hint": "对比度是 {ratio}, 它 {level} {context}", - "level": { - "aa": "符合 AA 等级准则(最低)", - "aaa": "符合 AAA 等级准则(推荐)", - "bad": "不符合任何辅助功能指南" - }, - "context": { - "18pt": "大字文本 (18pt+)", - "text": "文本" - } + "staff": "管理人员" + }, + "chats": { + "chats": "聊天", + "delete": "删除", + "delete_confirm": "您确实要删除此消息吗?", + "empty_chat_list_placeholder": "您还没有任何聊天记录。开始聊天吧!", + "empty_message_error": "无法发布空消息", + "error_loading_chat": "加载聊天时出了点问题。", + "error_sending_message": "发送消息时出了点问题。", + "message_user": "发消息给 {nickname}", + "more": "更多", + "new": "新聊天", + "you": "你:" + }, + "display_date": { + "today": "今天" + }, + "domain_mute_card": { + "mute": "隐藏", + "mute_progress": "隐藏中…", + "unmute": "取消隐藏", + "unmute_progress": "正在取消隐藏…" + }, + "emoji": { + "add_emoji": "插入表情符号", + "custom": "自定义表情符号", + "emoji": "表情符号", + "keep_open": "选择器保持打开", + "load_all": "加载所有表情符号(共 {emojiAmount} 个)", + "load_all_hint": "最先加载的 {saneAmount} 表情符号,加载全部表情符号可能会带来性能问题。", + "search_emoji": "搜索表情符号", + "stickers": "贴纸", + "unicode": "Unicode 表情符号" + }, + "errors": { + "storage_unavailable": "Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。" + }, + "exporter": { + "export": "导出", + "processing": "正在处理,稍后会提示您下载文件" + }, + "features_panel": { + "media_proxy": "媒体代理", + "scope_options": "可见范围设置", + "text_limit": "文字数量限制", + "title": "功能", + "upload_limit": "上传限制", + "who_to_follow": "推荐关注" + }, + "file_type": { + "audio": "音频", + "file": "文件", + "image": "图片", + "video": "视频" + }, + "finder": { + "error_fetching_user": "获取用户时发生错误", + "find_user": "寻找用户" + }, + "general": { + "apply": "应用", + "cancel": "取消", + "close": "关闭", + "confirm": "确认", + "disable": "禁用", + "dismiss": "忽略", + "enable": "启用", + "error_retry": "请重试", + "flash_content": "点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。", + "flash_fail": "Flash 内容加载失败,请在控制台查看详情。", + "flash_security": "注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。", + "generic_error": "发生了一个错误", + "loading": "载入中…", + "more": "更多", + "optional": "可选", + "peek": "预览", + "retry": "重试", + "role": { + "admin": "管理员", + "moderator": "监察员" + }, + "show_less": "收起", + "show_more": "展开", + "submit": "提交", + "verify": "验证" + }, + "image_cropper": { + "cancel": "取消", + "crop_picture": "裁剪图片", + "save": "保存", + "save_without_cropping": "保存未经裁剪的图片" + }, + "importer": { + "error": "导入此文件时出现一个错误。", + "submit": "提交", + "success": "导入成功。" + }, + "interactions": { + "favs_repeats": "转发和喜欢", + "follows": "新的关注者", + "load_older": "加载更早的互动", + "moves": "用户迁移" + }, + "login": { + "authentication_code": "验证码", + "description": "用 OAuth 登录", + "enter_recovery_code": "输入一个恢复码", + "enter_two_factor_code": "输入一个双重因素验证码", + "heading": { + "recovery": "双重因素恢复", + "totp": "双重因素验证" + }, + "hint": "登录后加入讨论", + "login": "登录", + "logout": "登出", + "password": "密码", + "placeholder": "例如:lain", + "recovery_code": "恢复码", + "register": "注册", + "username": "用户名" + }, + "media_modal": { + "next": "往后", + "previous": "往前" + }, + "nav": { + "about": "关于", + "administration": "管理员", + "back": "后退", + "bookmarks": "书签", + "chats": "聊天", + "dms": "私信", + "friend_requests": "关注请求", + "home_timeline": "主页时间线", + "interactions": "互动", + "mentions": "提及", + "preferences": "偏好设置", + "public_tl": "公共时间线", + "search": "搜索", + "timeline": "时间线", + "timelines": "时间线", + "twkn": "已知网络", + "user_search": "用户搜索", + "who_to_follow": "推荐关注" + }, + "notifications": { + "broken_favorite": "未知的状态,正在搜索中…", + "error": "取得通知时发生错误:{0}", + "favorited_you": "喜欢了你的状态", + "follow_request": "想要关注你", + "followed_you": "关注了你", + "load_older": "加载更早的通知", + "migrated_to": "迁移到了", + "no_more_notifications": "没有更多的通知", + "notifications": "通知", + "reacted_with": "作出了 {0} 的反应", + "read": "已阅!", + "repeated_you": "转发了你的状态" + }, + "password_reset": { + "check_email": "检查您的邮箱,会有一个链接用于重置密码。", + "forgot_password": "忘记密码了?", + "instruction": "输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。", + "password_reset": "重置密码", + "password_reset_disabled": "密码重置已被禁用。请联系您的实例管理员。", + "password_reset_required": "您必须重置密码才能登陆。", + "password_reset_required_but_mailer_is_disabled": "您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。", + "placeholder": "您的电邮地址或者用户名", + "return_home": "回到首页", + "too_many_requests": "您达到了尝试次数的上限,请稍后再试。" + }, + "polls": { + "add_option": "增加选项", + "add_poll": "增加投票", + "expired": "投票 {0} 前已结束", + "expires_in": "投票于 {0} 后结束", + "expiry": "投票期限", + "multiple_choices": "多选", + "not_enough_options": "投票的选项太少", + "option": "选项", + "people_voted_count": "{count} 人已投票 | {count} 人已投票", + "single_choice": "单选", + "type": "投票类型", + "vote": "投票", + "votes": "投票", + "votes_count": "{count} 票 | {count} 票" + }, + "post_status": { + "account_not_locked_warning": "你的帐号没有 {0}。任何人都可以关注你并浏览你的上锁内容。", + "account_not_locked_warning_link": "上锁", + "attachments_sensitive": "标记附件为敏感内容", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "纯文本" + }, + "content_warning": "主题(可选)", + "default": "刚刚抵达上海。", + "direct_warning_to_all": "本条内容只有被提及的用户能够看到。", + "direct_warning_to_first_only": "本条内容只有被在消息开始处提及的用户能够看到。", + "empty_status_error": "不能发布没有内容、没有附件的发文", + "media_description": "媒体描述", + "media_description_error": "更新媒体失败,请重试", + "new_status": "发布新状态", + "post": "发送", + "posting": "发送中", + "preview": "预览", + "preview_empty": "空的", + "scope": { + "direct": "私信 - 只发送给被提及的用户", + "private": "仅关注者 - 只有关注了你的人能看到", + "public": "公共 - 发送到公共时间轴", + "unlisted": "不公开 - 不会发送到公共时间轴" + }, + "scope_notice": { + "private": "关注你的人才能看到本条内容", + "public": "本条内容可以被所有人看到", + "unlisted": "本条内容既不在公共时间线,也不会在所有已知网络上可见" } - }, - "common_colors": { - "_tab_label": "常规", - "main": "常用颜色", - "foreground_hint": "点击”高级“ 标签进行细致的控制", - "rgbo": "图标,强调,徽章" - }, - "advanced_colors": { - "_tab_label": "高级", - "alert": "提醒或警告背景色", - "alert_error": "错误", - "badge": "徽章背景", - "badge_notification": "通知", - "panel_header": "面板标题", - "top_bar": "顶栏", - "borders": "边框", - "buttons": "按钮", - "inputs": "输入框", - "faint_text": "灰度文字", - "chat": { - "border": "边框", - "outgoing": "发出的", - "incoming": "收到的" - }, - "disabled": "禁用的", - "pressed": "压下的", - "highlight": "强调元素", - "selectedMenu": "选中的菜单项", - "selectedPost": "选中的发布内容", - "icons": "图标", - "poll": "投票统计图", - "popover": "提示框,菜单,弹出框", - "post": "发布内容/用户简介", - "alert_neutral": "中性", - "alert_warning": "警告", - "tabs": "标签页", - "underlay": "底衬", - "toggled": "按下的", - "wallpaper": "壁纸" - }, - "radii": { - "_tab_label": "圆角" - }, - "shadows": { - "_tab_label": "阴影和照明", - "component": "组件", - "override": "覆盖", - "shadow_id": "阴影 #{value}", - "blur": "模糊", - "spread": "扩散", - "inset": "内阴影", - "hint": "对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。", - "filter_hint": { - "always_drop_shadow": "警告,此阴影设置会总是使用 {0} ,如果浏览器支持的话。", - "drop_shadow_syntax": "{0} 不支持参数 {1} 和关键词 {2} 。", - "avatar_inset": "请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。", - "spread_zero": "阴影的扩散 > 0 会同设置成零一样", - "inset_classic": "内阴影会使用 {0}" - }, - "components": { - "panel": "面板", - "panelHeader": "面板标题", - "topBar": "顶栏", - "avatar": "用户头像(在个人资料栏)", - "avatarStatus": "用户头像(在帖子显示栏)", - "popup": "弹窗与工具提示", - "button": "按钮", - "buttonHover": "按钮(悬停)", - "buttonPressed": "按钮(压下)", - "buttonPressedHover": "按钮(压下和悬停)", - "input": "输入框" - }, - "hintV3": "对于阴影,您还可以使用 {0} 表示法来使用其它颜色插槽。" - }, - "fonts": { - "_tab_label": "字体", - "help": "为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。", - "components": { - "interface": "界面", - "input": "输入框", - "post": "发帖文字", - "postCode": "帖子中使用等间距文字(富文本)" - }, - "family": "字体名称", - "size": "大小 (in px)", - "weight": "字重 (粗体)", - "custom": "自选" - }, - "preview": { - "header": "预览", - "content": "内容", - "error": "错误示例", - "button": "按钮", - "text": "有堆 {0} 和 {1}", - "mono": "monospace 内容", - "input": "刚刚抵达上海。", - "faint_link": "帮助手册", - "fine_print": "阅读我们的 {0} ,然而什么也学不到!", - "header_faint": "这很正常", - "checkbox": "我已经浏览了条款及细则", - "link": "一个棒棒的小小链接" - } }, - "version": { - "title": "版本", - "backend_version": "后端版本", - "frontend_version": "前端版本" + "registration": { + "bio": "简介", + "bio_placeholder": "例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。", + "captcha": "CAPTCHA", + "email": "电子邮箱", + "fullname": "显示名称", + "fullname_placeholder": "例如:岩仓玲音", + "new_captcha": "点击图片获取新的验证码", + "password_confirm": "确认密码", + "reason": "注册理由", + "reason_placeholder": "此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。", + "register": "注册", + "registration": "注册", + "token": "邀请码", + "username_placeholder": "例如:lain", + "validations": { + "email_required": "不能留空", + "fullname_required": "不能留空", + "password_confirmation_match": "密码不一致", + "password_confirmation_required": "不能留空", + "password_required": "不能留空", + "username_required": "不能留空" + } }, - "notification_setting_filters": "过滤器", - "domain_mutes": "域名", - "changed_email": "邮箱修改成功!", - "change_email_error": "修改您的电子邮箱时发生错误。", - "change_email": "修改电子邮箱", - "allow_following_move": "正在关注的账号迁移时自动重新关注", - "notification_setting_privacy_option": "在通知推送中隐藏发送者和内容", - "notification_setting_privacy": "隐私", - "hide_follows_count_description": "不显示关注数", - "notification_visibility_emoji_reactions": "互动", - "notification_visibility_moves": "用户迁移", - "new_email": "新邮箱", - "emoji_reactions_on_timeline": "在时间线上显示表情符号互动", - "notification_setting_hide_notification_contents": "隐藏推送通知中的发送者与内容信息", - "notification_setting_block_from_strangers": "屏蔽来自你没有关注的用户的通知", - "type_domains_to_mute": "搜索需要隐藏的域名", - "useStreamingApi": "实时接收帖子和通知", - "user_mutes": "用户", - "reset_background_confirm": "您确定要重置背景图吗?", - "reset_banner_confirm": "您确定要重置横幅图片吗?", - "reset_avatar_confirm": "您确定要重置头像吗?", - "reset_profile_banner": "重置横幅图片", - "reset_profile_background": "重置个人背景图", - "reset_avatar": "重置头像", - "hide_followers_count_description": "不显示关注者数量", - "profile_fields": { - "value": "内容", - "name": "标签", - "add_field": "添加字段", - "label": "个人资料元数据" + "remote_user_resolver": { + "error": "未找到。", + "remote_user_resolver": "远程用户解析器", + "searching_for": "搜索" }, - "accent": "强调色", - "pad_emoji": "从表情符号选择器插入表情符号时,在表情两侧插入空格", - "discoverable": "允许通过搜索检索等服务找到此账号", - "mutes_and_blocks": "隐藏与屏蔽", - "bot": "这是一个机器人账号", - "fun": "趣味", - "useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些帖子)", - "chatMessageRadius": "聊天消息", - "greentext": "Meme 箭头", - "virtual_scrolling": "优化时间线渲染", - "import_mutes_from_a_csv_file": "从 csv 文件导入隐藏名单", - "mutes_imported": "隐藏名单导入成功!处理它们将需要一段时间。", - "mute_import_error": "导入隐藏名单出错", - "mute_import": "隐藏名单导入", - "mute_export_button": "导出你的隐藏名单到一个 csv 文件", - "mute_export": "隐藏名单导出", - "hide_wallpaper": "隐藏实例壁纸", - "setting_changed": "与默认设置不同", - "more_settings": "更多设置", - "sensitive_by_default": "默认标记发文为敏感内容", - "reply_visibility_self_short": "只显示对我本人的回复", - "reply_visibility_following_short": "显示对我关注的人的回复", - "hide_all_muted_posts": "不显示已隐藏的发文", - "hide_media_previews": "隐藏媒体预览", - "word_filter": "词语过滤", - "save": "保存更改", - "file_export_import": { - "errors": { - "file_slightly_new": "文件的小版本不同,有些设置可能无法加载", - "file_too_old": "不兼容的主版本:{fileMajor},文件版本过旧,不受支持(最小设置版本 {feMajor})", - "file_too_new": "不兼容的主版本:{fileMajor},此 PleromaFE(设置版本 {feMajor})过旧,无法处理", - "invalid_file": "所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。" - }, - "restore_settings": "从文件恢复设置", - "backup_settings_theme": "备份设置和主题到文件", - "backup_settings": "备份设置到文件", - "backup_restore": "设置备份" + "search": { + "hashtags": "话题标签", + "no_results": "没有搜索结果", + "people": "人", + "people_talking": "{count} 人正在讨论", + "person_talking": "{count} 人正在讨论" }, - "right_sidebar": "在右侧显示侧边栏", - "hide_shoutbox": "隐藏实例留言板" - }, - "time": { - "in_future": "还有 {0}", - "in_past": "{0} 之前", - "now": "刚刚", - "now_short": "刚刚", - "unit": { - "day": "{0} 天", - "days": "{0} 天", - "day_short": "{0}d", - "days_short": "{0}d", - "hour": "{0} 小时", - "hours": "{0} 小时", - "hour_short": "{0}h", - "hours_short": "{0}h", - "minute": "{0} 分钟", - "minutes": "{0} 分钟", - "minute_short": "{0}min", - "minutes_short": "{0}min", - "month": "{0} 月", - "months": "{0} 月", - "month_short": "{0}mo", - "months_short": "{0}mo", - "second": "{0} 秒", - "seconds": "{0} 秒", - "second_short": "{0}s", - "seconds_short": "{0}s", - "week": "{0} 周", - "weeks": "{0} 周", - "week_short": "{0}w", - "weeks_short": "{0}w", - "year": "{0} 年", - "years": "{0} 年", - "year_short": "{0}y", - "years_short": "{0}y" + "selectable_list": { + "select_all": "选择全部" + }, + "settings": { + "accent": "强调色", + "allow_following_move": "正在关注的账号迁移时自动重新关注", + "app_name": "App 名称", + "attachmentRadius": "附件", + "attachments": "附件", + "autohide_floating_post_button": "自动隐藏新帖子的按钮(移动设备)", + "avatar": "头像", + "avatarAltRadius": "头像(通知)", + "avatarRadius": "头像", + "avatar_size_instruction": "推荐的头像图片最小尺寸为 150x150 像素。", + "background": "背景", + "bio": "简介", + "block_export": "屏蔽名单导出", + "block_export_button": "导出你的屏蔽名单到一个 csv 文件", + "block_import": "屏蔽名单导入", + "block_import_error": "导入屏蔽名单出错", + "blocks_imported": "屏蔽名单导入成功!需要一点时间来处理。", + "blocks_tab": "屏蔽", + "bot": "这是一个机器人账号", + "btnRadius": "按钮", + "cBlue": "蓝色(回复,关注)", + "cGreen": "绿色(转发)", + "cOrange": "橙色(喜欢)", + "cRed": "红色(取消)", + "change_email": "修改电子邮箱", + "change_email_error": "修改您的电子邮箱时发生错误。", + "change_password": "修改密码", + "change_password_error": "修改密码的时候出了点问题。", + "changed_email": "邮箱修改成功!", + "changed_password": "成功修改了密码!", + "chatMessageRadius": "聊天消息", + "checkboxRadius": "复选框", + "collapse_subject": "折叠带主题的内容", + "composing": "写作", + "confirm_new_password": "确认新密码", + "current_avatar": "当前头像", + "current_password": "当前密码", + "data_import_export_tab": "数据导入/导出", + "default_vis": "默认可见范围", + "delete_account": "删除账户", + "delete_account_description": "永久删除你的帐号和所有数据。", + "delete_account_error": "删除账户时发生错误,如果一直删除不了,请联系实例管理员。", + "delete_account_instructions": "在下面输入您的密码来确认删除账户。", + "discoverable": "允许通过搜索检索等服务找到此账号", + "domain_mutes": "域名", + "emoji_reactions_on_timeline": "在时间线上显示表情符号互动", + "enable_web_push_notifications": "启用 web 推送通知", + "enter_current_password_to_confirm": "输入您当前的密码来确认您的身份", + "export_theme": "导出预置主题", + "file_export_import": { + "backup_restore": "设置备份", + "backup_settings": "备份设置到文件", + "backup_settings_theme": "备份设置和主题到文件", + "errors": { + "file_slightly_new": "文件的小版本不同,有些设置可能无法加载", + "file_too_new": "不兼容的主版本:{fileMajor},此 PleromaFE(设置版本 {feMajor})过旧,无法处理", + "file_too_old": "不兼容的主版本:{fileMajor},文件版本过旧,不受支持(最小设置版本 {feMajor})", + "invalid_file": "所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。" + }, + "restore_settings": "从文件恢复设置" + }, + "filtering": "过滤器", + "filtering_explanation": "所有包含以下词汇的内容都会被隐藏,一行一个", + "follow_export": "导出关注", + "follow_export_button": "将关注导出成 csv 文件", + "follow_import": "导入关注", + "follow_import_error": "导入关注时错误", + "follows_imported": "关注已导入!尚需要一些时间来处理。", + "foreground": "前景", + "fun": "趣味", + "general": "通用", + "greentext": "Meme 箭头", + "hide_all_muted_posts": "不显示已隐藏的发文", + "hide_attachments_in_convo": "在对话中隐藏附件", + "hide_attachments_in_tl": "在时间线上隐藏附件", + "hide_filtered_statuses": "隐藏过滤的状态", + "hide_followers_count_description": "不显示关注者数量", + "hide_followers_description": "不要显示关注我的人", + "hide_follows_count_description": "不显示关注数", + "hide_follows_description": "不要显示我所关注的人", + "hide_isp": "隐藏实例独有的面板", + "hide_media_previews": "隐藏媒体预览", + "hide_muted_posts": "不显示被隐藏的用户的帖子", + "hide_post_stats": "隐藏帖子的统计数据(例如:喜欢的次数)", + "hide_shoutbox": "隐藏实例留言板", + "hide_user_stats": "隐藏用户的统计数据(例如:关注者的数量)", + "hide_wallpaper": "隐藏实例壁纸", + "import_blocks_from_a_csv_file": "从 csv 文件中导入拉黑名单", + "import_followers_from_a_csv_file": "从 csv 文件中导入关注", + "import_mutes_from_a_csv_file": "从 csv 文件导入隐藏名单", + "import_theme": "导入预置主题", + "inputRadius": "输入框", + "instance_default": "(默认:{value})", + "instance_default_simple": "(默认)", + "interface": "界面", + "interfaceLanguage": "界面语言", + "invalid_theme_imported": "您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。", + "limited_availability": "在您的浏览器中无法使用", + "links": "链接", + "lock_account_description": "您需要手动审核关注请求", + "loop_video": "循环视频", + "loop_video_silent_only": "只循环没有声音的视频(例如:Mastodon 里的“GIF”)", + "max_thumbnails": "每个帖子最多能显示的缩略图数量", + "mfa": { + "authentication_methods": "身份验证方法", + "confirm_and_enable": "确认并启用 OTP", + "generate_new_recovery_codes": "生成新的恢复码", + "otp": "OTP", + "recovery_codes": "恢复码。", + "recovery_codes_warning": "抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。", + "scan": { + "desc": "使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", + "secret_code": "密钥", + "title": "扫一下" + }, + "setup_otp": "设置 OTP", + "title": "双因素验证", + "verify": { + "desc": "要启用双因素验证,请输入您的双因素验证 app 里的数字:" + }, + "wait_pre_setup_otp": "预设 OTP", + "waiting_a_recovery_codes": "正在接收备份码…", + "warning_of_generate_new_codes": "当您生成新的恢复码时,您旧的恢复码将会失效。" + }, + "minimal_scopes_mode": "使发文可见范围的选项最少化", + "more_settings": "更多设置", + "mute_export": "隐藏名单导出", + "mute_export_button": "导出你的隐藏名单到一个 csv 文件", + "mute_import": "隐藏名单导入", + "mute_import_error": "导入隐藏名单出错", + "mutes_and_blocks": "隐藏与屏蔽", + "mutes_imported": "隐藏名单导入成功!处理它们将需要一段时间。", + "mutes_tab": "隐藏", + "name": "名字", + "name_bio": "名字及简介", + "new_email": "新邮箱", + "new_password": "新密码", + "no_blocks": "没有屏蔽", + "no_mutes": "没有隐藏", + "no_rich_text_description": "不显示富文本格式", + "notification_blocks": "屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。", + "notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。", + "notification_setting_block_from_strangers": "屏蔽来自你没有关注的用户的通知", + "notification_setting_filters": "过滤器", + "notification_setting_hide_notification_contents": "隐藏推送通知中的发送者与内容信息", + "notification_setting_privacy": "隐私", + "notification_visibility": "要显示的通知类型", + "notification_visibility_emoji_reactions": "互动", + "notification_visibility_follows": "关注", + "notification_visibility_likes": "喜欢", + "notification_visibility_mentions": "提及", + "notification_visibility_moves": "用户迁移", + "notification_visibility_repeats": "转发", + "notifications": "通知", + "nsfw_clickthrough": "将不和谐附件和链接预览隐藏,点击才会显示", + "oauth_tokens": "OAuth令牌", + "pad_emoji": "从表情符号选择器插入表情符号时,在表情两侧插入空格", + "panelRadius": "面板", + "pause_on_unfocused": "在离开页面时暂停时间线推送", + "play_videos_in_modal": "在弹出框内播放视频", + "post_status_content_type": "发文状态内容类型", + "preload_images": "预载图片", + "presets": "预置", + "profile_background": "个人背景图", + "profile_banner": "横幅图片", + "profile_fields": { + "add_field": "添加字段", + "label": "个人资料元数据", + "name": "标签", + "value": "内容" + }, + "profile_tab": "个人资料", + "radii_help": "设置界面边缘的圆角 (单位:像素)", + "refresh_token": "刷新令牌", + "replies_in_timeline": "时间线中的回复", + "reply_visibility_all": "显示所有回复", + "reply_visibility_following": "只显示发送给我的回复/发送给我关注的用户的回复", + "reply_visibility_following_short": "显示对我关注的人的回复", + "reply_visibility_self": "只显示发送给我的回复", + "reply_visibility_self_short": "只显示对我本人的回复", + "reset_avatar": "重置头像", + "reset_avatar_confirm": "您确定要重置头像吗?", + "reset_background_confirm": "您确定要重置背景图吗?", + "reset_banner_confirm": "您确定要重置横幅图片吗?", + "reset_profile_background": "重置个人背景图", + "reset_profile_banner": "重置横幅图片", + "revoke_token": "撤消", + "right_sidebar": "在右侧显示侧边栏", + "save": "保存更改", + "saving_err": "保存设置时发生错误", + "saving_ok": "设置已保存", + "scope_copy": "回复时复制可见范围(私信中永远会复制)", + "search_user_to_block": "搜索你想屏蔽的用户", + "search_user_to_mute": "搜索你想要隐藏的用户", + "security": "安全", + "security_tab": "安全", + "sensitive_by_default": "默认标记发文为敏感内容", + "set_new_avatar": "设置新头像", + "set_new_profile_background": "设置新的个人资料背景", + "set_new_profile_banner": "设置新的横幅图片", + "setting_changed": "与默认设置不同", + "settings": "设置", + "show_admin_badge": "在我的个人资料中显示“管理员”徽章", + "show_moderator_badge": "在我的个人资料中显示“监察员”徽章", + "stop_gifs": "鼠标悬停时播放GIF", + "streaming": "滚动到顶部时自动推送新内容", + "style": { + "advanced_colors": { + "_tab_label": "高级", + "alert": "提醒或警告背景色", + "alert_error": "错误", + "alert_neutral": "中性", + "alert_warning": "警告", + "badge": "徽章背景", + "badge_notification": "通知", + "borders": "边框", + "buttons": "按钮", + "chat": { + "border": "边框", + "incoming": "收到的", + "outgoing": "发出的" + }, + "disabled": "禁用的", + "faint_text": "灰度文字", + "highlight": "强调元素", + "icons": "图标", + "inputs": "输入框", + "panel_header": "面板标题", + "poll": "投票统计图", + "popover": "提示框,菜单,弹出框", + "post": "发布内容/用户简介", + "pressed": "压下的", + "selectedMenu": "选中的菜单项", + "selectedPost": "选中的发布内容", + "tabs": "标签页", + "toggled": "按下的", + "top_bar": "顶栏", + "underlay": "底衬", + "wallpaper": "壁纸" + }, + "common": { + "color": "颜色", + "contrast": { + "context": { + "18pt": "大字文本 (18pt+)", + "text": "文本" + }, + "hint": "对比度是 {ratio}, 它 {level} {context}", + "level": { + "aa": "符合 AA 等级准则(最低)", + "aaa": "符合 AAA 等级准则(推荐)", + "bad": "不符合任何辅助功能指南" + } + }, + "opacity": "透明度" + }, + "common_colors": { + "_tab_label": "常规", + "foreground_hint": "点击”高级“ 标签进行细致的控制", + "main": "常用颜色", + "rgbo": "图标,强调,徽章" + }, + "fonts": { + "_tab_label": "字体", + "components": { + "input": "输入框", + "interface": "界面", + "post": "发帖文字", + "postCode": "帖子中使用等间距文字(富文本)" + }, + "custom": "自选", + "family": "字体名称", + "help": "为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。", + "size": "大小 (in px)", + "weight": "字重 (粗体)" + }, + "preview": { + "button": "按钮", + "checkbox": "我已经浏览了条款及细则", + "content": "内容", + "error": "错误示例", + "faint_link": "帮助手册", + "fine_print": "阅读我们的 {0} ,然而什么也学不到!", + "header": "预览", + "header_faint": "这很正常", + "input": "刚刚抵达上海。", + "link": "一个棒棒的小小链接", + "mono": "monospace 内容", + "text": "有堆 {0} 和 {1}" + }, + "radii": { + "_tab_label": "圆角" + }, + "shadows": { + "_tab_label": "阴影和照明", + "blur": "模糊", + "component": "组件", + "components": { + "avatar": "用户头像(在个人资料栏)", + "avatarStatus": "用户头像(在帖子显示栏)", + "button": "按钮", + "buttonHover": "按钮(悬停)", + "buttonPressed": "按钮(压下)", + "buttonPressedHover": "按钮(压下和悬停)", + "input": "输入框", + "panel": "面板", + "panelHeader": "面板标题", + "popup": "弹窗与工具提示", + "topBar": "顶栏" + }, + "filter_hint": { + "always_drop_shadow": "警告,此阴影设置会总是使用 {0} ,如果浏览器支持的话。", + "avatar_inset": "请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。", + "drop_shadow_syntax": "{0} 不支持参数 {1} 和关键词 {2} 。", + "inset_classic": "内阴影会使用 {0}", + "spread_zero": "阴影的扩散 > 0 会同设置成零一样" + }, + "hintV3": "对于阴影,您还可以使用 {0} 表示法来使用其它颜色插槽。", + "inset": "内阴影", + "override": "覆盖", + "shadow_id": "阴影 #{value}", + "spread": "扩散" + }, + "switcher": { + "clear_all": "清除全部", + "clear_opacity": "清除透明度", + "help": { + "fe_downgraded": "PleromaFE 的版本回滚了。", + "fe_upgraded": "PleromaFE 的主题引擎随着版本更新升级了。", + "future_version_imported": "您导入的文件来自更高版本的 FE。", + "migration_napshot_gone": "不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。", + "migration_snapshot_ok": "为保万无一失,加载了主题快照。您可以试着加载主题数据。", + "older_version_imported": "您导入的文件来自旧版本的 FE。", + "snapshot_missing": "在文件中没有主题快照,所以网站外观可能会与原来预想的不同。", + "snapshot_present": "主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。", + "snapshot_source_mismatch": "版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。", + "upgraded_from_v2": "PleromaFE 已升级,主题会与您记忆中的不太一样。", + "v2_imported": "您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。" + }, + "keep_as_is": "保持原状", + "keep_color": "保留颜色", + "keep_fonts": "保留字体", + "keep_opacity": "保留透明度", + "keep_roundness": "保留圆角", + "keep_shadows": "保留阴影", + "load_theme": "加载主题", + "reset": "重置", + "save_load_hint": "\"保留\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。", + "use_snapshot": "老版本", + "use_source": "新版本" + } + }, + "subject_input_always_show": "总是显示主题框", + "subject_line_behavior": "回复时复制主题", + "subject_line_email": "类似电子邮件: \"re: 主题\"", + "subject_line_mastodon": "类似 mastodon: 与原主题相同", + "subject_line_noop": "不要复制", + "text": "文本", + "theme": "主题", + "theme_help": "使用十六进制代码(#rrggbb)来设置主题颜色。", + "theme_help_v2_1": "您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。", + "theme_help_v2_2": "某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。", + "token": "令牌", + "tooltipRadius": "提醒", + "type_domains_to_mute": "搜索需要隐藏的域名", + "upload_a_photo": "上传照片", + "useStreamingApi": "实时接收帖子和通知", + "useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些帖子)", + "use_contain_fit": "生成缩略图时不要裁剪附件", + "use_one_click_nsfw": "点击一次以打开工作场所不适宜(NSFW)的附件", + "user_mutes": "用户", + "user_settings": "用户设置", + "valid_until": "有效期至", + "values": { + "false": "否", + "true": "是" + }, + "version": { + "backend_version": "后端版本", + "frontend_version": "前端版本", + "title": "版本" + }, + "virtual_scrolling": "优化时间线渲染", + "word_filter": "词语过滤" + }, + "status": { + "bookmark": "书签", + "copy_link": "复制状态链接", + "delete": "删除状态", + "delete_confirm": "你真的想要删除这条状态吗?", + "expand": "展开", + "external_source": "外部来源", + "favorites": "喜欢", + "hide_content": "隐藏内容", + "hide_full_subject": "隐藏此部分标题", + "mute_conversation": "隐藏对话", + "nsfw": "NSFW", + "pin": "在个人资料置顶", + "pinned": "置顶", + "repeats": "转发", + "replies_list": "回复:", + "reply_to": "回复", + "show_content": "显示内容", + "show_full_subject": "显示全部标题", + "status_deleted": "该状态已被删除", + "status_unavailable": "状态不可取得", + "thread_muted": "此系列消息已被隐藏", + "thread_muted_and_words": ",含有过滤词:", + "unbookmark": "取消书签", + "unmute_conversation": "对话取消隐藏", + "unpin": "取消在个人资料置顶" + }, + "time": { + "in_future": "还有 {0}", + "in_past": "{0} 之前", + "now": "刚刚", + "now_short": "刚刚", + "unit": { + "days": "{0} 天", + "days_short": "{0}d", + "hours": "{0} 小时", + "hours_short": "{0}h", + "minutes": "{0} 分钟", + "minutes_short": "{0}min", + "months": "{0} 月", + "months_short": "{0}mo", + "seconds": "{0} 秒", + "seconds_short": "{0}s", + "weeks": "{0} 周", + "weeks_short": "{0}w", + "years": "{0} 年", + "years_short": "{0}y" + } + }, + "timeline": { + "collapse": "折叠", + "conversation": "对话", + "error": "取得时间轴时发生错误:{0}", + "load_older": "加载更早的状态", + "no_more_statuses": "没有更多的状态", + "no_retweet_hint": "这条内容仅关注者可见,或者是私信,因此不能转发", + "no_statuses": "没有状态更新", + "reload": "重新载入", + "repeated": "转发了", + "show_new": "显示新内容", + "socket_broke": "丢失实时连接:CloseEvent code {0}", + "socket_reconnected": "已建立实时连接", + "up_to_date": "已是最新" + }, + "tool_tip": { + "accept_follow_request": "接受关注请求", + "add_reaction": "添加互动", + "bookmark": "书签", + "favorite": "喜欢", + "media_upload": "上传媒体", + "reject_follow_request": "拒绝关注请求", + "repeat": "转发", + "reply": "回复", + "user_settings": "用户设置" + }, + "upload": { + "error": { + "base": "上传不成功。", + "default": "迟些再试", + "file_too_big": "文件太大了 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", + "message": "上传错误:{0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } + }, + "user_card": { + "admin_menu": { + "activate_account": "激活账号", + "deactivate_account": "关闭账号", + "delete_account": "删除账号", + "delete_user": "删除用户", + "disable_any_subscription": "完全禁止关注用户", + "disable_remote_subscription": "禁止从远程实例关注用户", + "force_nsfw": "标记所有的帖子都是 - 工作场合不适", + "force_unlisted": "强制帖子为不公开", + "grant_admin": "赋予管理权限", + "grant_moderator": "赋予监察员权限", + "moderation": "仲裁", + "quarantine": "从联合实例中禁止用户帖子", + "revoke_admin": "撤销管理权限", + "revoke_moderator": "撤销监察员权限", + "sandbox": "强制帖子为只有关注者可看", + "strip_media": "从帖子里删除媒体文件" + }, + "approve": "核准", + "block": "屏蔽", + "block_progress": "正在屏蔽…", + "blocked": "已屏蔽!", + "bot": "机器人", + "deny": "拒绝", + "edit_profile": "编辑个人资料", + "favorites": "喜欢", + "follow": "关注", + "follow_progress": "请求中…", + "follow_sent": "请求已发送!", + "follow_unfollow": "取消关注", + "followees": "正在关注", + "followers": "关注者", + "following": "正在关注!", + "follows_you": "关注了你!", + "hidden": "已隐藏", + "hide_repeats": "隐藏转发", + "highlight": { + "disabled": "不突出显示", + "side": "侧边条纹", + "solid": "单一颜色背景", + "striped": "条纹背景" + }, + "its_you": "就是你!", + "media": "媒体", + "mention": "提及", + "message": "消息", + "mute": "隐藏", + "mute_progress": "隐藏中…", + "muted": "已隐藏", + "per_day": "每天", + "remote_follow": "跨站关注", + "report": "报告", + "show_repeats": "显示转发", + "statuses": "状态", + "subscribe": "订阅", + "unblock": "取消屏蔽", + "unblock_progress": "正在取消屏蔽…", + "unmute": "取消隐藏", + "unmute_progress": "取消隐藏中…", + "unsubscribe": "退订" + }, + "user_profile": { + "profile_does_not_exist": "抱歉,此个人资料不存在。", + "profile_loading_error": "抱歉,载入个人资料时出错。", + "timeline_title": "用户时间线" + }, + "user_reporting": { + "add_comment_description": "此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:", + "additional_comments": "其它信息", + "forward_description": "这个账号来自另一个服务器。是否同时发送一份报告副本到那里?", + "forward_to": "转发 {0}", + "generic_error": "当处理您的请求时,发生了一个错误。", + "submit": "提交", + "title": "报告 {0}" + }, + "who_to_follow": { + "more": "更多", + "who_to_follow": "推荐关注" } - }, - "timeline": { - "collapse": "折叠", - "conversation": "对话", - "error_fetching": "获取更新时发生错误", - "load_older": "加载更早的状态", - "no_retweet_hint": "这条内容仅关注者可见,或者是私信,因此不能转发", - "repeated": "转发了", - "show_new": "显示新内容", - "up_to_date": "已是最新", - "no_more_statuses": "没有更多的状态", - "no_statuses": "没有状态更新", - "reload": "重新载入", - "error": "取得时间轴时发生错误:{0}", - "socket_broke": "丢失实时连接:CloseEvent code {0}", - "socket_reconnected": "已建立实时连接" - }, - "status": { - "favorites": "喜欢", - "repeats": "转发", - "delete": "删除状态", - "pin": "在个人资料置顶", - "unpin": "取消在个人资料置顶", - "pinned": "置顶", - "delete_confirm": "你真的想要删除这条状态吗?", - "reply_to": "回复", - "replies_list": "回复:", - "mute_conversation": "隐藏对话", - "unmute_conversation": "对话取消隐藏", - "hide_content": "隐藏内容", - "show_content": "显示内容", - "hide_full_subject": "隐藏此部分标题", - "show_full_subject": "显示全部标题", - "thread_muted": "此系列消息已被隐藏", - "copy_link": "复制状态链接", - "status_unavailable": "状态不可取得", - "unbookmark": "取消书签", - "bookmark": "书签", - "thread_muted_and_words": ",含有过滤词:", - "status_deleted": "该状态已被删除", - "nsfw": "NSFW", - "external_source": "外部来源", - "expand": "展开" - }, - "user_card": { - "approve": "核准", - "block": "屏蔽", - "blocked": "已屏蔽!", - "deny": "拒绝", - "favorites": "喜欢", - "follow": "关注", - "follow_sent": "请求已发送!", - "follow_progress": "请求中…", - "follow_unfollow": "取消关注", - "followees": "正在关注", - "followers": "关注者", - "following": "正在关注!", - "follows_you": "关注了你!", - "its_you": "就是你!", - "media": "媒体", - "mute": "隐藏", - "muted": "已隐藏", - "per_day": "每天", - "remote_follow": "跨站关注", - "report": "报告", - "statuses": "状态", - "subscribe": "订阅", - "unsubscribe": "退订", - "unblock": "取消屏蔽", - "unblock_progress": "正在取消屏蔽…", - "block_progress": "正在屏蔽…", - "unmute": "取消隐藏", - "unmute_progress": "取消隐藏中…", - "mute_progress": "隐藏中…", - "admin_menu": { - "moderation": "仲裁", - "grant_admin": "赋予管理权限", - "revoke_admin": "撤销管理权限", - "grant_moderator": "赋予监察员权限", - "revoke_moderator": "撤销监察员权限", - "activate_account": "激活账号", - "deactivate_account": "关闭账号", - "delete_account": "删除账号", - "force_nsfw": "标记所有的帖子都是 - 工作场合不适", - "strip_media": "从帖子里删除媒体文件", - "force_unlisted": "强制帖子为不公开", - "sandbox": "强制帖子为只有关注者可看", - "disable_remote_subscription": "禁止从远程实例关注用户", - "disable_any_subscription": "完全禁止关注用户", - "quarantine": "从联合实例中禁止用户帖子", - "delete_user": "删除用户" - }, - "hidden": "已隐藏", - "show_repeats": "显示转发", - "hide_repeats": "隐藏转发", - "message": "消息", - "mention": "提及", - "bot": "机器人", - "highlight": { - "side": "侧边条纹", - "striped": "条纹背景", - "solid": "单一颜色背景", - "disabled": "不突出显示" - }, - "edit_profile": "编辑个人资料" - }, - "user_profile": { - "timeline_title": "用户时间线", - "profile_does_not_exist": "抱歉,此个人资料不存在。", - "profile_loading_error": "抱歉,载入个人资料时出错。" - }, - "user_reporting": { - "title": "报告 {0}", - "add_comment_description": "此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:", - "additional_comments": "其它信息", - "forward_description": "这个账号来自另一个服务器。是否同时发送一份报告副本到那里?", - "forward_to": "转发 {0}", - "submit": "提交", - "generic_error": "当处理您的请求时,发生了一个错误。" - }, - "who_to_follow": { - "more": "更多", - "who_to_follow": "推荐关注" - }, - "tool_tip": { - "media_upload": "上传媒体", - "repeat": "转发", - "reply": "回复", - "favorite": "喜欢", - "user_settings": "用户设置", - "reject_follow_request": "拒绝关注请求", - "add_reaction": "添加互动", - "bookmark": "书签", - "accept_follow_request": "接受关注请求" - }, - "upload": { - "error": { - "base": "上传不成功。", - "file_too_big": "文件太大了 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "default": "迟些再试", - "message": "上传错误:{0}" - }, - "file_size_units": { - "B": "B", - "KiB": "KiB", - "MiB": "MiB", - "GiB": "GiB", - "TiB": "TiB" - } - }, - "search": { - "people": "人", - "hashtags": "话题标签", - "person_talking": "{count} 人正在讨论", - "people_talking": "{count} 人正在讨论", - "no_results": "没有搜索结果" - }, - "password_reset": { - "forgot_password": "忘记密码了?", - "password_reset": "重置密码", - "instruction": "输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。", - "placeholder": "您的电邮地址或者用户名", - "check_email": "检查您的邮箱,会有一个链接用于重置密码。", - "return_home": "回到首页", - "too_many_requests": "您达到了尝试次数的上限,请稍后再试。", - "password_reset_disabled": "密码重置已被禁用。请联系您的实例管理员。", - "password_reset_required_but_mailer_is_disabled": "您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。", - "password_reset_required": "您必须重置密码才能登陆。" - }, - "remote_user_resolver": { - "error": "未找到。", - "searching_for": "搜索", - "remote_user_resolver": "远程用户解析器" - }, - "emoji": { - "keep_open": "选择器保持打开", - "stickers": "贴纸", - "unicode": "Unicode 表情符号", - "custom": "自定义表情符号", - "add_emoji": "插入表情符号", - "search_emoji": "搜索表情符号", - "emoji": "表情符号", - "load_all": "加载所有表情符号(共 {emojiAmount} 个)", - "load_all_hint": "最先加载的 {saneAmount} 表情符号,加载全部表情符号可能会带来性能问题。" - }, - "about": { - "mrf": { - "simple": { - "quarantine_desc": "本实例向以下实例仅发送公开的帖子:", - "quarantine": "隔离", - "reject_desc": "本实例不会接收来自下列实例的消息:", - "reject": "拒绝", - "accept_desc": "本实例只接收来自下列实例的消息:", - "simple_policies": "对于特定实例的策略", - "accept": "接受", - "media_removal": "移除媒体", - "media_nsfw_desc": "本实例将来自以下实例的媒体内容强制设置为敏感内容:", - "media_nsfw": "强制设置媒体为敏感内容", - "media_removal_desc": "本实例移除来自以下实例的媒体内容:", - "ftl_removal_desc": "该实例在从“已知网络”时间线上移除了下列实例:", - "ftl_removal": "从“已知网络”时间线上移除" - }, - "mrf_policies_desc": "MRF 策略会影响本实例的互通行为。以下策略已启用:", - "mrf_policies": "已启用的 MRF 策略", - "keyword": { - "ftl_removal": "从“全部已知网络”时间线上移除", - "keyword_policies": "关键词策略", - "is_replaced_by": "→", - "replace": "替换", - "reject": "拒绝" - }, - "federation": "联邦互通" - }, - "staff": "管理人员" - }, - "domain_mute_card": { - "unmute_progress": "正在取消隐藏…", - "unmute": "取消隐藏", - "mute_progress": "隐藏中…", - "mute": "隐藏" - }, - "errors": { - "storage_unavailable": "Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。" - }, - "shoutbox": { - "title": "留言板" - }, - "display_date": { - "today": "今天" - }, - "file_type": { - "file": "文件", - "image": "图片", - "video": "视频", - "audio": "音频" - }, - "chats": { - "empty_chat_list_placeholder": "您还没有任何聊天记录。开始聊天吧!", - "error_sending_message": "发送消息时出了点问题。", - "error_loading_chat": "加载聊天时出了点问题。", - "delete_confirm": "您确实要删除此消息吗?", - "more": "更多", - "empty_message_error": "无法发布空消息", - "new": "新聊天", - "chats": "聊天", - "delete": "删除", - "message_user": "发消息给 {nickname}", - "you": "你:" - } -} +} \ No newline at end of file diff --git a/src/i18n/zh_Hant.json b/src/i18n/zh_Hant.json index 09c9b36c..13fe0256 100644 --- a/src/i18n/zh_Hant.json +++ b/src/i18n/zh_Hant.json @@ -1,871 +1,846 @@ { - "emoji": { - "unicode": "統一碼繪文字", - "custom": "自定義繪文字", - "add_emoji": "插入繪文字", - "search_emoji": "搜索繪文字", - "keep_open": "選擇器保持打開", - "emoji": "繪文字", - "stickers": "貼紙", - "load_all": "加載所有繪文字(共 {emojiAmount} 個)", - "load_all_hint": "最先加載的 {saneAmount} ,加載全部繪文字可能會帶來性能問題。" - }, - "polls": { - "not_enough_options": "投票的選項太少", - "expired": "投票 {0} 前已結束", - "expires_in": "投票於 {0} 內結束", - "expiry": "投票期限", - "multiple_choices": "多選", - "single_choice": "單選", - "type": "問卷類型", - "vote": "投票", - "votes": "票", - "option": "選項", - "add_option": "增加選項", - "add_poll": "增加投票", - "votes_count": "{count} 票 | {count} 票", - "people_voted_count": "{count} 人已投票 | {count} 人已投票" - }, - "notifications": { - "reacted_with": "作出了 {0} 的反應", - "migrated_to": "遷移到", - "no_more_notifications": "沒有更多的通知", - "repeated_you": "轉發了你的發文", - "read": "已閱!", - "notifications": "通知", - "load_older": "載入更早的通知", - "follow_request": "想要關注你", - "followed_you": "關注了你", - "favorited_you": "喜歡了你的發文", - "broken_favorite": "未知的狀態,正在搜索中…", - "error": "獲取通知錯誤:{0}" - }, - "nav": { - "chats": "聊天", - "timelines": "時間線", - "preferences": "偏好設置", - "who_to_follow": "推薦關注", - "search": "搜索", - "user_search": "用戶搜索", - "bookmarks": "書籤", - "twkn": "已知網絡", - "timeline": "時間線", - "public_tl": "公共時間線", - "dms": "私信", - "interactions": "互動", - "mentions": "提及", - "friend_requests": "關注請求", - "back": "後退", - "administration": "管理員", - "about": "關於", - "home_timeline": "家時間線" - }, - "media_modal": { - "next": "往後", - "previous": "往前" - }, - "login": { - "heading": { - "recovery": "雙重因素恢復", - "totp": "雙重因素驗證" + "about": { + "mrf": { + "federation": "聯邦", + "keyword": { + "ftl_removal": "從“全部已知網絡”時間線上移除", + "is_replaced_by": "→", + "keyword_policies": "關鍵字政策", + "reject": "拒絕", + "replace": "取代" + }, + "mrf_policies": "已啟用的MRF政策", + "mrf_policies_desc": "MRF 策略會影響本實例的互通行為。以下策略已啟用:", + "simple": { + "accept": "接受", + "accept_desc": "本實例只接收來自下列實例的消息:", + "ftl_removal": "從所有已知網路中移除", + "ftl_removal_desc": "這個實例在所有已知網絡中移除下列實例:", + "media_nsfw": "媒體強制設定為敏感", + "media_nsfw_desc": "這個實例強迫以下實例的帖子媒體設定為敏感:", + "media_removal": "移除媒體", + "media_removal_desc": "這個實例移除以下實例的帖子媒體:", + "quarantine": "隔離", + "quarantine_desc": "本實例只會把公開發文發送到下列實例:", + "reject": "拒絕", + "reject_desc": "本實例不會接收來自下列實例的消息:", + "simple_policies": "站規" + } + }, + "staff": "職員" }, - "recovery_code": "恢復碼", - "enter_two_factor_code": "輸入一個雙重因素驗證碼", - "enter_recovery_code": "輸入一個恢復碼", - "authentication_code": "驗證碼", - "hint": "登錄後加入討論", - "username": "用戶名", - "register": "註冊", - "placeholder": "例:鈴音", - "password": "密碼", - "logout": "登出", - "description": "用 OAuth 登入", - "login": "登入" - }, - "importer": { - "error": "導入此文件時出現一個錯誤。", - "success": "導入成功。", - "submit": "提交" - }, - "image_cropper": { - "cancel": "取消", - "save_without_cropping": "保存不裁剪", - "save": "保存", - "crop_picture": "裁剪圖片" - }, - "general": { - "peek": "窺視", - "close": "關閉", - "verify": "驗證", - "confirm": "確認", - "enable": "啟用", - "disable": "禁用", - "cancel": "取消", - "dismiss": "忽略", - "show_less": "收起", - "show_more": "展開", - "optional": "可選", - "retry": "再試", - "error_retry": "請再試", - "generic_error": "發生一個錯誤", - "loading": "載入中…", - "more": "更多", - "submit": "提交", - "apply": "應用", - "role": { - "moderator": "主持人", - "admin": "管理員" + "chats": { + "chats": "聊天", + "delete": "刪除", + "delete_confirm": "您確實要刪除此消息嗎?", + "empty_chat_list_placeholder": "您還沒有任何聊天記錄。 開始新的聊天!", + "empty_message_error": "無法發布空消息", + "error_loading_chat": "加載聊天時出了點問題。", + "error_sending_message": "發送消息時出了點問題。", + "message_user": "發消息給 {nickname}", + "more": "更多", + "new": "新聊天", + "you": "你:" }, - "flash_content": "點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。", - "flash_security": "請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。", - "flash_fail": "無法加載flash內容,請參閱控制台瞭解詳細資訊。" - }, - "finder": { - "find_user": "尋找用戶", - "error_fetching_user": "獲取用戶時發生錯誤" - }, - "features_panel": { - "who_to_follow": "推薦關注", - "title": "特色", - "text_limit": "文字數量限制", - "scope_options": "可見範圍設置", - "media_proxy": "媒體代理", - "pleroma_chat_messages": "Pleroma 聊天", - "chat": "聊天", - "gopher": "Gopher", - "upload_limit": "上傳限制" - }, - "exporter": { - "processing": "正在處理,稍後會提示您下載文件", - "export": "導出" - }, - "domain_mute_card": { - "unmute_progress": "取消靜音中…", - "unmute": "取消靜音", - "mute_progress": "靜音中…", - "mute": "靜音" - }, - "shoutbox": { - "title": "留言板" - }, - "about": { - "staff": "職員", - "mrf": { - "simple": { - "media_nsfw_desc": "這個實例強迫以下實例的帖子媒體設定為敏感:", - "media_nsfw": "媒體強制設定為敏感", - "media_removal_desc": "這個實例移除以下實例的帖子媒體:", - "media_removal": "移除媒體", - "ftl_removal_desc": "這個實例在所有已知網絡中移除下列實例:", - "ftl_removal": "從所有已知網路中移除", - "quarantine_desc": "本實例只會把公開發文發送到下列實例:", - "quarantine": "隔離", - "reject_desc": "本實例不會接收來自下列實例的消息:", - "reject": "拒絕", - "accept_desc": "本實例只接收來自下列實例的消息:", - "simple_policies": "站規", - "accept": "接受" - }, - "mrf_policies_desc": "MRF 策略會影響本實例的互通行為。以下策略已啟用:", - "keyword": { - "ftl_removal": "從“全部已知網絡”時間線上移除", - "replace": "取代", - "reject": "拒絕", - "is_replaced_by": "→", - "keyword_policies": "關鍵字政策" - }, - "mrf_policies": "已啟用的MRF政策", - "federation": "聯邦" - } - }, - "settings": { - "style": { - "common": { - "color": "顏色", - "contrast": { - "context": { - "18pt": "大字文本 (18pt+)", - "text": "文本" - }, - "level": { - "aaa": "符合 AAA 等級準則(推薦)", - "aa": "符合 AA 等級準則(最低)", - "bad": "不符合任何輔助功能指南" - }, - "hint": "對比度是 {ratio}, 它 {level} {context}" + "display_date": { + "today": "今天" + }, + "domain_mute_card": { + "mute": "靜音", + "mute_progress": "靜音中…", + "unmute": "取消靜音", + "unmute_progress": "取消靜音中…" + }, + "emoji": { + "add_emoji": "插入繪文字", + "custom": "自定義繪文字", + "emoji": "繪文字", + "keep_open": "選擇器保持打開", + "load_all": "加載所有繪文字(共 {emojiAmount} 個)", + "load_all_hint": "最先加載的 {saneAmount} ,加載全部繪文字可能會帶來性能問題。", + "search_emoji": "搜索繪文字", + "stickers": "貼紙", + "unicode": "統一碼繪文字" + }, + "errors": { + "storage_unavailable": "Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。" + }, + "exporter": { + "export": "導出", + "processing": "正在處理,稍後會提示您下載文件" + }, + "features_panel": { + "media_proxy": "媒體代理", + "scope_options": "可見範圍設置", + "text_limit": "文字數量限制", + "title": "特色", + "upload_limit": "上傳限制", + "who_to_follow": "推薦關注" + }, + "file_type": { + "audio": "音頻", + "file": "檔案", + "image": "图片", + "video": "視頻" + }, + "finder": { + "error_fetching_user": "獲取用戶時發生錯誤", + "find_user": "尋找用戶" + }, + "general": { + "apply": "應用", + "cancel": "取消", + "close": "關閉", + "confirm": "確認", + "disable": "禁用", + "dismiss": "忽略", + "enable": "啟用", + "error_retry": "請再試", + "flash_content": "點擊以使用 Ruffle 顯示 Flash 內容(實驗性,可能無效)。", + "flash_fail": "無法加載flash內容,請參閱控制台瞭解詳細資訊。", + "flash_security": "請注意,這可能有潜在的危險,因為Flash內容仍然是武斷的程式碼。", + "generic_error": "發生一個錯誤", + "loading": "載入中…", + "more": "更多", + "optional": "可選", + "peek": "窺視", + "retry": "再試", + "role": { + "admin": "管理員", + "moderator": "主持人" }, - "opacity": "透明度" - }, - "advanced_colors": { - "faint_text": "灰度文字", - "alert_error": "錯誤", - "badge_notification": "通知", - "alert": "提醒或警告背景色", - "_tab_label": "高级", - "alert_warning": "警告", - "alert_neutral": "中性", - "post": "帖子/用戶簡介", - "badge": "徽章背景", - "popover": "提示框,菜單,彈出框", - "panel_header": "面板標題", - "top_bar": "頂欄", - "borders": "邊框", - "buttons": "按鈕", - "inputs": "輸入框", - "underlay": "底襯", - "poll": "投票統計圖", - "icons": "圖標", - "highlight": "強調元素", - "pressed": "按下", - "selectedPost": "選中的帖子", - "selectedMenu": "選中的菜單項", - "disabled": "關閉", - "toggled": "切換", - "tabs": "標籤", - "chat": { - "incoming": "收到", - "outgoing": "發出", - "border": "邊框" + "show_less": "收起", + "show_more": "展開", + "submit": "提交", + "verify": "驗證" + }, + "image_cropper": { + "cancel": "取消", + "crop_picture": "裁剪圖片", + "save": "保存", + "save_without_cropping": "保存不裁剪" + }, + "importer": { + "error": "導入此文件時出現一個錯誤。", + "submit": "提交", + "success": "導入成功。" + }, + "interactions": { + "favs_repeats": "轉發和喜歡", + "follows": "新的關注者", + "load_older": "載入更早的互動", + "moves": "用戶遷移" + }, + "login": { + "authentication_code": "驗證碼", + "description": "用 OAuth 登入", + "enter_recovery_code": "輸入一個恢復碼", + "enter_two_factor_code": "輸入一個雙重因素驗證碼", + "heading": { + "recovery": "雙重因素恢復", + "totp": "雙重因素驗證" }, - "wallpaper": "桌布" - }, - "preview": { - "header_faint": "這很正常", - "header": "預覽", - "content": "內容", - "error": "例子錯誤", - "button": "按鈕", - "text": "有堆 {0} 和 {1}", - "mono": "內容", - "input": "剛剛抵達洛杉磯.", - "faint_link": "有用的手冊", - "fine_print": "閱讀我們的 {0} ,然而什麼有用的也學不到!", - "checkbox": "我已經瀏覽了條款及細則", - "link": "一個很好的小鏈接" - }, - "shadows": { - "override": "覆寫", - "_tab_label": "陰影和燈光", - "component": "組件", - "shadow_id": "陰影 #{value}", - "blur": "模糊", - "spread": "擴散", - "inset": "插圖", - "hintV3": "對於陰影,您還可以使用{0}表示法來使用其他顏色插槽。", - "filter_hint": { - "always_drop_shadow": "警告,此陰影設置會總是使用 {0} ,如果瀏覽器支持的話。", - "drop_shadow_syntax": "{0} 不支持參數 {1} 和關鍵詞 {2} 。", - "avatar_inset": "請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。", - "spread_zero": "陰影的擴散 > 0 會同設置成零一樣", - "inset_classic": "插入內部的陰影會使用 {0}" + "hint": "登錄後加入討論", + "login": "登入", + "logout": "登出", + "password": "密碼", + "placeholder": "例:鈴音", + "recovery_code": "恢復碼", + "register": "註冊", + "username": "用戶名" + }, + "media_modal": { + "next": "往後", + "previous": "往前" + }, + "nav": { + "about": "關於", + "administration": "管理員", + "back": "後退", + "bookmarks": "書籤", + "chats": "聊天", + "dms": "私信", + "friend_requests": "關注請求", + "home_timeline": "家時間線", + "interactions": "互動", + "mentions": "提及", + "preferences": "偏好設置", + "public_tl": "公共時間線", + "search": "搜索", + "timeline": "時間線", + "timelines": "時間線", + "twkn": "已知網絡", + "user_search": "用戶搜索", + "who_to_follow": "推薦關注" + }, + "notifications": { + "broken_favorite": "未知的狀態,正在搜索中…", + "error": "獲取通知錯誤:{0}", + "favorited_you": "喜歡了你的發文", + "follow_request": "想要關注你", + "followed_you": "關注了你", + "load_older": "載入更早的通知", + "migrated_to": "遷移到", + "no_more_notifications": "沒有更多的通知", + "notifications": "通知", + "reacted_with": "作出了 {0} 的反應", + "read": "已閱!", + "repeated_you": "轉發了你的發文" + }, + "password_reset": { + "check_email": "檢查你的郵箱,會有一個鏈接用於重置密碼。", + "forgot_password": "忘記密碼了?", + "instruction": "輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。", + "password_reset": "重置密碼", + "password_reset_disabled": "密碼重置已經被禁用。請聯繫你的實例管理員。", + "password_reset_required": "您必須重置密碼才能登陸。", + "password_reset_required_but_mailer_is_disabled": "您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。", + "placeholder": "你的電郵地址或者用戶名", + "return_home": "回到首頁", + "too_many_requests": "你觸發了嘗試的限制,請稍後再試。" + }, + "polls": { + "add_option": "增加選項", + "add_poll": "增加投票", + "expired": "投票 {0} 前已結束", + "expires_in": "投票於 {0} 內結束", + "expiry": "投票期限", + "multiple_choices": "多選", + "not_enough_options": "投票的選項太少", + "option": "選項", + "people_voted_count": "{count} 人已投票 | {count} 人已投票", + "single_choice": "單選", + "type": "問卷類型", + "vote": "投票", + "votes": "票", + "votes_count": "{count} 票 | {count} 票" + }, + "post_status": { + "account_not_locked_warning": "你的帳號沒有 {0}。任何人都可以關注你並瀏覽你的上鎖內容。", + "account_not_locked_warning_link": "上鎖", + "attachments_sensitive": "標記附件為敏感內容", + "content_type": { + "text/bbcode": "BBCode", + "text/html": "HTML", + "text/markdown": "Markdown", + "text/plain": "純文本" }, - "components": { - "panel": "面板", - "panelHeader": "面板標題", - "topBar": "頂欄", - "avatar": "用戶頭像(在個人資料欄)", - "avatarStatus": "用戶頭像(在帖子顯示欄)", - "popup": "彈窗和工具提示", - "button": "按鈕", - "buttonHover": "按鈕(懸停)", - "buttonPressed": "按鈕(按下)", - "buttonPressedHover": "按鈕(按下和懸停)", - "input": "輸入框" + "content_warning": "主題(可選)", + "default": "剛剛抵達洛杉磯。", + "direct_warning_to_all": "本條內容只有被提及的用戶能夠看到。", + "direct_warning_to_first_only": "本條內容只有被在消息開始處提及的用戶能夠看到。", + "empty_status_error": "不能發布沒有內容,沒有附件的發文", + "media_description": "媒體描述", + "media_description_error": "無法更新媒體,請重試", + "new_status": "發佈新發文", + "post": "發送", + "posting": "正在發送", + "preview": "預覽", + "preview_empty": "空的", + "scope": { + "direct": "私信 - 只發送給被提及的用戶", + "private": "僅關注者 - 只有關注了你的人能看到", + "public": "公共 - 發送到公共時間軸", + "unlisted": "不公開 - 不會發送到公共時間軸" + }, + "scope_notice": { + "private": "關注你的人才能看到本條內容", + "public": "本條帖子可以被所有人看到", + "unlisted": "本條內容既不在公共時間線,也不會在所有已知網絡上可見" } - }, - "switcher": { - "use_snapshot": "舊版", - "load_theme": "載入主題", - "keep_color": "保留顏色", - "keep_shadows": "保留陰影", - "keep_opacity": "保留透明度", - "keep_roundness": "保留圓角", - "help": { - "migration_napshot_gone": "不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。", - "snapshot_source_mismatch": "版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。", - "future_version_imported": "您導入的文件來自更高版本的 FE。", - "older_version_imported": "您導入的文件來自舊版本的 FE。", - "snapshot_missing": "在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。", - "fe_upgraded": "PleromaFE 的主題引擎隨著版本更新升級了。", - "fe_downgraded": "PleromaFE 的版本回滾了。", - "upgraded_from_v2": "PleromaFE 已升級,主題會和你記憶中的不太一樣。", - "v2_imported": "您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。", - "snapshot_present": "載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。", - "migration_snapshot_ok": "為保萬無一失,載入了主題快照。您可以試著載入主題數據。" + }, + "registration": { + "bio": "簡介", + "bio_placeholder": "例如:\n你好,我是玲音。\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。", + "captcha": "CAPTCHA", + "email": "電子郵箱", + "fullname": "顯示名稱", + "fullname_placeholder": "例如:岩倉玲音", + "new_captcha": "點擊圖片獲取新的驗證碼", + "password_confirm": "確認密碼", + "reason": "註冊理由", + "reason_placeholder": "此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。", + "register": "註冊", + "registration": "註冊", + "token": "邀請碼", + "username_placeholder": "例如:lain", + "validations": { + "email_required": "不能留空", + "fullname_required": "不能留空", + "password_confirmation_match": "不能和密碼一樣", + "password_confirmation_required": "不能留空", + "password_required": "不能留空", + "username_required": "不能留空" + } + }, + "remote_user_resolver": { + "error": "未找到。", + "remote_user_resolver": "遠程用戶解析器", + "searching_for": "搜索" + }, + "search": { + "hashtags": "標籤", + "no_results": "沒有搜索結果", + "people": "人", + "people_talking": "{count} 人正在討論", + "person_talking": "{count} 人正在討論" + }, + "selectable_list": { + "select_all": "選擇全部" + }, + "settings": { + "accent": "強調色", + "allow_following_move": "正在關注的賬號遷移時自動重新關注", + "app_name": "App 名稱", + "attachmentRadius": "附件", + "attachments": "附件", + "autohide_floating_post_button": "自動隱藏新帖子的按鈕(移動設備)", + "avatar": "頭像", + "avatarAltRadius": "頭像(通知)", + "avatarRadius": "頭像", + "avatar_size_instruction": "推薦的頭像圖片最小的尺寸是 150x150 像素。", + "background": "背景", + "bio": "簡介", + "block_export": "封鎖黑名單導出", + "block_export_button": "導出你的封鎖黑名單到一個 csv 文件", + "block_import": "封鎖黑名單導入", + "block_import_error": "導入封鎖黑名單出錯", + "blocks_imported": "封鎖黑名單導入成功!需要一點時間來處理。", + "blocks_tab": "封鎖", + "bot": "這是一個機器人賬號", + "btnRadius": "按鈕", + "cBlue": "藍色(回覆,關注)", + "cGreen": "綠色(轉發)", + "cOrange": "橙色(收藏)", + "cRed": "紅色(取消)", + "change_email": "修改電子郵箱", + "change_email_error": "修改你的電子郵箱時發生錯誤。", + "change_password": "修改密碼", + "change_password_error": "修改密碼的時候出了點問題。", + "changed_email": "郵箱修改成功!", + "changed_password": "成功修改了密碼!", + "chatMessageRadius": "聊天訊息", + "checkboxRadius": "複選框", + "collapse_subject": "摺疊帶標題的內容", + "composing": "寫作設置", + "confirm_new_password": "確認新密碼", + "current_password": "當前密碼", + "data_import_export_tab": "數據導入/導出", + "default_vis": "默認可見性範圍", + "delete_account": "刪除帳戶", + "delete_account_description": "永久刪除你的帳號和所有數據。", + "delete_account_error": "刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。", + "delete_account_instructions": "在下面輸入密碼,以確認刪除帳戶。", + "discoverable": "允許通過搜索檢索等服務找到此賬號", + "domain_mutes": "域名", + "emoji_reactions_on_timeline": "在時間線上顯示繪文字互動", + "enable_web_push_notifications": "啟用 web 推送通知", + "enter_current_password_to_confirm": "輸入你當前密碼來確認你的身份", + "export_theme": "導出預置主題", + "file_export_import": { + "backup_restore": "設定備份", + "backup_settings": "備份設置到文件", + "backup_settings_theme": "備份設置和主題到文件", + "errors": { + "file_slightly_new": "檔案的小版本不同,有些設置可能無法載入", + "file_too_new": "不兼容的主版本:{fileMajor},此 PleromaFE(設置版本 {feMajor})過舊,無法處理", + "file_too_old": "不兼容的主版本:{fileMajor},文件版本過舊,不受支持(最小設置版本 {feMajor})", + "invalid_file": "所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。" + }, + "restore_settings": "從文件還原設置" }, - "use_source": "新版本", - "keep_as_is": "保持原狀", - "clear_opacity": "清除透明度", - "clear_all": "清除全部", - "reset": "重置", - "keep_fonts": "保留字體", - "save_load_hint": "\"保留\" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。" - }, - "fonts": { - "components": { - "interface": "界面", - "input": "輸入框", - "post": "發帖文字", - "postCode": "帖子中使用等間距文字(富文本)" + "filtering": "過濾", + "filtering_explanation": "所有包含以下詞彙的內容都會被隱藏,一行一個", + "follow_export": "導出關注", + "follow_export_button": "將關注導出成 csv 文件", + "follow_import": "導入關注", + "follow_import_error": "導入關注時錯誤", + "follows_imported": "關注已導入!尚需要一些時間來處理。", + "foreground": "前景", + "fun": "有趣", + "general": "通用", + "greentext": "前文箭頭", + "hide_all_muted_posts": "不顯示已隱藏的帖子", + "hide_attachments_in_convo": "在對話中隱藏附件", + "hide_attachments_in_tl": "在時間線上隱藏附件", + "hide_filtered_statuses": "隱藏過濾的發文", + "hide_followers_count_description": "不顯示關注者數量", + "hide_followers_description": "不要顯示關注我的人", + "hide_follows_count_description": "不顯示關注數", + "hide_follows_description": "不要顯示我所關注的人", + "hide_isp": "隱藏指定實例的面板", + "hide_media_previews": "隱藏媒體預覽", + "hide_muted_posts": "不顯示被靜音的用戶的帖子", + "hide_post_stats": "隱藏帖子的統計數據(例如:收藏的次數)", + "hide_shoutbox": "隱藏實例留言框", + "hide_user_stats": "隱藏用戶的統計數據(例如:關注者的數量)", + "hide_wallpaper": "隱藏實例桌布", + "import_blocks_from_a_csv_file": "從 csv 文件中導入封鎖黑名單名單", + "import_followers_from_a_csv_file": "從 csv 文件中導入關注", + "import_mutes_from_a_csv_file": "從CSV文件導入靜音", + "import_theme": "導入預置主題", + "inputRadius": "輸入框", + "instance_default": "(默認:{value})", + "instance_default_simple": "(默認)", + "interface": "界面", + "interfaceLanguage": "界面語言", + "invalid_theme_imported": "您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。", + "limited_availability": "在您的瀏覽器中無法使用", + "links": "鏈接", + "lock_account_description": "你需要手動審核關注請求", + "loop_video": "循環視頻", + "loop_video_silent_only": "只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)", + "max_thumbnails": "最多每個帖子所能顯示的縮略圖數量", + "mfa": { + "authentication_methods": "身份驗證方法", + "confirm_and_enable": "確認並啟用OTP", + "generate_new_recovery_codes": "生成新的恢復碼", + "otp": "OTP", + "recovery_codes": "恢復碼。", + "recovery_codes_warning": "抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。", + "scan": { + "desc": "使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:", + "secret_code": "密鑰", + "title": "掃瞄" + }, + "setup_otp": "設置OTP", + "title": "雙因素驗證", + "verify": { + "desc": "要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:" + }, + "wait_pre_setup_otp": "預設OTP", + "waiting_a_recovery_codes": "正在接收備份碼…", + "warning_of_generate_new_codes": "當你生成新的恢復碼時,你的舊恢復碼就失效了。" }, - "_tab_label": "字體", - "help": "給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。", - "family": "字體名稱", - "size": "大小 (像素)", - "weight": "字重 (粗體))", - "custom": "自選" - }, - "common_colors": { - "foreground_hint": "點擊”高級“ 標籤進行細緻的控制", - "main": "常用顏色", - "_tab_label": "共同", - "rgbo": "圖標,強調,徽章" - }, - "radii": { - "_tab_label": "圓角" - } + "minimal_scopes_mode": "最小發文範圍", + "more_settings": "更多設置", + "mute_export": "靜音導出", + "mute_export_button": "將靜音導出到csv文件", + "mute_import": "靜音導入", + "mute_import_error": "導入靜音時出錯", + "mutes_and_blocks": "靜音與封鎖", + "mutes_imported": "靜音導入了!處理它們將需要一段時間。", + "mutes_tab": "靜音", + "name": "名字", + "name_bio": "名字及簡介", + "new_email": "新電郵", + "new_password": "新密碼", + "no_blocks": "沒有封鎖", + "no_mutes": "沒有靜音", + "no_rich_text_description": "不顯示富文本格式", + "notification_blocks": "封鎖一個用戶會停掉所有他的通知,等同於取消關注。", + "notification_mutes": "要停止收到某個指定的用戶的通知,請使用靜音功能。", + "notification_setting_block_from_strangers": "屏蔽來自你沒有關注的用戶的通知", + "notification_setting_filters": "過濾器", + "notification_setting_hide_notification_contents": "隱藏推送通知中的發送者與內容信息", + "notification_setting_privacy": "隱私", + "notification_visibility": "要顯示的通知類型", + "notification_visibility_emoji_reactions": "互動", + "notification_visibility_follows": "關注", + "notification_visibility_likes": "喜歡", + "notification_visibility_mentions": "提及", + "notification_visibility_moves": "用戶遷移", + "notification_visibility_repeats": "轉發", + "notifications": "通知", + "nsfw_clickthrough": "將敏感附件和鏈接隱藏,點擊才能打開", + "oauth_tokens": "OAuth代幣", + "pad_emoji": "從繪文字選擇器插入繪文字時,在繪文字兩側插入空格", + "panelRadius": "面板", + "pause_on_unfocused": "在離開頁面時暫停時間線推送", + "play_videos_in_modal": "在彈出框內播放視頻", + "post_status_content_type": "發文內容類型", + "preload_images": "預載圖片", + "presets": "預置", + "profile_background": "配置文件背景圖", + "profile_banner": "橫幅圖片", + "profile_fields": { + "add_field": "添加字段", + "label": "個人資料元數據", + "name": "標籤", + "value": "內容" + }, + "profile_tab": "個人資料", + "radii_help": "設置界面邊緣的圓角 (單位:像素)", + "refresh_token": "刷新token", + "replies_in_timeline": "時間線中的回覆", + "reply_visibility_all": "顯示所有回覆", + "reply_visibility_following": "只顯示發送給我的回覆/發送給我關注的用戶的回覆", + "reply_visibility_following_short": "顯示對我關注的人的回复", + "reply_visibility_self": "只顯示發送給我的回覆", + "reply_visibility_self_short": "只顯示對我本人的回复", + "reset_avatar": "重置頭像", + "reset_avatar_confirm": "您確定要重置頭像嗎?", + "reset_background_confirm": "您確定要重置個人資料背景圖嗎?", + "reset_banner_confirm": "您確定要重置橫幅圖片嗎?", + "reset_profile_background": "重置個人資料背景圖", + "reset_profile_banner": "重置橫幅圖片", + "revoke_token": "撤消", + "right_sidebar": "在右側顯示側邊欄", + "save": "保存更改", + "saving_err": "保存設置時發生錯誤", + "saving_ok": "設置已保存", + "scope_copy": "回覆時的複製範圍(私信是總是複製的)", + "search_user_to_block": "搜索你想屏蔽的用戶", + "search_user_to_mute": "搜索你想要隱藏的用戶", + "security": "安全", + "security_tab": "安全", + "sensitive_by_default": "默認標記發文為敏感內容", + "set_new_avatar": "設置新頭像", + "set_new_profile_background": "設置新的個人背景", + "set_new_profile_banner": "設置新的個人橫幅", + "setting_changed": "與默認設置不同", + "settings": "設置", + "show_admin_badge": "顯示管理徽章", + "show_moderator_badge": "顯示主持人徽章", + "stop_gifs": "鼠標懸停時播放GIF", + "streaming": "開啟滾動到頂部時的自動推送", + "style": { + "advanced_colors": { + "_tab_label": "高级", + "alert": "提醒或警告背景色", + "alert_error": "錯誤", + "alert_neutral": "中性", + "alert_warning": "警告", + "badge": "徽章背景", + "badge_notification": "通知", + "borders": "邊框", + "buttons": "按鈕", + "chat": { + "border": "邊框", + "incoming": "收到", + "outgoing": "發出" + }, + "disabled": "關閉", + "faint_text": "灰度文字", + "highlight": "強調元素", + "icons": "圖標", + "inputs": "輸入框", + "panel_header": "面板標題", + "poll": "投票統計圖", + "popover": "提示框,菜單,彈出框", + "post": "帖子/用戶簡介", + "pressed": "按下", + "selectedMenu": "選中的菜單項", + "selectedPost": "選中的帖子", + "tabs": "標籤", + "toggled": "切換", + "top_bar": "頂欄", + "underlay": "底襯", + "wallpaper": "桌布" + }, + "common": { + "color": "顏色", + "contrast": { + "context": { + "18pt": "大字文本 (18pt+)", + "text": "文本" + }, + "hint": "對比度是 {ratio}, 它 {level} {context}", + "level": { + "aa": "符合 AA 等級準則(最低)", + "aaa": "符合 AAA 等級準則(推薦)", + "bad": "不符合任何輔助功能指南" + } + }, + "opacity": "透明度" + }, + "common_colors": { + "_tab_label": "共同", + "foreground_hint": "點擊”高級“ 標籤進行細緻的控制", + "main": "常用顏色", + "rgbo": "圖標,強調,徽章" + }, + "fonts": { + "_tab_label": "字體", + "components": { + "input": "輸入框", + "interface": "界面", + "post": "發帖文字", + "postCode": "帖子中使用等間距文字(富文本)" + }, + "custom": "自選", + "family": "字體名稱", + "help": "給用戶界面的元素選擇字體。選擇 “自選”的你必須輸入確切的字體名稱。", + "size": "大小 (像素)", + "weight": "字重 (粗體))" + }, + "preview": { + "button": "按鈕", + "checkbox": "我已經瀏覽了條款及細則", + "content": "內容", + "error": "例子錯誤", + "faint_link": "有用的手冊", + "fine_print": "閱讀我們的 {0} ,然而什麼有用的也學不到!", + "header": "預覽", + "header_faint": "這很正常", + "input": "剛剛抵達洛杉磯.", + "link": "一個很好的小鏈接", + "mono": "內容", + "text": "有堆 {0} 和 {1}" + }, + "radii": { + "_tab_label": "圓角" + }, + "shadows": { + "_tab_label": "陰影和燈光", + "blur": "模糊", + "component": "組件", + "components": { + "avatar": "用戶頭像(在個人資料欄)", + "avatarStatus": "用戶頭像(在帖子顯示欄)", + "button": "按鈕", + "buttonHover": "按鈕(懸停)", + "buttonPressed": "按鈕(按下)", + "buttonPressedHover": "按鈕(按下和懸停)", + "input": "輸入框", + "panel": "面板", + "panelHeader": "面板標題", + "popup": "彈窗和工具提示", + "topBar": "頂欄" + }, + "filter_hint": { + "always_drop_shadow": "警告,此陰影設置會總是使用 {0} ,如果瀏覽器支持的話。", + "avatar_inset": "請注意組合兩個內部和非內部的陰影到頭像上,在透明頭像上可能會有意料之外的效果。", + "drop_shadow_syntax": "{0} 不支持參數 {1} 和關鍵詞 {2} 。", + "inset_classic": "插入內部的陰影會使用 {0}", + "spread_zero": "陰影的擴散 > 0 會同設置成零一樣" + }, + "hintV3": "對於陰影,您還可以使用{0}表示法來使用其他顏色插槽。", + "inset": "插圖", + "override": "覆寫", + "shadow_id": "陰影 #{value}", + "spread": "擴散" + }, + "switcher": { + "clear_all": "清除全部", + "clear_opacity": "清除透明度", + "help": { + "fe_downgraded": "PleromaFE 的版本回滾了。", + "fe_upgraded": "PleromaFE 的主題引擎隨著版本更新升級了。", + "future_version_imported": "您導入的文件來自更高版本的 FE。", + "migration_napshot_gone": "不知出於何種原因,主題快照缺失了,一些地方可能與您印象中的不符。", + "migration_snapshot_ok": "為保萬無一失,載入了主題快照。您可以試著載入主題數據。", + "older_version_imported": "您導入的文件來自舊版本的 FE。", + "snapshot_missing": "在文件中沒有主題快照,所以網站外觀可能會與原來預想的不同。", + "snapshot_present": "載入快照已加載,因此所有值均被覆蓋。 您可以改為載入主題實際數據。", + "snapshot_source_mismatch": "版本衝突:很有可能是 FE 版本回滾後再次升級了,如果您使用舊版本的 FE 更改了主題那麼您可能需要使用舊版本,否則請使用新版本。", + "upgraded_from_v2": "PleromaFE 已升級,主題會和你記憶中的不太一樣。", + "v2_imported": "您導入的文件是舊版 FE 的。我們儘可能保持兼容性,但還是可能出現不一致的情況。" + }, + "keep_as_is": "保持原狀", + "keep_color": "保留顏色", + "keep_fonts": "保留字體", + "keep_opacity": "保留透明度", + "keep_roundness": "保留圓角", + "keep_shadows": "保留陰影", + "load_theme": "載入主題", + "reset": "重置", + "save_load_hint": "\"保留\" 選項在選擇或載入主題時保留當前設置的選項,在導出主題時還會存儲上述選項。當所有複選框未設置時,導出主題將保存所有內容。", + "use_snapshot": "舊版", + "use_source": "新版本" + } + }, + "subject_input_always_show": "總是顯示主題框", + "subject_line_behavior": "回覆時複製主題", + "subject_line_email": "比如電郵: \"re: 主題\"", + "subject_line_mastodon": "比如mastodon: copy as is", + "subject_line_noop": "不要複製", + "text": "文本", + "theme": "主題", + "theme_help": "使用十六進制代碼(#rrggbb)來設置主題顏色。", + "theme_help_v2_1": "你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。", + "theme_help_v2_2": "某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。", + "token": "代幣", + "tooltipRadius": "提醒", + "type_domains_to_mute": "搜索需要隱藏的域名", + "upload_a_photo": "上傳照片", + "useStreamingApi": "實時接收發佈以及通知", + "useStreamingApiWarning": "(不推薦使用,實驗性的,已知跳過文章)", + "use_contain_fit": "生成縮略圖時不要裁剪附件", + "use_one_click_nsfw": "點擊一次以打開工作場所不適宜的附件", + "user_mutes": "用户", + "user_settings": "用戶設置", + "valid_until": "有效期至", + "values": { + "false": "否", + "true": "是" + }, + "version": { + "backend_version": "後端版本", + "frontend_version": "前端版本", + "title": "版本" + }, + "virtual_scrolling": "優化時間線渲染", + "word_filter": "詞過濾" }, - "notification_setting_block_from_strangers": "屏蔽來自你沒有關注的用戶的通知", - "user_mutes": "用户", - "hide_followers_count_description": "不顯示關注者數量", - "no_rich_text_description": "不顯示富文本格式", - "notification_visibility_moves": "用戶遷移", - "notification_visibility_repeats": "轉發", - "notification_visibility_mentions": "提及", - "notification_visibility_likes": "喜歡", - "interfaceLanguage": "界面語言", - "instance_default": "(默認:{value})", - "inputRadius": "輸入框", - "import_theme": "導入預置主題", - "import_followers_from_a_csv_file": "從 csv 文件中導入關注", - "import_blocks_from_a_csv_file": "從 csv 文件中導入封鎖黑名單名單", - "hide_filtered_statuses": "隱藏過濾的發文", - "lock_account_description": "你需要手動審核關注請求", - "loop_video": "循環視頻", - "loop_video_silent_only": "只循環沒有聲音的視頻(例如:Mastodon 裡的“GIF”)", - "mutes_tab": "靜音", - "play_videos_in_modal": "在彈出框內播放視頻", - "profile_fields": { - "add_field": "添加字段", - "name": "標籤", - "value": "內容", - "label": "個人資料元數據" + "status": { + "bookmark": "書籤", + "copy_link": "複製發文鏈接", + "delete": "刪除發文", + "delete_confirm": "你真的想要刪除這條發文嗎?", + "expand": "展开", + "external_source": "外部來源", + "favorites": "喜歡", + "hide_content": "隱藏內容", + "hide_full_subject": "隱藏完整標題", + "mute_conversation": "靜音對話", + "nsfw": "工作不安全", + "pin": "在個人資料置頂", + "pinned": "置頂", + "repeats": "轉發", + "replies_list": "回覆:", + "reply_to": "回覆", + "show_content": "顯示內容", + "show_full_subject": "顯示完整標題", + "status_deleted": "該帖已被刪除", + "status_unavailable": "發文不可取得", + "thread_muted": "静音線程", + "thread_muted_and_words": ",有这些字:", + "unbookmark": "取消書籤", + "unmute_conversation": "對話取消靜音", + "unpin": "取消在個人資料置頂" }, - "use_contain_fit": "生成縮略圖時不要裁剪附件", - "notification_visibility": "要顯示的通知類型", - "notification_visibility_follows": "關注", - "new_email": "新電郵", - "subject_line_mastodon": "比如mastodon: copy as is", - "reset_background_confirm": "您確定要重置個人資料背景圖嗎?", - "reset_banner_confirm": "您確定要重置橫幅圖片嗎?", - "reset_avatar_confirm": "您確定要重置頭像嗎?", - "reset_profile_banner": "重置橫幅圖片", - "reset_profile_background": "重置個人資料背景圖", - "reset_avatar": "重置頭像", - "discoverable": "允許通過搜索檢索等服務找到此賬號", - "delete_account_error": "刪除賬戶時發生錯誤,如果一直刪除不了,請聯繫實例管理員。", - "composing": "寫作設置", - "chatMessageRadius": "聊天訊息", - "mfa": { - "confirm_and_enable": "確認並啟用OTP", - "setup_otp": "設置OTP", - "otp": "OTP", - "wait_pre_setup_otp": "預設OTP", - "verify": { - "desc": "要啟用雙因素驗證,請把你的雙因素驗證 app 裡的數字輸入:" - }, - "scan": { - "secret_code": "密鑰", - "desc": "使用你的雙因素驗證 app,掃瞄這個二維碼,或者輸入這些文字密鑰:", - "title": "掃瞄" - }, - "authentication_methods": "身份驗證方法", - "recovery_codes_warning": "抄寫這些號碼,或者保存在安全的地方。這些號碼不會再次顯示。如果你無法訪問你的 2FA app,也丟失了你的恢復碼,你的賬號就再也無法登錄了。", - "waiting_a_recovery_codes": "正在接收備份碼…", - "recovery_codes": "恢復碼。", - "warning_of_generate_new_codes": "當你生成新的恢復碼時,你的舊恢復碼就失效了。", - "generate_new_recovery_codes": "生成新的恢復碼", - "title": "雙因素驗證" + "time": { + "in_future": "還有 {0}", + "in_past": "{0} 之前", + "now": "剛剛", + "now_short": "剛剛", + "unit": { + "days": "{0} 天", + "days_short": "{0}天", + "hours": "{0} 時", + "hours_short": "{0}時", + "minutes": "{0} 分鐘", + "minutes_short": "{0} 分", + "months": "{0} 月", + "months_short": "{0} 月", + "seconds": "{0} 秒", + "seconds_short": "{0} 秒", + "weeks": "{0}周", + "weeks_short": "{0}周", + "years": "{0} 年", + "years_short": "{0} y" + } }, - "new_password": "新密碼", - "name_bio": "名字及簡介", - "name": "名字", - "domain_mutes": "域名", - "delete_account_instructions": "在下面輸入密碼,以確認刪除帳戶。", - "delete_account_description": "永久刪除你的帳號和所有數據。", - "delete_account": "刪除帳戶", - "default_vis": "默認可見性範圍", - "data_import_export_tab": "數據導入/導出", - "mutes_and_blocks": "靜音與封鎖", - "current_password": "當前密碼", - "confirm_new_password": "確認新密碼", - "collapse_subject": "摺疊帶標題的內容", - "checkboxRadius": "複選框", - "instance_default_simple": "(默認)", - "interface": "界面", - "invalid_theme_imported": "您所選擇的主題文件不被 Pleroma 支持,因此主題未被修改。", - "limited_availability": "在您的瀏覽器中無法使用", - "links": "鏈接", - "changed_password": "成功修改了密碼!", - "change_password_error": "修改密碼的時候出了點問題。", - "change_password": "修改密碼", - "changed_email": "郵箱修改成功!", - "bot": "這是一個機器人賬號", - "change_email": "修改電子郵箱", - "cRed": "紅色(取消)", - "cOrange": "橙色(收藏)", - "cGreen": "綠色(轉發)", - "cBlue": "藍色(回覆,關注)", - "btnRadius": "按鈕", - "notification_visibility_emoji_reactions": "互動", - "no_blocks": "沒有封鎖", - "no_mutes": "沒有靜音", - "hide_follows_description": "不要顯示我所關注的人", - "hide_followers_description": "不要顯示關注我的人", - "hide_follows_count_description": "不顯示關注數", - "nsfw_clickthrough": "將敏感附件和鏈接隱藏,點擊才能打開", - "valid_until": "有效期至", - "panelRadius": "面板", - "pause_on_unfocused": "在離開頁面時暫停時間線推送", - "notifications": "通知", - "notification_setting_filters": "過濾器", - "notification_setting_privacy": "隱私", - "notification_mutes": "要停止收到某個指定的用戶的通知,請使用靜音功能。", - "notification_blocks": "封鎖一個用戶會停掉所有他的通知,等同於取消關注。", - "enable_web_push_notifications": "啟用 web 推送通知", - "presets": "預置", - "profile_background": "配置文件背景圖", - "profile_banner": "橫幅圖片", - "profile_tab": "個人資料", - "radii_help": "設置界面邊緣的圓角 (單位:像素)", - "reply_visibility_all": "顯示所有回覆", - "autohide_floating_post_button": "自動隱藏新帖子的按鈕(移動設備)", - "saving_err": "保存設置時發生錯誤", - "saving_ok": "設置已保存", - "search_user_to_block": "搜索你想屏蔽的用戶", - "search_user_to_mute": "搜索你想要隱藏的用戶", - "security_tab": "安全", - "set_new_avatar": "設置新頭像", - "set_new_profile_background": "設置新的個人背景", - "set_new_profile_banner": "設置新的個人橫幅", - "settings": "設置", - "subject_input_always_show": "總是顯示主題框", - "subject_line_behavior": "回覆時複製主題", - "subject_line_email": "比如電郵: \"re: 主題\"", - "subject_line_noop": "不要複製", - "post_status_content_type": "發文內容類型", - "stop_gifs": "鼠標懸停時播放GIF", - "streaming": "開啟滾動到頂部時的自動推送", - "text": "文本", - "theme": "主題", - "theme_help": "使用十六進制代碼(#rrggbb)來設置主題顏色。", - "theme_help_v2_1": "你也可以通過切換複選框來覆蓋某些組件的顏色和透明。使用“清除所有”來清楚所有覆蓋設置。", - "theme_help_v2_2": "某些條目下的圖標是背景或文本對比指示器,鼠標懸停可以獲取詳細信息。請記住,使用透明度來顯示最差的情況。", - "tooltipRadius": "提醒", - "upload_a_photo": "上傳照片", - "user_settings": "用戶設置", - "values": { - "false": "否", - "true": "是" + "timeline": { + "collapse": "摺疊", + "conversation": "對話", + "error": "取得時間線時發生錯誤:{0}", + "load_older": "載入更早的發文", + "no_more_statuses": "没有更多發文", + "no_retweet_hint": "這條內容僅關注者可見,或者是私信,因此不能轉發", + "no_statuses": "没有發文", + "reload": "重新載入", + "repeated": "已轉發", + "show_new": "顯示新內容", + "socket_broke": "丟失實時連接:CloseEvent代碼{0}", + "socket_reconnected": "已建立實時連接", + "up_to_date": "已是最新" }, - "avatar_size_instruction": "推薦的頭像圖片最小的尺寸是 150x150 像素。", - "emoji_reactions_on_timeline": "在時間線上顯示繪文字互動", - "export_theme": "導出預置主題", - "filtering": "過濾", - "filtering_explanation": "所有包含以下詞彙的內容都會被隱藏,一行一個", - "follow_export": "導出關注", - "follow_export_button": "將關注導出成 csv 文件", - "follow_import": "導入關注", - "follow_import_error": "導入關注時錯誤", - "follows_imported": "關注已導入!尚需要一些時間來處理。", - "hide_attachments_in_convo": "在對話中隱藏附件", - "hide_attachments_in_tl": "在時間線上隱藏附件", - "hide_muted_posts": "不顯示被靜音的用戶的帖子", - "max_thumbnails": "最多每個帖子所能顯示的縮略圖數量", - "hide_isp": "隱藏指定實例的面板", - "preload_images": "預載圖片", - "use_one_click_nsfw": "點擊一次以打開工作場所不適宜的附件", - "hide_post_stats": "隱藏帖子的統計數據(例如:收藏的次數)", - "hide_user_stats": "隱藏用戶的統計數據(例如:關注者的數量)", - "general": "通用", - "foreground": "前景", - "blocks_tab": "封鎖", - "blocks_imported": "封鎖黑名單導入成功!需要一點時間來處理。", - "block_import_error": "導入封鎖黑名單出錯", - "block_import": "封鎖黑名單導入", - "block_export_button": "導出你的封鎖黑名單到一個 csv 文件", - "block_export": "封鎖黑名單導出", - "bio": "簡介", - "background": "背景", - "avatarRadius": "頭像", - "avatarAltRadius": "頭像(通知)", - "avatar": "頭像", - "attachments": "附件", - "attachmentRadius": "附件", - "allow_following_move": "正在關注的賬號遷移時自動重新關注", - "enter_current_password_to_confirm": "輸入你當前密碼來確認你的身份", - "security": "安全", - "app_name": "App 名稱", - "change_email_error": "修改你的電子郵箱時發生錯誤。", - "type_domains_to_mute": "搜索需要隱藏的域名", - "pad_emoji": "從繪文字選擇器插入繪文字時,在繪文字兩側插入空格", - "useStreamingApi": "實時接收發佈以及通知", - "minimal_scopes_mode": "最小發文範圍", - "scope_copy": "回覆時的複製範圍(私信是總是複製的)", - "reply_visibility_self": "只顯示發送給我的回覆", - "reply_visibility_following": "只顯示發送給我的回覆/發送給我關注的用戶的回覆", - "replies_in_timeline": "時間線中的回覆", - "revoke_token": "撤消", - "show_admin_badge": "顯示管理徽章", - "accent": "強調色", - "greentext": "前文箭頭", - "show_moderator_badge": "顯示主持人徽章", - "oauth_tokens": "OAuth代幣", - "token": "代幣", - "refresh_token": "刷新token", - "useStreamingApiWarning": "(不推薦使用,實驗性的,已知跳過文章)", - "fun": "有趣", - "notification_setting_hide_notification_contents": "隱藏推送通知中的發送者與內容信息", - "version": { - "title": "版本", - "backend_version": "後端版本", - "frontend_version": "前端版本" + "tool_tip": { + "accept_follow_request": "接受關注請求", + "add_reaction": "添加互動", + "bookmark": "書籤", + "favorite": "喜歡", + "media_upload": "上傳多媒體", + "reject_follow_request": "拒絕關注請求", + "repeat": "轉發", + "reply": "回覆", + "user_settings": "用戶設置" }, - "virtual_scrolling": "優化時間線渲染", - "import_mutes_from_a_csv_file": "從CSV文件導入靜音", - "mutes_imported": "靜音導入了!處理它們將需要一段時間。", - "mute_import": "靜音導入", - "mute_import_error": "導入靜音時出錯", - "mute_export_button": "將靜音導出到csv文件", - "mute_export": "靜音導出", - "hide_wallpaper": "隱藏實例桌布", - "reply_visibility_self_short": "只顯示對我本人的回复", - "reply_visibility_following_short": "顯示對我關注的人的回复", - "hide_all_muted_posts": "不顯示已隱藏的帖子", - "hide_media_previews": "隱藏媒體預覽", - "word_filter": "詞過濾", - "setting_changed": "與默認設置不同", - "more_settings": "更多設置", - "save": "保存更改", - "file_export_import": { - "errors": { - "invalid_file": "所選文件不是受支持的Pleroma設置備份。 沒有進行任何更改。", - "file_too_new": "不兼容的主版本:{fileMajor},此 PleromaFE(設置版本 {feMajor})過舊,無法處理", - "file_too_old": "不兼容的主版本:{fileMajor},文件版本過舊,不受支持(最小設置版本 {feMajor})", - "file_slightly_new": "檔案的小版本不同,有些設置可能無法載入" - }, - "restore_settings": "從文件還原設置", - "backup_settings_theme": "備份設置和主題到文件", - "backup_settings": "備份設置到文件", - "backup_restore": "設定備份" + "upload": { + "error": { + "base": "上傳失敗。", + "default": "稍後再試", + "file_too_big": "文件太大[{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", + "message": "上傳錯誤:{0}" + }, + "file_size_units": { + "B": "B", + "GiB": "GiB", + "KiB": "KiB", + "MiB": "MiB", + "TiB": "TiB" + } }, - "sensitive_by_default": "默認標記發文為敏感內容", - "right_sidebar": "在右側顯示側邊欄", - "hide_shoutbox": "隱藏實例留言框" - }, - "chats": { - "more": "更多", - "delete_confirm": "您確實要刪除此消息嗎?", - "error_loading_chat": "加載聊天時出了點問題。", - "error_sending_message": "發送消息時出了點問題。", - "empty_chat_list_placeholder": "您還沒有任何聊天記錄。 開始新的聊天!", - "new": "新聊天", - "empty_message_error": "無法發布空消息", - "you": "你:", - "message_user": "發消息給 {nickname}", - "delete": "刪除", - "chats": "聊天" - }, - "file_type": { - "audio": "音頻", - "video": "視頻", - "image": "图片", - "file": "檔案" - }, - "display_date": { - "today": "今天" - }, - "status": { - "mute_conversation": "靜音對話", - "replies_list": "回覆:", - "reply_to": "回覆", - "pin": "在個人資料置頂", - "unpin": "取消在個人資料置頂", - "favorites": "喜歡", - "repeats": "轉發", - "delete": "刪除發文", - "pinned": "置頂", - "bookmark": "書籤", - "unbookmark": "取消書籤", - "delete_confirm": "你真的想要刪除這條發文嗎?", - "unmute_conversation": "對話取消靜音", - "status_unavailable": "發文不可取得", - "copy_link": "複製發文鏈接", - "thread_muted": "静音線程", - "show_full_subject": "顯示完整標題", - "thread_muted_and_words": ",有这些字:", - "hide_full_subject": "隱藏完整標題", - "show_content": "顯示內容", - "hide_content": "隱藏內容", - "status_deleted": "該帖已被刪除", - "expand": "展开", - "external_source": "外部來源", - "nsfw": "工作不安全" - }, - "time": { - "in_future": "還有 {0}", - "in_past": "{0} 之前", - "now": "剛剛", - "now_short": "剛剛", - "unit": { - "hours": "{0} 時", - "days_short": "{0}天", - "day_short": "{0}天", - "days": "{0} 天", - "hour": "{0} 時", - "hour_short": "{0}時", - "hours_short": "{0}時", - "years_short": "{0} y", - "day": "{0} 天", - "minute": "{0} 分鐘", - "minute_short": "{0} 分", - "minutes_short": "{0} 分", - "minutes": "{0} 分鐘", - "month": "{0} 月", - "months": "{0} 月", - "month_short": "{0} 月", - "months_short": "{0} 月", - "second": "{0} 秒", - "seconds": "{0} 秒", - "second_short": "{0} 秒", - "seconds_short": "{0} 秒", - "week": "{0}周", - "weeks": "{0}周", - "week_short": "{0}周", - "weeks_short": "{0}周", - "year": "{0} 年", - "years": "{0} 年", - "year_short": "{0}年" + "user_card": { + "admin_menu": { + "activate_account": "啟用賬號", + "deactivate_account": "關閉賬號", + "delete_account": "刪除賬號", + "delete_user": "刪除用戶", + "disable_any_subscription": "完全禁止關注用戶", + "disable_remote_subscription": "禁止從遠程實例關注用戶", + "force_nsfw": "標記所有的帖子都是工作場合不適", + "force_unlisted": "強制帖子為不公開", + "grant_admin": "賦予管理權限", + "grant_moderator": "賦予主持人權限", + "moderation": "調停", + "quarantine": "從聯合實例中禁止用戶帖子", + "revoke_admin": "撤銷管理權限", + "revoke_moderator": "撤銷主持人權限", + "sandbox": "強制帖子為只有關注者可看", + "strip_media": "從帖子裡刪除媒體文件" + }, + "approve": "批准", + "block": "封鎖", + "block_progress": "封鎖中…", + "blocked": "已封鎖!", + "bot": "機器人", + "deny": "拒絕", + "edit_profile": "編輯個人資料", + "favorites": "喜歡", + "follow": "關注", + "follow_progress": "請求中…", + "follow_sent": "請求已發送!", + "follow_unfollow": "取消關注", + "followees": "正在關注", + "followers": "關注者", + "following": "正在關注!", + "follows_you": "關注了你!", + "hidden": "已隱藏", + "hide_repeats": "隱藏轉發", + "highlight": { + "disabled": "無突出顯示", + "side": "彩條", + "solid": "單色背景", + "striped": "條紋背景" + }, + "its_you": "就是你!!", + "media": "媒體", + "mention": "提及", + "message": "消息", + "mute": "靜音", + "mute_progress": "靜音中…", + "muted": "已靜音", + "per_day": "每天", + "remote_follow": "跨站關注", + "report": "報告", + "show_repeats": "顯示轉發", + "statuses": "發文", + "subscribe": "訂閱", + "unblock": "取消封鎖", + "unblock_progress": "取消封鎖中…", + "unmute": "取消靜音", + "unmute_progress": "取消靜音中…", + "unsubscribe": "退訂" + }, + "user_profile": { + "profile_does_not_exist": "抱歉,此個人資料不存在。", + "profile_loading_error": "抱歉,載入個人資料時出錯。", + "timeline_title": "用戶時間線" + }, + "user_reporting": { + "add_comment_description": "此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:", + "additional_comments": "其它評論", + "forward_description": "這個賬號是從另外一個服務器。同時發送一個報告到那裡?", + "forward_to": "轉發 {0}", + "generic_error": "當處理你的請求時,發生了一個錯誤。", + "submit": "提交", + "title": "報告 {0}" + }, + "who_to_follow": { + "more": "更多", + "who_to_follow": "推薦關注" } - }, - "post_status": { - "media_description_error": "無法更新媒體,請重試", - "media_description": "媒體描述", - "scope": { - "unlisted": "不公開 - 不會發送到公共時間軸", - "public": "公共 - 發送到公共時間軸", - "private": "僅關注者 - 只有關注了你的人能看到", - "direct": "私信 - 只發送給被提及的用戶" - }, - "scope_notice": { - "unlisted": "本條內容既不在公共時間線,也不會在所有已知網絡上可見", - "private": "關注你的人才能看到本條內容", - "public": "本條帖子可以被所有人看到" - }, - "preview_empty": "空的", - "preview": "預覽", - "posting": "正在發送", - "direct_warning_to_first_only": "本條內容只有被在消息開始處提及的用戶能夠看到。", - "direct_warning_to_all": "本條內容只有被提及的用戶能夠看到。", - "account_not_locked_warning": "你的帳號沒有 {0}。任何人都可以關注你並瀏覽你的上鎖內容。", - "new_status": "發佈新發文", - "content_warning": "主題(可選)", - "content_type": { - "text/bbcode": "BBCode", - "text/markdown": "Markdown", - "text/html": "HTML", - "text/plain": "純文本" - }, - "attachments_sensitive": "標記附件為敏感內容", - "account_not_locked_warning_link": "上鎖", - "default": "剛剛抵達洛杉磯。", - "empty_status_error": "不能發布沒有內容,沒有附件的發文", - "post": "發送" - }, - "errors": { - "storage_unavailable": "Pleroma無法訪問瀏覽器存儲。您的登錄名或本地設置將不會保存,您可能會遇到意外問題。嘗試啟用Cookie。" - }, - "timeline": { - "error_fetching": "獲取更新時發生錯誤", - "conversation": "對話", - "no_retweet_hint": "這條內容僅關注者可見,或者是私信,因此不能轉發", - "collapse": "摺疊", - "load_older": "載入更早的發文", - "repeated": "已轉發", - "show_new": "顯示新內容", - "reload": "重新載入", - "up_to_date": "已是最新", - "no_more_statuses": "没有更多發文", - "no_statuses": "没有發文", - "error": "取得時間線時發生錯誤:{0}", - "socket_reconnected": "已建立實時連接", - "socket_broke": "丟失實時連接:CloseEvent代碼{0}" - }, - "interactions": { - "load_older": "載入更早的互動", - "moves": "用戶遷移", - "follows": "新的關注者", - "favs_repeats": "轉發和喜歡" - }, - "selectable_list": { - "select_all": "選擇全部" - }, - "remote_user_resolver": { - "error": "未找到。", - "searching_for": "搜索", - "remote_user_resolver": "遠程用戶解析器" - }, - "registration": { - "validations": { - "password_confirmation_match": "不能和密碼一樣", - "password_confirmation_required": "不能留空", - "password_required": "不能留空", - "email_required": "不能留空", - "fullname_required": "不能留空", - "username_required": "不能留空" - }, - "fullname": "顯示名稱", - "bio_placeholder": "例如:\n你好,我是玲音。\n我是一個住在日本郊區的動畫少女。你可能在 Wired 見過我。", - "fullname_placeholder": "例如:岩倉玲音", - "username_placeholder": "例如:lain", - "new_captcha": "點擊圖片獲取新的驗證碼", - "captcha": "CAPTCHA", - "token": "邀請碼", - "registration": "註冊", - "password_confirm": "確認密碼", - "email": "電子郵箱", - "bio": "簡介", - "reason_placeholder": "此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。", - "reason": "註冊理由", - "register": "註冊" - }, - "user_card": { - "its_you": "就是你!!", - "media": "媒體", - "per_day": "每天", - "remote_follow": "跨站關注", - "subscribe": "訂閱", - "mute_progress": "靜音中…", - "admin_menu": { - "delete_account": "刪除賬號", - "delete_user": "刪除用戶", - "moderation": "調停", - "grant_admin": "賦予管理權限", - "revoke_admin": "撤銷管理權限", - "grant_moderator": "賦予主持人權限", - "revoke_moderator": "撤銷主持人權限", - "activate_account": "啟用賬號", - "deactivate_account": "關閉賬號", - "force_nsfw": "標記所有的帖子都是工作場合不適", - "strip_media": "從帖子裡刪除媒體文件", - "force_unlisted": "強制帖子為不公開", - "sandbox": "強制帖子為只有關注者可看", - "disable_remote_subscription": "禁止從遠程實例關注用戶", - "disable_any_subscription": "完全禁止關注用戶", - "quarantine": "從聯合實例中禁止用戶帖子" - }, - "approve": "批准", - "block": "封鎖", - "blocked": "已封鎖!", - "deny": "拒絕", - "favorites": "喜歡", - "follow": "關注", - "follow_sent": "請求已發送!", - "follow_progress": "請求中…", - "follow_unfollow": "取消關注", - "followees": "正在關注", - "followers": "關注者", - "following": "正在關注!", - "follows_you": "關注了你!", - "hidden": "已隱藏", - "mention": "提及", - "message": "消息", - "mute": "靜音", - "muted": "已靜音", - "report": "報告", - "statuses": "發文", - "unsubscribe": "退訂", - "unblock": "取消封鎖", - "unblock_progress": "取消封鎖中…", - "block_progress": "封鎖中…", - "unmute": "取消靜音", - "unmute_progress": "取消靜音中…", - "hide_repeats": "隱藏轉發", - "show_repeats": "顯示轉發", - "roles": { - "moderator": "主持人", - "admin": "管理員" - }, - "highlight": { - "disabled": "無突出顯示", - "solid": "單色背景", - "striped": "條紋背景", - "side": "彩條" - }, - "bot": "機器人", - "edit_profile": "編輯個人資料" - }, - "user_profile": { - "timeline_title": "用戶時間線", - "profile_does_not_exist": "抱歉,此個人資料不存在。", - "profile_loading_error": "抱歉,載入個人資料時出錯。" - }, - "user_reporting": { - "title": "報告 {0}", - "add_comment_description": "此報告會發送給你的實例管理員。你可以在下面提供更多詳細信息解釋報告的緣由:", - "forward_to": "轉發 {0}", - "submit": "提交", - "generic_error": "當處理你的請求時,發生了一個錯誤。", - "additional_comments": "其它評論", - "forward_description": "這個賬號是從另外一個服務器。同時發送一個報告到那裡?" - }, - "who_to_follow": { - "more": "更多", - "who_to_follow": "推薦關注" - }, - "tool_tip": { - "media_upload": "上傳多媒體", - "repeat": "轉發", - "favorite": "喜歡", - "add_reaction": "添加互動", - "reply": "回覆", - "user_settings": "用戶設置", - "accept_follow_request": "接受關注請求", - "reject_follow_request": "拒絕關注請求", - "bookmark": "書籤" - }, - "upload": { - "file_size_units": { - "B": "B", - "KiB": "KiB", - "TiB": "TiB", - "MiB": "MiB", - "GiB": "GiB" - }, - "error": { - "base": "上傳失敗。", - "file_too_big": "文件太大[{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", - "default": "稍後再試", - "message": "上傳錯誤:{0}" - } - }, - "search": { - "people": "人", - "hashtags": "標籤", - "person_talking": "{count} 人正在討論", - "people_talking": "{count} 人正在討論", - "no_results": "沒有搜索結果" - }, - "password_reset": { - "forgot_password": "忘記密碼了?", - "password_reset": "重置密碼", - "instruction": "輸入你的電郵地址或者用戶名,我們將發送一個鏈接到你的郵箱,用於重置密碼。", - "placeholder": "你的電郵地址或者用戶名", - "check_email": "檢查你的郵箱,會有一個鏈接用於重置密碼。", - "return_home": "回到首頁", - "too_many_requests": "你觸發了嘗試的限制,請稍後再試。", - "password_reset_disabled": "密碼重置已經被禁用。請聯繫你的實例管理員。", - "password_reset_required": "您必須重置密碼才能登陸。", - "password_reset_required_but_mailer_is_disabled": "您必須重置密碼,但是密碼重置被禁用了。請聯繫您所在實例的管理員。" - } -} +} \ No newline at end of file diff --git a/src/modules/config.js b/src/modules/config.js index 9bc23d0c..c3e5b8f8 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -34,6 +34,7 @@ export const defaultState = { // bad name: actually hides posts of muted USERS hideMutedPosts: undefined, // instance default hideMutedThreads: undefined, // instance default + hideThreadsWithBlockedUsers: undefined, // instance default hideWordFilteredPosts: undefined, // instance default muteBotStatuses: undefined, // instance default collapseMessageWithSubject: undefined, // instance default diff --git a/src/modules/instance.js b/src/modules/instance.js index 8fe7f7a0..1ab6365f 100644 --- a/src/modules/instance.js +++ b/src/modules/instance.js @@ -30,6 +30,7 @@ const defaultState = { // bad name: actually hides posts of muted USERS hideMutedPosts: false, hideMutedThreads: true, + hideThreadsWithBlockedUsers: false, hideWordFilteredPosts: false, hidePostStats: false, hideBotIndication: false, diff --git a/src/modules/lists.js b/src/modules/lists.js index 0f751671..58700f41 100644 --- a/src/modules/lists.js +++ b/src/modules/lists.js @@ -57,12 +57,16 @@ const actions = { commit('setList', { id, title }) }, setListAccounts ({ rootState, commit }, { id, accountIds }) { + const saved = rootState.lists.allListsObject[id].accountIds + const added = accountIds.filter(id => !saved.includes(id)) + const removed = saved.filter(id => !accountIds.includes(id)) commit('setListAccounts', { id, accountIds }) - rootState.api.backendInteractor.addAccountsToList({ id, accountIds }) - rootState.api.backendInteractor.removeAccountsFromList({ - id, - accountIds: rootState.lists.allListsObject[id].accountIds.filter(id => !accountIds.includes(id)) - }) + if (added.length > 0) { + rootState.api.backendInteractor.addAccountsToList({ id, accountIds: added }) + } + if (removed.length > 0) { + rootState.api.backendInteractor.removeAccountsFromList({ id, accountIds: removed }) + } }, deleteList ({ rootState, commit }, { id }) { rootState.api.backendInteractor.deleteList({ id }) @@ -76,7 +80,7 @@ export const getters = { return state.allListsObject[id].title }, findListAccounts: state => id => { - return state.allListsObject[id].accountIds + return [...state.allListsObject[id].accountIds] } } diff --git a/src/services/favicon_service/favicon_service.js b/src/services/favicon_service/favicon_service.js index 7e19629d..801c65b8 100644 --- a/src/services/favicon_service/favicon_service.js +++ b/src/services/favicon_service/favicon_service.js @@ -3,6 +3,7 @@ const createFaviconService = () => { const faviconWidth = 128 const faviconHeight = 128 const badgeRadius = 32 + const gapWidth = 24 const initFaviconService = () => { const nodes = document.querySelectorAll('link[rel="icon"]') @@ -47,6 +48,14 @@ const createFaviconService = () => { if (isImageLoaded(favimg)) { favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight) } + + // draw bigger transparent circle to create gap + favcontext.globalCompositeOperation = 'destination-out' + favcontext.beginPath() + favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius + gapWidth, 0, 2 * Math.PI, false) + favcontext.fill() + + favcontext.globalCompositeOperation = 'source-over' favcontext.fillStyle = badgeColor favcontext.beginPath() favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false) diff --git a/static/mfm.css b/static/mfm.css index a59ec2ce..ae60eb23 100644 --- a/static/mfm.css +++ b/static/mfm.css @@ -37,11 +37,11 @@ } ._mfm_jump_ { - animation: mfm-jump 0.75 linear infinite; + animation: mfm-jump 0.75s linear infinite; } ._mfm_bounce_ { - animation: mfm-bounce 0.75 linear infinite; + animation: mfm-bounce 0.75s linear infinite; transform-origin: center bottom; } @@ -67,7 +67,13 @@ font-size: 600%; } -/* blur */ +._mfm_blur_ { + filter: blur(6px); + transition: filter 0.3s +} +._mfm_blur_:hover { + filter: blur(0px); +} ._mfm_rainbow_ { animation: mfm-rainbow 1s linear infinite; diff --git a/yarn.lock b/yarn.lock index 6f5f927a..a761ad0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,27 +3,28 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.18.6": +"@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": version "7.18.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== -"@babel/core@7.17.8", "@babel/core@^7.11.6", "@babel/core@^7.12.3": +"@babel/core@7.17.8": version "7.17.8" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== dependencies: "@ampproject/remapping" "^2.1.0" @@ -42,289 +43,265 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/core@>=7.9.0": - version "7.10.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz" - integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.5" - "@babel/types" "^7.10.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz" - integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.17.9", "@babel/core@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59" + integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helpers" "^7.18.6" - "@babel/parser" "^7.18.6" + "@babel/generator" "^7.18.9" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.9" "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.10.5", "@babel/generator@^7.17.7", "@babel/generator@^7.18.6", "@babel/generator@^7.18.7", "@babel/generator@^7.7.2": - version "7.18.7" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz" - integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== +"@babel/generator@^7.17.7", "@babel/generator@^7.18.9", "@babel/generator@^7.7.2": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5" + integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== dependencies: - "@babel/types" "^7.18.7" + "@babel/types" "^7.18.9" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz" - integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== +"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== dependencies: - "@babel/compat-data" "^7.18.6" + "@babel/compat-data" "^7.18.8" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" + integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.3.1", "@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== +"@babel/helper-environment-visitor@^7.18.6", "@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== +"@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== dependencies: "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.17.7", "@babel/helper-module-transforms@^7.18.6": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz" - integrity sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA== +"@babel/helper-module-transforms@^7.17.7", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6" "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.8" - "@babel/types" "^7.18.8" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz" - integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== "@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/helper-simple-access@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz" - integrity sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: "@babel/types" "^7.18.6" "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== "@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== +"@babel/helper-wrap-function@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.9.tgz#ae1feddc6ebbaa2fd79346b77821c3bd73a39646" + integrity sha512-cG2ru3TRAL6a60tfQflpEfs4ldiPwF6YW3zfJiRgmoFVIaC1vGnBBgatfec+ZUziPHkHSaXAuEck3Cdkf3eRpQ== dependencies: - "@babel/helper-function-name" "^7.18.6" + "@babel/helper-function-name" "^7.18.9" "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helpers@^7.10.4", "@babel/helpers@^7.17.8", "@babel/helpers@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz" - integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== +"@babel/helpers@^7.17.8", "@babel/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== dependencies: "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/highlight@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.17.8", "@babel/parser@^7.18.6", "@babel/parser@^7.18.8": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz" - integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.17.8", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539" + integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz" - integrity sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions@^7.16.8", "@babel/plugin-proposal-async-generator-functions@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== dependencies: "@babel/helper-environment-visitor" "^7.18.6" @@ -334,7 +311,7 @@ "@babel/plugin-proposal-class-properties@^7.16.7", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -342,7 +319,7 @@ "@babel/plugin-proposal-class-static-block@^7.16.7", "@babel/plugin-proposal-class-static-block@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -351,39 +328,39 @@ "@babel/plugin-proposal-dynamic-import@^7.16.7", "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.7", "@babel/plugin-proposal-export-namespace-from@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz" - integrity sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw== +"@babel/plugin-proposal-export-namespace-from@^7.16.7", "@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.16.7", "@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.7", "@babel/plugin-proposal-logical-assignment-operators@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz" - integrity sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7", "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -391,43 +368,43 @@ "@babel/plugin-proposal-numeric-separator@^7.16.7", "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.16.7", "@babel/plugin-proposal-object-rest-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz" - integrity sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw== +"@babel/plugin-proposal-object-rest-spread@^7.16.7", "@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-proposal-optional-catch-binding@^7.16.7", "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.7", "@babel/plugin-proposal-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz" - integrity sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA== +"@babel/plugin-proposal-optional-chaining@^7.16.7", "@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.16.11", "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -435,7 +412,7 @@ "@babel/plugin-proposal-private-property-in-object@^7.16.7", "@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -445,7 +422,7 @@ "@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -453,147 +430,147 @@ "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.0.0": - version "7.16.7" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-arrow-functions@^7.16.7", "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-async-to-generator@^7.16.8", "@babel/plugin-transform-async-to-generator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: "@babel/helper-module-imports" "^7.18.6" @@ -602,102 +579,102 @@ "@babel/plugin-transform-block-scoped-functions@^7.16.7", "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.16.7", "@babel/plugin-transform-block-scoping@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz" - integrity sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ== +"@babel/plugin-transform-block-scoping@^7.16.7", "@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-classes@^7.16.7", "@babel/plugin-transform-classes@^7.18.6": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz" - integrity sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg== +"@babel/plugin-transform-classes@^7.16.7", "@babel/plugin-transform-classes@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.7", "@babel/plugin-transform-computed-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz" - integrity sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A== +"@babel/plugin-transform-computed-properties@^7.16.7", "@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.16.7", "@babel/plugin-transform-destructuring@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz" - integrity sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ== +"@babel/plugin-transform-destructuring@^7.16.7", "@babel/plugin-transform-destructuring@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" + integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.16.7", "@babel/plugin-transform-duplicate-keys@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz" - integrity sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg== +"@babel/plugin-transform-duplicate-keys@^7.16.7", "@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.16.7", "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.16.7", "@babel/plugin-transform-for-of@^7.18.6": +"@babel/plugin-transform-for-of@^7.16.7", "@babel/plugin-transform-for-of@^7.18.8": version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.16.7", "@babel/plugin-transform-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz" - integrity sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA== +"@babel/plugin-transform-function-name@^7.16.7", "@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.16.7", "@babel/plugin-transform-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz" - integrity sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q== +"@babel/plugin-transform-literals@^7.16.7", "@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.16.7", "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.16.7", "@babel/plugin-transform-modules-amd@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -706,7 +683,7 @@ "@babel/plugin-transform-modules-commonjs@^7.16.8", "@babel/plugin-transform-modules-commonjs@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -714,20 +691,20 @@ "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.7", "@babel/plugin-transform-modules-systemjs@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz" - integrity sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g== +"@babel/plugin-transform-modules-systemjs@^7.16.7", "@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.16.7", "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -735,7 +712,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.16.8", "@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -743,36 +720,36 @@ "@babel/plugin-transform-new-target@^7.16.7", "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-object-super@^7.16.7", "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.18.6": +"@babel/plugin-transform-parameters@^7.16.7", "@babel/plugin-transform-parameters@^7.18.8": version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-property-literals@^7.16.7", "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.16.7", "@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -780,14 +757,14 @@ "@babel/plugin-transform-reserved-words@^7.16.7", "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-runtime@7.17.0": version "7.17.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== dependencies: "@babel/helper-module-imports" "^7.16.7" @@ -799,50 +776,50 @@ "@babel/plugin-transform-shorthand-properties@^7.16.7", "@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.16.7", "@babel/plugin-transform-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz" - integrity sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw== +"@babel/plugin-transform-spread@^7.16.7", "@babel/plugin-transform-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-transform-sticky-regex@^7.16.7", "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.16.7", "@babel/plugin-transform-template-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz" - integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== +"@babel/plugin-transform-template-literals@^7.16.7", "@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.16.7", "@babel/plugin-transform-typeof-symbol@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz" - integrity sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g== +"@babel/plugin-transform-typeof-symbol@^7.16.7", "@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-escapes@^7.16.7", "@babel/plugin-transform-unicode-escapes@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-unicode-regex@^7.16.7", "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -850,7 +827,7 @@ "@babel/preset-env@7.16.11": version "7.16.11" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== dependencies: "@babel/compat-data" "^7.16.8" @@ -929,28 +906,28 @@ semver "^6.3.0" "@babel/preset-env@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz" - integrity sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.9.tgz#9b3425140d724fbe590322017466580844c7eaff" + integrity sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions" "^7.18.6" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" "@babel/plugin-proposal-private-property-in-object" "^7.18.6" "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" @@ -972,37 +949,37 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.6" - "@babel/plugin-transform-classes" "^7.18.6" - "@babel/plugin-transform-computed-properties" "^7.18.6" - "@babel/plugin-transform-destructuring" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.6" - "@babel/plugin-transform-function-name" "^7.18.6" - "@babel/plugin-transform-literals" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" "@babel/plugin-transform-modules-amd" "^7.18.6" "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" "@babel/plugin-transform-modules-umd" "^7.18.6" "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.18.6" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.6" - "@babel/plugin-transform-typeof-symbol" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" "@babel/plugin-transform-unicode-escapes" "^7.18.6" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" babel-plugin-polyfill-corejs2 "^0.3.1" babel-plugin-polyfill-corejs3 "^0.5.2" babel-plugin-polyfill-regenerator "^0.3.1" @@ -1011,7 +988,7 @@ "@babel/preset-modules@^0.1.5": version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1022,7 +999,7 @@ "@babel/register@7.17.7": version "7.17.7" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.17.7.tgz#5eef3e0f4afc07e25e847720e7b987ae33f08d0b" integrity sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA== dependencies: clone-deep "^4.0.1" @@ -1031,64 +1008,71 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@7.17.8", "@babel/runtime@^7.8.4": +"@babel/runtime@7.17.8": version "7.17.8" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/runtime@^7.8.4": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.0.0", "@babel/template@^7.16.7", "@babel/template@^7.18.6", "@babel/template@^7.3.3": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== dependencies: "@babel/code-frame" "^7.18.6" "@babel/parser" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.13.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8", "@babel/traverse@^7.7.2": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz" - integrity sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98" + integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.7" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/generator" "^7.18.9" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.8" - "@babel/types" "^7.18.8" + "@babel/parser" "^7.18.9" + "@babel/types" "^7.18.9" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.10.5", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.18.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz" - integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f" + integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== dependencies: "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@chenfengyuan/vue-qrcode@2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0.tgz#8cd01f6fc528d471680ebe812ec47c830aea7e63" integrity sha512-33Cfr0zjbc3Dd8d5b1IgzXRAgXH0c2Gv19VI4snS25V/x9Z41eg769tC+Us1x+vqgQQhgD5YUjLnkpkrQfeMSw== "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@eslint/eslintrc@^1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== dependencies: ajv "^6.12.4" @@ -1103,31 +1087,31 @@ "@fortawesome/fontawesome-common-types@^0.2.36": version "0.2.36" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903" integrity sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg== "@fortawesome/fontawesome-common-types@^0.3.0": version "0.3.0" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893" integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w== "@fortawesome/fontawesome-svg-core@1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885" integrity sha512-UIL6crBWhjTNQcONt96ExjUnKt1D68foe3xjEensLDclqQ6YagwCRYVQdrp/hW0ALRp/5Fv/VKw+MqTUWYYvPg== dependencies: "@fortawesome/fontawesome-common-types" "^0.3.0" "@fortawesome/free-regular-svg-icons@5.15.4": version "5.15.4" - resolved "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz#b97edab436954333bbeac09cfc40c6a951081a02" integrity sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw== dependencies: "@fortawesome/fontawesome-common-types" "^0.2.36" "@fortawesome/free-solid-svg-icons@5.15.4": version "5.15.4" - resolved "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz#2a68f3fc3ddda12e52645654142b9e4e8fbb6cc5" integrity sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w== dependencies: "@fortawesome/fontawesome-common-types" "^0.2.36" @@ -1137,9 +1121,14 @@ resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.1.tgz#ced35cefc52b364f7db973f2fe9f50c3dd160715" integrity sha512-CdXZJoCS+aEPec26ZP7hWWU3SaJlQPZSCGdgpQ2qGl2HUmtUUNrI3zC4XWdn1JUmh3t5OuDeRG1qB4eGRNSD4A== +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -1148,12 +1137,12 @@ "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@intlify/bundle-utils@next": version "3.1.0" - resolved "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-3.1.0.tgz#42bff44116bdb49621146cd5622c4c45019c8862" integrity sha512-ghlJ0kR2cCQ8D+poKknC0Xx0ncOt3J3os7CcIAqqIWVF7k6AtGoCDnIru+YzlZcvFRNmP9wEZ7jKliojCdAWNg== dependencies: "@intlify/message-compiler" next @@ -1162,60 +1151,47 @@ source-map "0.6.1" yaml-eslint-parser "^0.3.2" -"@intlify/core-base@9.2.0-beta.39": - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.2.0-beta.39.tgz#a4e312ab6222059e2b615d3f3d3984a3a09b84a8" - integrity sha512-DqPzEIySetW7+m01w9dj0NT6YOsNL+O/qC8QL6rdUPVwCzOhFoILuANruu81qL645TMNi1bClLAIkC5DUKqJJg== +"@intlify/core-base@9.2.0-beta.40": + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.2.0-beta.40.tgz#85df2e183b2102716c5d40795848fc2359354580" + integrity sha512-vOR0lHgtJ3IkzvXLeMQeNeYreFSKG9v3SU8QOD//WKHdBy4QPISs9CZJkYzBeBVCJVZ/eM6OTSbXF8M2k53iCw== dependencies: - "@intlify/devtools-if" "9.2.0-beta.39" - "@intlify/message-compiler" "9.2.0-beta.39" - "@intlify/shared" "9.2.0-beta.39" - "@intlify/vue-devtools" "9.2.0-beta.39" + "@intlify/devtools-if" "9.2.0-beta.40" + "@intlify/message-compiler" "9.2.0-beta.40" + "@intlify/shared" "9.2.0-beta.40" + "@intlify/vue-devtools" "9.2.0-beta.40" -"@intlify/devtools-if@9.2.0-beta.39": - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/@intlify/devtools-if/-/devtools-if-9.2.0-beta.39.tgz#68694d82b2f15658b7327b7293d1d52e69eb5603" - integrity sha512-Xc72sohlnI18ZbV1JdCi2uSHMD9njva2+2tat4cdGAczz6WZOQmGaCsH7hkUwljMWLseTOiPFDEIguQDkdvROg== +"@intlify/devtools-if@9.2.0-beta.40": + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/@intlify/devtools-if/-/devtools-if-9.2.0-beta.40.tgz#bee42fefaaaa590aa5ac7fe2a98777fb84bfaf5e" + integrity sha512-EUiuLxlgortD1dhT0btm3YYIs2vk9kMdcGXiYYbHWRTylc8Iv7Yz47y5Y+IlbZzk51h/nYvuqXE1h9diZZWAvQ== dependencies: - "@intlify/shared" "9.2.0-beta.39" + "@intlify/shared" "9.2.0-beta.40" -"@intlify/message-compiler@9.2.0-beta.39": - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.2.0-beta.39.tgz#047e63ef54c32002e531218097fd1568aff4467b" - integrity sha512-wHb3zzk/H3Wfx9U/SaXVenQ/qq2suqJMl/ppu+IdyGGMZxqC57zFqkgwWxEpqP4DzGeisjHe2myjLZQyV1haEQ== +"@intlify/message-compiler@9.2.0-beta.40", "@intlify/message-compiler@next": + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.2.0-beta.40.tgz#d5d0c5652b9e74e0b4da07a2b8731e1f0e729029" + integrity sha512-6QWTSYewmkew4nsRqgkwTVuGFKzxVCOK8EXsPt15N+tN1g+OYjC3PfGA2dPB6cVkNxqA9mV/hNK02uHPWU9t0A== dependencies: - "@intlify/shared" "9.2.0-beta.39" + "@intlify/shared" "9.2.0-beta.40" source-map "0.6.1" -"@intlify/message-compiler@next": - version "9.2.0-beta.34" - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.0-beta.34.tgz" - integrity sha512-l7JjkXJBW2l6cFZqPvI6oWU6QZn/i70agU6QB02W1O+6quFCFNpsiPswgYyQrmfHt4F4qYhLJUMZltIW/cqcbw== +"@intlify/shared@9.2.0-beta.40", "@intlify/shared@next": + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.2.0-beta.40.tgz#a850936008e6e865310b2a49136d494dd326faab" + integrity sha512-xWz+SFjgt/LfaSbbHVn+V7gmvX4ZNP3cIFta790GWZ/tEgwJeC3tkV7i45iUbZ4ZimOerFgKH05b7qvJlKb6RQ== + +"@intlify/vue-devtools@9.2.0-beta.40": + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/@intlify/vue-devtools/-/vue-devtools-9.2.0-beta.40.tgz#37457fd719b0b6afb0679c33ceb47b0ac77f457c" + integrity sha512-3A0D/E9quf+KWonzXUDk3xNP0+d1DMdtAwyXNTjzFcQPvjugC2Xn6fmsd0kNn7nHjgpB+vwIuamGiuE+S+OULw== dependencies: - "@intlify/shared" "9.2.0-beta.34" - source-map "0.6.1" - -"@intlify/shared@9.2.0-beta.34", "@intlify/shared@next": - version "9.2.0-beta.34" - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.0-beta.34.tgz" - integrity sha512-hbUKcVbTOkLVpnlSeZE1OPgEI7FpvhuZF/gb84xECTjXEImIa3u0fIcJKUUffv3dlAx8fMOE5xKgDzngidm0tw== - -"@intlify/shared@9.2.0-beta.39": - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.2.0-beta.39.tgz#20b6212f29881f164fe863a63c56b490ee9af8e5" - integrity sha512-FqzpkZVk/cTsywWc4mVbI2/fDQwYm8oXVwi7yuassiLps3yJK7P0s6grZaaXIX8gMODNLjJtJPd2KEOSj1lUyw== - -"@intlify/vue-devtools@9.2.0-beta.39": - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/@intlify/vue-devtools/-/vue-devtools-9.2.0-beta.39.tgz#bbfa52d96092825e04d8c36f4060e8fe55214252" - integrity sha512-ZS+feG3k+0IR12qkNCdSoM+iAR2xBW/H1neRPlOCrHUT0cejSHrNMrPrZYFHHXVwqxzeXZVlrv8lzCJP3VFkjQ== - dependencies: - "@intlify/core-base" "9.2.0-beta.39" - "@intlify/shared" "9.2.0-beta.39" + "@intlify/core-base" "9.2.0-beta.40" + "@intlify/shared" "9.2.0-beta.40" "@intlify/vue-i18n-loader@^5.0.0": version "5.0.0" - resolved "https://registry.npmjs.org/@intlify/vue-i18n-loader/-/vue-i18n-loader-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/@intlify/vue-i18n-loader/-/vue-i18n-loader-5.0.0.tgz#26f7b9d55b3feb5d50cdbbd537c7ed4b2396b3fb" integrity sha512-rlqWLHrXdchvI9jsI5XA7/3UqE+4pgBD40d+9DWdyRkKeXfMMO9lmkp21jOKC8afWcK0NW5qzYTjp+JEJ6ymZA== dependencies: "@intlify/bundle-utils" next @@ -1226,7 +1202,7 @@ "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" @@ -1237,112 +1213,112 @@ "@istanbuljs/schema@^0.1.2": version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.1": - version "28.1.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz" - integrity sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA== +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.2.tgz" - integrity sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ== +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== dependencies: - "@jest/console" "^28.1.1" - "@jest/reporters" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.1.2" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" + jest-changed-files "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-resolve-dependencies "^28.1.2" - jest-runner "^28.1.2" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" - jest-watcher "^28.1.1" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.2.tgz" - integrity sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q== +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== dependencies: - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" + jest-mock "^28.1.3" -"@jest/expect-utils@^28.1.1": - version "28.1.1" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.1.tgz" - integrity sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw== +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.2.tgz" - integrity sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw== +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== dependencies: - expect "^28.1.1" - jest-snapshot "^28.1.2" + expect "^28.1.3" + jest-snapshot "^28.1.3" -"@jest/fake-timers@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.2.tgz" - integrity sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg== +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" -"@jest/globals@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.2.tgz" - integrity sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg== +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" -"@jest/reporters@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.2.tgz" - integrity sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA== +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" chalk "^4.0.0" @@ -1355,87 +1331,95 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== dependencies: - "@sinclair/typebox" "^0.23.3" + "@sinclair/typebox" "^0.24.1" "@jest/source-map@^28.1.2": version "28.1.2" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== dependencies: "@jridgewell/trace-mapping" "^0.3.13" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.1": - version "28.1.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz" - integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== dependencies: - "@jest/console" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.1": - version "28.1.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz" - integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== dependencies: - "@jest/test-result" "^28.1.1" + "@jest/test-result" "^28.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" slash "^3.0.0" -"@jest/transform@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.2.tgz" - integrity sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg== +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-regex-util "^28.0.2" - jest-util "^28.1.1" + jest-util "^28.1.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.1.1": - version "28.1.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz" - integrity sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw== +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: "@jridgewell/set-array" "^1.0.1" @@ -1443,23 +1427,23 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": version "0.3.14" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -1467,35 +1451,43 @@ "@kazvmoe-infra/pinch-zoom-element@1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@kazvmoe-infra/pinch-zoom-element/-/pinch-zoom-element-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@kazvmoe-infra/pinch-zoom-element/-/pinch-zoom-element-1.2.0.tgz#eb3ca34c53b4410c689d60aca02f4a497ce84aba" integrity sha512-HBrhH5O/Fsp2bB7EGTXzCsBAVcMjknSagKC5pBdGpKsF8meHISR0kjDIdw4YoE0S+0oNMwJ6ZUZyIBrdywxPPw== dependencies: pointer-tracker "^2.0.3" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + "@npmcli/move-file@^1.0.1": version "1.1.2" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" @@ -1503,7 +1495,7 @@ "@rollup/plugin-babel@^5.3.1": version "5.3.1" - resolved "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== dependencies: "@babel/helper-module-imports" "^7.10.4" @@ -1511,7 +1503,7 @@ "@rollup/plugin-commonjs@^22.0.1": version "22.0.1" - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.1.tgz" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.1.tgz#f7cb777d20de3eeeaf994f39080115c336bef810" integrity sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ== dependencies: "@rollup/pluginutils" "^3.1.0" @@ -1524,60 +1516,55 @@ "@rollup/pluginutils@^3.1.0": version "3.1.0" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== dependencies: "@types/estree" "0.0.39" estree-walker "^1.0.1" picomatch "^2.2.2" -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== +"@sinclair/typebox@^0.24.1": + version "0.24.22" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.22.tgz#0da18e6e75701d6609c7c68fe18002bb1f47345f" + integrity sha512-JsBe3cOFpNZ6yjBYnXKhcENWy5qZE3PQZwExQ5ksA/h8qp4bwwxFmy07A6bC2R6qv6+RF3SfrbQTskTwYNTXUQ== "@sinonjs/commons@^1.7.0": version "1.8.3" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: type-detect "4.0.8" "@sinonjs/fake-timers@^9.1.2": version "9.1.2" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== dependencies: "@sinonjs/commons" "^1.7.0" -"@socket.io/base64-arraybuffer@~1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" - integrity sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ== - "@stylelint/postcss-css-in-js@^0.37.1": - version "0.37.2" - resolved "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz" - integrity sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA== + version "0.37.3" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.3.tgz#d149a385e07ae365b0107314c084cb6c11adbf49" + integrity sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg== dependencies: - "@babel/core" ">=7.9.0" + "@babel/core" "^7.17.9" "@stylelint/postcss-markdown@^0.36.1": - version "0.36.1" - resolved "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz" - integrity sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw== + version "0.36.2" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" + integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== dependencies: - remark "^12.0.0" - unist-util-find-all-after "^3.0.1" + remark "^13.0.0" + unist-util-find-all-after "^3.0.2" "@testim/chrome-version@^1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.0.7.tgz" - integrity sha512-8UT/J+xqCYfn3fKtOznAibsHpiuDshCb0fwgWxRazTT19Igp9ovoXMPhXyLD6m3CKQGTMHgqoxaFfMWaL40Rnw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@testim/chrome-version/-/chrome-version-1.1.2.tgz#092005c5b77bd3bb6576a4677110a11485e11864" + integrity sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw== "@types/babel__core@^7.1.14": version "7.1.19" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== dependencies: "@babel/parser" "^7.1.0" @@ -1588,14 +1575,14 @@ "@types/babel__generator@*": version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" @@ -1603,158 +1590,160 @@ "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": version "7.17.1" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== dependencies: "@babel/types" "^7.3.0" "@types/component-emitter@^1.2.10": version "1.2.11" - resolved "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz" + resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== "@types/cookie@^0.4.1": version "0.4.1" - resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== "@types/cors@^2.8.12": version "2.8.12" - resolved "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/estree@*", "@types/estree@0.0.39": +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@0.0.39": version "0.0.39" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/graceful-fs@^4.1.3": version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== dependencies: "@types/node" "*" "@types/http-proxy@^1.17.3": - version "1.17.8" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz" - integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA== + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.9": - version "7.0.10" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== - -"@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" "@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node@*": - version "14.14.19" - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.19.tgz" - integrity sha512-4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ== - -"@types/node@>=10.0.0": - version "17.0.22" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz" - integrity sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw== +"@types/node@*", "@types/node@>=10.0.0": + version "18.6.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98" + integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.6.3" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" - integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.4.tgz#ad899dad022bab6b5a9f0a0fe67c2f7a4a8950ed" + integrity sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw== "@types/stack-utils@^2.0.0": version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz" - integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== "@types/yargs-parser@*": version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": version "17.0.10" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": - version "2.9.1" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz" - integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== dependencies: "@types/node" "*" -"@typescript-eslint/scope-manager@5.30.5": - version "5.30.5" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz" - integrity sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg== +"@typescript-eslint/scope-manager@5.31.0": + version "5.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.31.0.tgz#f47a794ba84d9b818ab7f8f44fff55a61016c606" + integrity sha512-8jfEzBYDBG88rcXFxajdVavGxb5/XKXyvWgvD8Qix3EEJLCFIdVloJw+r9ww0wbyNLOTYyBsR+4ALNGdlalLLg== dependencies: - "@typescript-eslint/types" "5.30.5" - "@typescript-eslint/visitor-keys" "5.30.5" + "@typescript-eslint/types" "5.31.0" + "@typescript-eslint/visitor-keys" "5.31.0" -"@typescript-eslint/types@5.30.5": - version "5.30.5" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz" - integrity sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw== +"@typescript-eslint/types@5.31.0": + version "5.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.31.0.tgz#7aa389122b64b18e473c1672fb3b8310e5f07a9a" + integrity sha512-/f/rMaEseux+I4wmR6mfpM2wvtNZb1p9hAV77hWfuKc3pmaANp5dLAZSiE3/8oXTYTt3uV9KW5yZKJsMievp6g== -"@typescript-eslint/typescript-estree@5.30.5": - version "5.30.5" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz" - integrity sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ== +"@typescript-eslint/typescript-estree@5.31.0": + version "5.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.31.0.tgz#eb92970c9d6e3946690d50c346fb9b1d745ee882" + integrity sha512-3S625TMcARX71wBc2qubHaoUwMEn+l9TCsaIzYI/ET31Xm2c9YQ+zhGgpydjorwQO9pLfR/6peTzS/0G3J/hDw== dependencies: - "@typescript-eslint/types" "5.30.5" - "@typescript-eslint/visitor-keys" "5.30.5" + "@typescript-eslint/types" "5.31.0" + "@typescript-eslint/visitor-keys" "5.31.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -1762,43 +1751,43 @@ tsutils "^3.21.0" "@typescript-eslint/utils@^5.10.0": - version "5.30.5" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz" - integrity sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA== + version "5.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.31.0.tgz#e146fa00dca948bfe547d665b2138a2dc1b79acd" + integrity sha512-kcVPdQS6VIpVTQ7QnGNKMFtdJdvnStkqS5LeALr4rcwx11G6OWb2HB17NMPnlRHvaZP38hL9iK8DdE9Fne7NYg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.30.5" - "@typescript-eslint/types" "5.30.5" - "@typescript-eslint/typescript-estree" "5.30.5" + "@typescript-eslint/scope-manager" "5.31.0" + "@typescript-eslint/types" "5.31.0" + "@typescript-eslint/typescript-estree" "5.31.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.30.5": - version "5.30.5" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz" - integrity sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA== +"@typescript-eslint/visitor-keys@5.31.0": + version "5.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.31.0.tgz#b0eca264df01ce85dceb76aebff3784629258f54" + integrity sha512-ZK0jVxSjS4gnPirpVjXHz7mgdOsZUHzNYSfTw2yPa3agfbt9YfqaBiBZFSSxeBWnpWkzCxTfUpnzA3Vily/CSg== dependencies: - "@typescript-eslint/types" "5.30.5" + "@typescript-eslint/types" "5.31.0" eslint-visitor-keys "^3.3.0" "@ungap/event-target@0.2.3": version "0.2.3" - resolved "https://registry.npmjs.org/@ungap/event-target/-/event-target-0.2.3.tgz" + resolved "https://registry.yarnpkg.com/@ungap/event-target/-/event-target-0.2.3.tgz#be682c681126dca2371c4e1a1721f8e8bb400905" integrity sha512-7Bz0qdvxNGV9n0f+xcMKU7wsEfK6PNzo8IdAcOiBgMNyCuU0Mk9dv0Hbd/Kgr+MFFfn4xLHFbuOt820egT5qEA== "@vue/babel-helper-vue-jsx-merge-props@1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81" integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA== "@vue/babel-helper-vue-transform-on@^1.0.2": version "1.0.2" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc" integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA== "@vue/babel-plugin-jsx@1.1.1": version "1.1.1" - resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz#0c5bac27880d23f89894cd036a37b55ef61ddfc1" integrity sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w== dependencies: "@babel/helper-module-imports" "^7.0.0" @@ -1811,110 +1800,105 @@ html-tags "^3.1.0" svg-tags "^1.0.0" -"@vue/compiler-core@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz" - integrity sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ== +"@vue/compiler-core@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a" + integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg== dependencies: "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.31" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz" - integrity sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg== +"@vue/compiler-dom@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5" + integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ== dependencies: - "@vue/compiler-core" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/compiler-sfc@3.2.31", "@vue/compiler-sfc@^3.1.0": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz" - integrity sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ== +"@vue/compiler-sfc@3.2.37", "@vue/compiler-sfc@^3.1.0": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" + integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.31" - "@vue/compiler-dom" "3.2.31" - "@vue/compiler-ssr" "3.2.31" - "@vue/reactivity-transform" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-core" "3.2.37" + "@vue/compiler-dom" "3.2.37" + "@vue/compiler-ssr" "3.2.37" + "@vue/reactivity-transform" "3.2.37" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" magic-string "^0.25.7" postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz" - integrity sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw== +"@vue/compiler-ssr@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff" + integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw== dependencies: - "@vue/compiler-dom" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-dom" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.0.0-beta.11": - version "6.1.3" - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.3.tgz" - integrity sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg== - -"@vue/devtools-api@^6.2.1": +"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092" integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ== -"@vue/reactivity-transform@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz" - integrity sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA== +"@vue/reactivity-transform@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca" + integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.31.tgz" - integrity sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw== +"@vue/reactivity@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848" + integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A== dependencies: - "@vue/shared" "3.2.31" + "@vue/shared" "3.2.37" -"@vue/runtime-core@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.31.tgz" - integrity sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA== +"@vue/runtime-core@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz#7ba7c54bb56e5d70edfc2f05766e1ca8519966e3" + integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ== dependencies: - "@vue/reactivity" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/reactivity" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/runtime-dom@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.31.tgz" - integrity sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g== +"@vue/runtime-dom@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz#002bdc8228fa63949317756fb1e92cdd3f9f4bbd" + integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw== dependencies: - "@vue/runtime-core" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/runtime-core" "3.2.37" + "@vue/shared" "3.2.37" csstype "^2.6.8" -"@vue/server-renderer@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.31.tgz" - integrity sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg== +"@vue/server-renderer@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz#840a29c8dcc29bddd9b5f5ffa22b95c0e72afdfc" + integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA== dependencies: - "@vue/compiler-ssr" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-ssr" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/shared@3.2.31": - version "3.2.31" - resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz" - integrity sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ== +"@vue/shared@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" + integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== -"@vue/test-utils@2.0.0-rc.17": - version "2.0.0-rc.17" - resolved "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-rc.17.tgz" - integrity sha512-7LHZKsFRV/HqDoMVY+cJamFzgHgsrmQFalROHC5FMWrzPzd+utG5e11krj1tVsnxYufGA2ABShX4nlcHXED+zQ== +"@vue/test-utils@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.0.2.tgz#0b5edd683366153d5bc5a91edc62f292118710eb" + integrity sha512-E2P4oXSaWDqTZNbmKZFVLrNN/siVN78YkEqs7pHryWerrlZR9bBFLWdJwRoguX45Ru6HxIflzKl4vQvwRMwm5g== "@vuelidate/core@2.0.0-alpha.42": version "2.0.0-alpha.42" @@ -1932,7 +1916,7 @@ "@webassemblyjs/ast@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== dependencies: "@webassemblyjs/helper-module-context" "1.9.0" @@ -1941,46 +1925,46 @@ "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== dependencies: "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -1990,26 +1974,26 @@ "@webassemblyjs/ieee754@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2023,7 +2007,7 @@ "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2034,7 +2018,7 @@ "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2044,7 +2028,7 @@ "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2056,7 +2040,7 @@ "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2068,7 +2052,7 @@ "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2077,26 +2061,27 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abbrev@1, abbrev@1.0.x: +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abbrev@1.0.x: version "1.0.9" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== -accepts@~1.3.4: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2104,45 +2089,42 @@ accepts@~1.3.8: acorn-jsx@^5.0.0, acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^6.0.2, acorn@^6.0.7: - version "6.1.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz" - -acorn@^6.4.1: +acorn@^6.0.2, acorn@^6.0.7, acorn@^6.4.1: version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== agent-base@2: version "2.1.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + integrity sha512-oDtZV740o3fr5oJtPLOsgH2hl2TRPscNXIx4VzzBwVlXVkv8RHm7XXqGAYg8t20+Gwu6LNDnx8HRMGqVGPZ8Vw== dependencies: extend "~3.0.0" semver "~5.0.1" agent-base@6: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2150,20 +2132,17 @@ aggregate-error@^3.0.0: ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0: - version "3.4.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz" - -ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2173,23 +2152,27 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== ansi-colors@^3.0.0: version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" @@ -2201,57 +2184,64 @@ ansi-html-community@0.0.8: ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^5.0.0: version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== ansi-styles@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA== anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -2259,134 +2249,157 @@ anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: aproba@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-find-index@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" + integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.19.5" get-intrinsic "^1.1.1" is-string "^1.0.7" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + version "1.3.0" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" + integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.19.0" + es-abstract "^1.19.2" + es-shim-unscopables "^1.0.0" + +array.prototype.reduce@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" arrify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" assert@^1.1.1: - version "1.4.1" - resolved "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz" + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: + object-assign "^4.1.1" util "0.10.3" assertion-error@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b" + integrity sha512-g/gZV+G476cnmtYI+Ko9d5khxSoCSoom/EaNmmCfwpOvBXEJ18qwFrxfP1/CsIqk2no1sAKKwxndV0tP7ROOFQ== assertion-error@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== ast-types@0.x.x: - version "0.11.7" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.11.7.tgz" + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" astral-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async@1.x: version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== -async@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz" - dependencies: - lodash "^4.17.10" - -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@6.7.7, autoprefixer@^6.3.1: version "6.7.7" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz" - integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + integrity sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ== dependencies: browserslist "^1.7.6" caniuse-db "^1.0.30000634" @@ -2396,28 +2409,29 @@ autoprefixer@6.7.7, autoprefixer@^6.3.1: postcss-value-parser "^3.2.3" autoprefixer@^9.8.0: - version "9.8.5" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.5.tgz" - integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg== + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== dependencies: browserslist "^4.12.0" - caniuse-lite "^1.0.30001097" - colorette "^1.2.0" + caniuse-lite "^1.0.30001109" normalize-range "^0.1.2" num2fraction "^1.2.2" + picocolors "^0.2.1" postcss "^7.0.32" postcss-value-parser "^4.1.0" axios@^0.21.1: version "0.21.4" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -2425,7 +2439,8 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: babel-core@^6.1.4, babel-core@^6.26.0: version "6.26.3" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -2449,8 +2464,8 @@ babel-core@^6.1.4, babel-core@^6.26.0: babel-eslint@7.2.3: version "7.2.3" - resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz" - integrity sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + integrity sha512-i2yKOhjgwUbUrJ8oJm6QqRzltIoFahGNPZ0HF22lUN4H1DW03JQyJm7WSv+I1LURQWjDNhVqFo04acYa07rhOQ== dependencies: babel-code-frame "^6.22.0" babel-traverse "^6.23.1" @@ -2459,7 +2474,8 @@ babel-eslint@7.2.3: babel-generator@^6.26.0: version "6.26.1" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -2472,27 +2488,28 @@ babel-generator@^6.26.0: babel-helpers@^6.24.1: version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.2.tgz" - integrity sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q== +babel-jest@^28.1.2, babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== dependencies: - "@jest/transform" "^28.1.2" + "@jest/transform" "^28.1.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.1" + babel-preset-jest "^28.1.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" babel-loader@8.2.4: version "8.2.4" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== dependencies: find-cache-dir "^3.3.1" @@ -2502,20 +2519,21 @@ babel-loader@8.2.4: babel-messages@^6.23.0: version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== dependencies: babel-runtime "^6.22.0" babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-istanbul@^6.1.1: version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -2524,10 +2542,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz" - integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2536,7 +2554,7 @@ babel-plugin-jest-hoist@^28.1.1: babel-plugin-lodash@3.3.4: version "3.3.4" - resolved "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" integrity sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg== dependencies: "@babel/helper-module-imports" "^7.0.0-beta.49" @@ -2546,32 +2564,32 @@ babel-plugin-lodash@3.3.4: require-package-name "^2.0.1" babel-plugin-polyfill-corejs2@^0.3.0, babel-plugin-polyfill-corejs2@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.5.0, babel-plugin-polyfill-corejs3@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" core-js-compat "^3.21.0" babel-plugin-polyfill-regenerator@^0.3.0, babel-plugin-polyfill-regenerator@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -2587,17 +2605,18 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz" - integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== dependencies: - babel-plugin-jest-hoist "^28.1.1" + babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" babel-register@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -2609,14 +2628,16 @@ babel-register@^6.26.0: babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" @@ -2626,7 +2647,8 @@ babel-template@^6.24.1, babel-template@^6.26.0: babel-traverse@^6.23.1, babel-traverse@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" @@ -2640,7 +2662,8 @@ babel-traverse@^6.23.1, babel-traverse@^6.26.0: babel-types@^6.23.0, babel-types@^6.26.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" @@ -2649,33 +2672,38 @@ babel-types@^6.23.0, babel-types@^6.26.0: babylon@^6.17.0, babylon@^6.18.0: version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== balanced-match@^0.4.2: version "0.4.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg== balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz" + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64id@2.0.0, base64id@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== base@^0.11.1: version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -2687,19 +2715,22 @@ base@^0.11.1: big.js@^3.1.3: version "3.2.0" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: - version "1.12.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz" + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: @@ -2711,16 +2742,22 @@ bindings@^1.5.0: bluebird@^3.5.5: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz" +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -body-parser@1.19.2, body-parser@^1.19.0: +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.19.2: version "1.19.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== dependencies: bytes "3.1.2" @@ -2734,25 +2771,46 @@ body-parser@1.19.2, body-parser@^1.19.0: raw-body "2.4.3" type-is "~1.6.18" +body-parser@^1.19.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + body-scroll-lock@2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/body-scroll-lock/-/body-scroll-lock-2.7.1.tgz#caf3f9c91773af1ffb684cd66ed9137b5b737014" integrity sha512-hS53SQ8RhM0e4DsQ3PKz6Gr2O7Kpdh59TWU98GHjaQznL7y4dFycEPk7pFQAikqBaUSCArkc5E3pe7CWIt2fZA== -boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -2767,22 +2825,25 @@ braces@^2.3.1, braces@^2.3.2: braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-stdout@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -2793,7 +2854,8 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -2801,124 +2863,106 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz" +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz" + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw== dependencies: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^4.12.0: - version "4.13.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz" - integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== +browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001093" - electron-to-chromium "^1.3.488" - escalade "^3.0.1" - node-releases "^1.1.58" - -browserslist@^4.20.2: - version "4.20.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== - dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -browserslist@^4.21.0: - version "4.21.1" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== - dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" bser@2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz" + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== bytes@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacache@^12.0.2: version "12.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" @@ -2938,10 +2982,11 @@ cacache@^12.0.2: y18n "^4.0.0" cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: + "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -2962,7 +3007,8 @@ cacache@^15.0.5: cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -2976,7 +3022,7 @@ cache-base@^1.0.1: call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2984,44 +3030,47 @@ call-bind@^1.0.0, call-bind@^1.0.2: caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@3.0.x: version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== dependencies: no-case "^2.2.0" upper-case "^1.1.1" camelcase-keys@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== dependencies: camelcase "^2.0.0" map-obj "^1.0.0" camelcase-keys@^6.2.2: version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: camelcase "^5.3.1" @@ -3030,25 +3079,23 @@ camelcase-keys@^6.2.2: camelcase@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== -camelcase@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz" - -camelcase@^5.3.1: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-api@^1.5.2: version "1.6.1" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + integrity sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q== dependencies: browserslist "^1.3.6" caniuse-db "^1.0.30000529" @@ -3056,30 +3103,27 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000928" - resolved "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000928.tgz" + version "1.0.30001373" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001373.tgz#fe0be242e366e0b576067fa91b21da8fdd91750c" + integrity sha512-NOoFLQ0w7geqot8ENHEE/cRqQN0HdVtJeG2h+2cjmEYb07X0HGwBQxREKWpt5YUhNPmAxHKVGPbak1FLey6GGw== -caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097, caniuse-lite@^1.0.30001317, caniuse-lite@^1.0.30001359: - version "1.0.30001363" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz" - integrity sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg== - -ccount@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz" - integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001370: + version "1.0.30001373" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz#2dc3bc3bfcb5d5a929bec11300883040d7b4b4be" + integrity sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ== chai-nightwatch@~0.1.x: version "0.1.1" - resolved "https://registry.npmjs.org/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz#1ca56de768d3c0868fe7fc2f4d32c2fe894e6be9" + integrity sha512-TeheBX8b3eszDfet1dmb3u8RAukPOmzLj5AclNDygL+JQAIV2MsyddziEigBcdUgfNHajyz9crtpKipU0Qe2SA== dependencies: assertion-error "1.0.0" deep-eql "0.1.3" chai@3.5.0: version "3.5.0" - resolved "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz" - integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha512-eRYY0vPS2a9zt5w5Z0aCeWbrXTEyvk7u/Xf71EzNObrjSCPgMm1Nku/D/u2tiqHBX5j40wWhj54YJLtgn8g55A== dependencies: assertion-error "^1.0.1" deep-eql "^0.1.3" @@ -3087,7 +3131,8 @@ chai@3.5.0: chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -3097,32 +3142,25 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ== dependencies: ansi-styles "~1.0.0" has-color "~0.1.0" @@ -3130,34 +3168,30 @@ chalk@~0.4.0: char-regex@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - character-entities-legacy@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== character-entities@^1.0.0: version "1.2.4" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== character-reference-invalid@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== chardet@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3174,7 +3208,7 @@ chardet@^0.7.0: chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" @@ -3191,43 +3225,29 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz" + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chromatism@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/chromatism/-/chromatism-3.0.0.tgz" - integrity sha1-pySdNTweTzV35ESsQRccTi5iSxI= + resolved "https://registry.yarnpkg.com/chromatism/-/chromatism-3.0.0.tgz#a7249d353c1e4f3577e444ac41171c4e2e624b12" + integrity sha512-slVGC45odKFB6KzD/hpXP8XgS/Y+x72X1ckAhxU/9YZecCy8VwCJUSZsn0O4gQUwaTogun6IfrSiK3YuQaADFw== chrome-trace-event@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== chromedriver@87.0.7: version "87.0.7" - resolved "https://registry.npmjs.org/chromedriver/-/chromedriver-87.0.7.tgz" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-87.0.7.tgz#74041e02ff7f633e91b98eb707e2476f713dc4ca" integrity sha512-7J7iN2rJuSDsKb9BUUMewJt07PuTlZYd809D10dUCT1rjMD3i2jUw7dum9RxdC1xO3aFwMd8TwZ5NR82T+S+Dg== dependencies: "@testim/chrome-version" "^1.0.7" @@ -3241,30 +3261,33 @@ chromedriver@87.0.7: ci-info@^3.2.0: version "3.3.2" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" cjs-module-lexer@^1.0.0: version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== clap@^1.0.9: version "1.2.3" - resolved "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== dependencies: chalk "^1.1.3" class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -3272,39 +3295,42 @@ class-utils@^0.3.5: static-extend "^0.1.1" clean-css@4.2.x: - version "4.2.1" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz" + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-cursor@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== dependencies: restore-cursor "^2.0.0" cli-spinners@^1.0.0: version "1.3.1" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz" + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== click-outside-vue3@4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/click-outside-vue3/-/click-outside-vue3-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/click-outside-vue3/-/click-outside-vue3-4.0.1.tgz#81a6ac01696b301764b42db6fdbdf28e7cd8ef95" integrity sha512-sbplNecrup5oGqA3o4bo8XmvHRT6q9fvw21Z67aDbTqB9M6LF7CuYLTlLvNtOgKU6W3zst5H5zJuEh4auqA34g== cliui@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -3313,7 +3339,7 @@ cliui@^6.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -3322,7 +3348,8 @@ cliui@^7.0.2: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" kind-of "^6.0.2" @@ -3330,91 +3357,90 @@ clone-deep@^4.0.1: clone-regexp@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== dependencies: is-regexp "^2.0.0" clone@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== co@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== co@~3.0.6: version "3.0.6" - resolved "https://registry.npmjs.org/co/-/co-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/co/-/co-3.0.6.tgz#1445f226c5eb956138e68c9ac30167ea7d2e6bda" + integrity sha512-Vj29f/AYywpPtHPhN9YqC7yK+p3rfjv7l/mTu5iOtn89a7DdccD4MYQmfU6R9wGdLXwufDIV07+PjXM0taVKvw== coa@~1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + integrity sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ== dependencies: q "^1.1.2" -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - collect-v8-coverage@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" color-convert@^1.3.0, color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3, color-name@^1.0.0: +color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + integrity sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA== dependencies: color-name "^1.0.0" color@^0.11.0: version "0.11.4" - resolved "https://registry.npmjs.org/color/-/color-0.11.4.tgz" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + integrity sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA== dependencies: clone "^1.0.2" color-convert "^1.3.0" color-string "^0.3.0" -colorette@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== - colormin@^1.0.5: version "1.1.2" - resolved "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + integrity sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ== dependencies: color "^0.11.0" css-color-names "0.0.4" @@ -3422,48 +3448,55 @@ colormin@^1.0.5: colors@1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== colors@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w== -commander@2.17.x, commander@~2.17.1: +commander@2.17.x: version "2.17.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== commander@2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== dependencies: graceful-readlink ">= 1.0.0" commander@^2.20.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" - -component-emitter@~1.3.0: +component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.0: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -3472,12 +3505,12 @@ concat-stream@^1.5.0: connect-history-api-fallback@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== connect@^3.7.0: version "3.7.0" - resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== dependencies: debug "2.6.9" @@ -3486,51 +3519,48 @@ connect@^3.7.0: utils-merge "1.0.1" console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" - dependencies: - date-now "^0.1.4" + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-type@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.5.1: - version "1.6.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz" +convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.4.2, cookie@~0.4.1: version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -3541,11 +3571,12 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== copy-webpack-plugin@6.4.1: version "6.4.1" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== dependencies: cacache "^15.0.5" @@ -3561,24 +3592,26 @@ copy-webpack-plugin@6.4.1: webpack-sources "^1.4.3" core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.3" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.3.tgz" - integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== + version "3.24.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" + integrity sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw== dependencies: - browserslist "^4.21.0" + browserslist "^4.21.3" semver "7.0.0" core-js@^2.4.0, core-js@^2.5.0: - version "2.6.2" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.2.tgz" + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cors@~2.8.5: version "2.8.5" - resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== dependencies: object-assign "^4" @@ -3586,7 +3619,7 @@ cors@~2.8.5: cosmiconfig@^5.0.0: version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" @@ -3596,7 +3629,7 @@ cosmiconfig@^5.0.0: cosmiconfig@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" @@ -3606,15 +3639,17 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz" + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -3622,9 +3657,10 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -3635,20 +3671,21 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: cropperjs@1.5.12: version "1.5.12" - resolved "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz" + resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.5.12.tgz#d9c0db2bfb8c0d769d51739e8f916bbc44e10f50" integrity sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw== cross-spawn@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz" - integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA== dependencies: lru-cache "^4.0.1" which "^1.2.9" cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -3658,7 +3695,7 @@ cross-spawn@^6.0.5: cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3667,7 +3704,8 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -3683,11 +3721,12 @@ crypto-browserify@^3.11.0: css-color-names@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== css-loader@0.28.11: version "0.28.11" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== dependencies: babel-code-frame "^6.26.0" @@ -3705,39 +3744,39 @@ css-loader@0.28.11: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz" +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz" + version "0.7.3" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" + integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + cssesc "^3.0.0" + fastparse "^1.1.2" -css-what@2.1: - version "2.1.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz" - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz" +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cssnano@^3.10.0: version "3.10.0" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + integrity sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg== dependencies: autoprefixer "^6.3.1" decamelize "^1.1.2" @@ -3774,194 +3813,192 @@ cssnano@^3.10.0: csso@~2.3.1: version "2.3.2" - resolved "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + integrity sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w== dependencies: clap "^1.0.9" source-map "^0.5.3" csstype@^2.6.8: version "2.6.20" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== currently-unhandled@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== dependencies: array-find-index "^1.0.1" custom-event-polyfill@1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz#9bc993ddda937c1a30ccd335614c6c58c4f87aee" integrity sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w== custom-event@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz" +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== data-uri-to-buffer@1: version "1.2.0" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" + integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== -date-format@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.6.tgz" - integrity sha512-B9vvg5rHuQ8cbUXE/RMWMyX2YA5TecT3jKF5fLtGNlzPlU7zblSPmAm2OImDbWL+LDOQ6pUm+4LOFz+ywS41Zw== - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" +date-format@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.13.tgz#87c3aab3a4f6f37582c5f5f63692d2956fa67890" + integrity sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ== dateformat@^1.0.6: version "1.0.12" - resolved "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + integrity sha512-5sFRfAAmbHdIts+eKjR9kYJoF0ViCMVX9yqLu5A7S/v+nd077KgCITOMiirmyCBiZpKLDXbBOkYm6tu7rX/TKg== dependencies: get-stdin "^4.0.1" meow "^3.3.0" de-indent@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + integrity sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw== dependencies: ms "0.7.1" debug@2.6.8: version "2.6.8" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + integrity sha512-E22fsyWPt/lr4/UgQLt/pXqerGMDsanhbnmqIS3VAXuDi1v3IpiwXe2oncEIondHSBuPDWRoK/pMjlvi8FuOXQ== dependencies: ms "2.0.0" -debug@4: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz" - dependencies: - ms "^2.1.1" - -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" - dependencies: - ms "^2.1.1" - -debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + decamelize-keys@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== dedent@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-eql@0.1.3, deep-eql@^0.1.3: version "0.1.3" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha512-6sEotTRGBFiNcqVoeHwnfopbSpi5NbH1VWJmYCVkmxMmaVTT0bUTrNaGyBwhgP4MZL012W/mkzIn3Da+iDYweg== dependencies: type-detect "0.1.1" deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" defined@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== degenerator@~1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" + integrity sha512-EMAC+riLSC64jKfOs1jp8J7M4ZXstUUwTdwFBEv6HOzL/Ae+eAzMKEK0nJnpof2fnw9IOjmE6u6qXFejVyk8AA== dependencies: ast-types "0.x.x" escodegen "1.x.x" esprima "3.x.x" del@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/del/-/del-6.0.0.tgz" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== dependencies: globby "^11.0.1" graceful-fs "^4.2.4" @@ -3972,57 +4009,75 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz" + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + destroy@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== detect-indent@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== dependencies: repeating "^2.0.0" detect-newline@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== di@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== diff-sequences@^28.1.1: version "28.1.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== diff@1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + integrity sha512-VzVc42hMZbYU9Sx/ltb7KYuQ6pqAw+cbFWVy4XKdkuEL2CFaRLGEnISPs7YdzaUGpi+CpIqvRmu7hPQ4T7EQ5w== diff@3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + integrity sha512-597ykPFhtJYaXqPq6fF7Vl1fXTKgPdLOntyxpmdzUOKiYGqK7zcnbplj5088+8qJnWdzXhyeau5iVr8HVo9dgg== diff@3.5.0, diff@^3.1.0: version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -4030,40 +4085,41 @@ diffie-hellman@^5.0.0: dijkstrajs@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" integrity sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" -dom-converter@~0.2: +dom-converter@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-serialize@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== dependencies: custom-event "~1.0.0" ent "~2.2.0" @@ -4071,61 +4127,72 @@ dom-serialize@^2.2.1: void-elements "^2.0.0" dom-serializer@0: - version "0.1.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz" + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1, domelementtype@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" - -domhandler@2.1: - version "2.1.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz" - dependencies: - domelementtype "1" +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^2.3.0: version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" -domutils@1.1: - version "1.1.6" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz" +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" - dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" domutils@^1.5.1: version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -4134,78 +4201,83 @@ duplexify@^3.4.2, duplexify@^3.6.0: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== ejs@2.5.7: version "2.5.7" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" + integrity sha512-ukpoEmMkRXdzig9UGWFSY+GqurZ+PROb/Q/6NUf+FYlIAI4fO79XFcFzob3TikfbaZZ3OGQAmryINW6/ELWPAg== -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.488, electron-to-chromium@^1.4.172, electron-to-chromium@^1.4.84: - version "1.4.185" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz" - integrity sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw== +electron-to-chromium@^1.2.7, electron-to-chromium@^1.4.202: + version "1.4.206" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz#580ff85b54d7ec0c05f20b1e37ea0becdd7b0ee4" + integrity sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA== -elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz" +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emittery@^0.10.2: version "0.10.2" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encode-utf8@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" integrity sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz" + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" engine.io-parser@~5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz" - integrity sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg== - dependencies: - "@socket.io/base64-arraybuffer" "~1.0.2" + version "5.0.4" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" + integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== -engine.io@~6.1.0: - version "6.1.3" - resolved "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz" - integrity sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA== +engine.io@~6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.0.tgz#003bec48f6815926f2b1b17873e576acd54f41d0" + integrity sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -4220,7 +4292,7 @@ engine.io@~6.1.0: enhanced-resolve@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" @@ -4229,110 +4301,112 @@ enhanced-resolve@^4.5.0: ent@~2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== -entities@^1.1.1, entities@~1.1.1: +entities@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" -es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-shim-unscopables@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== - escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@1.0.3, escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@1.8.x: version "1.8.1" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + integrity sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A== dependencies: esprima "^2.7.1" estraverse "^1.9.1" @@ -4342,10 +4416,11 @@ escodegen@1.8.x: source-map "~0.2.0" escodegen@1.x.x, escodegen@^1.6.1: - version "1.11.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz" + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -4354,18 +4429,18 @@ escodegen@1.x.x, escodegen@^1.6.1: eslint-config-standard@12.0.0: version "12.0.0" - resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-config-standard@^17.0.0: version "17.0.0" - resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== eslint-friendly-formatter@2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/eslint-friendly-formatter/-/eslint-friendly-formatter-2.0.7.tgz" - integrity sha1-ZX+VoZr0mJY2r+uxzJ3mzrvQiO4= + resolved "https://registry.yarnpkg.com/eslint-friendly-formatter/-/eslint-friendly-formatter-2.0.7.tgz#657f95a19af4989636afebb1cc9de6cebbd088ee" + integrity sha512-v494z5jplYgCMPNjjV2sS6DZHhCERJBSJm/Q0tbK34+UrbUoj1kNRhorXUOfL5/w79SZO7m+XoysGm/9jV54+Q== dependencies: chalk "^1.0.0" extend "^3.0.0" @@ -4374,7 +4449,7 @@ eslint-friendly-formatter@2.0.7: eslint-import-resolver-node@^0.3.6: version "0.3.6" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: debug "^3.2.7" @@ -4382,7 +4457,7 @@ eslint-import-resolver-node@^0.3.6: eslint-loader@2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== dependencies: loader-fs-cache "^1.0.0" @@ -4393,22 +4468,23 @@ eslint-loader@2.2.1: eslint-module-utils@^2.7.2: version "2.7.3" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" find-up "^2.1.0" eslint-plugin-es@^1.3.1: - version "1.4.0" - resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz" + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== dependencies: - eslint-utils "^1.3.0" + eslint-utils "^1.4.2" regexpp "^2.0.1" eslint-plugin-import@2.25.4: version "2.25.4" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz#322f3f916a4e9e991ac7af32032c25ce313209f1" integrity sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA== dependencies: array-includes "^3.1.4" @@ -4426,15 +4502,15 @@ eslint-plugin-import@2.25.4: tsconfig-paths "^3.12.0" eslint-plugin-jest@^26.5.3: - version "26.5.3" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz" - integrity sha512-sICclUqJQnR1bFRZGLN2jnSVsYOsmPYYnroGCIMVSvTS3y8XR3yjzy1EcTQmk6typ5pRgyIWzbjqxK6cZHEZuQ== + version "26.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.7.0.tgz#41d405ac9143e1284a3401282db47ed459436778" + integrity sha512-/YNitdfG3o3cC6juZziAdkk6nfJt01jXVfj4AgaYVLs7bupHzRDL5K+eipdzhDXtQsiqaX1TzfwSuRlEgeln1A== dependencies: "@typescript-eslint/utils" "^5.10.0" eslint-plugin-node@7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== dependencies: eslint-plugin-es "^1.3.1" @@ -4446,31 +4522,32 @@ eslint-plugin-node@7.0.1: eslint-plugin-promise@4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== eslint-plugin-standard@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== eslint-plugin-vue@5.2.3: version "5.2.3" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw== dependencies: vue-eslint-parser "^5.0.0" eslint-scope@^4.0.0, eslint-scope@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -4478,52 +4555,51 @@ eslint-scope@^5.1.1: eslint-scope@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz" +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" eslint-utils@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@5.16.0: version "5.16.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== dependencies: "@babel/code-frame" "^7.0.0" @@ -4564,9 +4640,9 @@ eslint@5.16.0: text-table "^0.2.0" eslint@^8.19.0: - version "8.19.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz" - integrity sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw== + version "8.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" + integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" @@ -4606,7 +4682,8 @@ eslint@^8.19.0: espree@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== dependencies: acorn "^6.0.2" acorn-jsx "^5.0.0" @@ -4614,7 +4691,8 @@ espree@^4.1.0: espree@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== dependencies: acorn "^6.0.7" acorn-jsx "^5.0.0" @@ -4622,7 +4700,7 @@ espree@^5.0.1: espree@^6.0.0: version "6.2.1" - resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: acorn "^7.1.1" @@ -4630,95 +4708,104 @@ espree@^6.0.0: eslint-visitor-keys "^1.1.0" espree@^9.3.2: - version "9.3.2" - resolved "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== + version "9.3.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== -esprima@3.x.x, esprima@^3.1.3: +esprima@3.x.x: version "3.1.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg== -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1, esquery@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" esrecurse@^4.1.0, esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^1.9.1: version "1.9.3" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + integrity sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA== estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz" + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource-polyfill@0.9.6: version "0.9.6" - resolved "https://registry.npmjs.org/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz" - integrity sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw= + resolved "https://registry.yarnpkg.com/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz#10e0d187f111b167f28fdab918843ce7d818f13c" + integrity sha512-LyMFp2oPDGhum2lMvkjqKZEwWd2/AoXyt8aoyftTBMWwPHNgU+2tdxhTHPluDxoz+z4gNj0uHAPR9nqevATMbg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" execa@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -4733,19 +4820,20 @@ execa@^5.0.0: execall@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== dependencies: clone-regexp "^2.1.0" exit@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -4755,20 +4843,20 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/expect/-/expect-28.1.1.tgz" - integrity sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w== +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== dependencies: - "@jest/expect-utils" "^28.1.1" + "@jest/expect-utils" "^28.1.3" jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" express@4.17.3: version "4.17.3" - resolved "https://registry.npmjs.org/express/-/express-4.17.3.tgz" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== dependencies: accepts "~1.3.8" @@ -4804,24 +4892,28 @@ express@4.17.3: extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@3, extend@^3.0.0, extend@~3.0.0: +extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz" + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -4829,7 +4921,8 @@ external-editor@^3.0.3: extglob@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -4842,7 +4935,7 @@ extglob@^2.0.4: extract-zip@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -4853,12 +4946,12 @@ extract-zip@^2.0.1: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.4, fast-glob@^3.2.9: version "3.2.11" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -4868,64 +4961,70 @@ fast-glob@^3.2.4, fast-glob@^3.2.9: micromatch "^4.0.4" fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastparse@^1.1.1: +fastparse@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" fb-watchman@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== dependencies: bser "2.1.1" fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz" + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== figures@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: flat-cache "^2.0.1" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" file-loader@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== dependencies: loader-utils "^1.0.2" @@ -4933,11 +5032,13 @@ file-loader@3.0.1: file-uri-to-path@1, file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -4946,14 +5047,14 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@1.1.2, finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -4966,7 +5067,8 @@ finalhandler@1.1.2, finalhandler@~1.1.2: find-cache-dir@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A== dependencies: commondir "^1.0.1" mkdirp "^0.5.1" @@ -4974,16 +5076,17 @@ find-cache-dir@^0.1.1: find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" make-dir "^2.0.0" pkg-dir "^3.0.0" find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" @@ -4991,26 +5094,29 @@ find-cache-dir@^3.3.1: find-up@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" find-up@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -5018,7 +5124,8 @@ find-up@^4.0.0, find-up@^4.1.0: flat-cache@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: flatted "^2.0.0" rimraf "2.6.3" @@ -5026,94 +5133,97 @@ flat-cache@^2.0.1: flat-cache@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" rimraf "^3.0.2" flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz" + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flatted@^3.1.0, flatted@^3.2.5: - version "3.2.5" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatted@^3.1.0, flatted@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz" + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0: - version "1.6.1" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz" - dependencies: - debug "=3.1.0" - -follow-redirects@^1.14.0: - version "1.14.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== +follow-redirects@^1.0.0, follow-redirects@^1.14.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== for-in@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== formatio@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" + integrity sha512-YAF05v8+XCxAyHOdiiAmHdgCVPrWO8X744fYIPtBciIorh5LndWfi1gjeJ16sTbJhzek9kd+j3YByhohtz5Wmg== dependencies: samsam "1.x" forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from2@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz" - integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + jsonfile "^4.0.0" + universalify "^0.1.0" fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -5122,7 +5232,8 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -5132,123 +5243,141 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.3.2, fsevents@~2.3.1, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== ftp@~0.3.10: version "0.3.10" - resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ== dependencies: readable-stream "1.1.x" xregexp "2.0.0" function-bind@1.1.1, function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== get-stdin@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== get-stdin@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.1" get-uri@2: - version "2.0.2" - resolved "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz" + version "2.0.4" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a" + integrity sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q== dependencies: data-uri-to-buffer "1" debug "2" - extend "3" + extend "~3.0.2" file-uri-to-path "1" ftp "~0.3.10" readable-stream "2" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.1: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@7.0.5: version "7.0.5" - resolved "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95" + integrity sha512-56P1ofdOmXz0iTJ0AmrTK6CoR3Gf49Vo3SPaX85trAEhSIVsVc9oEQIkPWhcLZ/G4DZNg4wlXxG9JCz0LbaLjA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -5259,7 +5388,8 @@ glob@7.0.5: glob@7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha512-mRyN/EsN2SyNhKWykF3eEGhDpeNplMWaW18Bmh76tnOqk5TbELAVwFAYOCmKVssOYFrYvvLMguiA+NXO3ZTuVA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -5270,7 +5400,8 @@ glob@7.1.1: glob@^5.0.15: version "5.0.15" - resolved "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + integrity sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA== dependencies: inflight "^1.0.4" inherits "2" @@ -5280,7 +5411,7 @@ glob@^5.0.15: glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -5292,14 +5423,14 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -5308,22 +5439,24 @@ global-prefix@^3.0.0: globals@^11.1.0, globals@^11.7.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: - version "13.16.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz" - integrity sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" globals@^9.18.0: version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== globby@^11.0.1, globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -5335,92 +5468,103 @@ globby@^11.0.1, globby@^11.1.0: globjoin@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz" - integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== gonzales-pe@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== dependencies: minimist "^1.2.5" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== "graceful-readlink@>= 1.0.0": version "1.0.1" - resolved "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w== growl@1.9.2: version "1.9.2" - resolved "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + integrity sha512-RTBwDHhNuOx4F0hqzItc/siXCasGfC4DeWcBamclWd+6jWtBaeB/SGbMkGf0eiQoW7ib8JpvOgnUsmgMHI3Mfw== handlebars@^4.0.1: - version "4.0.12" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz" + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== dependencies: - async "^2.5.0" - optimist "^0.6.1" + minimist "^1.2.5" + neo-async "^2.6.0" source-map "^0.6.1" + wordwrap "^1.0.0" optionalDependencies: uglify-js "^3.1.4" hard-rejection@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== dependencies: ansi-regex "^2.0.0" -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-color@~0.1.0: version "0.1.7" - resolved "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw== has-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: +has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-value@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -5428,7 +5572,8 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -5436,56 +5581,65 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" has@^1.0.1, has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz" + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash-sum@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== hash-sum@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" he@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA== he@1.2.x, he@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -5493,18 +5647,21 @@ hmac-drbg@^1.0.0: home-or-tmp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" hosted-git-info@^2.1.4: - version "2.7.1" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz" + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== html-comment-regex@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-entities@^2.1.0: version "2.3.3" @@ -5513,12 +5670,13 @@ html-entities@^2.1.0: html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier@^3.2.3: version "3.5.21" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== dependencies: camel-case "3.0.x" clean-css "4.2.x" @@ -5529,14 +5687,14 @@ html-minifier@^3.2.3: uglify-js "3.4.x" html-tags@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" - integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" + integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== html-webpack-plugin@3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg== dependencies: html-minifier "^3.2.3" loader-utils "^0.2.16" @@ -5548,7 +5706,7 @@ html-webpack-plugin@3.2.0: htmlparser2@^3.10.0: version "3.10.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: domelementtype "^1.3.1" @@ -5558,27 +5716,19 @@ htmlparser2@^3.10.0: inherits "^2.0.1" readable-stream "^3.1.1" -htmlparser2@~3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz" +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: - domelementtype "1" - domhandler "2.1" - domutils "1.1" - readable-stream "1.0" - -http-errors@1.6.3: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" http-errors@1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: depd "~1.1.2" @@ -5587,9 +5737,21 @@ http-errors@1.8.1: statuses ">= 1.5.0 < 2" toidentifier "1.0.1" +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + http-proxy-agent@1: version "1.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" + integrity sha512-6YMslTZtuupu4irnNBi1bM6dG0UqHBHqObHQn3awavmNXe9CGkmw7KZ68EyAnJk3yBlLpbLwux5+bY1lneDFmg== dependencies: agent-base "2" debug "2" @@ -5597,7 +5759,7 @@ http-proxy-agent@1: http-proxy-middleware@0.21.0: version "0.21.0" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.21.0.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.21.0.tgz#c6b1ca05174b5fbc57bee9485ffa0fa2f0dabeb0" integrity sha512-4Arcl5QQ6pRMRJmtM1WVHKHkFAQn5uvw83XuNeqnMTOikDiCoTxv5/vdudhKQsF+1mtaAawrK2SEB1v2tYecdQ== dependencies: "@types/http-proxy" "^1.17.3" @@ -5608,7 +5770,7 @@ http-proxy-middleware@0.21.0: http-proxy@^1.18.0, http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -5617,76 +5779,74 @@ http-proxy@^1.18.0, http-proxy@^1.18.1: https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== https-proxy-agent@1: version "1.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + integrity sha512-OZhm7//JDnQthMVqlPAfkZyPO2fMhfHY6gY+jZcX8rLfFiGtHiIQrfD80WvCDHNMQ77Ak3r5CiPRDD2rNzo2OQ== dependencies: agent-base "2" debug "2" extend "3" https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz" - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" icss-replace-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== icss-utils@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA== dependencies: postcss "^6.0.1" ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz" + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== ignore@^4.0.2, ignore@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.8: - version "5.1.8" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0: +ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== immutable@^4.0.0: version "4.1.0" @@ -5695,22 +5855,22 @@ immutable@^4.0.0: import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -5718,19 +5878,19 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: import-from@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== dependencies: resolve-from "^3.0.0" import-lazy@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== import-local@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" @@ -5738,62 +5898,70 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== dependencies: repeating "^2.0.0" indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== -inherits@2.0.4, inherits@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz" + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inject-loader@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/inject-loader/-/inject-loader-2.0.1.tgz" - integrity sha1-GntF1gqBYQRZrHYHnDziplTQ38c= + resolved "https://registry.yarnpkg.com/inject-loader/-/inject-loader-2.0.1.tgz#1a7b45d60a81610459ac76079c3ce2a654d0dfc7" + integrity sha512-X4VOEQa1zFiRRQVmT7Z1PFEfV2yN3/wxTBg9w9zRTqBbtxitjj9h6pF3Mf2f3fOFoyew0WCjb4c82ewifOFLQA== dependencies: loader-utils "^0.2.3" inquirer@^6.2.2: - version "6.3.1" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz" + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -5801,7 +5969,7 @@ inquirer@^6.2.2: cli-width "^2.0.0" external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.11" + lodash "^4.17.12" mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" @@ -5811,7 +5979,7 @@ inquirer@^6.2.2: internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" @@ -5819,61 +5987,64 @@ internal-slot@^1.0.3: side-channel "^1.0.4" interpret@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz" + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invariant@^2.2.2: version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" +ip-regex@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== ip@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.0.1.tgz#c7e356cdea225ae71b36d70f2e71a92ba4e42590" + integrity sha512-7D9qrinLjjMdwGUoq7tAls0WvUGDjuxTnhfB9HWfqUyeWWwE4Ap4LnxHuTpAxh6iE6HHDY6gLdXbRlFrAIIzPw== ip@^1.1.4: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - is-alphanumerical@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== dependencies: is-alphabetical "^1.0.0" @@ -5881,31 +6052,33 @@ is-alphanumerical@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -5913,59 +6086,56 @@ is-boolean-object@^1.1.0: is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - dependencies: - builtin-modules "^1.0.0" - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz" - -is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.8.0, is-core-module@^2.9.0: version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" -is-decimal@^1.0.0, is-decimal@^1.0.2: +is-decimal@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -5973,7 +6143,8 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -5981,133 +6152,131 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-fn@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-negative-zero@^2.0.1: +is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-cwd@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-inside@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - is-reference@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: "@types/estree" "*" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" - dependencies: - has "^1.0.1" - is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -6115,113 +6284,114 @@ is-regex@^1.1.4: is-regexp@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-svg@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + integrity sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw== dependencies: html-comment-regex "^1.1.0" -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz" - dependencies: - has-symbols "^1.0.0" - -is-symbol@^1.0.3: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-url@^1.2.2: +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== is-utf8@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -is-weakref@^1.0.1: +is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" - -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== is-wsl@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" -is2@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz" +is2@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.7.tgz#d084e10cab3bd45d6c9dfde7a48599fcbb93fcac" + integrity sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA== dependencies: deep-is "^0.1.3" - ip-regex "^2.1.0" - is-url "^1.2.2" + ip-regex "^4.1.0" + is-url "^1.2.4" isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isbinaryfile@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz" - integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== iso-639-1@2.1.15: version "2.1.15" @@ -6230,24 +6400,27 @@ iso-639-1@2.1.15: isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== isparta-loader@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isparta-loader/-/isparta-loader-2.0.0.tgz" - integrity sha1-RCX0lsk/dlu8603ZOFdtowdWbtE= + resolved "https://registry.yarnpkg.com/isparta-loader/-/isparta-loader-2.0.0.tgz#4425f496c93f765bbceb4dd938576da307566ed1" + integrity sha512-/8yTTUmybJzbg/9tiodJH+wxnMY5x6wDhYTybnaXx/hr0g3XW7rlkx0deuzsWO8JLziCorgr4CNyWRZeefoSMA== dependencies: isparta "4.x.x" isparta@4.x.x: version "4.1.1" - resolved "https://registry.npmjs.org/isparta/-/isparta-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/isparta/-/isparta-4.1.1.tgz#c92e49672946914ec5407c801160f3374e0b7cb4" + integrity sha512-kGwkNqmALQzdfGhgo5o8kOA88p14R3Lwg0nfQ/qzv4IhB4rXarT9maPMaYbo6cms4poWbeulrlFlURLUR6rDwQ== dependencies: babel-core "^6.1.4" escodegen "^1.6.1" @@ -6261,12 +6434,12 @@ isparta@4.x.x: istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== dependencies: "@babel/core" "^7.12.3" @@ -6277,7 +6450,7 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-report@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: istanbul-lib-coverage "^3.0.0" @@ -6286,7 +6459,7 @@ istanbul-lib-report@^3.0.0: istanbul-lib-source-maps@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: debug "^4.1.1" @@ -6294,16 +6467,17 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" istanbul@0.4.5, istanbul@^0.4.0: version "0.4.5" - resolved "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + integrity sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg== dependencies: abbrev "1.0.x" async "1.x" @@ -6320,464 +6494,462 @@ istanbul@0.4.5, istanbul@^0.4.0: which "^1.1.1" wordwrap "^1.0.0" -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== dependencies: execa "^5.0.0" - throat "^6.0.1" + p-limit "^3.1.0" -jest-circus@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.2.tgz" - integrity sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ== +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" jest-cli@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.2.tgz" - integrity sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw== + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== dependencies: - "@jest/core" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.2.tgz" - integrity sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA== +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.1" - "@jest/types" "^28.1.1" - babel-jest "^28.1.2" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.2" - jest-environment-node "^28.1.2" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-runner "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.1.tgz" - integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== dependencies: chalk "^4.0.0" diff-sequences "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-docblock@^28.1.1: version "28.1.1" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.1.tgz" - integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-util "^28.1.3" + pretty-format "^28.1.3" -jest-environment-node@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.2.tgz" - integrity sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw== +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-mock "^28.1.3" + jest-util "^28.1.3" jest-get-type@^28.0.2: version "28.0.2" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.1.tgz" - integrity sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ== +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^28.0.2" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-util "^28.1.3" + jest-worker "^28.1.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz" - integrity sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw== +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== dependencies: jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-matcher-utils@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz" - integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-message-util@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz" - integrity sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ== +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.1.tgz" - integrity sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw== +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^28.0.2: version "28.0.2" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz" - integrity sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg== +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.1.2" + jest-snapshot "^28.1.3" -jest-resolve@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.1.tgz" - integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== +jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-util "^28.1.3" + jest-validate "^28.1.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.2.tgz" - integrity sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A== +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== dependencies: - "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.1.1" - jest-environment-node "^28.1.2" - jest-haste-map "^28.1.1" - jest-leak-detector "^28.1.1" - jest-message-util "^28.1.1" - jest-resolve "^28.1.1" - jest-runtime "^28.1.2" - jest-util "^28.1.1" - jest-watcher "^28.1.1" - jest-worker "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" source-map-support "0.5.13" - throat "^6.0.1" -jest-runtime@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.2.tgz" - integrity sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw== +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/globals" "^28.1.2" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.2: - version "28.1.2" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.2.tgz" - integrity sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA== +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.1" + expect "^28.1.3" graceful-fs "^4.2.9" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - jest-haste-map "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" natural-compare "^1.4.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" semver "^7.3.5" -jest-util@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz" - integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.1.tgz" - integrity sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug== +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-watcher@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz" - integrity sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug== +jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== dependencies: - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.1.1" + jest-util "^28.1.3" string-length "^4.0.1" -jest-worker@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.1.tgz" - integrity sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ== +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" js-base64@^2.1.9: - version "2.5.0" - resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz" + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== js-cookie@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@3.x: - version "3.12.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.13.0, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" +js-yaml@3.x, js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" js-yaml@~3.7.0: version "3.7.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + integrity sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ== dependencies: argparse "^1.0.7" esprima "^2.6.0" jsesc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-loader@0.5.7: version "0.5.7" - resolved "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json3@3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA== json5@^0.5.0, json5@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== json5@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -json5@^2.2.0, json5@^2.2.1: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonc-eslint-parser@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz#8cbe99f6f5199acbc5a823c4c0b6135411027fa6" integrity sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg== dependencies: acorn "^7.4.1" @@ -6786,18 +6958,16 @@ jsonc-eslint-parser@^1.0.1: espree "^6.0.0" semver "^6.3.0" -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" karma-coverage@1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.2.tgz#cc09dceb589a83101aca5fe70c287645ef387689" integrity sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw== dependencies: dateformat "^1.0.6" @@ -6808,15 +6978,15 @@ karma-coverage@1.1.2: karma-firefox-launcher@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.3.0.tgz#ebcbb1d1ddfada6be900eb8fae25bcf2dcdc8171" integrity sha512-Fi7xPhwrRgr+94BnHX0F5dCl1miIW4RHnzjIGxF8GaIEp7rNqX7LSi7ok63VXs3PS/5MQaQMhGxw+bvD+pibBQ== dependencies: is-wsl "^2.1.0" karma-mocha-reporter@2.2.5: version "2.2.5" - resolved "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz" - integrity sha1-FRIAlejtgZGG5HoLAS8810GJVWA= + resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" + integrity sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w== dependencies: chalk "^2.1.0" log-symbols "^2.1.0" @@ -6824,33 +6994,33 @@ karma-mocha-reporter@2.2.5: karma-mocha@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-2.0.1.tgz#4b0254a18dfee71bdbe6188d9a6861bf86b0cd7d" integrity sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ== dependencies: minimist "^1.2.3" karma-sinon-chai@2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/karma-sinon-chai/-/karma-sinon-chai-2.0.2.tgz#e28c109b989973abafc28a7c9f09ef24a05e07c2" integrity sha512-SDgh6V0CUd+7ruL1d3yG6lFzmJNGRNQuEuCYXLaorruNP9nwQfA7hpsp4clx4CbOo5Gsajh3qUOT7CrVStUKMw== karma-sourcemap-loader@0.3.8: version "0.3.8" - resolved "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz" + resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz#d4bae72fb7a8397328a62b75013d2df937bdcf9c" integrity sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g== dependencies: graceful-fs "^4.1.2" karma-spec-reporter@0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.33.tgz#5b2712c3eaff7ae50dbd6ad4e5fb59befd740a96" integrity sha512-xRVevDUkiIVhKbDQ3CmeGEpyzA4b3HeVl95Sx5yJAvurpdKUSYF6ZEbQOqKJ7vrtDniABV1hyFez9KX9+7ruBA== dependencies: colors "1.4.0" karma-webpack@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0" integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A== dependencies: clone-deep "^4.0.1" @@ -6862,7 +7032,7 @@ karma-webpack@4.0.2: karma@6.3.17: version "6.3.17" - resolved "https://registry.npmjs.org/karma/-/karma-6.3.17.tgz" + resolved "https://registry.yarnpkg.com/karma/-/karma-6.3.17.tgz#5d963fb52463b73e1b5892ecb54c8f21bb04ba1d" integrity sha512-2TfjHwrRExC8yHoWlPBULyaLwAFmXmxQrcuFImt/JsAsSZu1uOWTZ1ZsWjqQtWpHLiatJOHL5jFjXSJIgCd01g== dependencies: "@colors/colors" "1.5.0" @@ -6892,54 +7062,54 @@ karma@6.3.17: kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" - -kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== known-css-properties@^0.19.0: version "0.19.0" - resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.19.0.tgz" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.19.0.tgz#5d92b7fa16c72d971bda9b7fe295bdf61836ee5b" integrity sha512-eYboRV94Vco725nKMlpkn3nV2+96p9c3gKXRsYqAJSswSENvBhN7n5L+uDhY58xQa0UukWsDMTGELzmD8Q+wTA== leven@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levn@^0.3.0, levn@~0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -6947,18 +7117,20 @@ levn@^0.4.1: lie@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" + integrity sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== dependencies: immediate "~3.0.5" lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -6967,37 +7139,31 @@ load-json-file@^1.0.0: strip-bom "^2.0.0" loader-fs-cache@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz" + version "1.0.3" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" + integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== dependencies: find-cache-dir "^0.1.1" - mkdirp "0.5.1" + mkdirp "^0.5.1" loader-runner@^2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@^0.2.16, loader-utils@^0.2.3: version "0.2.17" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug== dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.2.3: +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" @@ -7005,9 +7171,9 @@ loader-utils@^1.2.3: json5 "^1.0.1" loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -7015,50 +7181,56 @@ loader-utils@^2.0.0: localforage@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.10.0.tgz#5c465dc5f62b2807c3a84c0c6a1b1b3212781dd4" integrity sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== dependencies: lie "3.1.1" locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash._arraycopy@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" + integrity sha512-RHShTDnPKP7aWxlvXKiDT6IX2jCs6YZLCtNhOru/OX2Q/tzX295vVBK5oX1ECtN+2r86S0Ogy8ykP1sgCZAN0A== lodash._arrayeach@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" + integrity sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ== lodash._baseassign@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ== dependencies: lodash._basecopy "^3.0.0" lodash.keys "^3.0.0" lodash._basecallback@^3.0.0: version "3.3.1" - resolved "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" + integrity sha512-LQffghuO63ufDY33KKO1ezGKbcFZK3ngYV7JpxaUomoM5acf0YeXU3Pm8csVE0girVs50TXzfNibl69Co3ggJA== dependencies: lodash._baseisequal "^3.0.0" lodash._bindcallback "^3.0.0" @@ -7067,7 +7239,8 @@ lodash._basecallback@^3.0.0: lodash._baseclone@^3.0.0: version "3.3.0" - resolved "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" + integrity sha512-1K0dntf2dFQ5my0WoGKkduewR6+pTNaqX03kvs45y7G5bzl4B3kTR4hDfJIc2aCQDeLyQHhS280tc814m1QC1Q== dependencies: lodash._arraycopy "^3.0.0" lodash._arrayeach "^3.0.0" @@ -7078,37 +7251,45 @@ lodash._baseclone@^3.0.0: lodash._baseclone@^4.0.0: version "4.5.7" - resolved "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz" + resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz#ce42ade08384ef5d62fa77c30f61a46e686f8434" + integrity sha512-nOtLg6tdIdD+TehqBv0WI7jbkLaohHhKSwLmS/UXSFWMWWUxdJc9EVtAfD4L0mV15vV+lZVfF4LEo363VdrMBw== lodash._basecopy@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ== lodash._basecreate@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + integrity sha512-EDem6C9iQpn7fxnGdmhXmqYGjCkStmDXT4AeyB2Ph8WKbglg4aJZczNkQglj+zWXcOEEkViK8THuV2JvugW47g== lodash._baseeach@^3.0.0: version "3.0.4" - resolved "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" + integrity sha512-IqUZ9MQo2UT1XPGuBntInqTOlc+oV+bCo0kMp+yuKGsfvRSNgUW0YjWVZUrG/gs+8z/Eyuc0jkJjOBESt9BXxg== dependencies: lodash.keys "^3.0.0" lodash._basefind@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash._basefind/-/lodash._basefind-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae" + integrity sha512-OCYxW9f0nMWjRaJyvGxrM/x/xGZTIYEiz+PyFux4YIZr7DtXLQpmCc6aDJdhPA1vnnsrY+N7BvS76hAdlnGHfg== lodash._basefindindex@^3.0.0: version "3.6.0" - resolved "https://registry.npmjs.org/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f" + integrity sha512-Ay3Ok74tVwGB79L5lVZlVgpGYjV9ty8DEVPxIUhgGGkqrqk6I+BPJ5kUIxd5S1b2Qg03VXtdg/Dpv2zcwQReoA== lodash._basefor@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" + integrity sha512-6bc3b8grkpMgDcVJv9JYZAk/mHgcqMljzm7OsbmcE2FGUMmmLQTPHlh/dFqR8LA0GQ7z4K67JSotVKu5058v1A== lodash._baseisequal@^3.0.0: version "3.0.7" - resolved "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + integrity sha512-U+3GsNEZj9ebI03ncLC2pLmYVjgtYZEwdkAPO7UGgtGvAz36JVFPAQUufpSaVL93Cz5arc6JGRKZRhaOhyVJYA== dependencies: lodash.isarray "^3.0.0" lodash.istypedarray "^3.0.0" @@ -7116,11 +7297,13 @@ lodash._baseisequal@^3.0.0: lodash._bindcallback@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ== lodash._createassigner@^3.0.0: version "3.1.1" - resolved "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + integrity sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw== dependencies: lodash._bindcallback "^3.0.0" lodash._isiterateecall "^3.0.0" @@ -7128,23 +7311,28 @@ lodash._createassigner@^3.0.0: lodash._getnative@^3.0.0: version "3.9.1" - resolved "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA== lodash._isiterateecall@^3.0.0: version "3.0.9" - resolved "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ== lodash._stack@^4.0.0: version "4.1.3" - resolved "https://registry.npmjs.org/lodash._stack/-/lodash._stack-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/lodash._stack/-/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0" + integrity sha512-7RsWIq+4lw45MQpNO/7kFGOeyO/ixHtm9x9SR7p7vnLorby345sBcAq0F9Q2zcHAA9LO7OxDelGEBOolQE66rQ== lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.clone@3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/lodash.clone/-/lodash.clone-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043" + integrity sha512-yVYPpFTdZDCLG2p07gVRTvcwN5X04oj2hu4gG6r0fer58JA08wAVxXzWM+CmmxO2bzOH8u8BkZTZqgX6juVF7A== dependencies: lodash._baseclone "^3.0.0" lodash._bindcallback "^3.0.0" @@ -7152,7 +7340,8 @@ lodash.clone@3.0.3: lodash.create@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + integrity sha512-IUfOYwDEbI8JbhW6psW+Ig01BOVK67dTSCUAbS58M0HBkPcAv/jHuxD+oJVP2tUCo3H9L6f/8GM6rxwY+oc7/w== dependencies: lodash._baseassign "^3.0.0" lodash._basecreate "^3.0.0" @@ -7160,12 +7349,13 @@ lodash.create@3.1.1: lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.defaultsdeep@4.3.2: version "4.3.2" - resolved "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz#6c1a586e6c5647b0e64e2d798141b8836158be8a" + integrity sha512-RThXHj806/ceUpqZ5K/1s5qUNaIxPWzH4lFyqoGJziuN8zMRos/uyQv82YJkfHm/LPonvLyYayVabSGUamt0Tg== dependencies: lodash._baseclone "^4.0.0" lodash._stack "^4.0.0" @@ -7176,7 +7366,8 @@ lodash.defaultsdeep@4.3.2: lodash.find@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/lodash.find/-/lodash.find-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad" + integrity sha512-pN4ZB4KEepNd/97vLC5F3rl1tAAa5uWvISru2psLyLA8BtqBQwOA+2D7fdusG0aGmElOEurbSMlKI3UxjqoLQg== dependencies: lodash._basecallback "^3.0.0" lodash._baseeach "^3.0.0" @@ -7187,24 +7378,28 @@ lodash.find@^3.2.1: lodash.isarguments@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.isarray@^3.0.0: version "3.0.4" - resolved "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ== lodash.isequal@^4.2.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash.isfunction@^3.0.8: version "3.0.9" - resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== lodash.isplainobject@^3.0.0, lodash.isplainobject@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" + integrity sha512-P4wZnho5curNqeEq/x292Pb57e1v+woR7DJ84DURelKB46lby8aDEGVobSaYtzHdQBWQrJSdxcCwjlGOvvdIyg== dependencies: lodash._basefor "^3.0.0" lodash.isarguments "^3.0.0" @@ -7212,15 +7407,18 @@ lodash.isplainobject@^3.0.0, lodash.isplainobject@^3.2.0: lodash.isplainobject@^4.0.0: version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.istypedarray@^3.0.0: version "3.0.6" - resolved "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + integrity sha512-lGWJ6N8AA3KSv+ZZxlTdn4f6A7kMfpJboeyvbFdE7IU9YAgweODqmOgdUHOA+c6lVWeVLysdaxciFXi+foVsWw== lodash.keys@^3.0.0: version "3.1.2" - resolved "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ== dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" @@ -7228,22 +7426,26 @@ lodash.keys@^3.0.0: lodash.keysin@^3.0.0: version "3.0.8" - resolved "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz" + resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" + integrity sha512-YDB/5xkL3fBKFMDaC+cfGV00pbiJ6XoJIfRmBhv7aR6wWtbCW6IzkiWnTfkiHTF6ALD7ff83dAtB3OEaSoyQPg== dependencies: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" lodash.keysin@^4.0.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-4.2.0.tgz#8cc3fb35c2d94acc443a1863e02fa40799ea6f28" + integrity sha512-QDSAMsZshsqFm+mNfN3zhWXRH7kGRjh6DWCIekWqgANCBeb78IpZfunCmIsyqnLMp8mkHm5KTlQ35LwIn8hd0A== lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.merge@^3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" + integrity sha512-ZgGZpRhWLjivGUbjtApZR4HyLv/UAyoYqESVYkK4aLBJVHRrbFpG+GNnE9JPijliME4LkKM0SFI/WyOiBiv1+w== dependencies: lodash._arraycopy "^3.0.0" lodash._arrayeach "^3.0.0" @@ -7259,196 +7461,194 @@ lodash.merge@^3.3.2: lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.mergewith@^4.0.0: - version "4.6.1" - resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz" + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== lodash.pairs@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" + integrity sha512-lgXvpU43ZNQrZ/pK2cR97YzKeAno3e3HhcyvLKsofljeHKrQcZhT1vW7fg4X61c92tM+mjD/DypoLZYuAKNIkQ== dependencies: lodash.keys "^3.0.0" lodash.rest@^4.0.0: version "4.0.5" - resolved "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" + integrity sha512-hsypEpebNAt0hj1aX9isQqi2CIZoNS1lP6PSWhB3hcMnBivobYzPZRPYq4cr38+RtvrlxQTgaW+sIuHAhBoHrA== lodash.restparam@^3.0.0: version "3.6.1" - resolved "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + integrity sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw== lodash.toplainobject@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" + integrity sha512-wMI0Ju1bvSmnBS3EcRRH/3zDnZOPpDtMtNDzbbNMKuTrEpALsf+sPyMeogmv63Y11qZQO7H1xFzohIEGRMjPYA== dependencies: lodash._basecopy "^3.0.0" lodash.keysin "^3.0.0" lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz" - -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - log-symbols@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ== dependencies: chalk "^1.0.0" log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: - chalk "^4.0.0" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" log4js@^6.4.1: - version "6.4.4" - resolved "https://registry.npmjs.org/log4js/-/log4js-6.4.4.tgz" - integrity sha512-ncaWPsuw9Vl1CKA406hVnJLGQKy1OHx6buk8J4rE2lVW+NW5Y82G5/DIloO7NkqLOUtNPEANaWC1kZYVjXssPw== + version "6.6.1" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.6.1.tgz#48f23de8a87d2f5ffd3d913f24ca9ce77895272f" + integrity sha512-J8VYFH2UQq/xucdNu71io4Fo+purYYudyErgBbswWKO0MC6QVOERRomt5su/z6d3RJSmLyTGmXl3Q/XjKCf+/A== dependencies: - date-format "^4.0.6" + date-format "^4.0.13" debug "^4.3.4" - flatted "^3.2.5" + flatted "^3.2.6" rfdc "^1.3.0" - streamroller "^3.0.6" + streamroller "^3.1.2" lolex@1.6.0, lolex@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz" - integrity sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY= + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6" + integrity sha512-/bpxDL56TG5LS5zoXxKqA6Ro5tkOS5M8cm/7yQcwLIKIcM2HR5fjjNCaIhJNv96SEk4hNGSafYMZK42Xv5fihQ== -longest-streak@^2.0.1: +longest-streak@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== loose-envify@^1.0.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" - resolved "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" lower-case@^1.1.1: version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== lru-cache@^4.0.1: version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-cache@~2.6.5: version "2.6.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.5.tgz#e56d6354148ede8d7707b58d143220fd08df0fd5" + integrity sha512-a07BiTXhWFUBH0aXOQyW94p13FTDfbxotxWoPmuaUuNAqBQ3kXzgk7XanGiAkx5j9x1MBOM3Yjzf5Selm69D6A== magic-string@^0.25.7: version "0.25.9" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: sourcemap-codec "^1.4.8" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" makeerror@1.0.12: version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: tmpl "1.0.5" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== - dependencies: - repeat-string "^1.0.0" - -marked-mfm@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/marked-mfm/-/marked-mfm-0.4.0.tgz#d3094c42daaa57b1b0b263278633de82ebf62396" - integrity sha512-2ZdBHGOV7BFJUcQNLp/jjwEE2IT1O5d1H7cd4dGeuOBI1nivuBCv1Azt7fbRlygfUSQ2rgGtFZ1ZbrP4dRhh3A== +marked-mfm@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/marked-mfm/-/marked-mfm-0.5.0.tgz#0632c4fa8f5044d350b3aaa771b136e5d50b4b60" + integrity sha512-nRazH80nu7gVEDeORQWCWehY3v7fofC4usKdY/d6mckxfRY4PrPNLM3iGpVedpij9ktmesWAtY7SpCLq/BxP4Q== dependencies: "@babel/core" "^7.18.6" "@babel/preset-env" "^7.18.6" @@ -7462,48 +7662,73 @@ marked-mfm@^0.4.0: rollup "^2.76.0" marked@^4.0.17: - version "4.0.17" - resolved "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz" - integrity sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA== + version "4.0.18" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.18.tgz#cd0ac54b2e5610cfb90e8fd46ccaa8292c9ed569" + integrity sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw== math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz" + version "1.4.0" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz#3d66031117fbb7b9715ea6c9c68c2cd2eebd37e2" + integrity sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw== mathml-tag-names@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-util-compact@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz" - integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA== +mdast-util-from-markdown@^0.8.0: + version "0.8.5" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" + integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== dependencies: - unist-util-visit "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-to-markdown@^0.6.0: + version "0.6.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" + integrity sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ== + dependencies: + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memory-fs@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== dependencies: errno "^0.1.3" readable-stream "^2.0.1" memory-fs@^0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" @@ -7511,7 +7736,8 @@ memory-fs@^0.5.0: meow@^3.3.0: version "3.7.0" - resolved "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -7525,17 +7751,15 @@ meow@^3.3.0: trim-newlines "^1.0.0" meow@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz" - integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== + version "7.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" + integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== dependencies: "@types/minimist" "^1.2.0" - arrify "^2.0.1" - camelcase "^6.0.0" camelcase-keys "^6.2.2" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" - minimist-options "^4.0.2" + minimist-options "4.1.0" normalize-package-data "^2.5.0" read-pkg-up "^7.0.1" redent "^3.0.0" @@ -7545,32 +7769,36 @@ meow@^7.0.1: merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -mfm-js@^0.22.1: - version "0.22.1" - resolved "https://registry.npmjs.org/mfm-js/-/mfm-js-0.22.1.tgz" - integrity sha512-UV5zvDKlWPpBFeABhyCzuOTJ3RwrNrmVpJ+zz/dFX6D/ntEywljgxkfsLamcy0ZSwUAr0O+WQxGHvAwyxUgsAQ== +micromark@~2.11.0: + version "2.11.4" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" + integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== dependencies: - twemoji-parser "14.0.x" + debug "^4.0.0" + parse-entities "^2.0.0" micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -7588,7 +7816,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -7596,64 +7824,52 @@ micromatch@^4.0.2, micromatch@^4.0.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz" - mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz" - dependencies: - mime-db "1.40.0" - -mime-types@~2.1.34: +mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.0.3: - version "2.4.3" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz" - -mime@^2.4.4, mime@^2.5.2: +mime@^2.0.3, mime@^2.4.4, mime@^2.5.2: version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== mimic-fn@^1.0.0: version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.12.0.tgz#ddeb74fd6304ca9f99c1db74acc7d5b507705454" integrity sha512-z6PQCe9rd1XUwZ8gMaEVwwRyZlrYy8Ba1gRjFP5HcV51HkXX+XlwZ+a1iAYTjSYwgNBXoNR7mhx79mDpOn5fdw== dependencies: loader-utils "^1.1.0" @@ -7663,83 +7879,83 @@ mini-css-extract-plugin@0.12.0: minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimatch@3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + integrity sha512-NyXjqu1IwcqH6nv5vmMtaG3iw7kdV3g6MwlUBZkc3Vn5b5AMIWYKfptvzipoyFfhlfOgBQ9zoTxQMravF1QTnw== dependencies: brace-expansion "^1.0.0" -minimist-options@^4.0.2: +minimist-options@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - -minimist@^1.2.3: +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2: version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -7747,7 +7963,8 @@ minizlib@^2.1.1: mississippi@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -7761,37 +7978,41 @@ mississippi@^3.0.0: through2 "^2.0.0" mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz" + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA== dependencies: minimist "0.0.8" -mkdirp@^0.5.3, mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== +mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mkpath@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" + integrity sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w== mocha-nightwatch@3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz#91bcb9b3bde057dd7677c78125e491e58d66647c" + integrity sha512-BfV+l70xvwfFMoHE4scDN1yLXYeC/lN3TrL8z4R5KJaIStswlHaRNs77Aa/Jw3l3IQWH5/vPCyKYHNqlr1k9nw== dependencies: browser-stdout "1.3.0" commander "2.9.0" @@ -7807,7 +8028,7 @@ mocha-nightwatch@3.2.2: mocha@3.5.3: version "3.5.3" - resolved "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg== dependencies: browser-stdout "1.3.0" @@ -7825,7 +8046,8 @@ mocha@3.5.3: move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -7836,43 +8058,43 @@ move-concurrently@^1.0.1: ms@0.7.1: version "0.7.1" - resolved "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + integrity sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg== ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - mute-stream@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== nan@^2.12.1: version "2.16.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== -nanoid@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -7888,42 +8110,38 @@ nanomatch@^1.2.9: native-promise-only@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" + integrity sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0: - version "2.6.1" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz" - -neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== netmask@~1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" + integrity sha512-3DWDqAtIiPSkBXZyYEjwebfK56nrlQfRGt642fu8RPaL+ePu750+HCMHxjJCG3iEHq/0aeMvX6KIzlv7nuhfrA== nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nightwatch@0.9.21: version "0.9.21" - resolved "https://registry.npmjs.org/nightwatch/-/nightwatch-0.9.21.tgz" - integrity sha1-nnlKdRS0/V9GYC02jlBRUjKrnpA= + resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-0.9.21.tgz#9e794a7514b4fd5f46602d368e50515232ab9e90" + integrity sha512-Kjw/qpPRKIJffxxLAH+jxw5mF0ZXsYlwIkeDzqs6vFhdgeYopJKK6cvaKg9gPwswTp8LExnUfgpm+QF9epvNtg== dependencies: chai-nightwatch "~0.1.x" ejs "2.5.7" @@ -7938,18 +8156,19 @@ nightwatch@0.9.21: no-case@^2.2.0: version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== dependencies: lower-case "^1.1.1" node-int64@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" @@ -7976,46 +8195,29 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.58: - version "1.1.60" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== - -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== - -node-releases@^2.0.5: +node-releases@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== nomnomnomnom@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/nomnomnomnom/-/nomnomnomnom-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/nomnomnomnom/-/nomnomnomnom-2.0.1.tgz#b2239f031c8d04da67e32836e1e3199e12f7a8e2" + integrity sha512-oTu+BNJkTY6Mby5VzHFURovplds+KHknEkHEf+MYeokuoxetzUWi5h6Qg0SSkkoIq449T6EG/qWdbTXD5Cov5Q== dependencies: chalk "~0.4.0" underscore "~1.6.0" nopt@3.x: version "3.0.6" - resolved "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg== dependencies: abbrev "1" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -8025,26 +8227,30 @@ normalize-package-data@^2.5.0: normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-selector@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz" - integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + integrity sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw== normalize-url@1.9.1, normalize-url@^1.4.0: version "1.9.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -8053,32 +8259,32 @@ normalize-url@1.9.1, normalize-url@^1.4.0: npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: - boolbase "~1.0.0" + boolbase "^1.0.0" num2fraction@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -8086,36 +8292,29 @@ object-copy@^0.1.0: object-hash@^1.1.4: version "1.3.1" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -8124,81 +8323,97 @@ object.assign@^4.1.2: object-keys "^1.1.1" object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz" + version "2.1.4" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + array.prototype.reduce "^1.0.4" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.1" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" object.values@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" es-abstract "^1.19.1" +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== dependencies: ee-first "1.1.1" once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== dependencies: mimic-fn "^1.0.0" onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" opn@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz" - integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU= + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + integrity sha512-iPBWbPP4OEOzR1xfhpGLDh+ypKBOygunZhM9jBtA7FS5sKjEiMZw0EFb82hnDOmTZX90ZWLoZKUza4cVt8MexA== dependencies: object-assign "^4.0.1" pinkie-promise "^2.0.0" -optimist@0.6.1, optimist@^0.6.1: +optimist@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g== dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz" + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" optionator@^0.9.1: version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: deep-is "^0.1.3" @@ -8210,8 +8425,8 @@ optionator@^0.9.1: ora@0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/ora/-/ora-0.4.1.tgz" - integrity sha1-4mgYfIiQKV94WaxTX9jKLA/2Tec= + resolved "https://registry.yarnpkg.com/ora/-/ora-0.4.1.tgz#e268187c8890295f7859ac535fd8ca2c0ff64de7" + integrity sha512-MRR9kRGNqXwfZ3o4X9ojd1Czui8gPsq3qxH9yMJWgzkbPo1+rBZOtoidg9RrVA9SAgTSy0EjSgh0cCDUjCz97w== dependencies: chalk "^1.1.1" cli-cursor "^2.1.0" @@ -8220,79 +8435,82 @@ ora@0.4.1: os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" -p-limit@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz" - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz" + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@1: version "1.1.0" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz#34a385dfdf61d2f0ecace08858c745d3e791fd4d" + integrity sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ== dependencies: agent-base "2" debug "2" @@ -8306,7 +8524,8 @@ pac-proxy-agent@1: pac-resolver@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-2.0.0.tgz#99b88d2f193fbdeefc1c9a529c1f3260ab5277cd" + integrity sha512-wKZkFUj72S0djMZHwMkC5uyu4rl77jNKtsQnCAdjPLBHhvWNR/MPw5RL/BgXRh8v9EKG2Ce1oTIwSNdezo79fg== dependencies: co "~3.0.6" degenerator "~1.0.2" @@ -8315,43 +8534,47 @@ pac-resolver@~2.0.0: thunkify "~2.1.1" pako@~1.0.5: - version "1.0.10" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz" + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: - cyclist "~0.2.2" + cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" param-case@2.1.x: version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== dependencies: no-case "^2.2.0" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz" +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" parse-entities@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== dependencies: character-entities "^1.0.0" @@ -8363,21 +8586,22 @@ parse-entities@^2.0.0: parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -8387,83 +8611,89 @@ parse-json@^5.0.0, parse-json@^5.2.0: parse-link-header@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/parse-link-header/-/parse-link-header-1.0.1.tgz" - integrity sha1-vt/g0hGK64S+deewJUGeyKYRQKc= + resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-1.0.1.tgz#bedfe0d2118aeb84be75e7b025419ec8a61140a7" + integrity sha512-Z0gpfHmwCIKDr5rRzjypL+p93aHVWO7e+0rFcUl9E3sC67njjs+xHFenuboSXZGlvYtmQqRzRaE3iFpTUnLmFQ== dependencies: xtend "~4.0.1" parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" - path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz" + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" path-type@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: graceful-fs "^4.1.2" pify "^2.0.0" @@ -8471,12 +8701,13 @@ path-type@^1.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz" + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -8486,82 +8717,96 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== phoenix@1.6.2: version "1.6.2" - resolved "https://registry.npmjs.org/phoenix/-/phoenix-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/phoenix/-/phoenix-1.6.2.tgz#8d1d9f06e51cb893d08059e80488cd0de328e01a" integrity sha512-VjR27NETvrLSj8rI6DlpVAfo7pCYth/9+1OCoTof4LKEbq0141ze/tdxFHHZzVQSok3gqJUo2h/tqbxR3r8eyw== +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pirates@^4.0.4, pirates@^4.0.5: version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pkg-dir@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg== dependencies: find-up "^1.0.0" pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pngjs@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== pointer-tracker@^2.0.3: - version "2.4.0" - resolved "https://registry.npmjs.org/pointer-tracker/-/pointer-tracker-2.4.0.tgz" - integrity sha512-pWI2tpaM/XNtc9mUTv42Rmjf6mkHvE8LT5DDEq0G7baPNhxNM9E3CepubPplSoSLk9E5bwQrAMyDcPVmJyTW4g== + version "2.5.3" + resolved "https://registry.yarnpkg.com/pointer-tracker/-/pointer-tracker-2.5.3.tgz#5ed01f5ff023c649b2d7b20b07d68c3ac40642a6" + integrity sha512-LiJUeIbzk4dXq678YeyrZ++mdY17q4n/2sBHfU9wIuvmSzdiPgMvmvWN2g8mY4J7YwYOIrqrZUWP/MfFHVwYtg== posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postcss-calc@^5.2.0: version "5.3.1" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + integrity sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q== dependencies: postcss "^5.0.2" postcss-message-helpers "^2.0.0" @@ -8569,7 +8814,8 @@ postcss-calc@^5.2.0: postcss-colormin@^2.1.8: version "2.2.2" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + integrity sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w== dependencies: colormin "^1.0.5" postcss "^5.0.13" @@ -8577,73 +8823,80 @@ postcss-colormin@^2.1.8: postcss-convert-values@^2.3.4: version "2.6.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + integrity sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA== dependencies: postcss "^5.0.11" postcss-value-parser "^3.1.2" postcss-discard-comments@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + integrity sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg== dependencies: postcss "^5.0.14" postcss-discard-duplicates@^2.0.1: version "2.1.0" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + integrity sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA== dependencies: postcss "^5.0.4" postcss-discard-empty@^2.0.1: version "2.1.0" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + integrity sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og== dependencies: postcss "^5.0.14" postcss-discard-overridden@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + integrity sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA== dependencies: postcss "^5.0.16" postcss-discard-unused@^2.2.1: version "2.2.3" - resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + integrity sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg== dependencies: postcss "^5.0.14" uniqs "^2.0.0" postcss-filter-plugins@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== dependencies: postcss "^5.0.4" postcss-html@^0.36.0: version "0.36.0" - resolved "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204" integrity sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw== dependencies: htmlparser2 "^3.10.0" postcss-less@^3.1.4: version "3.1.4" - resolved "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.1.4.tgz#369f58642b5928ef898ffbc1a6e93c958304c5ad" integrity sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA== dependencies: postcss "^7.0.14" postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" postcss-loader@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" @@ -8653,12 +8906,13 @@ postcss-loader@3.0.0: postcss-media-query-parser@^0.2.3: version "0.2.3" - resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz" - integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== postcss-merge-idents@^2.1.5: version "2.1.7" - resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + integrity sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA== dependencies: has "^1.0.1" postcss "^5.0.10" @@ -8666,13 +8920,15 @@ postcss-merge-idents@^2.1.5: postcss-merge-longhand@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + integrity sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg== dependencies: postcss "^5.0.4" postcss-merge-rules@^2.0.3: version "2.1.2" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + integrity sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q== dependencies: browserslist "^1.5.2" caniuse-api "^1.5.2" @@ -8682,11 +8938,13 @@ postcss-merge-rules@^2.0.3: postcss-message-helpers@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + integrity sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA== postcss-minify-font-values@^1.0.2: version "1.0.5" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + integrity sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ== dependencies: object-assign "^4.0.1" postcss "^5.0.4" @@ -8694,14 +8952,16 @@ postcss-minify-font-values@^1.0.2: postcss-minify-gradients@^1.0.1: version "1.0.5" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + integrity sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q== dependencies: postcss "^5.0.12" postcss-value-parser "^3.3.0" postcss-minify-params@^1.0.4: version "1.2.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + integrity sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow== dependencies: alphanum-sort "^1.0.1" postcss "^5.0.2" @@ -8710,7 +8970,8 @@ postcss-minify-params@^1.0.4: postcss-minify-selectors@^2.0.4: version "2.1.1" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + integrity sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA== dependencies: alphanum-sort "^1.0.2" has "^1.0.1" @@ -8719,40 +8980,46 @@ postcss-minify-selectors@^2.0.4: postcss-modules-extract-imports@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== dependencies: postcss "^6.0.1" postcss-modules-local-by-default@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA== dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" postcss-modules-scope@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw== dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" postcss-modules-values@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA== dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" postcss-normalize-charset@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + integrity sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ== dependencies: postcss "^5.0.5" postcss-normalize-url@^3.0.7: version "3.0.8" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + integrity sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig== dependencies: is-absolute-url "^2.0.0" normalize-url "^1.4.0" @@ -8761,27 +9028,31 @@ postcss-normalize-url@^3.0.7: postcss-ordered-values@^2.1.0: version "2.2.3" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + integrity sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg== dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.1" postcss-reduce-idents@^2.2.2: version "2.4.0" - resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + integrity sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w== dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.2" postcss-reduce-initial@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + integrity sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA== dependencies: postcss "^5.0.4" postcss-reduce-transforms@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + integrity sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ== dependencies: has "^1.0.1" postcss "^5.0.8" @@ -8789,7 +9060,7 @@ postcss-reduce-transforms@^1.0.3: postcss-reporter@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw== dependencies: chalk "^2.4.1" @@ -8799,19 +9070,19 @@ postcss-reporter@^6.0.1: postcss-resolve-nested-selector@0.1.1, postcss-resolve-nested-selector@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz" - integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== postcss-safe-parser@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== dependencies: postcss "^7.0.26" postcss-sass@^0.4.4: version "0.4.4" - resolved "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz#91f0f3447b45ce373227a98b61f8d8f0785285a3" integrity sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg== dependencies: gonzales-pe "^4.3.0" @@ -8819,15 +9090,15 @@ postcss-sass@^0.4.4: postcss-scss@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz#ec3a75fa29a55e016b90bf3269026c53c1d2b383" integrity sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA== dependencies: postcss "^7.0.6" postcss-selector-parser@2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.1.tgz" - integrity sha1-/b9pYQOxKwpkBg5WEFB/QQSR98g= + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.1.tgz#fdbf696103b12b0a64060e5610507f410491f7c8" + integrity sha512-LRzWH77wkR+qOzxFn4ZRSE0qza0b0jOqvmISZU5ZoxeMZyz1JXBCffApXbi+IqByMl3A/mM1kN+iHSIJzeVooQ== dependencies: flatten "^1.0.2" indexes-of "^1.0.1" @@ -8835,24 +9106,25 @@ postcss-selector-parser@2.2.1: postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: version "2.2.3" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA== dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + util-deprecate "^1.0.2" postcss-svgo@^2.1.1: version "2.1.6" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + integrity sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ== dependencies: is-svg "^2.0.0" postcss "^5.0.14" @@ -8861,12 +9133,13 @@ postcss-svgo@^2.1.1: postcss-syntax@^0.36.2: version "0.36.2" - resolved "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== postcss-unique-selectors@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + integrity sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g== dependencies: alphanum-sort "^1.0.1" postcss "^5.0.4" @@ -8874,16 +9147,18 @@ postcss-unique-selectors@^2.0.2: postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss-zindex@^2.0.1: version "2.2.0" - resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + integrity sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w== dependencies: has "^1.0.1" postcss "^5.0.4" @@ -8891,7 +9166,8 @@ postcss-zindex@^2.0.1: postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: version "5.2.18" - resolved "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -8900,92 +9176,91 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 postcss@^6.0.1: version "6.0.23" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== dependencies: chalk "^2.4.1" source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0: - version "7.0.17" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.6, postcss@^7.0.7: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== dependencies: - chalk "^2.4.2" + picocolors "^0.2.1" source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.6, postcss@^7.0.7: - version "7.0.32" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" postcss@^8.1.10: - version "8.4.12" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz" - integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== dependencies: - nanoid "^3.3.1" + nanoid "^3.3.4" picocolors "^1.0.0" source-map-js "^1.0.2" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== prepend-http@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz" + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - renderkid "^2.0.1" - utila "~0.4" + lodash "^4.17.20" + renderkid "^2.0.4" -pretty-format@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz" - integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^18.0.0" private@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz" + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== prompts@^2.0.1: version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -8993,7 +9268,7 @@ prompts@^2.0.1: proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -9001,7 +9276,8 @@ proxy-addr@~2.0.7: proxy-agent@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-2.0.0.tgz#57eb5347aa805d74ec681cb25649dba39c933499" + integrity sha512-KAJqqQk7BZ/2aWcQ6aVLrA3NzTGNt69HBBFYnqTCy93DbtLSkXJZseFmpBzGI3+aon4B4rkAFxWJwzcb1cvCgA== dependencies: agent-base "2" debug "2" @@ -9014,20 +9290,23 @@ proxy-agent@2.0.0: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -9038,21 +9317,24 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" @@ -9060,96 +9342,127 @@ pumpify@^1.3.3: punycode.js@2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.1.0.tgz#f3937f7a914152c2dc17e9c280a2cf86a26b7cda" integrity sha512-LvGUJ9QHiESLM4yn8JuJWicstRcJKRmP46psQw1HvCZ9puLFwYMKJWvkAkP3OHBVzNzZGx/D53EYJrIaKd9gZQ== punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== punycode@^1.2.4: version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@1.4.1, q@^1.1.2: +q@1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/q/-/q-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + integrity sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qjobs@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== qrcode@1: - version "1.5.0" - resolved "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz" - integrity sha512-9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.1.tgz#0103f97317409f7bc91772ef30793a54cd59f0cb" + integrity sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== dependencies: dijkstrajs "^1.0.1" encode-utf8 "^1.0.3" pngjs "^5.0.0" yargs "^15.3.1" +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + qs@6.9.7: version "6.9.7" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== query-string@^4.1.0: version "4.3.4" - resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== -querystring@0.2.0, querystring@^0.2.0: +querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-lru@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2: - version "2.3.3" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz" +raw-body@2, raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" unpipe "1.0.0" raw-body@2.4.3: version "2.4.3" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== dependencies: bytes "3.1.2" @@ -9159,24 +9472,25 @@ raw-body@2.4.3: raw-loader@0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz" - integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + integrity sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q== react-is@^18.0.0: version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== dependencies: find-up "^1.0.0" read-pkg "^1.0.0" read-pkg-up@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: find-up "^4.1.0" @@ -9185,7 +9499,8 @@ read-pkg-up@^7.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" @@ -9193,7 +9508,7 @@ read-pkg@^1.0.0: read-pkg@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" @@ -9202,8 +9517,9 @@ read-pkg@^5.2.0: type-fest "^0.6.0" "readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -9213,27 +9529,19 @@ read-pkg@^5.2.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.0: - version "1.0.34" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@1.1.x: version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.1.1: +readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -9242,42 +9550,38 @@ readable-stream@^3.1.1: readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" redent@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" redent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: indent-string "^4.0.0" @@ -9285,73 +9589,79 @@ redent@^3.0.0: reduce-css-calc@^1.2.6: version "1.3.0" - resolved "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA== dependencies: balanced-match "^0.4.2" math-expression-evaluator "^1.2.14" reduce-function-call "^1.0.1" reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz" + version "1.0.3" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f" + integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ== dependencies: - balanced-match "^0.4.2" + balanced-match "^1.0.0" regenerate-unicode-properties@^10.0.1: version "10.0.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" -regenerate@^1.2.1, regenerate@^1.4.2: +regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.4: version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.15.0: version "0.15.0" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + regexpp@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpp@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" @@ -9361,294 +9671,261 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - regjsgen@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" - dependencies: - jsesc "~0.5.0" - regjsparser@^0.8.2: version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" relateurl@0.2.x: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== -remark-parse@^8.0.0: - version "8.0.3" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" + mdast-util-from-markdown "^0.8.0" -remark-stringify@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz" - integrity sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A== +remark-stringify@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" + integrity sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg== dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^2.0.0" - mdast-util-compact "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^3.0.0" - unherit "^1.0.4" - xtend "^4.0.1" + mdast-util-to-markdown "^0.6.0" -remark@^12.0.0: - version "12.0.1" - resolved "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz" - integrity sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw== +remark@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" + integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== dependencies: - remark-parse "^8.0.0" - remark-stringify "^8.0.0" - unified "^9.0.0" + remark-parse "^9.0.0" + remark-stringify "^9.0.0" + unified "^9.1.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== -renderkid@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz" +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: - css-select "^1.1.0" - dom-converter "~0.2" - htmlparser2 "~3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz" + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== -repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== repeating@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz" - integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= - require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== require-package-name@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" + integrity sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve.exports@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@1.1.x, resolve@^1.1.6: +resolve@1.1.x: version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== -resolve@^1.10.0, resolve@^1.8.1: - version "1.11.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz" +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.8.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - path-parse "^1.0.6" - -resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.3.2: - version "1.13.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz" - integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w== - dependencies: - path-parse "^1.0.6" - restore-cursor@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== dependencies: onetime "^2.0.0" signal-exit "^3.0.2" ret@~0.1.10: version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1: +rimraf@2.6.3: version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" -rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" rollup@^2.76.0: - version "2.76.0" - resolved "https://registry.npmjs.org/rollup/-/rollup-2.76.0.tgz" - integrity sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA== + version "2.77.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.2.tgz#6b6075c55f9cc2040a5912e6e062151e42e2c4e3" + integrity sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g== optionalDependencies: fsevents "~2.3.2" ruffle-mirror@2021.12.31: version "2021.12.31" - resolved "https://registry.npmjs.org/ruffle-mirror/-/ruffle-mirror-2021.12.31.tgz" + resolved "https://registry.yarnpkg.com/ruffle-mirror/-/ruffle-mirror-2021.12.31.tgz#d5ece0ff164d98468d84eb7cba3e69abff4c0687" integrity sha512-kilyYstBQ+ZQY44IvUHhMt8Uh1yQJ8B+6GdzA1FzErgJy+5mnaLUBtU8JEG7cSrW3QLdFQLhRSeh8lLDINXgSA== run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz" - dependencies: - is-promise "^2.1.0" + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz" + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== samsam@1.x, samsam@^1.1.3: version "1.3.0" - resolved "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== sass-loader@7.3.1: version "7.3.1" @@ -9672,11 +9949,13 @@ sass@1.53.0: sax@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" ajv-errors "^1.0.0" @@ -9684,7 +9963,7 @@ schema-utils@^1.0.0: schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -9692,55 +9971,49 @@ schema-utils@^2.6.5: ajv-keywords "^3.5.2" schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" selenium-server@2.53.1: version "2.53.1" - resolved "https://registry.npmjs.org/selenium-server/-/selenium-server-2.53.1.tgz" + resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-2.53.1.tgz#d681528812f3c2e0531a6b7e613e23bb02cce8a6" + integrity sha512-IRRWVxcfJ1hfgpHo70kR8eP3Td5impMHMRfsDxpBZOIK3FWSbagmW88Hsgq3ZlWG3iMv8zx+F7KWYii2Y1UH+g== -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz" - -semver@5.7.1, semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@5.7.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.5.1: - version "5.7.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" - semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.5, semver@^7.3.7: version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" semver@~5.0.1: version "5.0.3" - resolved "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + integrity sha512-5OkOBiw69xqmxOFIXwXsiY1HlE+om8nNptg1ZIf95fzcnfgOv2fLm7pmmGbRJsjJIqPpW5Kwy4wpDBTz5wQlUw== send@0.17.2: version "0.17.2" - resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== dependencies: debug "2.6.9" @@ -9759,21 +10032,21 @@ send@0.17.2: serialize-javascript@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== dependencies: randombytes "^2.1.0" serialize-javascript@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" serve-static@1.14.2: version "1.14.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== dependencies: encodeurl "~1.0.2" @@ -9783,27 +10056,20 @@ serve-static@1.14.2: serviceworker-webpack-plugin@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/serviceworker-webpack-plugin/-/serviceworker-webpack-plugin-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/serviceworker-webpack-plugin/-/serviceworker-webpack-plugin-1.0.1.tgz#481863288487e92da01d49745336c72ef8a6136b" integrity sha512-VgDEkZ3pA0HajsRaWtl5w6bLxAXx0Y+4dm7YeTcIxVmvC9YXvstex38HOBDuYETeDS5fUlBy/47gC0QYBrG0nw== dependencies: minimatch "^3.0.4" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz" +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -9812,56 +10078,56 @@ set-value@^2.0.0: setimmediate@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@0.8.5: version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -9870,7 +10136,7 @@ shelljs@0.8.5: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -9879,17 +10145,17 @@ side-channel@^1.0.4: signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== sinon-chai@2.14.0: version "2.14.0" - resolved "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" integrity sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ== sinon@2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/sinon/-/sinon-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.4.1.tgz#021fd64b54cb77d9d2fb0d43cdedfae7629c3a36" integrity sha512-vFTrO9Wt0ECffDYIPSP/E5bBugt0UjcBQOfQUMh66xzkyPEnhl/vM2LRZi2ajuTdkH07sA6DzrM6KvdvGIH8xw== dependencies: diff "^3.1.0" @@ -9903,21 +10169,23 @@ sinon@2.4.1: sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== slash@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== dependencies: ansi-styles "^3.2.0" astral-regex "^1.0.0" @@ -9925,11 +10193,13 @@ slice-ansi@^2.1.0: smart-buffer@^1.0.13: version "1.1.15" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" + integrity sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ== snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -9937,13 +10207,15 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" @@ -9954,35 +10226,36 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz" - integrity sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ== +socket.io-adapter@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6" + integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg== socket.io-parser@~4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== + version "4.0.5" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.5.tgz#cb404382c32324cc962f27f3a44058cf6e0552df" + integrity sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig== dependencies: "@types/component-emitter" "^1.2.10" component-emitter "~1.3.0" debug "~4.3.1" socket.io@^4.2.0: - version "4.4.1" - resolved "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz" - integrity sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg== + version "4.5.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.1.tgz#aa7e73f8a6ce20ee3c54b2446d321bbb6b1a9029" + integrity sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ== dependencies: accepts "~1.3.4" base64id "~2.0.0" debug "~4.3.2" - engine.io "~6.1.0" - socket.io-adapter "~2.3.3" + engine.io "~6.2.0" + socket.io-adapter "~2.4.0" socket.io-parser "~4.0.4" socks-proxy-agent@2: version "2.1.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz#86ebb07193258637870e13b7bd99f26c663df3d3" + integrity sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw== dependencies: agent-base "2" extend "3" @@ -9990,31 +10263,35 @@ socks-proxy-agent@2: socks@~1.1.5: version "1.1.10" - resolved "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz" + resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a" + integrity sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA== dependencies: ip "^1.1.4" smart-buffer "^1.0.13" sort-keys@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz" + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" @@ -10022,7 +10299,7 @@ source-map-resolve@^0.5.0: source-map-support@0.5.13: version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" @@ -10030,149 +10307,153 @@ source-map-support@0.5.13: source-map-support@^0.4.15: version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" -source-map-support@^0.5.16: - version "0.5.16" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@^0.5.16, source-map-support@~0.5.12: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz" + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== source-map@~0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + integrity sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA== dependencies: amdefine ">=0.0.4" sourcemap-codec@^1.4.8: version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz" + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== specificity@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz" + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== dependencies: figgy-pudding "^3.5.1" ssri@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" stack-utils@^2.0.3: version "2.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== dependencies: escape-string-regexp "^2.0.0" -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2": - version "1.4.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz" + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -10181,25 +10462,27 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -streamroller@^3.0.6: - version "3.0.6" - resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.0.6.tgz" - integrity sha512-Qz32plKq/MZywYyhEatxyYc8vs994Gz0Hu2MSYXXLD233UyPeIeRBZARIIGwFer4Mdb8r3Y2UqKkgyDghM6QCg== +streamroller@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.2.tgz#abd444560768b340f696307cf84d3f46e86c0e63" + integrity sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A== dependencies: - date-format "^4.0.6" + date-format "^4.0.13" debug "^4.3.4" - fs-extra "^10.0.1" + fs-extra "^8.1.0" strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== string-length@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: char-regex "^1.0.2" @@ -10207,14 +10490,16 @@ string-length@^4.0.1: string-width@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string-width@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" @@ -10222,162 +10507,157 @@ string-width@^3.0.0: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string_decoder@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@^1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~0.10.x: version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -stringify-entities@^3.0.0: +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz" - integrity sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.2" - is-hexadecimal "^1.0.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" strip-ansi@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg== strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== dependencies: get-stdin "^4.0.1" strip-indent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" strip-json-comments@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== style-search@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz" - integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== stylelint-config-recommended@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz#e0e547434016c5539fe2650afd58049a2fd1d657" integrity sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ== stylelint-config-standard@20.0.0: version "20.0.0" - resolved "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-20.0.0.tgz#06135090c9e064befee3d594289f50e295b5e20d" integrity sha512-IB2iFdzOTA/zS4jSVav6z+wGtin08qfj+YyExHB3LF9lnouQht//YyB0KZq9gGz5HNPkddHOzcY8HsUey6ZUlA== dependencies: stylelint-config-recommended "^3.0.0" stylelint-rscss@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/stylelint-rscss/-/stylelint-rscss-0.4.0.tgz" - integrity sha1-6nfEeOHHA9vah4wA9Tu8ACstB7c= + resolved "https://registry.yarnpkg.com/stylelint-rscss/-/stylelint-rscss-0.4.0.tgz#ea77c478e1c703dbda878c00f53bbc002b2d07b7" + integrity sha512-JMmORFkoi543AvHRZlrerflUFmegv5h9l3Fw0DUkkGrCaeyCY5rMVODrQQWS5iARSY42BWfjPd3WCalgVm2ecg== dependencies: postcss-resolve-nested-selector "0.1.1" postcss-selector-parser "2.2.1" stylelint@13.6.1: version "13.6.1" - resolved "https://registry.npmjs.org/stylelint/-/stylelint-13.6.1.tgz" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.6.1.tgz#cc1d76338116d55e8ff2be94c4a4386c1239b878" integrity sha512-XyvKyNE7eyrqkuZ85Citd/Uv3ljGiuYHC6UiztTR6sWS9rza8j3UeQv/eGcQS9NZz/imiC4GKdk1EVL3wst5vw== dependencies: "@stylelint/postcss-css-in-js" "^0.37.1" @@ -10431,57 +10711,54 @@ stylelint@13.6.1: sugarss@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== dependencies: postcss "^7.0.2" -supports-color@3.1.2, supports-color@^3.1.0: +supports-color@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + integrity sha512-F8dvPrZJtNzvDRX26eNXT4a7AecAvTGljmmnI39xEgSpbHKhQ7N0dO/NTxUExd0wuLHp4zbwYY7lvHq0aKpwrA== dependencies: has-flag "^1.0.0" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== -supports-color@^3.2.3: +supports-color@^3.1.0, supports-color@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A== dependencies: has-flag "^1.0.0" supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.0.0: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== dependencies: has-flag "^4.0.0" @@ -10489,17 +10766,18 @@ supports-hyperlinks@^2.0.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-tags@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== svgo@^0.7.0: version "0.7.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + integrity sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA== dependencies: coa "~1.0.1" colors "~1.1.2" @@ -10509,18 +10787,9 @@ svgo@^0.7.0: sax "~1.2.1" whet.extend "~0.9.9" -table@^5.2.3: - version "5.3.3" - resolved "https://registry.npmjs.org/table/-/table-5.3.3.tgz" - dependencies: - ajv "^6.9.1" - lodash "^4.17.11" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -table@^5.4.6: +table@^5.2.3, table@^5.4.6: version "5.4.6" - resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: ajv "^6.10.2" @@ -10530,12 +10799,13 @@ table@^5.4.6: tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^6.0.2: - version "6.1.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -10545,15 +10815,16 @@ tar@^6.0.2: yallist "^4.0.0" tcp-port-used@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz" + version "1.0.2" + resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.2.tgz#9652b7436eb1f4cfae111c79b558a25769f6faea" + integrity sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA== dependencies: - debug "4.1.0" - is2 "2.0.1" + debug "4.3.1" + is2 "^2.0.6" terminal-link@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== dependencies: ansi-escapes "^4.2.1" @@ -10561,7 +10832,7 @@ terminal-link@^2.0.0: terser-webpack-plugin@^1.4.3: version "1.4.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" @@ -10575,9 +10846,9 @@ terser-webpack-plugin@^1.4.3: worker-farm "^1.7.0" terser@^4.1.2: - version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + version "4.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -10585,7 +10856,7 @@ terser@^4.1.2: test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -10594,91 +10865,99 @@ test-exclude@^6.0.0: text-encoding@0.6.4: version "0.6.4" - resolved "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" + resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" + integrity sha512-hJnc6Qg3dWoOMkqP53F0dzRIgtmsAge09kxUIqGrEUS4qr5rWLckGYaQAVr+opBrIMRErGgy6f5aPnyPpyGRfg== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through2@^2.0.0: version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" through@^2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunkify@~2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" + integrity sha512-w9foI80XcGImrhMQ19pxunaEC5Rp2uzxZZg4XBAFRfiLOplk3F0l7wo+bO16vC2/nlQfR/mXZxcduo0MF2GWLg== timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz" + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" tmp@^0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" tmp@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: rimraf "^3.0.0" tmpl@1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== to-fast-properties@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -10687,125 +10966,123 @@ to-regex@^3.0.1, to-regex@^3.0.2: toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== toposort@^1.0.0: version "1.0.7" - resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg== trim-newlines@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw== trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== trim-right@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - -trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== trough@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== tsconfig-paths@^3.12.0: - version "3.14.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz" - integrity sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g== + version "3.14.1" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" - minimist "^1.2.0" + minimist "^1.2.6" strip-bom "^3.0.0" tslib@^1.8.1, tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz" + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - -twemoji-parser@14.0.x: - version "14.0.0" - resolved "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz" - integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" type-detect@0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha512-5rqszGVwYgBoDkIm2oUtvkfZMQ0vk29iDMU0W2qCa3rG0vPDNczCMT4hV/bLBgLg8k8ri6+u3Zbt+S/14eMzlA== type-detect@4.0.8, type-detect@^4.0.0: version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-detect@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha512-f9Uv6ezcpvCQjJU0Zqbg+65qdcszv3qUQsZfjdRbWiZ7AMenrX1u0lNk9EoWWX6e1F+NULyg27mtdeZ5WhpljA== type-fest@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -10813,57 +11090,57 @@ type-is@~1.6.18: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== ua-parser-js@^0.7.30: version "0.7.31" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== -uglify-js@3.4.x, uglify-js@^3.1.4: - version "3.4.9" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz" +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: - commander "~2.17.1" + commander "~2.19.0" source-map "~0.6.1" -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +uglify-js@^3.1.4: + version "3.16.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.16.3.tgz#94c7a63337ee31227a18d03b8a3041c210fd1f1d" + integrity sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" underscore@~1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -10871,18 +11148,18 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== -unified@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/unified/-/unified-9.1.0.tgz" - integrity sha512-VXOv7Ic6twsKGJDeZQ2wwPqXs2hM0KNu5Hkg9WgAZbSD1pxhZ7p8swqg583nw1Je2fhwHy6U8aEjiI79x1gvag== +unified@^9.1.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -10892,122 +11169,109 @@ unified@^9.0.0: vfile "^4.0.0" union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz" + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" - set-value "^0.4.3" + set-value "^2.0.1" uniq@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== uniqs@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz" + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" -unist-util-find-all-after@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.1.tgz" - integrity sha512-0GICgc++sRJesLwEYDjFVJPJttBpVQaTNgc6Jw0Jhzvfs+jtKePEMu+uD+PqkRUrAvGQqwhpDwLGWo1PK8PDEw== +unist-util-find-all-after@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" + integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== dependencies: unist-util-is "^4.0.0" unist-util-is@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz" - integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== unist-util-stringify-position@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== dependencies: "@types/unist" "^2.0.2" -unist-util-visit-parents@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz" - integrity sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" upath@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz" + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== +update-browserslist-db@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" + integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== dependencies: escalade "^3.1.1" picocolors "^1.0.0" upper-case@^1.1.1: version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-loader@1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== dependencies: loader-utils "^1.1.0" @@ -11016,58 +11280,67 @@ url-loader@1.1.2: url@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== dependencies: punycode "1.3.2" querystring "0.2.0" use@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" util@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" -utila@^0.4.0, utila@~0.4: +utila@~0.4: version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz" - integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== v8-to-istanbul@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== dependencies: "@jridgewell/trace-mapping" "^0.3.12" @@ -11076,60 +11349,59 @@ v8-to-istanbul@^9.0.1: validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" vary@^1, vary@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vendors@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz" - -vfile-location@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz" - integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== vfile-message@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" vfile@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz" - integrity sha512-lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ== + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" - replace-ext "1.0.0" unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== void-elements@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== vue-demi@^0.12.0: - version "0.12.4" - resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.4.tgz" - integrity sha512-ztPDkFt0TSUdoq1ZI6oD730vgztBkiByhUW7L1cOTebiSBqSYfSQgnhYakYigBkyAybqCTH7h44yZuDJf2xILQ== + version "0.12.5" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1" + integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q== vue-eslint-parser@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" + integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== dependencies: debug "^4.1.0" eslint-scope "^4.0.0" @@ -11139,18 +11411,18 @@ vue-eslint-parser@^5.0.0: lodash "^4.17.11" vue-i18n@^9.2.0-beta.39: - version "9.2.0-beta.39" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.2.0-beta.39.tgz#f502349c3483e6c2c9d0a379ff847ee21e99b482" - integrity sha512-J6dTGXY3WOj5BOwRY17/8NwSOOkI2dasGCwUxCT3LPUPnR4oQy7DocWmKT9XqeiJVnilP9XSi7EdScg/WiKZDA== + version "9.2.0-beta.40" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.2.0-beta.40.tgz#8088b19d619f47bf0e0f529f9bd1413460f2ff56" + integrity sha512-UwcGsbTTaDJry6BbFFzt115EVHN/bXi07DyUIZ4zrYeGMBPp2QAptMwVaGUQid1gaMmUreAKarGIqw46oCQEvg== dependencies: - "@intlify/core-base" "9.2.0-beta.39" - "@intlify/shared" "9.2.0-beta.39" - "@intlify/vue-devtools" "9.2.0-beta.39" + "@intlify/core-base" "9.2.0-beta.40" + "@intlify/shared" "9.2.0-beta.40" + "@intlify/vue-devtools" "9.2.0-beta.40" "@vue/devtools-api" "^6.2.1" vue-loader@^16.0.0: version "16.8.3" - resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087" integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA== dependencies: chalk "^4.1.0" @@ -11159,61 +11431,62 @@ vue-loader@^16.0.0: vue-router@4.0.14: version "4.0.14" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.14.tgz" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.14.tgz#ce2028c1c5c33e30c7287950c973f397fce1bd65" integrity sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw== dependencies: "@vue/devtools-api" "^6.0.0" vue-style-loader@4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== dependencies: hash-sum "^1.0.2" loader-utils "^1.0.2" vue-template-compiler@2.6.11: version "2.6.11" - resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== dependencies: de-indent "^1.0.2" he "^1.1.0" vue@^3.2.31: - version "3.2.31" - resolved "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz" - integrity sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw== + version "3.2.37" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e" + integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ== dependencies: - "@vue/compiler-dom" "3.2.31" - "@vue/compiler-sfc" "3.2.31" - "@vue/runtime-dom" "3.2.31" - "@vue/server-renderer" "3.2.31" - "@vue/shared" "3.2.31" + "@vue/compiler-dom" "3.2.37" + "@vue/compiler-sfc" "3.2.37" + "@vue/runtime-dom" "3.2.37" + "@vue/server-renderer" "3.2.37" + "@vue/shared" "3.2.37" vuex@4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-4.0.2.tgz#f896dbd5bf2a0e963f00c67e9b610de749ccacc9" integrity sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q== dependencies: "@vue/devtools-api" "^6.0.0-beta.11" walker@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" watchpack-chokidar2@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: version "1.7.5" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" @@ -11224,7 +11497,7 @@ watchpack@^1.7.4: webpack-dev-middleware@3.7.3, webpack-dev-middleware@^3.7.0: version "3.7.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" @@ -11245,15 +11518,16 @@ webpack-hot-middleware@2.25.1: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" uuid "^3.3.2" webpack-merge@0.20.0: version "0.20.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-0.20.0.tgz" - integrity sha1-5Lc0KVFxgaKHxZyMr+9fyesdlwU= + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-0.20.0.tgz#e4b73429517181a287c59c8cafef5fc9eb1d9705" + integrity sha512-BANuU/9IZJniOEaDsZLaQtLTwKNpPb9t+BL4jE1Ur3TOXzuqWVdxsvCobDmzUsGPsApvJZE1m6yYXJIrt4Iqdw== dependencies: lodash.find "^3.2.1" lodash.isequal "^4.2.0" @@ -11261,16 +11535,9 @@ webpack-merge@0.20.0: lodash.isplainobject "^3.2.0" lodash.merge "^3.3.2" -webpack-sources@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" @@ -11278,7 +11545,7 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: webpack@4.46.0: version "4.46.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -11307,11 +11574,12 @@ webpack@4.46.0: whet.extend@~0.9.9: version "0.9.9" - resolved "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + integrity sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA== which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -11322,44 +11590,48 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which@^1.0.9, which@^1.1.1, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wordwrap@^1.0.0, wordwrap@~1.0.0: +wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wordwrap@~0.0.2: version "0.0.3" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw== worker-farm@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -11368,7 +11640,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -11377,11 +11649,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -11391,7 +11664,7 @@ write-file-atomic@^3.0.3: write-file-atomic@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== dependencies: imurmurhash "^0.1.4" @@ -11399,72 +11672,68 @@ write-file-atomic@^4.0.1: write@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" ws@~8.2.3: version "8.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== xregexp@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA== xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - -xtend@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml-eslint-parser@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz#c7f5f3904f1c06ad55dc7131a731b018426b4898" integrity sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg== dependencies: eslint-visitor-keys "^1.3.0" lodash "^4.17.20" yaml "^1.10.0" -yaml@^1.10.0: +yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^1.7.2: - version "1.10.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== - yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" @@ -11472,17 +11741,17 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.0.0: version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^15.3.1: version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -11499,7 +11768,7 @@ yargs@^15.3.1: yargs@^16.1.1: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -11512,7 +11781,7 @@ yargs@^16.1.1: yargs@^17.3.1: version "17.5.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== dependencies: cliui "^7.0.2" @@ -11525,13 +11794,18 @@ yargs@^17.3.1: yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==