From 88d4beb68b304ea04bdafdb999c39be10d3f954a Mon Sep 17 00:00:00 2001 From: Nippy Date: Sat, 19 Sep 2026 15:40:27 +0200 Subject: fix profiles --- raveos-app-installer/PKGBUILD | 2 +- raveos-app-installer/app-list.json | 6 +- .../OpenTubeX/Local Storage/leveldb/000003.log | Bin 0 -> 855 bytes .../OpenTubeX/Local Storage/leveldb/CURRENT | 1 + .../configs/OpenTubeX/Local Storage/leveldb/LOCK | 0 .../configs/OpenTubeX/Local Storage/leveldb/LOG | 3 + .../OpenTubeX/Local Storage/leveldb/LOG.old | 3 + .../Local Storage/leveldb/MANIFEST-000001 | Bin 0 -> 41 bytes .../data/configs/OpenTubeX/Preferences | 1 + .../data/configs/OpenTubeX/playlists.db | 2 + .../data/configs/OpenTubeX/profiles.db | 1 + .../data/configs/OpenTubeX/settings.db | 30 + .../data/configs/OpenTubeX/subscription-cache.db | 1 + .../07bi09lg.default-default/AlternateServices.bin | Bin 11574 -> 0 bytes .../07bi09lg.default-default/addonStartup.json.lz4 | Bin .../librewolf/07bi09lg.default-default/addons.json | 0 .../bounce-tracking-protection.sqlite | Bin 98304 -> 0 bytes .../broadcast-listeners.json | 1 - .../librewolf/07bi09lg.default-default/cert9.db | Bin 229376 -> 0 bytes .../07bi09lg.default-default/cert_override.txt | 2 - .../07bi09lg.default-default/chat-store.sqlite | Bin 32768 -> 0 bytes .../07bi09lg.default-default/compatibility.ini | 0 .../07bi09lg.default-default/containers.json | 0 .../07bi09lg.default-default/content-prefs.sqlite | Bin 262144 -> 0 bytes .../07bi09lg.default-default/cookies.sqlite | Bin 524288 -> 0 bytes .../datareporting/glean/db/data.safe.bin | Bin 1166 -> 0 bytes .../datareporting/state.json | 1 - .../07bi09lg.default-default/enumerate_devices.txt | 1 - .../extension-preferences.json | 0 .../extension-settings.json | 0 .../extension-store/data.safe.bin | Bin .../07bi09lg.default-default/extensions.json | 0 .../extensions/uBlock0@raymondhill.net.xpi | Bin .../07bi09lg.default-default/favicons.sqlite | Bin .../07bi09lg.default-default/formhistory.sqlite | Bin 262144 -> 0 bytes .../07bi09lg.default-default/handlers.json | 0 .../librewolf/07bi09lg.default-default/key4.db | Bin 294912 -> 0 bytes .../librewolf/07bi09lg.default-default/logins.db | Bin 360448 -> 0 bytes .../07bi09lg.default-default/permissions.sqlite | Bin 163840 -> 0 bytes .../librewolf/07bi09lg.default-default/pkcs11.txt | 5 - .../07bi09lg.default-default/places.sqlite | Bin .../librewolf/07bi09lg.default-default/prefs.js | 0 .../07bi09lg.default-default/protections.sqlite | Bin 65536 -> 0 bytes .../07bi09lg.default-default/search.json.mozlz4 | Bin .../sessionCheckpoints.json | 1 - .../07bi09lg.default-default/sessionstore.jsonlz4 | Bin 67122 -> 0 bytes .../settings/data.safe.bin | Bin .../07bi09lg.default-default/storage.sqlite | Bin 4096 -> 0 bytes .../librewolf/07bi09lg.default-default/times.json | 0 .../07bi09lg.default-default/webappsstore.sqlite | Bin 98304 -> 0 bytes .../07bi09lg.default-default/xulstore.json | 0 .../configs/librewolf/0qzvjlj8.default/times.json | 0 .../librewolf/Profile Groups/517f778f.sqlite | Bin 491520 -> 0 bytes .../data/configs/librewolf/profiles.ini | 0 .../data/configs/vivaldi/Default/Bookmarks | 146 + .../5.5.2.40_0/_locales/ar/messages.json | 1686 + .../5.5.2.40_0/_locales/be/messages.json | 1686 + .../5.5.2.40_0/_locales/bg/messages.json | 1686 + .../5.5.2.40_0/_locales/bn/messages.json | 11 + .../5.5.2.40_0/_locales/ca/messages.json | 1686 + .../5.5.2.40_0/_locales/cs/messages.json | 1686 + .../5.5.2.40_0/_locales/da/messages.json | 1686 + .../5.5.2.40_0/_locales/de/messages.json | 1686 + .../5.5.2.40_0/_locales/el/messages.json | 1686 + .../5.5.2.40_0/_locales/en/messages.json | 1686 + .../5.5.2.40_0/_locales/es/messages.json | 1686 + .../5.5.2.40_0/_locales/es_419/messages.json | 1686 + .../5.5.2.40_0/_locales/et/messages.json | 1686 + .../5.5.2.40_0/_locales/fa/messages.json | 1686 + .../5.5.2.40_0/_locales/fi/messages.json | 1686 + .../5.5.2.40_0/_locales/fil/messages.json | 11 + .../5.5.2.40_0/_locales/fr/messages.json | 1686 + .../5.5.2.40_0/_locales/he/messages.json | 1686 + .../5.5.2.40_0/_locales/hi/messages.json | 1686 + .../5.5.2.40_0/_locales/hr/messages.json | 1686 + .../5.5.2.40_0/_locales/hu/messages.json | 1686 + .../5.5.2.40_0/_locales/hy/messages.json | 1686 + .../5.5.2.40_0/_locales/id/messages.json | 1686 + .../5.5.2.40_0/_locales/it/messages.json | 1686 + .../5.5.2.40_0/_locales/ja/messages.json | 1686 + .../5.5.2.40_0/_locales/kn/messages.json | 11 + .../5.5.2.40_0/_locales/ko/messages.json | 1686 + .../5.5.2.40_0/_locales/lt/messages.json | 1686 + .../5.5.2.40_0/_locales/lv/messages.json | 11 + .../5.5.2.40_0/_locales/mk-MK/messages.json | 11 + .../5.5.2.40_0/_locales/mk/messages.json | 1686 + .../5.5.2.40_0/_locales/ms/messages.json | 1686 + .../5.5.2.40_0/_locales/nb/messages.json | 1686 + .../5.5.2.40_0/_locales/nl/messages.json | 1686 + .../5.5.2.40_0/_locales/pl/messages.json | 1686 + .../5.5.2.40_0/_locales/pt_BR/messages.json | 1686 + .../5.5.2.40_0/_locales/pt_PT/messages.json | 1686 + .../5.5.2.40_0/_locales/ro/messages.json | 1686 + .../5.5.2.40_0/_locales/ru/messages.json | 1686 + .../5.5.2.40_0/_locales/sk/messages.json | 1686 + .../5.5.2.40_0/_locales/sl/messages.json | 1686 + .../5.5.2.40_0/_locales/sr/messages.json | 1686 + .../5.5.2.40_0/_locales/sv/messages.json | 1686 + .../5.5.2.40_0/_locales/ta/messages.json | 11 + .../5.5.2.40_0/_locales/te/messages.json | 11 + .../5.5.2.40_0/_locales/th/messages.json | 1686 + .../5.5.2.40_0/_locales/tr/messages.json | 1686 + .../5.5.2.40_0/_locales/uk/messages.json | 1686 + .../5.5.2.40_0/_locales/vi/messages.json | 1686 + .../5.5.2.40_0/_locales/zh_CN/messages.json | 1686 + .../5.5.2.40_0/_locales/zh_TW/messages.json | 1686 + .../5.5.2.40_0/assets/css/alert-container.css | 30 + .../5.5.2.40_0/assets/css/alert-popup.css | 297 + .../5.5.2.40_0/assets/css/c3.css | 175 + .../5.5.2.40_0/assets/css/devtools/custom.css | 37 + .../5.5.2.40_0/assets/css/devtools/dark.css | 98 + .../assets/css/devtools/elementsPanel.css | 770 + .../assets/css/devtools/inspectorCommon.css | 224 + .../assets/css/devtools/inspectorStyle.css | 518 + .../css/devtools/inspectorSyntaxHighlight.css | 140 + .../5.5.2.40_0/assets/css/devtools/sidebarPane.css | 114 + .../5.5.2.40_0/assets/css/fonts.css | 8 + .../5.5.2.40_0/assets/css/layers.css | 1 + .../5.5.2.40_0/assets/css/layout.css | 74 + .../5.5.2.40_0/assets/css/log.css | 412 + .../5.5.2.40_0/assets/css/main.css | 4 + .../5.5.2.40_0/assets/css/nanobar.css | 9 + .../assets/css/rules-limits-container.css | 15 + .../5.5.2.40_0/assets/css/rules-limits-popup.css | 107 + .../5.5.2.40_0/assets/css/style.css | 1440 + .../5.5.2.40_0/assets/css/update-container.css | 15 + .../assets/fonts/Roboto-Flex-Regular.woff2 | Bin 0 -> 728620 bytes .../5.5.2.40_0/assets/icons/loading-19.png | Bin 0 -> 662 bytes .../5.5.2.40_0/assets/icons/loading-38.png | Bin 0 -> 1173 bytes .../5.5.2.40_0/assets/icons/newyear25-off-19.png | Bin 0 -> 340 bytes .../5.5.2.40_0/assets/icons/newyear25-off-38.png | Bin 0 -> 492 bytes .../5.5.2.40_0/assets/icons/newyear25-on-19.png | Bin 0 -> 358 bytes .../5.5.2.40_0/assets/icons/newyear25-on-38.png | Bin 0 -> 511 bytes .../5.5.2.40_0/assets/icons/off-19.png | Bin 0 -> 410 bytes .../5.5.2.40_0/assets/icons/off-38.png | Bin 0 -> 702 bytes .../5.5.2.40_0/assets/icons/on-128.png | Bin 0 -> 2758 bytes .../5.5.2.40_0/assets/icons/on-16.png | Bin 0 -> 454 bytes .../5.5.2.40_0/assets/icons/on-19.png | Bin 0 -> 535 bytes .../5.5.2.40_0/assets/icons/on-38.png | Bin 0 -> 928 bytes .../assets/icons/update-available-19.png | Bin 0 -> 553 bytes .../assets/icons/update-available-38.png | Bin 0 -> 890 bytes .../5.5.2.40_0/assets/icons/warning-19.png | Bin 0 -> 471 bytes .../5.5.2.40_0/assets/icons/warning-38.png | Bin 0 -> 797 bytes .../5.5.2.40_0/assets/images/alert.svg | 15 + .../5.5.2.40_0/assets/images/app-store.svg | 14 + .../5.5.2.40_0/assets/images/arrow-down-grey.svg | 16 + .../5.5.2.40_0/assets/images/arrow-down.svg | 12 + .../5.5.2.40_0/assets/images/avatar.svg | 16 + .../5.5.2.40_0/assets/images/checked.svg | 16 + .../5.5.2.40_0/assets/images/chrome.svg | 52 + .../5.5.2.40_0/assets/images/cross.svg | 3 + .../5.5.2.40_0/assets/images/desktop-app-promo.svg | 1 + .../5.5.2.40_0/assets/images/dropbox.svg | 43 + .../5.5.2.40_0/assets/images/filters.svg | 51 + .../5.5.2.40_0/assets/images/google-play.svg | 59 + .../5.5.2.40_0/assets/images/hero-green.svg | 1 + .../5.5.2.40_0/assets/images/hero-red.svg | 1 + .../5.5.2.40_0/assets/images/import_error.svg | 1 + .../5.5.2.40_0/assets/images/import_success.svg | 1 + .../5.5.2.40_0/assets/images/link.svg | 1 + .../5.5.2.40_0/assets/images/logo-dark.svg | 11 + .../5.5.2.40_0/assets/images/logo-shield.svg | 1 + .../5.5.2.40_0/assets/images/logo.svg | 11 + .../5.5.2.40_0/assets/images/newyear25.svg | 90 + .../5.5.2.40_0/assets/images/reload-ico-green.svg | 1 + .../5.5.2.40_0/assets/images/reload-ico.svg | 17 + .../5.5.2.40_0/assets/images/shield.svg | 1 + .../5.5.2.40_0/assets/images/tick.svg | 1 + .../5.5.2.40_0/assets/images/toggler-bg.svg | 13 + .../5.5.2.40_0/assets/images/trash.svg | 1 + .../5.5.2.40_0/assets/js/preload-theme.js | 42 + .../5.5.2.40_0/assets/videos/loading.webm | Bin 0 -> 189336 bytes .../5.5.2.40_0/assets/wasm/onig.wasm | Bin 0 -> 473151 bytes .../5.5.2.40_0/manifest.json | 284 + .../5.5.2.40_0/pages/assistant-inject.js | 11127 + .../5.5.2.40_0/pages/background.js | 208132 ++++++++++++++++++ .../5.5.2.40_0/pages/blocking/blocked.html | 1605 + .../5.5.2.40_0/pages/blocking/blocked.js | 10846 + .../5.5.2.40_0/pages/content-script-end.js | 1870 + .../5.5.2.40_0/pages/content-script-start.js | 14827 ++ .../pages/devtools-elements-sidebar.html | 42 + .../5.5.2.40_0/pages/devtools-elements-sidebar.js | 3746 + .../5.5.2.40_0/pages/devtools.html | 1 + .../5.5.2.40_0/pages/devtools.js | 1263 + .../5.5.2.40_0/pages/filtering-log.html | 6 + .../5.5.2.40_0/pages/filtering-log.js | 51847 +++++ .../5.5.2.40_0/pages/fullscreen-user-rules.html | 15 + .../5.5.2.40_0/pages/fullscreen-user-rules.js | 13241 ++ .../5.5.2.40_0/pages/gpc.js | 133 + .../5.5.2.40_0/pages/hide-document-referrer.js | 133 + .../5.5.2.40_0/pages/import-configuration.js | 3541 + .../5.5.2.40_0/pages/options.html | 6 + .../5.5.2.40_0/pages/options.js | 33591 +++ .../5.5.2.40_0/pages/popup.html | 6 + .../5.5.2.40_0/pages/popup.js | 47212 ++++ .../5.5.2.40_0/pages/post-install.html | 26 + .../5.5.2.40_0/pages/post-install.js | 7639 + .../5.5.2.40_0/pages/subscribe.js | 3693 + .../5.5.2.40_0/pages/thankyou.js | 9169 + .../5.5.2.40_0/runtime.js | 239 + .../5.5.2.40_0/shared/editor.js | 44715 ++++ .../5.5.2.40_0/vendors/agtree.js | 19783 ++ .../5.5.2.40_0/vendors/css-tokenizer.js | 1798 + .../5.5.2.40_0/vendors/dnr-converter.js | 330 + .../5.5.2.40_0/vendors/mobx.js | 5285 + .../5.5.2.40_0/vendors/react.js | 504 + .../5.5.2.40_0/vendors/scriptlets.js | 24 + .../5.5.2.40_0/vendors/text-encoding-polyfill.js | 3426 + .../5.5.2.40_0/vendors/tsurlfilter.js | 42216 ++++ .../5.5.2.40_0/vendors/tswebextension.js | 38570 ++++ .../5.5.2.40_0/vendors/xstate.js | 5021 + .../web-accessible-resources/redirects.yml | 4656 + .../redirects/1x1-transparent.gif | Bin 0 -> 37 bytes .../redirects/2x2-transparent.png | Bin 0 -> 68 bytes .../redirects/32x32-transparent.png | Bin 0 -> 83 bytes .../redirects/3x2-transparent.png | Bin 0 -> 68 bytes .../redirects/amazon-apstag.js | 52 + .../redirects/ati-smarttag.js | 112 + .../redirects/click2load.html | 253 + .../redirects/didomi-loader.js | 160 + .../redirects/fingerprintjs.js | 92 + .../redirects/fingerprintjs2.js | 60 + .../redirects/fingerprintjs3.js | 63 + .../redirects/freewheel-admanager.js | 94 + .../web-accessible-resources/redirects/gemius.js | 50 + .../redirects/google-analytics-ga.js | 119 + .../redirects/google-analytics.js | 129 + .../redirects/google-ima3-dai.js | 746 + .../redirects/google-ima3-dai.ts | 625 + .../redirects/google-ima3.js | 646 + .../redirects/googlesyndication-adsbygoogle.js | 91 + .../redirects/googletagservices-gpt.js | 496 + .../web-accessible-resources/redirects/matomo.js | 53 + .../redirects/metrika-yandex-tag.js | 110 + .../redirects/metrika-yandex-watch.js | 94 + .../redirects/naver-wcslog.js | 46 + .../web-accessible-resources/redirects/noeval.js | 50 + .../web-accessible-resources/redirects/noopcss.css | 0 .../redirects/noopframe.html | 5 + .../web-accessible-resources/redirects/noopjs.js | 1 + .../redirects/noopjson.json | 1 + .../web-accessible-resources/redirects/noopmp3.mp3 | Bin 0 -> 813 bytes .../web-accessible-resources/redirects/noopmp4.mp4 | Bin 0 -> 3753 bytes .../web-accessible-resources/redirects/nooptext.js | 0 .../redirects/noopvast02.xml | 1 + .../redirects/noopvast03.xml | 1 + .../redirects/noopvast04.xml | 1 + .../redirects/noopvmap01.xml | 1 + .../redirects/pardot-1.0.js | 69 + .../redirects/prebid-ads.js | 42 + .../web-accessible-resources/redirects/prebid.js | 83 + .../redirects/prevent-bab.js | 89 + .../redirects/prevent-bab2.js | 55 + .../redirects/prevent-fab-3.2.0.js | 107 + .../redirects/prevent-popads-net.js | 69 + .../redirects/scorecardresearch-beacon.js | 46 + .../redirects/set-popads-dummy.js | 55 + .../data/configs/vivaldi/Default/Favicons | Bin 0 -> 32768 bytes .../data/configs/vivaldi/Default/Preferences | 2 +- .../configs/vivaldi/Default/Secure Preferences | 1 + .../data/configs/vivaldi/Last Version | 1 + .../data/configs/vivaldi/Local State | 1 + 262 files changed, 674774 insertions(+), 14 deletions(-) create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/000003.log create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/CURRENT create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOCK create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG.old create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 create mode 100644 raveos-app-installer/data/configs/OpenTubeX/Preferences create mode 100644 raveos-app-installer/data/configs/OpenTubeX/playlists.db create mode 100644 raveos-app-installer/data/configs/OpenTubeX/profiles.db create mode 100644 raveos-app-installer/data/configs/OpenTubeX/settings.db create mode 100644 raveos-app-installer/data/configs/OpenTubeX/subscription-cache.db delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/AlternateServices.bin mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addonStartup.json.lz4 mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addons.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/bounce-tracking-protection.sqlite delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/broadcast-listeners.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert9.db delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert_override.txt delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/chat-store.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/compatibility.ini mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/containers.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/content-prefs.sqlite delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cookies.sqlite delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/glean/db/data.safe.bin delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/state.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/enumerate_devices.txt mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-preferences.json mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-settings.json mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-store/data.safe.bin mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions.json mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions/uBlock0@raymondhill.net.xpi mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/favicons.sqlite delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/formhistory.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/handlers.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/key4.db delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/logins.db delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/permissions.sqlite delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/pkcs11.txt mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/places.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/prefs.js delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/protections.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/search.json.mozlz4 delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionCheckpoints.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionstore.jsonlz4 mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/settings/data.safe.bin delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/storage.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/times.json delete mode 100755 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/webappsstore.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/xulstore.json mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/0qzvjlj8.default/times.json delete mode 100755 raveos-app-installer/data/configs/librewolf/Profile Groups/517f778f.sqlite mode change 100755 => 100644 raveos-app-installer/data/configs/librewolf/profiles.ini create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Bookmarks create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ar/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/be/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bg/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bn/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ca/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/cs/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/da/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/de/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/el/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/en/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es_419/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/et/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fa/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fi/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fil/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fr/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/he/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hi/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hr/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hu/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hy/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/id/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/it/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ja/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/kn/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ko/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lt/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lv/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk-MK/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ms/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nb/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nl/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pl/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_BR/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_PT/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ro/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ru/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sk/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sl/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sr/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sv/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ta/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/te/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/th/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/tr/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/uk/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/vi/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_CN/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_TW/messages.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-container.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-popup.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/c3.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/custom.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/dark.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/elementsPanel.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorCommon.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorStyle.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorSyntaxHighlight.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/sidebarPane.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/fonts.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layers.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layout.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/log.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/main.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/nanobar.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-container.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-popup.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/style.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/update-container.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/fonts/Roboto-Flex-Regular.woff2 create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-128.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-16.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-19.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-38.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/alert.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/app-store.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down-grey.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/avatar.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/checked.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/chrome.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/cross.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/desktop-app-promo.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/dropbox.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/filters.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/google-play.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-green.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-red.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_error.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_success.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/link.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-dark.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-shield.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/newyear25.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico-green.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/shield.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/tick.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/toggler-bg.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/trash.svg create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/js/preload-theme.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/videos/loading.webm create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/wasm/onig.wasm create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/manifest.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/assistant-inject.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/background.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/blocking/blocked.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/blocking/blocked.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/content-script-end.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/content-script-start.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/devtools-elements-sidebar.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/devtools-elements-sidebar.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/devtools.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/devtools.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/filtering-log.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/filtering-log.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/fullscreen-user-rules.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/fullscreen-user-rules.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/gpc.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/hide-document-referrer.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/import-configuration.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/options.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/options.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/popup.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/popup.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/post-install.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/post-install.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/subscribe.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/thankyou.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/runtime.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/shared/editor.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/agtree.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/css-tokenizer.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/dnr-converter.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/mobx.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/react.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/scriptlets.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/text-encoding-polyfill.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/tsurlfilter.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/tswebextension.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/vendors/xstate.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects.yml create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/1x1-transparent.gif create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/2x2-transparent.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/32x32-transparent.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/3x2-transparent.png create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/amazon-apstag.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/ati-smarttag.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/click2load.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/didomi-loader.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/fingerprintjs.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/fingerprintjs2.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/fingerprintjs3.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/freewheel-admanager.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/gemius.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/google-analytics-ga.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/google-analytics.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/google-ima3-dai.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/google-ima3-dai.ts create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/google-ima3.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/googlesyndication-adsbygoogle.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/googletagservices-gpt.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/matomo.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/metrika-yandex-tag.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/metrika-yandex-watch.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/naver-wcslog.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noeval.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopcss.css create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopframe.html create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopjs.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopjson.json create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopmp3.mp3 create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopmp4.mp4 create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/nooptext.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopvast02.xml create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopvast03.xml create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopvast04.xml create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/noopvmap01.xml create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/pardot-1.0.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prebid-ads.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prebid.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prevent-bab.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prevent-bab2.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prevent-fab-3.2.0.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/prevent-popads-net.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/scorecardresearch-beacon.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/web-accessible-resources/redirects/set-popads-dummy.js create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Favicons mode change 100755 => 100644 raveos-app-installer/data/configs/vivaldi/Default/Preferences create mode 100644 raveos-app-installer/data/configs/vivaldi/Default/Secure Preferences create mode 100644 raveos-app-installer/data/configs/vivaldi/Last Version create mode 100644 raveos-app-installer/data/configs/vivaldi/Local State (limited to 'raveos-app-installer') diff --git a/raveos-app-installer/PKGBUILD b/raveos-app-installer/PKGBUILD index ebfc4a9..98b68ad 100644 --- a/raveos-app-installer/PKGBUILD +++ b/raveos-app-installer/PKGBUILD @@ -8,7 +8,7 @@ pkgname=raveos-app-installer pkgver=3.1 -pkgrel=10 +pkgrel=11 pkgdesc="RaveOS graphical application installer" arch=('any') url="https://git.rp1.hu/RaveOS/raveos-app-installer" diff --git a/raveos-app-installer/app-list.json b/raveos-app-installer/app-list.json index 3127b94..715ced4 100644 --- a/raveos-app-installer/app-list.json +++ b/raveos-app-installer/app-list.json @@ -206,7 +206,10 @@ "type": "aur", "packages": [ "opentubex-bin" - ] + ], + "config_overwrite": true, + "config_dir": "OpenTubeX", + "config_dest": "{HOME}/.config/OpenTubeX" }, { "id": "gamemode", @@ -388,6 +391,7 @@ }, "type": "flatpak-user", "flatpak_id": "io.gitlab.librewolf-community", + "config_overwrite": true, "config_mappings": [ { "source": "librewolf", diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/000003.log b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/000003.log new file mode 100644 index 0000000..b121d07 Binary files /dev/null and b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/000003.log differ diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/CURRENT b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/CURRENT new file mode 100644 index 0000000..7ed683d --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/CURRENT @@ -0,0 +1 @@ +MANIFEST-000001 diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOCK b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG new file mode 100644 index 0000000..697c2ad --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG @@ -0,0 +1,3 @@ +2026/09/19-13:33:03.597 f103 Reusing MANIFEST /home/t/.config/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 +2026/09/19-13:33:03.597 f103 Recovering log #3 +2026/09/19-13:33:03.597 f103 Reusing old log /home/t/.config/OpenTubeX/Local Storage/leveldb/000003.log diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG.old b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG.old new file mode 100644 index 0000000..94eac98 --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/LOG.old @@ -0,0 +1,3 @@ +2026/09/19-13:32:22.738 f050 Reusing MANIFEST /home/t/.config/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 +2026/09/19-13:32:22.738 f050 Recovering log #3 +2026/09/19-13:32:22.738 f050 Reusing old log /home/t/.config/OpenTubeX/Local Storage/leveldb/000003.log diff --git a/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 new file mode 100644 index 0000000..18e5cab Binary files /dev/null and b/raveos-app-installer/data/configs/OpenTubeX/Local Storage/leveldb/MANIFEST-000001 differ diff --git a/raveos-app-installer/data/configs/OpenTubeX/Preferences b/raveos-app-installer/data/configs/OpenTubeX/Preferences new file mode 100644 index 0000000..eb76603 --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/Preferences @@ -0,0 +1 @@ +{"electron":{"media":{"device_id_salt":"FFCE05405E8E47FC6DFC99E362E26B37"}},"spellcheck":{"dictionaries":["en-GB"],"dictionary":""}} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/OpenTubeX/playlists.db b/raveos-app-installer/data/configs/OpenTubeX/playlists.db new file mode 100644 index 0000000..a6541b9 --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/playlists.db @@ -0,0 +1,2 @@ +{"playlistName":"Favorites","protected":false,"description":"Your favorite videos","videos":[],"_id":"favorites","createdAt":1789817235801,"lastUpdatedAt":1789817235801} +{"playlistName":"Watch Later","protected":false,"description":"Videos to watch later","quickBookmarkIcon":"clock","videos":[],"_id":"watchLater","createdAt":1789817235801,"lastUpdatedAt":1789817235801} diff --git a/raveos-app-installer/data/configs/OpenTubeX/profiles.db b/raveos-app-installer/data/configs/OpenTubeX/profiles.db new file mode 100644 index 0000000..116ca02 --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/profiles.db @@ -0,0 +1 @@ +{"_id":"allChannels","name":"All Channels","bgColor":"var(--primary-color)","textColor":"var(--text-with-main-color)","subscriptions":[{"id":"UCTmdZqq0VxUKGjH89RNTbLw","name":"RP's Lair","thumbnail":"https://yt3.googleusercontent.com/ZDWTncQ2j9xryY6yyeXoLHeIiCDYfKLG41FgUV79Yw-X-dd-RXcQWOG1CEUDZmXMvHT3MQCFSg=s176-c-k-c0x00ffffff-no-rj","feedTypes":["videos","shorts","live","posts"],"showMembersOnly":false}]} diff --git a/raveos-app-installer/data/configs/OpenTubeX/settings.db b/raveos-app-installer/data/configs/OpenTubeX/settings.db new file mode 100644 index 0000000..07f130c --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/settings.db @@ -0,0 +1,30 @@ +{"_id":"appFont","value":"Ubuntu"} +{"_id":"barColor","value":false} +{"_id":"baseTheme","value":"dark"} +{"_id":"bounds","value":{"x":680,"y":320,"width":1200,"height":800,"maximized":true,"fullScreen":false}} +{"_id":"channelSettingsSyncMigration","value":true} +{"_id":"confirmCloseApp","value":false} +{"_id":"confirmCloseMultipleTabs","value":false} +{"_id":"confirmCloseWindowWithMultipleTabs","value":false} +{"_id":"confirmLoadMultipleTabs","value":false} +{"_id":"confirmUnloadMultipleTabs","value":false} +{"_id":"contextMenuSearchEngines","value":"[{\"id\":\"duckduckgo\",\"name\":\"DuckDuckGo\",\"url\":\"https://duckduckgo.com/?q=%s\",\"enabled\":false},{\"id\":\"startpage\",\"name\":\"Startpage\",\"url\":\"https://www.startpage.com/sp/search?query=%s\",\"enabled\":false},{\"id\":\"qwant\",\"name\":\"Qwant\",\"url\":\"https://www.qwant.com/?q=%s\",\"enabled\":false},{\"id\":\"brave\",\"name\":\"Brave Search\",\"url\":\"https://search.brave.com/search?q=%s\",\"enabled\":true}]"} +{"_id":"defaultQuality","value":"1440"} +{"_id":"defaultViewingMode","value":"theatre"} +{"_id":"historyWatchedStatusMigrated","value":true} +{"_id":"landingPage","value":"subscriptions"} +{"_id":"lastUsedVersion","value":"0.34.1"} +{"_id":"mainColor","value":"LightGreen"} +{"_id":"moveDownloadsToAppHeader","value":true} +{"_id":"moveSettingsToAppHeader","value":true} +{"_id":"navigationItems","value":["home","subscriptions","userplaylists","history","subscribedchannels","trending","popular","stats"]} +{"_id":"quickBookmarkTargetPlaylistId","value":"favorites"} +{"_id":"region","value":"HU"} +{"_id":"secColor","value":"LightGreen"} +{"_id":"syncServerEnabled","value":false} +{"_id":"syncServerSettingUpdatedAt","value":{"landingPage":1789817578640,"quickBookmarkTargetPlaylistId":1789817235922,"defaultQuality":1789817248632,"mainColor":1789817404599,"baseTheme":1789817301908,"region":1789817313039,"defaultViewingMode":1789817323545,"useSponsorBlock":1789817358771,"confirmCloseApp":1789817368886,"confirmCloseMultipleTabs":1789817369184,"confirmUnloadMultipleTabs":1789817369470,"confirmLoadMultipleTabs":1789817370177,"confirmCloseWindowWithMultipleTabs":1789817370469,"contextMenuSearchEngines":1789817380310,"secColor":1789817406343,"useReturnYouTubeDislikes":1789817466719,"moveDownloadsToAppHeader":1789817503293,"barColor":1789817509551,"moveSettingsToAppHeader":1789817521651,"navigationItems":1789817543038}} +{"_id":"tutorialAudience","value":"completed"} +{"_id":"uiScale","value":110} +{"_id":"useReturnYouTubeDislikes","value":true} +{"_id":"useSponsorBlock","value":true} +{"_id":"ytDlpSource","value":"managed"} diff --git a/raveos-app-installer/data/configs/OpenTubeX/subscription-cache.db b/raveos-app-installer/data/configs/OpenTubeX/subscription-cache.db new file mode 100644 index 0000000..783aa65 --- /dev/null +++ b/raveos-app-installer/data/configs/OpenTubeX/subscription-cache.db @@ -0,0 +1 @@ +{"_id":"UCTmdZqq0VxUKGjH89RNTbLw","videos":[{"type":"video","videoId":"twjfzZnzB6A","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/twjfzZnzB6A/mqdefault_6s.webp?du=3000&sqp=CMDSudUG&rs=AOn4CLCk7aaZJthkA9URawGeezfXpXZxvA","title":"RaveOS LINUX, RaveMERCH, RP Discord Alternatíva | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":4800,"published":1788003150662,"lengthSeconds":1406,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"ajid1KFpydE","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/ajid1KFpydE/mqdefault_6s.webp?du=3000&sqp=CKC6udUG&rs=AOn4CLBy7DQW9IT6UP9-GS1IXWEUaDqyow","title":"NE VEDD MEG! 7700X3D | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6700,"published":1787225550663,"lengthSeconds":1705,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"7XQ3Qfaz4i8","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/7XQ3Qfaz4i8/mqdefault_6s.webp?du=3000&sqp=CJTUudUG&rs=AOn4CLBJkRD8mp68H38dnmI2O9-64KAwYw","title":"Ez A Cég Is FULL ON FÉRGES | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7000,"published":1787225550663,"lengthSeconds":2972,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"wZZvcjrfXUM","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/wZZvcjrfXUM/mqdefault_6s.webp?du=3000&sqp=CIHFudUG&rs=AOn4CLAy12Xmhh-GKDlRE5ijG7Pd6XrgIA","title":"FSR 4.1.1 | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6400,"published":1787225550663,"lengthSeconds":1731,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"WJzpV8zZXGc","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/WJzpV8zZXGc/mqdefault_6s.webp?du=3000&sqp=CPrYudUG&rs=AOn4CLB07TwmeQ6SDgAF43td8mDy09Ksrg","title":"GTA VI | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":9800,"published":1784633550663,"lengthSeconds":1345,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"PVhI2-oVTAY","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/PVhI2-oVTAY/mqdefault_6s.webp?du=3000&sqp=CPjiudUG&rs=AOn4CLCIPaWzhAiOsEVuhpLqLD-_VX4__w","title":"Noctua AIO | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":5400,"published":1784633550663,"lengthSeconds":1269,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"41ZFbcD8mpo","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/41ZFbcD8mpo/mqdefault_6s.webp?du=3000&sqp=CIK1udUG&rs=AOn4CLCpSYs3qLbESSJSNPt7HbFPI3jFmQ","title":"Steam Machine | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7300,"published":1784633550663,"lengthSeconds":2109,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"Eh0GSK1oUdU","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/Eh0GSK1oUdU/mqdefault_6s.webp?du=3000&sqp=CKPhudUG&rs=AOn4CLCzI5b8rWUswoVRQgXTiD3SNFAVjw","title":"RaveOS Gaming Linux 2.0 Beta | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6700,"published":1774265550663,"lengthSeconds":991,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"wlZiBYVEX9I","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/wlZiBYVEX9I/mqdefault_6s.webp?du=3000&sqp=CPzKudUG&rs=AOn4CLDARC---315iQBdK7_zfqVCvkMlmg","title":"Discord - 1984 | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":8100,"published":1774265550663,"lengthSeconds":2917,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"VjUjTFgVK8o","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/VjUjTFgVK8o/mqdefault_6s.webp?du=3000&sqp=CKbPudUG&rs=AOn4CLBTdYRPPkNi1gFGP97gclAGI0Ot8g","title":"Tróger A SONY IS | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6200,"published":1774265550663,"lengthSeconds":448,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"hbnQKM89VV0","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/hbnQKM89VV0/mqdefault_6s.webp?du=3000&sqp=CKjhudUG&rs=AOn4CLDIj4J30UwgBQiIlWK4nM34bDlIbQ","title":"GPU Árak 2026 Február - Extrákkal | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":9400,"published":1774265550663,"lengthSeconds":1028,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"pu7upK3Mj2w","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/pu7upK3Mj2w/mqdefault_6s.webp?du=3000&sqp=CMTeudUG&rs=AOn4CLAwiD8tMTFsKvHbFTnhDposWUZbWg","title":"Leghasznosabb ESZKÖZ KAPPA | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":3500,"published":1771673550663,"lengthSeconds":791,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"Gxl87x-R3eE","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/Gxl87x-R3eE/mqdefault_6s.webp?du=3000&sqp=CKiVudUG&rs=AOn4CLCUbc1pojO3yx9Kj9ovLoxfcdGjzg","title":"CES 2026 | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":4200,"published":1771673550663,"lengthSeconds":396,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"WfgcO7Abs2o","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/WfgcO7Abs2o/mqdefault_6s.webp?du=3000&sqp=CMTeudUG&rs=AOn4CLCiP0nYClNQMX0P0lyQp_zsNtAUyg","title":"Erdő Lakó Update | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":4500,"published":1771673550663,"lengthSeconds":480,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"VgnLyEMoSFs","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/VgnLyEMoSFs/mqdefault_6s.webp?du=3000&sqp=CO3judUG&rs=AOn4CLAqnXiTc_dNde1Ug80BxkCHNLrFLg","title":"Ezek MINDENT Visznek! | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":3800,"published":1771673550663,"lengthSeconds":3871,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"asxRWBkb4RM","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/asxRWBkb4RM/mqdefault_6s.webp?du=3000&sqp=CJ-9udUG&rs=AOn4CLB6bhJG-DU8WxVgRIdABAUC1yQyVw","title":"A Balhé Folytatódik! | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6200,"published":1769081550663,"lengthSeconds":4590,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"HFlEbFUJ8nA","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/HFlEbFUJ8nA/mqdefault_6s.webp?du=3000&sqp=CICrudUG&rs=AOn4CLCfcfDY4Xqhlfa_LhhJatca4eeo5A","title":"Géphangolás | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6100,"published":1769081550663,"lengthSeconds":545,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"KgplrDq_Xns","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/KgplrDq_Xns/mqdefault_6s.webp?du=3000&sqp=CPeludUG&rs=AOn4CLCHe9NohUY3HHfpfxs0eEp2a3RlFg","title":"RAM Helyzet | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7800,"published":1769081550663,"lengthSeconds":441,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"DjCuOSYT80o","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/DjCuOSYT80o/mqdefault_6s.webp?du=3000&sqp=CJC1udUG&rs=AOn4CLC2NRlZMnLnuL3urAe4p8kPF1QXhA","title":"Megérkeztem! | RP's Lair","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7200,"published":1769081550663,"lengthSeconds":559,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"UZKjQVq3Nfw","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/UZKjQVq3Nfw/mqdefault_6s.webp?du=3000&sqp=COiwudUG&rs=AOn4CLC2qVMeSkhlRJo2gKcnLUXiHBG4wA","title":"[RP's Lair] \"Modern\" Gaming","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6900,"published":1758260598663,"lengthSeconds":2624,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"yLarL-U1af4","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/yLarL-U1af4/mqdefault_6s.webp?du=3000&sqp=CPLZudUG&rs=AOn4CLAnNiJzBm4Jr1037RbzQti2WUM83g","title":"[RP's Lair] FSR4","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":8500,"published":1758260598663,"lengthSeconds":1978,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"fC94JzPUTaU","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/fC94JzPUTaU/mqdefault_6s.webp?du=3000&sqp=CN3HudUG&rs=AOn4CLBCMbUAWGqOc1Yg_qM4JHVY4jf-Vw","title":"[RP's Lair] Ryzen 9950X3D","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":10000,"published":1758260598663,"lengthSeconds":1750,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"C3rl_B8WTqc","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/C3rl_B8WTqc/mqdefault_6s.webp?du=3000&sqp=CNTUudUG&rs=AOn4CLAIYB1bpe08rg1AQR0m6aGXhzTD7Q","title":"[RP's Lair] ÓRIÁSI RaveOS UPDATE!","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":14000,"published":1758260598663,"lengthSeconds":2287,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"5nXzby40HJo","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/5nXzby40HJo/mqdefault_6s.webp?du=3000&sqp=CJzgudUG&rs=AOn4CLC6zZiBRlGu6pGJv3nUUN5UZcWWIA","title":"[RP's Lair] RX 9070XT","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":12000,"published":1758260598663,"lengthSeconds":1758,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"cbEkuleRV10","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/cbEkuleRV10/mqdefault_6s.webp?du=3000&sqp=CNLPudUG&rs=AOn4CLAV97nXeFuiiu26DHYTUgvbaMSg7g","title":"[RP's Lair] RTX 5080","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":9600,"published":1758260598663,"lengthSeconds":1480,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"iW6xesEuQDI","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/iW6xesEuQDI/mqdefault_6s.webp?du=3000&sqp=CNLhudUG&rs=AOn4CLD8dhPti9XjuQ7Al0bCpSFSFE1Lyg","title":"[RP's Lair] Ne kövesd el Te is ezt a HIBÁT!","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7600,"published":1758260598663,"lengthSeconds":531,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"qw3xuyz6v3o","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/qw3xuyz6v3o/mqdefault_6s.webp?du=3000&sqp=CJbPudUG&rs=AOn4CLCdKC5tPnhpdKY4QLR5YaDP4Byq7A","title":"[RP's Lair] RTX 5090","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":13000,"published":1758260598663,"lengthSeconds":1875,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"GcxeAgTbyuA","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/GcxeAgTbyuA/mqdefault_6s.webp?du=3000&sqp=CIDPudUG&rs=AOn4CLAcGaOUrBHA5rCjSYXVzIx4paYkHg","title":"[RP's Lair] Tisztelet a kivételnek","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":8500,"published":1758260598663,"lengthSeconds":1418,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"tsVlmBiB0h0","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/tsVlmBiB0h0/mqdefault_6s.webp?du=3000&sqp=CJyludUG&rs=AOn4CLAL2kvUJd0b9rUJi1_cO15nhEmI2A","title":"[RP's Lair] Nvidia CES 2025 Összefoglaló","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":7000,"published":1758260598663,"lengthSeconds":616,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false},{"type":"video","videoId":"WRz9sITuoZI","thumbnailPreviewUrl":"https://i.ytimg.com/an_webp/WRz9sITuoZI/mqdefault_6s.webp?du=3000&sqp=CODPudUG&rs=AOn4CLDW5E2Si_hnBU9Y3pP6fYs9e4euVg","title":"[RP's Lair] AMD CES 2025 Összefoglaló","author":"RP's Lair","authorId":"UCTmdZqq0VxUKGjH89RNTbLw","hasCollaborators":false,"viewCount":6900,"published":1758260598663,"lengthSeconds":463,"liveNow":false,"isPremiere":false,"isUpcoming":false,"isStation":false,"isShort":false,"isMembersOnly":false,"isNewInSubscriptionFeed":false}],"videosTimestamp":"2026-09-19T11:33:04.627Z"} diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/AlternateServices.bin b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/AlternateServices.bin deleted file mode 100755 index c92c75c..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/AlternateServices.bin and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addonStartup.json.lz4 b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addonStartup.json.lz4 old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addons.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/addons.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/bounce-tracking-protection.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/bounce-tracking-protection.sqlite deleted file mode 100755 index 50cf4a8..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/bounce-tracking-protection.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/broadcast-listeners.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/broadcast-listeners.json deleted file mode 100755 index a9d1d60..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/broadcast-listeners.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"listeners":{"remote-settings/monitor_changes":{"version":"\"1782152117786\"","sourceInfo":{"moduleURI":"resource://services-settings/remote-settings.sys.mjs","symbolName":"remoteSettingsBroadcastHandler"}}}} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert9.db b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert9.db deleted file mode 100755 index d413617..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert9.db and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert_override.txt b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert_override.txt deleted file mode 100755 index 508c5e9..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cert_override.txt +++ /dev/null @@ -1,2 +0,0 @@ -# PSM Certificate Override Settings file -# This is a generated file! Do not edit. diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/chat-store.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/chat-store.sqlite deleted file mode 100755 index fd7f6f4..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/chat-store.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/compatibility.ini b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/compatibility.ini old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/containers.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/containers.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/content-prefs.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/content-prefs.sqlite deleted file mode 100755 index 023fea0..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/content-prefs.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cookies.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cookies.sqlite deleted file mode 100755 index 8192979..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/cookies.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/glean/db/data.safe.bin b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/glean/db/data.safe.bin deleted file mode 100755 index fdbdc9f..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/glean/db/data.safe.bin and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/state.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/state.json deleted file mode 100755 index e1780bd..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/datareporting/state.json +++ /dev/null @@ -1 +0,0 @@ -{"version":2,"clientID":"e341beb7-d9e4-4f95-bac8-f9a17cc068a8","profileGroupID":"55e83538-c99e-40bf-992e-36df19330eb6","usageProfileID":"beefbeef-beef-beef-beef-beeefbeefbee","usageProfileGroupID":"b0bacafe-b0ba-cafe-b0ba-cafeb0bacafe"} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/enumerate_devices.txt b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/enumerate_devices.txt deleted file mode 100755 index d00491f..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/enumerate_devices.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-preferences.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-preferences.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-settings.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-settings.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-store/data.safe.bin b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extension-store/data.safe.bin old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions/uBlock0@raymondhill.net.xpi b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/extensions/uBlock0@raymondhill.net.xpi old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/favicons.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/favicons.sqlite old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/formhistory.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/formhistory.sqlite deleted file mode 100755 index 4784b4e..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/formhistory.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/handlers.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/handlers.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/key4.db b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/key4.db deleted file mode 100755 index d98bff9..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/key4.db and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/logins.db b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/logins.db deleted file mode 100755 index 6c2d5da..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/logins.db and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/permissions.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/permissions.sqlite deleted file mode 100755 index ac63947..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/permissions.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/pkcs11.txt b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/pkcs11.txt deleted file mode 100755 index 519957e..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/pkcs11.txt +++ /dev/null @@ -1,5 +0,0 @@ -library= -name=NSS Internal PKCS #11 Module -parameters=configdir='sql:/home/t/.librewolf/07bi09lg.default-default' certPrefix='' keyPrefix='' secmod='secmod.db' flags=optimizeSpace updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription='' -NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30}) - diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/places.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/places.sqlite old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/prefs.js b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/prefs.js old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/protections.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/protections.sqlite deleted file mode 100755 index d2718e4..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/protections.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/search.json.mozlz4 b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/search.json.mozlz4 old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionCheckpoints.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionCheckpoints.json deleted file mode 100755 index 928de6a..0000000 --- a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionCheckpoints.json +++ /dev/null @@ -1 +0,0 @@ -{"profile-after-change":true,"final-ui-startup":true,"sessionstore-windows-restored":true,"quit-application-granted":true,"quit-application":true,"sessionstore-final-state-write-complete":true,"profile-change-net-teardown":true,"profile-change-teardown":true,"profile-before-change":true} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionstore.jsonlz4 b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionstore.jsonlz4 deleted file mode 100755 index 9dc389d..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/sessionstore.jsonlz4 and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/settings/data.safe.bin b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/settings/data.safe.bin old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/storage.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/storage.sqlite deleted file mode 100755 index 0486abb..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/storage.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/times.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/times.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/webappsstore.sqlite b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/webappsstore.sqlite deleted file mode 100755 index 636eedd..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/webappsstore.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/xulstore.json b/raveos-app-installer/data/configs/librewolf/07bi09lg.default-default/xulstore.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/0qzvjlj8.default/times.json b/raveos-app-installer/data/configs/librewolf/0qzvjlj8.default/times.json old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/librewolf/Profile Groups/517f778f.sqlite b/raveos-app-installer/data/configs/librewolf/Profile Groups/517f778f.sqlite deleted file mode 100755 index 60d051b..0000000 Binary files a/raveos-app-installer/data/configs/librewolf/Profile Groups/517f778f.sqlite and /dev/null differ diff --git a/raveos-app-installer/data/configs/librewolf/profiles.ini b/raveos-app-installer/data/configs/librewolf/profiles.ini old mode 100755 new mode 100644 diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Bookmarks b/raveos-app-installer/data/configs/vivaldi/Default/Bookmarks new file mode 100644 index 0000000..3ea01bf --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Bookmarks @@ -0,0 +1,146 @@ +{ + "checksum": "c68c8de6a1a8d98c3aa64eca3f45c073", + "roots": { + "bookmark_bar": { + "children": [ { + "children": [ { + "date_added": "13434290327684751", + "date_last_used": "0", + "guid": "3ba0b59b-2e79-4597-bc88-e672acda835d", + "id": "38", + "meta_info": { + "ThemeColor": "4294967295", + "Thumbnail": "chrome://vivaldi-data/thumbnail/PWJMATAG3KJ73MXZ4NXYXY3IXBWMWRLU.png", + "power_bookmark_meta": "" + }, + "name": "Tamogatas", + "type": "url", + "url": "https://ko-fi.com/raveteam" + }, { + "date_added": "13434290349402639", + "date_last_used": "0", + "guid": "9a09876e-3908-4762-bc91-a40d7b08b14b", + "id": "39", + "meta_info": { + "Thumbnail": "chrome://vivaldi-data/thumbnail/LYBGV243U4EVAHL5T765S4EQCONR676R.png", + "power_bookmark_meta": "" + }, + "name": "RP1 Kick", + "type": "url", + "url": "https://kick.com/rpslair" + }, { + "date_added": "13434290378870187", + "date_last_used": "0", + "guid": "070f30b0-7cd1-4ed0-b7af-bdfbde7c99da", + "id": "40", + "meta_info": { + "Thumbnail": "chrome://vivaldi-data/thumbnail/MQNYANW2TXKUD7OWHZRBPZDYTEGTETSU.png", + "power_bookmark_meta": "" + }, + "name": "RP1 YT", + "type": "url", + "url": "https://www.youtube.com/@rpslair" + }, { + "date_added": "13434290460949877", + "date_last_used": "0", + "guid": "f9c84d4c-6f34-4afe-942b-82f8acf71c81", + "id": "42", + "meta_info": { + "Thumbnail": "chrome://vivaldi-data/thumbnail/HRE2F2ZS6JONGS5HFEPI4DILPXKQHGA4.png", + "power_bookmark_meta": "" + }, + "name": "RP1 MERCH", + "type": "url", + "url": "https://rp1.hu/merch/" + } ], + "date_added": "13434289726291477", + "date_last_used": "0", + "date_modified": "13434290460949877", + "guid": "e5c019f8-c8a4-403c-99c8-d3502d7d09b3", + "id": "6", + "meta_info": { + "Partner": "e5c019f8-c8a4-403c-99c8-d3502d7d09b3", + "Speeddial": "true" + }, + "name": "Home", + "type": "folder" + }, { + "children": [ ], + "date_added": "13434289726291858", + "date_last_used": "0", + "date_modified": "13434289726292030", + "guid": "7dc00b6d-b26b-4371-83cb-2cd63274b9b8", + "id": "14", + "meta_info": { + "Partner": "7dc00b6d-b26b-4371-83cb-2cd63274b9b8", + "Speeddial": "true" + }, + "name": "Shopping", + "type": "folder" + }, { + "children": [ ], + "date_added": "13434289726292063", + "date_last_used": "0", + "date_modified": "13434289726292254", + "guid": "0f0a0d3a-bf40-4367-a65c-ed43f85888ed", + "id": "20", + "meta_info": { + "Partner": "0f0a0d3a-bf40-4367-a65c-ed43f85888ed", + "Speeddial": "true" + }, + "name": "Travel", + "type": "folder" + }, { + "children": [ ], + "date_added": "13434289726292297", + "date_last_used": "0", + "date_modified": "13434289726292635", + "guid": "12c04539-d01e-4fd3-9fbf-aa09a91e91ba", + "id": "26", + "meta_info": { + "Partner": "12c04539-d01e-4fd3-9fbf-aa09a91e91ba" + }, + "name": "Bookmarks", + "type": "folder" + } ], + "date_added": "13434289725515868", + "date_last_used": "0", + "date_modified": "0", + "guid": "0bc5d13f-2cba-5d74-951f-3f233fe6c908", + "id": "1", + "name": "Bookmarks", + "type": "folder" + }, + "other": { + "children": [ ], + "date_added": "13434289725515868", + "date_last_used": "0", + "date_modified": "0", + "guid": "82b081ec-3dd3-529c-8475-ab6c344590dd", + "id": "2", + "name": "Other bookmarks", + "type": "folder" + }, + "synced": { + "children": [ ], + "date_added": "13434289725515868", + "date_last_used": "0", + "date_modified": "0", + "guid": "4cf2e351-0e85-532b-bb37-df045d8f8d0f", + "id": "3", + "name": "Mobile bookmarks", + "type": "folder" + }, + "trash": { + "children": [ ], + "date_added": "13434289725515868", + "date_last_used": "0", + "date_modified": "13434290549758645", + "guid": "9f32a0fb-bfd9-5032-be46-07afe4a25400", + "id": "4", + "name": "Deleted", + "type": "folder" + } + }, + "version": 1 +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ar/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ar/messages.json new file mode 100644 index 0000000..30743b3 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ar/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "تم تفعيل %filter_name% تلقائيًا." + }, + "alert_popup_filter_enabled_title": { + "message": "التفعيل التلقائي للتصفية" + }, + "background_tab_title": { + "message": "علامة تبويب الخلفية" + }, + "blocking_pages_advanced_button": { + "message": "متقدم" + }, + "blocking_pages_btn_go_back": { + "message": "الرجوع للخلف" + }, + "blocking_pages_btn_proceed": { + "message": "تابع على أي حال" + }, + "blocking_pages_malware": { + "message": "صفحة \u003Cstrong>%host%\u003C/strong> هذه تم الإبلاغ عنها كصفحة برمجيات خبيثة وتم حظرها استنادا إلى إعدادات الأمان الخاصة بك." + }, + "blocking_pages_more_info_button": { + "message": "المزيد من المعلومات" + }, + "blocking_pages_page_title": { + "message": "تم رفض الوصول" + }, + "blocking_pages_phishing": { + "message": "صفحة \u003Cstrong>%host%\u003C/strong> هذه تم الإبلاغ عنها كصفحة تصيد احتيالي وتم حظرها استنادا إلى إعدادات الأمان الخاصة بك." + }, + "blocking_pages_rule_content_title": { + "message": "منع AdGuard تحميل هذه الصفحة بسبب قاعدة التصفية التالية" + }, + "blocking_pages_rule_header_title": { + "message": "تم حظره بواسطة AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "قام AdGuard بحظر الوصول إلى هذه الصفحة" + }, + "clear_button_title": { + "message": "مسح" + }, + "close_button_title": { + "message": "إغلاق" + }, + "context_block_site_ads": { + "message": "حظر الإعلانات يدويًا" + }, + "context_complaint_website": { + "message": "الإبلاغ عن مشكلة" + }, + "context_disable_protection": { + "message": "إيقاف حماية AdGuard" + }, + "context_enable_protection": { + "message": "استئناف حماية AdGuard" + }, + "context_open_log": { + "message": "سجل التصفية" + }, + "context_open_settings": { + "message": "إعدادات AdGuard" + }, + "context_security_report": { + "message": "التحقق من أمان الموقع" + }, + "context_site_exception": { + "message": "هذا الموقع في الاستثناءات" + }, + "context_site_filtering_disabled": { + "message": "يتعذر على AdGuard تصفية هذه الصفحة" + }, + "context_site_filtering_off": { + "message": "تعطيل التصفية على هذا الموقع" + }, + "context_site_filtering_on": { + "message": "تفعيل التصفية على هذا الموقع" + }, + "context_site_protection_disabled": { + "message": "تم إيقاف حماية AdGuard" + }, + "context_update_antibanner_filters": { + "message": "التحقق من وجود تحديثات للتصفية" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "ملحق لحظر الإعلانات لا مثيل له ضد الإعلانات والنوافذ المنبثقة. يحظر الإعلانات على Facebook و YouTube وجميع المواقع الأخرى." + }, + "filtering_clear_log_events": { + "message": "محو السجل" + }, + "filtering_log_actions_menu": { + "message": "إجراءات سجل الفلترة" + }, + "filtering_log_assumed_rule_description": { + "message": "هذه قاعدة مفترضة. لمزيد من التفاصيل، راجع \u003Ca>قاعدة المعرفة\u003C/a> الخاصة بنا" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "طريقة طلب HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "رمز حالة HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "طلب الطرف الثالث" + }, + "filtering_log_details_modal_back_button": { + "message": "العودة إلى الطلب" + }, + "filtering_log_details_modal_beautify_button": { + "message": "تجميل" + }, + "filtering_log_details_modal_try_again": { + "message": "حاول مرة أخرى" + }, + "filtering_log_filter_allowed": { + "message": "المسموح" + }, + "filtering_log_filter_blocked": { + "message": "المحظور" + }, + "filtering_log_filter_modified": { + "message": "المعدل" + }, + "filtering_log_filter_regular": { + "message": "عادي" + }, + "filtering_log_filter_user_rules": { + "message": "قواعد المستخدم" + }, + "filtering_log_hide_referrer": { + "message": "إخفاء المرجع عن جهات الطرف الثالث" + }, + "filtering_log_hide_search_queries": { + "message": "نتائج البحث الخاصة بك مخفية" + }, + "filtering_log_in_allowlist": { + "message": "الموقع مسموح به" + }, + "filtering_log_modified_rules": { + "message": "القواعد المعدلة: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "نعم، احتفظ بالسجل" + }, + "filtering_log_preserve_log_modal_description": { + "message": "قد يزيد هذا الاختيار من استخدام الذاكرة بشكل كبير" + }, + "filtering_log_preserve_log_modal_title": { + "message": "هل تريد الاحتفاظ بالسجل؟" + }, + "filtering_log_preserve_log_off": { + "message": "عدم الاحتفاظ بالسجل" + }, + "filtering_log_preserve_log_on": { + "message": "الاحتفاظ بالسجل" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "لا تظهر مرة أخرى" + }, + "filtering_log_privacy_applied_rules": { + "message": "تم تطبيق الحماية من التتبع" + }, + "filtering_log_remove_client_data": { + "message": "تمت إزالة رأس X-Client-Data" + }, + "filtering_log_search_string": { + "message": "بحث" + }, + "filtering_log_search_tabs_placeholder": { + "message": "البحث في علامات التبويب" + }, + "filtering_log_send_not_track": { + "message": "تم إرسال رأس عدم التتبع" + }, + "filtering_log_status_allowed": { + "message": "مسموح به" + }, + "filtering_log_status_blocked": { + "message": "محظور" + }, + "filtering_log_status_modified": { + "message": "تم تعديله" + }, + "filtering_log_status_processed": { + "message": "تم معالجته" + }, + "filtering_log_stealth_rules": { + "message": "قواعد الحماية من التتبع: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "أصل الطلب" + }, + "filtering_log_tag_request_status": { + "message": "حالة التصفية" + }, + "filtering_log_tag_request_type": { + "message": "نوع الطلب" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "الطلبات المسموح بها وغير المحظورة" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "الطلبات المحظورة" + }, + "filtering_log_tag_tooltip_css": { + "message": "الأنماط" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "طلبات الطرف الأول" + }, + "filtering_log_tag_tooltip_html": { + "message": "المستندات والمستندات الفرعية" + }, + "filtering_log_tag_tooltip_img": { + "message": "الصور" + }, + "filtering_log_tag_tooltip_js": { + "message": "البرامج النصية" + }, + "filtering_log_tag_tooltip_media": { + "message": "الوسائط" + }, + "filtering_log_tag_tooltip_modified": { + "message": "الطلبات المعدلة" + }, + "filtering_log_tag_tooltip_other": { + "message": "الخطوط، pings، WebRTC، WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "الطلبات التي تمت معالجتها بدون تصفية" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "طلبات الطرف الثالث" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "الطلبات المتأثرة بقواعد المستخدم" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "طلبات XMLHttpRequests وطلبات الجلب" + }, + "filtering_log_title": { + "message": "سجل التصفية" + }, + "filtering_menu_open_filters": { + "message": "تخصيص" + }, + "filtering_modal_add_rule": { + "message": "إضافة" + }, + "filtering_modal_allow_title": { + "message": "أضف قاعدة السماح" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "قاعدة مطبقة | قاعدتان مطبقتان | قواعد مطبقة | قواعد مطبقة | قواعد مطبقة | قواعد مطبقة" + }, + "filtering_modal_apply_domains": { + "message": "تنطبق على جميع المواقع" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "القاعدة المفروضة: | القاعدة المفروضة: | القواعد المفروضة: | القواعد المفروضة: | القواعد المفروضة:| القواعد المفروضة:" + }, + "filtering_modal_block": { + "message": "حظر" + }, + "filtering_modal_block_again": { + "message": "حظر مرة أخرى" + }, + "filtering_modal_block_title": { + "message": "إضافة قاعدة حظر" + }, + "filtering_modal_converted_to": { + "message": "تم التحويل إلى:" + }, + "filtering_modal_cookie": { + "message": "ملفات تعريف الارتباط:" + }, + "filtering_modal_copied": { + "message": "تم النسخ" + }, + "filtering_modal_copy_to_clipboard": { + "message": "نسخ إلى الحافظة" + }, + "filtering_modal_declarative_rule": { + "message": "قاعدة DNR:" + }, + "filtering_modal_element": { + "message": "عنصر:" + }, + "filtering_modal_exception_title": { + "message": "إضافة استثناء" + }, + "filtering_modal_filter": { + "message": "فلتر" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "حالة التصفية" + }, + "filtering_modal_hide_full_element": { + "message": "إخفاء العنصر بالكامل" + }, + "filtering_modal_hide_full_rule": { + "message": "إخفاء القاعدة بالكامل" + }, + "filtering_modal_hide_full_url": { + "message": "إخفاء الرابط بالكامل" + }, + "filtering_modal_important": { + "message": "إعطاء أولوية أعلى للقاعدة" + }, + "filtering_modal_info_title": { + "message": "تفاصيل الطلب" + }, + "filtering_modal_open_in_new_tab": { + "message": "فتح في تبويب جديد" + }, + "filtering_modal_options_desc": { + "message": "الخيارات" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "القاعدة الأصلية: | القاعدة الأصلية: | القواعد الأصلية: | القواعد الأصلية:| القواعد الأصلية:| القواعد الأصلية:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "ما الذي يجب السماح به" + }, + "filtering_modal_patterns_desc_block": { + "message": "ما الذي يجب حظره" + }, + "filtering_modal_preview_request_button": { + "message": "المعاينة" + }, + "filtering_modal_preview_title": { + "message": "المعاينة" + }, + "filtering_modal_privacy": { + "message": "الحماية من التتبع" + }, + "filtering_modal_remove_allowlist": { + "message": "إزالة من القائمة البيضاء" + }, + "filtering_modal_remove_param": { + "message": "إزالة معلمات الاستعلام" + }, + "filtering_modal_remove_user": { + "message": "حذف القاعدة" + }, + "filtering_modal_rule": { + "message": "القاعدة:" + }, + "filtering_modal_rule_text_desc": { + "message": "أمر" + }, + "filtering_modal_rules": { + "message": "القواعد:" + }, + "filtering_modal_show_full_element": { + "message": "إظهار العنصر بالكامل" + }, + "filtering_modal_show_full_rule": { + "message": "عرض القاعدة بالكامل" + }, + "filtering_modal_show_full_url": { + "message": "إظهار الرابط بالكامل" + }, + "filtering_modal_source": { + "message": "المصدر" + }, + "filtering_modal_status_text_desc": { + "message": "الحالة" + }, + "filtering_modal_status_text_error": { + "message": "فشل في تحميل المعاينة. يرجى المحاولة مرة أخرى" + }, + "filtering_modal_status_text_loading": { + "message": "جار التحميل..." + }, + "filtering_modal_third_party": { + "message": "تطبيق علي طلبات الطرف الثالث فقط" + }, + "filtering_modal_type": { + "message": "نوع" + }, + "filtering_modal_unblock": { + "message": "إلغاء الحظر" + }, + "filtering_refresh_tab_short": { + "message": "إعادة تحميل" + }, + "filtering_refresh_tab_short_mobile": { + "message": "تحديث صفحة" + }, + "filtering_table_action": { + "message": "الإجراء" + }, + "filtering_table_empty_reload_page_desc": { + "message": "لم يتم العثور على شيء. \u003Creset>تعطيل عوامل التصفية\u003C/reset> أو \u003Crefresh>إعادة تحميل صفحة\u003C/refresh> لعرض سجلات السجل" + }, + "filtering_table_filter": { + "message": "التصفية" + }, + "filtering_table_open_details": { + "message": "فتح التفاصيل" + }, + "filtering_table_rule": { + "message": "قاعدة التصفية" + }, + "filtering_table_source": { + "message": "المصدر" + }, + "filtering_table_status": { + "message": "الحالة" + }, + "filtering_table_type": { + "message": "النوع" + }, + "filtering_type_all": { + "message": "الكل" + }, + "filtering_type_other": { + "message": "أخرى" + }, + "filters_download_loading": { + "message": "يرجى الانتظار أثناء تحميل قاعدة بيانات التصفية..." + }, + "filters_download_title": { + "message": "تحميل قاعدة بيانات التصفية..." + }, + "fullscreen_user_rules_title": { + "message": "قواعد المستخدم" + }, + "group_description_adblocking": { + "message": "قم بضبط حظر الإعلانات لتعامل مع اللافتات والنوافذ المنبثقة والإعلانات التي تكون في شكل فيديو وأنواع أخرى بشكل نهائي" + }, + "group_description_annoyances": { + "message": "إزالة النوافذ المنبثقة والإشعارات المزعجة الأخرى مثل ملفات تعريف الارتباط" + }, + "group_description_custom": { + "message": "قم بإنشاء التصفية الخاصة بك لضبط تصفية الويب حسب تفضيلاتك." + }, + "group_description_lang": { + "message": "لا تقيد نفسك - قم بحظر الإعلانات على مواقع الويب بأي لغة" + }, + "group_description_miscellaneous": { + "message": "إعدادات إضافية لتخصيص تجربة تصفحك للإنترنت باستخدام AdGuard بشكل أكبر" + }, + "group_description_security": { + "message": "احم نفسك من البرامج الضارة والتصيد الاحتيالي والتهديدات الأخرى عبر الإنترنت" + }, + "group_description_social": { + "message": "إخفاء أزرار \"الإعجاب\"و\"المشاركة\" غير المرغوب فيها وغيرها من أدوات التواصل الاجتماعي" + }, + "group_description_stealth": { + "message": "قم بحماية هويتك ومعلوماتك الشخصية الحساسة من آلاف ادوات التتبع عبر الإنترنت من خلال حظر جميع طرق التتبع الشائعة والمعروفة" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "لا تسأل مرة أخرى" + }, + "opera_search_permission_go_to_settings": { + "message": "اذهب إلى الإعدادات" + }, + "opera_search_permission_warning": { + "message": "لحظر إعلانات البحث، اسمح بالوصول إلى نتائج صفحة البحث في إعدادات المتصفح" + }, + "options_about": { + "message": "حول" + }, + "options_about_libs": { + "message": "المكتبات المستعملة" + }, + "options_about_title": { + "message": "ملحق AdGuard الخاص بالمتصفح" + }, + "options_about_update_available": { + "message": "الإصدار %version% متاح. سيتم تحميله وتحميله تلقائيًا." + }, + "options_about_version": { + "message": "الإصدار" + }, + "options_acknowledgment": { + "message": "شكر وتقدير" + }, + "options_add_custom_filter": { + "message": "إضافة تصفية مخصصة" + }, + "options_add_custom_filter_modal_add_button": { + "message": "إضافة" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "جاري التحقق من التصفية الخاص بك..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "أعاد الرابط صفحة ويب بدلاً من قائمة تصفية. يرجى تقديم رابط مباشر إلى ملف التصفية." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "يرجى المحاولة مرة أخرى أو الاتصال بالدعم" + }, + "options_add_custom_filter_modal_error_title": { + "message": "فشل في إضافة تصفية مخصصة" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "اسم التصفية:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "موثوق به" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "بعض قواعد التصفية يمكن أن تغير بشكل كبير تجربة تصفحك وتعرض خصوصيتك للخطر. تأكد من استخدام تصفية من مطورين موثوق بهم" + }, + "options_add_custom_filter_modal_title": { + "message": "إضافة تصفية مخصصة" + }, + "options_all_limits_exceeded_warning": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة النشطة. قام المتصفح بتعديل قائمة التصفية المضافة النشطة. تم تغيير عدد التصفية المفعلة من %expected% إلى %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة النشطة في متصفحك. لقد قلل متصفحك قائمة التصفية المضافة من %expected% إلى %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "يقيد متصفحك \u003Cexternal-link>بعض أنواع القواعد\u003C/external-link>. لتطبيق جميع القواعد، قم بتفعيل \u003Cb>السماح بالنصوص البرمجية للمستخدم\u003C/b> في \u003Csettings-link>إعدادات الملحقات \u003C/settings-link> في متصفحك" + }, + "options_allowlist": { + "message": "القائمة البيضاء" + }, + "options_allowlist_alert_invert": { + "message": "تم عكس قائمة السماح. يتم حظر الإعلانات فقط على المواقع المضافة إليها." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>إيقاف العكس\u003C/a>" + }, + "options_allowlist_desc": { + "message": "لا يقوم AdGuard بحظر الإعلانات والمتعقبين على مواقع من القائمة" + }, + "options_allowlist_invalid_entries": { + "message": "لـ حفظ، احتفظ فقط بالنطاقات أو الروابط. هذه تحتاج إلى إصلاح: %entries%" + }, + "options_allowlist_invert": { + "message": "عكس القائمة البيضاء" + }, + "options_allowlist_invert_desc": { + "message": "حظر الإعلانات وأدوات التتبع على المواقع المضافة الى القائمة البيضاء فقط" + }, + "options_allowlist_leave_subtitle": { + "message": "سوف تفقد التغييرات التي أجريتها على القائمة البيضاء" + }, + "options_allowlist_menu": { + "message": "إجراءات قائمة السماح" + }, + "options_anonymized_usage_data_description": { + "message": "إرسال إحصائيات مجهولة المصدر حول استخدامك للملحق إلى AdGuard. \u003Cbutton>معرفة المزيد\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "فهمت ذلك" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "تتضمن هذه البيانات:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "أسماء الأزرار التي تضغط عليها" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "أسماء الشاشات التي تتفاعل معها" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "معرفات الجلسات" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "هذه البيانات مجهولة المصدر وتُستخدم داخلياً فقط. لا نشاركها أبداً مع أطراف خارجية" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "نحن بحاجة إلى هذه المعلومات لتحليل وظائف AdGuard وتحسينها" + }, + "options_anonymized_usage_data_modal_title": { + "message": "بيانات استخدام الملحق" + }, + "options_anonymized_usage_data_title": { + "message": "إرسال بيانات استخدام الملحق بشكل مجهول" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "هذه التصفية المخصصة مضافة بالفعل" + }, + "options_antibanner_custom_group": { + "message": "مخصص" + }, + "options_antibanner_custom_group_description": { + "message": "يمكن إضافة تصفيات من ملف أو رابط" + }, + "options_antibanner_rules_count": { + "message": "القواعد: %rules_count%" + }, + "options_antibanner_updated": { + "message": "محدث في: %date%" + }, + "options_block_acceptable_ads": { + "message": "حظر إعلانات البحث والترويج الذاتي للمواقع" + }, + "options_block_acceptable_ads_desc": { + "message": "إزالة الروابط الدعائية من نتائج البحث واللافتات التي تضعها المواقع للتسويق لمحتواها. \u003Ca>لمزيد من المعلومات\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "لحظر ملفات تعريف الارتباط، اضبط العمر الافتراضي على 0" + }, + "options_block_known_trackers_description": { + "message": "حظر أدوات التتبع وتحليلات الويب باستخدام تصفية AdGuard للحماية من التتبع" + }, + "options_block_known_trackers_title": { + "message": "حظر أدوات التتبع" + }, + "options_check_update_progress": { + "message": "التحقق من..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "مسح" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "سيتم حذف جميع الإحصائيات المتعلقة باستخدام البيانات بشكل دائم" + }, + "options_clear_stats_confirm_modal_title": { + "message": "مسح الإحصائيات؟" + }, + "options_clipboard_permission_warning": { + "message": "لنسخ القواعد ولصقها، اسمح لـ AdGuard بالوصول إلى الحافظة. \u003Ca>سماح\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "يرسل إحصائيات مجهولة المصدر حول استخدام تصفية الإعلانات إلى AdGuard. \u003Ca>معرفة المزيد\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "المساعدة في تطوير تصفية AdGuard" + }, + "options_coming_soon": { + "message": "قريباً" + }, + "options_confirm_modal_cancel_button": { + "message": "إلغاء" + }, + "options_copyright": { + "message": "جميع الحقوق محفوظة." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "لاستخدام التصفية المخصصة، قم بتفعيل \u003Cb>السماح بالنصوص البرمجية للمستخدم\u003C/b> في \u003Csettings-link>إعدادات الملحقات \u003C/settings-link> في متصفحك" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "لاستخدام التصفية المخصصة، قم بتفعيل \u003Cb>وضع المطور\u003C/b> في \u003Csettings-link>إعدادات الملحقات\u003C/settings-link> في متصفحك" + }, + "options_desktop_app_promo_button_linux": { + "message": "احصل على AdGuard لـ Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "احصل على AdGuard لـ Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "احصل على AdGuard لـ Windows" + }, + "options_desktop_app_promo_description": { + "message": "يمكن لتطبيقات مثل Spotify وDiscord أو Zoom أن تعرض الإعلانات وأن تتبع نشاطك" + }, + "options_desktop_app_promo_subdescription": { + "message": "يمكن لتطبيق سطح المكتب الخاص بنا حمايتك من ذلك" + }, + "options_desktop_app_promo_title": { + "message": "الإضافة تحمي المتصفح فقط" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "يقيد متصفحك \u003Cexternal-link>بعض أنواع القواعد\u003C/external-link>. لتطبيق جميع القواعد، قم بتفعيل \u003Cb>وضع المطور\u003C/b> في \u003Csettings-link>إعدادات الملحقات \u003C/settings-link> في متصفحك" + }, + "options_disable_webrtc_desc": { + "message": "حظر تقنية WebRTC التي قد تسرب عنوان IP الحقيقي الخاص بك حتى عند استخدام البروكسي أو VPN. قد تتوقف بعض تطبيقات المراسلة أو منصات البث أو الألعاب عن العمل بشكل صحيح" + }, + "options_disable_webrtc_title": { + "message": "حظر WebRTC" + }, + "options_discuss": { + "message": "ناقش AdGuard" + }, + "options_do_you_like_question": { + "message": "هل يعجبك AdGuard؟" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "الخروج من وضع النافذة" + }, + "options_editor_indicator_saved": { + "message": "تم الحفظ" + }, + "options_editor_indicator_saving": { + "message": "حفظ..." + }, + "options_editor_leave_cancel": { + "message": "العودة إلى التعديل" + }, + "options_editor_leave_confirm": { + "message": "نعم، أترك" + }, + "options_editor_leave_title": { + "message": "مغادرة بدون حفظ؟" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "فتح المحرر في علامة تبويب جديدة" + }, + "options_editor_save": { + "message": "حفظ" + }, + "options_editor_save_error": { + "message": "فشل في حفظ التغييرات. حاول مرة أخرى أو اتصل بالدعم" + }, + "options_empty_custom_filter": { + "message": "ليس لديك أي تصفية مخصصة حتى الان" + }, + "options_enable_autodetect_filter": { + "message": "تفعيل التصفية الأكثر ملائمة تلقائياً" + }, + "options_enable_autodetect_filter_desc": { + "message": "اكتشاف لغة الموقع وتنشيط التصفية المناسبة" + }, + "options_export_settings": { + "message": "تصدير الإعدادات" + }, + "options_filters": { + "message": "التصفية" + }, + "options_filters_annoyances_consent_description": { + "message": "أنت على وشك تفعيل واحدة أو أكثر من تصفية اللافتات. فهي تقوم بحظر العناصر التي ليس لها علاقة بمحتوى الموقع أو ذات الصلة ولكنها مزعجة لتجربة المستخدم. قد يعتبر اصاحب المواقع أن هذه العناصر إلزامية: إذا قمت بحظرها، فقد تنتهك شروطهم؛ وقد لا تتوفر بعض وظائف المواقع أو قد لا تعمل بشكل صحيح. أنت تدرك وتوافق على أنك وحدك المسؤول عن الامتثال لشروط استخدام المواقع التي تزورها وأن AdGuard ليس مسؤولاً عن امتثالك لشروط استخدام المواقع التي تزورها باستخدام منتجاتنا." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "تفعيل" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "الصفحة الرئيسية" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "للاطلاع على تفاصيل حول ما تحظره تصفية اللافتات في AdGuard، راجع \u003Ca>سياسة التصفية\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "تفعيل هذه التصفية؟" + }, + "options_filters_annoyances_consent_title": { + "message": "يرجى القراءة بعناية قبل تفعيل تصفية اللافتات" + }, + "options_filters_back_button": { + "message": "الرجوع للخلف" + }, + "options_filters_empty_title": { + "message": "لم يتم العثور على شيء" + }, + "options_filters_enabled": { + "message": "مفعل:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% و %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% و %more% أكثر" + }, + "options_filters_enabled_per_group": { + "message": "مفعل: %current% من %total%" + }, + "options_filters_filter_link": { + "message": "الانتقال لصفحة الرئيسية" + }, + "options_filters_filter_tags": { + "message": "علامات التصفية" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "لقد اخترت الوثوق بهذه التصفية." + }, + "options_filters_filter_updated": { + "message": "تم التحديث في:" + }, + "options_filters_filter_version": { + "message": "الإصدار:" + }, + "options_filters_info_mv3_total_rules": { + "message": "إجمالي القواعد: %num%" + }, + "options_filters_last_checked": { + "message": "آخر تحقق: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "جميع التصفية" + }, + "options_filters_list_search_display_option_disabled": { + "message": "المعطل" + }, + "options_filters_list_search_display_option_enabled": { + "message": "المفعل" + }, + "options_filters_no_enabled": { + "message": "لا توجد تصفية مفعلة" + }, + "options_filters_of_group": { + "message": "مجموعة تصفية \"%groupName%\"" + }, + "options_filters_search": { + "message": "البحث" + }, + "options_filters_search_filter": { + "message": "تصفية البحث" + }, + "options_first_party_block_cookies_warning": { + "message": "إذا قمت بحظر ملفات تعريف الارتباط هذه، فقد تتعطل بعض المواقع أو تتوقف عن العمل" + }, + "options_first_party_desc": { + "message": "يمنع مواقع الويب من تذكر التفاصيل الخاصة بك، مثل بيانات اعتماد تسجيل الدخول وتفضيلات اللغة الخاصة بك، من خلال الحد من عمر ملفات تعريف ارتباط الطرف الأول" + }, + "options_first_party_title": { + "message": "حذف ملفات تعريف ارتباط الطرف الأول (غير مستحسن)" + }, + "options_general_settings": { + "message": "عام" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "منع الطرف الثالث من معرفة الموقع الذي تزوره" + }, + "options_hide_referrer_title": { + "message": "إخفاء مصدر الإحالة عن الطرف الثالث" + }, + "options_hide_search_queries_desc": { + "message": "يخفي عمليات البحث عن مواقع الويب التي تمت زيارتها من خلال نتائج محرك البحث" + }, + "options_hide_search_queries_title": { + "message": "إخفاء كلمات البحث" + }, + "options_import_configuration_applying_subtitle": { + "message": "استبدال إعداداك الحالية بالإعدادات المستوردة. التصفية تكون معطلة أثناء الاستيراد" + }, + "options_import_configuration_applying_title": { + "message": "جاري الاستيراد..." + }, + "options_import_configuration_confirm_button": { + "message": "استيراد" + }, + "options_import_configuration_confirm_subtitle": { + "message": "ستحل الإعدادات المستوردة محل الإعدادات الحالية. لن تتأثر الإعدادات الأخرى" + }, + "options_import_configuration_confirm_title": { + "message": "استيراد الإعدادات" + }, + "options_import_configuration_error_button": { + "message": "إغلاق" + }, + "options_import_configuration_error_subtitle": { + "message": "يرجى التحقق من رابط الاستيراد والمحاولة مرة أخرى. إذا لم يساعدك ذلك، اتصل بالدعم" + }, + "options_import_configuration_error_title": { + "message": "فشل استيراد الإعدادات" + }, + "options_import_configuration_success_button": { + "message": "إغلاق" + }, + "options_import_configuration_success_subtitle": { + "message": "تم استيراد الاعدادات بنجاح" + }, + "options_import_configuration_success_title": { + "message": "تم كل شيء" + }, + "options_import_settings": { + "message": "استيراد الإعدادات" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "عكس" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "سيتم حظر الإعلانات والمتعقبون فقط على مواقع من قائمة السماح" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "عكس القائمة البيضاء؟" + }, + "options_leave_feedback": { + "message": "أرسل ملاحظاتك" + }, + "options_lifetime_minutes": { + "message": "العمر، دقائق" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "لقد وصلت إلى الحد الأقصى لقواعد regex المضافة من قبل المستخدم. %maximum% من %current% مفعلة." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "لقد وصلت إلى الحد الأقصى لقواعد regex المضافة من قبل المستخدم. %maximum% من قواعد %current% المفعلة. لإضافة قواعد regex جديدة، قم بإزالة بعض القواعد الموجودة" + }, + "options_limits_warning_dynamic_rules": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة من قبل المستخدم. %maximum% من قواعد %current% المفعلة." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة من قبل المستخدم. %maximum% من قواعد %current% المفعلة. لإضافة قواعد جديدة، قم بإزالة بعض القواعد الموجودة" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد غير الآمنة المضافة من قبل المستخدم. %maximum% من %current% قاعدة غير أمنة مفعلة." + }, + "options_limits_warning_static_filters": { + "message": "لقد وصلت إلى الحد الأقصى للتصفية المضافة النشطة. %maximum% من التصفية %current% مفعلة. لتفعيل قواعد جديدة، قم بتعطيل بعض التصفية المضافة." + }, + "options_limits_warning_static_filters_browser": { + "message": "لقد وصلت إلى الحد الأقصى للتصفية المضافة النشطة في متصفحك. %maximum% من تصفية %current% مفعلة. لتفعيل التصفية الجديدة، قم بتعطيل بعض التصفية المضافة" + }, + "options_limits_warning_static_regex_rules": { + "message": "لقد وصلت إلى الحد الأقصى لقواعد regex المضافة النشطة. %maximum% من قواعد regex %current% تم تفعيل قواعد regex. لتفعيل قواعد جديدة، قم بتعطيل بعض التصفية المضافة." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "لقد وصلت إلى الحد الأقصى لقواعد regex المضافة النشطة. لتفعيل قواعد جديدة، قم بتعطيل بعض التصفية المضافة" + }, + "options_limits_warning_static_rules": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة النشطة. %maximum% من قواعد %current% مفعلة. لتفعيل قواعد جديدة، قم بتعطيل بعض التصفية النشطة." + }, + "options_limits_warning_static_rules_browser": { + "message": "لقد وصلت إلى الحد الأقصى للقواعد المضافة النشطة في متصفحك. لتفعيل قواعد جديدة، قم بتعطيل بعض التصفية المضافة" + }, + "options_loader_applying_changes": { + "message": "جاري تطبيق التغييرات..." + }, + "options_miscellaneous_settings": { + "message": "الإعدادات الإضافية" + }, + "options_modified_first_party_cookie": { + "message": "تم تعديل ملفات تعريف ارتباط الطرف الأول" + }, + "options_modified_third_party_cookie": { + "message": "تم تعديل ملفات تعريف ارتباط الطرف الثالث" + }, + "options_nav_better_than_extension": { + "message": "لماذا يعتبر تطبيق AdGuard أفضل من الملحق؟" + }, + "options_nav_compare": { + "message": "قارن" + }, + "options_navigation": { + "message": "التنقل" + }, + "options_open_changelog": { + "message": "سجل التغييرات" + }, + "options_open_log": { + "message": "فتح سجل التصفية" + }, + "options_popup_call_to_action": { + "message": "أدخل عنوان URL أو مسار الملف الخاص بالتصفية في هذا الحقل." + }, + "options_popup_check_false_description": { + "message": "حدث خطأ أثناء إضافة التصفية المخصصة." + }, + "options_popup_check_false_title": { + "message": "خطأ" + }, + "options_popup_checking_filter": { + "message": "جاري التحقق من التصفية الخاص بك" + }, + "options_popup_description": { + "message": "سوف تكون مشترك في هذه التصفية." + }, + "options_popup_filter_description": { + "message": "الوصف:" + }, + "options_popup_filter_homepage": { + "message": "الصفحة الرئيسية:" + }, + "options_popup_filter_rules_count": { + "message": "عدد القواعد:" + }, + "options_popup_filter_title": { + "message": "العنوان:" + }, + "options_popup_filter_url": { + "message": "الرابط" + }, + "options_popup_filter_version": { + "message": "الإصدار:" + }, + "options_popup_import_error_file_description": { + "message": "حدث خطأ ما." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "لاستيراد ملف الإعدادات هذا، اسمح لـ AdGuard بتغيير الإعدادات المتعلقة بالخصوصية." + }, + "options_popup_import_error_title": { + "message": "فشل استيراد الإعدادات" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "يجب أن يكون امتداد الملف %extension%" + }, + "options_popup_import_success_title": { + "message": "تم استيراد الإعدادات" + }, + "options_popup_next_button": { + "message": "التالي" + }, + "options_popup_subscribe_button": { + "message": "اشترك" + }, + "options_popup_title_placeholder": { + "message": "أدخل اسم التصفية" + }, + "options_popup_trusted_filter_description": { + "message": "يمكن أن تستخدم التصفية الموثوق بها قواعد تصفية قوية يمكن أن تكون خطيرة في الأيدي الخطأ. لا تحدد هذا المربع إلا إذا كنت تثق به تمامًا." + }, + "options_popup_trusted_filter_title": { + "message": "موثوق به" + }, + "options_popup_try_again_button": { + "message": "حاول مرة أخرى" + }, + "options_popup_update_error": { + "message": "فشل الحصول على التحديثات. يرجى المحاولة مرة أخرى لاحقاً." + }, + "options_popup_update_filter": { + "message": "تم تحديثه." + }, + "options_popup_update_filters": { + "message": "تم تحديثها." + }, + "options_popup_update_not_found": { + "message": "أنت تستخدم أحدث إصدار بالفعل" + }, + "options_popup_update_title_error": { + "message": "خطأ في تحديث التصفية" + }, + "options_popup_updating_filters": { + "message": "جارٍ تحديث التصفية..." + }, + "options_popup_url_placeholder": { + "message": "أدخل عنوان URL أو مسار الملف" + }, + "options_popup_url_title": { + "message": "اشتراك تصفية جديدة" + }, + "options_popup_version_update_changelog_text": { + "message": "ما الجديد في هذا الإصدار؟" + }, + "options_popup_version_update_description_major": { + "message": "هذه ترقية رئيسية للملحق تجلب الكثير من الميزات والتحسينات الجديدة." + }, + "options_popup_version_update_description_minor": { + "message": "يحتوي هذا الإصدار في الغالب على إصلاحات للأخطاء وتحسينات طفيفة." + }, + "options_popup_version_update_disable_notification": { + "message": "تعطيل الإشعارات" + }, + "options_popup_version_update_offer": { + "message": "هل تعلم أن إمكانيات AdGuard لا تقتصر على هذا المتصفح؟" + }, + "options_popup_version_update_offer_button_text": { + "message": "تعرف على المزيد" + }, + "options_popup_version_update_title_text": { + "message": "تم تحديث ملحق AdGuard إلى الإصدار %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "يجعل WebRTC يستخدم سياسة عنوان IP أكثر صرامة للمساعدة في إخفاء عنوان IP الحقيقي الخاص بك عند استخدام بروكسي أو VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "منع تسرب عنوان IP عبر WebRTC" + }, + "options_privacy": { + "message": "الحماية من التتبع" + }, + "options_privacy_desc": { + "message": "حماية نشاطك وبياناتك الشخصية من ادوات التتبع على الويب" + }, + "options_privacy_policy": { + "message": "سياسة الخصوصية" + }, + "options_privacy_title": { + "message": "الحماية من التتبع" + }, + "options_rate_us_cta": { + "message": "قيمنا" + }, + "options_remove_client_data_desc": { + "message": "منع Google Chrome من إرسال معلومات الإصدار والتعديلات الخاصة به إلى نطاقات Google" + }, + "options_remove_client_data_title": { + "message": "إزالة رأس X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "إزالة" + }, + "options_remove_filter_confirm_modal_title": { + "message": "إزالة هذه التصفية؟" + }, + "options_report_bug": { + "message": "الإبلاغ عن خطأ" + }, + "options_reset_settings": { + "message": "إعادة تعيين الإعدادات" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "إعادة تعيين" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "ستتم إعادة ضبط جميع الإعدادات إلى قيمها الافتراضية" + }, + "options_reset_settings_confirm_modal_title": { + "message": "إعادة تعيين الإعدادات؟" + }, + "options_reset_settings_done": { + "message": "تم إعادة تعيين الإعدادات" + }, + "options_reset_settings_error": { + "message": "خطأ أثناء إعادة تعيين الإعدادات" + }, + "options_reset_stats": { + "message": "مسح الإحصائيات" + }, + "options_reset_stats_done": { + "message": "تم إعادة تعيين الإحصائيات" + }, + "options_rule_limits": { + "message": "حدود القواعد" + }, + "options_rule_limits_description": { + "message": "يحد متصفح Chrome من عدد القواعد التي يمكن تطبيقها" + }, + "options_rule_limits_dynamic": { + "message": "القواعد الديناميكية" + }, + "options_rule_limits_dynamic_regex": { + "message": "قواعد Regex - مضمنة في القواعد المضافة من قبل المستخدم" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "قواعد ديناميكية غير آمنة (تُستخدم لبعض المعدلات المتقدمة، مثل $$redirect أو $$cookie) - مضمنة في القواعد المضافة من قبل المستخدم" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "القواعد التي يضيفها المستخدم، مثل \u003Cuser_rules>قواعد المستخدم،\u003C/user_rules> \u003Callowlist>والمواقع المدرجة في القائمة البيضاء\u003C/allowlist> و، \u003Ccustom_filters>التصفية المخصصة\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "القواعد التي يضيفها المستخدم، مثل \u003Cuser_rules>قواعد المستخدم،\u003C/user_rules> \u003Callowlist>والمواقع المدرجة في القائمة البيضاء\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% من %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "القواعد الثابتة" + }, + "options_rule_limits_static_rules_all": { + "message": "قواعد من \u003Ca>التصفية المدمجة\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "قواعد Regex - مضمنة في ما سبق" + }, + "options_rule_limits_static_rulesets": { + "message": "مجموعات القواعد الثابتة" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>تصفية مدمجة،\u003C/a> مثل حظر اللافتات أو التصفية الخاصة باللغة" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "الخيار 3. إذا كنت راضيًا عن التصفية الافتراضية المفعلة الان، \u003Ca>أغلق هذا التحذير.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "الخيار 3. إذا كنت راضيًا عن التصفية الافتراضية المفعلة الان، \u003Ca>أغلق هذا التحذير.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "الخيار 1. حذف ملحقات حظر الإعلانات غير الضرورية من متصفحك. لإعادة تنشيط التصفية المذكورة في قسم \"تمكين عوامل التصفية قبل التحديث\"، انقر فوق \u003Ca>إعادة تنشيط التصفية.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "الخيار 2. تثبيت تطبيق AdGuard Ad Blocker: لا توجد قيود على قواعد التصفية. \u003Ca>احصل على تطبيق AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "الإجراءات المتاحة" + }, + "options_rule_limits_warning_explanation_description": { + "message": "تم تجاوز حد القواعد المدمجة النشطة بعد إجراء تحديث أو إضافة ملحق جديد. وفقًا لـ Manifest V3، قام متصفح Chrome بتعطيل جميع التصفية المدمجة في الملحق باستثناء التصفية الافتراضية." + }, + "options_rule_limits_warning_explanation_title": { + "message": "ما الذي حدث؟" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "تم تمكين التصفية قبل التحديث" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "تم تمكين التصفية الان" + }, + "options_rule_limits_warning_title": { + "message": "قام المتصفح بتعديل قائمة التصفية النشطة" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "قم بإزالة حدود القواعد و احصل على حماية ممتدة تعمل عبر جميع المتصفحات" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "تثبيت تطبيق سطح المكتب" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "انتقل إلى الفلاتر" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "إدارة الإضافات" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "تشارك إضافات المتصفح نفس حد القواعد. قد يؤدي إزالة مانعات الإعلانات الأخرى إلى إتاحة المزيد من القواعد لـ AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "إزالة مانعات الإعلانات الأخرى" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "قم بتمكين الفلاتر التي تحتاجها. قد تستخدم الفلاتر الخاصة باللغة وفلاتر الخصوصية العديد من القواعد" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "مراجعة الفلاتر المتاحة" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "إليك ما يمكنك فعله" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "تم الوصول إلى الحد — تم تعطيل بعض الفلاتر" + }, + "options_rule_syntax": { + "message": "صيغة القاعدة" + }, + "options_safebrowsing_enabled": { + "message": "الحماية من التصيد الاحتيالي والبرامج الضارة" + }, + "options_safebrowsing_enabled_desc": { + "message": "يحذر من المواقع الخبيثة ومواقع التصيد الاحتيالي باستخدام وحدة أمان تصفح AdGuard. \u003Ca>اقرأ المزيد\u003C/a>" + }, + "options_select_theme": { + "message": "المظهر" + }, + "options_select_update_period_12h": { + "message": "12 ساعة" + }, + "options_select_update_period_1h": { + "message": "ساعة" + }, + "options_select_update_period_24h": { + "message": "24 ساعة" + }, + "options_select_update_period_48h": { + "message": "48 ساعة" + }, + "options_select_update_period_6h": { + "message": "6 ساعات" + }, + "options_select_update_period_default": { + "message": "الافتراضي" + }, + "options_select_update_period_disabled": { + "message": "تعطيل" + }, + "options_send_not_track_desc": { + "message": "إرسال إشارات \u003Cgpc>التحكم العالمي في الخصوصية\u003C/gpc> و\u003Cdnt>عدم التتبع\u003C/dnt> إلى المواقع التي تزورها" + }, + "options_send_not_track_title": { + "message": "اطلب من المواقع عدم تتبعي" + }, + "options_set_update_interval": { + "message": "تحديث التصفية بشكل تلقائي" + }, + "options_set_update_interval_desc": { + "message": "يحافظ على تحديث التصفية للحصول على فاعلية أكثر في حظر الإعلانات" + }, + "options_settings": { + "message": "إعدادات AdGuard" + }, + "options_share_settings": { + "message": "مشاركة الإعدادات" + }, + "options_show_adguard_full_version_title": { + "message": "عرض المعلومات عن الإصدار الكامل من AdGuard" + }, + "options_show_app_updated_notification": { + "message": "تلقي إشعارات عند تحديث الملحق" + }, + "options_show_blocked_ads_count_title": { + "message": "إظهار عدد الإعلانات المحظورة على أيقونة AdGuard" + }, + "options_show_context_menu_title": { + "message": "أضف عنصر AdGuard إلى قائمة سياق المتصفح" + }, + "options_site": { + "message": "الموقع الرسمي" + }, + "options_skip_to_main_content": { + "message": "تخطي إلى المحتوى الرئيسي" + }, + "options_stealth_general_title": { + "message": "عام" + }, + "options_stealth_miscellaneous_title": { + "message": "متنوع" + }, + "options_stealth_tracking_methods_title": { + "message": "طرق التتبع" + }, + "options_strip_tracking_params_description": { + "message": "يُزيل معلمات التتبع من عناوين URL للصفحات باستخدام تصفية AdGuard لتتبع عناوين URL" + }, + "options_strip_tracking_params_title": { + "message": "إزالة معلمات التتبع من روابط المواقع (URL)" + }, + "options_stripped_tracking_parameters": { + "message": "تم إزالة معلمات التتبع" + }, + "options_theme_selector_dark": { + "message": "داكن" + }, + "options_theme_selector_light": { + "message": "فاتح" + }, + "options_theme_selector_system": { + "message": "تتبع النظام" + }, + "options_third_party_block_cookies_warning": { + "message": "إذا قمت بحظر ملفات تعريف الارتباط هذه، فقد تضطر إلى إعادة تسجيل الدخول إلى بعض المواقع أو قد تواجه مشكلات أخرى متعلقة بملفات تعريف الارتباط" + }, + "options_third_party_desc": { + "message": "يمنع المعلنين من تتبع سلوكك عبر الصفحات المتعددة عن طريق تقييد مدة صلاحية ملفات تعريف ارتباط الطرف الثالث" + }, + "options_third_party_title": { + "message": "حذف ملفات تعريف ارتباط الطرف الثالث" + }, + "options_update_antibanner_filters": { + "message": "التحقق من وجود تحديثات للتصفية" + }, + "options_use_optimized_filters": { + "message": "استخدام التصفية المحسنة" + }, + "options_use_optimized_filters_desc": { + "message": "استخدام نسخ مصغرة من التصفية تقتصر على القواعد الأكثر شيوعاً لتوفير استهلاك البيانات. يسعد هذا الخيار الأنسب لمتصفحات الهواتف" + }, + "options_user_rules_clear_search": { + "message": "مسح البحث" + }, + "options_user_rules_create_rule": { + "message": "إنشاء قاعدة" + }, + "options_user_rules_delete_all": { + "message": "حذف الكل" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "سوف يتم حذف جميع قواعد المستخدم بشكل دائم" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "حذف الكل؟" + }, + "options_user_rules_delete_all_success": { + "message": "تم حذف جميع قواعد المستخدم" + }, + "options_user_rules_delete_rule": { + "message": "حذف القاعدة" + }, + "options_user_rules_deleted_notification": { + "message": "تم حذف قاعدة المستخدم:" + }, + "options_user_rules_description_key": { + "message": "قواعدك الخاصة بحجب ورفع الحجب عن الإعلانات أو المواقع بأكملها" + }, + "options_user_rules_edit_rule": { + "message": "تعديل القاعدة" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "انتقل إلى المحرر" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "ستظهر قواعدك هنا بعد إغلاقه" + }, + "options_user_rules_editor_stub_title": { + "message": "تم فتح المحرر في نافذة أخرى" + }, + "options_user_rules_empty_placeholder": { + "message": "لا توجد قواعد بعد" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "جارٍ تمييز القواعد…" + }, + "options_user_rules_import_error": { + "message": "فشل في استيراد قواعد المستخدم. يرجى المحاولة مرة أخرى" + }, + "options_user_rules_import_success": { + "message": "تم استيراد قواعد المستخدم بنجاح" + }, + "options_user_rules_menu": { + "message": "إجراءات قواعد المستخدم" + }, + "options_user_rules_no_match": { + "message": "لم يتم العثور على شيء" + }, + "options_user_rules_search_placeholder": { + "message": "بحث" + }, + "options_user_rules_switch_to_editor": { + "message": "التبديل إلى عرض المحرر" + }, + "options_user_rules_switch_to_list": { + "message": "التبديل إلى عرض القائمة" + }, + "options_user_rules_undo": { + "message": "تراجع" + }, + "options_userfilter": { + "message": "قواعد المستخدم" + }, + "options_userfilter_description_key": { + "message": "يمكنك إضافة قواعدك الخاصة هنا. يُنصح بهذا الخيار للمستخدمين المتقدمين الذين لديهم خبرة في HTML/CSS. اقرأ البرنامج التعليمي \u003Ca>لقواعد التصفية\u003C/a> لمعرفة كيفية كتابة قواعد التصفية الخاصة بك." + }, + "options_userfilter_export": { + "message": "تصدير" + }, + "options_userfilter_import": { + "message": "استيراد" + }, + "options_userfilter_leave_subtitle": { + "message": "ستفقد التغييرات التي أجريتها على القواعد" + }, + "options_userfilter_line_break": { + "message": "فاصل سطر" + }, + "options_userfilter_line_break_off": { + "message": "فاصل الأسطر: معطل" + }, + "options_userfilter_line_break_on": { + "message": "فاصل الأسطر: مفعل" + }, + "options_userfilter_subtitle_key": { + "message": "يتيح لك إضافة قواعد التصفية الخاصة بك" + }, + "popup_abuse_site": { + "message": "الإبلاغ عن مشكلة" + }, + "popup_adguard_footer_title": { + "message": "قم بحماية هاتفك" + }, + "popup_adguard_for_android": { + "message": "AdGuard لنظام Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard لنظام iOS" + }, + "popup_block_site_ads_option": { + "message": "حظر الإعلانات يدويًا" + }, + "popup_get_system_wide_protection": { + "message": "احصل على حماية على مستوى النظام" + }, + "popup_header_cta_link": { + "message": "كيفية تعزيز الحماية" + }, + "popup_header_update_filters": { + "message": "التحقق من وجود تحديثات للتصفية" + }, + "popup_limits_exceeded_warning": { + "message": "قام المتصفح بتعديل قائمة التصفية المدمجة النشطة" + }, + "popup_open_filtering_log": { + "message": "فتح سجل التصفية" + }, + "popup_open_settings": { + "message": "إعدادات AdGuard" + }, + "popup_protection_button": { + "message": "حماية AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "مسح كل قواعد المستخدم لهذا الموقع" + }, + "popup_resume_protection_button": { + "message": "استئناف" + }, + "popup_security_report": { + "message": "التحقق من أمان الموقع" + }, + "popup_site_exception_information": { + "message": "تم تعطيل التصفية لأنها يمكن أن تتداخل مع تشغيل هذا الموقع." + }, + "popup_site_filtering_state_disabled": { + "message": "الحماية معطلة" + }, + "popup_site_filtering_state_disabling": { + "message": "تعطيل الحماية..." + }, + "popup_site_filtering_state_enabled": { + "message": "الحماية مفعلة" + }, + "popup_site_filtering_state_enabling": { + "message": "تفعيل الحماية..." + }, + "popup_site_filtering_state_loading": { + "message": "جار التحميل..." + }, + "popup_site_filtering_state_paused": { + "message": "الحماية متوقفة" + }, + "popup_site_filtering_state_pausing": { + "message": "إيقاف الحماية..." + }, + "popup_site_filtering_state_resuming": { + "message": "استئناف الحماية..." + }, + "popup_site_filtering_state_secure_page": { + "message": "الصفحة أمان" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "لجميع المواقع" + }, + "popup_statistics_all_categories": { + "message": "الكل" + }, + "popup_statistics_category_advertising": { + "message": "الإعلانات" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "فئة الإحصائيات" + }, + "popup_statistics_category_other": { + "message": "أخرى" + }, + "popup_statistics_category_social_media": { + "message": "وسائل التواصل الإجتماعي" + }, + "popup_statistics_category_trackers": { + "message": "التتبع" + }, + "popup_statistics_months_apr": { + "message": "أبريل" + }, + "popup_statistics_months_aug": { + "message": "أغسطس" + }, + "popup_statistics_months_dec": { + "message": "ديسمبر" + }, + "popup_statistics_months_feb": { + "message": "فبراير" + }, + "popup_statistics_months_jan": { + "message": "يناير" + }, + "popup_statistics_months_jul": { + "message": "يوليو" + }, + "popup_statistics_months_jun": { + "message": "يونيو" + }, + "popup_statistics_months_mar": { + "message": "مارس" + }, + "popup_statistics_months_may": { + "message": "مايو" + }, + "popup_statistics_months_nov": { + "message": "نوفمبر" + }, + "popup_statistics_months_oct": { + "message": "أكتوبر" + }, + "popup_statistics_months_sep": { + "message": "سبتمبر" + }, + "popup_statistics_time_day": { + "message": "24 ساعة" + }, + "popup_statistics_time_label": { + "message": "الفترة الزمنية للإحصائيات" + }, + "popup_statistics_time_month": { + "message": "30 يوم" + }, + "popup_statistics_time_week": { + "message": "7 أيام" + }, + "popup_statistics_time_year": { + "message": "سنة" + }, + "popup_statistics_total": { + "message": "المجموع" + }, + "popup_statistics_week_days_fri": { + "message": "الجمعة" + }, + "popup_statistics_week_days_mon": { + "message": "الإثنين" + }, + "popup_statistics_week_days_sat": { + "message": "السبت" + }, + "popup_statistics_week_days_sun": { + "message": "الأحد" + }, + "popup_statistics_week_days_thu": { + "message": "الخميس" + }, + "popup_statistics_week_days_tue": { + "message": "الثلاثاء" + }, + "popup_statistics_week_days_wed": { + "message": "الأربعاء" + }, + "popup_switch_button": { + "message": "حماية الموقع الحالي" + }, + "popup_tab_actions": { + "message": "الإجراءات" + }, + "popup_tab_blocked_all_count": { + "message": "إجمالي المحظور: %num%" + }, + "popup_tab_blocked_count": { + "message": "المحظور: %num%" + }, + "popup_tab_current_website": { + "message": "الموقع الحالي" + }, + "popup_tab_statistics": { + "message": "الإحصائيات" + }, + "popup_tabs": { + "message": "علامات التبويب" + }, + "popup_tooltip_loading": { + "message": "جار التحميل..." + }, + "popup_tooltip_protection_disabled": { + "message": "الحماية معطلة" + }, + "popup_tooltip_protection_enabled": { + "message": "الحماية مفعلة" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "بعض القواعد لم يتم تطبيقها" + }, + "popup_tooltip_update_available": { + "message": "التحديث متاح" + }, + "post_install_loading": { + "message": "جاري التحميل الملحق..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "تم تجاوز حد القاعدة في ملحق AdGuard الخاص بالمتصفح. يرجى التحقق من التصفية وقم بتعطيل التي لا تحتاجها" + }, + "text_collapser_hide_default": { + "message": "إخفاء النص بالكامل" + }, + "text_collapser_show_default": { + "message": "إظهار النص بالكامل" + }, + "update_available_desc": { + "message": "لحظر الإعلانات بكفاءة عالية، حافظ على تحديث الملحق والتصفية" + }, + "update_available_title": { + "message": "التحديثات المتاحة" + }, + "update_available_update_btn": { + "message": "تحديث" + }, + "update_check": { + "message": "التحقق من وجود تحديثات" + }, + "update_checking_in_progress": { + "message": "التحقق من وجود التحديث..." + }, + "update_failed_text": { + "message": "فشل إتمام التحديث" + }, + "update_failed_try_again_btn": { + "message": "حاول مرة أخرى" + }, + "update_installing_in_progress_desc": { + "message": "سيتم إعادة تشغيل الملحق بعد التحديث" + }, + "update_installing_in_progress_title": { + "message": "تحديث الملحق والتصفية..." + }, + "update_not_needed": { + "message": "تم تحديث الملحق والتصفية الخاصة بك" + }, + "update_success_text": { + "message": "تم تحديث الملحق والتصفية" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/be/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/be/messages.json new file mode 100644 index 0000000..f6f05bd --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/be/messages.json @@ -0,0 +1,1686 @@ +{ + "options_clipboard_permission_warning": { + "message": "Каб капіраваць і ўстаўляць правілы, дазвольце AdGuard доступ да буфера абмену. Дазволіць" + }, + "options_popup_title_placeholder": { + "message": "Увядзіце назву фільтра" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Усе фільтры" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Уключаныя" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Адключаныя" + }, + "options_filters_empty_title": { + "message": "Нічога не знойдзена" + }, + "options_filters_of_group": { + "message": "Фільтры групы «%groupName%»" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Гэты карыстальніцкі фільтр ужо даданы" + }, + "options_filters_annoyances_consent_title": { + "message": "Уважліва прачытайце перад уключэннем фільтраў раздражняльнікаў" + }, + "options_filters_annoyances_consent_description": { + "message": "Вы збіраецеся ўключыць адзін або некалькі фільтраў раздражняльнікаў. Яны блакіруюць элементы, якія або не маюць ніякага дачынення да кантэнту вэб-сайта, або маюць дачыненне, але раздражняюць сваёй прысутнасцю карыстальніка. Уладальнікі вэб-сайтаў могуць лічыць гэтыя элементы абавязковымі: калі вы блакіруеце іх, то можаце парушыць умовы выкарыстання гэтымі вэб-сайтамі; некаторая функцыянальнасць вэб-сайтаў можа стаць недаступнай або працаваць няправільна. Вы ўсведамляеце і згаджаецеся з тым, што цалкам прымаеце адказнасць за выкананне ўмоў выкарыстання вэб-сайтамі, якія наведваеце. AdGuard не нясе адказнасці за выкананне вамі гэтых умоў, калі вы выкарыстоўваеце нашы праграмныя прадукты пры наведванні вэб-сайтаў." + }, + "options_filters_annoyances_consent_question": { + "message": "Уключыць гэтыя фільтры?" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Больш падрабязная інфармацыя пра тое, што блакіруюць фільтры раздражняльнікі AdGuard, чытайце ў Палітыцы фільтрацыі" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Уключыць" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Хатняя старонка" + }, + "popup_header_cta_link": { + "message": "Як палепшыць абарону" + }, + "popup_get_system_wide_protection": { + "message": "Атрымаць абарону для ўсё прылады" + }, + "popup_header_update_filters": { + "message": "Праверыць абнаўленні фільтраў" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Пашырэнне файла павінна быць %extension%" + }, + "popup_resume_protection_button": { + "message": "Узнавіць" + }, + "popup_adguard_for_ios": { + "message": "AdGuard для iOS" + }, + "popup_adguard_for_android": { + "message": "AdGuard для Android" + }, + "options_filters_filter_version": { + "message": "версія:" + }, + "options_filters_filter_link": { + "message": "Перайсці на хатнюю старонку" + }, + "options_filters_filter_updated": { + "message": "абноўлена:" + }, + "options_filters_filter_tags": { + "message": "Тэгі фільтра" + }, + "options_filters_back_button": { + "message": "Вярнуцца" + }, + "options_popup_version_update_disable_notification": { + "message": "Адключыць апавяшчэнні" + }, + "popup_adguard_footer_title": { + "message": "Абараніце сваю мабільную прыладу" + }, + "options_popup_call_to_action": { + "message": "Увядзіце правільны URL фільтра або шлях да файла фільтра ў поле вышэй." + }, + "options_popup_description": { + "message": "Вы падпішацеся на гэты фільтр." + }, + "options_popup_url_title": { + "message": "Новая падпіска на фільтр" + }, + "options_popup_url_placeholder": { + "message": "Увядзіце URL-адрас або шлях да файла" + }, + "options_popup_next_button": { + "message": "Далей" + }, + "options_popup_checking_filter": { + "message": "Праверка вашага фільтра" + }, + "options_popup_check_false_title": { + "message": "Памылка" + }, + "options_popup_check_false_description": { + "message": "Памылка пры дадаванні карыстальніцкага фільтра." + }, + "options_add_custom_filter_modal_title": { + "message": "Дадаць карыстальніцкі фільтр" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Праверка вашага фільтра..." + }, + "options_add_custom_filter_modal_error_title": { + "message": "Не ўдалося дадаць карыстальніцкі фільтр" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Паўтарыце спробу або звярніцеся ў службу падтрымкі" + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL-адрас вярнуў вэб-старонку замест спісу фільтраў. Калі ласка, падайце прамую спасылку на файл фільтра." + }, + "options_add_custom_filter_modal_add_button": { + "message": "Дадаць" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Назва фільтра:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Давераны" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Давераныя фільтры могуць выкарыстоўваць магутныя мадыфікатары правілаў - пераканайцеся, што вы выкарыстоўваеце фільтр ад давераных распрацоўшчыкаў" + }, + "options_popup_try_again_button": { + "message": "Паспрабаваць яшчэ раз" + }, + "options_popup_filter_title": { + "message": "Назва:" + }, + "options_popup_filter_description": { + "message": "Апісанне:" + }, + "options_popup_filter_version": { + "message": "Версія:" + }, + "options_popup_filter_rules_count": { + "message": "Колькасць правіл:" + }, + "options_popup_filter_homepage": { + "message": "Хатняя старонка:" + }, + "options_popup_filter_url": { + "message": "URL-адрас" + }, + "options_popup_subscribe_button": { + "message": "Падпісацца" + }, + "name": { + "message": "AdGuard Антыбанар" + }, + "description": { + "message": "Непераўзыдзеная абарона ад рэкламы і ўсплывальных вокнаў. Блакіруе рэкламу на Facebook, YouTube і ўсіх іншых сайтах.", + "description": "TEXT MAX LENGTH: 132" + }, + "popup_tooltip_protection_enabled": { + "message": "Абарона ўключана" + }, + "popup_tooltip_protection_disabled": { + "message": "Абарона адключана" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Некаторыя правілы не ўжыты" + }, + "popup_tooltip_update_available": { + "message": "Даступна абнаўленне" + }, + "popup_tooltip_loading": { + "message": "Загрузка..." + }, + "background_tab_title": { + "message": "Фонавая ўкладка" + }, + "options_allowlist": { + "message": "Спіс дазволеных" + }, + "options_allowlist_desc": { + "message": "AdGuard не блакіруе рэкламу і праграмы сачэння на вэб-сайтах са спісу" + }, + "options_allowlist_invert": { + "message": "Інвертаваць спіс дазволеных" + }, + "options_allowlist_invert_desc": { + "message": "Блакіруе рэкламу і праграмы сачэння толькі на дазволеных вэб-сайтах" + }, + "options_allowlist_alert_invert": { + "message": "Спіс дазволеных інвертаваны. Рэклама блакіруецца толькі на вэб-сайтах, дададзеных у яго." + }, + "options_allowlist_alert_invert_stop": { + "message": "Спыніць інвертаванне" + }, + "options_allowlist_leave_subtitle": { + "message": "Вашы змены ў белым спісе будуць страчаны" + }, + "options_allowlist_invalid_entries": { + "message": "Каб захаваць, пакідайце толькі дамены або URL-адрасы. Наступныя трэба выправіць: %entries%" + }, + "options_userfilter": { + "message": "Правілы карыстальніка" + }, + "filtering_log_modified_rules": { + "message": "Змененыя правілы: %rules_count%" + }, + "filtering_log_stealth_rules": { + "message": "Правілы Антытрэкiнгу: %rules_count%" + }, + "filtering_log_privacy_applied_rules": { + "message": "Абарона ад сачэння ўжыта" + }, + "filtering_log_in_allowlist": { + "message": "Гэты вэб-сайт дазволены" + }, + "filtering_log_hide_referrer": { + "message": "Referer схаваны ад старонніх рэсурсаў" + }, + "filtering_log_hide_search_queries": { + "message": "Вашы пошукавыя запыты схаваныя" + }, + "filtering_log_remove_client_data": { + "message": "Загаловак X-Client-Data выдалены" + }, + "filtering_log_send_not_track": { + "message": "Загаловак Do-Not-Track адпраўлены" + }, + "options_select_update_period_default": { + "message": "Прадвызначана" + }, + "options_select_update_period_48h": { + "message": "48 гадзін" + }, + "options_select_update_period_24h": { + "message": "24 гадзіны" + }, + "options_select_update_period_12h": { + "message": "12 гадзін" + }, + "options_select_update_period_6h": { + "message": "6 гадзін" + }, + "options_select_update_period_1h": { + "message": "1 гадзіна" + }, + "options_select_update_period_disabled": { + "message": "Адключана" + }, + "options_filters": { + "message": "Фільтры" + }, + "options_antibanner_rules_count": { + "message": "Правіл: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Абноўлена: %date%" + }, + "options_filters_last_checked": { + "message": "Апошняя праверка: %date%" + }, + "options_antibanner_custom_group": { + "message": "Карыстальніцкія" + }, + "options_antibanner_custom_group_description": { + "message": "Дазваляе дадаваць фільтры з файла або URL-адраса" + }, + "options_filters_enabled_per_group": { + "message": "Уключана: %current% з %total%" + }, + "options_filters_enabled": { + "message": "Уключана:" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% і яшчэ %more%" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% і %last%" + }, + "options_filters_no_enabled": { + "message": "Няма ўключаных фільтраў" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Вы вырашылі давяраць гэтаму фільтру." + }, + "options_filters_info_mv3_total_rules": { + "message": "Усяго правіл: %num%" + }, + "options_add_custom_filter": { + "message": "Дадаць карыстальніцкі фільтр" + }, + "options_empty_custom_filter": { + "message": "У вас пакуль няма карыстальніцкіх фільтраў" + }, + "options_loader_applying_changes": { + "message": "Ужыванне змен..." + }, + "options_editor_indicator_saving": { + "message": "Захаванне..." + }, + "options_editor_indicator_saved": { + "message": "Захавана" + }, + "options_editor_save_error": { + "message": "Не ўдалося захаваць змены. Паўтарыце спробу або звярніцеся ў службу падтрымкі" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Каб імпартаваць гэты файл налад, дазвольце AdGuard змяніць налады, звязаныя з прыватнасцю." + }, + "options_popup_import_success_title": { + "message": "Налады імпартаваны" + }, + "options_popup_import_error_title": { + "message": "Не ўдалося імпартаваць налады" + }, + "options_popup_import_error_file_description": { + "message": "Нешта пайшло не так." + }, + "options_popup_trusted_filter_title": { + "message": "Давераны" + }, + "options_popup_trusted_filter_description": { + "message": "Давераныя фільтры могуць выкарыстоўваць магутныя мадыфікатары правіл фільтрацыі, якія, у сваю чаргу, могуць уяўляць небяспеку, знаходзячыся ў ненадзейных руках. Не ўсталёўвайце гэты флажок, калі цалкам не давяраеце фільтру." + }, + "popup_site_filtering_state_secure_page": { + "message": "Бяспечная старонка" + }, + "popup_site_filtering_state_loading": { + "message": "Загрузка..." + }, + "popup_site_filtering_state_enabling": { + "message": "Уключэнне абароны..." + }, + "popup_site_filtering_state_enabled": { + "message": "Абарона ўключана" + }, + "popup_site_filtering_state_disabling": { + "message": "Адключэнне абароны..." + }, + "popup_site_filtering_state_disabled": { + "message": "Абарона адключана" + }, + "popup_site_filtering_state_pausing": { + "message": "Прыпыненне абароны..." + }, + "popup_site_filtering_state_paused": { + "message": "Абарона прыпынена" + }, + "popup_site_filtering_state_resuming": { + "message": "Узнаўленне абароны..." + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "для ўсіх вэб-сайтаў" + }, + "popup_site_exception_information": { + "message": "Фільтрацыя адключана, таму што яна можа перашкаджаць працы гэтага сайта." + }, + "popup_tab_current_website": { + "message": "Бягучы вэб-сайт" + }, + "popup_tab_blocked_count": { + "message": "Заблакіравана: %num%" + }, + "popup_tab_blocked_all_count": { + "message": "Усяго заблакіравана: %num%" + }, + "popup_statistics_total": { + "message": "Усяго" + }, + "popup_statistics_category_label": { + "message": "Катэгорыя статыстыкі" + }, + "popup_statistics_all_categories": { + "message": "Усе" + }, + "popup_statistics_category_advertising": { + "message": "Рэклама" + }, + "popup_statistics_category_trackers": { + "message": "Праграмы сачэння" + }, + "popup_statistics_category_social_media": { + "message": "Сацыяльныя сеткі" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_other": { + "message": "Іншыя" + }, + "popup_statistics_week_days_mon": { + "message": "Пан" + }, + "popup_statistics_week_days_tue": { + "message": "Аўт" + }, + "popup_statistics_week_days_wed": { + "message": "Срд" + }, + "popup_statistics_week_days_thu": { + "message": "Чцв" + }, + "popup_statistics_week_days_fri": { + "message": "Птн" + }, + "popup_statistics_week_days_sat": { + "message": "Суб" + }, + "popup_statistics_week_days_sun": { + "message": "Ндз" + }, + "popup_statistics_months_jan": { + "message": "Студ" + }, + "popup_statistics_months_feb": { + "message": "Лют" + }, + "popup_statistics_months_mar": { + "message": "Сак" + }, + "popup_statistics_months_apr": { + "message": "Кра" + }, + "popup_statistics_months_may": { + "message": "Тра" + }, + "popup_statistics_months_jun": { + "message": "Чэр" + }, + "popup_statistics_months_jul": { + "message": "Ліп" + }, + "popup_statistics_months_aug": { + "message": "Жні" + }, + "popup_statistics_months_sep": { + "message": "Вер" + }, + "popup_statistics_months_oct": { + "message": "Кас" + }, + "popup_statistics_months_nov": { + "message": "Ліс" + }, + "popup_statistics_months_dec": { + "message": "Сне" + }, + "options_popup_updating_filters": { + "message": "Абнаўленне фільтраў..." + }, + "options_popup_update_title_error": { + "message": "Памылка абнаўлення фільтраў" + }, + "options_popup_update_not_found": { + "message": "Вашы фільтры актуальныя" + }, + "options_popup_update_error": { + "message": "Не ўдалося атрымаць абнаўленне. Паспрабуйце яшчэ раз пазней." + }, + "options_popup_update_filter": { + "message": "абноўлены." + }, + "options_popup_update_filters": { + "message": "абноўлена." + }, + "options_popup_version_update_title_text": { + "message": "Пашырэнне AdGuard абноўлена да версіі %current_version%" + }, + "options_popup_version_update_description_minor": { + "message": "Гэта версія ўтрымлівае ў асноўным выпраўленні памылак і дробныя паляпшэнні." + }, + "options_popup_version_update_description_major": { + "message": "Гэта маштабнае абнаўленне пашырэння, якое дадае мноства новых функцый і паляпшэнняў." + }, + "options_popup_version_update_changelog_text": { + "message": "Што новага ў гэтай версіі?" + }, + "options_popup_version_update_offer": { + "message": "Ці ведаеце вы, што магчымасці AdGuard не абмяжоўваюцца толькі блакіроўкай у гэтым браўзеры?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ДАВЕДАЦЦА БОЛЬШ" + }, + "popup_block_site_ads_option": { + "message": "Заблакіраваць рэкламу ўручную" + }, + "popup_security_report": { + "message": "Праверыць бяспеку вэб-сайта" + }, + "popup_reset_page_user_rules": { + "message": "Выдаліць правілы карыстальніка для гэтага вэб-сайта" + }, + "popup_open_settings": { + "message": "Адкрыць налады AdGuard" + }, + "popup_protection_button": { + "message": "Абарона AdGuard" + }, + "context_block_site_ads": { + "message": "Заблакаваць рэкламу ўручную" + }, + "context_security_report": { + "message": "Праверыць бяспеку вэб-сайта" + }, + "context_complaint_website": { + "message": "Паведаміць аб праблеме" + }, + "context_site_filtering_disabled": { + "message": "AdGuard не можа адфільтраваць гэту старонку" + }, + "context_disable_protection": { + "message": "Прыпыніць абарону AdGuard" + }, + "context_enable_protection": { + "message": "Узнавіць абарону AdGuard" + }, + "context_site_protection_disabled": { + "message": "Абарона AdGuard прыпынена" + }, + "context_open_settings": { + "message": "Наладзіць AdGuard" + }, + "context_open_log": { + "message": "Журнал фільтрацыі" + }, + "context_site_exception": { + "message": "Сайт знаходзіцца ў выключэннях" + }, + "context_site_filtering_on": { + "message": "Уключыць фільтрацыю на гэтым вэб-сайце" + }, + "context_site_filtering_off": { + "message": "Адключыць фільтрацыю на гэтым вэб-сайце" + }, + "context_update_antibanner_filters": { + "message": "Праверыць абнаўленні фільтраў" + }, + "alert_popup_filter_enabled_title": { + "message": "Аўтаматычнае актывацыя фільтраў" + }, + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% быў актываваны аўтаматычна." + }, + "filters_download_title": { + "message": "Загрузка базы даных фільтраў..." + }, + "filters_download_loading": { + "message": "Пачакайце адбываецца загрузка базы даных фільтраў..." + }, + "post_install_loading": { + "message": "Загрузка пашырэння..." + }, + "filtering_modal_element": { + "message": "Элемент:" + }, + "filtering_modal_cookie": { + "message": "Файлы Cookie:" + }, + "filtering_modal_important": { + "message": "Задаць для правіла самы высокі прыярытэт" + }, + "filtering_log_title": { + "message": "Журнал фільтрацыі" + }, + "filtering_log_search_string": { + "message": "Пошук" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Пошук ва ўкладках" + }, + "filtering_log_preserve_log_off": { + "message": "Не захоўваць журнал" + }, + "filtering_log_preserve_log_on": { + "message": "Захоўваць журнал" + }, + "filtering_refresh_tab_short": { + "message": "Абнавіць" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Абнавіць старонку" + }, + "filtering_menu_open_filters": { + "message": "Наладзіць" + }, + "filtering_clear_log_events": { + "message": "Ачысціць журнал" + }, + "filtering_log_actions_menu": { + "message": "Дзеянні журнала фільтрацыі" + }, + "filtering_type_all": { + "message": "Усе" + }, + "filtering_type_other": { + "message": "Іншыя" + }, + "filtering_table_status": { + "message": "Статус" + }, + "filtering_table_type": { + "message": "Тып" + }, + "filtering_table_rule": { + "message": "Правіла фільтрацыі" + }, + "filtering_table_source": { + "message": "Крыніца" + }, + "filtering_table_filter": { + "message": "Фільтр" + }, + "filtering_table_action": { + "message": "Дзеянне" + }, + "filtering_table_open_details": { + "message": "Адкрыць падрабязнасці" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Нічога не знойдзена. Адключыць фільтры або перазагрузіць старонку, каб паглядзець запісы журнала" + }, + "filtering_modal_info_title": { + "message": "Падрабязнасці запыту" + }, + "filtering_modal_preview_title": { + "message": "Перадпрагляд" + }, + "filtering_modal_type": { + "message": "Тып" + }, + "filtering_modal_source": { + "message": "Крыніца" + }, + "filtering_modal_rule": { + "message": "Правіла:" + }, + "filtering_modal_rules": { + "message": "Правілы:" + }, + "filtering_modal_privacy": { + "message": "Абарона ад сачэння" + }, + "filtering_modal_filter": { + "message": "Фільтр" + }, + "filtering_modal_block": { + "message": "Заблакіраваць" + }, + "filtering_modal_block_again": { + "message": "Зноў заблакіраваць" + }, + "filtering_modal_unblock": { + "message": "Разблакіраваць" + }, + "filtering_modal_remove_user": { + "message": "Выдаліць правіла" + }, + "filtering_modal_preview_request_button": { + "message": "Перадпрагляд" + }, + "filtering_modal_remove_allowlist": { + "message": "Выдаліць са спіса дазволеных" + }, + "filtering_modal_block_title": { + "message": "Дадаць правіла блакіроўкі" + }, + "filtering_modal_allow_title": { + "message": "Дадаць правіла дазволу" + }, + "filtering_modal_status_text_desc": { + "message": "Статус" + }, + "filtering_modal_status_text_error": { + "message": "Не ўдалося загрузіць папярэдні прагляд. Паспрабуйце яшчэ раз" + }, + "filtering_modal_status_text_loading": { + "message": "Загрузка..." + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Статус фільтрацыі" + }, + "filtering_modal_rule_text_desc": { + "message": "Правіла" + }, + "filtering_modal_patterns_desc_block": { + "message": "Што неабходна заблакіраваць" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Што неабходна дазволіць" + }, + "filtering_modal_options_desc": { + "message": "Параметры" + }, + "filtering_modal_apply_domains": { + "message": "Ужыць да ўсіх вэб-сайтаў" + }, + "filtering_modal_third_party": { + "message": "Прымяняць толькі да старонніх запытаў" + }, + "filtering_modal_remove_param": { + "message": "Выдаліць параметры запыту" + }, + "filtering_modal_add_rule": { + "message": "Дадаць" + }, + "filtering_modal_exception_title": { + "message": "Даданне выключэння" + }, + "filtering_modal_open_in_new_tab": { + "message": "Адкрыць у новай укладцы" + }, + "filtering_modal_show_full_url": { + "message": "Паказаць поўны URL-адрас" + }, + "filtering_modal_hide_full_url": { + "message": "Схаваць поўны URL-адрас" + }, + "filtering_modal_show_full_rule": { + "message": "Паказаць поўнае правіла" + }, + "filtering_modal_hide_full_rule": { + "message": "Схаваць поўнае правіла" + }, + "filtering_modal_show_full_element": { + "message": "Паказаць поўны элемент" + }, + "filtering_modal_hide_full_element": { + "message": "Схаваць поўны элемент" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Скапіяваць у буфер абмену" + }, + "filtering_modal_copied": { + "message": "Скапіявана" + }, + "filtering_modal_converted_to": { + "message": "Пераўтворана ў:" + }, + "filtering_log_filter_regular": { + "message": "Звычайны" + }, + "filtering_log_filter_allowed": { + "message": "Дазволеныя" + }, + "filtering_log_filter_blocked": { + "message": "Заблакіраваныя" + }, + "filtering_log_filter_modified": { + "message": "Змененыя" + }, + "filtering_log_filter_user_rules": { + "message": "Правілы карыстальніка" + }, + "filtering_log_status_processed": { + "message": "Апрацавана" + }, + "filtering_log_status_allowed": { + "message": "Дазволены" + }, + "filtering_log_status_blocked": { + "message": "Заблакіраваны" + }, + "filtering_log_status_modified": { + "message": "Зменены" + }, + "options_skip_to_main_content": { + "message": "Перайсці да асноўнага змесціва" + }, + "options_navigation": { + "message": "Навігацыя" + }, + "options_settings": { + "message": "Налады AdGuard" + }, + "options_general_settings": { + "message": "Агульныя" + }, + "options_block_acceptable_ads": { + "message": "Блакіраваць пошукавую рэкламу і самарэкламу вэб-сайтаў" + }, + "options_block_acceptable_ads_desc": { + "message": "Блакіруе рэкламу ў выніках пошуку і самарэкламу вэб-сайтаў. Даведацца больш" + }, + "options_show_blocked_ads_count_title": { + "message": "Паказваць колькасць заблакіраванай рэкламы на значку AdGuard" + }, + "options_enable_autodetect_filter": { + "message": "Аўтаматычна актываваць найбольш адпаведныя фільтры" + }, + "options_enable_autodetect_filter_desc": { + "message": "Вызначае мову вэб-сайта і актывуе адпаведныя фільтры" + }, + "options_select_theme": { + "message": "Тэма" + }, + "options_theme_selector_system": { + "message": "Прадвызначана сістэмай" + }, + "options_theme_selector_light": { + "message": "Светлая" + }, + "options_theme_selector_dark": { + "message": "Цёмная" + }, + "options_export_settings": { + "message": "Экспартаваць налады" + }, + "options_share_settings": { + "message": "Абагуліць налады" + }, + "options_import_settings": { + "message": "Імпартаваць налады" + }, + "options_report_bug": { + "message": "Паведаміць аб памылцы" + }, + "options_leave_feedback": { + "message": "Пакінуць водгук" + }, + "options_privacy": { + "message": "Абарона ад сачэння" + }, + "options_update_antibanner_filters": { + "message": "Праверыць абнаўленні фільтраў" + }, + "options_check_update_progress": { + "message": "Праверка..." + }, + "options_set_update_interval": { + "message": "Аўтаматычна абнаўляць фільтры" + }, + "options_set_update_interval_desc": { + "message": "Абнаўляе фільтры для больш эфектыўнай блакіроўкі рэкламы" + }, + "options_userfilter_export": { + "message": "Экспартаваць" + }, + "options_editor_save": { + "message": "Захаваць" + }, + "options_editor_leave_title": { + "message": "Выйсці без захавання?" + }, + "options_editor_leave_confirm": { + "message": "Так, выйсці" + }, + "options_editor_leave_cancel": { + "message": "Вярнуцца да рэдагавання" + }, + "options_userfilter_import": { + "message": "Імпартаваць" + }, + "options_user_rules_delete_all": { + "message": "Выдаліць усё" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Выдаліць усе?" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Усе правілы карыстальніка будуць выдалены назаўсёды" + }, + "options_user_rules_delete_all_success": { + "message": "Усе правілы карыстальнікаў выдалены" + }, + "options_user_rules_import_success": { + "message": "Правілы карыстальніка паспяхова імпартаваны" + }, + "options_user_rules_import_error": { + "message": "Не ўдалося імпартаваць правілы карыстальніка. Паспрабуйце яшчэ раз" + }, + "options_user_rules_menu": { + "message": "Дзеянні правіл карыстальніка" + }, + "options_allowlist_menu": { + "message": "Дзеянні спіса дазволеных" + }, + "options_userfilter_description_key": { + "message": "Тут вы можаце дадаць свае правілы. Гэты параметр рэкамендаваны для дасведчаных карыстальнікаў, якія знаёмы з HTML/CSS. Прачытайце дапаможнік па правілах фільтрацыі, каб даведацца больш аб напісанні сваіх уласных правіл фільтрацыі." + }, + "options_userfilter_subtitle_key": { + "message": "Дазваляе вам дадаваць уласныя правілы фільтрацыі" + }, + "options_user_rules_description_key": { + "message": "Вашы правілы для блакіроўкі і разблакіроўкі рэкламы або цэлых вэб-сайтаў" + }, + "options_user_rules_empty_placeholder": { + "message": "Пакуль няма правіл" + }, + "options_user_rules_search_placeholder": { + "message": "Пошук" + }, + "options_user_rules_clear_search": { + "message": "Ачысціць пошук" + }, + "options_user_rules_create_rule": { + "message": "Стварыць правіла" + }, + "options_user_rules_edit_rule": { + "message": "Рэдагаваць правіла" + }, + "options_user_rules_delete_rule": { + "message": "Выдаліць правіла" + }, + "options_user_rules_deleted_notification": { + "message": "Правіла карыстальніка выдалена:" + }, + "options_user_rules_undo": { + "message": "Адрабіць" + }, + "options_user_rules_no_match": { + "message": "Нічога не знойдзена" + }, + "options_user_rules_switch_to_editor": { + "message": "Пераключыцца ў выгляд рэдактара" + }, + "options_user_rules_switch_to_list": { + "message": "Пераключыцца ў выгляд спіса" + }, + "options_user_rules_highlight_loading": { + "message": "Вылучэнне правіл…", + "description": "Shown in the user rules list while syntax highlighting initializes." + }, + "options_userfilter_line_break": { + "message": "Перанос радка" + }, + "options_userfilter_line_break_off": { + "message": "Перанос радка: адключана" + }, + "options_userfilter_line_break_on": { + "message": "Перанос радка: уключана" + }, + "options_userfilter_leave_subtitle": { + "message": "Вашы змены ў правілах будуць страчаны" + }, + "options_open_changelog": { + "message": "Спіс змен" + }, + "options_safebrowsing_enabled": { + "message": "Абарона ад фішынгавых і шкодных вэб-сайтаў" + }, + "options_safebrowsing_enabled_desc": { + "message": "Папярэджвае аб шкодных і фішынгавых вэб-сайтах з дапамогай модуля антыфішынгу AdGuard. Даведацца больш" + }, + "options_site": { + "message": "Афіцыйны вэб-сайт" + }, + "options_discuss": { + "message": "Абмеркаваць AdGuard" + }, + "options_do_you_like_question": { + "message": "Падабаецца AdGuard?" + }, + "options_rate_us_cta": { + "message": "Ацаніце нас" + }, + "options_miscellaneous_settings": { + "message": "Дадатковыя налады" + }, + "options_rule_syntax": { + "message": "Сінтаксіс правіла" + }, + "options_rule_limits": { + "message": "Абмежаванні правіл" + }, + "options_rule_limits_description": { + "message": "Браўзер абмяжоўвае колькасць правілаў, якія могуць быць ужыты" + }, + "options_rule_limits_dynamic": { + "message": "Дынамічныя правілы" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Правілы дадзеныя карыстальнікам, такія як карыстальніцкія правілы, вэб-сайты ў белым спісе і карыстальніцкія фільтры" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Правілы, дададзеныя карыстальнікам, такія як карыстальніцкія правілы і вэб-сайты ў белым спісе" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Небяспечныя дынамічныя правілы (выкарыстоўваюцца для некаторых прасунутых мадыфікатараў, такіх як $$redirect або $$cookie). Уваходзяць у правілы дадзеныя карыстальнікам" + }, + "options_rule_limits_dynamic_regex": { + "message": "Правілы рэгулярных выразаў уключаны ў правілы, якія дададзены карыстальнікам" + }, + "options_rule_limits_static_rulesets": { + "message": "Статычныя наборы правіл" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "Убудаваныя фільтры, такія як блакіроўка раздражняльных элементаў або фільтры для асобных моў" + }, + "options_rule_limits_static_rules": { + "message": "Статычныя правілы" + }, + "options_rule_limits_static_rules_all": { + "message": "Правілы з убудаваных фільтраў" + }, + "options_rule_limits_static_rules_regex": { + "message": "Правілы рэгулярных выразаў — уключаны вышэй" + }, + "options_rule_limits_numbers": { + "message": "%current% з %maximum%" + }, + "options_rule_limits_warning_title": { + "message": "Браўзер змяніў спіс актыўных фільтраў" + }, + "options_rule_limits_warning_explanation_title": { + "message": "Што здарылася?" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Абмежаванне актыўных убудаваных правіл было перавышана пасля абнаўлення або дадавання новага пашырэння. Браўзер Chrome адрэагаваў і адключыў ўсе ўбудаваныя фільтры пашырэння, акрамя стандартных. Гэта зроблена ў адпаведнасці з Manifest V3." + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Фільтры, якія былі ўключаны перад абнаўленнем" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Фільтры, якія былі ўключаны цяпер" + }, + "options_rule_limits_warning_actions_title": { + "message": "Вашы магчымыя дзеянні" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Варыянт 1. Выдаліце з браўзера непатрэбныя пашырэнні, якія блакіруюць рэкламу. Каб паўторна актываваць фільтры, згаданыя ў раздзеле \"Фільтры, уключаныя перад абнаўленнем\", націсніце паўторна актываваць фільтры." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Варыянт 2. Усталюйце праграму AdGuard Ad Blocker: яна не мае абмежаванняў па правілах фільтрацыі. Атрымайце праграму AdGuard" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Варыянт 3. Калі вы задаволены ўключаным у цяперашні час фільтрам, закрыйце гэтае папярэджанне." + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Варыянт 3. Калі вы задаволены ўключанымі ў цяперашні час фільтрамі, закрыйце гэтае папярэджанне." + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Дасягнуты ліміт — некаторыя фільтры былі адключана" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Вось што вы робіце далей" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Выдаліць іншыя блакіроўшчыкі рэкламы" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Пашырэнні браўзера маюць агульны ліміт правіл. Выдаленне іншых блакіроўшчыкаў рэкламы можа вызваліць больш правіл для AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Кіраваць пашырэннямі" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Праглядзець даступныя фільтры" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Уключыце фільтры, якія вам патрэбны. Моўныя і фільтры прыватнасці могуць выкарыстоўваць шмат правіл" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Перайсці да фільтраў" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Усталюйце праграму для камп'ютараў" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Выдаліце абмежаванні правілаў і атрымайце пашыраную абарону, якая працуе ва ўсіх браўзерах" + }, + "options_all_limits_exceeded_warning": { + "message": "Вы дасягнулі ліміту актыўных убудаваных правілаў. Ваш браўзер змяніў спіс актыўных убудаваных фільтраў. Колькасць уключаных фільтраў змянілася з %expected% на %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Вы дасягнулі ліміту актыўных убудаваных правілаў у браўзеры. Ваш браўзер скараціў спіс актыўных убудаваных фільтраў з %expected% да %current%" + }, + "options_limits_warning_static_filters": { + "message": "Вы дасягнулі ліміту актыўных убудаваных фільтраў. %maximum% з %current% фільтраў уключана. Каб актываваць новыя правілы, адключыце некаторыя ўбудаваныя фільтры." + }, + "options_limits_warning_static_filters_browser": { + "message": "Вы дасягнулі ліміту актыўных убудаваных фільтраў у браўзеры. %maximum% з %current% фільтраў уключана. Каб актываваць новыя фільтры, адключыце некаторыя ўбудаваныя" + }, + "options_limits_warning_static_rules": { + "message": "Вы дасягнулі ліміту актыўных убудаваных правілаў. %maximum% з %current% правілаў уключана. Каб актываваць новыя правілы, адключыце некаторыя ўбудаваныя фільтры." + }, + "options_limits_warning_static_rules_browser": { + "message": "Вы дасягнулі ліміту актыўных убудаваных правілаў у браўзеры. Каб актываваць новыя правілы, адключыце некаторыя ўбудаваныя фільтры" + }, + "options_limits_warning_static_regex_rules": { + "message": "Вы дасягнулі ліміту актыўных правілаў рэгулярных выразаў. %maximum% з %current% правілаў рэгулярных выразаў уключана. Каб актываваць новыя правілы, адключыце некаторыя ўбудаваныя фільтры." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Вы дасягнулі ліміту актыўных убудаваных правілаў рэгулярных выразаў. Каб актываваць новыя правілы, адключыце некаторыя ўбудаваныя фільтры" + }, + "options_limits_warning_dynamic_rules": { + "message": "Вы дасягнулі ліміту правілаў, дададзеных карыстальнікам. %maximum% з %current% правілаў уключана." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Вы дасягнулі ліміту правілаў, дададзеных карыстальнікам. %maximum% з %current% правілаў уключана. Каб дадаць новыя правілы, выдаліце некаторыя існуючыя" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Вы дасягнулі мяжы карыстальніцкіх небяспечных правілаў. %maximum% з %current% небяспечных правілаў актыўныя." + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Вы дасягнулі ліміту правілаў рэгулярных выразаў, дададзеных карыстальнікам. %maximum% з %current% правілаў рэгулярных выразаў уключана." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Вы дасягнулі ліміту правілаў рэгулярных выразаў, дададзеных карыстальнікам. %maximum% з %current% правілаў уключана. Каб дадаць новыя правілы рэгулярных выразаў, выдаліце некаторыя існуючыя" + }, + "options_developer_mode_required": { + "message": "Ваш браўзер абмяжоўвае некаторыя тыпы правілаў. Каб ужыць усе правілы, уключыце Рэжым распрацоўшчыка ў наладах пашырэння вашага браўзера", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_allow_user_scripts_required": { + "message": "Ваш браўзер абмяжоўвае некаторыя тыпы правілаў. Каб ужыць усе правілы, уключыце Дазволіць карыстальніцкія сцэнары у наладах пашырэння вашага браўзера", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_developer_mode_required": { + "message": "Каб выкарыстоўваць карыстальніцкія фільтры, уключыце Рэжым распрацоўшчыка у наладах пашырэння вашага браўзера", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_allow_user_scripts_required": { + "message": "Каб выкарыстоўваць карыстальніцкія фільтры, уключыце Дазволіць карыстальніцкія сцэнары ў наладах пашырэння вашага браўзера", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_show_adguard_full_version_title": { + "message": "Паказваць інфармацыю аб поўнай версіі AdGuard" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Уся статыстыка выкарыстання даных будзе назаўсёды выдалена" + }, + "options_show_app_updated_notification": { + "message": "Апавяшчаць аб абнаўленні пашырэння" + }, + "options_open_log": { + "message": "Адкрыць журнал фільтрацыі" + }, + "options_reset_stats": { + "message": "Ачысціць статыстыку" + }, + "options_reset_stats_done": { + "message": "Статыстыка скінута" + }, + "options_reset_settings": { + "message": "Скінуць налады" + }, + "options_reset_settings_done": { + "message": "Налады былі скінуты" + }, + "options_reset_settings_error": { + "message": "Памылка пры скіданні налад" + }, + "options_collect_hit_stats_title": { + "message": "Дапамагаць з распрацоўкай фільтраў AdGuard" + }, + "options_collect_hit_stats_desc": { + "message": "Адпраўляе ананімную статыстыку пра выкарыстанне фільтра рэкламы ў AdGuard. Даведацца больш" + }, + "options_show_context_menu_title": { + "message": "Дадаць элемент AdGuard у кантэкстнае меню браўзера" + }, + "options_use_optimized_filters": { + "message": "Ужыць аптымізаваныя фільтры" + }, + "options_use_optimized_filters_desc": { + "message": "Выкарыстоўвае больш кароткія версіі фільтраў толькі з самымі папулярнымі правіламі для эканоміі трафіку. Лепш падыходзіць для мабільных браўзераў" + }, + "options_privacy_title": { + "message": "Абарона ад сачэння" + }, + "options_privacy_desc": { + "message": "Абараняе вашу актыўнасць у сетцы і асабістыя даныя ад праграм сачэння" + }, + "options_hide_referrer_title": { + "message": "Схаваць Referrer ад старонніх рэсурсаў" + }, + "options_hide_referrer_desc": { + "message": "Не дазваляйце староннім рэсурсам ведаць, які вэб-сайт вы наведваеце" + }, + "options_hide_search_queries_title": { + "message": "Схаваць пошукавыя запыты" + }, + "options_hide_search_queries_desc": { + "message": "Хавае вашы пошукавыя запыты з вэб-сайтаў, якія наведваюцца праз вынікі пошукавай сістэмы" + }, + "options_send_not_track_title": { + "message": "Прасіць вэб-сайты не адсочваць мяне" + }, + "options_send_not_track_desc": { + "message": "Адпраўляйце сігналы Global Privacy Control і Do Not Track на сайты, якія вы наведваеце" + }, + "options_stripped_tracking_parameters": { + "message": "Параметры адсочвання выдалены" + }, + "options_modified_first_party_cookie": { + "message": "Першасныя файлы cookie зменены" + }, + "options_modified_third_party_cookie": { + "message": "Староннія файлы cookie зменены" + }, + "options_remove_client_data_title": { + "message": "Выдаліць загаловак X-Client-Data" + }, + "options_remove_client_data_desc": { + "message": "Блакаваць адпраўку браўзарам Google Chrome інфармацыі аб версіі і змяненнях на дамены Google" + }, + "options_disable_webrtc_title": { + "message": "Блакіраваць WebRTC" + }, + "options_disable_webrtc_desc": { + "message": "Блакіруе WebRTC, які можа раскрыць ваш рэальны IP-адрас нават пры выкарыстанні проксі або VPN. Некаторыя месенджары, платформы трансляцый або гульні могуць не працаваць належным чынам" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Прадухіліць уцечкі IP-адраса праз WebRTC" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Прымушае WebRTC выкарыстоўваць больш строгую палітыку IP-адраса, каб дапамагчы схаваць ваш сапраўдны IP-адрас, калі вы выкарыстоўваеце проксі-сервер або VPN" + }, + "options_strip_tracking_params_title": { + "message": "Выдаляць параметры адсочвання з URL-адрасоў" + }, + "options_strip_tracking_params_description": { + "message": "Выдаляе параметры адсочвання з URL-адрасоў старонак з дапамогай функцыі «Фільтр адсочвання па URL-адрасе AdGuard»" + }, + "options_block_known_trackers_title": { + "message": "Блакіраваць праграмы сачэння" + }, + "options_block_known_trackers_description": { + "message": "Блакіруе праграмы сачэння і вэб-аналітыку з дапамогай фільтра AdGuard Tracking Protection" + }, + "options_third_party_title": { + "message": "Выдаляць староннія файлы cookie" + }, + "options_third_party_desc": { + "message": "Абмяжоўвае тэрмін дзеяння файлаў cookie старонніх асоб, што не дазваляе рэкламадаўцам адсочваць вашу паводзіны на некалькіх старонках" + }, + "options_block_cookies_lifetime": { + "message": "Каб заблакіраваць файлы cookies, усталюйце час жыцця ў 0" + }, + "options_third_party_block_cookies_warning": { + "message": "У выпадку блакіроўкі гэтых файлаў cookie магчыма, што вам давядзецца паўторна ўваходзіць на некаторыя вэб-сайты або сутыкнуцца з іншымі праблемамі, якія звязаны з файламі cookie" + }, + "options_lifetime_minutes": { + "message": "Час жыцця, у хвілінах" + }, + "options_first_party_title": { + "message": "Выдаліць асноўныя файлы cookies (не рэкамендуецца)" + }, + "options_first_party_desc": { + "message": "Забараняе вэб-сайтам запамінаць вашы дадзеныя, такія як уліковыя даныя для ўваходу і моўныя параметры, шляхам абмежавання тэрміну дзеяння асноўных файлаў cookie" + }, + "options_first_party_block_cookies_warning": { + "message": "У выпадку блакіроўкі гэтых файлаў cookie некаторыя вэб-сайты могуць часткова або цалкам не працаваць" + }, + "options_anonymized_usage_data_title": { + "message": "Адпраўляць ананімныя даныя аб выкарыстанні пашырэння" + }, + "options_anonymized_usage_data_description": { + "message": "Адпраўляе ананімную статыстыку па выкарыстанні пашырэння ў AdGuard. " + }, + "options_anonymized_usage_data_modal_title": { + "message": "Даныя аб выкарыстанні пашырэння" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Гэтыя даныя ўключаюць:" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Назвы экранаў, з якімі вы ўзаемадзейнічаеце" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Назвы кнопак, якія вы націскаеце" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Ідэнтыфікатары сеансаў" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Нам патрэбна гэтая інфармацыя, каб аналізаваць і паляпшаць функцыянальнасць AdGuard" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Гэтыя даныя ананімныя і выкарыстоўваюцца толькі ўнутры кампаніі. Мы ніколі не перадаём іх трэцім асобам" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Зразумела" + }, + "popup_abuse_site": { + "message": "Паведаміць аб праблеме" + }, + "popup_open_filtering_log": { + "message": "Адкрыць журнал фільтрацыі" + }, + "popup_tabs": { + "message": "Укладкі" + }, + "popup_tab_actions": { + "message": "Дзеянні" + }, + "popup_tab_statistics": { + "message": "Статыстыка" + }, + "popup_statistics_time_label": { + "message": "Статыстыка за перыяд часу" + }, + "popup_statistics_time_day": { + "message": "24 гадзіны" + }, + "popup_statistics_time_week": { + "message": "7 дзён" + }, + "popup_statistics_time_month": { + "message": "30 дзён" + }, + "popup_statistics_time_year": { + "message": "1 год" + }, + "popup_switch_button": { + "message": "Абарона для бягучага вэб-сайта" + }, + "popup_limits_exceeded_warning": { + "message": "Ваш браўзер змяніў спіс актыўных убудаваных фільтраў" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Ліміт правілаў перавышаны ў пашырэнні AdGuard для браўзера. Праверце свае фільтры і адключыце тыя, якія вам не патрэбны" + }, + "short_name": { + "message": "AdGuard" + }, + "options_about": { + "message": "Аб праграме" + }, + "options_privacy_policy": { + "message": "Палітыка прыватнасці" + }, + "options_acknowledgment": { + "message": "Падзякі" + }, + "options_github": { + "message": "GitHub" + }, + "options_about_version": { + "message": "Версія" + }, + "options_about_update_available": { + "message": "Версія %version% даступная. Яна будзе спампавана і ўсталявана аўтаматычна." + }, + "options_about_libs": { + "message": "Выкарыстаныя бібліятэкі" + }, + "options_copyright": { + "message": "Усе правы абаронены." + }, + "options_remove_filter_confirm_modal_title": { + "message": "Выдаліць гэты фільтр?" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Выдаліць" + }, + "options_nav_better_than_extension": { + "message": "Чаму праграма AdGuard лепшая за пашырэнне?" + }, + "options_nav_compare": { + "message": "Параўнаць" + }, + "options_desktop_app_promo_title": { + "message": "Пашырэнне абараняе толькі браўзер" + }, + "options_desktop_app_promo_description": { + "message": "Праграмы, такія як Spotify, Discord або Zoom, могуць усё яшчэ паказваць рэкламу і адсочваць вашу актыўнасць" + }, + "options_desktop_app_promo_subdescription": { + "message": "Наша праграма для камп'ютараў можа абараніць вас ад іх" + }, + "options_desktop_app_promo_button_windows": { + "message": "Атрымаць AdGuard для Windows" + }, + "options_desktop_app_promo_button_mac": { + "message": "Атрымаць AdGuard для Mac" + }, + "options_desktop_app_promo_button_linux": { + "message": "Атрымаць AdGuard для Linux" + }, + "options_filters_search": { + "message": "Пошук" + }, + "options_filters_search_filter": { + "message": "Пошук фільтраў" + }, + "options_about_title": { + "message": "Браўзарнае пашырэнне AdGuard" + }, + "group_description_adblocking": { + "message": "Наладзьце блакаванне рэкламы, каб раз і назаўжды пазбыцца надакучлівых банараў, усплыўных вокнаў, відэарэкламы і іншых раздражняльнікаў" + }, + "group_description_stealth": { + "message": "Абараніце асабістыя звесткі ад анлайн-трэкераў, заблакаваўшы ўсе вядомыя папулярныя метады асочвання" + }, + "group_description_social": { + "message": "Схавайце непатрэбныя кнопкі «Падабаецца», «Падзяліцца» і іншыя віджэты сацыяльных сетак" + }, + "group_description_annoyances": { + "message": "Прыбярыце ўсплыўныя вокны і іншыя раздражняльныя апавяшчэнні, напрыклад апавяшчэнні пра файлы cookie" + }, + "group_description_security": { + "message": "Абараніце сябе ад шкодных праграм, фішынгу і іншых анлайн-пагроз" + }, + "group_description_miscellaneous": { + "message": "Дадатковыя налады, каб зрабіць вэб-сёрфінг яшчэ больш зручным з дапамогай AdGuard" + }, + "group_description_custom": { + "message": "Стварайце свае фільтры, каб яшчэ больш дэталёва наладзіць вэб-фільтрацыю пад сябе." + }, + "group_description_lang": { + "message": "Не абмяжоўвайце сябе. Блакіруйце рэкламу на вэб-сайтах з рознымі мовамі" + }, + "fullscreen_user_rules_title": { + "message": "Правілы карыстальніка" + }, + "options_user_rules_editor_stub_title": { + "message": "Рэдактар адкрыты ў іншым акне" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Вашы правілы з'явяцца тут пасля таго, як вы яго зачыніце" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Перайсці ў рэдактар" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Адкрыць рэдактар у новым акне" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Выйсці з поўнаэкраннага рэжыму" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Ачысціць статыстыку?" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Ачысціць" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Скінуць налады?" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Усе налады будуць скінуты да значэнняў па змаўчанні" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Скінуць" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Інвертаваць спіс дазволеных?" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Рэклама і праграмы сачэння будуць блакіравацца толькі на вэб-сайтах са спісу дазволеных" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Інвертаваць" + }, + "options_confirm_modal_cancel_button": { + "message": "Скасаваць" + }, + "options_import_configuration_confirm_title": { + "message": "Імпартаванне налад" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Імпартаваныя налады заменяць вашы цяперашнія. Іншыя налады не будуць закрануты" + }, + "options_import_configuration_confirm_button": { + "message": "Імпартаваць" + }, + "options_import_configuration_applying_title": { + "message": "Імпартаванне..." + }, + "options_import_configuration_applying_subtitle": { + "message": "Замена бягучых налад на імпартаваныя. Фільтрацыя будзе адключана падчас імпартавання" + }, + "options_import_configuration_success_title": { + "message": "Усё гатова" + }, + "options_import_configuration_success_subtitle": { + "message": "Налады паспяхова імпартаваны" + }, + "options_import_configuration_success_button": { + "message": "Закрыць" + }, + "options_import_configuration_error_title": { + "message": "Не ўдалося імпартаваць налады" + }, + "options_import_configuration_error_subtitle": { + "message": "Праверце спасылку для імпарту і паспрабуйце яшчэ раз. Звярніцеся ў службу падтрымкі, калі гэта не дапамагае" + }, + "options_import_configuration_error_button": { + "message": "Закрыць" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Упрыгожыць" + }, + "filtering_log_details_modal_back_button": { + "message": "Вярнуцца да запыту" + }, + "filtering_log_details_modal_try_again": { + "message": "Паспрабаваць яшчэ раз" + }, + "filtering_log_tag_request_source": { + "message": "Крыніца запыту" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Уласныя запыты" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Староннія запыты" + }, + "filtering_log_tag_request_status": { + "message": "Статус фільтрацыі" + }, + "filtering_log_tag_tooltip_regular": { + "message": "Запыты, апрацаваныя без фільтрацыі" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Дазволеныя і разблакіраваныя запыты" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Заблакіраваныя запыты" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Змененыя запыты" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Запыты, на якія ўплываюць правілы карыстальнікаў" + }, + "filtering_log_tag_request_type": { + "message": "Тып запыту" + }, + "filtering_log_tag_tooltip_html": { + "message": "Дакументы і паддакументы" + }, + "filtering_log_tag_tooltip_css": { + "message": "Табліцы стыляў" + }, + "filtering_log_tag_tooltip_js": { + "message": "Сцэнарыі" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Запыты XMLHttpRequests і fetch" + }, + "filtering_log_tag_tooltip_img": { + "message": "Відарысы" + }, + "filtering_log_tag_tooltip_media": { + "message": "Медыя" + }, + "filtering_log_tag_tooltip_other": { + "message": "Шрыфты, пінгі, WebRTC, WebSocket..." + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Старонні запыт" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Метод запыту HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Код статусу HTTP" + }, + "filtering_log_assumed_rule_description": { + "message": "Гэта прапанаванае правіла. Для падрабязнай інфармацыі глядзіце нашу Ведамасную базу" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Захоўваць журнал?" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Гэтая опцыя можа значна павялічыць выкарыстанне памяці" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Больш не паказваць" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Так, захоўваць" + }, + "options_stealth_general_title": { + "message": "Агульныя" + }, + "options_stealth_tracking_methods_title": { + "message": "Метады адсочвання" + }, + "options_stealth_miscellaneous_title": { + "message": "Рознае" + }, + "options_coming_soon": { + "message": "Неўзабаве з'явіцца" + }, + "blocking_pages_malware": { + "message": "Гэтая старонка на %host% была адзначана як старонка са шкодным ПЗ. Яна была заблакіравана ў адпаведнасці з вашымі наладамі бяспекі." + }, + "blocking_pages_phishing": { + "message": "Гэтая старонка на %host% была адзначана як фішынгавая. Яна была заблакіравана ў адпаведнасці з вашымі наладамі бяспекі." + }, + "blocking_pages_advanced_button": { + "message": "Дадаткова" + }, + "blocking_pages_more_info_button": { + "message": "Больш падрабязна" + }, + "blocking_pages_page_title": { + "message": "У доступе адмоўлена" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard заблакіраваў доступ да гэтай старонкі" + }, + "blocking_pages_rule_header_title": { + "message": "Заблакіравана AdGuard" + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard прадухіліў загрузку гэтай старонкі з прычыны наступнага правіла фільтрацыі:" + }, + "blocking_pages_btn_go_back": { + "message": "Вярнуцца" + }, + "blocking_pages_btn_proceed": { + "message": "Усё роўна працягнуць" + }, + "text_collapser_show_default": { + "message": "Паказаць поўны тэкст" + }, + "text_collapser_hide_default": { + "message": "Схаваць поўны тэкст" + }, + "close_button_title": { + "message": "Закрыць" + }, + "clear_button_title": { + "message": "Ачысціць" + }, + "update_check": { + "message": "Праверыць абнаўленні" + }, + "update_checking_in_progress": { + "message": "Праверка абнаўленняў..." + }, + "update_available_title": { + "message": "Даступны абнаўленні" + }, + "update_available_desc": { + "message": "Каб эфектыўна блакаваць рэкламу, абнаўляйце пашырэнне і фільтры" + }, + "update_available_update_btn": { + "message": "Абнавіць" + }, + "update_installing_in_progress_title": { + "message": "Абнаўленне пашырэння і фільтраў..." + }, + "update_installing_in_progress_desc": { + "message": "Пашырэнне перазапусціцца пасля абнаўлення" + }, + "update_not_needed": { + "message": "Ваша пашырэнне і фільтры абноўленыя" + }, + "update_failed_text": { + "message": "Не ўдалося завяршыць абнаўленне" + }, + "update_success_text": { + "message": "Пашырэнне і фільтры абноўлены" + }, + "update_failed_try_again_btn": { + "message": "Паспрабаваць яшчэ раз" + }, + "filtering_modal_applied_rules": { + "message": "| Ужытае правіла | Ужытыя правілы | Ужытых правіл", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_assumed_rules": { + "message": "| Меркаванае правіла: | Меркаваныя правілы: | Меркаваныя правілы:", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_original_rules": { + "message": "| Арыгінальнае правіла: | Арыгінальныя правілы: | Арыгінальныя правілы:", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_declarative_rule": { + "message": "Правіла DNR:" + }, + "opera_search_permission_warning": { + "message": "Каб блакіраваць пошукавую рэкламу, дазвольце доступ да вынікаў пошуку на старонцы ў наладах браўзера" + }, + "opera_search_permission_go_to_settings": { + "message": "Перайсці ў налады" + }, + "opera_search_permission_dont_show": { + "message": "Больш не паказваць" + } +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bg/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bg/messages.json new file mode 100644 index 0000000..96437c1 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bg/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% се активира автоматично." + }, + "alert_popup_filter_enabled_title": { + "message": "Автоматична активация на филтрите" + }, + "background_tab_title": { + "message": "Раздел за фон" + }, + "blocking_pages_advanced_button": { + "message": "Разширени" + }, + "blocking_pages_btn_go_back": { + "message": "Назад" + }, + "blocking_pages_btn_proceed": { + "message": "Продължете все пак" + }, + "blocking_pages_malware": { + "message": "Тази уеб страница в \u003Cstrong>%host%\u003C/strong> е докладвана като страница със зловреден софтуер и е блокирана въз основа на вашите предпочитания за сигурност." + }, + "blocking_pages_more_info_button": { + "message": "Повече информация" + }, + "blocking_pages_page_title": { + "message": "Отказан достъп" + }, + "blocking_pages_phishing": { + "message": "Тази уеб страница на адрес \u003Cstrong>%host%\u003C/strong> е докладвана като фишинг страница и е блокирана въз основа на вашите предпочитания за сигурност." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard не позволи тази страница да се зареди поради следното правило за филтриране" + }, + "blocking_pages_rule_header_title": { + "message": "Блокиран от AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard е блокирала достъпа до тази страница" + }, + "clear_button_title": { + "message": "Изчисти" + }, + "close_button_title": { + "message": "Затвори" + }, + "context_block_site_ads": { + "message": "Блокирайте реклами ръчно" + }, + "context_complaint_website": { + "message": "Съобщи за проблем" + }, + "context_disable_protection": { + "message": "Пауза на защитата AdGuard" + }, + "context_enable_protection": { + "message": "Пусни отново защитата AdGuard" + }, + "context_open_log": { + "message": "Дневник на филтрирането" + }, + "context_open_settings": { + "message": "AdGuard настройки" + }, + "context_security_report": { + "message": "Проверка на сигурността на уебсайта" + }, + "context_site_exception": { + "message": "Този сайт е в изключенията" + }, + "context_site_filtering_disabled": { + "message": "AdGuard не може да филтрира тази страница" + }, + "context_site_filtering_off": { + "message": "Забрани филтрирането на този сайт" + }, + "context_site_filtering_on": { + "message": "Разреши филтрирането на този сайт" + }, + "context_site_protection_disabled": { + "message": "AdGuard защитата е в пауза" + }, + "context_update_antibanner_filters": { + "message": "Провери за актуализации на филтрите" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ненадминато разширение на adblock, което блокира реклама и изскачащи прозорци в Facebook, YouTube и други сайтове." + }, + "filtering_clear_log_events": { + "message": "Изчисти дневника" + }, + "filtering_log_actions_menu": { + "message": "Действия в журнала за филтриране" + }, + "filtering_log_assumed_rule_description": { + "message": "Това е примерно правило. За подробности, вижте нашата \u003Ca>база знания\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Метод на HTTP заявка" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Код на състоянието на HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Заявка от трета страна" + }, + "filtering_log_details_modal_back_button": { + "message": "Обратно към заявката" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Разкрасяване на" + }, + "filtering_log_details_modal_try_again": { + "message": "Опитай пак" + }, + "filtering_log_filter_allowed": { + "message": "В белия списък" + }, + "filtering_log_filter_blocked": { + "message": "Блокирано" + }, + "filtering_log_filter_modified": { + "message": "Modified" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Потребителски филтър" + }, + "filtering_log_hide_referrer": { + "message": "Препратки, скрити от трети страни" + }, + "filtering_log_hide_search_queries": { + "message": "Вашите заявки за търсене са скрити" + }, + "filtering_log_in_allowlist": { + "message": "Сайтът е разрешен" + }, + "filtering_log_modified_rules": { + "message": "Изменени правила: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Да, запазване" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Тази опция може значително да увеличи използването на памет" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Да се запази дневник?" + }, + "filtering_log_preserve_log_off": { + "message": "Не запазвайте дневник" + }, + "filtering_log_preserve_log_on": { + "message": "Запазване на дневника" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Не показвай отново" + }, + "filtering_log_privacy_applied_rules": { + "message": "Защита от проследяване" + }, + "filtering_log_remove_client_data": { + "message": "Премахнато е заглавието на X-Client-Data" + }, + "filtering_log_search_string": { + "message": "Търси" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Търсене в разделите" + }, + "filtering_log_send_not_track": { + "message": "Изпратено заглавието Do-Not-Track" + }, + "filtering_log_status_allowed": { + "message": "В белия списък" + }, + "filtering_log_status_blocked": { + "message": "Блокирано" + }, + "filtering_log_status_modified": { + "message": "Modified" + }, + "filtering_log_status_processed": { + "message": "Обработен" + }, + "filtering_log_stealth_rules": { + "message": "Правила за защита при проследяване: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Произход на заявката" + }, + "filtering_log_tag_request_status": { + "message": "Статус на филтриране" + }, + "filtering_log_tag_request_type": { + "message": "Вид на заявката" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Разрешени и отблокирани заявки" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Блокирани заявки" + }, + "filtering_log_tag_tooltip_css": { + "message": "Таблици със стилове" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Заявки от първа страна" + }, + "filtering_log_tag_tooltip_html": { + "message": "Документи и поддокументи" + }, + "filtering_log_tag_tooltip_img": { + "message": "Изображения" + }, + "filtering_log_tag_tooltip_js": { + "message": "Скриптове" + }, + "filtering_log_tag_tooltip_media": { + "message": "Медия" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Модифицирани заявки" + }, + "filtering_log_tag_tooltip_other": { + "message": "Шрифтове, пингове, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Заявки, обработени без филтриране" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Заявки от трета страна" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Заявки, повлияни от потребителските правила" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests и заявки за извличане" + }, + "filtering_log_title": { + "message": "Дневник на филтрирането" + }, + "filtering_menu_open_filters": { + "message": "Customize" + }, + "filtering_modal_add_rule": { + "message": "ДОБАВИ" + }, + "filtering_modal_allow_title": { + "message": "Добавяне на правило за разрешаване" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Приложено правило | Приложени правила" + }, + "filtering_modal_apply_domains": { + "message": "Приложи за всички уебсайтове" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Примерно правило: | Примерни правила:" + }, + "filtering_modal_block": { + "message": "Блокирай" + }, + "filtering_modal_block_again": { + "message": "Блокирайте отново" + }, + "filtering_modal_block_title": { + "message": "Добавяне на правило за блокиране" + }, + "filtering_modal_converted_to": { + "message": "Преобразуван в:" + }, + "filtering_modal_cookie": { + "message": "Бисквитка:" + }, + "filtering_modal_copied": { + "message": "Копирано" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Копиране в клипборда" + }, + "filtering_modal_declarative_rule": { + "message": "DNR правило:" + }, + "filtering_modal_element": { + "message": "Елемент:" + }, + "filtering_modal_exception_title": { + "message": "Добави изключение" + }, + "filtering_modal_filter": { + "message": "Филтър" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Статус на филтриране" + }, + "filtering_modal_hide_full_element": { + "message": "Скрий пълния елемент" + }, + "filtering_modal_hide_full_rule": { + "message": "Скрий пълното правило" + }, + "filtering_modal_hide_full_url": { + "message": "Скриване на пълния URL адрес" + }, + "filtering_modal_important": { + "message": "Дайте по-висок приоритет на правилото" + }, + "filtering_modal_info_title": { + "message": "Детайли за запитването" + }, + "filtering_modal_open_in_new_tab": { + "message": "Отвори в нов таб" + }, + "filtering_modal_options_desc": { + "message": "Опции" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Оригинално правило: | Оригинални правила:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Какво трябва да бъде разрешено" + }, + "filtering_modal_patterns_desc_block": { + "message": "Какво трябва да бъде блокирано" + }, + "filtering_modal_preview_request_button": { + "message": "Преглед" + }, + "filtering_modal_preview_title": { + "message": "Преглед" + }, + "filtering_modal_privacy": { + "message": "Защита от проследяване" + }, + "filtering_modal_remove_allowlist": { + "message": "Премахване от списъка с разрешения" + }, + "filtering_modal_remove_param": { + "message": "Премахване на параметрите на заявката" + }, + "filtering_modal_remove_user": { + "message": "Премахни от потребителските филтри" + }, + "filtering_modal_rule": { + "message": "Правило:" + }, + "filtering_modal_rule_text_desc": { + "message": "Правило" + }, + "filtering_modal_rules": { + "message": "Правила:" + }, + "filtering_modal_show_full_element": { + "message": "Покажи пълния елемент" + }, + "filtering_modal_show_full_rule": { + "message": "Покажи пълното правило" + }, + "filtering_modal_show_full_url": { + "message": "Покажи пълния URL адрес" + }, + "filtering_modal_source": { + "message": "Източник" + }, + "filtering_modal_status_text_desc": { + "message": "Състояние" + }, + "filtering_modal_status_text_error": { + "message": "Неуспешно зареждане на прегледа. Моля, опитайте отново" + }, + "filtering_modal_status_text_loading": { + "message": "Зареждане..." + }, + "filtering_modal_third_party": { + "message": "Приложи само към заявки от трети страни" + }, + "filtering_modal_type": { + "message": "Тип" + }, + "filtering_modal_unblock": { + "message": "Деблокирай" + }, + "filtering_refresh_tab_short": { + "message": "Обнови" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Опресни страницата" + }, + "filtering_table_action": { + "message": "Действие" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Нищо не е намерено. \u003Creset>Деактивирайте филтрите\u003C/reset> или \u003Crefresh>презаредете страницата\u003C/refresh>, за да видите записите в логовете" + }, + "filtering_table_filter": { + "message": "Филтър" + }, + "filtering_table_open_details": { + "message": "Отворени детайли" + }, + "filtering_table_rule": { + "message": "Правило за филтриране" + }, + "filtering_table_source": { + "message": "Източник" + }, + "filtering_table_status": { + "message": "Състояние" + }, + "filtering_table_type": { + "message": "Тип" + }, + "filtering_type_all": { + "message": "Всички" + }, + "filtering_type_other": { + "message": "Други" + }, + "filters_download_loading": { + "message": "Моля, изчакайте, докато базата данни с филтри се зарежда..." + }, + "filters_download_title": { + "message": "Базата данни с филтри се зарежда..." + }, + "fullscreen_user_rules_title": { + "message": "Потребителски филтър" + }, + "group_description_adblocking": { + "message": "Конфигурирайте блокирането на реклами тук, за да се справите с досадните банери, изскачащи прозорци, видео реклами и други подобни, веднъж завинаги" + }, + "group_description_annoyances": { + "message": "Премахнете изскачащите прозорци и други досадни известия като известията за бисквитки" + }, + "group_description_custom": { + "message": "Създайте свои собствени филтри, за да настроите филтрирането на уеб според предпочитанията си." + }, + "group_description_lang": { + "message": "Не се ограничавайте — блокирайте рекламите на сайтове на всякакви езици" + }, + "group_description_miscellaneous": { + "message": "Още настройки за допълнително конфигуриране на сърфирането в интернет с AdGuard" + }, + "group_description_security": { + "message": "Защитете се от зловреден софтуер, фишинг и други онлайн заплахи" + }, + "group_description_social": { + "message": "Скрийте нежеланите бутони \"Харесвам\"/\"Сподели\" и други уиджети на социални медии" + }, + "group_description_stealth": { + "message": "Защитете самоличността си и чувствителната си лична информация от хиляди онлайн проследяващи устройства, като блокирате всички известни популярни методи за проследяване." + }, + "name": { + "message": "AdGuard рекламен блокер" + }, + "opera_search_permission_dont_show": { + "message": "Не показвай отново" + }, + "opera_search_permission_go_to_settings": { + "message": "Отидете в Настройки" + }, + "opera_search_permission_warning": { + "message": "За да блокирате реклами в търсенето, разрешете достъп до резултатите от страницата за търсене в настройките на браузъра" + }, + "options_about": { + "message": "За нас" + }, + "options_about_libs": { + "message": "Използвани библиотеки" + }, + "options_about_title": { + "message": "Разширение на браузъра AdGuard" + }, + "options_about_update_available": { + "message": "Версия %version% е налична. Тя ще бъде изтеглена и инсталирана автоматично." + }, + "options_about_version": { + "message": "Версия" + }, + "options_acknowledgment": { + "message": "Благодарности" + }, + "options_add_custom_filter": { + "message": "Добавете персонализиран филтър" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Добави" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Проверка на вашия филтър..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL върна уеб страница вместо списък с филтри. Моля, предоставете директен линк към файла на филтъра." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Моля, опитайте отново или се свържете с поддръжката" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Неуспешно добавяне на външен филтър" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Име на филтъра:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Доверен" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Някои правила за филтриране могат значително да променят вашето преживяване при сърфиране и да компрометират вашата приватност. Убедете се, че използвате само филтри от разработчици, на които се доверявате" + }, + "options_add_custom_filter_modal_title": { + "message": "Добави персонализиран филтър" + }, + "options_all_limits_exceeded_warning": { + "message": "Достигнали сте лимита на активните вградени правила. Вашият браузър е променил списъка с активни вградени филтри. Броят на активираните филтри се е променил от %expected% на %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Достигнали сте лимита на браузъра си за активни вградени правила. Вашият браузър е намалил списъка с активни вградени филтри от %expected% на %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Браузърът ви ограничава \u003Cexternal-link>някои видове правила\u003C/external-link>. За да приложите всички правила, разрешете \u003Cb>Разрешаване на потребителски скриптове\u003C/b> в \u003Csettings-link>настройките на разширението на\u003C/settings-link> браузъра" + }, + "options_allowlist": { + "message": "Списък с разрешения" + }, + "options_allowlist_alert_invert": { + "message": "Allowlist е обърнат. Рекламите се блокират само в уебсайтовете, добавени в него." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Спри обръщането\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard не блокира реклами и тракери на уебсайтове от списъка" + }, + "options_allowlist_invalid_entries": { + "message": "За да запазите, оставете само домейни или URL. Тези трябва да бъдат поправени: %entries%" + }, + "options_allowlist_invert": { + "message": "Инвертиране на списъка с разрешения" + }, + "options_allowlist_invert_desc": { + "message": "Блокира реклами и тракери само на сайтове от списъка с разрешени" + }, + "options_allowlist_leave_subtitle": { + "message": "Вашите промени в списъка с разрешения ще бъдат изгубени" + }, + "options_allowlist_menu": { + "message": "Действия на allowlist" + }, + "options_anonymized_usage_data_description": { + "message": "Изпраща анонимна статистика за използването на разширението към AdGuard. \u003Cbutton>Научете повече\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Разбрах" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Тези данни включват:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Имена на бутоните, върху които кликвате" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Имена на екрани, с които взаимодействате" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Идентификатори на сесии" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Тези данни са анонимни и се използват само вътрешно. Никога не ги споделяме с трети страни" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Нуждаем се от тази информация, за да анализираме и подобрим функционалността на AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Данни за употреба на разширението" + }, + "options_anonymized_usage_data_title": { + "message": "Изпратете анонимизирани данни за употребата на разширението" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Този персонализиран филтър вече е добавен" + }, + "options_antibanner_custom_group": { + "message": "Персонализиране" + }, + "options_antibanner_custom_group_description": { + "message": "Позволява ви да добавяте филтри от файл или URL" + }, + "options_antibanner_rules_count": { + "message": "Правила: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Обновено: %date%" + }, + "options_block_acceptable_ads": { + "message": "Блокиране на реклами за търсене и самореклама на уебсайтове" + }, + "options_block_acceptable_ads_desc": { + "message": "Блокира реклами в резултатите от търсене и самореклама на уебсайтове. \u003Ca>Научете повече\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "За да блокирате бисквитките, задайте срока на живот на 0" + }, + "options_block_known_trackers_description": { + "message": "Блокира тракерите и инструментите за уеб анализ с филтъра „Защита на AdGuard срещу проследяване“" + }, + "options_block_known_trackers_title": { + "message": "Блокиране на тракери" + }, + "options_check_update_progress": { + "message": "Проверка..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Изчистване" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Всички статистики за използването на данни ще бъдат изтрити завинаги" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Изчистване на статистиката?" + }, + "options_clipboard_permission_warning": { + "message": "За да копирате и поставяте правила, разрешете на AdGuard да има достъп до клипборда. \u003Ca>Разреши\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Изпраща анонимна статистика за използването на филтрите за реклами към AdGuard. \u003Ca>Научете повече\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Помогнете за разработването на филтрите на AdGuard" + }, + "options_coming_soon": { + "message": "Очаквайте скоро" + }, + "options_confirm_modal_cancel_button": { + "message": "Отказ" + }, + "options_copyright": { + "message": "Всички права запазени." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "За да използвате потребителски филтри, разрешете \u003Cb>Разрешаване на потребителски скриптове\u003C/b> в \u003Csettings-link>настройките на разширението на\u003C/settings-link> браузъра" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "За да използвате персонализирани филтри, разрешете \u003Cb>режима за разработчици\u003C/b> в \u003Csettings-link>настройките на разширението на\u003C/settings-link> браузъра." + }, + "options_desktop_app_promo_button_linux": { + "message": "Вземете AdGuard за Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Вземете AdGuard за Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Вземете AdGuard за Windows" + }, + "options_desktop_app_promo_description": { + "message": "Приложения като Spotify, Discord или Zoom все още могат да показват реклами и проследяват вашата активност" + }, + "options_desktop_app_promo_subdescription": { + "message": "Нашето десктоп приложение може да ви защити от тях" + }, + "options_desktop_app_promo_title": { + "message": "Разширението защитава само браузъра" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Браузърът ви ограничава \u003Cexternal-link>някои видове правила\u003C/external-link>. За да приложите всички правила, разрешете \u003Cb>режима за разработчици\u003C/b> в \u003Csettings-link>настройките на разширенията на\u003C/settings-link> браузъра си" + }, + "options_disable_webrtc_desc": { + "message": "Блокира WebRTC, което може да разкрие вашия реален Потребителски IP адрес, дори ако използвате прокси или VPN. Някои месинджъри, стрийминг платформи или игри може да спрат да работят правилно" + }, + "options_disable_webrtc_title": { + "message": "Блокирай WebRTC" + }, + "options_discuss": { + "message": "Обсъдете AdGuard" + }, + "options_do_you_like_question": { + "message": "Харесва ли ви AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Излизане от режима на прозореца" + }, + "options_editor_indicator_saved": { + "message": "Запазено" + }, + "options_editor_indicator_saving": { + "message": "Се запазва..." + }, + "options_editor_leave_cancel": { + "message": "Обратно към редактиране" + }, + "options_editor_leave_confirm": { + "message": "Да, напусни" + }, + "options_editor_leave_title": { + "message": "Да напуснете без запазване?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Отваряне на редактора в нов прозорец" + }, + "options_editor_save": { + "message": "Запази" + }, + "options_editor_save_error": { + "message": "Неуспешно запазване на промените. Опитайте отново или се свържете с поддръжката" + }, + "options_empty_custom_filter": { + "message": "Все още нямате персонализирани филтри" + }, + "options_enable_autodetect_filter": { + "message": "Автоматично активиране на най-подходящите филтри" + }, + "options_enable_autodetect_filter_desc": { + "message": "Открива езика на уебсайта и активира подходящите филтри" + }, + "options_export_settings": { + "message": "Експортиране на настройки" + }, + "options_filters": { + "message": "Филтри" + }, + "options_filters_annoyances_consent_description": { + "message": "Вие се намеравате да активирате един или повече филтри за дразнители. Те блокират елементи, които или нямат връзка със съдържанието на уебсайта, или имат, но са досадни за вашето потребителско изживяване. Собствениците на уебсайтове може да смятат тези елементи за задължителни: ако ги блокирате, може да нарушите техните условия; някои функционалности на уебсайтове може да бъдат недостъпни или да не работят правилно. Разбирате и се съгласявате, че носите изцяло отговорност за спазването на условията за използване на уебсайтовете, които посещавате, и че AdGuard не носи отговорност за вашето спазване на условията за използване на уебсайтовете, които посещавате чрез нашите продукти." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Включи" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Начална страница" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "За подробности относно това, което филтрите за дразнения на AdGuard блокират, вижте \u003Ca>Политика за филтриране\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Активиране на филтри?" + }, + "options_filters_annoyances_consent_title": { + "message": "Моля, прочетете внимателно, преди да активирате филтрите за раздразнение" + }, + "options_filters_back_button": { + "message": "Назад" + }, + "options_filters_empty_title": { + "message": "Нищо не е намерено" + }, + "options_filters_enabled": { + "message": "Включено:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% и %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% и %more% още" + }, + "options_filters_enabled_per_group": { + "message": "Включено: %current% от %total%" + }, + "options_filters_filter_link": { + "message": "Отидете на началната страница" + }, + "options_filters_filter_tags": { + "message": "Тагове за филтриране" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Вие избирате да се доверите на този филтър" + }, + "options_filters_filter_updated": { + "message": "актуализиран:" + }, + "options_filters_filter_version": { + "message": "версия:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Общ брой правила: %num%" + }, + "options_filters_last_checked": { + "message": "Последна проверка: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Всички филтри" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Изключено" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Включено" + }, + "options_filters_no_enabled": { + "message": "Няма активирани филтри" + }, + "options_filters_of_group": { + "message": "Филтри от групата „%groupName%“" + }, + "options_filters_search": { + "message": "Търси" + }, + "options_filters_search_filter": { + "message": "Филтър за търсене" + }, + "options_first_party_block_cookies_warning": { + "message": "Ако блокирате тези бисквитки, някои уебсайтове могат да се развалят или да спрат да работят" + }, + "options_first_party_desc": { + "message": "Предотвратява уебсайтовете да запомнят твоите данни, като идентификационни данни за вход и езикови предпочитания, чрез ограничаване на живота на бисквитките от основната страна" + }, + "options_first_party_title": { + "message": "Изтриване на бисквитки от първа страна (не се препоръчва)" + }, + "options_general_settings": { + "message": "Общи настройки" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Предотвратете трети страни да знаят какъв уебсайт посещавате" + }, + "options_hide_referrer_title": { + "message": "Скрива Referer от странични ресурси" + }, + "options_hide_search_queries_desc": { + "message": "Скрива търсенията ти от уебсайтовете, посетени чрез резултати от търсачки" + }, + "options_hide_search_queries_title": { + "message": "Скриване на твоите търсения" + }, + "options_import_configuration_applying_subtitle": { + "message": "Заменят текущите ви настройки с импортираните. Филтрирането е деактивирано по време на импортирането" + }, + "options_import_configuration_applying_title": { + "message": "Импортира се..." + }, + "options_import_configuration_confirm_button": { + "message": "Импортирай" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Импортираните настройки ще заменят текущите. Други настройки няма да бъдат засегнати" + }, + "options_import_configuration_confirm_title": { + "message": "Импорт на настройките" + }, + "options_import_configuration_error_button": { + "message": "Затвори" + }, + "options_import_configuration_error_subtitle": { + "message": "Моля, проверете линка за импортиране и опитайте отново. Ако не помогне, свържете се с поддръжката" + }, + "options_import_configuration_error_title": { + "message": "Неуспешно импортиране на настройки" + }, + "options_import_configuration_success_button": { + "message": "Затвори" + }, + "options_import_configuration_success_subtitle": { + "message": "Настройките са успешно импортирани" + }, + "options_import_configuration_success_title": { + "message": "Всичко е готово" + }, + "options_import_settings": { + "message": "Импортиране на настройки" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Обърни" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Рекламите и тракерите ще бъдат блокирани само на уебсайтове от allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Обърни списъка с позволени?" + }, + "options_leave_feedback": { + "message": "Оставете обратна връзка" + }, + "options_lifetime_minutes": { + "message": "Срок на живот, в минути" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Достигнали сте лимита на правилата на regex, добавени от потребителя. %maximum% от %current% правила на regex са активирани." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Достигнали сте лимита на добавените от потребителя regex правила. Активирани са %maximum% от %current% правилата. За да добавите нови regex правила, премахнете някои от съществуващите" + }, + "options_limits_warning_dynamic_rules": { + "message": "Достигнали сте лимита на правила, добавени от потребителя. %maximum% от %current% правила са активирани." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Достигнахте лимита на добавените от потребителите правила. Активирани са %maximum% от %current% правилата. За да добавите нови правила, премахнете някои от съществуващите" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Достигнали сте лимита на добавените от потребителя небезопасни правила. %maximum% от %current% небезопасни правила са активирани." + }, + "options_limits_warning_static_filters": { + "message": "Достигнали сте лимита на активните вградени филтри. %maximum% от %current% филтри са активирани. За да активирате нови правила, деактивирайте някои вградени филтри." + }, + "options_limits_warning_static_filters_browser": { + "message": "Достигнали сте лимита на браузъра си за активни вградени филтри. Активирани са %maximum% от %current% филтрите. За да активирате нови филтри, деактивирайте някои вградени" + }, + "options_limits_warning_static_regex_rules": { + "message": "Достигнали сте лимита на активните вградени правила на regex. %maximum% от %current% правила на regex са активирани. За да активирате нови правила, деактивирайте някои вградени филтри." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Достигнахте лимита на активните вградени regex правила. За да активирате нови правила, деактивирайте някои вградени филтри" + }, + "options_limits_warning_static_rules": { + "message": "Достигнали сте лимита на активните вградени правила. %maximum% от %current% правила са активирани. За да активирате нови правила, деактивирайте някои вградени филтри." + }, + "options_limits_warning_static_rules_browser": { + "message": "Достигнахте лимита на браузъра си за активни вградени правила. За да активирате нови правила, деактивирайте някои вградени филтри" + }, + "options_loader_applying_changes": { + "message": "Промените се прилагат..." + }, + "options_miscellaneous_settings": { + "message": "Допълнителни настройки" + }, + "options_modified_first_party_cookie": { + "message": "Променена бисквитка от първа страна" + }, + "options_modified_third_party_cookie": { + "message": "Бисквитката на трети страни е променена" + }, + "options_nav_better_than_extension": { + "message": "Защо приложението AdGuard е по-добро от разширението?" + }, + "options_nav_compare": { + "message": "Сравни" + }, + "options_navigation": { + "message": "Навигация" + }, + "options_open_changelog": { + "message": "Дневник на промените" + }, + "options_open_log": { + "message": "Отворете дневника за филтриране" + }, + "options_popup_call_to_action": { + "message": "Въведете валиден URL или файлов път на филтъра в полето по-горе." + }, + "options_popup_check_false_description": { + "message": "Грешка при добавяне на вашия персонализиран филтър" + }, + "options_popup_check_false_title": { + "message": "Грашка" + }, + "options_popup_checking_filter": { + "message": "Проверка на вашия филтър" + }, + "options_popup_description": { + "message": "Ще бъдете абонирани за този филтър." + }, + "options_popup_filter_description": { + "message": "Описание:" + }, + "options_popup_filter_homepage": { + "message": "Начална страница:" + }, + "options_popup_filter_rules_count": { + "message": "Брой правила:" + }, + "options_popup_filter_title": { + "message": "Заглавие:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Версия:" + }, + "options_popup_import_error_file_description": { + "message": "Нещо се обърка" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "За да импортирате този файл с настройки, позволете на AdGuard да променя настройките, свързани с поверителността." + }, + "options_popup_import_error_title": { + "message": "Неуспешно импортиране на настройки" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Разширението на файла трябва да бъде %extension%" + }, + "options_popup_import_success_title": { + "message": "Настройките са импортирани" + }, + "options_popup_next_button": { + "message": "Следващ" + }, + "options_popup_subscribe_button": { + "message": "Абонирай се" + }, + "options_popup_title_placeholder": { + "message": "Въведете име на филтър" + }, + "options_popup_trusted_filter_description": { + "message": "Надеждните филтри могат да използват мощни модификатори на правила за филтриране, които могат да бъдат опасни в грешни ръце. Не поставяйте отметка в това поле, освен ако не му се доверявате напълно." + }, + "options_popup_trusted_filter_title": { + "message": "Доверен" + }, + "options_popup_try_again_button": { + "message": "Опитай пак" + }, + "options_popup_update_error": { + "message": "Актуализация не се осъществи. Моля опитайте по-късно." + }, + "options_popup_update_filter": { + "message": "беше актуализиран." + }, + "options_popup_update_filters": { + "message": "бяха актуализирани." + }, + "options_popup_update_not_found": { + "message": "Вашите филтри са актуални" + }, + "options_popup_update_title_error": { + "message": "Грешка при актуализиране на филтрите" + }, + "options_popup_updating_filters": { + "message": "Актуализиране на филтрите..." + }, + "options_popup_url_placeholder": { + "message": "Въведете URL адрес или път" + }, + "options_popup_url_title": { + "message": "Нов абонамент за филтър" + }, + "options_popup_version_update_changelog_text": { + "message": "Какво е новото в тази версия?" + }, + "options_popup_version_update_description_major": { + "message": "Това е основна надстройка на разширенията, която носи много нови функции и подобрения." + }, + "options_popup_version_update_description_minor": { + "message": "Тази версия съдържа най-вече корекции на грешки и незначителни подобрения." + }, + "options_popup_version_update_disable_notification": { + "message": "Деактивиране на известията" + }, + "options_popup_version_update_offer": { + "message": "Знаете ли, че възможностите на AdGuard не са ограничени до този браузър?" + }, + "options_popup_version_update_offer_button_text": { + "message": "НАУЧЕТЕ ПОВЕЧЕ" + }, + "options_popup_version_update_title_text": { + "message": "Разширението AdGuard е актуализирано до версия %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Кара WebRTC да използва по-строга политика за Потребителски IP адрес, за да помогне да се запази вашият реален Потребителски IP адрес скрит, когато използвате прокси или VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Предотвратяване на изтичане на Потребителски IP адрес чрез WebRTC" + }, + "options_privacy": { + "message": "Защита от проследяване" + }, + "options_privacy_desc": { + "message": "Предпазва твоята онлайн активност и лични данни от уеб проследяващи устройства" + }, + "options_privacy_policy": { + "message": "Политика за поверителност" + }, + "options_privacy_title": { + "message": "Защита от проследяване" + }, + "options_rate_us_cta": { + "message": "Оценете го" + }, + "options_remove_client_data_desc": { + "message": "Блокирайте Google Chrome да изпраща информация за своята версия и модификации до домейни на Google" + }, + "options_remove_client_data_title": { + "message": "Премахнете заглавката на X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Премахни" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Премахване на този филтър?" + }, + "options_report_bug": { + "message": "Докладвайте грешка" + }, + "options_reset_settings": { + "message": "Изтрий всички настройки" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Нулиране" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Всички настройки ще бъдат нулирани до стойностите по подразбиране" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Нулиране на настройките?" + }, + "options_reset_settings_done": { + "message": "Настройките са нулирани" + }, + "options_reset_settings_error": { + "message": "Грешка при нулиране на настройките" + }, + "options_reset_stats": { + "message": "Нулирай статистиката" + }, + "options_reset_stats_done": { + "message": "Статистиката е нулирана" + }, + "options_rule_limits": { + "message": "Ограничения на правилата" + }, + "options_rule_limits_description": { + "message": "Chrome ограничава броя на правилата, които могат да се прилагат" + }, + "options_rule_limits_dynamic": { + "message": "Динамични правила" + }, + "options_rule_limits_dynamic_regex": { + "message": "Правила с регулярни изрази — включени в правилата, добавени от потребителя" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Опасни динамични правила (използвани за някои разширени модификатори, като $$redirect или $$cookie) — включени в правилата, добавени от потребителя" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Добавени от потребителя правила, като например \u003Cuser_rules>потребителски правила\u003C/user_rules>, \u003Callowlist>уебсайтове с разрешен списък\u003C/allowlist> и \u003Ccustom_filters>персонализирани филтри\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Добавени от потребителя правила, като например \u003Cuser_rules>потребителски правила\u003C/user_rules> и \u003Callowlist>уебсайтове с разрешен списък\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% от %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Статични правила" + }, + "options_rule_limits_static_rules_all": { + "message": "Правила от \u003Ca>вградените филтри\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Правила на Regex (включени в горното)" + }, + "options_rule_limits_static_rulesets": { + "message": "Набори от статични правила" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Вградени филтри\u003C/a>, като блокиране на досадни неща или езиково специфични филтри" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Вариант 3. Ако сте доволни от текущо активираните филтри, \u003Ca>затворете това предупреждение.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Вариант 3. Ако сте доволни от текущо активирания филтър, \u003Ca>затворете това предупреждение.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Вариант 1. Изтрийте ненужните разширения за блокиране на реклами от браузъра си. За да активирате отново филтрите, посочени в раздела \"Филтри, активирани преди актуализацията\", щракнете \u003Ca>повторно активиране на филтрите.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Вариант 2. Инсталирайте приложението AdGuard Ad Blocker: то няма ограничения за правилата за филтриране. \u003Ca>Вземете AdGuard Ad Blocker\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "твоите възможни действия" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Лимитът на активните вградени правила е надхвърлен след актуализация или добавяне на ново разширение. Според Manifest V3 браузърът Chrome реагира, като деактивира всички вградени филтри на разширението, освен тези по подразбиране." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Какво се случи?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Филтри, активирани преди актуализацията" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Филтрите са активирани сега" + }, + "options_rule_limits_warning_title": { + "message": "Браузърът е променил списъка с активните филтри" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Премахнете ограниченията на правилата и получете разширена защита, която работи във всички браузъри" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Инсталирайте приложението за настолен компютър" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Към филтрите" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Управление на разширенията" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Разширенията на браузъра споделят един и същ лимит на правилата. Премахването на други блокировчици на реклами може да освободи повече правила за AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Премахнете други блокировчици на реклами" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Активирайте филтрите, от които се нуждаете. Филтрите по език и за поверителност могат да използват много правила" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Преглед на наличните филтри" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Ето какво можете да направите" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Достигнат е лимитът — някои филтри бяха деактивирани" + }, + "options_rule_syntax": { + "message": "Синтаксис на правилото" + }, + "options_safebrowsing_enabled": { + "message": "Защита от фишинг и зловреден софтуер" + }, + "options_safebrowsing_enabled_desc": { + "message": "Предупреждава за злонамерени и фишинг сайтове чрез модула за сигурно сърфиране на AdGuard. \u003Ca>Прочетете повече\u003C/a>" + }, + "options_select_theme": { + "message": "Тема" + }, + "options_select_update_period_12h": { + "message": "12 часа" + }, + "options_select_update_period_1h": { + "message": "1 час" + }, + "options_select_update_period_24h": { + "message": "24 часа" + }, + "options_select_update_period_48h": { + "message": "48 часа" + }, + "options_select_update_period_6h": { + "message": "6 часа" + }, + "options_select_update_period_default": { + "message": "По подразбиране" + }, + "options_select_update_period_disabled": { + "message": "Изключено" + }, + "options_send_not_track_desc": { + "message": "Изпратете \u003Cgpc>Global Privacy Control\u003C/gpc> и \u003Cdnt>Do Not Track\u003C/dnt> сигнали до уебсайтовете, които посещавате" + }, + "options_send_not_track_title": { + "message": "Помолете уебсайтовете да не ви проследяват" + }, + "options_set_update_interval": { + "message": "Интервал за актуализиране на филтрите" + }, + "options_set_update_interval_desc": { + "message": "Поддържа филтрите актуални за по-ефективно блокиране на реклами" + }, + "options_settings": { + "message": "AdGuard настройки" + }, + "options_share_settings": { + "message": "Споделете настройките" + }, + "options_show_adguard_full_version_title": { + "message": "Показване на информация за пълната версия на AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Уведомете за актуализации на разширения" + }, + "options_show_blocked_ads_count_title": { + "message": "Покажи броят наблокираните реклами наиконата на AdGuard" + }, + "options_show_context_menu_title": { + "message": "Добавяне на елемент AdGuard в контекстното меню на браузъра" + }, + "options_site": { + "message": "Официален уебсайт" + }, + "options_skip_to_main_content": { + "message": "Прескочи до основното съдържание" + }, + "options_stealth_general_title": { + "message": "Общи" + }, + "options_stealth_miscellaneous_title": { + "message": "Разни" + }, + "options_stealth_tracking_methods_title": { + "message": "Методи за проследяване" + }, + "options_strip_tracking_params_description": { + "message": "Премахва параметрите за проследяване от URL адресите на страниците с помощта на филтъра за проследяване на URL на AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Премахване на параметрите на заявката от URL адреса" + }, + "options_stripped_tracking_parameters": { + "message": "Параметрите за проследяване са премахнати" + }, + "options_theme_selector_dark": { + "message": "Тъмна тема" + }, + "options_theme_selector_light": { + "message": "Светла тема" + }, + "options_theme_selector_system": { + "message": "Система по подразбиране" + }, + "options_third_party_block_cookies_warning": { + "message": "Ако блокирате тези бисквитки, може да се наложи да влезете отново в някои уебсайтове или да се сблъскате с други проблеми, свързани с бисквитките" + }, + "options_third_party_desc": { + "message": "Предотвратява рекламодателите да проследяват поведението ви на множество страници чрез ограничаване на живота на бисквитките на трети страни" + }, + "options_third_party_title": { + "message": "Изтриване на бисквитките на трети страни" + }, + "options_update_antibanner_filters": { + "message": "Провери за актуализации" + }, + "options_use_optimized_filters": { + "message": "Използвайте оптимизирани филтри" + }, + "options_use_optimized_filters_desc": { + "message": "Използва по-кратки версии на филтри само с най-популярните правила, за да спести трафик. По-подходящ за мобилни браузъри" + }, + "options_user_rules_clear_search": { + "message": "Изчистване на търсенето" + }, + "options_user_rules_create_rule": { + "message": "Създайте правило" + }, + "options_user_rules_delete_all": { + "message": "Изтрий всичко" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Всички правила на потребителя ще бъдат трайно изтрити" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Изтрий всичко?" + }, + "options_user_rules_delete_all_success": { + "message": "Всички потребителски правила изтрити" + }, + "options_user_rules_delete_rule": { + "message": "Премахни от потребителските филтри" + }, + "options_user_rules_deleted_notification": { + "message": "Правилото на потребителя е изтрито:" + }, + "options_user_rules_description_key": { + "message": "Вашите правила за блокиране и деблокиране на реклами или цели сайтове" + }, + "options_user_rules_edit_rule": { + "message": "Редактиране на правило" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Отидете при редактора" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Вашите правила ще се появят тук, след като го затворите" + }, + "options_user_rules_editor_stub_title": { + "message": "Редакторът се отвори в друг прозорец" + }, + "options_user_rules_empty_placeholder": { + "message": "Все още няма правила" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Подчертаване на правилата…" + }, + "options_user_rules_import_error": { + "message": "Неуспешно импортиране на потребителски правила. Моля, опитайте отново" + }, + "options_user_rules_import_success": { + "message": "Потребителските правила успешно импортирани" + }, + "options_user_rules_menu": { + "message": "Действия с потребителските правила" + }, + "options_user_rules_no_match": { + "message": "Нищо не е намерено" + }, + "options_user_rules_search_placeholder": { + "message": "Търси" + }, + "options_user_rules_switch_to_editor": { + "message": "Превключване към изглед на редактора" + }, + "options_user_rules_switch_to_list": { + "message": "Превключване към изглед със списък" + }, + "options_user_rules_undo": { + "message": "Отмени" + }, + "options_userfilter": { + "message": "Потребителски филтър" + }, + "options_userfilter_description_key": { + "message": "Можете да добавите свои собствени правила тук. Тази опция се препоръчва за напреднали потребители, които са запознати с HTML/CSS. Прочетете \u003Ca>ръководството за правила за филтриране\u003C/a>, за да научите как да напишете свои собствени правила за филтриране." + }, + "options_userfilter_export": { + "message": "Експортирай" + }, + "options_userfilter_import": { + "message": "Импортирай" + }, + "options_userfilter_leave_subtitle": { + "message": "Вашите промени по правилата ще бъдат изгубени" + }, + "options_userfilter_line_break": { + "message": "Прекъсване на реда" + }, + "options_userfilter_line_break_off": { + "message": "Прекъсване на реда: Изключен" + }, + "options_userfilter_line_break_on": { + "message": "Прекъсване на реда: Включен" + }, + "options_userfilter_subtitle_key": { + "message": "Позволява ви да добавяте собствени правила за филтриране" + }, + "popup_abuse_site": { + "message": "Докладване за проблем" + }, + "popup_adguard_footer_title": { + "message": "Защити твоето устройство" + }, + "popup_adguard_for_android": { + "message": "AdGuard за Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard за iOS" + }, + "popup_block_site_ads_option": { + "message": "Блокирайте реклами ръчно" + }, + "popup_get_system_wide_protection": { + "message": "Получете защита за цялата система" + }, + "popup_header_cta_link": { + "message": "Как да подобрите защитата" + }, + "popup_header_update_filters": { + "message": "Провери за актуализации на филтрите" + }, + "popup_limits_exceeded_warning": { + "message": "Вашият браузър е променил списъка с активни вградени филтри" + }, + "popup_open_filtering_log": { + "message": "Отворете дневника за филтриране" + }, + "popup_open_settings": { + "message": "Отворете настройките на AdGuard" + }, + "popup_protection_button": { + "message": "Защита от AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Премахни потребителските правила за този уебсайт" + }, + "popup_resume_protection_button": { + "message": "Продължи" + }, + "popup_security_report": { + "message": "Проверка на сигурността на уебсайта" + }, + "popup_site_exception_information": { + "message": "Филтрирането е деактивирано, тъй като може да попречи на работата на този уебсайт." + }, + "popup_site_filtering_state_disabled": { + "message": "Защитата е деактивирана" + }, + "popup_site_filtering_state_disabling": { + "message": "Деактивиране на защитата..." + }, + "popup_site_filtering_state_enabled": { + "message": "Защитата е активирана" + }, + "popup_site_filtering_state_enabling": { + "message": "Активиране на защитата..." + }, + "popup_site_filtering_state_loading": { + "message": "Зареждане..." + }, + "popup_site_filtering_state_paused": { + "message": "Защитата е на пауза" + }, + "popup_site_filtering_state_pausing": { + "message": "Пауза на защитата..." + }, + "popup_site_filtering_state_resuming": { + "message": "Възстанови защитата..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Защитена страница" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "за всички уебсайтове" + }, + "popup_statistics_all_categories": { + "message": "Всички" + }, + "popup_statistics_category_advertising": { + "message": "Реклами" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Статистики категории" + }, + "popup_statistics_category_other": { + "message": "Друго" + }, + "popup_statistics_category_social_media": { + "message": "Социална медия" + }, + "popup_statistics_category_trackers": { + "message": "Тракери" + }, + "popup_statistics_months_apr": { + "message": "Апр" + }, + "popup_statistics_months_aug": { + "message": "Авг" + }, + "popup_statistics_months_dec": { + "message": "Дек" + }, + "popup_statistics_months_feb": { + "message": "Фв" + }, + "popup_statistics_months_jan": { + "message": "Ян" + }, + "popup_statistics_months_jul": { + "message": "Юли" + }, + "popup_statistics_months_jun": { + "message": "Юни" + }, + "popup_statistics_months_mar": { + "message": "Мар" + }, + "popup_statistics_months_may": { + "message": "Май" + }, + "popup_statistics_months_nov": { + "message": "Ное" + }, + "popup_statistics_months_oct": { + "message": "Окт" + }, + "popup_statistics_months_sep": { + "message": "Сеп" + }, + "popup_statistics_time_day": { + "message": "24 часа" + }, + "popup_statistics_time_label": { + "message": "Период от време на статистиката" + }, + "popup_statistics_time_month": { + "message": "30 дни" + }, + "popup_statistics_time_week": { + "message": "7 дни" + }, + "popup_statistics_time_year": { + "message": "1 година" + }, + "popup_statistics_total": { + "message": "Общо" + }, + "popup_statistics_week_days_fri": { + "message": "Пт" + }, + "popup_statistics_week_days_mon": { + "message": "Пон" + }, + "popup_statistics_week_days_sat": { + "message": "Съб" + }, + "popup_statistics_week_days_sun": { + "message": "Нд" + }, + "popup_statistics_week_days_thu": { + "message": "Чт" + }, + "popup_statistics_week_days_tue": { + "message": "Вт" + }, + "popup_statistics_week_days_wed": { + "message": "Ср" + }, + "popup_switch_button": { + "message": "Защита за текущия сайт" + }, + "popup_tab_actions": { + "message": "Действия" + }, + "popup_tab_blocked_all_count": { + "message": "Общо блокирани: %num%" + }, + "popup_tab_blocked_count": { + "message": "Блокирани: %num%" + }, + "popup_tab_current_website": { + "message": "Текущ сайт" + }, + "popup_tab_statistics": { + "message": "Статистика" + }, + "popup_tabs": { + "message": "Табове" + }, + "popup_tooltip_loading": { + "message": "Зареждане..." + }, + "popup_tooltip_protection_disabled": { + "message": "Защитата е деактивирана" + }, + "popup_tooltip_protection_enabled": { + "message": "Защитата е активирана" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Някои правила не се прилагат" + }, + "popup_tooltip_update_available": { + "message": "Налична актуализация" + }, + "post_install_loading": { + "message": "Зареждане на разширение..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Лимитът на правилата е надвишен в разширението на браузъра AdGuard. Моля, проверете филтрите си и деактивирайте тези, от които нямате нужда" + }, + "text_collapser_hide_default": { + "message": "Скрий пълния текст" + }, + "text_collapser_show_default": { + "message": "Покажи пълния текст" + }, + "update_available_desc": { + "message": "За да блокирате ефективно рекламите, поддържайте разширението и филтрите си актуални" + }, + "update_available_title": { + "message": "Налични актуализации" + }, + "update_available_update_btn": { + "message": "Обнови" + }, + "update_check": { + "message": "Провери за актуализация" + }, + "update_checking_in_progress": { + "message": "Проверка за ъпдейти..." + }, + "update_failed_text": { + "message": "Актуализацията не бе завършена" + }, + "update_failed_try_again_btn": { + "message": "Опитай пак" + }, + "update_installing_in_progress_desc": { + "message": "Разширението ще се рестартира след актуализацията" + }, + "update_installing_in_progress_title": { + "message": "Актуализиране на разширението и филтрите..." + }, + "update_not_needed": { + "message": "Вашето разширение и филтри са актуални" + }, + "update_success_text": { + "message": "Разширението и филтрите са обновени" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bn/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bn/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/bn/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ca/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ca/messages.json new file mode 100644 index 0000000..0a68764 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ca/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% s'ha activat automàticament." + }, + "alert_popup_filter_enabled_title": { + "message": "Auto-activació dels filtres" + }, + "background_tab_title": { + "message": "Pestanya de fons" + }, + "blocking_pages_advanced_button": { + "message": "Avançat" + }, + "blocking_pages_btn_go_back": { + "message": "Torna" + }, + "blocking_pages_btn_proceed": { + "message": "Continua de totes maneres" + }, + "blocking_pages_malware": { + "message": "Aquesta pàgina web a \u003Cstrong>%host%\u003C/strong> s'ha informat com a pàgina de programari maliciós i s'ha bloquejat segons les vostres preferències de seguretat." + }, + "blocking_pages_more_info_button": { + "message": "Més informació" + }, + "blocking_pages_page_title": { + "message": "Accés denegat" + }, + "blocking_pages_phishing": { + "message": "S'ha informat d'aquesta pàgina web a \u003Cstrong>%host%\u003C/strong> com a pàgina de pesca i s'ha bloquejat segons les vostres preferències de seguretat." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ha impedit que aquesta pàgina es carregui a causa de la següent regla de filtre" + }, + "blocking_pages_rule_header_title": { + "message": "Bloquejat per AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ha bloquejat l'accés a aquesta pàgina" + }, + "clear_button_title": { + "message": "Neteja" + }, + "close_button_title": { + "message": "Tancar" + }, + "context_block_site_ads": { + "message": "Bloquegeu anuncis manualment" + }, + "context_complaint_website": { + "message": "Informar d’un problema" + }, + "context_disable_protection": { + "message": "Atureu la protecció d'AdGuard" + }, + "context_enable_protection": { + "message": "Inicieu la protecció d'AdGuard" + }, + "context_open_log": { + "message": "Registre del filtratge" + }, + "context_open_settings": { + "message": "Opcions d'AdGuard" + }, + "context_security_report": { + "message": "Comproveu la seguretat del lloc web" + }, + "context_site_exception": { + "message": "Aquesta pàgina web es troba a les excepcions" + }, + "context_site_filtering_disabled": { + "message": "AdGuard no pot filtrar aquesta pàgina" + }, + "context_site_filtering_off": { + "message": "Desactiveu el filtratge en aquesta pàgina web" + }, + "context_site_filtering_on": { + "message": "Activeu el filtratge en aquesta pàgina web" + }, + "context_site_protection_disabled": { + "message": "La protecció d'AdGuard està aturada" + }, + "context_update_antibanner_filters": { + "message": "Busqueu actualitzacions per als filtres" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Extensió per bloquejar publicitat i finestres emergents. Bloqueja anuncis a Facebook, YouTube i tots els altres llocs web." + }, + "filtering_clear_log_events": { + "message": "Esborra el registre" + }, + "filtering_log_actions_menu": { + "message": "Accions del registre de filtratge" + }, + "filtering_log_assumed_rule_description": { + "message": "Aquesta és una regla assumida. Per a més detalls, consulteu la nostra \u003Ca>Base de coneixements\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Mètode de sol·licitud HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Codi d'estat HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Sol·licitud de tercers" + }, + "filtering_log_details_modal_back_button": { + "message": "Tornar a la petició" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Embelleix" + }, + "filtering_log_details_modal_try_again": { + "message": "Intenta-ho de nou" + }, + "filtering_log_filter_allowed": { + "message": "Permès" + }, + "filtering_log_filter_blocked": { + "message": "Bloquejat" + }, + "filtering_log_filter_modified": { + "message": "Modificat" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Regles de l'usuari" + }, + "filtering_log_hide_referrer": { + "message": "Referent ocult a tercers" + }, + "filtering_log_hide_search_queries": { + "message": "Les teves consultes de cerca ocultes" + }, + "filtering_log_in_allowlist": { + "message": "El lloc està permès" + }, + "filtering_log_modified_rules": { + "message": "Regles modificades: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sí, conservar" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Aquesta opció pot augmentar significativament l'ús de memòria" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Conservar registre?" + }, + "filtering_log_preserve_log_off": { + "message": "No conservar registre" + }, + "filtering_log_preserve_log_on": { + "message": "Conservar registre" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "No mostrar més" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protecció de rastreig aplicada" + }, + "filtering_log_remove_client_data": { + "message": "Capçalera X-Client-Data eliminada" + }, + "filtering_log_search_string": { + "message": "Búsqueda" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Cerca en pestanyes" + }, + "filtering_log_send_not_track": { + "message": "Capçalera Do-Not-Track enviada" + }, + "filtering_log_status_allowed": { + "message": "Permès" + }, + "filtering_log_status_blocked": { + "message": "Bloquejat" + }, + "filtering_log_status_modified": { + "message": "Modificat" + }, + "filtering_log_status_processed": { + "message": "Processat" + }, + "filtering_log_stealth_rules": { + "message": "Regles de protecció de rastreig: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origen de la sol·licitud" + }, + "filtering_log_tag_request_status": { + "message": "Estatus del filtratge" + }, + "filtering_log_tag_request_type": { + "message": "Tipus de sol·licitud" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Sol·licituds permeses i desbloquejades" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Sol·licituds bloquejades" + }, + "filtering_log_tag_tooltip_css": { + "message": "Fulls d'estil" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Sol·licituds de primera part" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documents i subdocuments" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imatges" + }, + "filtering_log_tag_tooltip_js": { + "message": "Guions" + }, + "filtering_log_tag_tooltip_media": { + "message": "Mitjans de comunicació" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Sol·licituds modificades" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonts, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Sol·licituds processades sense filtratge" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Sol·licituds de tercers" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Sol·licituds afectades per regles d'usuari" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests i sol·licituds de recuperació" + }, + "filtering_log_title": { + "message": "Registre del filtratge" + }, + "filtering_menu_open_filters": { + "message": "Personalitza" + }, + "filtering_modal_add_rule": { + "message": "AFEGIR" + }, + "filtering_modal_allow_title": { + "message": "Afegir regla de permís" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla aplicada | Regles aplicades" + }, + "filtering_modal_apply_domains": { + "message": "Aplicar a tots els llocs web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla assumida: | Regles assumides:" + }, + "filtering_modal_block": { + "message": "Bloquejeu" + }, + "filtering_modal_block_again": { + "message": "Bloqueja de nou" + }, + "filtering_modal_block_title": { + "message": "Afegir regla de bloqueig" + }, + "filtering_modal_converted_to": { + "message": "Convertit a:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiat" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiar al portapapers" + }, + "filtering_modal_declarative_rule": { + "message": "Regla DNR:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Afegiu una excepció" + }, + "filtering_modal_filter": { + "message": "Filtre" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Estatus del filtratge" + }, + "filtering_modal_hide_full_element": { + "message": "Amaga l'element complet" + }, + "filtering_modal_hide_full_rule": { + "message": "Amaga la regla completa" + }, + "filtering_modal_hide_full_url": { + "message": "Amaga l'URL complet" + }, + "filtering_modal_important": { + "message": "Donar major prioritat a la regla" + }, + "filtering_modal_info_title": { + "message": "Detalls de la petició" + }, + "filtering_modal_open_in_new_tab": { + "message": "Obrir en nova pestanya" + }, + "filtering_modal_options_desc": { + "message": "Opcions" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla original: | Regles originals:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Què s'hauria de permetre" + }, + "filtering_modal_patterns_desc_block": { + "message": "Què s'ha de bloquejar" + }, + "filtering_modal_preview_request_button": { + "message": "Vista prèvia" + }, + "filtering_modal_preview_title": { + "message": "Vista prèvia" + }, + "filtering_modal_privacy": { + "message": "Protecció de rastreig" + }, + "filtering_modal_remove_allowlist": { + "message": "Eliminat de la llista de permesos" + }, + "filtering_modal_remove_param": { + "message": "Elimina els paràmetres de consulta" + }, + "filtering_modal_remove_user": { + "message": "Elimineu-lo dels filtres d'usuari" + }, + "filtering_modal_rule": { + "message": "Regla:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regla" + }, + "filtering_modal_rules": { + "message": "Regles:" + }, + "filtering_modal_show_full_element": { + "message": "Mostra l'element complet" + }, + "filtering_modal_show_full_rule": { + "message": "Mostra la regla completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostra l'URL complet" + }, + "filtering_modal_source": { + "message": "Origen" + }, + "filtering_modal_status_text_desc": { + "message": "Estat" + }, + "filtering_modal_status_text_error": { + "message": "No s'ha pogut carregar l'aperíu. Si us plau, torneu-ho a intentar" + }, + "filtering_modal_status_text_loading": { + "message": "Carregant..." + }, + "filtering_modal_third_party": { + "message": "Aplica només a les peticions de terceres parts" + }, + "filtering_modal_type": { + "message": "Tipus" + }, + "filtering_modal_unblock": { + "message": "Desbloquejeu" + }, + "filtering_refresh_tab_short": { + "message": "Refrescar" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Refrescar la pàgina" + }, + "filtering_table_action": { + "message": "Acció" + }, + "filtering_table_empty_reload_page_desc": { + "message": "No s'ha trobat res. \u003Creset>Desactiva els filtres\u003C/reset> o \u003Crefresh>torna a carregar la pàgina\u003C/refresh> per veure els registres" + }, + "filtering_table_filter": { + "message": "Filtre" + }, + "filtering_table_open_details": { + "message": "Obrir detalls" + }, + "filtering_table_rule": { + "message": "Registre del filtratge" + }, + "filtering_table_source": { + "message": "Font" + }, + "filtering_table_status": { + "message": "Estat" + }, + "filtering_table_type": { + "message": "Tipus" + }, + "filtering_type_all": { + "message": "Tot" + }, + "filtering_type_other": { + "message": "Altres" + }, + "filters_download_loading": { + "message": "Espereu mentre es carrega la base de dades de filtres..." + }, + "filters_download_title": { + "message": "S'està carregant la base de dades de filtres..." + }, + "fullscreen_user_rules_title": { + "message": "Regles de l'usuari" + }, + "group_description_adblocking": { + "message": "Configureu el bloqueig d'anuncis aquí per gestionar banners molests, finestres emergents, anuncis de vídeo i més, d'una vegada per totes" + }, + "group_description_annoyances": { + "message": "Eliminar finestres emergents i altres notificacions molestes com les notificacions de cookies" + }, + "group_description_custom": { + "message": "Creeu els vostres propis filtres per ajustar el filtratge web a les vostres preferències." + }, + "group_description_lang": { + "message": "No us limiteu: bloquegeu anuncis a llocs web en qualsevol idioma" + }, + "group_description_miscellaneous": { + "message": "Més configuracions per configurar encara més la vostra navegació web amb AdGuard" + }, + "group_description_security": { + "message": "Protegiu-vos contra malware, phishing i altres amenaces en línia" + }, + "group_description_social": { + "message": "Amagueu botons de \"M'agrada\"/\"Compartir\" i altres widgets de xarxes socials no desitjats" + }, + "group_description_stealth": { + "message": "Protegiu la vostra identitat i informació personal sensible de milers de rastrejadors en línia bloquejant tots els mètodes de rastreig més coneguts i populars" + }, + "name": { + "message": "Filtre de publicitat d'AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "No ho tornis a mostrar" + }, + "opera_search_permission_go_to_settings": { + "message": "Ves a Configuració" + }, + "opera_search_permission_warning": { + "message": "Per bloquejar anuncis de cerca, permet l'accés als resultats de la pàgina de cerca a la configuració del navegador" + }, + "options_about": { + "message": "Quant a" + }, + "options_about_libs": { + "message": "Biblioteques utilitzades" + }, + "options_about_title": { + "message": "Extensió del navegador AdGuard" + }, + "options_about_update_available": { + "message": "La versió %version% està disponible. Es descarregarà i s'instal·larà automàticament." + }, + "options_about_version": { + "message": "Versió" + }, + "options_acknowledgment": { + "message": "Agraïments" + }, + "options_add_custom_filter": { + "message": "Afegir filtre personalitzat" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Afegir" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Comprovant el teu filtre..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "La URL ha retornat una pàgina web en lloc d'una llista de filtres. Si us plau, proporciona un enllaç directe al fitxer de filtre." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Si us plau, torneu-ho a provar o poseu-vos en contacte amb el suport" + }, + "options_add_custom_filter_modal_error_title": { + "message": "No s'ha pogut afegir el filtre personalitzat" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nom del filtre:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Confiable" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Algunes regles de filtratge poden alterar significativament la vostra experiència de navegació i comprometre la vostra privadesa. Assegureu-vos d'utilitzar només filtres de desenvolupadors de confiança" + }, + "options_add_custom_filter_modal_title": { + "message": "Afegir filtre personalitzat" + }, + "options_all_limits_exceeded_warning": { + "message": "Heu arribat al límit de regles integrades actives. El vostre navegador ha modificat la llista de filtres integrats actius. El nombre de filtres habilitats ha canviat de %expected% a %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Has arribat al límit de regles integrades actives del teu navegador. El navegador ha reduït la llista de filtres integrats actius de %expected% a %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "El vostre navegador restringeix \u003Cexternal-link>alguns tipus de regles\u003C/external-link>. Per aplicar totes les regles, habiliteu \u003Cb>Permet scripts d'usuari\u003C/b> a la \u003Csettings-link>configuració de l'extensió\u003C/settings-link> del vostre navegador" + }, + "options_allowlist": { + "message": "Llista de permesos" + }, + "options_allowlist_alert_invert": { + "message": "La llista blanca està invertida. Els anuncis només es bloquegen als llocs web afegits a aquesta." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Deixar d’invertir\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard no bloqueja anuncis ni rastrejadors als\nllocs web de la llista" + }, + "options_allowlist_invalid_entries": { + "message": "Per desar, mantén només dominis o URL. Aquests necessiten correcció: %entries%" + }, + "options_allowlist_invert": { + "message": "Inverteix la llista de permesos" + }, + "options_allowlist_invert_desc": { + "message": "Bloqueja anuncis i rastrejadors només en llocs web permesos" + }, + "options_allowlist_leave_subtitle": { + "message": "Els vostres canvis a la llista blanca es perdran" + }, + "options_allowlist_menu": { + "message": "Accions de la llista blanca" + }, + "options_anonymized_usage_data_description": { + "message": "Envia estadístiques anònimes sobre l'ús de les extensions a AdGuard. \u003Cbutton>Més informació\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Entesos" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Aquesta dada inclou:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Noms dels botons que feu click" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Noms de pantalles amb les quals interactues" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificadors de sessió" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Dades són anònimes i només s'utilitzen internament. No compartim mai amb tercers" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Necessitem aquesta informació per analitzar i millorar la funcionalitat d'AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dades d'ús de l'extensió" + }, + "options_anonymized_usage_data_title": { + "message": "Enviar dades d'ús d'extensió anonimitzades" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Aquest filtre personalitzat ja s'ha afegit" + }, + "options_antibanner_custom_group": { + "message": "Personalitzat" + }, + "options_antibanner_custom_group_description": { + "message": "Permet afegir filtres des d’un fitxer o URL" + }, + "options_antibanner_rules_count": { + "message": "Regles: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Actualitzat: %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloquejar anuncis de cerca i autopromoció de llocs web" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloqueja anuncis en els resultats de cerca i l'autopromoció de llocs web. \u003Ca>Més informació\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Per bloquejar les galetes, configura la vida útil a 0" + }, + "options_block_known_trackers_description": { + "message": "Bloqueja rastrejadors i analítiques web mitjançant el filtre de protecció de seguiment d'AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Bloquejar rastrejadors" + }, + "options_check_update_progress": { + "message": "Comprovar..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Neteja" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Totes les estadístiques sobre l'ús de dades s'eliminaran permanentment" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Netejar estadístiques?" + }, + "options_clipboard_permission_warning": { + "message": "Per copiar i enganxar regles, permetre que AdGuard accedeixi al porta-retalls. \u003Ca>Permetre\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envia estadístiques anònimes sobre l'ús dels filtres d’anuncis a AdGuard. \u003Ca>Més informació\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ajuda a desenvolupar els filtres d'AdGuard" + }, + "options_coming_soon": { + "message": "Properament" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancel · lar" + }, + "options_copyright": { + "message": "Tots els drets reservats." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Per utilitzar filtres personalitzats, activeu \u003Cb>Permet scripts d'usuari\u003C/b> en el vostre navegador \u003Csettings-link>Configuració de l'extensió\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Per utilitzar filtres personalitzats, activeu \u003Cb>Mode desenvolupador\u003C/b> en el vostre navegador \u003Csettings-link>Configuració de l'extensió\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Obtenir AdGuard per a Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtenir AdGuard per a Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtenir AdGuard per a Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicacions com Spotify, Discord o Zoom encara poden mostrar anuncis i fer un seguiment de la teva activitat" + }, + "options_desktop_app_promo_subdescription": { + "message": "La nostra aplicació d'escriptori et pot protegir d'ells" + }, + "options_desktop_app_promo_title": { + "message": "L'extensió només protegeix el navegador" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "El vostre navegador restringeix \u003Cexternal-link>alguns tipus de regles\u003C/external-link>. Per aplicar totes les regles, habiliteu el \u003Cb>mode per a desenvolupadors\u003C/b> a la \u003Csettings-link>configuració de l'extensió\u003C/settings-link> del vostre navegador" + }, + "options_disable_webrtc_desc": { + "message": "Bloqueja WebRTC que pot filtrar la teva Direcció IP real encara que utilitzis un proxy o VPN. Algunes aplicacions de missatgeria, plataformes de streaming o jocs poden deixar de funcionar correctament" + }, + "options_disable_webrtc_title": { + "message": "Bloqueja WebRTC" + }, + "options_discuss": { + "message": "Parleu sobre AdGuard" + }, + "options_do_you_like_question": { + "message": "Us agrada AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Sortiu del mode finestra" + }, + "options_editor_indicator_saved": { + "message": "Guardat" + }, + "options_editor_indicator_saving": { + "message": "Guardant..." + }, + "options_editor_leave_cancel": { + "message": "Tornar a editar" + }, + "options_editor_leave_confirm": { + "message": "Sí, sortir" + }, + "options_editor_leave_title": { + "message": "Sortir sense desar?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Obriu l'Editor en una finestra nova" + }, + "options_editor_save": { + "message": "Desar" + }, + "options_editor_save_error": { + "message": "No s'han pogut desar els canvis. Torna-ho a provar o contacta amb el suport" + }, + "options_empty_custom_filter": { + "message": "Encara no teniu cap filtre personalitzat" + }, + "options_enable_autodetect_filter": { + "message": "Activeu els filtres més adequats automàticament" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecta l'idioma del lloc web i activa els filtres adequats" + }, + "options_export_settings": { + "message": "Exportar configuracions" + }, + "options_filters": { + "message": "Filtres" + }, + "options_filters_annoyances_consent_description": { + "message": "Esteu a punt d'habilitar un o més filtres d’enuig. Bloquegen elements que estan o bé desvinculats del contingut del lloc web o relacionats però molests per a la vostra experiència d’usuari. Els propietaris dels llocs web poden considerar aquests elements obligatoris: si els bloquegeu, podeu estar infringint els seus termes; algunes funcionalitats dels llocs web no estaran disponibles o no funcionaran correctament. Enteneu i accepteu que sou l’únic responsable de complir els termes d’ús dels llocs web que visiteu i que AdGuard no és responsable del vostre compliment dels termes d’ús dels llocs web que visiteu fent servir els nostres productes." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Habilitar" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Pàgina d'inici" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Per obtenir més informació sobre què bloquegen els filtres d'enuig d'AdGuard, consulteu la \u003Ca>Política de filtres\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Filtres habilitats?" + }, + "options_filters_annoyances_consent_title": { + "message": "Si us plau, llegeix atentament abans d'activar els filtres de molèsties" + }, + "options_filters_back_button": { + "message": "Torna enrere" + }, + "options_filters_empty_title": { + "message": "No s'ha trobat res" + }, + "options_filters_enabled": { + "message": "Habilitat:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% i %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% i %more% més" + }, + "options_filters_enabled_per_group": { + "message": "Activat: %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Vés a la pàgina d'inici" + }, + "options_filters_filter_tags": { + "message": "Etiquetes de filtre" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Vas decidir confiar en aquest filtre." + }, + "options_filters_filter_updated": { + "message": "actualitzat:" + }, + "options_filters_filter_version": { + "message": "versió:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Regles totals: %num%" + }, + "options_filters_last_checked": { + "message": "Darrera comprovació: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Tots els filtres" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Deshabilitat" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Habilitat" + }, + "options_filters_no_enabled": { + "message": "No hi ha filtres habilitats" + }, + "options_filters_of_group": { + "message": "Filtres del grup \"%groupName%\"" + }, + "options_filters_search": { + "message": "Búsqueda" + }, + "options_filters_search_filter": { + "message": "Cerca filtre" + }, + "options_first_party_block_cookies_warning": { + "message": "Si bloqueges aquestes galetes, alguns llocs web poden fallar o deixar de funcionar" + }, + "options_first_party_desc": { + "message": "Evita que els llocs web recordin les teves dades, com les credencials d'inici de sessió i les preferències d'idioma, limitant la vida de les galetes pròpies" + }, + "options_first_party_title": { + "message": "Elimina les galetes pròpies (no recomanat)" + }, + "options_general_settings": { + "message": "Opcions generals" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Eviti que tercers sàpiguen quin lloc web està visitant" + }, + "options_hide_referrer_title": { + "message": "Ocultar el Referer de tercers" + }, + "options_hide_search_queries_desc": { + "message": "Amaga les teves cerques dels llocs web visitats a través dels resultats del motor de cerca" + }, + "options_hide_search_queries_title": { + "message": "Amaga les consultes de cerca" + }, + "options_import_configuration_applying_subtitle": { + "message": "Substituint la configuració actual per la importada. El filtratge està deshabilitat durant la importació" + }, + "options_import_configuration_applying_title": { + "message": "S'està important..." + }, + "options_import_configuration_confirm_button": { + "message": "Importeu" + }, + "options_import_configuration_confirm_subtitle": { + "message": "La configuració importada substituirà l'actual. Altres configuracions no es veuran afectades" + }, + "options_import_configuration_confirm_title": { + "message": "Importa la configuració" + }, + "options_import_configuration_error_button": { + "message": "Tancar" + }, + "options_import_configuration_error_subtitle": { + "message": "Si us plau, comprova l'enllaç d'importació i torna-ho a provar. Si no ajuda, contacta amb el suport" + }, + "options_import_configuration_error_title": { + "message": "No s'ha pogut importar la configuració" + }, + "options_import_configuration_success_button": { + "message": "Tancar" + }, + "options_import_configuration_success_subtitle": { + "message": "La configuració s'ha importat correctament" + }, + "options_import_configuration_success_title": { + "message": "Tot a punt" + }, + "options_import_settings": { + "message": "Importar configuracions" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverteix" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Els anuncis i els rastrejadors només es bloquejaran als llocs web de la llista de permesos" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inverteix la llista de permesos?" + }, + "options_leave_feedback": { + "message": "Deixar comentari" + }, + "options_lifetime_minutes": { + "message": "Vida útil, minuts" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Heu arribat al límit de regles Regex afegides per l'usuari. %maximum% de %current% regles Regex estan habilitades." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Has arribat al límit de regles regex afegides per l’usuari. %maximum% de %current% regles estan habilitades. Per afegir-ne de noves, elimina'n algunes d’existents" + }, + "options_limits_warning_dynamic_rules": { + "message": "Heu arribat al límit de regles afegides per l'usuari. %maximum% de %current% regles estan habilitades." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Has arribat al límit de regles afegides per l’usuari. %maximum% de %current% regles estan habilitades. Per afegir-ne de noves, elimina'n algunes d’existents" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Heu arribat al límit de les regles insegures afegides per l'usuari. %maximum% de %current% regles insegures estan habilitades." + }, + "options_limits_warning_static_filters": { + "message": "Heu arribat al límit de filtres integrats actius. %maximum% de %current% filtres estan habilitats. Per activar noves regles, desactiveu alguns filtres integrats." + }, + "options_limits_warning_static_filters_browser": { + "message": "Has arribat al límit de filtres integrats actius del teu navegador. %maximum% de %current% filtres estan habilitats. Per activar nous filtres, desactiva alguns integrats" + }, + "options_limits_warning_static_regex_rules": { + "message": "Heu arribat al límit de regles Regex integrades actives. %maximum% de %current% regles Regex estan habilitades. Per activar noves regles, desactiveu alguns filtres integrats." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Has arribat al límit de regles regex integrades actives. Per activar noves regles, desactiva alguns filtres integrats" + }, + "options_limits_warning_static_rules": { + "message": "Heu arribat al límit de regles integrades actives. %maximum% de %current% regles estan habilitades. Per activar noves regles, desactiveu alguns filtres integrats." + }, + "options_limits_warning_static_rules_browser": { + "message": "Has arribat al límit de regles integrades actives del teu navegador. Per activar noves regles, desactiva alguns filtres integrats" + }, + "options_loader_applying_changes": { + "message": "Aplicant els canvis..." + }, + "options_miscellaneous_settings": { + "message": "Configuracions addicionals" + }, + "options_modified_first_party_cookie": { + "message": "Galetes de domini modificades" + }, + "options_modified_third_party_cookie": { + "message": "Galetes de tercers modificades" + }, + "options_nav_better_than_extension": { + "message": "Per què l'aplicació AdGuard és millor que l'extensió?" + }, + "options_nav_compare": { + "message": "Comparar" + }, + "options_navigation": { + "message": "Navegació" + }, + "options_open_changelog": { + "message": "Registre de canvis" + }, + "options_open_log": { + "message": "Obre el registre de filtratge" + }, + "options_popup_call_to_action": { + "message": "Introduïu l'URL vàlid o la ruta del fitxer del filtre al camp superior." + }, + "options_popup_check_false_description": { + "message": "Error en afegir el teu filtre personalitzat." + }, + "options_popup_check_false_title": { + "message": "Error" + }, + "options_popup_checking_filter": { + "message": "Comprovant el teu filtre" + }, + "options_popup_description": { + "message": "Estaràs subscrit a aquest filtre." + }, + "options_popup_filter_description": { + "message": "Descripció:" + }, + "options_popup_filter_homepage": { + "message": "Pàgina principal:" + }, + "options_popup_filter_rules_count": { + "message": "Recompte de regles:" + }, + "options_popup_filter_title": { + "message": "Títol:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versió:" + }, + "options_popup_import_error_file_description": { + "message": "Alguna cosa ha anat malament." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Per a importar aquest fitxer de configuració, permeteu a AdGuard canviar les configuracions relacionades amb la vostra privadesa." + }, + "options_popup_import_error_title": { + "message": "Error a importar la configuració" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "L'extensió del fitxer ha de ser %extension%" + }, + "options_popup_import_success_title": { + "message": "Les configuracions s'han importat" + }, + "options_popup_next_button": { + "message": "Següent" + }, + "options_popup_subscribe_button": { + "message": "Subscriure" + }, + "options_popup_title_placeholder": { + "message": "Introduïu el nom del filtre" + }, + "options_popup_trusted_filter_description": { + "message": "Els filtres de confiança poden usar potents modificadors de regles de filtrat que poden ser perillosos a les mans equivocades. No marqui aquesta casella tret que confiï plenament en ella." + }, + "options_popup_trusted_filter_title": { + "message": "Confiable" + }, + "options_popup_try_again_button": { + "message": "Intenta-ho de nou" + }, + "options_popup_update_error": { + "message": "Ha fallat l'actualització. Si us plau intenteu més tard." + }, + "options_popup_update_filter": { + "message": "va ser actualitzat." + }, + "options_popup_update_filters": { + "message": "van ser actualitzats." + }, + "options_popup_update_not_found": { + "message": "Els teus filtres estan actualitzats" + }, + "options_popup_update_title_error": { + "message": "Error en actualitzar filtres" + }, + "options_popup_updating_filters": { + "message": "Actualitzant filtres..." + }, + "options_popup_url_placeholder": { + "message": "Introduïu l'URL o la ruta del fitxer" + }, + "options_popup_url_title": { + "message": "Nova subscripció de filtre" + }, + "options_popup_version_update_changelog_text": { + "message": "Que hi ha de nou en aquesta versió?" + }, + "options_popup_version_update_description_major": { + "message": "Aquesta és una important actualització d'extensió que porta moltes característiques i millores noves." + }, + "options_popup_version_update_description_minor": { + "message": "Aquesta versió conté principalment correccions d'errors i millores menors." + }, + "options_popup_version_update_disable_notification": { + "message": "Desactiva les notificacions" + }, + "options_popup_version_update_offer": { + "message": "Saps que les capacitats de AdGuard no es limiten a aquest navegador?" + }, + "options_popup_version_update_offer_button_text": { + "message": "APRÈN MÉS" + }, + "options_popup_version_update_title_text": { + "message": "L'extensió AdGuard s'ha actualitzat a la versió %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Fa que WebRTC utilitzi una política de Direcció IP més estricta per ajudar a mantenir amagada la teva Direcció IP real quan utilitzes un proxy o VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Evita les fuites de Direcció IP a través de WebRTC" + }, + "options_privacy": { + "message": "Protecció de seguiment" + }, + "options_privacy_desc": { + "message": "Protegeix la teva activitat en línia i les teves dades personals dels rastrejadors web" + }, + "options_privacy_policy": { + "message": "Política de privacitat" + }, + "options_privacy_title": { + "message": "Protecció de seguiment" + }, + "options_rate_us_cta": { + "message": "Valoreu-nos" + }, + "options_remove_client_data_desc": { + "message": "Bloquegeu Google Chrome perquè no enviï informació de versió i modificacions als dominis de Google" + }, + "options_remove_client_data_title": { + "message": "Elimina la capçalera X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Elimina" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Eliminar aquest filtre?" + }, + "options_report_bug": { + "message": "Informa d'un error" + }, + "options_reset_settings": { + "message": "Restablir configuració" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Restableix" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Tota la configuració es restablirà als seus valors per defecte" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Restablir la configuració?" + }, + "options_reset_settings_done": { + "message": "Les configuracions s'han restablert" + }, + "options_reset_settings_error": { + "message": "Error al restablir les configuracions" + }, + "options_reset_stats": { + "message": "Netejar estadístiques" + }, + "options_reset_stats_done": { + "message": "Les estadístiques s'han netejat" + }, + "options_rule_limits": { + "message": "Límits de regles" + }, + "options_rule_limits_description": { + "message": "Chrome limita el nombre de regles que poden aplicar-se" + }, + "options_rule_limits_dynamic": { + "message": "Regles dinàmiques" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regles regex — incloses en regles afegides pels usuaris" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Regles dinàmiques insegures (utilitzades per a alguns modificadors avançats, com ara $$redirect o $$cookie) — incloses en regles afegides per l'usuari" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Regles afegides per l'usuari, com ara \u003Cuser_rules>regles d'usuari\u003C/user_rules>, \u003Callowlist>llocs web a la llista blanca\u003C/allowlist> i \u003Ccustom_filters>filtres personalitzats\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Regles afegides per l'usuari, com ara les regles d'usuari \u003Cuser_rules>\u003C/user_rules> i \u003Callowlist>llocs web de la llista permesa\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Regles estàtiques" + }, + "options_rule_limits_static_rules_all": { + "message": "Regles de \u003Ca>filtres integrats\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regles Regex — incloses en l'anterior" + }, + "options_rule_limits_static_rulesets": { + "message": "Regles estàtiques" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtres integrats\u003C/a>, com ara Bloqueja molèsties o Filtres específics de llenguatge" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opció 3. Si esteu satisfets amb els filtres predeterminats actualment habilitats, \u003Ca>tanca aquesta advertència.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opció 3. Si esteu satisfets amb el filtre predeterminat actualment habilitat, \u003Ca>tanca aquesta advertència.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opció 1. Elimineu extensions de bloqueig d'anuncis innecessàries del vostre navegador. Per reactivar els filtres esmentats a la secció \"Filtres habilitats abans de l'actualització\", feu clic \u003Ca>reactivar filtres.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opció 2. Instal·leu l'aplicació AdGuard Ad Blocker: no té restriccions sobre les regles de filtratge. \u003Ca>Obteniu l'aplicació AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Les teves possibles accions" + }, + "options_rule_limits_warning_explanation_description": { + "message": "El límit de regles integrades actives es va superar després d'una actualització o d'afegir una nova extensió. D'acord amb Manifest V3, el teu navegador Chrome va reaccionar desactivant tots els filtres integrats de l'extensió excepte els predeterminats." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Què ha passat?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtres activats abans de l'actualització" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtres activats ara" + }, + "options_rule_limits_warning_title": { + "message": "El navegador ha modificat la llista de filtres actius" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Elimineu els límits de les regles i obteniu protecció estesa que funciona en tots els navegadors" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instal·lar l’aplicació d’escriptori" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Vés als filtres" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gestionar extensions" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Les extensions del navegador comparteixen el mateix límit de regles. Eliminar altres bloquejadors d’anuncis pot alliberar més regles per a AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Eliminar altres bloquejadors d’anuncis" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Habiliteu els filtres que necessiteu. Els filtres específics d’idioma i de privadesa poden utilitzar moltes regles" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Revisa els filtres disponibles" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Això és el que podeu fer" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "S'ha assolit el límit — alguns filtres s'han deshabilitat" + }, + "options_rule_syntax": { + "message": "Sintaxi de regla" + }, + "options_safebrowsing_enabled": { + "message": "Protecció contra la pesca electrònica i el programari maliciós" + }, + "options_safebrowsing_enabled_desc": { + "message": "Adverteix sobre llocs web maliciosos i de phishing utilitzant el módulo de Seguretat a la navegació d'AdGuard. \u003Ca>Més informació\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 hores" + }, + "options_select_update_period_1h": { + "message": "1 hora" + }, + "options_select_update_period_24h": { + "message": "24 hores" + }, + "options_select_update_period_48h": { + "message": "48 hores" + }, + "options_select_update_period_6h": { + "message": "6 hores" + }, + "options_select_update_period_default": { + "message": "Per defecte" + }, + "options_select_update_period_disabled": { + "message": "Deshabilitat" + }, + "options_send_not_track_desc": { + "message": "Envieu les senyals de \u003Cgpc>Control de privadesa global\u003C/gpc> i \u003Cdnt>No rastrejar\u003C/dnt> als llocs web que visiteu" + }, + "options_send_not_track_title": { + "message": "Demana als llocs web que no em segueixin" + }, + "options_set_update_interval": { + "message": "Actualitza automàticament els filtres" + }, + "options_set_update_interval_desc": { + "message": "Manté els filtres actualitzats per un bloqueig d'anuncis més efectiu" + }, + "options_settings": { + "message": "Opcions d'AdGuard" + }, + "options_share_settings": { + "message": "Compartint configuració" + }, + "options_show_adguard_full_version_title": { + "message": "Mostreu la informació a la versió completa d'AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notificar sobre actualitzacions d'extensions" + }, + "options_show_blocked_ads_count_title": { + "message": "Indiqueu a la icona el nombre d'anuncis de publicitat filtrats per l'extensió AdGuard" + }, + "options_show_context_menu_title": { + "message": "Afegiu l'element AdGuard al menú contextual del navegador web" + }, + "options_site": { + "message": "Pàgina web oficial" + }, + "options_skip_to_main_content": { + "message": "Salta al contingut principal" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Miscel·lània" + }, + "options_stealth_tracking_methods_title": { + "message": "Mètodes de seguiment" + }, + "options_strip_tracking_params_description": { + "message": "Elimina els paràmetres de seguiment de les URLs de les pàgines mitjançant el filtre de seguiment d'URL d'AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Elimina els paràmetres de seguiment d'URLs" + }, + "options_stripped_tracking_parameters": { + "message": "S'han suprimit els paràmetres de seguiment" + }, + "options_theme_selector_dark": { + "message": "Fosc" + }, + "options_theme_selector_light": { + "message": "Clar" + }, + "options_theme_selector_system": { + "message": "Per defecte del sistema" + }, + "options_third_party_block_cookies_warning": { + "message": "Si bloqueges aquestes galetes, potser hauràs de tornar a iniciar sessió a alguns llocs web o afrontar altres problemes relacionats amb les galetes" + }, + "options_third_party_desc": { + "message": "Impedeix que els anunciants segueixin el teu comportament a través de diverses pàgines limitant la vida útil de les galetes de tercers" + }, + "options_third_party_title": { + "message": "Elimina les galetes de tercers" + }, + "options_update_antibanner_filters": { + "message": "Busqueu actualitzacions per els filtres" + }, + "options_use_optimized_filters": { + "message": "Utilitzeu filtres optimitzats" + }, + "options_use_optimized_filters_desc": { + "message": "Utilitza versions més curtes de filtres amb només les regles més populars per estalviar trànsit. Més adequat per a navegadors mòbils" + }, + "options_user_rules_clear_search": { + "message": "Netejar la cerca" + }, + "options_user_rules_create_rule": { + "message": "Crear regla" + }, + "options_user_rules_delete_all": { + "message": "Esborra tot" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Totes les regles d'usuari seran eliminades de forma permanent" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Eliminar tot?" + }, + "options_user_rules_delete_all_success": { + "message": "Totes les regles d'usuari s'han eliminat" + }, + "options_user_rules_delete_rule": { + "message": "Elimineu-lo dels filtres d'usuari" + }, + "options_user_rules_deleted_notification": { + "message": "Regla d'usuari eliminada:" + }, + "options_user_rules_description_key": { + "message": "Les teves regles per al bloqueig i desbloqueig d'anuncis o de llocs web sencers" + }, + "options_user_rules_edit_rule": { + "message": "Editar regla" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Aneu a l'editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Les vostres regles apareixeran aquí després que la tanqueu" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor obert en una altra finestra" + }, + "options_user_rules_empty_placeholder": { + "message": "Encara no hi ha regles" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Ressaltant les regles…" + }, + "options_user_rules_import_error": { + "message": "No s'han pogut importar les regles d'usuari. Si us plau, torneu-ho a intentar" + }, + "options_user_rules_import_success": { + "message": "Les regles d'usuari s'han importat correctament" + }, + "options_user_rules_menu": { + "message": "Accions de les regles d'usuari" + }, + "options_user_rules_no_match": { + "message": "No s'ha trobat res" + }, + "options_user_rules_search_placeholder": { + "message": "Búsqueda" + }, + "options_user_rules_switch_to_editor": { + "message": "Canvia a la vista d'editor" + }, + "options_user_rules_switch_to_list": { + "message": "Canvia a la vista de llista" + }, + "options_user_rules_undo": { + "message": "Desfer" + }, + "options_userfilter": { + "message": "Utilitzeu el filtre" + }, + "options_userfilter_description_key": { + "message": "Podeu afegir les vostres pròpies regles aquí. Aquesta opció es recomana per a usuaris avançats familiaritzats amb HTML/CSS. Llegeix el \u003Ca>Tutorial de regles de filtre\u003C/a> per aprendre a escriure les vostres pròpies regles de filtre." + }, + "options_userfilter_export": { + "message": "Exporteu" + }, + "options_userfilter_import": { + "message": "Importeu" + }, + "options_userfilter_leave_subtitle": { + "message": "Els vostres canvis a les regles es perdran" + }, + "options_userfilter_line_break": { + "message": "Salt de línia" + }, + "options_userfilter_line_break_off": { + "message": "Salt de línia: Desactivat" + }, + "options_userfilter_line_break_on": { + "message": "Salt de línia: Activat" + }, + "options_userfilter_subtitle_key": { + "message": "Permet afegir les teves pròpies regles de filtratge" + }, + "popup_abuse_site": { + "message": "Informar d’un problema" + }, + "popup_adguard_footer_title": { + "message": "Protegeix el teu dispositiu mòbil" + }, + "popup_adguard_for_android": { + "message": "AdGuard per a Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard per a iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquegeu anuncis manualment" + }, + "popup_get_system_wide_protection": { + "message": "Aconsegueix protecció a tot el sistema" + }, + "popup_header_cta_link": { + "message": "Com millorar la protecció" + }, + "popup_header_update_filters": { + "message": "Busqueu actualitzacions per als filtres" + }, + "popup_limits_exceeded_warning": { + "message": "El vostre navegador ha modificat la llista de filtres incorporats actius." + }, + "popup_open_filtering_log": { + "message": "Obre el registre de filtratge" + }, + "popup_open_settings": { + "message": "Obre la configuració d'AdGuard" + }, + "popup_protection_button": { + "message": "Protecció d'AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Elimineu les regles d'usuari per aquesta pàgina" + }, + "popup_resume_protection_button": { + "message": "Reprendre" + }, + "popup_security_report": { + "message": "Comproveu la seguretat del lloc web" + }, + "popup_site_exception_information": { + "message": "El filtratge està desactivat perquè pot interferir amb el funcionament d'aquest lloc web." + }, + "popup_site_filtering_state_disabled": { + "message": "La protecció està desactivada" + }, + "popup_site_filtering_state_disabling": { + "message": "Desactivant la protecció..." + }, + "popup_site_filtering_state_enabled": { + "message": "Protecció està activada" + }, + "popup_site_filtering_state_enabling": { + "message": "Activant la protecció..." + }, + "popup_site_filtering_state_loading": { + "message": "Carregant..." + }, + "popup_site_filtering_state_paused": { + "message": "La protecció està en pausa" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausa de la protecció..." + }, + "popup_site_filtering_state_resuming": { + "message": "Reprendrà la protecció..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Pàgina segura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "per a tots els llocs web" + }, + "popup_statistics_all_categories": { + "message": "Tots" + }, + "popup_statistics_category_advertising": { + "message": "Anuncis" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoria d'estadística" + }, + "popup_statistics_category_other": { + "message": "Altres" + }, + "popup_statistics_category_social_media": { + "message": "Mitjans socials" + }, + "popup_statistics_category_trackers": { + "message": "Rastrejadors" + }, + "popup_statistics_months_apr": { + "message": "Abr" + }, + "popup_statistics_months_aug": { + "message": "Ag" + }, + "popup_statistics_months_dec": { + "message": "Des" + }, + "popup_statistics_months_feb": { + "message": "Febr" + }, + "popup_statistics_months_jan": { + "message": "Gen" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Juny" + }, + "popup_statistics_months_mar": { + "message": "Març" + }, + "popup_statistics_months_may": { + "message": "Maig" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Oct" + }, + "popup_statistics_months_sep": { + "message": "Set" + }, + "popup_statistics_time_day": { + "message": "24 hores" + }, + "popup_statistics_time_label": { + "message": "Període de temps de les estadístiques" + }, + "popup_statistics_time_month": { + "message": "30 dies" + }, + "popup_statistics_time_week": { + "message": "7 dies" + }, + "popup_statistics_time_year": { + "message": "1 any" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Dv" + }, + "popup_statistics_week_days_mon": { + "message": "Dl" + }, + "popup_statistics_week_days_sat": { + "message": "Ds" + }, + "popup_statistics_week_days_sun": { + "message": "Dg" + }, + "popup_statistics_week_days_thu": { + "message": "Dj" + }, + "popup_statistics_week_days_tue": { + "message": "Dt" + }, + "popup_statistics_week_days_wed": { + "message": "Dc" + }, + "popup_switch_button": { + "message": "Protecció per al lloc web actual" + }, + "popup_tab_actions": { + "message": "Accions" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloquejat: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloquejat: %num%" + }, + "popup_tab_current_website": { + "message": "Lloc web actual" + }, + "popup_tab_statistics": { + "message": "Estadístiques" + }, + "popup_tabs": { + "message": "Pestanyes" + }, + "popup_tooltip_loading": { + "message": "Carregant..." + }, + "popup_tooltip_protection_disabled": { + "message": "La protecció està desactivada" + }, + "popup_tooltip_protection_enabled": { + "message": "La protecció està activada" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Algunes normes no s'apliquen" + }, + "popup_tooltip_update_available": { + "message": "Actualització disponible" + }, + "post_install_loading": { + "message": "S'està carregant l'extensió..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Límit de regles superat en l'extensió del navegador AdGuard. Comproveu els vostres filtres i desactiveu els que no necessiteu" + }, + "text_collapser_hide_default": { + "message": "Amaga el text complet" + }, + "text_collapser_show_default": { + "message": "Mostra el text complet" + }, + "update_available_desc": { + "message": "Per bloquejar els anuncis de manera eficaç, mantingueu l'extensió i els filtres actualitzats" + }, + "update_available_title": { + "message": "Actualitzacions disponibles" + }, + "update_available_update_btn": { + "message": "Actualitzar" + }, + "update_check": { + "message": "Comprovar si hi ha actualitzacions" + }, + "update_checking_in_progress": { + "message": "S'estan comprovant les actualitzacions..." + }, + "update_failed_text": { + "message": "No s'ha pogut completar l'actualització" + }, + "update_failed_try_again_btn": { + "message": "Intenta-ho de nou" + }, + "update_installing_in_progress_desc": { + "message": "L'extensió es reiniciarà després de l'actualització" + }, + "update_installing_in_progress_title": { + "message": "Actualitzant l'extensió i els filtres..." + }, + "update_not_needed": { + "message": "L'extensió i els filtres estan actualitzats" + }, + "update_success_text": { + "message": "Extensió i filtres actualitzats" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/cs/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/cs/messages.json new file mode 100644 index 0000000..0035993 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/cs/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% byl aktivován automaticky." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatická aktivace filtrů" + }, + "background_tab_title": { + "message": "Karta pozadí" + }, + "blocking_pages_advanced_button": { + "message": "Pokročilé" + }, + "blocking_pages_btn_go_back": { + "message": "Zpět" + }, + "blocking_pages_btn_proceed": { + "message": "Přesto pokračovat" + }, + "blocking_pages_malware": { + "message": "Webová stránka \u003Cstrong>%host%\u003C/strong> byla ohlášena jako škodlivá a na základě Vašich bezpečnostních nastavení byla zablokována." + }, + "blocking_pages_more_info_button": { + "message": "Další informace" + }, + "blocking_pages_page_title": { + "message": "Přístup odepřen" + }, + "blocking_pages_phishing": { + "message": "Webová stránka \u003Cstrong>%host%\u003C/strong> byla ohlášena jako podvodná a na základě Vašich bezpečnostních nastavení byla zablokována." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard zabránil načtení této stránky kvůli následujícímu pravidlu filtru" + }, + "blocking_pages_rule_header_title": { + "message": "Blokováno programem AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard zablokoval přístup na tuto stránku" + }, + "clear_button_title": { + "message": "Vymazat" + }, + "close_button_title": { + "message": "Zavřít" + }, + "context_block_site_ads": { + "message": "Blokovat reklamy ručně" + }, + "context_complaint_website": { + "message": "Nahlásit problém" + }, + "context_disable_protection": { + "message": "Pozastavit ochranu AdGuard" + }, + "context_enable_protection": { + "message": "Obnovit ochranu AdGuard" + }, + "context_open_log": { + "message": "Záznam filtrování" + }, + "context_open_settings": { + "message": "Nastavení AdGuardu" + }, + "context_security_report": { + "message": "Zkontrolovat bezpečnost webové stránky" + }, + "context_site_exception": { + "message": "Tato webová stránka je ve vyjímkách" + }, + "context_site_filtering_disabled": { + "message": "AdGuard nemůže filtrovat tuto stránku" + }, + "context_site_filtering_off": { + "message": "Vypnout filtrování na této stránce" + }, + "context_site_filtering_on": { + "message": "Zapnout filtrování na této stránce" + }, + "context_site_protection_disabled": { + "message": "Ochrana AdGuard je pozastavena" + }, + "context_update_antibanner_filters": { + "message": "Vyhledat aktualizace filtrů" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Nepřekonané rozšíření proti reklamám a vyskakovacím oknům. Blokuje reklamy na Facebooku, YouTube a všech ostatních stránkách." + }, + "filtering_clear_log_events": { + "message": "Vyčistit záznam" + }, + "filtering_log_actions_menu": { + "message": "Log filtrování skcí" + }, + "filtering_log_assumed_rule_description": { + "message": "Jedná se o předpokládané pravidlo. Podrobnosti naleznete v naší \u003Ca>databázi znalostí\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metoda HTTP požadavku" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Kód HTTP stavu" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Požadavky třetích stran" + }, + "filtering_log_details_modal_back_button": { + "message": "Zpět na dotaz" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Vylepšit" + }, + "filtering_log_details_modal_try_again": { + "message": "Zkusit znovu" + }, + "filtering_log_filter_allowed": { + "message": "Povoleno" + }, + "filtering_log_filter_blocked": { + "message": "Blokováno" + }, + "filtering_log_filter_modified": { + "message": "Modifikováno" + }, + "filtering_log_filter_regular": { + "message": "Obvyklý" + }, + "filtering_log_filter_user_rules": { + "message": "Uživatelská pravidla" + }, + "filtering_log_hide_referrer": { + "message": "Referenční ID skryto před třetími stranami" + }, + "filtering_log_hide_search_queries": { + "message": "Vyhledávací dotazy skryty" + }, + "filtering_log_in_allowlist": { + "message": "Stránka je povolena" + }, + "filtering_log_modified_rules": { + "message": "Modifikovaná pravidla: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ano, zachovat" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Tato možnost může významně zvýšit využití paměti" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Zachovat log?" + }, + "filtering_log_preserve_log_off": { + "message": "Nezachovávat log" + }, + "filtering_log_preserve_log_on": { + "message": "Zachovat log" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Znovu nezobrazovat" + }, + "filtering_log_privacy_applied_rules": { + "message": "Ochrana před sledováním zapnuta" + }, + "filtering_log_remove_client_data": { + "message": "Hlavička X-Client-Data odebrána" + }, + "filtering_log_search_string": { + "message": "Hledat" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Hledat v kartách" + }, + "filtering_log_send_not_track": { + "message": "Odeslán příznak Nesledovat (Do-Not-Track)" + }, + "filtering_log_status_allowed": { + "message": "Povoleno" + }, + "filtering_log_status_blocked": { + "message": "Blokováno" + }, + "filtering_log_status_modified": { + "message": "Modifikováno" + }, + "filtering_log_status_processed": { + "message": "Zpracováno" + }, + "filtering_log_stealth_rules": { + "message": "Pravidla ochrany před sledováním: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Původ požadavku" + }, + "filtering_log_tag_request_status": { + "message": "Stav filtrování" + }, + "filtering_log_tag_request_type": { + "message": "Typ požadavku" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Povolené a odblokované požadavky" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokované požadavky" + }, + "filtering_log_tag_tooltip_css": { + "message": "Šablony" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Vlastní požadavky" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenty a subdokumenty" + }, + "filtering_log_tag_tooltip_img": { + "message": "Obrázky" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripty" + }, + "filtering_log_tag_tooltip_media": { + "message": "Média" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Modifikované požadavky" + }, + "filtering_log_tag_tooltip_other": { + "message": "Písma, odezvy, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Požadavky zpracované bez filtrování" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Požadavky třetích stran" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Požadavky ovlivněné uživatelskými pravidly" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttp požadavky a vyvolané požadavky" + }, + "filtering_log_title": { + "message": "Záznam filtrování" + }, + "filtering_menu_open_filters": { + "message": "Přizpůsobit" + }, + "filtering_modal_add_rule": { + "message": "Přidat" + }, + "filtering_modal_allow_title": { + "message": "Přidat pravidlo pro povolení" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Použité pravidlo | Použitá pravidla | Použitých pravidel" + }, + "filtering_modal_apply_domains": { + "message": "Použít pro všechny webové stránky" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Předpokládané pravidlo: | Předpokládaná pravidla: | Předpokládaná pravidla:" + }, + "filtering_modal_block": { + "message": "Blokovat" + }, + "filtering_modal_block_again": { + "message": "Blokovat znovu" + }, + "filtering_modal_block_title": { + "message": "Přidat pravidlo pro blokování" + }, + "filtering_modal_converted_to": { + "message": "Převedeno na:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Zkopírováno" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopírovat do schránky" + }, + "filtering_modal_declarative_rule": { + "message": "DNR pravidlo:" + }, + "filtering_modal_element": { + "message": "Prvek:" + }, + "filtering_modal_exception_title": { + "message": "Přidat výjimku." + }, + "filtering_modal_filter": { + "message": "Filtr" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Stav filtrování" + }, + "filtering_modal_hide_full_element": { + "message": "Skrýt celý prvek" + }, + "filtering_modal_hide_full_rule": { + "message": "Skrýt celé pravidlo" + }, + "filtering_modal_hide_full_url": { + "message": "Skrýt úplnou URL" + }, + "filtering_modal_important": { + "message": "Přiřadit pravidlu vyšší prioritu" + }, + "filtering_modal_info_title": { + "message": "Detaily požadavku" + }, + "filtering_modal_open_in_new_tab": { + "message": "Otevřít na nové kartě" + }, + "filtering_modal_options_desc": { + "message": "Možnosti" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Původní pravidlo: | Původní pravidla: | Původní pravidla:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Co by mělo být povoleno" + }, + "filtering_modal_patterns_desc_block": { + "message": "Co by mělo být blokováno" + }, + "filtering_modal_preview_request_button": { + "message": "Náhled" + }, + "filtering_modal_preview_title": { + "message": "Náhled" + }, + "filtering_modal_privacy": { + "message": "Ochrana před sledováním" + }, + "filtering_modal_remove_allowlist": { + "message": "Odebrat ze seznamu povolených" + }, + "filtering_modal_remove_param": { + "message": "Odebrat parametry dotazu" + }, + "filtering_modal_remove_user": { + "message": "Odstranit pravidlo" + }, + "filtering_modal_rule": { + "message": "Pravidlo:" + }, + "filtering_modal_rule_text_desc": { + "message": "Pravidlo" + }, + "filtering_modal_rules": { + "message": "Pravidla:" + }, + "filtering_modal_show_full_element": { + "message": "Zobrazit celý prvek" + }, + "filtering_modal_show_full_rule": { + "message": "Zobrazit celé pravidlo" + }, + "filtering_modal_show_full_url": { + "message": "Zobrazit celou URL" + }, + "filtering_modal_source": { + "message": "Zdroj" + }, + "filtering_modal_status_text_desc": { + "message": "Stav" + }, + "filtering_modal_status_text_error": { + "message": "Náhled se nepodařilo načíst. Zkuste to prosím znovu" + }, + "filtering_modal_status_text_loading": { + "message": "Načítání..." + }, + "filtering_modal_third_party": { + "message": "Aplikovat pouze na požadavky třetích stran" + }, + "filtering_modal_type": { + "message": "Typ" + }, + "filtering_modal_unblock": { + "message": "Odblokovat" + }, + "filtering_refresh_tab_short": { + "message": "Obnovit" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Obnovit stránka" + }, + "filtering_table_action": { + "message": "Akce" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nic nenalezeno. \u003Creset>Zakázat filtry\u003C/reset> nebo \u003Crefresh>znovu načíst stránku\u003C/refresh> pro zobrazení záznamů logu" + }, + "filtering_table_filter": { + "message": "Filtr" + }, + "filtering_table_open_details": { + "message": "Otevřít podrobnosti" + }, + "filtering_table_rule": { + "message": "Pravidlo filtrování" + }, + "filtering_table_source": { + "message": "Zdroj" + }, + "filtering_table_status": { + "message": "Stav" + }, + "filtering_table_type": { + "message": "Typ" + }, + "filtering_type_all": { + "message": "Vše" + }, + "filtering_type_other": { + "message": "Ostatní" + }, + "filters_download_loading": { + "message": "Prosím čekejte, databáze filtrů se načítá..." + }, + "filters_download_title": { + "message": "Databáze filtrů se načítá..." + }, + "fullscreen_user_rules_title": { + "message": "Uživatelská pravidla" + }, + "group_description_adblocking": { + "message": "Zde nakonfigurujte blokování reklam, abyste mohli jednou provždy zapomenout na otravné bannery, vyskakovací okna, videoreklamy atd" + }, + "group_description_annoyances": { + "message": "Odstranit vyskakovací okna a další nepříjemná oznámení, jako jsou upozornění na soubory cookie" + }, + "group_description_custom": { + "message": "Vytvořte si vlastní filtry, které doladí filtrování webu podle vašich preferencí." + }, + "group_description_lang": { + "message": "Neomezujte se — blokujte reklamy na webech v jakýchkoli jazycích" + }, + "group_description_miscellaneous": { + "message": "Další nastavení pro ještě lepší konfiguraci Vašeho procházení webu s AdGuardem" + }, + "group_description_security": { + "message": "Chraňte se před škodlivým kódem, krádeží identity a dalšími online hrozbami" + }, + "group_description_social": { + "message": "Skrýt nechtěná tlačítka \"Like\"/\"Share\" a další widgety sociálních sítí" + }, + "group_description_stealth": { + "message": "Režim utajení chrání vaši identitu a citlivé osobní informace od tisíců online slídičů blokováním všech známých populárních metod sledování" + }, + "name": { + "message": "Blokátor reklam AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "Znovu nezobrazovat" + }, + "opera_search_permission_go_to_settings": { + "message": "Přejít do Nastavení" + }, + "opera_search_permission_warning": { + "message": "Pro blokování reklam ve vyhledávání povolit přístup k výsledkům vyhledávání v nastavení prohlížeče" + }, + "options_about": { + "message": "O programu" + }, + "options_about_libs": { + "message": "Použité knihovny" + }, + "options_about_title": { + "message": "Rozšíření prohlížeče AdGuard" + }, + "options_about_update_available": { + "message": "Verze %version% je k dispozici. Bude automaticky stažena a nainstalována." + }, + "options_about_version": { + "message": "Verze" + }, + "options_acknowledgment": { + "message": "Poděkování" + }, + "options_add_custom_filter": { + "message": "Přidat vlastní filtr" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Přidat" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Kontrola filtru..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL vrátila stránka webu místo seznamu filtrů. Zadejte prosím přímý odkaz na soubor filtru." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Zkuste to znovu nebo kontaktujte podporu" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nepodařilo se přidat vlastní filtr" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Název filtru:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Důvěryhodný" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Důvěryhodné filtry mohou používat výkonné modifikátory pravidel – ujistěte se, že používáte filtr od důvěryhodných vývojářů" + }, + "options_add_custom_filter_modal_title": { + "message": "Přidat vlastní filtr" + }, + "options_all_limits_exceeded_warning": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel. Váš prohlížeč upravil seznam aktivních vestavěných filtrů. Počet povolených filtrů se změnil z %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel prohlížeče. Váš prohlížeč omezil seznam aktivních vestavěných filtrů z %expected% na %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Váš prohlížeč omezuje \u003Cexternal-link>některé typy pravidel\u003C/external-link>. Chcete-li použít všechna pravidla, přepněte \u003Cb>Povolit uživatelské skripty\u003C/b> v \u003Csettings-link>nastavení rozšíření\u003C/settings-link> vašeho prohlížeče" + }, + "options_allowlist": { + "message": "Seznam povolených" + }, + "options_allowlist_alert_invert": { + "message": "Seznam povolených funguje na principu inverze. Reklamy jsou blokovány pouze na webových stránkách, které jsou do něj zařazeny." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Zastavit invertování\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard neblokuje reklamy a slídiče na webových stránkách ze seznamu" + }, + "options_allowlist_invalid_entries": { + "message": "Pro uložení ponechte pouze domény nebo URL. Tyto je třeba opravit: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertovat seznam povolených" + }, + "options_allowlist_invert_desc": { + "message": "Blokuje reklamy a slídiče pouze na webových stránkách na seznamu povolených" + }, + "options_allowlist_leave_subtitle": { + "message": "Vaše změny v seznamu povolených budou ztraceny" + }, + "options_allowlist_menu": { + "message": "Akce seznamu povolených" + }, + "options_anonymized_usage_data_description": { + "message": "Odesílá anonymní statistiky o používání rozšíření do AdGuardu. \u003Cbutton>Další informace\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Rozumím" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Tato data obsahují:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Názvy tlačítek, na která kliknete" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Názvy obrazovek, se kterými pracujete" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifikátory relace" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Tato data jsou anonymní a používají se pouze interně. Nikdy je nesdílíme s třetími stranami" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Tyto informace potřebujeme k analýze a zlepšování funkčnosti AdGuardu" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Údaje o používání rozšíření" + }, + "options_anonymized_usage_data_title": { + "message": "Odesílat anonymizovaná data o používání rozšíření" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Tento vlastní filtr byl již přidán" + }, + "options_antibanner_custom_group": { + "message": "Vlastní" + }, + "options_antibanner_custom_group_description": { + "message": "Umožňuje přidat filtry ze souboru nebo URL adresy" + }, + "options_antibanner_rules_count": { + "message": "Pravidla: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Aktualizováno: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokovat reklamy ve vyhledávání a vlastní propagaci na webových stránkách" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokuje reklamy ve výsledcích vyhledávání a vlastní propagaci webových stráneků \u003Ca>Další informace\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Chcete-li cookies zablokovat, nastavte životnost na 0" + }, + "options_block_known_trackers_description": { + "message": "Blokuje slídiče a nástroje pro webovou analýzu pomocí AdGuard filtru ochrany sledování" + }, + "options_block_known_trackers_title": { + "message": "Blokovat slídiče" + }, + "options_check_update_progress": { + "message": "Kontroluji..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Vyčistit" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Všechny statistiky o využití dat budou trvale smazány" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Vyčistit statistiky?" + }, + "options_clipboard_permission_warning": { + "message": "Chcete-li kopírovat a vkládat pravidla, povolte AdGuard přístup ke schránce. \u003Ca>Povolit\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Odesílá anonymní statistiky o používání filtrů do AdGuardu. \u003Ca>Další informace\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomozte nám vyvinout AdGuard filtry" + }, + "options_coming_soon": { + "message": "Již brzy" + }, + "options_confirm_modal_cancel_button": { + "message": "Zrušit" + }, + "options_copyright": { + "message": "Všechna práva vyhrazena." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Chcete-li použít vlastní filtry, povolte \u003Cb>Povolit uživatelské skripty\u003C/b> v \u003Csettings-link>nastavení rozšíření\u003C/settings-link> vašeho prohlížeče" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Chcete-li použít vlastní filtry, povolte \u003Cb>Režim pro vývojáře\u003C/b> v \u003Csettings-link>nastavení rozšíření\u003C/settings-link> vašeho prohlížeče" + }, + "options_desktop_app_promo_button_linux": { + "message": "Získat AdGuard pro Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Získat AdGuard pro Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Získat AdGuard pro Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikace jako Spotify, Discord nebo Zoom mohou stále zobrazovat reklamy a sledovat vaši aktivitu" + }, + "options_desktop_app_promo_subdescription": { + "message": "Naše desktop aplikace vás před nimi může chránit" + }, + "options_desktop_app_promo_title": { + "message": "Rozšíření chrání pouze prohlížeč" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Váš prohlížeč omezuje \u003Cexternal-link>některé typy pravidel\u003C/external-link>. Chcete-li použít všechna pravidla, povolte \u003Cb>Režim pro vývojáře\u003C/b> v \u003Csettings-link>nastavení rozšíření\u003C/settings-link> vašeho prohlížeče" + }, + "options_disable_webrtc_desc": { + "message": "Blokuje WebRTC, které může prozradit vaši skutečnou IP adresu, i když používáte proxy server nebo VPN.\nNěkteré messengery, streamovací platformy nebo hry mohou přestat správně fungovat" + }, + "options_disable_webrtc_title": { + "message": "Blokovat WebRTC" + }, + "options_discuss": { + "message": "Diskuse AdGuard" + }, + "options_do_you_like_question": { + "message": "Líbí se vám AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Ukončit režim okna" + }, + "options_editor_indicator_saved": { + "message": "Uloženo" + }, + "options_editor_indicator_saving": { + "message": "Ukládání..." + }, + "options_editor_leave_cancel": { + "message": "Zpět k úpravám" + }, + "options_editor_leave_confirm": { + "message": "Ano, odejít" + }, + "options_editor_leave_title": { + "message": "Odejít bez uložení?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Otevřít editor v novém okně" + }, + "options_editor_save": { + "message": "Uložit" + }, + "options_editor_save_error": { + "message": "Nepodařilo se uložit změny. Zkuste to znovu nebo kontaktujte podporu" + }, + "options_empty_custom_filter": { + "message": "Zatím nemáte žádné vlastní filtry" + }, + "options_enable_autodetect_filter": { + "message": "Aktivovat nejvhodnější filtry automaticky" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detekuje jazyk webových stránek a aktivuje příslušné filtry" + }, + "options_export_settings": { + "message": "Uložit nastavení" + }, + "options_filters": { + "message": "Filtry" + }, + "options_filters_annoyances_consent_description": { + "message": "Chystáte se povolit jeden nebo více Filtrů obtěžování. Blokují prvky, které buď nesouvisejí s obsahem webu, nebo s ním souvisejí, ale obtěžují uživatele. Majitelé webových stránek mohou tyto prvky považovat za povinné: pokud je zablokujete, můžete porušit jejich podmínky; některé funkce webových stránek nemusí být dostupné nebo nemusí fungovat správně. Chápete a souhlasíte s tím, že jste výhradně zodpovědní za dodržování podmínek používání vámi navštívených webových stránek a že AdGuard není zodpovědný za dodržování podmínek používání vámi navštívených webových stránek." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Povolit" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Domovská stránka" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Podrobnosti o tom, co filtry AdGuardu blokují, najdete v \u003Ca>Zásadách filtrování\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Povolit tyto filtry?" + }, + "options_filters_annoyances_consent_title": { + "message": "Před povolením Filtrů obtěžování buďte opatrní" + }, + "options_filters_back_button": { + "message": "Zpět" + }, + "options_filters_empty_title": { + "message": "Nic nenalezeno" + }, + "options_filters_enabled": { + "message": "Povoleno:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% a %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% a %more% další" + }, + "options_filters_enabled_per_group": { + "message": "Povoleno: %current% z/ze %total%" + }, + "options_filters_filter_link": { + "message": "Přejít na domovskou stránku" + }, + "options_filters_filter_tags": { + "message": "Značky filtru" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Zvolili jste si důvěřovat tomuto filtru." + }, + "options_filters_filter_updated": { + "message": "aktualizováno:" + }, + "options_filters_filter_version": { + "message": "verze:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Celkem pravidel: %num%" + }, + "options_filters_last_checked": { + "message": "Naposledy zkontrolováno: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Všechny filtry" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Vypnuto" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Zapnuto" + }, + "options_filters_no_enabled": { + "message": "Nebyly povoleny žádné filtry" + }, + "options_filters_of_group": { + "message": "Filtry skupiny \"%groupName%\"" + }, + "options_filters_search": { + "message": "Hledat" + }, + "options_filters_search_filter": { + "message": "Vyhledat filtr" + }, + "options_first_party_block_cookies_warning": { + "message": "Pokud tyto soubory cookies zablokujete, některé webové stránky se mohou rozhodit nebo přestat fungovat" + }, + "options_first_party_desc": { + "message": "Zabraňuje webovým stránkám zapamatovat si vaše údaje, například přihlašovací údaje a jazykové preference, tím, že omezuje životnost vlastních souborů cookies" + }, + "options_first_party_title": { + "message": "Smazat vlastní cookies (není doporučeno)" + }, + "options_general_settings": { + "message": "Obecné" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Zabraňuje třetím stranám rozpoznat, které webové stránky jste navštívili" + }, + "options_hide_referrer_title": { + "message": " Skrýt třetím stranám referenční ID" + }, + "options_hide_search_queries_desc": { + "message": "Skrývá vaše vyhledávání z webových stránek navštívených prostřednictvím výsledků vyhledávání" + }, + "options_hide_search_queries_title": { + "message": "Skrýt vyhledávací dotazy" + }, + "options_import_configuration_applying_subtitle": { + "message": "Nahrazení aktuálního nastavení importovaným nastavením. Filtrování je během importu vypnuto" + }, + "options_import_configuration_applying_title": { + "message": "Importování..." + }, + "options_import_configuration_confirm_button": { + "message": "Importovat" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Importovaná nastavení nahradí vaše aktuální. Ostatní nastavení nebudou ovlivněna" + }, + "options_import_configuration_confirm_title": { + "message": "Import nastavení" + }, + "options_import_configuration_error_button": { + "message": "Zavřít" + }, + "options_import_configuration_error_subtitle": { + "message": "Zkontrolujte prosím odkaz pro import a zkuste to znovu. Pokud to nepomůže, kontaktujte podporu" + }, + "options_import_configuration_error_title": { + "message": "Nastavení se nepodařilo importovat" + }, + "options_import_configuration_success_button": { + "message": "Zavřít" + }, + "options_import_configuration_success_subtitle": { + "message": "Nastavení byla úspěšně importována" + }, + "options_import_configuration_success_title": { + "message": "Vše je hotovo" + }, + "options_import_settings": { + "message": "Načíst nastavení" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertovat" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklamy a slídiče budou blokování pouze na webových stránkách ze seznamu povolených" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invertovat seznam povolených?" + }, + "options_leave_feedback": { + "message": "Zanechat zpětnou vazbu" + }, + "options_lifetime_minutes": { + "message": "Životnost v minutách" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Dosáhli jste limitu počtu pravidel regex přidaných uživateli. Je povoleno %maximum% z %current% pravide regexl." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Dosáhli jste limitu počtu pravidel regex přidaných uživateli. %maximum% z %current% pravidel jsou povolena. Chcete-li přidat nová pravidla regex, odeberte některá stávající" + }, + "options_limits_warning_dynamic_rules": { + "message": "Dosáhli jste limitu počtu pravidel přidaných uživateli. Je povoleno %maximum% z %current% pravidel." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Dosáhli jste limitu počtu pravidel přidaných uživateli. %maximum% z %current% pravidel jsou povolena. Chcete-li přidat nová pravidla, odeberte některá stávající" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Dosáhli jste limitu počtu nebezpečných pravidel přidaných uživateli. Je povoleno %maximum% z %current% nebezpečných pravidel." + }, + "options_limits_warning_static_filters": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných filtrů. Je povoleno %maximum% z %current% filtrů. Chcete-li aktivovat nová pravidla, zakažte některé vestavěné filtry." + }, + "options_limits_warning_static_filters_browser": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných filtrů prohlížeče. %maximum% z %current% filtrů jsou povoleny. Chcete-li aktivovat nové filtry, vypněte některé vestavěné" + }, + "options_limits_warning_static_regex_rules": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel regex. Je povoleno %maximum% z %current% pravidel regex. Chcete-li aktivovat nová pravidla, zakažte některé vestavěné filtry." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel regex. Chcete-li aktivovat nová pravidla, vypněte některé vestavěné filtry" + }, + "options_limits_warning_static_rules": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel. Je povoleno %maximum% z %current% pravidel. Chcete-li aktivovat nová pravidla, zakažte některé vestavěné filtry." + }, + "options_limits_warning_static_rules_browser": { + "message": "Dosáhli jste limitu počtu aktivních vestavěných pravidel prohlížeče. Chcete-li aktivovat nová pravidla, vypněte některé vestavěné filtry" + }, + "options_loader_applying_changes": { + "message": "Aplikuji změny..." + }, + "options_miscellaneous_settings": { + "message": "Další nastavení" + }, + "options_modified_first_party_cookie": { + "message": "Vlastní cookie modifikovány" + }, + "options_modified_third_party_cookie": { + "message": "Cookie třetích stran modifikovány" + }, + "options_nav_better_than_extension": { + "message": "Proč je aplikace AdGuard lepší než rozšíření?" + }, + "options_nav_compare": { + "message": "Porovnat" + }, + "options_navigation": { + "message": "Navigace" + }, + "options_open_changelog": { + "message": "Seznam změn" + }, + "options_open_log": { + "message": "Otevřít záznam filtrování" + }, + "options_popup_call_to_action": { + "message": "Zadejte platnou adresu URL nebo cestu k souboru filtru do výše uvedeného vstupního pole." + }, + "options_popup_check_false_description": { + "message": "Chyba při přidávání vlastního filtru" + }, + "options_popup_check_false_title": { + "message": "Chyba" + }, + "options_popup_checking_filter": { + "message": "Kontrola filtru" + }, + "options_popup_description": { + "message": "Budete přihlášeni k odběru tohoto filtru." + }, + "options_popup_filter_description": { + "message": "Popis:" + }, + "options_popup_filter_homepage": { + "message": "Domovská stránka:" + }, + "options_popup_filter_rules_count": { + "message": "Počet pravidel:" + }, + "options_popup_filter_title": { + "message": "Název:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Verze:" + }, + "options_popup_import_error_file_description": { + "message": "Něco se pokazilo." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Chcete-li importovat tento soubor s nastavením, povolte AdGuardu změnit nastavení týkající se ochrany osobních údajů." + }, + "options_popup_import_error_title": { + "message": "Nastavení se nepodařilo importovat" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Přípona souboru rozšíření musí být %extension%" + }, + "options_popup_import_success_title": { + "message": "Nastavení importována" + }, + "options_popup_next_button": { + "message": "Další" + }, + "options_popup_subscribe_button": { + "message": "Odebírat" + }, + "options_popup_title_placeholder": { + "message": "Zadejte název filtru" + }, + "options_popup_trusted_filter_description": { + "message": "Důvěryhodné filtry můžou používat silné modifikátory pravidel filtrování, které můžou být v nesprávných rukou nebezpečné. Toto políčko nezaškrtněte, pokud tomu nedůvěřujete." + }, + "options_popup_trusted_filter_title": { + "message": "Důvěryhodný" + }, + "options_popup_try_again_button": { + "message": "Zkusit znovu" + }, + "options_popup_update_error": { + "message": "Nepovedlo se získat aktualizace. Prosím opakujte později." + }, + "options_popup_update_filter": { + "message": "byl aktualizován." + }, + "options_popup_update_filters": { + "message": "byly aktualizovány." + }, + "options_popup_update_not_found": { + "message": "Vaše filtry jsou aktuální" + }, + "options_popup_update_title_error": { + "message": "Chyba při aktualizaci filtrů" + }, + "options_popup_updating_filters": { + "message": "Aktualizuji filtry..." + }, + "options_popup_url_placeholder": { + "message": "Zadejte URL nebo cestu" + }, + "options_popup_url_title": { + "message": "Odběr nového filtru" + }, + "options_popup_version_update_changelog_text": { + "message": "Co je nového v této verzi?" + }, + "options_popup_version_update_description_major": { + "message": "Jedná se o zásadní aktualizaci rozšíření, která přináší spoustu nových funkcí a vylepšení." + }, + "options_popup_version_update_description_minor": { + "message": "Tato verze obsahuje většinou opravy chyb a drobná vylepšení." + }, + "options_popup_version_update_disable_notification": { + "message": "Zakázat oznámení" + }, + "options_popup_version_update_offer": { + "message": "Věděli jste, že funkce AdGuardu nejsou pro tento prohlížeč omezeny?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ZJISTIT VÍCE" + }, + "options_popup_version_update_title_text": { + "message": "Rozšíření AdGuardu bylo aktualizováno na verzi %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Způsobí, že WebRTC bude používat přísnější politiku IP adres, aby pomohla udržet vaši skutečnou IP adresu skrytou při použití proxy nebo VPN." + }, + "options_prevent_webrtc_leaks_title": { + "message": "Zabránit únikům IP adresy prostřednictvím WebRTC" + }, + "options_privacy": { + "message": "Ochrana před sledováním" + }, + "options_privacy_desc": { + "message": "Chrání vaši online aktivitu a osobní údaje před webovými slídiči" + }, + "options_privacy_policy": { + "message": "Zásady ochrany osobních údajů" + }, + "options_privacy_title": { + "message": "Ochrana před sledováním" + }, + "options_rate_us_cta": { + "message": "Ohodnoťte nás" + }, + "options_remove_client_data_desc": { + "message": "Zabraňuje prohlížeči Google Chrome odesílat informace o jeho verzích a změnách doménám Google" + }, + "options_remove_client_data_title": { + "message": "Odstranit X-Client-Data hlavičku" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Odstranit" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Odebrat tento filtr?" + }, + "options_report_bug": { + "message": "Nahlásit chybu" + }, + "options_reset_settings": { + "message": "Resetovat nastavení" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Resetovat" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Všechna nastavení budou reset na výchozí hodnoty" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Resetovat nastavení?" + }, + "options_reset_settings_done": { + "message": "Nastavení byla resetována" + }, + "options_reset_settings_error": { + "message": "Chyba při resetování nastavení" + }, + "options_reset_stats": { + "message": "Vyčistit statistiky" + }, + "options_reset_stats_done": { + "message": "Statistiky byly vynulovány" + }, + "options_rule_limits": { + "message": "Limity pravidel" + }, + "options_rule_limits_description": { + "message": "Chrome omezuje počet pravidel, která lze použít" + }, + "options_rule_limits_dynamic": { + "message": "Dynamická pravidla" + }, + "options_rule_limits_dynamic_regex": { + "message": "Pravidla regex — zahrnuta v pravidlech přidaných uživatelem" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nebezpečná dynamická pravidla (používaná pro některé pokročilé modifikátory, např. $$redirect nebo $$cookie) — zahrnuta v pravidlech přidaných uživatelem" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Pravidla přidaná uživateli, jako jsou \u003Cuser_rules>uživatelská pravidla\u003C/user_rules>, \u003Callowlist>seznam povolených webů\u003C/allowlist> a \u003Ccustom_filters>vlastní filtry\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Pravidla přidaná uživatelem, např. \u003Cuser_rules>uživatelská pravidla\u003C/user_rules> a \u003Callowlist>seznam zakázaných webů\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% z %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statická pravidla" + }, + "options_rule_limits_static_rules_all": { + "message": "Pravidla z \u003Ca>vestavěných filtrů\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Pravidla regex — zahrnuta výše" + }, + "options_rule_limits_static_rulesets": { + "message": "Statické sady pravidel" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Vestavěné filtry\u003C/a>, například Blokování obtěžování nebo Jazykově specifické filtry" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Možnost 3. Pokud vám vyhovují aktuálně povolené výchozí filtry, \u003Ca>zavřete toto upozornění.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Možnost 3. Pokud vám vyhovují aktuálně povolené výchozí filtry, \u003Ca>zavřete toto upozornění.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Možnost 1. Odstraňte z prohlížeče nepotřebná rozšíření blokování reklam. Chcete-li znovu aktivovat filtry uvedené v části \"Filtry povolené před aktualizací\", klikněte na tlačítko \u003Ca>znovu aktivovat filtry.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Možnost 2. Nainstalujte si aplikaci blokátor reklam AdGuard: nemá žádná omezení pravidel filtrování. \u003Ca>Získat aplikaci AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vaše možné akce" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Po aktualizaci nebo přidání nového rozšíření byl překročen limit aktivních vestavěných pravidel. Podle Manifest V3 prohlížeč Chrome reagoval tak, že zakázal všechny vestavěné filtry rozšíření kromě výchozích." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Co se stalo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtry povolené před aktualizací" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtry jsou nyní aktivovány" + }, + "options_rule_limits_warning_title": { + "message": "Prohlížeč upravil seznam aktivních filtrů" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Odeberte omezení pravidel a získejte rozšířenou ochranu, která funguje napříč všemi prohlížeči" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Nainstalujte desktopovou aplikaci" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Přejít na filtry" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Spravovat rozšíření" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Rozšíření prohlížeče sdílejí stejný limit počtu pravidel. Odebrání jiných blokátorů reklam může uvolnit více pravidel pro rozšíření prohlížeče AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Odeberte jiné blokátory reklam" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Povolte filtry, které potřebujete. Jazykově specifické filtry a filtry pro ochranu soukromí mohou používat mnoho pravidel" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Zkontrolujte dostupné filtry" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Zde je návod, co dělat" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limit dosažen — některé filtry byly deaktivovány" + }, + "options_rule_syntax": { + "message": "Syntaxe pravidel" + }, + "options_safebrowsing_enabled": { + "message": "Ochrana proti phishingu a škodlivému softwaru" + }, + "options_safebrowsing_enabled_desc": { + "message": "Varuje před škodlivými a phishingovými webovými stránkami pomocí modulu Bezpečné prohlížení AdGuardu. \u003Ca>Další informace\u003C/a>" + }, + "options_select_theme": { + "message": "Motiv" + }, + "options_select_update_period_12h": { + "message": "12 hodin" + }, + "options_select_update_period_1h": { + "message": "1 hodina" + }, + "options_select_update_period_24h": { + "message": "24 hodin" + }, + "options_select_update_period_48h": { + "message": "48 hodin" + }, + "options_select_update_period_6h": { + "message": "6 hodin" + }, + "options_select_update_period_default": { + "message": "Výchozí" + }, + "options_select_update_period_disabled": { + "message": "Vypnuto" + }, + "options_send_not_track_desc": { + "message": "Odešle webovým stránkám, které jste navštívili signály \u003Cgpc>Global Privacy Control\u003C/gpc> a \u003Cdnt>Do Not Track\u003C/dnt>" + }, + "options_send_not_track_title": { + "message": "Požádat webové stránky, aby mě nesledovaly" + }, + "options_set_update_interval": { + "message": "Automatická aktualizace filtrů" + }, + "options_set_update_interval_desc": { + "message": "Udržuje filtry aktuální pro efektivnější blokování reklam" + }, + "options_settings": { + "message": "Nastavení AdGuardu" + }, + "options_share_settings": { + "message": "Sdílet nastavení" + }, + "options_show_adguard_full_version_title": { + "message": "Zobrazit informace o plné verzi AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Upozornit na aktualizace rozšíření" + }, + "options_show_blocked_ads_count_title": { + "message": "Uvést počet blokovaných reklam na ikoně rozšíření AdGuard" + }, + "options_show_context_menu_title": { + "message": "Přidat položku AdGuard do kontextového menu prohlížeče" + }, + "options_site": { + "message": "Oficiální stránka" + }, + "options_skip_to_main_content": { + "message": "Přejít k hlavnímu obsahu" + }, + "options_stealth_general_title": { + "message": "Obecné" + }, + "options_stealth_miscellaneous_title": { + "message": "Různé" + }, + "options_stealth_tracking_methods_title": { + "message": "Metody sledování" + }, + "options_strip_tracking_params_description": { + "message": "Odstraní sledovací parametry z adres URL stránek pomocí AdGuard filtru ochrany sledování" + }, + "options_strip_tracking_params_title": { + "message": "Odebrat sledovací parametry z URL" + }, + "options_stripped_tracking_parameters": { + "message": "Sledovací parametry odstraněny" + }, + "options_theme_selector_dark": { + "message": "Tmavý" + }, + "options_theme_selector_light": { + "message": "Světlý" + }, + "options_theme_selector_system": { + "message": "Výchozí systému" + }, + "options_third_party_block_cookies_warning": { + "message": "Pokud tyto soubory cookies zablokujete, může se stát, že se budete muset na některé webové stránky znovu přihlásit nebo se setkáte s jinými problémy souvisejícími se soubory cookies" + }, + "options_third_party_desc": { + "message": "Zabraňuje inzerentům sledovat vaše chování na více stránkách tím, že omezuje životnost souborů cookies třetích stran" + }, + "options_third_party_title": { + "message": "Odstranit soubory cookie třetích stran" + }, + "options_update_antibanner_filters": { + "message": "Vyhledat aktualizace filtrů" + }, + "options_use_optimized_filters": { + "message": "Použít optimalizované filtry" + }, + "options_use_optimized_filters_desc": { + "message": "Používá kratší verze filtrů pouze s nejoblíbenějšími pravidly, aby se ušetřil datový provoz. Vhodnější pro mobilní prohlížeče" + }, + "options_user_rules_clear_search": { + "message": "Vyčistit vyhledávání" + }, + "options_user_rules_create_rule": { + "message": "Vytvořit pravidlo" + }, + "options_user_rules_delete_all": { + "message": "Vymazat vše" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Všechna uživatelská pravidla budou trvale vymazána" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Vymazat vše?" + }, + "options_user_rules_delete_all_success": { + "message": "Všechna uživatelská pravidla smazána" + }, + "options_user_rules_delete_rule": { + "message": "Odstranit pravidlo" + }, + "options_user_rules_deleted_notification": { + "message": "Uživatelské pravidlo smazáno:" + }, + "options_user_rules_description_key": { + "message": "Vaše pravidla pro blokování a odblokování reklam nebo celých webových stránek" + }, + "options_user_rules_edit_rule": { + "message": "Upravit pravidlo" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Přejít do editoru" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Po zavření se zde zobrazí vaše pravidla" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor otevřený v jiném okně" + }, + "options_user_rules_empty_placeholder": { + "message": "Zatím žádná pravidla" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Zvýrazňování pravidel…" + }, + "options_user_rules_import_error": { + "message": "Nepodařilo se importovat uživatelská pravidla. Zkuste to znovu" + }, + "options_user_rules_import_success": { + "message": "Uživatelská pravidla úspěšně importována" + }, + "options_user_rules_menu": { + "message": "Akce uživatelských pravidel" + }, + "options_user_rules_no_match": { + "message": "Nic nenalezeno" + }, + "options_user_rules_search_placeholder": { + "message": "Hledat" + }, + "options_user_rules_switch_to_editor": { + "message": "Přepnout do zobrazení editoru" + }, + "options_user_rules_switch_to_list": { + "message": "Přepnout do zobrazení seznamu" + }, + "options_user_rules_undo": { + "message": "Zpět" + }, + "options_userfilter": { + "message": "Uživatelská pravidla" + }, + "options_userfilter_description_key": { + "message": "Zde můžete přidat svá vlastní pravidla. Tato možnost je doporučena pro pokročilé uživatele obeznámené s HTML/CSS. Přečtěte si \u003Ca>návod pravidel filtrován \u003C/a>, kde se dozvíte, jak napsat vlastní pravidla filtrování." + }, + "options_userfilter_export": { + "message": "Exportovat" + }, + "options_userfilter_import": { + "message": "Importovat" + }, + "options_userfilter_leave_subtitle": { + "message": "Vaše změny pravidel budou ztraceny" + }, + "options_userfilter_line_break": { + "message": "Zalomení řádků" + }, + "options_userfilter_line_break_off": { + "message": "Zalomení řádku: povoleno" + }, + "options_userfilter_line_break_on": { + "message": "Zalomení řádku: povoleno" + }, + "options_userfilter_subtitle_key": { + "message": "Umožňuje přidat vlastní pravidla filtrování" + }, + "popup_abuse_site": { + "message": "Nahlásit problém" + }, + "popup_adguard_footer_title": { + "message": "Chraňte své mobilní zařízení" + }, + "popup_adguard_for_android": { + "message": "AdGuard pro Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard pro iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokovat reklamy ručně" + }, + "popup_get_system_wide_protection": { + "message": "Získejte ochranu v rámci celého systému" + }, + "popup_header_cta_link": { + "message": "Jak zlepšit ochranu" + }, + "popup_header_update_filters": { + "message": "Vyhledat aktualizace filtrů" + }, + "popup_limits_exceeded_warning": { + "message": "Váš prohlížeč upravil seznam aktivních vestavěných filtrů" + }, + "popup_open_filtering_log": { + "message": "Otevřít záznam filtrování" + }, + "popup_open_settings": { + "message": "Otevřete nastavení AdGuardu" + }, + "popup_protection_button": { + "message": "AdGuard ochrana" + }, + "popup_reset_page_user_rules": { + "message": "Vymazat uživatelská pravidla pro tento web" + }, + "popup_resume_protection_button": { + "message": "Obnovit" + }, + "popup_security_report": { + "message": "Zkontrolovat bezpečnost webové stránky" + }, + "popup_site_exception_information": { + "message": "Filtrování je vypnuto, protože může narušit provoz tohoto webu." + }, + "popup_site_filtering_state_disabled": { + "message": "Ochrana je vypnuta" + }, + "popup_site_filtering_state_disabling": { + "message": "Ukončování ochrany..." + }, + "popup_site_filtering_state_enabled": { + "message": "Ochrana je zapnuta" + }, + "popup_site_filtering_state_enabling": { + "message": "Spouštění ochrany..." + }, + "popup_site_filtering_state_loading": { + "message": "Načítání..." + }, + "popup_site_filtering_state_paused": { + "message": "Ochrana je pozastavena" + }, + "popup_site_filtering_state_pausing": { + "message": "Pozastavuji ochranu..." + }, + "popup_site_filtering_state_resuming": { + "message": "Obnovuji ochranu..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Zabezpečená stránka" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "pro všechny webové stránky" + }, + "popup_statistics_all_categories": { + "message": "Vše" + }, + "popup_statistics_category_advertising": { + "message": "Reklamy" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategorie statistik" + }, + "popup_statistics_category_other": { + "message": "Ostatní" + }, + "popup_statistics_category_social_media": { + "message": "Sociální média" + }, + "popup_statistics_category_trackers": { + "message": "Slídiče" + }, + "popup_statistics_months_apr": { + "message": "Duben" + }, + "popup_statistics_months_aug": { + "message": "Srpen" + }, + "popup_statistics_months_dec": { + "message": "Prosinec" + }, + "popup_statistics_months_feb": { + "message": "Únor" + }, + "popup_statistics_months_jan": { + "message": "Leden" + }, + "popup_statistics_months_jul": { + "message": "Červenec" + }, + "popup_statistics_months_jun": { + "message": "Červen" + }, + "popup_statistics_months_mar": { + "message": "Březen" + }, + "popup_statistics_months_may": { + "message": "Květen" + }, + "popup_statistics_months_nov": { + "message": "Listopad" + }, + "popup_statistics_months_oct": { + "message": "Říjen" + }, + "popup_statistics_months_sep": { + "message": "Září" + }, + "popup_statistics_time_day": { + "message": "24 hodin" + }, + "popup_statistics_time_label": { + "message": "Časové období statistik" + }, + "popup_statistics_time_month": { + "message": "30 dní" + }, + "popup_statistics_time_week": { + "message": "7 dní" + }, + "popup_statistics_time_year": { + "message": "1 rok" + }, + "popup_statistics_total": { + "message": "Celkem" + }, + "popup_statistics_week_days_fri": { + "message": "Pátek" + }, + "popup_statistics_week_days_mon": { + "message": "Pondělí" + }, + "popup_statistics_week_days_sat": { + "message": "Sobota" + }, + "popup_statistics_week_days_sun": { + "message": "Neděle" + }, + "popup_statistics_week_days_thu": { + "message": "Čtvrtek" + }, + "popup_statistics_week_days_tue": { + "message": "Úterý" + }, + "popup_statistics_week_days_wed": { + "message": "Středa" + }, + "popup_switch_button": { + "message": "Ochrana současných webových stránek" + }, + "popup_tab_actions": { + "message": "Akce" + }, + "popup_tab_blocked_all_count": { + "message": "Celkem zablokováno: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokováno: %num%" + }, + "popup_tab_current_website": { + "message": "Aktuální webová stránka" + }, + "popup_tab_statistics": { + "message": "Statistiky" + }, + "popup_tabs": { + "message": "Karty" + }, + "popup_tooltip_loading": { + "message": "Načítání..." + }, + "popup_tooltip_protection_disabled": { + "message": "Ochrana je vypnuta" + }, + "popup_tooltip_protection_enabled": { + "message": "Ochrana zapnuta" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Některá pravidla nebyla použita" + }, + "popup_tooltip_update_available": { + "message": "Aktualizace je k dispozici" + }, + "post_install_loading": { + "message": "Načítání rozšíření..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "V rozšíření prohlížeče AdGuard byl překročen limit pravidla. Zkontrolujte prosím své filtry a deaktivujte ty, které nepotřebujete" + }, + "text_collapser_hide_default": { + "message": "Skrýt celý text" + }, + "text_collapser_show_default": { + "message": "Zobrazit celý text" + }, + "update_available_desc": { + "message": "Chcete-li účinně blokovat reklamy, udržujte své rozšíření a filtry aktuální" + }, + "update_available_title": { + "message": "Aktualizace jsou k dispozici" + }, + "update_available_update_btn": { + "message": "Aktualizovat" + }, + "update_check": { + "message": "Zkontrolovat aktualizace" + }, + "update_checking_in_progress": { + "message": "Kontroluji aktualizace..." + }, + "update_failed_text": { + "message": "Nepodařilo se dokončit aktualizaci" + }, + "update_failed_try_again_btn": { + "message": "Zkusit znovu" + }, + "update_installing_in_progress_desc": { + "message": "Rozšíření se po aktualizaci restartuje" + }, + "update_installing_in_progress_title": { + "message": "Aktualizace rozšíření a filtrů..." + }, + "update_not_needed": { + "message": "Vaše rozšíření a filtry jsou aktuální" + }, + "update_success_text": { + "message": "Rozšíření a filtry byly aktualizovány" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/da/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/da/messages.json new file mode 100644 index 0000000..b42a9f0 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/da/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name%\" er blevet aktiveret automatisk." + }, + "alert_popup_filter_enabled_title": { + "message": "Auto aktivering af filtrene" + }, + "background_tab_title": { + "message": "Baggrundsfane" + }, + "blocking_pages_advanced_button": { + "message": "Avanceret" + }, + "blocking_pages_btn_go_back": { + "message": "Gå tilbage" + }, + "blocking_pages_btn_proceed": { + "message": "Fortsæt alligevel" + }, + "blocking_pages_malware": { + "message": "Denne webside på \u003Cstrong>%host%\u003C/strong> er blevet anmeldt som en malware-side og er blevet blokeret iht. dine sikkerhedspræferencer." + }, + "blocking_pages_more_info_button": { + "message": "Mere information" + }, + "blocking_pages_page_title": { + "message": "Adgang nægtet" + }, + "blocking_pages_phishing": { + "message": "Denne webside på \u003Cstrong>%host%\u003C/strong> er blevet anmeldt som en phishing-side og er blevet blokeret iht. dine sikkerhedspræferencer." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard har forhindret denne side i at blive indlæst grundet flg. filterregel" + }, + "blocking_pages_rule_header_title": { + "message": "Blokeret af AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard har blokeret adgangen til denne side" + }, + "clear_button_title": { + "message": "Ryd" + }, + "close_button_title": { + "message": "Luk" + }, + "context_block_site_ads": { + "message": "Blokér annoncer manuelt" + }, + "context_complaint_website": { + "message": "Anmeld et problem" + }, + "context_disable_protection": { + "message": "Sæt AdGuard-beskyttelse på pause" + }, + "context_enable_protection": { + "message": "Genoptag AdGuard-beskyttelse" + }, + "context_open_log": { + "message": "Filtreringslog" + }, + "context_open_settings": { + "message": "AdGuard-indstillinger" + }, + "context_security_report": { + "message": "Tjek webstedets sikkerhed" + }, + "context_site_exception": { + "message": "Denne webside er i undtagelserne" + }, + "context_site_filtering_disabled": { + "message": "AdGuard kan ikke filtrere denne side" + }, + "context_site_filtering_off": { + "message": "Deaktivér filtrering på dette websted" + }, + "context_site_filtering_on": { + "message": "Aktivér filtrering på dette websted" + }, + "context_site_protection_disabled": { + "message": "AdGuard-beskyttelse er på pause" + }, + "context_update_antibanner_filters": { + "message": "Søg efter filteropdateringer" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Uovertruffen adblock-udvidelse mod reklamer og pop op-vinduer. Blokerer annoncer på Facebook, YouTube og alle andre websteder." + }, + "filtering_clear_log_events": { + "message": "Ryd log" + }, + "filtering_log_actions_menu": { + "message": "Filtreringsloghandlinger" + }, + "filtering_log_assumed_rule_description": { + "message": "Dette er en antaget regel. For detaljer, se vores \u003Ca>Vidensbase\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-forespørgselsmetode" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-statuskode" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Tredjepartsforespørgsler" + }, + "filtering_log_details_modal_back_button": { + "message": "Retur til forespørgsel" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Forskøn" + }, + "filtering_log_details_modal_try_again": { + "message": "Forsøg igen" + }, + "filtering_log_filter_allowed": { + "message": "Tilladt" + }, + "filtering_log_filter_blocked": { + "message": "Blokeret" + }, + "filtering_log_filter_modified": { + "message": "Ændret" + }, + "filtering_log_filter_regular": { + "message": "Almindelig" + }, + "filtering_log_filter_user_rules": { + "message": "Brugerregler" + }, + "filtering_log_hide_referrer": { + "message": "Referer skjult for tredjeparter" + }, + "filtering_log_hide_search_queries": { + "message": "Dine søgninger er skjulte" + }, + "filtering_log_in_allowlist": { + "message": "Webstedet er hvidlistet" + }, + "filtering_log_modified_rules": { + "message": "Ændrede regler: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ja, gem" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Denne indstilling kan øge hukommelsesforbruget markant" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Gem log?" + }, + "filtering_log_preserve_log_off": { + "message": "Gemmer ingen log" + }, + "filtering_log_preserve_log_on": { + "message": "Gemmer log" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Vis ikke igen" + }, + "filtering_log_privacy_applied_rules": { + "message": "Sporingsbeskyttelse anvendt" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data header fjernet" + }, + "filtering_log_search_string": { + "message": "Søg" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Søg i faner" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track header sendt" + }, + "filtering_log_status_allowed": { + "message": "Tilladt" + }, + "filtering_log_status_blocked": { + "message": "Blokeret" + }, + "filtering_log_status_modified": { + "message": "Ændret" + }, + "filtering_log_status_processed": { + "message": "Behandlet" + }, + "filtering_log_stealth_rules": { + "message": "Sporingsbeskyttelsesregler: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Forespørgselsoprindelse" + }, + "filtering_log_tag_request_status": { + "message": "Filtreringsstatus" + }, + "filtering_log_tag_request_type": { + "message": "Forespørgselstype" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Tilladte og ublokerede forespørgsler" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokerede forespørgsler" + }, + "filtering_log_tag_tooltip_css": { + "message": "Skrifttype- og layoutskabeloner" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Førstepartsforespørgsler" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenter og underdokumenter" + }, + "filtering_log_tag_tooltip_img": { + "message": "Billeder" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Ændrede forespørgsler" + }, + "filtering_log_tag_tooltip_other": { + "message": "Skrifttyper, pings, WebRTC, WebSockets..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Forespørgsler behandlet uden filtrering" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Tredjepartsforespørgsler" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Forespørgsler påvirket af brugerregler" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests og hent-forespørgsler" + }, + "filtering_log_title": { + "message": "Filtreringslog" + }, + "filtering_menu_open_filters": { + "message": "Tilpas" + }, + "filtering_modal_add_rule": { + "message": "Tilføj" + }, + "filtering_modal_allow_title": { + "message": "Tilføj tilladelsesregel" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Anvendt regel | Anvendte regler" + }, + "filtering_modal_apply_domains": { + "message": "Anvend for alle websteder" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Formodet regel: | Formodede regler:" + }, + "filtering_modal_block": { + "message": "Blokér" + }, + "filtering_modal_block_again": { + "message": "Blokér igen" + }, + "filtering_modal_block_title": { + "message": "Tilføj blokeringsregel" + }, + "filtering_modal_converted_to": { + "message": "Konverteret til:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Kopieret" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiér til udklipsholder" + }, + "filtering_modal_declarative_rule": { + "message": "DNR-regel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Tilføj en undtagelse" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtreringsstatus" + }, + "filtering_modal_hide_full_element": { + "message": "Skjul komplette element" + }, + "filtering_modal_hide_full_rule": { + "message": "Skjul komplet regel" + }, + "filtering_modal_hide_full_url": { + "message": "Skjul komplet URL" + }, + "filtering_modal_important": { + "message": "Giv denne regel en højere prioritet" + }, + "filtering_modal_info_title": { + "message": "Anmod om detaljer" + }, + "filtering_modal_open_in_new_tab": { + "message": "Åbn på ny fane" + }, + "filtering_modal_options_desc": { + "message": "Valgmuligheder" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Oprindelig regel: | Oprindelige regler:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Hvad bør tillades" + }, + "filtering_modal_patterns_desc_block": { + "message": "Hvad skal blokeres" + }, + "filtering_modal_preview_request_button": { + "message": "Forhåndsvisning" + }, + "filtering_modal_preview_title": { + "message": "Forhåndsvisning" + }, + "filtering_modal_privacy": { + "message": "Sporingsbeskyttelse" + }, + "filtering_modal_remove_allowlist": { + "message": "Fjern fra hvidlisten" + }, + "filtering_modal_remove_param": { + "message": "Fjern forespørgselsparametre" + }, + "filtering_modal_remove_user": { + "message": "Slet regel" + }, + "filtering_modal_rule": { + "message": "Regel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regel" + }, + "filtering_modal_rules": { + "message": "Regler:" + }, + "filtering_modal_show_full_element": { + "message": "Vis komplette element" + }, + "filtering_modal_show_full_rule": { + "message": "Vis komplet regel" + }, + "filtering_modal_show_full_url": { + "message": "Vis komplet URL" + }, + "filtering_modal_source": { + "message": "Kilde" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Mislykkedes at indlæse forhåndsvisning. Forsøg igen" + }, + "filtering_modal_status_text_loading": { + "message": "Indlæser..." + }, + "filtering_modal_third_party": { + "message": "Anvend kun på tredjepartsforespørgsler" + }, + "filtering_modal_type": { + "message": "Type" + }, + "filtering_modal_unblock": { + "message": "Afblokér" + }, + "filtering_refresh_tab_short": { + "message": "Opfrisk" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Opfrisk side" + }, + "filtering_table_action": { + "message": "Handling" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Intet fundet. \u003Creset>Deaktivér filtre\u003C/reset> eller \u003Crefresh>genindlæs siden\u003C/refresh> for at se logposter" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Åbn detaljer" + }, + "filtering_table_rule": { + "message": "Filtreringsregel" + }, + "filtering_table_source": { + "message": "Kilde" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Type" + }, + "filtering_type_all": { + "message": "Alle" + }, + "filtering_type_other": { + "message": "Andet" + }, + "filters_download_loading": { + "message": "Afvent at filterdatabasen indlæses..." + }, + "filters_download_title": { + "message": "Filterdatabasen indlæses..." + }, + "fullscreen_user_rules_title": { + "message": "Brugerregler" + }, + "group_description_adblocking": { + "message": "Opsæt adblocking her for at håndtere irriterende bannere, pop op-vinduer, videoannoncer mv. én gang for alle" + }, + "group_description_annoyances": { + "message": "Fjern pop op-vinduer og andre irriterende notifikationer, såsom cookie-notitser" + }, + "group_description_custom": { + "message": "Opret egne filtre for finjusteret webfiltrering efter egne præferencer." + }, + "group_description_lang": { + "message": "Bliv ikke begrænset — brug adblocking uanset webstedets sprog" + }, + "group_description_miscellaneous": { + "message": "Flere indstillinger til yderligere at opsætte websurfing med AdGuard" + }, + "group_description_security": { + "message": "Vær beskyttet mod malware, phishing og andre online-trusler" + }, + "group_description_social": { + "message": "Skjul uønskede \"Like\"-/\"Del\"-knapper og andre widgets på sociale medier" + }, + "group_description_stealth": { + "message": "Beskyt identiteten og sensitive personoplysninger mod tusinder af online-trackere ved at blokere de mest populære sporingsmetoder" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Vis ikke igen" + }, + "opera_search_permission_go_to_settings": { + "message": "Gå til Indstillinger" + }, + "opera_search_permission_warning": { + "message": "For at blokere søgeannoncer, tillad adgang til søgesideresultater i webbrowserens indstillinger" + }, + "options_about": { + "message": "Om" + }, + "options_about_libs": { + "message": "Brugte biblioteker" + }, + "options_about_title": { + "message": "AdGuard Browser-udvidelse" + }, + "options_about_update_available": { + "message": "Version %version% er tilgængelig. Den downloades og installeres automatisk." + }, + "options_about_version": { + "message": "Version" + }, + "options_acknowledgment": { + "message": "Anerkendelser" + }, + "options_add_custom_filter": { + "message": "Tilføj tilpasset filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Tilføj" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Tjekker dit filter..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL'en returnerede en webside i stedet for en filterliste. Angiv i stedet et direkte link til filterfilen." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Forsøg igen eller kontakt supporten" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Kunne ikke tilføje tilpasset filter" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filternavn:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Betroet" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Betroede filtre kan bruge kraftfulde regelmodifikatorer – sørg for at bruge filtre fra betroede udviklere" + }, + "options_add_custom_filter_modal_title": { + "message": "Tilføj tilpasset filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Grænsen for aktive indbyggede regler er nået. Webbrowseren har ændret listen over aktive indbyggede filtre. Antallet af aktiverede filtre er ændret fra %expected% til %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Webbrowserens grænse for aktive indbyggede regler er nået. Webbrowseren har reduceret listen over aktive indbyggede filtre fra %expected% til %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Webbrowseren begrænser p. t. \u003Cexternal-link>visse typer af regler\u003C/external-link>. For at anvende alle regler, slå \u003Cb>Tillad brugerscripts\u003C/b> til i webbrowserens \u003Csettings-link>udvidelsesindstillinger\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Hvidliste" + }, + "options_allowlist_alert_invert": { + "message": "Hvidlisten er inverteret. Annoncer blokeres kun på websteder, som føjes til den." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Stop invertering\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard blokerer ikke annoncer og trackere på webstder fra listen" + }, + "options_allowlist_invalid_entries": { + "message": "For at gemme, behold kun domæner eller URL'er. Disse skal rettes: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertér hvidlisten" + }, + "options_allowlist_invert_desc": { + "message": "Blokerer kun annoncer og trackere på hvidlistede websteder" + }, + "options_allowlist_leave_subtitle": { + "message": "Evt. ændringer til Hvidliste vil gå tabt" + }, + "options_allowlist_menu": { + "message": "Hvidlistehandlinger" + }, + "options_anonymized_usage_data_description": { + "message": "Indsender anonyme statistikdata om udvidelsesbrug til AdGuard. \u003Cbutton>Læs mere\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Forstået" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Disse data omfatter:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Navne på knapper, som klikkes på" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Navne på skærme, der er interageret med" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sessionsidentifikatorer" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Disse data er anonyme og bruges kun internt. De deles aldrig med tredjeparter" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Vi har brug for disse oplysninger for at analysere og forbedre funktionaliteten af AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Udvidelsesbrugsdata" + }, + "options_anonymized_usage_data_title": { + "message": "Indsend anonymiserede udvidelsesbrugsdata" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Dette tilpassede filter er allerede tilføjet" + }, + "options_antibanner_custom_group": { + "message": "Tilpasset" + }, + "options_antibanner_custom_group_description": { + "message": "Muliggør at tilføje filtre fra en fil eller URL" + }, + "options_antibanner_rules_count": { + "message": "Regler: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Opdateret: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokér søgeannoncer og webstedsselvpromovering" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokerer annoncer i søgeresultater og webstedsselvpromoveringer. \u003Ca>Læs mere\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "For helt at blokere cookies, indstil levetiden til 0" + }, + "options_block_known_trackers_description": { + "message": "Blokerer trackere og webanalyseværktøjer med filteret AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Blokér trackere" + }, + "options_check_update_progress": { + "message": "Tjekker..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Ryd" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Alle statistikker over dataforbrug slettes permanent" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Ryd statistikker?" + }, + "options_clipboard_permission_warning": { + "message": "For at kopiere og indsætte regler, tillad AdGuard adgang til udklipsholderen. \u003Ca>Tillad\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Indsender anonym statistik om brug af annoncefiltre til AdGuard. \u003Ca>Læs mere\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Hjælp med at udvikle AdGuard-filtre" + }, + "options_coming_soon": { + "message": "Kommer snart" + }, + "options_confirm_modal_cancel_button": { + "message": "Afbryd" + }, + "options_copyright": { + "message": "Alle rettigheder forbeholdes." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "For brug af tilpassede filtre, slå \u003Cb>Tillad bruger-scripts\u003C/b> til i webbrowserens \u003Csettings-link>udvidelsesindstillinger\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "For brug af tilpassede filtre, aktivér \u003Cb>Udviklertilstand\u003C/b> i webbrowserens \u003Csettings-link>udvidelsesindstillinger\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Få AdGuard til Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Få AdGuard til Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Få AdGuard til Windows" + }, + "options_desktop_app_promo_description": { + "message": "Apps, såsom Spotify, Discord eller Zoom, kan stadig vise annoncer og spore aktiviteten" + }, + "options_desktop_app_promo_subdescription": { + "message": "Vores computer-app kan dog beskytte mod dem" + }, + "options_desktop_app_promo_title": { + "message": "Udvidelsen beskytter kun webbrowseren" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Webbrowseren begrænser \u003Cexternal-link>visse typer af regler\u003C/external-link>. Aktivér \u003Cb>Udviklertilstand\u003C/b> i webbrowserens \u003Csettings-link>udvidelsesindstillinger\u003C/settings-link> for at anvende alle regler" + }, + "options_disable_webrtc_desc": { + "message": "Blokerer WebRTC, der kan lække den reelle IP-adresse selv ved brug af proxy eller VPN. Nogle messengere, streamingplatforme eller spil kan stoppe med at fungere ordentligt" + }, + "options_disable_webrtc_title": { + "message": "Blokér WebRTC" + }, + "options_discuss": { + "message": "Debattér AdGuard" + }, + "options_do_you_like_question": { + "message": "Synes du om AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Afslut vinduestilstand" + }, + "options_editor_indicator_saved": { + "message": "Gemt" + }, + "options_editor_indicator_saving": { + "message": "Gemmer..." + }, + "options_editor_leave_cancel": { + "message": "Tilbage til redigering" + }, + "options_editor_leave_confirm": { + "message": "Ja, forlad" + }, + "options_editor_leave_title": { + "message": "Forlad uden at gemme?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Åbn Editor i ny fane" + }, + "options_editor_save": { + "message": "Gem" + }, + "options_editor_save_error": { + "message": "Mislykkedes at gemme ændringerne. Forsøg igen eller kontakt supporten" + }, + "options_empty_custom_filter": { + "message": "Du har ingen tilpassede filtre endnu" + }, + "options_enable_autodetect_filter": { + "message": "Aktivér de mest passende filtre automatisk" + }, + "options_enable_autodetect_filter_desc": { + "message": "Registrerer sproget på webstedet og aktiverer passende filtre" + }, + "options_export_settings": { + "message": "Eksportér indstillinger" + }, + "options_filters": { + "message": "Filtre" + }, + "options_filters_annoyances_consent_description": { + "message": "Ét eller flere irritationsfiltre er ved at blive aktiveret. De blokerer elementer, som enten ikke er relaterede til webstedsindhold eller er relaterede, men er irriterende for brugeroplevelsen. Webstedsejere kan betragte disse elementer som obligatoriske: Blokeres de, kan brugsvilkår overtrædes; noget funktionalitet på websteder kan være utilgængelig eller muligvis ikke fungere korrekt. Brugeren forstår og accepterer, at det alene er et brugeransvar at overholde brugsvilkårene for de websteder, som besøges, samt at AdGuard ikke er ansvarlig for overholdelsen af brugsvilkårene for de websteder, som besøges med vores produkter." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Aktivér" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Hjemmeside" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "For detaljer om, hvad AdGuards irritationfiltre blokerer, se \u003Ca>Filtreringspolitik\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Aktivér disse filtre?" + }, + "options_filters_annoyances_consent_title": { + "message": "Læs venligst omhyggeligt, inden aktivering af irritationsfiltre" + }, + "options_filters_back_button": { + "message": "Gå tilbage" + }, + "options_filters_empty_title": { + "message": "Intet fundet" + }, + "options_filters_enabled": { + "message": "Aktiveret:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% og %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% og %more% flere" + }, + "options_filters_enabled_per_group": { + "message": "Aktiveret: %current% af %total%" + }, + "options_filters_filter_link": { + "message": "Gå til hjemmeside" + }, + "options_filters_filter_tags": { + "message": "Filter-tags" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Dette filter blev valgt som betroet." + }, + "options_filters_filter_updated": { + "message": "opdateret:" + }, + "options_filters_filter_version": { + "message": "version:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Regler i alt: %num%" + }, + "options_filters_last_checked": { + "message": "Sidst kontrolleret: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Alle filtre" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Deaktiveret" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Aktiveret" + }, + "options_filters_no_enabled": { + "message": "Ingen aktiverede filtre" + }, + "options_filters_of_group": { + "message": "Filtre i gruppen \"%groupName%\"" + }, + "options_filters_search": { + "message": "Søg" + }, + "options_filters_search_filter": { + "message": "Find filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Blokeres disse cookies helt, kan visse websteder fejlfungere eller slet ikke fungere" + }, + "options_first_party_desc": { + "message": "Forhindrer websteder i at huske brugeroplysninger, såsom login-legitimationsoplysninger og sprogpræferencer, ved at begrænse levetiden for førstepartscookies" + }, + "options_first_party_title": { + "message": "Selvdestruér førstepartscookies (ikke anbefalet)" + }, + "options_general_settings": { + "message": "Generelt" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Forhindr tredjeparter i at vide, hvilken websteder, som besøges" + }, + "options_hide_referrer_title": { + "message": "Skjul Referer fra tredjeparter" + }, + "options_hide_search_queries_desc": { + "message": "Skjuler søgninger for websteder besøgt via søgemaskineresultater" + }, + "options_hide_search_queries_title": { + "message": "Skjul søgeforespørgsler" + }, + "options_import_configuration_applying_subtitle": { + "message": "Erstatter aktuelle indstillinger med de importerede ditto. Filtrering er deaktiveret under importen" + }, + "options_import_configuration_applying_title": { + "message": "Importerer..." + }, + "options_import_configuration_confirm_button": { + "message": "Importér" + }, + "options_import_configuration_confirm_subtitle": { + "message": "De importerede indstillinger erstatter de nuværende. Andre indstillinger påvirkes ikke" + }, + "options_import_configuration_confirm_title": { + "message": "Indstillingsimport" + }, + "options_import_configuration_error_button": { + "message": "Luk" + }, + "options_import_configuration_error_subtitle": { + "message": "Tjek importlinket og forsøg igen. Hjælper dette ikke, kontakt supporten" + }, + "options_import_configuration_error_title": { + "message": "Mislykkedes at importere indstillinger" + }, + "options_import_configuration_success_button": { + "message": "Luk" + }, + "options_import_configuration_success_subtitle": { + "message": "Indstillinger er hermed importeret" + }, + "options_import_configuration_success_title": { + "message": "Færdig" + }, + "options_import_settings": { + "message": "Importér indstillinger" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertér" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Annoncer og trackere blokeres kun på websteder fra hvidlisten" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invertér hvidlisten?" + }, + "options_leave_feedback": { + "message": "Giv feedback" + }, + "options_lifetime_minutes": { + "message": "Levetid, minutter" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Grænsen for brugertilføjede regex-regler er nået. %maximum% af %current% regex-regler er aktive." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Grænsen for brugertilføjede regex-regler er nået. %maximum% af %current% regler er aktiveret. For at tilføje nye regex-regler, fjern nogle eksisterende" + }, + "options_limits_warning_dynamic_rules": { + "message": "Grænsen for brugertilføjede regler er nået. %maximum% af %current% regler er aktivere." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Grænsen for brugertilføjede regler er nået. %maximum% af %current% regler er aktiveret. For at tilføje nye regler, fjern nogle eksisterende" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Kvoten for brugertilføjede, usikre regler er nået. %maximum% af %current% usikre regler er aktive." + }, + "options_limits_warning_static_filters": { + "message": "Grænsen for aktive indbyggede filtre er nået. %maximum% af %current% filtre er aktive. Deaktivér nogle indbyggede filtre for at aktivere nye regler." + }, + "options_limits_warning_static_filters_browser": { + "message": "Webbrowserens grænse for aktive indbyggede filtre er nået. %maximum% af %current% filtre er aktiveret. For at aktivere nye filtre, deaktivér nogle af de indbyggede" + }, + "options_limits_warning_static_regex_rules": { + "message": "Grænsen for aktive indbyggede regex-regler er nået. %maximum% af %current% regex-regler er aktive. Deaktivér nogle indbyggede filtre for at aktivere nye regler." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Webbrowserens grænse for aktive indbyggede regex-regler er nået. For at aktivere nye regler, deaktivér nogle af de indbyggede filtre" + }, + "options_limits_warning_static_rules": { + "message": "Grænsen for aktive indbyggede regler er nået. %maximum% af %current% regler er aktive. Deaktivér nogle indbyggede filtre for at aktivere nye regler." + }, + "options_limits_warning_static_rules_browser": { + "message": "Webbrowserens grænse for aktive indbyggede regler er nået. For at aktivere nye regler, deaktivér nogle af de indbyggede filtre" + }, + "options_loader_applying_changes": { + "message": "Effektuerer ændringer..." + }, + "options_miscellaneous_settings": { + "message": "Yderligere indstillinger" + }, + "options_modified_first_party_cookie": { + "message": "Førstepartscookie modificeret" + }, + "options_modified_third_party_cookie": { + "message": "Tredjepartscookie modificeret" + }, + "options_nav_better_than_extension": { + "message": "Hvorfor er AdGuard-appen bedre end udvidelse?" + }, + "options_nav_compare": { + "message": "Sammenlign" + }, + "options_navigation": { + "message": "Navigering" + }, + "options_open_changelog": { + "message": "Ændringslog" + }, + "options_open_log": { + "message": "Åbn filtreringslog" + }, + "options_popup_call_to_action": { + "message": "Angiv en gyldig URL eller filsti til filtret i feltet ovenfor." + }, + "options_popup_check_false_description": { + "message": "Fejl under tilføjelsen af det tilpassede filter." + }, + "options_popup_check_false_title": { + "message": "Fejl" + }, + "options_popup_checking_filter": { + "message": "Tjekker dit filter" + }, + "options_popup_description": { + "message": "Du vil abonnere på dette filter." + }, + "options_popup_filter_description": { + "message": "Beskrivelse:" + }, + "options_popup_filter_homepage": { + "message": "Hjemmeside:" + }, + "options_popup_filter_rules_count": { + "message": "Antal regler:" + }, + "options_popup_filter_title": { + "message": "Titel:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Version:" + }, + "options_popup_import_error_file_description": { + "message": "Noget gik galt." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Tillad AdGuard at ændre fortrolighedsrelaterede indstillinger for at importere denne indstillingsfil." + }, + "options_popup_import_error_title": { + "message": "Mislykkedes at importere indstillinger" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Filtypenavnet skal være %extension%" + }, + "options_popup_import_success_title": { + "message": "Indstillinger importeret" + }, + "options_popup_next_button": { + "message": "Næste" + }, + "options_popup_subscribe_button": { + "message": "Abonnér" + }, + "options_popup_title_placeholder": { + "message": "Angiv et filternavn" + }, + "options_popup_trusted_filter_description": { + "message": "Betroede filtres regelmodifikatorer kan være kraftfulde og farlige i de forkerte hænder. Markér ikke afkrydsningsfeltet medmindre du har fuld tillid til det." + }, + "options_popup_trusted_filter_title": { + "message": "Betroet" + }, + "options_popup_try_again_button": { + "message": "Forsøg igen" + }, + "options_popup_update_error": { + "message": "Kunne ikke hente opdateringer. Forsøg igen senere." + }, + "options_popup_update_filter": { + "message": "blev opdateret." + }, + "options_popup_update_filters": { + "message": "blev opdateret." + }, + "options_popup_update_not_found": { + "message": "Filtrene er opdaterede" + }, + "options_popup_update_title_error": { + "message": "Fejl under opdatering af filtre" + }, + "options_popup_updating_filters": { + "message": "Opdaterer filtre..." + }, + "options_popup_url_placeholder": { + "message": "Angiv URL eller sti" + }, + "options_popup_url_title": { + "message": "Nyt Filterabonnement" + }, + "options_popup_version_update_changelog_text": { + "message": "Hvad er nyt i denne version?" + }, + "options_popup_version_update_description_major": { + "message": "Dette er en større udvidelsesopgradering indeholdende mange nye funktioner og forbedringer." + }, + "options_popup_version_update_description_minor": { + "message": "Denne version indeholder primært fejlrettelser og mindre forbedringer." + }, + "options_popup_version_update_disable_notification": { + "message": "Deaktivér notifikationer" + }, + "options_popup_version_update_offer": { + "message": "Vidste du, at AdGuards funktioner ikke er begrænset til denne browser?" + }, + "options_popup_version_update_offer_button_text": { + "message": "FÅ MERE AT VIDE" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard-udvidelsen er blevet opdateret til version %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Får WebRTC til at anvende en striksere IP-adressepolitik med henblik på at holde den reelle IP-adresse skjult ved brug af proxy eller VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Forhindr IP-adresselækager via WebRTC" + }, + "options_privacy": { + "message": "Sporingsbeskyttelse" + }, + "options_privacy_desc": { + "message": "Beskytter onlineaktiviteten og personlige data mod kendte webtrackere" + }, + "options_privacy_policy": { + "message": "Fortrolighedspolitik" + }, + "options_privacy_title": { + "message": "Sporingsbeskyttelse" + }, + "options_rate_us_cta": { + "message": "Bedøm den" + }, + "options_remove_client_data_desc": { + "message": "Blokér Google Chrome fra at sende dens versions- og modifikationsinformation til Google-domæner" + }, + "options_remove_client_data_title": { + "message": "Fjern X-Client-Data header" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Fjern" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Fjern dette filter?" + }, + "options_report_bug": { + "message": "Anmeld en fejl" + }, + "options_reset_settings": { + "message": "Nulstil indstillinger" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Nulstil" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Alle indstillinger nulstilles til deres standardværdier" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Nulstil indstillinger?" + }, + "options_reset_settings_done": { + "message": "Indstillingerne er nulstillet" + }, + "options_reset_settings_error": { + "message": "Fejl under nulstilling af indstillinger" + }, + "options_reset_stats": { + "message": "Ryd statistikker" + }, + "options_reset_stats_done": { + "message": "Statistikkerne er blevet nulstillet" + }, + "options_rule_limits": { + "message": "Regelgrænser" + }, + "options_rule_limits_description": { + "message": "Chrome begrænser antallet af regler, som kan anvendes" + }, + "options_rule_limits_dynamic": { + "message": "Dynamiske regler" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-regler — indeholdt i brugertilføjede regler" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Usikre dynamiske regler (brugt til visse avancerede modifikatorer, såsom $$redirect eller $$cookie) — indeholdt i brugertilføjede regler" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Brugertilføjede regler, såsom \u003Cuser_rules>brugerregler\u003C/user_rules>, \u003Callowlist>hvidlistede websteder\u003C/allowlist> og \u003Ccustom_filters>tilpassede filtre\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Brugertilføjede regler, såsom \u003Cuser_rules>brugerregler\u003C/user_rules> og \u003Callowlist>hvidlistede websteder\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% af %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statisk regel" + }, + "options_rule_limits_static_rules_all": { + "message": "Regler fra \u003Ca>indbyggede filtre\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-regler — indeholdt i ovenstående" + }, + "options_rule_limits_static_rulesets": { + "message": "Statiske regelsæt" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Indbyggede filtre\u003C/a>, såsom Blokér irritationer eller Sprogspecifikke filtre" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Mulighed 3. Er de aktuelt aktiverede standardfiltre tilfredsstillende, \u003Ca>luk denne advarsel\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Mulighed 3. Er det aktuelt aktiverede standardfilter tilfredsstillende, \u003Ca>luk denne advarsel\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Mulighed 1. Slet unødvendige adblockudvidelser fra webbrowseren. For at genaktivere filtre nævnt i afsnittet \"Filtre aktiveret før opdateringen\", klik på \u003Ca>Genaktivér filtre\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Mulighed 2. Installér AdGuard Ad Blocker-appen: Den har ingen filtreringsregelrestriktioner. \u003Ca>Hent AdGuard-appen\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "De mulige handlinger" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Grænsen for aktive indbyggede regler blev overskredet efter en opdatering eller tilføjelse af en ny udvidelse. Iht. Manifest V3 reagerede Chrome-browseren ved at deaktivere alle udvidelsens indbyggede filtre undtagen standardfiltrene." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Hvad skete der?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Aktive filtre før opdateringen" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Aktive filtre nu" + }, + "options_rule_limits_warning_title": { + "message": "Browseren har ændret listen over aktive filtre" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Fjern regelkvoterne og få udvidet beskyttelse, der fungerer på tværs af alle webbrowsere" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installér computer-appen" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Gå til filtre" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Håndtering af udvidelser" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Webbrowserudvidelser deler samme regelkvote. Fjernelse af andre adblockere kan give plads til flere regler til AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Fjern andre adblockere" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktivér de filtre, der er behov for. Sprogspecifikke og fortrolighedsfiltre kan anvende mange regler" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Gennemgå tilgængelige filtre" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Her er, hvad der kan gøres" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Kvote opbrugt — nogle filtre er blevet deaktiveret" + }, + "options_rule_syntax": { + "message": "Regelsyntaks" + }, + "options_safebrowsing_enabled": { + "message": "Phishing- og malware-beskyttelse" + }, + "options_safebrowsing_enabled_desc": { + "message": "Advarer om skadelige og phishing-websteder ved brug af modulet AdGuard Browsing Security. \u003Ca>Læs mere\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 timer" + }, + "options_select_update_period_1h": { + "message": "1 timer" + }, + "options_select_update_period_24h": { + "message": "24 timer" + }, + "options_select_update_period_48h": { + "message": "48 timer" + }, + "options_select_update_period_6h": { + "message": "6 timer" + }, + "options_select_update_period_default": { + "message": "Standard" + }, + "options_select_update_period_disabled": { + "message": "Deaktiveret" + }, + "options_send_not_track_desc": { + "message": "Send \u003Cgpc>Global Privacy Control\u003C/gpc>- og \u003Cdnt>Do Not Track\u003C/dnt>-signaler til websteder, som besøges" + }, + "options_send_not_track_title": { + "message": "Bed websteder om at undlade sporing" + }, + "options_set_update_interval": { + "message": "Auto-opdatér filtre" + }, + "options_set_update_interval_desc": { + "message": "Holder filtrene opdaterede for mere effektiv adblocking" + }, + "options_settings": { + "message": "AdGuard Indstillinger" + }, + "options_share_settings": { + "message": "Del indstillinger" + }, + "options_show_adguard_full_version_title": { + "message": "Vis information om den fulde AdGuard-version" + }, + "options_show_app_updated_notification": { + "message": "Notificér om udvidelsesopdateringer" + }, + "options_show_blocked_ads_count_title": { + "message": "Vis antal afblokerede annoncer på AdGuard-udvidelsesikonet" + }, + "options_show_context_menu_title": { + "message": "Føj AdGuard-element til browserens kontekstmenu" + }, + "options_site": { + "message": "Officiel webside" + }, + "options_skip_to_main_content": { + "message": "Spring til hovedindhold" + }, + "options_stealth_general_title": { + "message": "Generelt" + }, + "options_stealth_miscellaneous_title": { + "message": "Diverse" + }, + "options_stealth_tracking_methods_title": { + "message": "Sporingsmetoder" + }, + "options_strip_tracking_params_description": { + "message": "Fjerner sporingsparametre fra side-URL'er vha. AdGuard URL Tracking-filter" + }, + "options_strip_tracking_params_title": { + "message": "Fjern sporingsparametre fra URL'er" + }, + "options_stripped_tracking_parameters": { + "message": "Sporingsparametre fjernet" + }, + "options_theme_selector_dark": { + "message": "Mørkt" + }, + "options_theme_selector_light": { + "message": "Lyst" + }, + "options_theme_selector_system": { + "message": "Systemstandard" + }, + "options_third_party_block_cookies_warning": { + "message": "Blokerer man disse cookies, vil man skulle logge ind igen på visse websteder eller vil opleve andre cookie-relaterede problemer" + }, + "options_third_party_desc": { + "message": "Forhindrer annoncører i at spore brugeradfærd på tværs af flere sider ved at begrænse levetiden for tredjepartscookies" + }, + "options_third_party_title": { + "message": "Slet tredjepartscookies" + }, + "options_update_antibanner_filters": { + "message": "Søg efter filteropdateringer" + }, + "options_use_optimized_filters": { + "message": "Brug optimerede filtre" + }, + "options_use_optimized_filters_desc": { + "message": "Bruger kortere filterversioner med kun de mest populære regler for at spare trafik. Bedre egnet til mobilbrowsere" + }, + "options_user_rules_clear_search": { + "message": "Ryd søgning" + }, + "options_user_rules_create_rule": { + "message": "Opret regel" + }, + "options_user_rules_delete_all": { + "message": "Slet alle" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Alle brugerregler slettes permanent" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Slet alle?" + }, + "options_user_rules_delete_all_success": { + "message": "Alle brugerregler slettet" + }, + "options_user_rules_delete_rule": { + "message": "Slet regel" + }, + "options_user_rules_deleted_notification": { + "message": "Brugerregel slettet:" + }, + "options_user_rules_description_key": { + "message": "Egne regler til blokering og afblokering af annoncer eller hele websteder" + }, + "options_user_rules_edit_rule": { + "message": "Redigér regel" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Gå til editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Dine regler vises her, når den er lukket" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor åbnet i et andet vindue" + }, + "options_user_rules_empty_placeholder": { + "message": "Ingen regler endnu" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Fremhævning af regler…" + }, + "options_user_rules_import_error": { + "message": "Import af brugerregler mislykkedes. Forsøg igen" + }, + "options_user_rules_import_success": { + "message": "Brugerregler er importeret" + }, + "options_user_rules_menu": { + "message": "Brugerregelhandlinger" + }, + "options_user_rules_no_match": { + "message": "Intet blev fundet" + }, + "options_user_rules_search_placeholder": { + "message": "Søg" + }, + "options_user_rules_switch_to_editor": { + "message": "Skift til editorvisning" + }, + "options_user_rules_switch_to_list": { + "message": "Skift til listevisning" + }, + "options_user_rules_undo": { + "message": "Fortryd" + }, + "options_userfilter": { + "message": "Brugerregler" + }, + "options_userfilter_description_key": { + "message": "Egne regler kan tilføjes her. Muligheden anbefales til avancerede brugere med kendskab til HTML/CSS. Læs i \u003Ca> filterregler-guiden\u003C/a> om, hvordan man selv skriver filterregler." + }, + "options_userfilter_export": { + "message": "Eksportér" + }, + "options_userfilter_import": { + "message": "Importér" + }, + "options_userfilter_leave_subtitle": { + "message": "Evt. ændringer af reglerne vil gå tabt" + }, + "options_userfilter_line_break": { + "message": "Linjeskift" + }, + "options_userfilter_line_break_off": { + "message": "Linjeskift: Deaktiveret" + }, + "options_userfilter_line_break_on": { + "message": "Linjeskift: Aktiveret" + }, + "options_userfilter_subtitle_key": { + "message": "Muliggør at tilføje egne filtreringsregler" + }, + "popup_abuse_site": { + "message": "Rapportér et problem" + }, + "popup_adguard_footer_title": { + "message": "Beskyt mobilenheden" + }, + "popup_adguard_for_android": { + "message": "AdGuard til Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard til iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokér annoncer manuelt" + }, + "popup_get_system_wide_protection": { + "message": "Få systemniveaubeskyttelse" + }, + "popup_header_cta_link": { + "message": "Sådan forstærkes beskyttelsen" + }, + "popup_header_update_filters": { + "message": "Søg efter filteropdateringer" + }, + "popup_limits_exceeded_warning": { + "message": "Webbrowseren har ændret listen over aktive indbyggede filtre" + }, + "popup_open_filtering_log": { + "message": "Åbn filtreringslog" + }, + "popup_open_settings": { + "message": "Åbn AdGuard-indstillinger" + }, + "popup_protection_button": { + "message": "AdGuard-beskyttelse" + }, + "popup_reset_page_user_rules": { + "message": "Slet brugerregler for dette websted" + }, + "popup_resume_protection_button": { + "message": "Genoptag" + }, + "popup_security_report": { + "message": "Tjek webstedets sikkerhed" + }, + "popup_site_exception_information": { + "message": "Filtrering er deaktiveret, da det kan forstyrre webstedets funktion." + }, + "popup_site_filtering_state_disabled": { + "message": "Beskyttelsen er deaktiveret" + }, + "popup_site_filtering_state_disabling": { + "message": "Slår beskyttelse fra..." + }, + "popup_site_filtering_state_enabled": { + "message": "Beskyttelsen er aktiveret" + }, + "popup_site_filtering_state_enabling": { + "message": "Slår beskyttelse til..." + }, + "popup_site_filtering_state_loading": { + "message": "Indlæser..." + }, + "popup_site_filtering_state_paused": { + "message": "Beskyttelsen er sat på pause" + }, + "popup_site_filtering_state_pausing": { + "message": "Pauserer beskyttelse..." + }, + "popup_site_filtering_state_resuming": { + "message": "Genoptager beskyttelse..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Sikker side" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "for alle websteder" + }, + "popup_statistics_all_categories": { + "message": "Alle" + }, + "popup_statistics_category_advertising": { + "message": "Annoncer" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistikkategori" + }, + "popup_statistics_category_other": { + "message": "Andre" + }, + "popup_statistics_category_social_media": { + "message": "Sociale medier" + }, + "popup_statistics_category_trackers": { + "message": "Trackers" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Juli" + }, + "popup_statistics_months_jun": { + "message": "Juni" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sept" + }, + "popup_statistics_time_day": { + "message": "24 timer" + }, + "popup_statistics_time_label": { + "message": "Statistiktidsperiode" + }, + "popup_statistics_time_month": { + "message": "30 dage" + }, + "popup_statistics_time_week": { + "message": "7 dage" + }, + "popup_statistics_time_year": { + "message": "1 år" + }, + "popup_statistics_total": { + "message": "I alt" + }, + "popup_statistics_week_days_fri": { + "message": "Fre" + }, + "popup_statistics_week_days_mon": { + "message": "Man" + }, + "popup_statistics_week_days_sat": { + "message": "Lør" + }, + "popup_statistics_week_days_sun": { + "message": "Søn" + }, + "popup_statistics_week_days_thu": { + "message": "Tors" + }, + "popup_statistics_week_days_tue": { + "message": "Tirs" + }, + "popup_statistics_week_days_wed": { + "message": "Ons" + }, + "popup_switch_button": { + "message": "Beskyttelse af aktuelt websted" + }, + "popup_tab_actions": { + "message": "Handlinger" + }, + "popup_tab_blocked_all_count": { + "message": "I alt blokeret: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokeret: %num%" + }, + "popup_tab_current_website": { + "message": "Aktuelt websted" + }, + "popup_tab_statistics": { + "message": "Statistikker" + }, + "popup_tabs": { + "message": "Faner" + }, + "popup_tooltip_loading": { + "message": "Indlæser..." + }, + "popup_tooltip_protection_disabled": { + "message": "Beskyttelsen er deaktiveret" + }, + "popup_tooltip_protection_enabled": { + "message": "Beskyttelse aktiveret" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Nogle regler blev ikke anvendt" + }, + "popup_tooltip_update_available": { + "message": "Opdatering tilgængelig" + }, + "post_install_loading": { + "message": "Indlæser udvidelse..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Regelkvote opbrugt i AdGuard Browser Extension. Tjek filtrene og deaktivér dem, som ikke er nødvendige" + }, + "text_collapser_hide_default": { + "message": "Skjul fuld tekst" + }, + "text_collapser_show_default": { + "message": "Vis fuld tekst" + }, + "update_available_desc": { + "message": "Hold udvidelsen og filtre opdaterede for effektiv adblocking" + }, + "update_available_title": { + "message": "Opdateringer tilgængelige" + }, + "update_available_update_btn": { + "message": "Opdatér" + }, + "update_check": { + "message": "Søg efter opdateringer" + }, + "update_checking_in_progress": { + "message": "Søger efter opdateringer..." + }, + "update_failed_text": { + "message": "Mislykkedes at gennemføre opdateringen" + }, + "update_failed_try_again_btn": { + "message": "Forsøg igen" + }, + "update_installing_in_progress_desc": { + "message": "Udvidelsen genstarter efter opdateringen" + }, + "update_installing_in_progress_title": { + "message": "Opdaterer udvidelse og filtre..." + }, + "update_not_needed": { + "message": "Udvidelsen og filtre er opdateret" + }, + "update_success_text": { + "message": "Udvidelse og filtre opdateret" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/de/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/de/messages.json new file mode 100644 index 0000000..0077de2 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/de/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% wurde automatisch aktiviert." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatische Aktivierung von Filtern" + }, + "background_tab_title": { + "message": "Hintergrund-Tab" + }, + "blocking_pages_advanced_button": { + "message": "Erweitert" + }, + "blocking_pages_btn_go_back": { + "message": "Zurück" + }, + "blocking_pages_btn_proceed": { + "message": "Trotzdem fortfahren" + }, + "blocking_pages_malware": { + "message": "Diese Website unter \u003Cstrong>%host%\u003C/strong> wurde als Malware-Seite gemeldet und aufgrund Ihrer Sicherheitseinstellungen blockiert." + }, + "blocking_pages_more_info_button": { + "message": "Weitere Informationen" + }, + "blocking_pages_page_title": { + "message": "Zugriff verweigert" + }, + "blocking_pages_phishing": { + "message": "Diese Website unter \u003Cstrong>%host%\u003C/strong> wurde als Phishing-Seite gemeldet und aufgrund Ihrer Sicherheitseinstellungen blockiert." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard hat das Laden dieser Seite aufgrund der folgenden Filterregel unterbunden" + }, + "blocking_pages_rule_header_title": { + "message": "Gesperrt durch AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard hat den Zugriff auf diese Website gesperrt" + }, + "clear_button_title": { + "message": "Leeren" + }, + "close_button_title": { + "message": "Schließen" + }, + "context_block_site_ads": { + "message": "Werbung manuell blockieren" + }, + "context_complaint_website": { + "message": "Diese Webseite melden" + }, + "context_disable_protection": { + "message": "AdGuard-Schutz anhalten" + }, + "context_enable_protection": { + "message": "AdGuard-Schutz fortsetzen" + }, + "context_open_log": { + "message": "Filterungsprotokoll" + }, + "context_open_settings": { + "message": "AdGuard-Einstellungen" + }, + "context_security_report": { + "message": "Sicherheit der Website prüfen" + }, + "context_site_exception": { + "message": "Diese Website ist in den Ausschlüssen" + }, + "context_site_filtering_disabled": { + "message": "AdGuard kann diese Seite nicht filtern" + }, + "context_site_filtering_off": { + "message": "Filtern auf dieser Website deaktivieren" + }, + "context_site_filtering_on": { + "message": "Filtern auf dieser Website aktivieren" + }, + "context_site_protection_disabled": { + "message": "AdGuard-Schutz ist angehalten" + }, + "context_update_antibanner_filters": { + "message": "Auf Filteraktualisierungen prüfen" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Unübertroffene Werbeblocker-Erweiterung gegen Werbung und Pop-ups. Sperrt Werbung auf Facebook, YouTube und allen anderen Websites." + }, + "filtering_clear_log_events": { + "message": "Protokoll leeren" + }, + "filtering_log_actions_menu": { + "message": "Filterungsprotokoll-Aktionen" + }, + "filtering_log_assumed_rule_description": { + "message": "Dies ist eine mutmaßliche Regel. Einzelheiten finden Sie in unserer \u003Ca>Wissensdatenbank\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-Anfragemethode" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-Statuscode" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Anfrage von Drittanbieter" + }, + "filtering_log_details_modal_back_button": { + "message": "Zurück zu Anfrage" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Verschönern" + }, + "filtering_log_details_modal_try_again": { + "message": "Erneut versuchen" + }, + "filtering_log_filter_allowed": { + "message": "Zugelassen" + }, + "filtering_log_filter_blocked": { + "message": "Blockiert" + }, + "filtering_log_filter_modified": { + "message": "Geändert" + }, + "filtering_log_filter_regular": { + "message": "Regulär" + }, + "filtering_log_filter_user_rules": { + "message": "Benutzerregeln" + }, + "filtering_log_hide_referrer": { + "message": "Referer vor Dritten verborgen" + }, + "filtering_log_hide_search_queries": { + "message": "Ihre Suchanfragen ausgeblendet" + }, + "filtering_log_in_allowlist": { + "message": "Die Seite wurde zugelassen" + }, + "filtering_log_modified_rules": { + "message": "Geänderte Regeln: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ja, speichern" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Diese Option kann den Speicherverbrauch erheblich erhöhen" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Protokoll speichern?" + }, + "filtering_log_preserve_log_off": { + "message": "Protokoll nicht speichern" + }, + "filtering_log_preserve_log_on": { + "message": "Protokoll speichern" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Nicht erneut anzeigen" + }, + "filtering_log_privacy_applied_rules": { + "message": "Tracking-Schutz wird verwendet" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data-Header entfernt" + }, + "filtering_log_search_string": { + "message": "Suchen" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Tabs durchsuchen" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track-Header gesendet" + }, + "filtering_log_status_allowed": { + "message": "Zugelassen" + }, + "filtering_log_status_blocked": { + "message": "Blockiert" + }, + "filtering_log_status_modified": { + "message": "Geändert" + }, + "filtering_log_status_processed": { + "message": "Verarbeitet" + }, + "filtering_log_stealth_rules": { + "message": "Regeln zum Tracking-Schutz: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Ursprung der Anfrage" + }, + "filtering_log_tag_request_status": { + "message": "Filterstatus" + }, + "filtering_log_tag_request_type": { + "message": "Typ anfordern" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Zugelassene und entsperrte Anfragen" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Gesperrte Anfragen" + }, + "filtering_log_tag_tooltip_css": { + "message": "Formatvorlagen" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Anfragen von Erstanbietern" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumente und Unterdokumente" + }, + "filtering_log_tag_tooltip_img": { + "message": "Bilder" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Medien" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Geänderte Anfragen" + }, + "filtering_log_tag_tooltip_other": { + "message": "Schriftarten, Pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Anfragen, die ohne Filterung verarbeitet werden" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Anfragen von Drittanbietern" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Von Benutzerregeln betroffene Anfragen" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests- und Fetch-Anfragen" + }, + "filtering_log_title": { + "message": "Filterungsprotokoll" + }, + "filtering_menu_open_filters": { + "message": "Anpassen" + }, + "filtering_modal_add_rule": { + "message": "Hinzufügen" + }, + "filtering_modal_allow_title": { + "message": "Zulassungsregel hinzufügen" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Angewandte Regel | Angewandte Regeln" + }, + "filtering_modal_apply_domains": { + "message": "Auf alle Websites anwenden" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Mutmaßliche Regel: | Mutmaßliche Regeln:" + }, + "filtering_modal_block": { + "message": "Sperren" + }, + "filtering_modal_block_again": { + "message": "Erneut sperren" + }, + "filtering_modal_block_title": { + "message": "Sperrregel hinzufügen" + }, + "filtering_modal_converted_to": { + "message": "Konvertiert in:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Kopiert" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopieren" + }, + "filtering_modal_declarative_rule": { + "message": "DNR-Regel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Ausschluss hinzufügen" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filterstatus" + }, + "filtering_modal_hide_full_element": { + "message": "Vollständiges Element ausblenden" + }, + "filtering_modal_hide_full_rule": { + "message": "Vollständige Regel ausblenden" + }, + "filtering_modal_hide_full_url": { + "message": "Vollständige URL ausblenden" + }, + "filtering_modal_important": { + "message": "Dieser Regel eine höhere Priorität geben" + }, + "filtering_modal_info_title": { + "message": "Informationen zur Anfrage" + }, + "filtering_modal_open_in_new_tab": { + "message": "In neuem Tab öffnen" + }, + "filtering_modal_options_desc": { + "message": "Optionen" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Originale Regel: | Originale Regeln:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Was erlaubt werden sollte" + }, + "filtering_modal_patterns_desc_block": { + "message": "Was sollte blockiert werden?" + }, + "filtering_modal_preview_request_button": { + "message": "Vorschau" + }, + "filtering_modal_preview_title": { + "message": "Vorschau" + }, + "filtering_modal_privacy": { + "message": "Tracking-Schutz" + }, + "filtering_modal_remove_allowlist": { + "message": "Aus Zulassungsliste entfernen" + }, + "filtering_modal_remove_param": { + "message": "Abfrageparameter entfernen" + }, + "filtering_modal_remove_user": { + "message": "Regel entfernen" + }, + "filtering_modal_rule": { + "message": "Regel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regel" + }, + "filtering_modal_rules": { + "message": "Regeln:" + }, + "filtering_modal_show_full_element": { + "message": "Vollständiges Element anzeigen" + }, + "filtering_modal_show_full_rule": { + "message": "Vollständige Regel anzeigen" + }, + "filtering_modal_show_full_url": { + "message": "Vollständige URL anzeigen" + }, + "filtering_modal_source": { + "message": "Quelle" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Die Vorschau konnte nicht geladen werden. Bitte versuchen Sie es erneut" + }, + "filtering_modal_status_text_loading": { + "message": "Laden..." + }, + "filtering_modal_third_party": { + "message": "Nur auf Anfragen Dritter anwenden" + }, + "filtering_modal_type": { + "message": "Typ" + }, + "filtering_modal_unblock": { + "message": "Entsperren" + }, + "filtering_refresh_tab_short": { + "message": "Aktualisieren" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Seite neu laden" + }, + "filtering_table_action": { + "message": "Aktion" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nichts gefunden. \u003Creset>Deaktivieren Sie die Filter\u003C/reset> oder \u003Crefresh>laden Sie die Seite neu\u003C/refresh>, um die Protokolleinträge anzuzeigen" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Details anzeigen" + }, + "filtering_table_rule": { + "message": "Filterregel" + }, + "filtering_table_source": { + "message": "Quelle" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Typ" + }, + "filtering_type_all": { + "message": "Alle" + }, + "filtering_type_other": { + "message": "Sonstiges" + }, + "filters_download_loading": { + "message": "Bitte warten, während die Filterdatenbank geladen wird..." + }, + "filters_download_title": { + "message": "Filterdatenbank wird geladen..." + }, + "fullscreen_user_rules_title": { + "message": "Benutzerregeln" + }, + "group_description_adblocking": { + "message": "Blockieren von Werbung konfigurieren, um störende Banner, Pop-ups und Werbung in Videos zu entfernen" + }, + "group_description_annoyances": { + "message": "Entfernt Pop-up-Fenster und andere störende Benachrichtigungen wie Cookie-Hinweise" + }, + "group_description_custom": { + "message": "Eigene Filter erstellen, um die Webfilterung nach Ihren Wünschen zu optimieren." + }, + "group_description_lang": { + "message": "Sie können Werbung auf Websites in allen Sprachen blockieren" + }, + "group_description_miscellaneous": { + "message": "Weitere Einstellungen, um Ihr Surfen im Internet mit AdGuard noch weiter zu konfigurieren" + }, + "group_description_security": { + "message": "Schützt Sie vor Malware, Phishing und anderen Online-Bedrohungen" + }, + "group_description_social": { + "message": "Unerwünschte „Gefällt mir“/„Teilen“-Schaltflächen und andere Widgets für soziale Medien werden ausgeblendet" + }, + "group_description_stealth": { + "message": "Schützt Ihre Identität und sensible persönliche Daten vor Tausenden von Online-Trackern, indem es alle bekannten und beliebten Tracking-Methoden sperrt" + }, + "name": { + "message": "AdGuard Werbeblocker" + }, + "opera_search_permission_dont_show": { + "message": "Nicht erneut anzeigen" + }, + "opera_search_permission_go_to_settings": { + "message": "Einstellungen öffnen" + }, + "opera_search_permission_warning": { + "message": "Um Suchanzeigen zu blockieren, erlauben Sie den Zugriff auf Suchergebnisse in den Browsereinstellungen" + }, + "options_about": { + "message": "Über uns" + }, + "options_about_libs": { + "message": "Verwendete Bibliotheken" + }, + "options_about_title": { + "message": "AdGuard Browsererweiterung" + }, + "options_about_update_available": { + "message": "Version %version% ist verfügbar. Sie wird automatisch heruntergeladen und installiert." + }, + "options_about_version": { + "message": "Version" + }, + "options_acknowledgment": { + "message": "Danksagungen" + }, + "options_add_custom_filter": { + "message": "Filter hinzufügen" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Hinzufügen" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Überprüfung des Filters..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "Die URL führte zu einer Webseite statt zu einer Filterliste. Bitte geben Sie einen direkten Link zur Filterdatei an." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Bitte versuchen Sie es erneut oder kontaktieren Sie den Support" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Fehler beim Hinzufügen eines Filters" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filtername:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Vertrauenswürdig" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Einige Filterregeln können Ihr Surfen erheblich beeinträchtigen und Ihre Privatsphäre gefährden. Verwenden Sie nur Filter von Entwicklern, denen Sie vertrauen" + }, + "options_add_custom_filter_modal_title": { + "message": "Filter hinzufügen" + }, + "options_all_limits_exceeded_warning": { + "message": "Sie haben die maximale Anzahl der aktiven integrierten Regeln erreicht. Ihr Browser hat die Liste der aktiven integrierten Filter geändert. Die Anzahl der aktivierten Filter hat sich von %expected% zu %current% geändert." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "In Ihrem Browser ist die maximale Anzahl aktiver integrierter Regeln erreicht. Deshalb wurde die Liste der aktiven Filter von %expected% auf %current% reduziert" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ihr Browser schränkt \u003Cexternal-link>einige Arten von Regeln\u003C/external-link> ein. Um alle Regeln anzuwenden, aktivieren Sie \u003Cb>Nutzerscripts zulassen\u003C/b> in den \u003Csettings-link>Erweiterungseinstellungen\u003C/settings-link> Ihres Browsers" + }, + "options_allowlist": { + "message": "Zulassungsliste" + }, + "options_allowlist_alert_invert": { + "message": "Die Zulassungsliste ist umgekehrt. Werbung wird nur auf Webseiten blockiert, die dieser Liste hinzugefügt wurden." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Umkehrung beenden\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard blockiert keine Werbung und Tracker auf Websites aus der Liste" + }, + "options_allowlist_invalid_entries": { + "message": "Zum Speichern nur Domains oder URLs beibehalten. Diese müssen korrigiert werden: %entries%" + }, + "options_allowlist_invert": { + "message": "Zulassungsliste invertieren" + }, + "options_allowlist_invert_desc": { + "message": "Blockiert Werbung und Tracker nur auf zugelassenen Websites" + }, + "options_allowlist_leave_subtitle": { + "message": "Ihre Änderungen an der Zulassungsliste gehen verloren" + }, + "options_allowlist_menu": { + "message": "Zulassungslisten-Aktionen" + }, + "options_anonymized_usage_data_description": { + "message": "Sendet anonymisierte Statistiken zur Nutzung der Erweiterung an AdGuard. \u003Cbutton>Mehr erfahren\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Verstanden" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Diese Daten enthalten:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Namen der Schaltflächen, die Sie klicken" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Namen der Bildschirme, mit denen Sie interagieren" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sitzungskennungen" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Diese Daten sind anonym und werden nur intern verwendet. Wir geben sie niemals an Dritte weiter" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Wir benötigen diese Informationen, um die Funktionalität von AdGuard zu analysieren und zu verbessern" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Nutzungsdaten der Erweiterung" + }, + "options_anonymized_usage_data_title": { + "message": "Anonymisierte Daten zur Nutzung der Erweiterung senden" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Dieser Filter wurde bereits hinzugefügt" + }, + "options_antibanner_custom_group": { + "message": "Benutzerdefinierte" + }, + "options_antibanner_custom_group_description": { + "message": "Ermöglicht das Hinzufügen von Filtern aus einer Datei oder über eine URL" + }, + "options_antibanner_rules_count": { + "message": "Regeln: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Aktualisiert: %date%" + }, + "options_block_acceptable_ads": { + "message": "Suchanzeigen und Eigenwerbung von Websites blockieren" + }, + "options_block_acceptable_ads_desc": { + "message": "Blockiert Werbung in den Suchergebnissen und Eigenwerbung von Websites. \u003Ca>Mehr erfahren\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Um die Cookies zu blockieren, setzen Sie die Lebensdauer auf 0" + }, + "options_block_known_trackers_description": { + "message": "Blockiert Tracker und Webanalysen mit dem AdGuard Tracking-Schutzfilter" + }, + "options_block_known_trackers_title": { + "message": "Tracker blockieren" + }, + "options_check_update_progress": { + "message": "Prüfen..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Leeren" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Alle Statistiken zur Datennutzung werden dauerhaft gelöscht" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Statistiken leeren?" + }, + "options_clipboard_permission_warning": { + "message": "Um Regeln zu kopieren und einzufügen, erlauben Sie AdGuard den Zugriff auf die Zwischenablage. \u003Ca>Erlauben\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Sendet anonyme Statistiken zur Nutzung des Werbefilters an AdGuard. \u003Ca>Mehr erfahren\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuard helfen, Filter zu verbessern" + }, + "options_coming_soon": { + "message": "Demnächst verfügbar" + }, + "options_confirm_modal_cancel_button": { + "message": "Abbrechen" + }, + "options_copyright": { + "message": "Alle Rechte vorbehalten." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Um benutzerdefinierte Filter verwenden zu können, aktivieren Sie \u003Cb>Nutzerscripts zulassen\u003C/b> in den \u003Csettings-link>Erweiterungseinstellungen\u003C/settings-link> Ihres Browsers" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Um benutzerdefinierte Filter verwenden zu können, aktivieren Sie den \u003Cb>Entwicklermodus\u003C/b> in den \u003Csettings-link>Erweiterungseinstellungen\u003C/settings-link> Ihres Browsers" + }, + "options_desktop_app_promo_button_linux": { + "message": "AdGuard für Linux holen" + }, + "options_desktop_app_promo_button_mac": { + "message": "AdGuard für Mac holen" + }, + "options_desktop_app_promo_button_windows": { + "message": "AdGuard für Windows holen" + }, + "options_desktop_app_promo_description": { + "message": "Apps wie Spotify, Discord oder Zoom können weiterhin Werbung einblenden und Ihre Aktivitäten verfolgen" + }, + "options_desktop_app_promo_subdescription": { + "message": "Unsere Desktop-App kann Sie davor schützen" + }, + "options_desktop_app_promo_title": { + "message": "Die Erweiterung schützt nur den Browser" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ihr Browser schränkt \u003Cexternal-link>einige Arten von Regeln\u003C/external-link> ein. Um alle Regeln anzuwenden, aktivieren Sie den \u003Cb>Entwicklermodus\u003C/b> in den \u003Csettings-link>Erweiterungseinstellungen\u003C/settings-link> Ihres Browsers" + }, + "options_disable_webrtc_desc": { + "message": "Blockiert WebRTC, das Ihre echte IP-Adresse preisgeben kann, selbst wenn Sie einen Proxy oder VPN verwenden. Einige Messenger, Streaming-Plattformen oder Spiele funktionieren möglicherweise nicht mehr ordnungsgemäß" + }, + "options_disable_webrtc_title": { + "message": "WebRTC blockieren" + }, + "options_discuss": { + "message": "AdGuard besprechen" + }, + "options_do_you_like_question": { + "message": "Gefällt Ihnen AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Vollbildmodus beenden" + }, + "options_editor_indicator_saved": { + "message": "Gespeichert" + }, + "options_editor_indicator_saving": { + "message": "Speichern …" + }, + "options_editor_leave_cancel": { + "message": "Zur Bearbeitung" + }, + "options_editor_leave_confirm": { + "message": "Ja, bitte" + }, + "options_editor_leave_title": { + "message": "Ohne zu speichern verlassen?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Editor in neuem Fenster öffnen" + }, + "options_editor_save": { + "message": "Speichern" + }, + "options_editor_save_error": { + "message": "Die Änderungen konnten nicht gespeichert werden. Versuchen Sie es erneut oder wenden Sie sich an den Support" + }, + "options_empty_custom_filter": { + "message": "Sie haben noch keine benutzerdefinierte Filter" + }, + "options_enable_autodetect_filter": { + "message": "Die am besten geeigneten Filter automatisch aktivieren" + }, + "options_enable_autodetect_filter_desc": { + "message": "Erkennt die Sprache der Website und aktiviert die entsprechenden Filter" + }, + "options_export_settings": { + "message": "Einstellungen exportieren" + }, + "options_filters": { + "message": "Filter" + }, + "options_filters_annoyances_consent_description": { + "message": "Sie aktivieren einen oder mehrere Belästigungsfilter. Diese blockieren Elemente, die für den Inhalt der Website nicht relevant sind oder zwar relevant sind, aber störend wirken können. Die Eigentümer der Website können diese Elemente als obligatorisch betrachten. Wenn Sie diese Elemente blockieren, verstoßen Sie möglicherweise gegen ihre Nutzungsbedingungen und einige Funktionen der Website sind möglicherweise nicht verfügbar oder funktionieren nicht richtig. Durch die Aktivierung der Filter verstehen und akzeptieren Sie, dass Sie allein für die Einhaltung der Nutzungsbedingungen der von Ihnen besuchten Websites verantwortlich sind. Außerdem erkennen Sie an, dass AdGuard keine Verantwortung für Ihre Einhaltung der Nutzungsbedingungen der mit unseren Produkten besuchten Websites übernimmt." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Aktivieren" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Startseite" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Details dazu, was genau die AdGuard Belästigungsfilter blockieren, finden Sie in der \u003Ca>Filterrichtlinie\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Filter aktivieren?" + }, + "options_filters_annoyances_consent_title": { + "message": "Bitte sorgfältig lesen, bevor Sie Belästigungsfilter aktivieren" + }, + "options_filters_back_button": { + "message": "Zurück" + }, + "options_filters_empty_title": { + "message": "Nichts gefunden" + }, + "options_filters_enabled": { + "message": "Aktiviert:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% und %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% und %more% weitere" + }, + "options_filters_enabled_per_group": { + "message": "Aktiviert: %current% von %total%" + }, + "options_filters_filter_link": { + "message": "Zur Startseite" + }, + "options_filters_filter_tags": { + "message": "Filter-Tags" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Sie vertrauen diesem Filter." + }, + "options_filters_filter_updated": { + "message": "Аktualisiert: " + }, + "options_filters_filter_version": { + "message": "Version:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Regeln insgesamt: %num%" + }, + "options_filters_last_checked": { + "message": "Zuletzt überprüft: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Alle Filter" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Deaktivierte" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Aktivierte" + }, + "options_filters_no_enabled": { + "message": "Keine Filter aktiviert" + }, + "options_filters_of_group": { + "message": "Filter der Gruppe „%groupName%“" + }, + "options_filters_search": { + "message": "Suchen" + }, + "options_filters_search_filter": { + "message": "Filter suchen" + }, + "options_first_party_block_cookies_warning": { + "message": "Wenn Sie diese Cookies blockieren, können einige Websites beschädigt werden oder nicht mehr funktionieren." + }, + "options_first_party_desc": { + "message": "Begrenzt die Lebensdauer von Erstanbieter-Cookies, damit Websites Ihre Daten wie Anmeldedaten und Spracheinstellungen nicht speichern können\n" + }, + "options_first_party_title": { + "message": "Erstanbieter-Cookies löschen (nicht empfohlen)" + }, + "options_general_settings": { + "message": "Allgemein" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Verhindert, dass Dritte erfahren, welche Website Sie besuchen" + }, + "options_hide_referrer_title": { + "message": "Referer vor Drittanbietern verbergen" + }, + "options_hide_search_queries_desc": { + "message": "Verbirgt Ihre Suchanfragen vor Websites, die über Suchmaschinenergebnisse besucht werden" + }, + "options_hide_search_queries_title": { + "message": "Suchanfragen verbergen" + }, + "options_import_configuration_applying_subtitle": { + "message": "Ersetzen Ihrer aktuellen Einstellungen durch die zu importierenden Einstellungen. Die Filterung ist während des Imports deaktiviert" + }, + "options_import_configuration_applying_title": { + "message": "Wird importiert …" + }, + "options_import_configuration_confirm_button": { + "message": "Importieren" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Die importierten Einstellungen ersetzen Ihre aktuellen Einstellungen. Andere Einstellungen sind davon nicht betroffen" + }, + "options_import_configuration_confirm_title": { + "message": "Einstellungen importieren" + }, + "options_import_configuration_error_button": { + "message": "Schließen" + }, + "options_import_configuration_error_subtitle": { + "message": "Bitte überprüfen Sie den Import-Link und versuchen Sie es erneut. Wenn das nicht hilft, kontaktieren Sie den Support" + }, + "options_import_configuration_error_title": { + "message": "Einstellungen konnten nicht importiert werden" + }, + "options_import_configuration_success_button": { + "message": "Schließen" + }, + "options_import_configuration_success_subtitle": { + "message": "Einstellungen wurden erfolgreich importiert" + }, + "options_import_configuration_success_title": { + "message": "Alles erledigt" + }, + "options_import_settings": { + "message": "Einstellungen importieren" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertieren" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Werbung und Tracker werden nur auf Websites aus der Zulassungsliste blockiert" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Zulassungsliste invertieren?" + }, + "options_leave_feedback": { + "message": "Feedback senden" + }, + "options_lifetime_minutes": { + "message": "Lebensdauer, Minuten" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Sie haben die maximale Anzahl der vom Benutzer hinzugefügten Regex-Regeln erreicht. %maximum% der %current% Regex-Regeln sind aktiviert." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Sie haben die maximale Anzahl an benutzerdefinierten Regex-Regeln erreicht. %maximum% von %current% Regeln sind aktiviert. Um neue hinzuzufügen, entfernen Sie einige bestehende Regeln" + }, + "options_limits_warning_dynamic_rules": { + "message": "Sie haben die maximale Anzahl der vom Benutzer hinzugefügten Regeln erreicht. %maximum% der %current% Regeln sind aktiviert." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Sie haben die maximale Anzahl an benutzerdefinierten Regeln erreicht. %maximum% von %current% Regeln sind aktiviert. Um neue hinzuzufügen, entfernen Sie einige bestehende Regeln" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Sie haben die maximale Anzahl der vom Benutzer hinzugefügten unsicheren Regeln erreicht. %maximum% der %current% unsicheren Regeln sind aktiviert." + }, + "options_limits_warning_static_filters": { + "message": "Sie haben die maximale Anzahl der aktiven integrierten Regeln erreicht. %maximum% der %current% Filter sind aktiviert. Um neue Regeln zu aktivieren, deaktivieren Sie einige integrierte Filter." + }, + "options_limits_warning_static_filters_browser": { + "message": "In Ihrem Browser ist die maximale Anzahl aktiver integrierter Regeln erreicht. %maximum% von %current% Filter sind aktiviert. Um neue Filter zu aktivieren, deaktivieren Sie einige integrierte Filter" + }, + "options_limits_warning_static_regex_rules": { + "message": "Sie haben die maximale Anzahl aktiver integrierter Regex-Regeln erreicht. %maximum% der %current% Regex-Regeln sind aktiviert. Um neue Regeln zu aktivieren, deaktivieren Sie einige integrierte Filter." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "In Ihrem Browser ist die maximale Anzahl aktiver integrierter Regeln erreicht. Um neue Regeln aktivieren zu können, deaktivieren Sie bitte einige der integrierten Filter" + }, + "options_limits_warning_static_rules": { + "message": "Sie haben die maximale Anzahl der aktiven integrierten Regeln erreicht. %maximum% der %current% Regeln sind aktiviert. Um neue Regeln zu aktivieren, deaktivieren Sie einige integrierte Filter." + }, + "options_limits_warning_static_rules_browser": { + "message": "In Ihrem Browser ist die maximale Anzahl aktiver integrierter Regeln erreicht. Um neue Regeln aktivieren zu können, deaktivieren Sie einige integrierte Filter" + }, + "options_loader_applying_changes": { + "message": "Speichern von Änderungen..." + }, + "options_miscellaneous_settings": { + "message": "Zusätzliche Einstellungen" + }, + "options_modified_first_party_cookie": { + "message": "Cookies von Erstanbietern geändert" + }, + "options_modified_third_party_cookie": { + "message": "Cookies von Drittanbietern geändert" + }, + "options_nav_better_than_extension": { + "message": "Warum ist die AdGuard-App besser als die Erweiterung?" + }, + "options_nav_compare": { + "message": "Vergleichen" + }, + "options_navigation": { + "message": "Navigation" + }, + "options_open_changelog": { + "message": "Änderungsprotokoll" + }, + "options_open_log": { + "message": "Filterungsprotokoll öffnen" + }, + "options_popup_call_to_action": { + "message": "Geben Sie eine gültige URL oder einen Dateipfad in das Eingabefeld oben ein." + }, + "options_popup_check_false_description": { + "message": "Konnte Ihren Filter nicht hinzufügen." + }, + "options_popup_check_false_title": { + "message": "Fehler" + }, + "options_popup_checking_filter": { + "message": "Überprüfen des Filters" + }, + "options_popup_description": { + "message": "Sie werden für diesen Filter abonniert." + }, + "options_popup_filter_description": { + "message": "Beschreibung:" + }, + "options_popup_filter_homepage": { + "message": "Homepage:" + }, + "options_popup_filter_rules_count": { + "message": "Regeln total:" + }, + "options_popup_filter_title": { + "message": "Titel:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Version:" + }, + "options_popup_import_error_file_description": { + "message": "Ein Problem ist aufgetreten." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Um diese Einstellungsdatei zu importieren, erlauben Sie AdGuard, Ihre Datenschutzeinstellungen zu ändern." + }, + "options_popup_import_error_title": { + "message": "Importieren der Einstellungen fehlgeschlagen" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Die Dateierweiterung sollte %extension% sein" + }, + "options_popup_import_success_title": { + "message": "Einstellungen importiert" + }, + "options_popup_next_button": { + "message": "Weiter" + }, + "options_popup_subscribe_button": { + "message": "Abonnieren" + }, + "options_popup_title_placeholder": { + "message": "Filtername eingeben" + }, + "options_popup_trusted_filter_description": { + "message": "Vertrauenswürdige Filter können leistungsstarke Filterregelmodifikatoren verwenden, die in den falschen Händen gefährlich sein können. Aktivieren Sie dieses Kontrollkästchen nur, wenn Sie dem Filter voll vertrauen." + }, + "options_popup_trusted_filter_title": { + "message": "Vertrauenswürdig" + }, + "options_popup_try_again_button": { + "message": "Erneut versuchen" + }, + "options_popup_update_error": { + "message": "Update fehlgeschlagen. Bitte versuchen Sie es später noch einmal." + }, + "options_popup_update_filter": { + "message": "wurde aktualisiert." + }, + "options_popup_update_filters": { + "message": "wurden aktualisiert." + }, + "options_popup_update_not_found": { + "message": "Ihre Filter sind aktuell" + }, + "options_popup_update_title_error": { + "message": "Fehler beim Aktualisieren der Filter" + }, + "options_popup_updating_filters": { + "message": "Aktualisierung der Filter..." + }, + "options_popup_url_placeholder": { + "message": "URL oder Pfad eingeben:" + }, + "options_popup_url_title": { + "message": "Neues Filter-Abonnement" + }, + "options_popup_version_update_changelog_text": { + "message": "Was gibt's Neues in dieser Version?" + }, + "options_popup_version_update_description_major": { + "message": "Das ist ein wichtige Erweiterungsaktualisierung, die viele neue Funktionen und Verbesserungen enthält." + }, + "options_popup_version_update_description_minor": { + "message": "Diese Version enthält hauptsächlich Bugfixes und kleine Verbesserungen." + }, + "options_popup_version_update_disable_notification": { + "message": "Benachrichtigungen deaktivieren" + }, + "options_popup_version_update_offer": { + "message": "Wussten Sie, dass die AdGuard-Funktionen nicht auf diesen Browser beschränkt sind?" + }, + "options_popup_version_update_offer_button_text": { + "message": "Mehr erfahren" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard Browsererweiterung wurde auf Version %current_version% aktualisiert" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Sorgt dafür, dass WebRTC eine strengere IP-Adresse-Richtlinie verwendet, um zu helfen, Ihre echte IP-Adresse auszublenden, wenn Sie einen Proxy oder VPN verwenden" + }, + "options_prevent_webrtc_leaks_title": { + "message": "IP-Adresse-Lecks durch WebRTC verhindern" + }, + "options_privacy": { + "message": "Tracking-Schutz" + }, + "options_privacy_desc": { + "message": "Schützt Ihre Online-Aktivitäten und persönlichen Daten vor Web-Trackern" + }, + "options_privacy_policy": { + "message": "Datenschutzerklärung" + }, + "options_privacy_title": { + "message": "Tracking-Schutz" + }, + "options_rate_us_cta": { + "message": "Bewerten" + }, + "options_remove_client_data_desc": { + "message": "Hindert Google Chrome daran, seine Versions- und Änderungsinformationen an Google-Domains zu senden" + }, + "options_remove_client_data_title": { + "message": "X-Client-Data-Header entfernen" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Entfernen" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Diesen Filter entfernen?" + }, + "options_report_bug": { + "message": "Fehler melden" + }, + "options_reset_settings": { + "message": "Einstellungen zurücksetzen" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Zurücksetzen" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Alle Einstellungen werden auf ihre Standardwerte zurückgesetzt" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Einstellungen zurücksetzen?" + }, + "options_reset_settings_done": { + "message": "Einstellungen wurden zurückgesetzt" + }, + "options_reset_settings_error": { + "message": "Fehler beim Zurücksetzen der Einstellungen" + }, + "options_reset_stats": { + "message": "Statistiken zurücksetzen" + }, + "options_reset_stats_done": { + "message": "Statistiken wurden zurückgesetzt" + }, + "options_rule_limits": { + "message": "Regelbeschränkungen" + }, + "options_rule_limits_description": { + "message": "Chrome begrenzt die Anzahl der Regeln, die angewendet werden können" + }, + "options_rule_limits_dynamic": { + "message": "Dynamische Regeln" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-Regeln — in vom Benutzer hinzugefügten Regeln enthalten" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Unsichere dynamische Regeln (verwendet für einige erweiterte Modifikatoren wie $$redirect oder $$cookie) — enthalten in vom Benutzer hinzugefügten Regeln" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Hinzugefügte Regeln, wie \u003Cuser_rules>Benutzerregeln\u003C/user_rules>, \u003Callowlist>zugelassene Websites\u003C/allowlist> und \u003Ccustom_filters>Benutzerdefinierte Filter\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Vom Benutzer hinzugefügte Regeln, wie \u003Cuser_rules>Benutzerregeln\u003C/user_rules> und \u003Callowlist>zugelassene Websites\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% von %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statische Regeln" + }, + "options_rule_limits_static_rules_all": { + "message": "Regeln aus \u003Ca>integrierten Filtern\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-Regeln — in den oben genannten enthalten" + }, + "options_rule_limits_static_rulesets": { + "message": "Statische Regelsätze" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Integrierte Filter\u003C/a>, wie z. B. Belästigungsfilter oder sprachspezifische Filter" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Option 3. Wenn Sie mit den derzeit aktivierten Standardfiltern zufrieden sind, \u003Ca>schließen Sie diese Warnung\u003C/a>." + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Option 3. Wenn Sie mit dem derzeit aktivierten Standardfilter zufrieden sind, \u003Ca>schließen Sie diesen Warnhinweis.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Löschen Sie unnötige Werbeblocker-Erweiterungen aus Ihrem Browser. Um die im Abschnitt „Vor dem Update aktivierte Filter“ genannten Filter wieder zu aktivieren, klicken Sie auf \u003Ca>Filter reaktivieren\u003C/a>." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Option 2: Installieren Sie die AdGuard Werbeblocker-App: Sie hat keine Einschränkungen bei den Filterregeln. \u003Ca>Holen Sie sich AdGuard Werbeblocker\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Was man tun kann" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Die Höchstzahl der aktiven integrierten Regeln wurde nach einer Aktualisierung oder dem Hinzufügen einer neuen Erweiterung überschritten. Gemäß Manifest V3 reagierte Ihr Chrome-Browser so, dass er alle integrierten Filter der Erweiterung (mit Ausnahme der Standardfilter) deaktivierte." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Was ist passiert?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Vor dem Update aktivierte Filter" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filter jetzt aktiviert" + }, + "options_rule_limits_warning_title": { + "message": "Der Browser hat die Liste der aktiven Filter geändert" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Regelbeschränkungen aufheben und vom umfassenden Schutz profitieren, der in allen Browsern funktioniert" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Desktop-App installieren" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Filter öffnen" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Erweiterungen verwalten" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Für Browsererweiterungen gilt dieselbe Regelbegrenzung. Durch das Deaktivieren anderer Werbeblocker werden möglicherweise weitere Regeln für die AdGuard-Browsererweiterung freigegeben" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Andere Werbeblocker entfernen" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktivieren Sie die benötigten Filter. Sprachspezifische Filter und Datenschutzfilter können viele Regeln enthalten" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Verfügbare Filter überprüfen" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Das können Sie tun" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limit erreicht — einige Filter wurden deaktiviert" + }, + "options_rule_syntax": { + "message": "Regelsyntax" + }, + "options_safebrowsing_enabled": { + "message": "Schutz vor Phishing und Malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Warnt vor bösartigen und Phishing-Websites mit dem Internetsicherheit-Modul. \u003Ca>Mehr lesen\u003C/a>" + }, + "options_select_theme": { + "message": "Design" + }, + "options_select_update_period_12h": { + "message": "12 Stunden" + }, + "options_select_update_period_1h": { + "message": "Eine Stunde" + }, + "options_select_update_period_24h": { + "message": "24 Stunden" + }, + "options_select_update_period_48h": { + "message": "48 Stunden" + }, + "options_select_update_period_6h": { + "message": "6 Stunden" + }, + "options_select_update_period_default": { + "message": "Standard" + }, + "options_select_update_period_disabled": { + "message": "Deaktiviert" + }, + "options_send_not_track_desc": { + "message": "Sendet die Signale \u003Cgpc>Global Privacy Control\u003C/gpc> und \u003Cdnt>Do Not Track\u003C/dnt> an die von Ihnen besuchten Websites" + }, + "options_send_not_track_title": { + "message": "Websites bitten, mich nicht zu verfolgen" + }, + "options_set_update_interval": { + "message": "Filter automatisch aktualisieren" + }, + "options_set_update_interval_desc": { + "message": "Hält die Filter aktuell für eine effektivere Werbeblockierung" + }, + "options_settings": { + "message": "AdGuard-Einstellungen" + }, + "options_share_settings": { + "message": "Einstellungen teilen" + }, + "options_show_adguard_full_version_title": { + "message": "Informationen zur AdGuard-Vollversion zeigen" + }, + "options_show_app_updated_notification": { + "message": "Über Aktualisierungen der Erweiterung benachrichtigen" + }, + "options_show_blocked_ads_count_title": { + "message": "Anzahl der blockierten Anzeigen auf dem Symbol der AdGuard-Erweiterung anzeigen" + }, + "options_show_context_menu_title": { + "message": "AdGuard zum Browser-Kontextmenü hinzufügen" + }, + "options_site": { + "message": "Offizielle Website" + }, + "options_skip_to_main_content": { + "message": "Zum Hauptinhalt wechseln" + }, + "options_stealth_general_title": { + "message": "Allgemein" + }, + "options_stealth_miscellaneous_title": { + "message": "Sonstiges" + }, + "options_stealth_tracking_methods_title": { + "message": "Tracking-Arten" + }, + "options_strip_tracking_params_description": { + "message": "Entfernt Tracking-Parameter aus Seiten-URLs mit AdGuard URL-Tracking-Filter" + }, + "options_strip_tracking_params_title": { + "message": "Tracking-Parameter aus URLs entfernen" + }, + "options_stripped_tracking_parameters": { + "message": "Tracking-Parameter entfernt" + }, + "options_theme_selector_dark": { + "message": "Dunkel" + }, + "options_theme_selector_light": { + "message": "Hell" + }, + "options_theme_selector_system": { + "message": "Systemvorgaben" + }, + "options_third_party_block_cookies_warning": { + "message": "Wenn Sie diese Cookies blockieren, müssen Sie sich möglicherweise bei einigen Websites neu anmelden oder haben andere Probleme mit Cookies" + }, + "options_third_party_desc": { + "message": "Begrenzt die Lebensdauer von Drittanbieter-Cookies, damit Werbetreibende Ihr Verhalten über verschiedene Seiten hinweg nicht verfolgen können" + }, + "options_third_party_title": { + "message": "Cookies von Drittanbietern löschen" + }, + "options_update_antibanner_filters": { + "message": "Auf Filteraktualisierungen prüfen" + }, + "options_use_optimized_filters": { + "message": "Optimierte Filter verwenden" + }, + "options_use_optimized_filters_desc": { + "message": "Verwendet kürzere Versionen von Filtern mit nur den beliebtesten Regeln, um Datenverkehr zu sparen. Besser geeignet für mobile Browser" + }, + "options_user_rules_clear_search": { + "message": "Suchfeld leeren" + }, + "options_user_rules_create_rule": { + "message": "Regel erstellen" + }, + "options_user_rules_delete_all": { + "message": "Alle entfernen" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Alle Benutzerregeln werden endgültig gelöscht" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Alle entfernen?" + }, + "options_user_rules_delete_all_success": { + "message": "Alle Benutzerregeln gelöscht" + }, + "options_user_rules_delete_rule": { + "message": "Regel entfernen" + }, + "options_user_rules_deleted_notification": { + "message": "Benutzerregel gelöscht:" + }, + "options_user_rules_description_key": { + "message": "Ihre Regeln zum Blockieren und Entsperren von Werbung oder ganzen Websites" + }, + "options_user_rules_edit_rule": { + "message": "Regel bearbeiten" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Zum Editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Nach dem Schließen des Editors werden Ihre Regeln hier angezeigt" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor in einem anderen Fenster geöffnet" + }, + "options_user_rules_empty_placeholder": { + "message": "Noch keine Regeln" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Regeln hervorheben…" + }, + "options_user_rules_import_error": { + "message": "Fehler beim Importieren der Benutzerregeln. Bitte versuchen Sie es erneut" + }, + "options_user_rules_import_success": { + "message": "Benutzerregeln importiert" + }, + "options_user_rules_menu": { + "message": "Aktionen für Benutzerregeln" + }, + "options_user_rules_no_match": { + "message": "Nichts gefunden" + }, + "options_user_rules_search_placeholder": { + "message": "Suchen" + }, + "options_user_rules_switch_to_editor": { + "message": "Zur Editor-Ansicht wechseln" + }, + "options_user_rules_switch_to_list": { + "message": "Zur Listenansicht wechseln" + }, + "options_user_rules_undo": { + "message": "Rückgängig" + }, + "options_userfilter": { + "message": "Benutzerregeln" + }, + "options_userfilter_description_key": { + "message": "Hier können Sie Ihre eigenen Regeln hinzufügen, wenn Sie mit HTML/CSS vertraut sind. Lesen Sie die \u003Ca>Tutorial zu Filterregeln\u003C/a>, um zu erfahren, wie Sie Ihre eigenen Filterregeln erstellen." + }, + "options_userfilter_export": { + "message": "Exportieren" + }, + "options_userfilter_import": { + "message": "Importieren" + }, + "options_userfilter_leave_subtitle": { + "message": "Ihre Änderungen an den Regeln gehen verloren" + }, + "options_userfilter_line_break": { + "message": "Zeilenumbruch" + }, + "options_userfilter_line_break_off": { + "message": "Zeilenumbruch: Deaktiviert" + }, + "options_userfilter_line_break_on": { + "message": "Zeilenumbruch: Aktiviert" + }, + "options_userfilter_subtitle_key": { + "message": "Ermöglicht es, eigene Filterregeln hinzuzufügen" + }, + "popup_abuse_site": { + "message": "Diese Webseite melden" + }, + "popup_adguard_footer_title": { + "message": "Schützen Sie Ihr Mobilgerät" + }, + "popup_adguard_for_android": { + "message": "AdGuard für Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard für iOS" + }, + "popup_block_site_ads_option": { + "message": "Werbung manuell blockieren" + }, + "popup_get_system_wide_protection": { + "message": "Systemweiten Schutz erhalten" + }, + "popup_header_cta_link": { + "message": "So verbessern Sie den Schutz" + }, + "popup_header_update_filters": { + "message": "Auf Filteraktualisierungen prüfen" + }, + "popup_limits_exceeded_warning": { + "message": "Ihr Browser hat die Liste der aktiven integrierten Filter geändert" + }, + "popup_open_filtering_log": { + "message": "Filterungsprotokoll öffnen" + }, + "popup_open_settings": { + "message": "AdGuard-Einstellungen öffnen" + }, + "popup_protection_button": { + "message": "AdGuard-Schutz" + }, + "popup_reset_page_user_rules": { + "message": "Benutzerregeln für diese Website löschen" + }, + "popup_resume_protection_button": { + "message": "Fortsetzen" + }, + "popup_security_report": { + "message": "Sicherheit der Website prüfen" + }, + "popup_site_exception_information": { + "message": "Das Filtern wurde deaktiviert, da dies die Funktionalität dieser Website beeinträchtigen kann." + }, + "popup_site_filtering_state_disabled": { + "message": "Schutz ist deaktiviert" + }, + "popup_site_filtering_state_disabling": { + "message": "Schutz wird deaktiviert..." + }, + "popup_site_filtering_state_enabled": { + "message": "Schutz ist aktiviert" + }, + "popup_site_filtering_state_enabling": { + "message": "Schutz wird aktiviert..." + }, + "popup_site_filtering_state_loading": { + "message": "Wird geladen …" + }, + "popup_site_filtering_state_paused": { + "message": "Schutz ist angehalten" + }, + "popup_site_filtering_state_pausing": { + "message": "Schutz wird angehalten..." + }, + "popup_site_filtering_state_resuming": { + "message": "Schutz wird fortgesetzt..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Geschützte Seite" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "für alle Websites" + }, + "popup_statistics_all_categories": { + "message": "Alle" + }, + "popup_statistics_category_advertising": { + "message": "Werbung" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategorie der Statistiken" + }, + "popup_statistics_category_other": { + "message": "Sonstiges" + }, + "popup_statistics_category_social_media": { + "message": "Soziale Medien" + }, + "popup_statistics_category_trackers": { + "message": "Tracker" + }, + "popup_statistics_months_apr": { + "message": "Apr." + }, + "popup_statistics_months_aug": { + "message": "Aug." + }, + "popup_statistics_months_dec": { + "message": "Dez." + }, + "popup_statistics_months_feb": { + "message": "Feb." + }, + "popup_statistics_months_jan": { + "message": "Jan." + }, + "popup_statistics_months_jul": { + "message": "Juli" + }, + "popup_statistics_months_jun": { + "message": "Juni" + }, + "popup_statistics_months_mar": { + "message": "März" + }, + "popup_statistics_months_may": { + "message": "Mai" + }, + "popup_statistics_months_nov": { + "message": "Nov." + }, + "popup_statistics_months_oct": { + "message": "Okt." + }, + "popup_statistics_months_sep": { + "message": "Sept." + }, + "popup_statistics_time_day": { + "message": "24 Stunden" + }, + "popup_statistics_time_label": { + "message": "Statistiken für den Zeitraum" + }, + "popup_statistics_time_month": { + "message": "30 Tage" + }, + "popup_statistics_time_week": { + "message": "7 Tage" + }, + "popup_statistics_time_year": { + "message": "1 Jahr" + }, + "popup_statistics_total": { + "message": "Insgesamt" + }, + "popup_statistics_week_days_fri": { + "message": "Fr" + }, + "popup_statistics_week_days_mon": { + "message": "Mo" + }, + "popup_statistics_week_days_sat": { + "message": "Sa" + }, + "popup_statistics_week_days_sun": { + "message": "So" + }, + "popup_statistics_week_days_thu": { + "message": "Do" + }, + "popup_statistics_week_days_tue": { + "message": "Di" + }, + "popup_statistics_week_days_wed": { + "message": "Mi" + }, + "popup_switch_button": { + "message": "Schutz für die aktuelle Website" + }, + "popup_tab_actions": { + "message": "Aktionen" + }, + "popup_tab_blocked_all_count": { + "message": "Insgesamt blockiert: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blockiert: %num%" + }, + "popup_tab_current_website": { + "message": "Aktuelle Website" + }, + "popup_tab_statistics": { + "message": "Statistiken" + }, + "popup_tabs": { + "message": "Tabs" + }, + "popup_tooltip_loading": { + "message": "Wird geladen …" + }, + "popup_tooltip_protection_disabled": { + "message": "Schutz deaktiviert" + }, + "popup_tooltip_protection_enabled": { + "message": "Schutz aktiviert" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Einige Regeln werden nicht angewendet" + }, + "popup_tooltip_update_available": { + "message": "Update verfügbar" + }, + "post_install_loading": { + "message": "Erweiterung wird geladen..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Regelgrenze in AdGuard Browsererweiterung überschritten. Bitte überprüfen Sie Ihre Filter und deaktivieren Sie die, die Sie nicht benötigen" + }, + "text_collapser_hide_default": { + "message": "Volltext ausblenden" + }, + "text_collapser_show_default": { + "message": "Volltext anzeigen" + }, + "update_available_desc": { + "message": "Um Werbung effektiv zu blockieren, halten Sie Ihre Erweiterung und Filter auf dem neuesten Stand" + }, + "update_available_title": { + "message": "Updates verfügbar" + }, + "update_available_update_btn": { + "message": "Aktualisieren" + }, + "update_check": { + "message": "Nach Updates suchen" + }, + "update_checking_in_progress": { + "message": "Auf Aktualisierungen wird geprüft …" + }, + "update_failed_text": { + "message": "Fehler beim Abschließen des Updates" + }, + "update_failed_try_again_btn": { + "message": "Erneut versuchen" + }, + "update_installing_in_progress_desc": { + "message": "Die Erweiterung wird nach der Aktualisierung neu gestartet" + }, + "update_installing_in_progress_title": { + "message": "Erweiterung und Filter werden aktualisiert..." + }, + "update_not_needed": { + "message": "Ihre Erweiterung und Filter sind auf dem neuesten Stand" + }, + "update_success_text": { + "message": "Erweiterung und Filter aktualisiert" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/el/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/el/messages.json new file mode 100644 index 0000000..ccd9162 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/el/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "Το %filter_name% ενεργοποιήθηκε αυτόματα" + }, + "alert_popup_filter_enabled_title": { + "message": "Αυτόματη ενεργοποίηση των φίλτρων" + }, + "background_tab_title": { + "message": "Καρτέλα φόντου" + }, + "blocking_pages_advanced_button": { + "message": "Για προχωρημένους" + }, + "blocking_pages_btn_go_back": { + "message": "Επιστροφή" + }, + "blocking_pages_btn_proceed": { + "message": "Συνεχίστε ούτως ή άλλως" + }, + "blocking_pages_malware": { + "message": "Αυτή η ιστοσελίδα στο \u003Cstrong>%host%\u003C/strong> έχει αναφερθεί ως σελίδα κακόβουλου λογισμικού και έχει αποκλειστεί με βάση τις προτιμήσεις ασφαλείας σας." + }, + "blocking_pages_more_info_button": { + "message": "Περισσότερες πληροφορίες" + }, + "blocking_pages_page_title": { + "message": "Δεν επιτρέπεται η πρόσβαση" + }, + "blocking_pages_phishing": { + "message": "Αυτή η ιστοσελίδα στο \u003Cstrong>%host%\u003C/strong> έχει αναφερθεί ως σελίδα ηλεκτρονικού \"ψαρέματος\" και έχει αποκλειστεί με βάση τις προτιμήσεις ασφαλείας σας." + }, + "blocking_pages_rule_content_title": { + "message": "Το AdGuard απέτρεψε τη φόρτωση αυτής της σελίδας λόγω του ακόλουθου κανόνα φίλτρου" + }, + "blocking_pages_rule_header_title": { + "message": "Αποκλείστηκε από το AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "Το AdGuard έχει αποκλείσει την πρόσβαση σε αυτήν τη σελίδα" + }, + "clear_button_title": { + "message": "Εκκαθάριση" + }, + "close_button_title": { + "message": "Κλείσιμο" + }, + "context_block_site_ads": { + "message": "Αποκλείστε τις διαφημίσεις χειροκίνητα" + }, + "context_complaint_website": { + "message": "Αναφέρετε ένα πρόβλημα" + }, + "context_disable_protection": { + "message": "Παύση προστασίας AdGuard" + }, + "context_enable_protection": { + "message": "Συνέχιση προστασίας AdGuard" + }, + "context_open_log": { + "message": "Αρχείο καταγραφής φιλτραρίσματος" + }, + "context_open_settings": { + "message": "Ρυθμίσεις AdGuard" + }, + "context_security_report": { + "message": "Αναφορά ασφάλειας ιστότοπου" + }, + "context_site_exception": { + "message": "Αυτή η ιστοσελίδα βρίσκεται στις εξαιρέσεις" + }, + "context_site_filtering_disabled": { + "message": "Το AdGuard δεν μπορεί να φιλτράρει αυτήν τη σελίδα" + }, + "context_site_filtering_off": { + "message": "Απενεργοποίηση φιλτραρίσματος σε αυτή την ιστοσελίδα" + }, + "context_site_filtering_on": { + "message": "Ενεργοποίηση φιλτραρίσματος σε αυτή την ιστοσελίδα" + }, + "context_site_protection_disabled": { + "message": "Η προστασία AdGuard έχει τεθεί σε παύση" + }, + "context_update_antibanner_filters": { + "message": "Έλεγχος για ενημερώσεις φίλτρων" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Απαράμιλλη επέκταση adblock που αποκλείει διαφημίσεις και αναδυόμενα σε Facebook, YouTube και άλλους ιστότοπους." + }, + "filtering_clear_log_events": { + "message": "Εκκαθάριση καταγραφών" + }, + "filtering_log_actions_menu": { + "message": "Ενέργειες μητρώου φιλτραρίσματος" + }, + "filtering_log_assumed_rule_description": { + "message": "Αυτός είναι ένας υποτιθέμενος κανόνας. Για λεπτομέρειες, δείτε τη \u003Ca>Βάση γνώσεων\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Μέθοδος αιτήματος HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Κωδικός κατάστασης HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Αίτημα τρίτου μέρους" + }, + "filtering_log_details_modal_back_button": { + "message": "Επιστροφή στο αίτημα" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Καλλωπισμός" + }, + "filtering_log_details_modal_try_again": { + "message": "Δοκιμάστε ξανά" + }, + "filtering_log_filter_allowed": { + "message": "Επιτρέπεται" + }, + "filtering_log_filter_blocked": { + "message": "Αποκλεισμένα" + }, + "filtering_log_filter_modified": { + "message": "Τροποποιημένα" + }, + "filtering_log_filter_regular": { + "message": "Κανονικά" + }, + "filtering_log_filter_user_rules": { + "message": "Κανόνες Χρήστη" + }, + "filtering_log_hide_referrer": { + "message": "Η αναφορά παραμένει κρυφή από τρίτα μέρη" + }, + "filtering_log_hide_search_queries": { + "message": "Τα ερωτήματα αναζήτησής σας αποκρύπτονται" + }, + "filtering_log_in_allowlist": { + "message": "Η ιστοσελίδα επιτρέπεται" + }, + "filtering_log_modified_rules": { + "message": "Τροποποιημένοι κανόνες: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ναι, διατήρηση" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Αυτή η επιλογή μπορεί να αυξήσει σημαντικά την κατανάλωση μνήμης" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Διατήρηση αρχείου καταγραφής;" + }, + "filtering_log_preserve_log_off": { + "message": "Μην διατηρείτε το αρχείο καταγραφής" + }, + "filtering_log_preserve_log_on": { + "message": "Διατήρηση αρχείου καταγραφής" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Να μην εμφανιστεί ξανά" + }, + "filtering_log_privacy_applied_rules": { + "message": "Η προστασία παρακολούθησης εφαρμόστηκε" + }, + "filtering_log_remove_client_data": { + "message": "Η κεφαλίδα X-Client-Data καταργήθηκε" + }, + "filtering_log_search_string": { + "message": "Αναζήτηση" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Αναζήτηση σε καρτέλες" + }, + "filtering_log_send_not_track": { + "message": "Η κεφαλίδα \"Χωρίς Παρακολούθηση\" εστάλη" + }, + "filtering_log_status_allowed": { + "message": "Επιτράπηκε" + }, + "filtering_log_status_blocked": { + "message": "Αποκλείστηκε" + }, + "filtering_log_status_modified": { + "message": "Τροποποιήθηκε" + }, + "filtering_log_status_processed": { + "message": "Επεξεργασμένο" + }, + "filtering_log_stealth_rules": { + "message": "Κανόνες προστασίας παρακολούθησης: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Αίτημα προέλευσης" + }, + "filtering_log_tag_request_status": { + "message": "Κατάσταση φιλτραρίσματος" + }, + "filtering_log_tag_request_type": { + "message": "Τύπος αίτησης" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Επιτρέπονται και μη αποκλεισμένα αιτήματα" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Αποκλεισμένα αιτήματα" + }, + "filtering_log_tag_tooltip_css": { + "message": "Κώδικας εμφάνισης" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Αιτήματα πρώτου μέρους" + }, + "filtering_log_tag_tooltip_html": { + "message": "Έγγραφα και υπο-έγγραφα" + }, + "filtering_log_tag_tooltip_img": { + "message": "Εικόνες" + }, + "filtering_log_tag_tooltip_js": { + "message": "Σενάρια" + }, + "filtering_log_tag_tooltip_media": { + "message": "Πολυμέσα" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Τροποποιημένα αιτήματα" + }, + "filtering_log_tag_tooltip_other": { + "message": "Γραμματοσειρές, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Αιτήματα που έχουν επεξεργαστεί χωρίς φιλτράρισμα" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Αιτήματα τρίτου μέρους" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Αιτήματα που επηρεάζονται από κανόνες χρήστη" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpΑιτήματα και φερτά αιτήματα" + }, + "filtering_log_title": { + "message": "Αρχείο καταγραφής φιλτραρίσματος" + }, + "filtering_menu_open_filters": { + "message": "Προσαρμογή" + }, + "filtering_modal_add_rule": { + "message": "Προσθήκη" + }, + "filtering_modal_allow_title": { + "message": "Προσθήκη κανόνα αποδοχής" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Εφαρμοσμένος κανόνας | Εφαρμοσμένοι κανόνες" + }, + "filtering_modal_apply_domains": { + "message": "Εφαρμογή σε όλους τους ιστοτόπους" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Υποτιθέμενος κανόνας: | Υποτιθέμενοι κανόνες:" + }, + "filtering_modal_block": { + "message": "Αποκλεισμός" + }, + "filtering_modal_block_again": { + "message": "Αποκλεισμός ξανά" + }, + "filtering_modal_block_title": { + "message": "Προσθήκη κανόνα αποκλεισμού" + }, + "filtering_modal_converted_to": { + "message": "Μετατροπή σε:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Αντιγράφηκε" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Αντιγραφή στο πρόχειρο" + }, + "filtering_modal_declarative_rule": { + "message": "Κανόνας DNR:" + }, + "filtering_modal_element": { + "message": "Στοιχείο:" + }, + "filtering_modal_exception_title": { + "message": "Προσθέστε μια εξαίρεση" + }, + "filtering_modal_filter": { + "message": "Φίλτρο" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Κατάσταση φιλτραρίσματος" + }, + "filtering_modal_hide_full_element": { + "message": "Απόκρυψη πλήρους στοιχείου" + }, + "filtering_modal_hide_full_rule": { + "message": "Απόκρυψη πλήρους κανόνα" + }, + "filtering_modal_hide_full_url": { + "message": "Απόκρυψη πλήρους URL" + }, + "filtering_modal_important": { + "message": "Δώστε μεγαλύτερη προτεραιότητα στον κανόνα" + }, + "filtering_modal_info_title": { + "message": "Λεπτομέρειες σύνδεσης" + }, + "filtering_modal_open_in_new_tab": { + "message": "Άνοιγμα σε νέα καρτέλα" + }, + "filtering_modal_options_desc": { + "message": "Επιλογές" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Αρχικός κανόνας: | Αρχικοί κανόνες:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Τι πρέπει να επιτραπεί" + }, + "filtering_modal_patterns_desc_block": { + "message": "Τι πρέπει να αποκλειστεί" + }, + "filtering_modal_preview_request_button": { + "message": "Προεπισκόπηση" + }, + "filtering_modal_preview_title": { + "message": "Προεπισκόπηση" + }, + "filtering_modal_privacy": { + "message": "Προστασία παρακολούθησης" + }, + "filtering_modal_remove_allowlist": { + "message": "Αφαίρεση από την επιτρεπόμενη λίστα" + }, + "filtering_modal_remove_param": { + "message": "Κατάργηση παραμέτρων ερωτήματος" + }, + "filtering_modal_remove_user": { + "message": "Διαγραφή κανόνα" + }, + "filtering_modal_rule": { + "message": "Κανόνας:" + }, + "filtering_modal_rule_text_desc": { + "message": "Κανόνας" + }, + "filtering_modal_rules": { + "message": "Κανόνες:" + }, + "filtering_modal_show_full_element": { + "message": "Εμφάνιση πλήρους στοιχείου" + }, + "filtering_modal_show_full_rule": { + "message": "Εμφάνιση πλήρους κανόνα" + }, + "filtering_modal_show_full_url": { + "message": "Εμφάνιση πλήρους URL" + }, + "filtering_modal_source": { + "message": "Πηγή" + }, + "filtering_modal_status_text_desc": { + "message": "Κατάσταση" + }, + "filtering_modal_status_text_error": { + "message": "Απέτυχε να φορτώσει την προεπισκόπηση. Παρακαλώ προσπαθήστε ξανά" + }, + "filtering_modal_status_text_loading": { + "message": "Φόρτωση..." + }, + "filtering_modal_third_party": { + "message": "Εφαρμογή μόνο σε αιτήσεις τρίτων" + }, + "filtering_modal_type": { + "message": "Τύπος" + }, + "filtering_modal_unblock": { + "message": "Ξεμπλοκάρισμα" + }, + "filtering_refresh_tab_short": { + "message": "Ανανέωση" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Ανανέωση σελίδας" + }, + "filtering_table_action": { + "message": "Ενέργεια" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Δεν βρέθηκε τίποτα. \u003Creset>Απενεργοποίηση φίλτρων\u003C/reset> ή \u003Crefresh>επαναφόρτωση της σελίδας\u003C/refresh> για προβολή εγγραφών αρχείου καταγραφής" + }, + "filtering_table_filter": { + "message": "Φίλτρο" + }, + "filtering_table_open_details": { + "message": "Άνοιγμα λεπτομερειών" + }, + "filtering_table_rule": { + "message": "Κανόνας φιλτραρίσματος" + }, + "filtering_table_source": { + "message": "Πηγή" + }, + "filtering_table_status": { + "message": "Κατάσταση" + }, + "filtering_table_type": { + "message": "Τύπος" + }, + "filtering_type_all": { + "message": "Όλα" + }, + "filtering_type_other": { + "message": "Άλλα" + }, + "filters_download_loading": { + "message": "Περιμένετε όσο φορτώνεται η βάση δεδομένων φίλτρων..." + }, + "filters_download_title": { + "message": "Η βάση δεδομένων φίλτρων φορτώνει..." + }, + "fullscreen_user_rules_title": { + "message": "Κανόνες χρήστη" + }, + "group_description_adblocking": { + "message": "Διαμορφώστε τον αποκλεισμό διαφημίσεων εδώ για να αντιμετωπίσετε ενοχλητικά banners, αναδυόμενα παράθυρα, διαφημίσεις βίντεο και άλλα τέτοια, μια για πάντα" + }, + "group_description_annoyances": { + "message": "Αφαιρέστε τα αναδυόμενα παράθυρα και άλλες ενοχλητικές ειδοποιήσεις, όπως ειδοποιήσεις cookie" + }, + "group_description_custom": { + "message": "Δημιουργήστε τα δικά σας φίλτρα για να ρυθμίσετε το φιλτράρισμα ιστού σύμφωνα με τις προτιμήσεις σας" + }, + "group_description_lang": { + "message": "Μην περιορίζεστε - αποκλείστε διαφημίσεις σε ιστότοπους σε οποιαδήποτε γλώσσα" + }, + "group_description_miscellaneous": { + "message": "Περισσότερες ρυθμίσεις για τη διαμόρφωση της περιήγησής σας στον ιστό με το AdGuard ακόμη περισσότερο" + }, + "group_description_security": { + "message": "Προστατέψτε τον εαυτό σας από κακόβουλο λογισμικό, ηλεκτρονικό ψάρεμα και άλλες διαδικτυακές απειλές" + }, + "group_description_social": { + "message": "Απόκρυψη ανεπιθύμητων κουμπιών \"Μου αρέσει\"/\"Κοινή χρήση\" και άλλων γραφικών στοιχείων κοινωνικών μέσων" + }, + "group_description_stealth": { + "message": "Προστατέψτε την ταυτότητά σας και τις ευαίσθητες προσωπικές πληροφορίες σας από χιλιάδες διαδικτυακούς ιχνηλάτες, αποκλείοντας όλες τις γνωστές δημοφιλείς μεθόδους παρακολούθησης" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Να μην γίνεται ξανά προβολή" + }, + "opera_search_permission_go_to_settings": { + "message": "Μετάβαση στις Ρυθμίσεις" + }, + "opera_search_permission_warning": { + "message": "Για αποκλεισμό διαφημίσεων αναζήτησης, επιτρέψτε την πρόσβαση στα αποτελέσματα σελίδας αναζήτησης στις ρυθμίσεις του προγράμματος περιήγησης" + }, + "options_about": { + "message": "Σχετικά με" + }, + "options_about_libs": { + "message": "Χρησιμοποιηθείσες βιβλιοθήκες" + }, + "options_about_title": { + "message": "Επέκταση προγράμματος περιήγησης AdGuard" + }, + "options_about_update_available": { + "message": "Η έκδοση %version% είναι διαθέσιμη. Θα ληφθεί και θα εγκατασταθεί αυτόματα." + }, + "options_about_version": { + "message": "Έκδοση" + }, + "options_acknowledgment": { + "message": "Συνεισφορές" + }, + "options_add_custom_filter": { + "message": "Προσθήκη προσαρμοσμένου φίλτρου" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Προσθήκη" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Έλεγχος του φίλτρου σας..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "Το URL επέστρεψε μια ιστοσελίδα αντί για μια λίστα φίλτρων. Παρακαλώ δώστε έναν άμεσο σύνδεσμο προς το αρχείο φίλτρου." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Παρακαλώ προσπαθήστε ξανά ή επικοινωνήστε με την υποστήριξη" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Αποτυχία προσθήκης προσαρμοσμένου φίλτρου" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Όνομα φίλτρου:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Έμπιστο" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Ορισμένοι κανόνες φιλτραρίσματος μπορούν να αλλοιώσουν σημαντικά την εμπειρία πλοήγησής σας και να διακυβεύσουν την ιδιωτικότητά σας. Βεβαιωθείτε ότι χρησιμοποιείτε μόνο φίλτρα από προγραμματιστές που εμπιστεύεστε" + }, + "options_add_custom_filter_modal_title": { + "message": "Προσθήκη προσαρμοσμένου φίλτρου" + }, + "options_all_limits_exceeded_warning": { + "message": "Έχετε φτάσει το όριο των ενεργών ενσωματωμένων κανόνων. Το πρόγραμμα περιήγησής σας έχει τροποποιήσει τη λίστα των ενεργών ενσωματωμένων φίλτρων. Ο αριθμός των ενεργοποιημένων φίλτρων έχει αλλάξει από %expected% σε %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Έχετε φτάσει το όριο του προγράμματος περιήγησής σας για ενεργούς ενσωματωμένους κανόνες. Το πρόγραμμα περιήγησής σας έχει μειώσει τη λίστα ενεργών ενσωματωμένων φίλτρων από %expected% σε %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Το πρόγραμμα περιήγησής σας περιορίζει \u003Cexternal-link>ορισμένους τύπους κανόνων\u003C/external-link>. Για να εφαρμοστούν όλοι οι κανόνες, ενεργοποιήστε την επιλογή \u003Cb>Allow user scripts\u003C/b> στις \u003Csettings-link>ρυθμίσεις επέκτασης\u003C/settings-link> του προγράμματος περιήγησής σας." + }, + "options_allowlist": { + "message": "Επιτρεπόμενη λίστα" + }, + "options_allowlist_alert_invert": { + "message": "Η λίστα επιτρεπόμενων είναι ανεστραμμένη. Οι διαφημίσεις αποκλείονται μόνο σε ιστοσελίδες που έχουν προστεθεί σε αυτή." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Διακοπή αναστροφής\u003C/a>" + }, + "options_allowlist_desc": { + "message": "Το AdGuard δεν αποκλείει διαφημίσεις και ιχνηλάτες σε ιστοσελίδες από τη λίστα" + }, + "options_allowlist_invalid_entries": { + "message": "Για αποθήκευση, διατηρήστε μόνο τομείς ή URL. Αυτά χρειάζονται διόρθωση: %entries%" + }, + "options_allowlist_invert": { + "message": "Αντιστροφή της λίστας επιτρεπόμενων" + }, + "options_allowlist_invert_desc": { + "message": "Αποκλείει διαφημίσεις και ιχνηλάτες μόνο σε ιστοσελίδες της λίστας επιτρεπομένων" + }, + "options_allowlist_leave_subtitle": { + "message": "Οι αλλαγές σας στη λίστα επιτρεπόμενων θα χαθούν" + }, + "options_allowlist_menu": { + "message": "Ενέργειες λίστας επιτρεπόμενων" + }, + "options_anonymized_usage_data_description": { + "message": "Στέλνει ανώνυμα στατιστικά στοιχεία σχετικά με τη χρήση επεκτάσεων στο AdGuard. \u003Cbutton>Μάθετε περισσότερα\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Το κατάλαβα" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Αυτά τα δεδομένα περιλαμβάνουν:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Ονόματα κουμπιών που κάνετε κλικ" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Ονόματα οθονών με τις οποίες αλληλεπιδράτε" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Αναγνωριστικά συνεδρίας" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Αυτά τα δεδομένα είναι ανώνυμα και χρησιμοποιούνται μόνο εσωτερικά. Ποτέ δεν τα μοιραζόμαστε με τρίτα μέρη" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Χρειαζόμαστε αυτές τις πληροφορίες για να αναλύσουμε και να βελτιώσουμε τη λειτουργία του AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Δεδομένα χρήσης επέκτασης" + }, + "options_anonymized_usage_data_title": { + "message": "Αποστολή ανώνυμων δεδομένων χρήσης επέκτασης" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Αυτό το προσαρμοσμένο φίλτρο έχει ήδη προστεθεί" + }, + "options_antibanner_custom_group": { + "message": "Προσαρμοσμένα" + }, + "options_antibanner_custom_group_description": { + "message": "Σας επιτρέπει να προσθέσετε φίλτρα από αρχείο ή URL" + }, + "options_antibanner_rules_count": { + "message": "Κανόνες: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Ενημέρωση: %date%" + }, + "options_block_acceptable_ads": { + "message": "Αποκλεισμός διαφημίσεων αναζήτησης και αυτοπροβολή ιστοσελίδων" + }, + "options_block_acceptable_ads_desc": { + "message": "Αποκλείει διαφημίσεις στα αποτελέσματα αναζήτησης και την αυτοπροώθηση ιστοσελίδων. \u003Ca>Μάθετε περισσότερα\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Για να αποκλείσετε τα cookie, ορίστε τη διάρκεια ζωής σε 0" + }, + "options_block_known_trackers_description": { + "message": "Αποκλείει ιχνηλάτες και διαδικτυακή ανάλυση χρησιμοποιώντας το φίλτρο προστασίας παρακολούθησης AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Αποκλεισμός γνωστών ιχνηλατών" + }, + "options_check_update_progress": { + "message": "Έλεγχος..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Εκκαθάριση" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Όλα τα στατιστικά σχετικά με τη χρήση δεδομένων θα διαγραφούν μόνιμα" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Εκκαθάριση στατιστικών;" + }, + "options_clipboard_permission_warning": { + "message": "Για να αντιγράψετε και να επικολλήσετε κανόνες, επιτρέπεται στην AdGuard η πρόσβαση στο πρόχειρο. \u003Ca>Επιτρέπεται\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Στέλνει ανώνυμα στατιστικά σχετικά με τη χρήση φίλτρων διαφημίσεων στο AdGuard. \u003Ca>Μάθετε περισσότερα\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Βοηθήστε στην ανάπτυξη φίλτρων AdGuard" + }, + "options_coming_soon": { + "message": "Έρχεται σύντομα" + }, + "options_confirm_modal_cancel_button": { + "message": "Άκυρο" + }, + "options_copyright": { + "message": "Όλα τα δικαιώματα διατηρούνται." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Για να κάνετε χρήση προσαρμοσμένων φιλτρών, ενεργοποιήστε την \u003Cb>Επίτρεψη σεναρίων χρήστη\u003C/b> στις \u003Csettings-link>ρυθμίσεις της επέκτασης\u003C/settings-link> του προγράμματος περιήγησής σας." + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Για να χρησιμοποιήσετε προσαρμοσμένα φίλτρα, πραγματοποιήστε Ενεργοποίηση της \u003Cb>Λειτουργίας προγραμματιστή\u003C/b> στις \u003Csettings-link>ρυθμίσεις επέκτασης\u003C/settings-link> του προγράμματος περιήγησής σας." + }, + "options_desktop_app_promo_button_linux": { + "message": "Αποκτήστε το AdGuard για Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Αποκτήστε το AdGuard για Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Αποκτήστε το AdGuard για Windows" + }, + "options_desktop_app_promo_description": { + "message": "Εφαρμογές όπως το Spotify, το Discord ή το Zoom μπορούν ακόμα να εμφανίζουν διαφημίσεις και να παρακολουθούν τη δραστηριότητά σας" + }, + "options_desktop_app_promo_subdescription": { + "message": "Η εφαρμογή επιφάνειας εργασίας μας μπορεί να σας προστατεύσει από αυτά" + }, + "options_desktop_app_promo_title": { + "message": "Η επέκταση προστατεύει μόνο το πρόγραμμα περιήγησης" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Το πρόγραμμα περιήγησής σας περιορίζει \u003Cexternal-link>ορισμένους τύπους κανόνων\u003C/external-link>. Για να εφαρμοστούν όλοι οι κανόνες, ενεργοποιήστε τη \u003Cb>Λειτουργία προγραμματιστή\u003C/b> στις \u003Csettings-link>ρυθμίσεις επέκτασης\u003C/settings-link> του προγράμματος περιήγησής σας" + }, + "options_disable_webrtc_desc": { + "message": "Αποκλείει WebRTC που μπορεί να διαρρεύσει τη πραγματική σας Διεύθυνση IP ακόμα και αν χρησιμοποιείτε διακομιστή μεσολάβησης ή VPN. Ορισμένοι messengers, πλατφόρμες ροής ή παιχνίδια ενδέχεται να μη λειτουργούν σωστά" + }, + "options_disable_webrtc_title": { + "message": "Αποκλεισμός WebRTC" + }, + "options_discuss": { + "message": "Συζητήστε για το AdGuard" + }, + "options_do_you_like_question": { + "message": "Σας αρέσει το AdGuard;" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Έξοδος από τη λειτουργία παραθύρου" + }, + "options_editor_indicator_saved": { + "message": "Αποθηκεύτηκε" + }, + "options_editor_indicator_saving": { + "message": "Αποθήκευση..." + }, + "options_editor_leave_cancel": { + "message": "Επιστροφή στην επεξεργασία" + }, + "options_editor_leave_confirm": { + "message": "Ναι, αποχώρηση" + }, + "options_editor_leave_title": { + "message": "Θέλετε να φύγετε χωρίς αποθήκευση;" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Άνοιγμα προγράμματος επεξεργασίας σε νέα καρτέλα" + }, + "options_editor_save": { + "message": "Αποθήκευση" + }, + "options_editor_save_error": { + "message": "Αποτυχία αποθήκευσης αλλαγών. Προσπαθήστε ξανά ή επικοινωνήστε με την υποστήριξη" + }, + "options_empty_custom_filter": { + "message": "Δεν έχετε προσαρμοσμένα φίλτρα ακόμα" + }, + "options_enable_autodetect_filter": { + "message": "Αυτόματη ενεργοποίηση των πιο κατάλληλων φίλτρων" + }, + "options_enable_autodetect_filter_desc": { + "message": "Ανιχνεύει τη γλώσσα της ιστοσελίδας και ενεργοποιεί τα κατάλληλα φίλτρα" + }, + "options_export_settings": { + "message": "Εξαγωγή ρυθμίσεων" + }, + "options_filters": { + "message": "Φίλτρα" + }, + "options_filters_annoyances_consent_description": { + "message": "Πρόκειται να ενεργοποιήσετε ένα ή περισσότερα φίλτρα ενοχλητικών. Αυτά μπλοκάρουν στοιχεία που είτε δεν σχετίζονται με το περιεχόμενο της ιστοσελίδας είτε σχετίζονται αλλά είναι ενοχλητικά για την εμπειρία του χρήστη σας. Οι ιδιοκτήτες ιστοσελίδων μπορούν να θεωρούν αυτά τα στοιχεία απαραίτητα: αν τα μπλοκάρετε, ίσως παραβιάζετε τους όρους τους· ορισμένες λειτουργίες ιστοσελίδων μπορεί να μην είναι διαθέσιμες ή να μην λειτουργούν σωστά. Κατανοείτε και συμφωνείτε ότι είστε αποκλειστικά υπεύθυνοι για τη συμμόρφωση με τους όρους χρήσης των ιστοσελίδων που επισκέπτεστε και ότι το AdGuard δεν είναι υπεύθυνο για τη συμμόρφωσή σας με τους όρους χρήσης των ιστοσελίδων που επισκέπτεστε χρησιμοποιώντας τα προϊόντα μας." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Ενεργοποίηση" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Αρχική σελίδα" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Για λεπτομέρειες σχετικά με το τι μπλοκάρουν τα φίλτρα ενοχλήσεων του AdGuard, δείτε την \u003Ca>Πολιτική φίλτρων\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Πρέπει να ενεργοποιήσω τα φίλτρα;" + }, + "options_filters_annoyances_consent_title": { + "message": "Διαβάστε προσεκτικά πριν ενεργοποιήσετε τα φίλτρα ενοχλήσεων" + }, + "options_filters_back_button": { + "message": "Πηγαίνετε πίσω" + }, + "options_filters_empty_title": { + "message": "Δεν βρέθηκε τίποτα" + }, + "options_filters_enabled": { + "message": "Ενεργό:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% και %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% και %more% ακόμα" + }, + "options_filters_enabled_per_group": { + "message": "Ενεργά: %current% από %total%" + }, + "options_filters_filter_link": { + "message": "Μετάβαση στην αρχική σελίδα" + }, + "options_filters_filter_tags": { + "message": "Ετικέτες φίλτρων" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Επιλέξατε να εμπιστευτείτε αυτό το φίλτρο" + }, + "options_filters_filter_updated": { + "message": "ενημερώθηκε:" + }, + "options_filters_filter_version": { + "message": "έκδοση:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Σύνολο κανόνων: %num%" + }, + "options_filters_last_checked": { + "message": "Τελευταίος έλεγχος: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Όλα τα φίλτρα" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Ανενεργό" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Ενεργό" + }, + "options_filters_no_enabled": { + "message": "Δεν ενεργοποιήθηκαν φίλτρα" + }, + "options_filters_of_group": { + "message": "Φίλτρα της ομάδας \"%groupName%\"" + }, + "options_filters_search": { + "message": "Αναζήτηση" + }, + "options_filters_search_filter": { + "message": "Αναζήτηση φίλτρου" + }, + "options_first_party_block_cookies_warning": { + "message": "Εάν αποκλείσετε αυτούς τους Cookie εντελώς, μερικές ιστοσελίδες μπορεί να καταρρεύσουν ή να σταματήσουν να λειτουργούν." + }, + "options_first_party_desc": { + "message": "Αποτρέπει τις ιστοσελίδες από το να θυμούνται τα στοιχεία σας, όπως στοιχεία σύνδεσης και προτιμήσεις γλώσσας, περιορίζοντας τη διάρκεια ζωής των cookies πρώτου-μέρους" + }, + "options_first_party_title": { + "message": "Διαγραφή cookie πρώτου μέρους (δεν συνιστάται)" + }, + "options_general_settings": { + "message": "Γενικά" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Εμποδίζει τρίτους από το να γνωρίζουν ποια ιστοσελίδα επισκέπτεστε" + }, + "options_hide_referrer_title": { + "message": " Απόκρυψη Παραπομπής από τρίτα μέρη" + }, + "options_hide_search_queries_desc": { + "message": "Απόκρυψη των ερωτημάτων για ιστοσελίδες που επισκεφθήκατε με μια μηχανή αναζήτησης" + }, + "options_hide_search_queries_title": { + "message": "Απόκρυψη των ερωτημάτων αναζήτησης" + }, + "options_import_configuration_applying_subtitle": { + "message": "Αντικατάσταση των τρεχουσών ρυθμίσεών σας με τις εισαγόμενες. Το φιλτράρισμα είναι απενεργοποιημένο κατά την εισαγωγή." + }, + "options_import_configuration_applying_title": { + "message": "Εισαγωγή..." + }, + "options_import_configuration_confirm_button": { + "message": "Εισαγωγή" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Οι εισαγόμενες ρυθμίσεις θα αντικαταστήσουν τις τρέχουσες. Άλλες ρυθμίσεις δεν θα επηρεαστούν" + }, + "options_import_configuration_confirm_title": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "options_import_configuration_error_button": { + "message": "Κλείσιμο" + }, + "options_import_configuration_error_subtitle": { + "message": "Ελέγξτε τον σύνδεσμο εισαγωγής και δοκιμάστε ξανά. Εάν δεν βοηθήσει, επικοινωνήστε με την υποστήριξη" + }, + "options_import_configuration_error_title": { + "message": "Αποτυχία εισαγωγής ρυθμίσεων" + }, + "options_import_configuration_success_button": { + "message": "Κλείσιμο" + }, + "options_import_configuration_success_subtitle": { + "message": "Οι ρυθμίσεις εισήχθησαν επιτυχώς" + }, + "options_import_configuration_success_title": { + "message": "Όλα έτοιμα" + }, + "options_import_settings": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Αντιστροφή" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Οι διαφημίσεις και οι ιχνηλάτες θα μπλοκάρονται μόνο σε ιστοσελίδες από τη λίστα επιτρεπόμενων" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Αντιστροφή της λίστας επιτρεπόμενων;" + }, + "options_leave_feedback": { + "message": "Αφήστε τα σχόλιά σας" + }, + "options_lifetime_minutes": { + "message": "Διάρκεια ζωής, λεπτά" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Έχετε φτάσει στο όριο των regex κανόνων που προστέθηκαν από τον χρήστη. %maximum% από %current% regex κανόνες είναι ενεργοποιημένοι." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Έχετε φτάσει το όριο κανόνων regex που προστέθηκαν από τον χρήστη. %maximum% από %current% κανόνες είναι ενεργοί. Για να προσθέσετε νέους κανόνες regex, καταργήστε μερικούς υπάρχοντες" + }, + "options_limits_warning_dynamic_rules": { + "message": "Έχετε φτάσει στο όριο των κανόνων που προστέθηκαν από τον χρήστη. %maximum% από %current% κανόνες είναι ενεργοποιημένοι." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Έχετε φτάσει το όριο κανόνων που προστέθηκαν από τον χρήστη. %maximum% από %current% κανόνες είναι ενεργοί. Για να προσθέσετε νέους κανόνες, καταργήστε μερικούς υπάρχοντες" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Έχετε φτάσει στο όριο των κανόνων που προστίθενται από χρήστες και δεν είναι ασφαλείς. %maximum% από %current% μη ασφαλείς κανόνες είναι ενεργοί." + }, + "options_limits_warning_static_filters": { + "message": "Έχετε φτάσει το όριο των ενεργών ενσωματωμένων φίλτρων. %maximum% από %current% φίλτρα είναι ενεργοποιημένα. Για να ενεργοποιήσετε νέους κανόνες, απενεργοποιήστε ορισμένα ενσωματωμένα φίλτρα." + }, + "options_limits_warning_static_filters_browser": { + "message": "Έχετε φτάσει το όριο του προγράμματος περιήγησής σας για ενεργά ενσωματωμένα φίλτρα. %maximum% από %current% φίλτρα είναι ενεργά. Για να ενεργοποιήσετε νέα φίλτρα, απενεργοποιήστε κάποια ενσωματωμένα" + }, + "options_limits_warning_static_regex_rules": { + "message": "Έχετε φτάσει το όριο των ενεργών regex κανόνων. %maximum% από %current% regex κανόνες είναι ενεργοποιημένοι. Για να ενεργοποιήσετε νέους κανόνες, απενεργοποιήστε ορισμένα ενσωματωμένα φίλτρα." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Έχετε φτάσει το όριο ενεργών ενσωματωμένων κανόνων regex. Για να ενεργοποιήσετε νέους κανόνες, απενεργοποιήστε κάποια ενσωματωμένα φίλτρα" + }, + "options_limits_warning_static_rules": { + "message": "Έχετε φτάσει το όριο των ενεργών ενσωματωμένων κανόνων. %maximum% από %current% κανόνες είναι ενεργοποιημένοι. Για να ενεργοποιήσετε νέους κανόνες, απενεργοποιήστε ορισμένα ενσωματωμένα φίλτρα." + }, + "options_limits_warning_static_rules_browser": { + "message": "Έχετε φτάσει το όριο του προγράμματος περιήγησής σας για ενεργούς ενσωματωμένους κανόνες. Για να ενεργοποιήσετε νέους κανόνες, απενεργοποιήστε κάποια ενσωματωμένα φίλτρα" + }, + "options_loader_applying_changes": { + "message": "Εφαρμογή αλλαγών..." + }, + "options_miscellaneous_settings": { + "message": "Επιπρόσθετες ρυθμίσεις" + }, + "options_modified_first_party_cookie": { + "message": "Cookie πρώτου μέρους τροποποιήθηκε" + }, + "options_modified_third_party_cookie": { + "message": "Cookie τρίτου μέρους τροποποιήθηκε" + }, + "options_nav_better_than_extension": { + "message": "Γιατί η εφαρμογή AdGuard είναι καλύτερη από την επέκταση;" + }, + "options_nav_compare": { + "message": "Σύγκριση μεταξύ τους" + }, + "options_navigation": { + "message": "Πλοήγηση" + }, + "options_open_changelog": { + "message": "Αρχείο αλλαγών" + }, + "options_open_log": { + "message": "Άνοιγμα αρχείου καταγραφής φιλτραρίσματος" + }, + "options_popup_call_to_action": { + "message": "Εισάγετε μια έγκυρη διεύθυνση URL ή τη διαδρομή αρχείου του φίλτρου στο ανωτέρω πεδίο." + }, + "options_popup_check_false_description": { + "message": "Σφάλμα κατά την προσθήκη του προσαρμοσμένου φίλτρου" + }, + "options_popup_check_false_title": { + "message": "Σφάλμα" + }, + "options_popup_checking_filter": { + "message": "Έλεγχος του φίλτρου σας" + }, + "options_popup_description": { + "message": "Θα εγγραφείτε σε αυτό το φίλτρο." + }, + "options_popup_filter_description": { + "message": "Περιγραφή:" + }, + "options_popup_filter_homepage": { + "message": "Αρχική σελίδα:" + }, + "options_popup_filter_rules_count": { + "message": "Καταμέτρηση κανόνων:" + }, + "options_popup_filter_title": { + "message": "Τίτλος:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Έκδοση:" + }, + "options_popup_import_error_file_description": { + "message": "Κάτι πήγε στραβά" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Για να εισαγάγετε αυτό το αρχείο ρυθμίσεων, επιτρέψτε στο AdGuard να αλλάξει τις ρυθμίσεις σας που σχετίζονται με την ιδιωτικότητα." + }, + "options_popup_import_error_title": { + "message": "Αποτυχία εισαγωγής ρυθμίσεων" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Η επέκταση αρχείου θα πρέπει να είναι %extension%" + }, + "options_popup_import_success_title": { + "message": "Εισαγωγή ρυθμίσεων" + }, + "options_popup_next_button": { + "message": "Επόμενο" + }, + "options_popup_subscribe_button": { + "message": "Εγγραφή" + }, + "options_popup_title_placeholder": { + "message": "Εισάγετε όνομα φίλτρου" + }, + "options_popup_trusted_filter_description": { + "message": "Τα αξιόπιστα φίλτρα μπορούν να χρησιμοποιούν ισχυρούς τροποποιητές κανόνων φιλτραρίσματος που μπορεί να είναι επικίνδυνοι σε λάθος χέρια. Μην επιλέξετε αυτό το πλαίσιο εκτός εάν το εμπιστεύεστε πλήρως." + }, + "options_popup_trusted_filter_title": { + "message": "Έμπιστο" + }, + "options_popup_try_again_button": { + "message": "Δοκιμάστε ξανά" + }, + "options_popup_update_error": { + "message": "Απέτυχε η λήψη ενημερώσεων. Παρακαλώ προσπαθήστε ξανά αργότερα." + }, + "options_popup_update_filter": { + "message": "ενημερώθηκε." + }, + "options_popup_update_filters": { + "message": "ενημερώθηκαν." + }, + "options_popup_update_not_found": { + "message": "Τα φίλτρα σας είναι ενημερωμένα" + }, + "options_popup_update_title_error": { + "message": "Σφάλμα κατά την ενημέρωση των φίλτρων" + }, + "options_popup_updating_filters": { + "message": "Ενημέρωση φίλτρων..." + }, + "options_popup_url_placeholder": { + "message": "Εισάγετε διεύθυνση URL ή διαδρομή αρχείου" + }, + "options_popup_url_title": { + "message": "Νέα Συνδρομή Φίλτρου" + }, + "options_popup_version_update_changelog_text": { + "message": "Τι νέο υπάρχει σε αυτή την έκδοση;" + }, + "options_popup_version_update_description_major": { + "message": "Πρόκειται για μια σημαντική αναβάθμιση της επέκτασης που φέρνει πολλές νέες δυνατότητες και βελτιώσεις." + }, + "options_popup_version_update_description_minor": { + "message": "Αυτή η έκδοση περιέχει κυρίως διορθώσεις σφαλμάτων και μικρές βελτιώσεις." + }, + "options_popup_version_update_disable_notification": { + "message": "Απενεργοποίηση ειδοποιήσεων" + }, + "options_popup_version_update_offer": { + "message": "Γνωρίζατε ότι οι δυνατότητες του AdGuard δεν περιορίζονται σε αυτό το πρόγραμμα περιήγησης;" + }, + "options_popup_version_update_offer_button_text": { + "message": "ΜΑΘΕΤΕ ΠΕΡΙΣΣΟΤΕΡΑ" + }, + "options_popup_version_update_title_text": { + "message": "Η επέκταση AdGuard έχει ενημερωθεί στην έκδοση %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Κάνει το WebRTC να χρησιμοποιεί μια αυστηρότερη πολιτική διευθύνσεων IP για να κρατήσει κρυφή την πραγματική σας διεύθυνση IP όταν χρησιμοποιείτε proxy ή VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Αποτροπή διαρροών διευθύνσεων IP μέσω WebRTC" + }, + "options_privacy": { + "message": "Προστασία παρακολούθησης" + }, + "options_privacy_desc": { + "message": "Προστατεύει τις διαδικτυακές σας δραστηριότητες και τα προσωπικά σας δεδομένα από διαδικτυακούς ιχνηλάτες" + }, + "options_privacy_policy": { + "message": "Πολιτική απορρήτου" + }, + "options_privacy_title": { + "message": "Προστασία παρακολούθησης" + }, + "options_rate_us_cta": { + "message": "Βαθμολογήστε το" + }, + "options_remove_client_data_desc": { + "message": "Εμποδίζει το Google Chrome από το να στέλνει πληροφορίες σχετικά με την έκδοση και τις ρυθμίσεις του σε διευθύνσεις της Google" + }, + "options_remove_client_data_title": { + "message": "Αφαίρεση αιτήματος X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Κατάργηση" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Κατάργηση αυτού του φίλτρου;" + }, + "options_report_bug": { + "message": "Αναφορά σφάλματος" + }, + "options_reset_settings": { + "message": "Επαναφορά ρυθμίσεων" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Επαναφορά" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Όλες οι ρυθμίσεις θα επαναφερθούν στις προεπιλεγμένες τιμές τους" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Επαναφορά ρυθμίσεων;" + }, + "options_reset_settings_done": { + "message": "Οι ρυθμίσεις έχουν επαναφερθεί" + }, + "options_reset_settings_error": { + "message": "Σφάλμα κατά την επαναφορά των ρυθμίσεων" + }, + "options_reset_stats": { + "message": "Επαναφορά στατιστικών" + }, + "options_reset_stats_done": { + "message": "Έγινε επαναφορά των στατιστικών" + }, + "options_rule_limits": { + "message": "Όρια κανόνων" + }, + "options_rule_limits_description": { + "message": "Ο Chrome περιορίζει τον αριθμό των κανόνων που μπορούν να εφαρμοστούν" + }, + "options_rule_limits_dynamic": { + "message": "Δυναμικοί κανόνες" + }, + "options_rule_limits_dynamic_regex": { + "message": "Κανόνες Regex — περιλαμβάνονται στους κανόνες που έχουν προστεθεί από τον χρήστη" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Μη ασφαλείς δυναμικοί κανόνες (χρησιμοποιούνται για ορισμένα κανόνες που προστέθηκαν από τον χρήστη, όπως $$redirect ή $$cookie) — συμπεριλαμβάνονται στους κανόνες που προστέθηκαν από τον χρήστη" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Κανόνες που προστέθηκαν από τον χρήστη, όπως \u003Cuser_rules>κανόνες χρήστη\u003C/user_rules>, \u003Callowlist>ιστοσελίδες που επιτρέπονται\u003C/allowlist> και \u003Ccustom_filters>προσαρμοσμένα φίλτρα\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Κανόνες που προστέθηκαν από τον χρήστη, όπως \u003Cuser_rules>κανόνες χρήστη\u003C/user_rules> και \u003Callowlist>ιστοσελίδες που επιτρέπονται\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% από %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Στατικοί κανόνες" + }, + "options_rule_limits_static_rules_all": { + "message": "Κανόνες από \u003Ca>ενσωματωμένα φίλτρα\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Κανόνες Regex — περιλαμβάνονται στα παραπάνω" + }, + "options_rule_limits_static_rulesets": { + "message": "Στατικά σύνολα κανόνων" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Ενσωματωμένα φίλτρα\u003C/a>, όπως το Block annoyances ή φίλτρα που σχετίζονται με τη γλώσσα" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Επιλογή 3. Εάν είστε ικανοποιημένοι με τα ενεργοποιημένα προεπιλεγμένα φίλτρα, \u003Ca>κλείστε αυτή την προειδοποίηση.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Επιλογή 3. Εάν είστε ικανοποιημένοι με το ενεργοποιημένο προεπιλεγμένο φίλτρο, \u003Ca>κλείστε αυτή την προειδοποίηση.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Επιλογή 1. Διαγράψτε τις περιττές επεκτάσεις αποκλεισμού διαφημίσεων από το πρόγραμμα περιήγησής σας. Για να επανενεργοποιήσετε τα φίλτρα που αναφέρθηκαν στην ενότητα \"Φίλτρα που ενεργοποιήθηκαν πριν από την ενημέρωση\", κάντε κλικ \u003Ca>επανενεργοποιήστε τα φίλτρα.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Επιλογή 2. Εγκαταστήστε την εφαρμογή AdGuard Ad Blocker: δεν έχει περιορισμούς στους κανόνες φιλτραρίσματος. \u003Ca>Αποκτήστε την εφαρμογή AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Οι πιθανές σας ενέργειες" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Έγινε υπέρβαση του ορίου των ενεργών ενσωματωμένων κανόνων μετά από μια ενημέρωση ή την προσθήκη μιας νέας επέκτασης. Σύμφωνα με το Manifest V3, το πρόγραμμα περιήγησης Chrome αντέδρασε απενεργοποιώντας όλα τα ενσωματωμένα φίλτρα της επέκτασης εκτός από τα προεπιλεγμένα." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Τι συνέβη;" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Φίλτρα που ενεργοποιήθηκαν πριν από την ενημέρωση" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Τα φίλτρα ενεργοποιήθηκαν" + }, + "options_rule_limits_warning_title": { + "message": "Το πρόγραμμα περιήγησης έχει τροποποιήσει τη λίστα των ενεργών φίλτρων" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Αφαιρέστε τα όρια κανόνων και αποκτήστε Εκτεταμένη προστασία που λειτουργεί σε όλα τα προγράμματα περιήγησης" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Εγκατάσταση εφαρμογής επιφάνειας εργασίας" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Μεταβείτε στα φίλτρα" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Διαχείριση επεκτάσεων" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Οι επεκτάσεις προγράμματος περιήγησης μοιράζονται το ίδιο όριο κανόνων. Η αφαίρεση άλλων αποκλεισμών διαφημίσεων ενδέχεται να ελευθερώσει περισσότερους κανόνες για το AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Αφαίρεση άλλων αποκλεισμών διαφημίσεων" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Ενεργοποιήστε τα φίλτρα που χρειάζεστε. Τα φίλτρα ανά γλώσσα και τα φίλτρα απορρήτου ενδέχεται να χρησιμοποιούν πολλούς κανόνες" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Προβολή διαθέσιμων φίλτρων" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Δείτε τι μπορείτε να κάνετε" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Το όριο επιτεύχθηκε — ορισμένα φίλτρα απενεργοποιήθηκαν" + }, + "options_rule_syntax": { + "message": "Σύνταξη κανόνα" + }, + "options_safebrowsing_enabled": { + "message": "Προστασία ηλεκτρονικού ψαρέματος και κακόβουλου λογισμικού" + }, + "options_safebrowsing_enabled_desc": { + "message": "Ειδοποιεί για κακόβουλες και ιστοσελίδες ηλεκτρονικού ψαρέματος χρησιμοποιώντας την ενότητα Ασφάλεια Περιήγησης του AdGuard. \u003Ca>Διαβάστε περισσότερα\u003C/a>" + }, + "options_select_theme": { + "message": "Θέμα" + }, + "options_select_update_period_12h": { + "message": "12 ώρες" + }, + "options_select_update_period_1h": { + "message": "1 ώρα" + }, + "options_select_update_period_24h": { + "message": "24 ώρες" + }, + "options_select_update_period_48h": { + "message": "48 ώρες" + }, + "options_select_update_period_6h": { + "message": "6 ώρες" + }, + "options_select_update_period_default": { + "message": "Προεπιλογή" + }, + "options_select_update_period_disabled": { + "message": "Ανενεργό" + }, + "options_send_not_track_desc": { + "message": "Αποστολή σήματος \u003Cgpc>Παγκόσμιος Έλεγχος Απορρήτου\u003C/gpc> και \u003Cdnt>Χωρίς Παρακολούθηση\u003C/dnt> στους ιστότοπους που επισκέπτεστε" + }, + "options_send_not_track_title": { + "message": "Αποστολή αιτήματος \\\"Χωρίς παρακολούθηση\\\" στις ιστοσελίδες" + }, + "options_set_update_interval": { + "message": "Αυτόματη ενημέρωση φίλτρων" + }, + "options_set_update_interval_desc": { + "message": "Κρατά τα φίλτρα ενημερωμένα για πιο αποτελεσματικό αποκλεισμό διαφημίσεων" + }, + "options_settings": { + "message": "Ρυθμίσεις AdGuard" + }, + "options_share_settings": { + "message": "Κοινή χρήση ρυθμίσεων" + }, + "options_show_adguard_full_version_title": { + "message": "Εμφάνιση πληροφοριών σχετικά με την πλήρη έκδοση του AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Ειδοποιήσεις για ενημερώσεις της επέκτασης" + }, + "options_show_blocked_ads_count_title": { + "message": "Υπόδειξη του αριθμού των αποκλεισμένων διαφημίσεων στο εικονίδιο επέκτασης AdGuard" + }, + "options_show_context_menu_title": { + "message": "Προσθήκη στοιχείου AdGuard στο μενού περιβάλλοντος του περιηγητή" + }, + "options_site": { + "message": "Επίσημη ιστοσελίδα" + }, + "options_skip_to_main_content": { + "message": "Μετάβαση στο κύριο περιεχόμενο" + }, + "options_stealth_general_title": { + "message": "Γενικά" + }, + "options_stealth_miscellaneous_title": { + "message": "Διάφορα" + }, + "options_stealth_tracking_methods_title": { + "message": "Μέθοδοι παρακολούθησης" + }, + "options_strip_tracking_params_description": { + "message": "Αφαιρεί τις παραμέτρους παρακολούθησης από τις διευθύνσεις URL των σελίδων χρησιμοποιώντας το φίλτρο παρακολούθησης URL AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Αφαιρεί τις παραμέτρους παρακολούθησης από τις διευθύνσεις URL" + }, + "options_stripped_tracking_parameters": { + "message": "Αφαιρέθηκε παράμετρος παρακολούθησης" + }, + "options_theme_selector_dark": { + "message": "Σκοτεινό" + }, + "options_theme_selector_light": { + "message": "Φωτεινό" + }, + "options_theme_selector_system": { + "message": "Προεπιλογή συστήματος" + }, + "options_third_party_block_cookies_warning": { + "message": "Εάν αποκλείσετε αυτούς τους Cookie, μπορεί να χρειαστεί να ξανασυνδεθείτε σε ορισμένες ιστοσελίδες ή να αντιμετωπίσετε άλλα προβλήματα που σχετίζονται με τους Cookie." + }, + "options_third_party_desc": { + "message": "Αποτρέπει τους διαφημιστές από το να παρακολουθούν τη συμπεριφορά σας σε πολλές σελίδες περιορίζοντας τη διάρκεια ζωής των cookies τρίτων" + }, + "options_third_party_title": { + "message": "Διαγραφή cookie τρίτων" + }, + "options_update_antibanner_filters": { + "message": "Έλεγχος για ενημερώσεις φίλτρων" + }, + "options_use_optimized_filters": { + "message": "Χρήση βελτιστοποιημένων φίλτρων" + }, + "options_use_optimized_filters_desc": { + "message": "Λίστες φίλτρων βελτιστοποιημένες για κινητές συσκευές" + }, + "options_user_rules_clear_search": { + "message": "Εκκαθάριση αναζήτησης" + }, + "options_user_rules_create_rule": { + "message": "Δημιουργία κανόνα" + }, + "options_user_rules_delete_all": { + "message": "Διαγραφή όλων" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Όλοι οι κανόνες χρήστη θα διαγραφούν οριστικά" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Διαγραφή όλων;" + }, + "options_user_rules_delete_all_success": { + "message": "Όλοι οι κανόνες χρήστη διαγράφηκαν" + }, + "options_user_rules_delete_rule": { + "message": "Διαγραφή κανόνα" + }, + "options_user_rules_deleted_notification": { + "message": "Ο κανόνας χρήστη διαγράφηκε:" + }, + "options_user_rules_description_key": { + "message": "Οι κανόνες σας για αποκλεισμό και άρση αποκλεισμού διαφημίσεων ή ολόκληρων ιστοσελίδων" + }, + "options_user_rules_edit_rule": { + "message": "Επεξεργασία κανόνα" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Μετάβαση στον διαμορφωτή" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Οι κανόνες σας θα εμφανιστούν εδώ αφού το κλείσετε" + }, + "options_user_rules_editor_stub_title": { + "message": "Ο επεξεργαστής άνοιξε σε άλλο παράθυρο" + }, + "options_user_rules_empty_placeholder": { + "message": "Δεν υπάρχουν προς το παρόν κανόνες" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Επισήμανση κανόνων…" + }, + "options_user_rules_import_error": { + "message": "Αποτυχία στο εισαγωγή κανόνων χρήστης. Παρακαλώ προσπαθήστε ξανά" + }, + "options_user_rules_import_success": { + "message": "Οι κανόνες χρήστη εισήχθησαν επιτυχώς" + }, + "options_user_rules_menu": { + "message": "Ενέργειες κανόνων χρήστη" + }, + "options_user_rules_no_match": { + "message": "Δεν βρέθηκε τίποτα" + }, + "options_user_rules_search_placeholder": { + "message": "Αναζήτηση" + }, + "options_user_rules_switch_to_editor": { + "message": "Εναλλαγή σε προβολή επεξεργαστή" + }, + "options_user_rules_switch_to_list": { + "message": "Εναλλαγή σε προβολή λίστας" + }, + "options_user_rules_undo": { + "message": "Αναίρεση" + }, + "options_userfilter": { + "message": "Κανόνες χρήστη" + }, + "options_userfilter_description_key": { + "message": "Μπορείτε να προσθέσετε τους δικούς σας κανόνες εδώ. Αυτή η επιλογή συνιστάται για προχωρημένους χρήστες εξοικειωμένους με HTML/CSS. Διαβάστε τον \u003Ca>οδηγό κανόνων φίλτρου\u003C/a> για να μάθετε πώς να γράφετε τους δικούς σας κανόνες φίλτρου." + }, + "options_userfilter_export": { + "message": "Εξαγωγή" + }, + "options_userfilter_import": { + "message": "Εισαγωγή" + }, + "options_userfilter_leave_subtitle": { + "message": "Οι αλλαγές σας στους κανόνες θα χαθούν" + }, + "options_userfilter_line_break": { + "message": "Διακοπή γραμμής" + }, + "options_userfilter_line_break_off": { + "message": "Διακοπή γραμμής: Ανενεργή" + }, + "options_userfilter_line_break_on": { + "message": "Διακοπή γραμμής: Ενεργή" + }, + "options_userfilter_subtitle_key": { + "message": "Σας επιτρέπει να προσθέτετε τους δικούς σας κανόνες φιλτραρίσματος" + }, + "popup_abuse_site": { + "message": "Αποστολή παραπόνου για αυτή την ιστοσελίδα" + }, + "popup_adguard_footer_title": { + "message": "Προστατέψτε την κινητή σας συσκευή" + }, + "popup_adguard_for_android": { + "message": "AdGuard για Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard για iOS" + }, + "popup_block_site_ads_option": { + "message": "Αποκλείστε τις διαφημίσεις χειροκίνητα" + }, + "popup_get_system_wide_protection": { + "message": "Αποκτήστε Ολική προστασία συστήματος" + }, + "popup_header_cta_link": { + "message": "Πώς να ενισχύσετε την προστασία" + }, + "popup_header_update_filters": { + "message": "Έλεγχος για ενημερώσεις φίλτρων" + }, + "popup_limits_exceeded_warning": { + "message": "Το πρόγραμμα περιήγησής σας έχει τροποποιήσει τη λίστα των ενεργών ενσωματωμένων φίλτρων" + }, + "popup_open_filtering_log": { + "message": "Ανοίξτε το αρχείο καταγραφής" + }, + "popup_open_settings": { + "message": "Άνοιγμα ρυθμίσεων AdGuard" + }, + "popup_protection_button": { + "message": "Προστασία AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Διαγραφή κανόνων χρήστη για αυτόν τον ιστότοπο" + }, + "popup_resume_protection_button": { + "message": "Επαναφορά" + }, + "popup_security_report": { + "message": "Αναφορά ασφάλειας ιστότοπου" + }, + "popup_site_exception_information": { + "message": "Το φιλτράρισμα είναι απενεργοποιημένο επειδή μπορεί να επηρεάσει τη λειτουργία αυτού του ιστότοπου." + }, + "popup_site_filtering_state_disabled": { + "message": "Η προστασία είναι απενεργοποιημένη" + }, + "popup_site_filtering_state_disabling": { + "message": "Απενεργοποίηση προστασίας..." + }, + "popup_site_filtering_state_enabled": { + "message": "Η προστασία είναι ενεργοποιημένη" + }, + "popup_site_filtering_state_enabling": { + "message": "Ενεργοποίηση προστασίας..." + }, + "popup_site_filtering_state_loading": { + "message": "Φόρτωση..." + }, + "popup_site_filtering_state_paused": { + "message": "Η προστασία τέθηκε σε παύση" + }, + "popup_site_filtering_state_pausing": { + "message": "Παύση προστασίας..." + }, + "popup_site_filtering_state_resuming": { + "message": "Συνέχιση προστασίας..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Ασφαλής σελίδα" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "για όλες τις ιστοσελίδες" + }, + "popup_statistics_all_categories": { + "message": "Όλα" + }, + "popup_statistics_category_advertising": { + "message": "Διαφημίσεις" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Κατηγορία στατιστικών" + }, + "popup_statistics_category_other": { + "message": "Άλλα" + }, + "popup_statistics_category_social_media": { + "message": "Μέσα κοινωνικής δικτύωσης" + }, + "popup_statistics_category_trackers": { + "message": "Ιχνηλάτες" + }, + "popup_statistics_months_apr": { + "message": "Απρ" + }, + "popup_statistics_months_aug": { + "message": "Αύγ" + }, + "popup_statistics_months_dec": { + "message": "Δεκ" + }, + "popup_statistics_months_feb": { + "message": "Φεβ" + }, + "popup_statistics_months_jan": { + "message": "Ιαν" + }, + "popup_statistics_months_jul": { + "message": "Ιούλ" + }, + "popup_statistics_months_jun": { + "message": "Ιούν" + }, + "popup_statistics_months_mar": { + "message": "Μάρ" + }, + "popup_statistics_months_may": { + "message": "Μάι" + }, + "popup_statistics_months_nov": { + "message": "Νοέ" + }, + "popup_statistics_months_oct": { + "message": "Οκτ" + }, + "popup_statistics_months_sep": { + "message": "Σεπ" + }, + "popup_statistics_time_day": { + "message": "24 ώρες" + }, + "popup_statistics_time_label": { + "message": "Στατιστικά χρονικό διάστημα" + }, + "popup_statistics_time_month": { + "message": "30 μέρες" + }, + "popup_statistics_time_week": { + "message": "7 μέρες" + }, + "popup_statistics_time_year": { + "message": "1 έτος" + }, + "popup_statistics_total": { + "message": "Συνολικά" + }, + "popup_statistics_week_days_fri": { + "message": "Παρ" + }, + "popup_statistics_week_days_mon": { + "message": "Δευ" + }, + "popup_statistics_week_days_sat": { + "message": "Σάβ" + }, + "popup_statistics_week_days_sun": { + "message": "Κυρ" + }, + "popup_statistics_week_days_thu": { + "message": "Πέμ" + }, + "popup_statistics_week_days_tue": { + "message": "Τρι" + }, + "popup_statistics_week_days_wed": { + "message": "Τετ" + }, + "popup_switch_button": { + "message": "Προστασία για την τρέχουσα ιστοσελίδα" + }, + "popup_tab_actions": { + "message": "Ενέργειες" + }, + "popup_tab_blocked_all_count": { + "message": "Σύνολο αποκλεισμένων: %num%" + }, + "popup_tab_blocked_count": { + "message": "Αποκλείστηκαν: %num%" + }, + "popup_tab_current_website": { + "message": "Τρέχουσα ιστοσελίδα" + }, + "popup_tab_statistics": { + "message": "Στατιστικά" + }, + "popup_tabs": { + "message": "Καρτέλες" + }, + "popup_tooltip_loading": { + "message": "Φόρτωση..." + }, + "popup_tooltip_protection_disabled": { + "message": "Η προστασία απενεργοποιήθηκε" + }, + "popup_tooltip_protection_enabled": { + "message": "Η προστασία ενεργοποιήθηκε" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Ορισμένοι κανόνες δεν εφαρμόζονται" + }, + "popup_tooltip_update_available": { + "message": "Διαθέσιμη ενημέρωση" + }, + "post_install_loading": { + "message": "Φόρτωση επέκτασης..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Υπερέβη τον περιορισμό κανόνων στην Επέκταση προγράμματος περιήγησης AdGuard. Παρακαλώ ελέγξτε τα φίλτρα σας και απενεργοποιήστε αυτά που δεν χρειάζεστε" + }, + "text_collapser_hide_default": { + "message": "Απόκρυψη πλήρους κειμένου" + }, + "text_collapser_show_default": { + "message": "Εμφάνιση πλήρους κειμένου" + }, + "update_available_desc": { + "message": "Για να αποκλείσετε αποτελεσματικά τις διαφημίσεις, διατηρήστε την επέκταση και τα φίλτρα σας ενημερωμένα" + }, + "update_available_title": { + "message": "Διατίθενται ενημερώσεις" + }, + "update_available_update_btn": { + "message": "Ενημέρωση" + }, + "update_check": { + "message": "Έλεγχος για ενημερώσεις" + }, + "update_checking_in_progress": { + "message": "Έλεγχος για ενημερώσεις..." + }, + "update_failed_text": { + "message": "Η ολοκλήρωση της ενημέρωσης απέτυχε" + }, + "update_failed_try_again_btn": { + "message": "Δοκιμάστε ξανά" + }, + "update_installing_in_progress_desc": { + "message": "Η επέκταση θα επανεκκινηθεί μετά την ενημέρωση" + }, + "update_installing_in_progress_title": { + "message": "Ενημέρωση επέκτασης και φίλτρων..." + }, + "update_not_needed": { + "message": "Η επέκταση και τα φίλτρα σας είναι ενημερωμένα" + }, + "update_success_text": { + "message": "Η επέκταση και τα φίλτρα ενημερώθηκαν" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/en/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/en/messages.json new file mode 100644 index 0000000..e9bd185 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/en/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% has been activated automatically." + }, + "alert_popup_filter_enabled_title": { + "message": "Auto-activation of the filters" + }, + "background_tab_title": { + "message": "Background tab" + }, + "blocking_pages_advanced_button": { + "message": "Advanced" + }, + "blocking_pages_btn_go_back": { + "message": "Go back" + }, + "blocking_pages_btn_proceed": { + "message": "Proceed anyway" + }, + "blocking_pages_malware": { + "message": "This web page at \u003Cstrong>%host%\u003C/strong> has been reported as a malware page and has been blocked based on your security preferences." + }, + "blocking_pages_more_info_button": { + "message": "More information" + }, + "blocking_pages_page_title": { + "message": "Access denied" + }, + "blocking_pages_phishing": { + "message": "This web page at \u003Cstrong>%host%\u003C/strong> has been reported as a phishing page and has been blocked based on your security preferences." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard has prevented this page from loading due to the following filter rule" + }, + "blocking_pages_rule_header_title": { + "message": "Blocked by AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard has blocked access to this page" + }, + "clear_button_title": { + "message": "Clear" + }, + "close_button_title": { + "message": "Close" + }, + "context_block_site_ads": { + "message": "Block ads manually" + }, + "context_complaint_website": { + "message": "Report an issue" + }, + "context_disable_protection": { + "message": "Pause AdGuard protection" + }, + "context_enable_protection": { + "message": "Resume AdGuard protection" + }, + "context_open_log": { + "message": "Filtering log" + }, + "context_open_settings": { + "message": "AdGuard settings" + }, + "context_security_report": { + "message": "Check website security" + }, + "context_site_exception": { + "message": "This website is in the exceptions" + }, + "context_site_filtering_disabled": { + "message": "AdGuard can't filter this page" + }, + "context_site_filtering_off": { + "message": "Disable filtering on this website" + }, + "context_site_filtering_on": { + "message": "Enable filtering on this website" + }, + "context_site_protection_disabled": { + "message": "AdGuard protection is paused" + }, + "context_update_antibanner_filters": { + "message": "Check for filter updates" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, YouTube and all other websites." + }, + "filtering_clear_log_events": { + "message": "Clear log" + }, + "filtering_log_actions_menu": { + "message": "Filtering log actions" + }, + "filtering_log_assumed_rule_description": { + "message": "This is an assumed rule. For details, see our \u003Ca>Knowledge base\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP request method" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP status code" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Third-party request" + }, + "filtering_log_details_modal_back_button": { + "message": "Back to request" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Beautify" + }, + "filtering_log_details_modal_try_again": { + "message": "Try again" + }, + "filtering_log_filter_allowed": { + "message": "Allowed" + }, + "filtering_log_filter_blocked": { + "message": "Blocked" + }, + "filtering_log_filter_modified": { + "message": "Modified" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "User rules" + }, + "filtering_log_hide_referrer": { + "message": "Referer hidden from third-parties" + }, + "filtering_log_hide_search_queries": { + "message": "Your search queries hidden" + }, + "filtering_log_in_allowlist": { + "message": "The site is allowed" + }, + "filtering_log_modified_rules": { + "message": "Modified rules: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Yes, preserve" + }, + "filtering_log_preserve_log_modal_description": { + "message": "This option may significantly increase memory usage" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Preserve log?" + }, + "filtering_log_preserve_log_off": { + "message": "Do not preserve log" + }, + "filtering_log_preserve_log_on": { + "message": "Preserve log" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Don’t show again" + }, + "filtering_log_privacy_applied_rules": { + "message": "Tracking protection applied" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data header removed" + }, + "filtering_log_search_string": { + "message": "Search" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Search in tabs" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track header sent" + }, + "filtering_log_status_allowed": { + "message": "Allowed" + }, + "filtering_log_status_blocked": { + "message": "Blocked" + }, + "filtering_log_status_modified": { + "message": "Modified" + }, + "filtering_log_status_processed": { + "message": "Processed" + }, + "filtering_log_stealth_rules": { + "message": "Tracking protection rules: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Request origin" + }, + "filtering_log_tag_request_status": { + "message": "Filtering status" + }, + "filtering_log_tag_request_type": { + "message": "Request type" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Allowed and unblocked requests" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blocked requests" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stylesheets" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "First-party requests" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documents and subdocuments" + }, + "filtering_log_tag_tooltip_img": { + "message": "Images" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Modified requests" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonts, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Requests processed without filtering" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Third-party requests" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Requests affected by user rules" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests and fetch requests" + }, + "filtering_log_title": { + "message": "Filtering log" + }, + "filtering_menu_open_filters": { + "message": "Customize" + }, + "filtering_modal_add_rule": { + "message": "Add" + }, + "filtering_modal_allow_title": { + "message": "Add allowing rule" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Applied rule | Applied rules" + }, + "filtering_modal_apply_domains": { + "message": "Apply to all websites" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Assumed rule: | Assumed rules:" + }, + "filtering_modal_block": { + "message": "Block" + }, + "filtering_modal_block_again": { + "message": "Block again" + }, + "filtering_modal_block_title": { + "message": "Add blocking rule" + }, + "filtering_modal_converted_to": { + "message": "Converted to:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copied" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copy to clipboard" + }, + "filtering_modal_declarative_rule": { + "message": "DNR rule:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Add an exception" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtering status" + }, + "filtering_modal_hide_full_element": { + "message": "Hide full element" + }, + "filtering_modal_hide_full_rule": { + "message": "Hide full rule" + }, + "filtering_modal_hide_full_url": { + "message": "Hide full URL" + }, + "filtering_modal_important": { + "message": "Give a higher priority to the rule" + }, + "filtering_modal_info_title": { + "message": "Request details" + }, + "filtering_modal_open_in_new_tab": { + "message": "Open in new tab" + }, + "filtering_modal_options_desc": { + "message": "Options" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Original rule: | Original rules:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "What should be allowed" + }, + "filtering_modal_patterns_desc_block": { + "message": "What should be blocked" + }, + "filtering_modal_preview_request_button": { + "message": "Preview" + }, + "filtering_modal_preview_title": { + "message": "Preview" + }, + "filtering_modal_privacy": { + "message": "Tracking protection" + }, + "filtering_modal_remove_allowlist": { + "message": "Remove from the Allowlist" + }, + "filtering_modal_remove_param": { + "message": "Remove query parameters" + }, + "filtering_modal_remove_user": { + "message": "Delete rule" + }, + "filtering_modal_rule": { + "message": "Rule:" + }, + "filtering_modal_rule_text_desc": { + "message": "Rule" + }, + "filtering_modal_rules": { + "message": "Rules:" + }, + "filtering_modal_show_full_element": { + "message": "Show full element" + }, + "filtering_modal_show_full_rule": { + "message": "Show full rule" + }, + "filtering_modal_show_full_url": { + "message": "Show full URL" + }, + "filtering_modal_source": { + "message": "Source" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Failed to load preview. Please try again" + }, + "filtering_modal_status_text_loading": { + "message": "Loading..." + }, + "filtering_modal_third_party": { + "message": "Apply to third-party requests only" + }, + "filtering_modal_type": { + "message": "Type" + }, + "filtering_modal_unblock": { + "message": "Unblock" + }, + "filtering_refresh_tab_short": { + "message": "Refresh" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Refresh page" + }, + "filtering_table_action": { + "message": "Action" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nothing found. \u003Creset>Disable filters\u003C/reset> or \u003Crefresh>reload the page\u003C/refresh> to view log records" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Open details" + }, + "filtering_table_rule": { + "message": "Filtering rule" + }, + "filtering_table_source": { + "message": "Source" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Type" + }, + "filtering_type_all": { + "message": "All" + }, + "filtering_type_other": { + "message": "Other" + }, + "filters_download_loading": { + "message": "Please wait while filters database is loading..." + }, + "filters_download_title": { + "message": "Filters database is loading..." + }, + "fullscreen_user_rules_title": { + "message": "User rules" + }, + "group_description_adblocking": { + "message": "Configure ad blocking here to deal with annoying banners, pop-ups, video ads and such, once and for all" + }, + "group_description_annoyances": { + "message": "Remove pop-up windows and other annoying notifications like cookie notices" + }, + "group_description_custom": { + "message": "Create your own filters to fine-tune web filtering to your preference." + }, + "group_description_lang": { + "message": "Don't limit yourself — block ads on websites in any languages" + }, + "group_description_miscellaneous": { + "message": "More settings to configure your web surfing with AdGuard even further" + }, + "group_description_security": { + "message": "Protect yourself from malware, phishing and other online threats" + }, + "group_description_social": { + "message": "Hide unwanted \"Like\"/\"Share\" buttons and other social media widgets" + }, + "group_description_stealth": { + "message": "Protect your identity and sensitive personal info from thousands of online trackers by blocking all known popular tracking methods" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Don't show again" + }, + "opera_search_permission_go_to_settings": { + "message": "Go to Settings" + }, + "opera_search_permission_warning": { + "message": "To block search ads, allow access to search page results in browser's settings" + }, + "options_about": { + "message": "About" + }, + "options_about_libs": { + "message": "Used libraries" + }, + "options_about_title": { + "message": "AdGuard Browser extension" + }, + "options_about_update_available": { + "message": "Version %version% is available. It will be downloaded and installed automatically." + }, + "options_about_version": { + "message": "Version" + }, + "options_acknowledgment": { + "message": "Acknowledgments" + }, + "options_add_custom_filter": { + "message": "Add custom filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Add" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Checking your filter..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "The URL returned a web page instead of a filter list. Please provide a direct link to the filter file." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Please try again or contact support" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Failed to add custom filter" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filter name:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Trusted" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Some filter rules can significantly alter your browsing experience and compromise your privacy. Make sure to only use filters from developers you trust" + }, + "options_add_custom_filter_modal_title": { + "message": "Add custom filter" + }, + "options_all_limits_exceeded_warning": { + "message": "You've reached the limit of active built-in rules. Your browser has modified the list of active built-in filters. The number of filters enabled has changed from %expected% to %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "You've reached your browser's limit for active built-in rules. Your browser has reduced the list of active built-in filters from %expected% to %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Your browser restricts \u003Cexternal-link>some types of rules\u003C/external-link>. To apply all rules, enable \u003Cb>Allow user scripts\u003C/b> in your browser’s \u003Csettings-link>extension settings\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Allowlist" + }, + "options_allowlist_alert_invert": { + "message": "The allowlist is inverted. Ads are only blocked on websites added to it." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Stop inverting\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard doesn’t block ads and trackers on websites from the list" + }, + "options_allowlist_invalid_entries": { + "message": "To save, keep only domains or URLs. These need fixing: %entries%" + }, + "options_allowlist_invert": { + "message": "Invert allowlist" + }, + "options_allowlist_invert_desc": { + "message": "Blocks ads and trackers on allowlisted websites only" + }, + "options_allowlist_leave_subtitle": { + "message": "Your changes to Allowlist will be lost" + }, + "options_allowlist_menu": { + "message": "Allowlist actions" + }, + "options_anonymized_usage_data_description": { + "message": "Sends anonymous stats on extension usage to AdGuard. \u003Cbutton>Learn more\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Got it" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "This data includes:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Names of buttons you click" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Names of screens you interact with" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Session identifiers" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "This data is anonymous and only used internally. We never share it with third parties" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "We need this information to analyze and improve the functionality of AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Extension usage data" + }, + "options_anonymized_usage_data_title": { + "message": "Send anonymized extension usage data" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "This custom filter has already been added" + }, + "options_antibanner_custom_group": { + "message": "Custom" + }, + "options_antibanner_custom_group_description": { + "message": "Allows you to add filters from a file or URL" + }, + "options_antibanner_rules_count": { + "message": "Rules: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Updated: %date%" + }, + "options_block_acceptable_ads": { + "message": "Block search ads and website self-promotion" + }, + "options_block_acceptable_ads_desc": { + "message": "Blocks ads in search results and self-promotion of websites. \u003Ca>Learn more\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "To block the cookies, set the lifetime to 0" + }, + "options_block_known_trackers_description": { + "message": "Blocks trackers and web analytics using AdGuard Tracking Protection filter" + }, + "options_block_known_trackers_title": { + "message": "Block trackers" + }, + "options_check_update_progress": { + "message": "Checking..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Clear" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "All stats on data usage will be permanently deleted" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Clear statistics?" + }, + "options_clipboard_permission_warning": { + "message": "To copy and paste rules, allow AdGuard to access the clipboard. \u003Ca>Allow\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Sends anonymous stats on ad filter usage to AdGuard. \u003Ca>Learn more\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Help develop AdGuard filters" + }, + "options_coming_soon": { + "message": "Coming soon" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancel" + }, + "options_copyright": { + "message": "All rights reserved." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "To use custom filters, enable \u003Cb>Allow user scripts\u003C/b> in your browser’s \u003Csettings-link>extension settings\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "To use custom filters, enable \u003Cb>Developer mode\u003C/b> in your browser’s \u003Csettings-link>extension settings\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Get AdGuard for Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Get AdGuard for Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Get AdGuard for Windows" + }, + "options_desktop_app_promo_description": { + "message": "Apps like Spotify, Discord, or Zoom can still show ads and track your activity" + }, + "options_desktop_app_promo_subdescription": { + "message": "Our desktop app can protect you from them" + }, + "options_desktop_app_promo_title": { + "message": "Extension protects the browser only" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Your browser restricts \u003Cexternal-link>some types of rules\u003C/external-link>. To apply all rules, enable \u003Cb>Developer mode\u003C/b> in your browser’s \u003Csettings-link>extension settings\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blocks WebRTC that can leak your real IP address even if you use a proxy or VPN. Some messengers, streaming platforms, or games may stop working properly" + }, + "options_disable_webrtc_title": { + "message": "Block WebRTC" + }, + "options_discuss": { + "message": "Discuss AdGuard" + }, + "options_do_you_like_question": { + "message": "Do you like AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Exit the window mode" + }, + "options_editor_indicator_saved": { + "message": "Saved" + }, + "options_editor_indicator_saving": { + "message": "Saving..." + }, + "options_editor_leave_cancel": { + "message": "Back to editing" + }, + "options_editor_leave_confirm": { + "message": "Yes, leave" + }, + "options_editor_leave_title": { + "message": "Leave without saving?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Open Editor in a new window" + }, + "options_editor_save": { + "message": "Save" + }, + "options_editor_save_error": { + "message": "Failed to save the changes. Try again or contact support" + }, + "options_empty_custom_filter": { + "message": "You don't have any custom filters yet" + }, + "options_enable_autodetect_filter": { + "message": "Activate the most appropriate filters automatically" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detects the language of the website and activates appropriate filters" + }, + "options_export_settings": { + "message": "Export settings" + }, + "options_filters": { + "message": "Filters" + }, + "options_filters_annoyances_consent_description": { + "message": "You are about to enable one or more annoyance filters. They block elements that are either unrelated to website content or related but annoying to your user experience. Website owners may consider these elements mandatory: if you block them, you may be violating their terms; some functionality of websites may not be available or may not work properly. You understand and agree that you are solely responsible to comply with the terms of use of websites you visit and that AdGuard is not responsible for your compliance with the terms of use of websites you visit using our products." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Enable" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Homepage" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "For details on what AdGuard’s annoyance filters block, see \u003Ca>Filter policy\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Enable these filters?" + }, + "options_filters_annoyances_consent_title": { + "message": "Please read carefully before enabling annoyance filters" + }, + "options_filters_back_button": { + "message": "Go back" + }, + "options_filters_empty_title": { + "message": "Nothing found" + }, + "options_filters_enabled": { + "message": "Enabled:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% and %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% and %more% more" + }, + "options_filters_enabled_per_group": { + "message": "Enabled: %current% of %total%" + }, + "options_filters_filter_link": { + "message": "Go to homepage" + }, + "options_filters_filter_tags": { + "message": "Filter tags" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "You chose to trust this filter." + }, + "options_filters_filter_updated": { + "message": "updated:" + }, + "options_filters_filter_version": { + "message": "version:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Total rules: %num%" + }, + "options_filters_last_checked": { + "message": "Last checked: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "All filters" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Disabled" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Enabled" + }, + "options_filters_no_enabled": { + "message": "No filters enabled" + }, + "options_filters_of_group": { + "message": "Filters of \"%groupName%\" group" + }, + "options_filters_search": { + "message": "Search" + }, + "options_filters_search_filter": { + "message": "Search filter" + }, + "options_first_party_block_cookies_warning": { + "message": "If you block these cookies, some websites may break or stop working" + }, + "options_first_party_desc": { + "message": "Prevents websites from remembering your details, such as your login credentials and language preferences, by limiting the lifetime of first-party cookies" + }, + "options_first_party_title": { + "message": "Delete first-party cookies (not recommended)" + }, + "options_general_settings": { + "message": "General" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Prevent third parties from knowing what website you are visiting" + }, + "options_hide_referrer_title": { + "message": "Hide Referer from third parties" + }, + "options_hide_search_queries_desc": { + "message": "Hides your searches from websites visited through search engine results" + }, + "options_hide_search_queries_title": { + "message": "Hide search queries" + }, + "options_import_configuration_applying_subtitle": { + "message": "Replacing your current settings with the imported ones. Filtering is disabled during the import" + }, + "options_import_configuration_applying_title": { + "message": "Importing..." + }, + "options_import_configuration_confirm_button": { + "message": "Import" + }, + "options_import_configuration_confirm_subtitle": { + "message": "The imported settings will replace your current ones. Other settings won’t be affected" + }, + "options_import_configuration_confirm_title": { + "message": "Import settings" + }, + "options_import_configuration_error_button": { + "message": "Close" + }, + "options_import_configuration_error_subtitle": { + "message": "Please check the import link and try again. If it doesn’t help, contact support" + }, + "options_import_configuration_error_title": { + "message": "Failed to import settings" + }, + "options_import_configuration_success_button": { + "message": "Close" + }, + "options_import_configuration_success_subtitle": { + "message": "Settings were successfully imported" + }, + "options_import_configuration_success_title": { + "message": "All done" + }, + "options_import_settings": { + "message": "Import settings" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invert" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Ads and trackers will only be blocked on websites from the allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invert allowlist?" + }, + "options_leave_feedback": { + "message": "Leave feedback" + }, + "options_lifetime_minutes": { + "message": "Lifetime, minutes" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "You've reached the limit of user-added regex rules. %maximum% of %current% regex rules are enabled." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "You've reached the limit of user-added regex rules. %maximum% of %current% rules are enabled. To add new regex rules, remove some existing ones" + }, + "options_limits_warning_dynamic_rules": { + "message": "You've reached the limit of user-added rules. %maximum% of %current% rules are enabled." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "You've reached the limit of user-added rules. %maximum% of %current% rules are enabled. To add new rules, remove some existing ones" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "You've reached the limit of user-added unsafe rules. %maximum% of %current% unsafe rules are enabled." + }, + "options_limits_warning_static_filters": { + "message": "You've reached the limit of active built-in filters. %maximum% of %current% filters are enabled. To activate new rules, disable some built-in filters." + }, + "options_limits_warning_static_filters_browser": { + "message": "You've reached your browser's limit for active built-in filters. %maximum% of %current% filters are enabled. To activate new filters, disable some built-in ones" + }, + "options_limits_warning_static_regex_rules": { + "message": "You've reached the limit of active built-in regex rules. %maximum% of %current% regex rules are enabled. To activate new rules, disable some built-in filters." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "You've reached the limit of active built-in regex rules. To activate new rules, disable some built-in filters" + }, + "options_limits_warning_static_rules": { + "message": "You've reached the limit of active built-in rules. %maximum% of %current% rules are enabled. To activate new rules, disable some built-in filters." + }, + "options_limits_warning_static_rules_browser": { + "message": "You've reached your browser's limit for active built-in rules. To activate new rules, disable some built-in filters" + }, + "options_loader_applying_changes": { + "message": "Applying changes..." + }, + "options_miscellaneous_settings": { + "message": "Additional settings" + }, + "options_modified_first_party_cookie": { + "message": "First-party cookie modified" + }, + "options_modified_third_party_cookie": { + "message": "Third-party cookie modified" + }, + "options_nav_better_than_extension": { + "message": "Why is the AdGuard app better than the extension?" + }, + "options_nav_compare": { + "message": "Compare" + }, + "options_navigation": { + "message": "Navigation" + }, + "options_open_changelog": { + "message": "Changelog" + }, + "options_open_log": { + "message": "Open filtering log" + }, + "options_popup_call_to_action": { + "message": "Enter the valid URL or file path of the filter into the field above." + }, + "options_popup_check_false_description": { + "message": "Error while adding your custom filter." + }, + "options_popup_check_false_title": { + "message": "Error" + }, + "options_popup_checking_filter": { + "message": "Checking your filter" + }, + "options_popup_description": { + "message": "You will be subscribed to that filter." + }, + "options_popup_filter_description": { + "message": "Description:" + }, + "options_popup_filter_homepage": { + "message": "Homepage:" + }, + "options_popup_filter_rules_count": { + "message": "Rules count:" + }, + "options_popup_filter_title": { + "message": "Title:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Version:" + }, + "options_popup_import_error_file_description": { + "message": "Something went wrong." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "To import this settings file, allow AdGuard to change your privacy-related settings." + }, + "options_popup_import_error_title": { + "message": "Failed to import settings" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "The file extension must be %extension%" + }, + "options_popup_import_success_title": { + "message": "Settings imported" + }, + "options_popup_next_button": { + "message": "Next" + }, + "options_popup_subscribe_button": { + "message": "Subscribe" + }, + "options_popup_title_placeholder": { + "message": "Enter a filter name" + }, + "options_popup_trusted_filter_description": { + "message": "Trusted filters can use powerful filtering rules modifiers which can be dangerous in the wrong hands. Do not check this box unless you fully trust it." + }, + "options_popup_trusted_filter_title": { + "message": "Trusted" + }, + "options_popup_try_again_button": { + "message": "Try again" + }, + "options_popup_update_error": { + "message": "Failed to get updates. Please try again later." + }, + "options_popup_update_filter": { + "message": "was updated." + }, + "options_popup_update_filters": { + "message": "were updated." + }, + "options_popup_update_not_found": { + "message": "Your filters are up to date" + }, + "options_popup_update_title_error": { + "message": "Error updating filters" + }, + "options_popup_updating_filters": { + "message": "Updating filters..." + }, + "options_popup_url_placeholder": { + "message": "Enter URL or file path" + }, + "options_popup_url_title": { + "message": "New filter subscription" + }, + "options_popup_version_update_changelog_text": { + "message": "What's new in this version?" + }, + "options_popup_version_update_description_major": { + "message": "This is a major extension upgrade that brings a lot of new features and improvements." + }, + "options_popup_version_update_description_minor": { + "message": "This version contains mostly bugfixes and minor improvements." + }, + "options_popup_version_update_disable_notification": { + "message": "Disable notifications" + }, + "options_popup_version_update_offer": { + "message": "Did you know that AdGuard capabilities are not limited to this browser?" + }, + "options_popup_version_update_offer_button_text": { + "message": "LEARN MORE" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard extension has been updated to version %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Makes WebRTC use a stricter IP address policy to help keep your real IP address hidden when you use a proxy or VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Prevent IP address leaks through WebRTC" + }, + "options_privacy": { + "message": "Tracking protection" + }, + "options_privacy_desc": { + "message": "Protects your online activity and personal data from web trackers" + }, + "options_privacy_policy": { + "message": "Privacy policy" + }, + "options_privacy_title": { + "message": "Tracking protection" + }, + "options_rate_us_cta": { + "message": "Rate it" + }, + "options_remove_client_data_desc": { + "message": "Block Google Chrome from sending its version and modifications information to Google domains" + }, + "options_remove_client_data_title": { + "message": "Remove X-Client-Data header" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Remove" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Remove this filter?" + }, + "options_report_bug": { + "message": "Report a bug" + }, + "options_reset_settings": { + "message": "Reset settings" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Reset" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "All settings will be reset to their default values" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Reset settings?" + }, + "options_reset_settings_done": { + "message": "Settings have been reset" + }, + "options_reset_settings_error": { + "message": "Error while resetting settings" + }, + "options_reset_stats": { + "message": "Clear statistics" + }, + "options_reset_stats_done": { + "message": "Statistics have been reset" + }, + "options_rule_limits": { + "message": "Rule limits" + }, + "options_rule_limits_description": { + "message": "Chrome limits the number of rules that can be applied" + }, + "options_rule_limits_dynamic": { + "message": "Dynamic rules" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex rules — included in user-added rules" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Unsafe dynamic rules (used for some advanced modifiers, such as $$redirect or $$cookie) — included in user-added rules" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "User-added rules, such as \u003Cuser_rules>user rules\u003C/user_rules>, \u003Callowlist>allowlisted websites\u003C/allowlist>, and \u003Ccustom_filters>custom filters\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "User-added rules, such as \u003Cuser_rules>user rules\u003C/user_rules> and \u003Callowlist>allowlisted websites\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% of %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Static rules" + }, + "options_rule_limits_static_rules_all": { + "message": "Rules from \u003Ca>built-in filters\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex rules — included in the above" + }, + "options_rule_limits_static_rulesets": { + "message": "Static rulesets" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Built-in filters\u003C/a>, such as Block annoyances or Language-specific filters" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Option 3. If you're satisfied with the currently enabled default filters, \u003Ca>close this warning.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Option 3. If you're satisfied with the currently enabled default filter, \u003Ca>close this warning.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Option 1. Delete unnecessary ad-blocking extensions from your browser. To reactivate the filters mentioned in the \"Filters enabled before the update\" section, click \u003Ca>reactivate filters.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Option 2. Install the AdGuard Ad Blocker app: it has no restrictions on filtering rules. \u003Ca>Get the AdGuard app\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Your possible actions" + }, + "options_rule_limits_warning_explanation_description": { + "message": "The limit of active built-in rules was exceeded after an update or adding a new extension. As per Manifest V3, your Chrome browser reacted by disabling all the extension's built-in filters except the default ones." + }, + "options_rule_limits_warning_explanation_title": { + "message": "What happened?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filters enabled before the update" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filters enabled now" + }, + "options_rule_limits_warning_title": { + "message": "The browser has modified the list of active filters" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Remove the rule limits and get extended protection that works across all browsers" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Install the desktop app" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Go to filters" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Manage extensions" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Browser extensions share the same rule limit. Removing other ad blockers may free up more rules for AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Remove other ad blockers" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Enable the filters you need. Language-specific and privacy filters can use many rules" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Review available filters" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Here’s what you can do" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limit reached — some filters were disabled" + }, + "options_rule_syntax": { + "message": "Rule syntax" + }, + "options_safebrowsing_enabled": { + "message": "Phishing and malware protection" + }, + "options_safebrowsing_enabled_desc": { + "message": "Warns about malicious and phishing websites using the AdGuard Browsing Security module. \u003Ca>Read more\u003C/a>" + }, + "options_select_theme": { + "message": "Theme" + }, + "options_select_update_period_12h": { + "message": "12 hours" + }, + "options_select_update_period_1h": { + "message": "1 hour" + }, + "options_select_update_period_24h": { + "message": "24 hours" + }, + "options_select_update_period_48h": { + "message": "48 hours" + }, + "options_select_update_period_6h": { + "message": "6 hours" + }, + "options_select_update_period_default": { + "message": "Default" + }, + "options_select_update_period_disabled": { + "message": "Disabled" + }, + "options_send_not_track_desc": { + "message": "Send the \u003Cgpc>Global Privacy Control\u003C/gpc> and \u003Cdnt>Do Not Track\u003C/dnt> signals to the websites you visit" + }, + "options_send_not_track_title": { + "message": "Ask websites not to track me" + }, + "options_set_update_interval": { + "message": "Auto-update filters" + }, + "options_set_update_interval_desc": { + "message": "Keeps the filters up to date for more effective ad blocking" + }, + "options_settings": { + "message": "AdGuard Settings" + }, + "options_share_settings": { + "message": "Share settings" + }, + "options_show_adguard_full_version_title": { + "message": "Show information on the AdGuard full version" + }, + "options_show_app_updated_notification": { + "message": "Notify about extension updates" + }, + "options_show_blocked_ads_count_title": { + "message": "Indicate the number of blocked ads on the AdGuard extension icon" + }, + "options_show_context_menu_title": { + "message": "Add AdGuard item to the browser's context menu" + }, + "options_site": { + "message": "Official website" + }, + "options_skip_to_main_content": { + "message": "Skip to main content" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Miscellaneous" + }, + "options_stealth_tracking_methods_title": { + "message": "Tracking methods" + }, + "options_strip_tracking_params_description": { + "message": "Removes tracking parameters from page URLs using AdGuard URL Tracking filter" + }, + "options_strip_tracking_params_title": { + "message": "Remove tracking parameters from URLs" + }, + "options_stripped_tracking_parameters": { + "message": "Tracking parameters removed" + }, + "options_theme_selector_dark": { + "message": "Dark" + }, + "options_theme_selector_light": { + "message": "Light" + }, + "options_theme_selector_system": { + "message": "System default" + }, + "options_third_party_block_cookies_warning": { + "message": "If you block these cookies, you may have to re-log in to some websites or face other cookie-related issues" + }, + "options_third_party_desc": { + "message": "Prevents advertisers from tracking your behavior across multiple pages by limiting the lifetime of third-party cookies" + }, + "options_third_party_title": { + "message": "Delete third-party cookies" + }, + "options_update_antibanner_filters": { + "message": "Check for filter updates" + }, + "options_use_optimized_filters": { + "message": "Use optimized filters" + }, + "options_use_optimized_filters_desc": { + "message": "Uses shorter versions of filters with only the most popular rules to save traffic. Better suited to mobile browsers" + }, + "options_user_rules_clear_search": { + "message": "Clear search" + }, + "options_user_rules_create_rule": { + "message": "Create rule" + }, + "options_user_rules_delete_all": { + "message": "Delete all" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "All user rules will be permanently deleted" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Delete all?" + }, + "options_user_rules_delete_all_success": { + "message": "All user rules deleted" + }, + "options_user_rules_delete_rule": { + "message": "Delete rule" + }, + "options_user_rules_deleted_notification": { + "message": "User rule deleted:" + }, + "options_user_rules_description_key": { + "message": "Your rules for blocking and unblocking ads or entire websites" + }, + "options_user_rules_edit_rule": { + "message": "Edit rule" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Go to editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Your rules will appear here after you close it" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor opened in another window" + }, + "options_user_rules_empty_placeholder": { + "message": "No rules yet" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Highlighting rules…" + }, + "options_user_rules_import_error": { + "message": "Failed to import user rules. Please try again" + }, + "options_user_rules_import_success": { + "message": "User rules successfully imported" + }, + "options_user_rules_menu": { + "message": "User rules actions" + }, + "options_user_rules_no_match": { + "message": "Nothing found" + }, + "options_user_rules_search_placeholder": { + "message": "Search" + }, + "options_user_rules_switch_to_editor": { + "message": "Switch to editor view" + }, + "options_user_rules_switch_to_list": { + "message": "Switch to list view" + }, + "options_user_rules_undo": { + "message": "Undo" + }, + "options_userfilter": { + "message": "User rules" + }, + "options_userfilter_description_key": { + "message": "You can add your own rules here. This option is recommended for advanced users familiar with HTML/CSS. Read the \u003Ca>filter rules tutorial\u003C/a> to learn how to write your own filter rules." + }, + "options_userfilter_export": { + "message": "Export" + }, + "options_userfilter_import": { + "message": "Import" + }, + "options_userfilter_leave_subtitle": { + "message": "Your changes to the rules will be lost" + }, + "options_userfilter_line_break": { + "message": "Line break" + }, + "options_userfilter_line_break_off": { + "message": "Line break: Disabled" + }, + "options_userfilter_line_break_on": { + "message": "Line break: Enabled" + }, + "options_userfilter_subtitle_key": { + "message": "Allows you to add your own filtering rules" + }, + "popup_abuse_site": { + "message": "Report an issue" + }, + "popup_adguard_footer_title": { + "message": "Protect your mobile device" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "Block ads manually" + }, + "popup_get_system_wide_protection": { + "message": "Get system-wide protection" + }, + "popup_header_cta_link": { + "message": "How to enhance protection" + }, + "popup_header_update_filters": { + "message": "Check for filter updates" + }, + "popup_limits_exceeded_warning": { + "message": "Your browser has modified the list of active built-in filters" + }, + "popup_open_filtering_log": { + "message": "Open filtering log" + }, + "popup_open_settings": { + "message": "Open AdGuard settings" + }, + "popup_protection_button": { + "message": "AdGuard protection" + }, + "popup_reset_page_user_rules": { + "message": "Delete user rules for this website" + }, + "popup_resume_protection_button": { + "message": "Resume" + }, + "popup_security_report": { + "message": "Check website security" + }, + "popup_site_exception_information": { + "message": "Filtering is disabled because it can interfere with this website's operation." + }, + "popup_site_filtering_state_disabled": { + "message": "Protection is disabled" + }, + "popup_site_filtering_state_disabling": { + "message": "Disabling protection..." + }, + "popup_site_filtering_state_enabled": { + "message": "Protection is enabled" + }, + "popup_site_filtering_state_enabling": { + "message": "Enabling protection..." + }, + "popup_site_filtering_state_loading": { + "message": "Loading..." + }, + "popup_site_filtering_state_paused": { + "message": "Protection is paused" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausing protection..." + }, + "popup_site_filtering_state_resuming": { + "message": "Resuming protection..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Secure page" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "for all websites" + }, + "popup_statistics_all_categories": { + "message": "All" + }, + "popup_statistics_category_advertising": { + "message": "Ads" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistics category" + }, + "popup_statistics_category_other": { + "message": "Other" + }, + "popup_statistics_category_social_media": { + "message": "Social media" + }, + "popup_statistics_category_trackers": { + "message": "Trackers" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "May" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Oct" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 hours" + }, + "popup_statistics_time_label": { + "message": "Statistics time period" + }, + "popup_statistics_time_month": { + "message": "30 days" + }, + "popup_statistics_time_week": { + "message": "7 days" + }, + "popup_statistics_time_year": { + "message": "1 year" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Fri" + }, + "popup_statistics_week_days_mon": { + "message": "Mon" + }, + "popup_statistics_week_days_sat": { + "message": "Sat" + }, + "popup_statistics_week_days_sun": { + "message": "Sun" + }, + "popup_statistics_week_days_thu": { + "message": "Thu" + }, + "popup_statistics_week_days_tue": { + "message": "Tue" + }, + "popup_statistics_week_days_wed": { + "message": "Wed" + }, + "popup_switch_button": { + "message": "Protection for current website" + }, + "popup_tab_actions": { + "message": "Actions" + }, + "popup_tab_blocked_all_count": { + "message": "Total blocked: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blocked: %num%" + }, + "popup_tab_current_website": { + "message": "Current website" + }, + "popup_tab_statistics": { + "message": "Statistics" + }, + "popup_tabs": { + "message": "Tabs" + }, + "popup_tooltip_loading": { + "message": "Loading..." + }, + "popup_tooltip_protection_disabled": { + "message": "Protection disabled" + }, + "popup_tooltip_protection_enabled": { + "message": "Protection enabled" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Some rules not applied" + }, + "popup_tooltip_update_available": { + "message": "Update available" + }, + "post_install_loading": { + "message": "Loading extension..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Rule limit exceeded in AdGuard Browser Extension. Please check your filters and disable the ones you don't need" + }, + "text_collapser_hide_default": { + "message": "Hide full text" + }, + "text_collapser_show_default": { + "message": "Show full text" + }, + "update_available_desc": { + "message": "To effectively block ads, keep your extension and filters up to date" + }, + "update_available_title": { + "message": "Updates available" + }, + "update_available_update_btn": { + "message": "Update" + }, + "update_check": { + "message": "Check for updates" + }, + "update_checking_in_progress": { + "message": "Checking for updates..." + }, + "update_failed_text": { + "message": "Failed to complete the update" + }, + "update_failed_try_again_btn": { + "message": "Try again" + }, + "update_installing_in_progress_desc": { + "message": "The extension will restart after the update" + }, + "update_installing_in_progress_title": { + "message": "Updating extension and filters..." + }, + "update_not_needed": { + "message": "Your extension and filters are up to date" + }, + "update_success_text": { + "message": "Extension and filters updated" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es/messages.json new file mode 100644 index 0000000..428469a --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% ha sido habilitado automáticamente." + }, + "alert_popup_filter_enabled_title": { + "message": "Habilitación automática de filtros" + }, + "background_tab_title": { + "message": "Pestaña en segundo plano" + }, + "blocking_pages_advanced_button": { + "message": "Avanzado" + }, + "blocking_pages_btn_go_back": { + "message": "Regresar" + }, + "blocking_pages_btn_proceed": { + "message": "Continuar de todos modos" + }, + "blocking_pages_malware": { + "message": "Esta página en \u003Cstrong>%host%\u003C/strong> ha sido reportada como una página de malware y ha sido bloqueada basado en tus preferencias de seguridad." + }, + "blocking_pages_more_info_button": { + "message": "Más información" + }, + "blocking_pages_page_title": { + "message": "Acceso denegado" + }, + "blocking_pages_phishing": { + "message": "Esta página en \u003Cstrong>%host%\u003C/strong> ha sido reportada como una página de phishing y ha sido bloqueada basado en tus preferencias de seguridad." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ha impedido que esta página se cargue debido a la siguiente regla de filtro" + }, + "blocking_pages_rule_header_title": { + "message": "Bloqueado por AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ha bloqueado el acceso a esta página" + }, + "clear_button_title": { + "message": "Borrar" + }, + "close_button_title": { + "message": "Cerrar" + }, + "context_block_site_ads": { + "message": "Bloquear anuncios manualmente" + }, + "context_complaint_website": { + "message": "Reportar un error" + }, + "context_disable_protection": { + "message": "Pausar protección de AdGuard" + }, + "context_enable_protection": { + "message": "Reanudar protección de AdGuard" + }, + "context_open_log": { + "message": "Registro de filtrado" + }, + "context_open_settings": { + "message": "Configuración de AdGuard" + }, + "context_security_report": { + "message": "Verificar seguridad del sitio web" + }, + "context_site_exception": { + "message": "Este sitio web está en las excepciones" + }, + "context_site_filtering_disabled": { + "message": "AdGuard no puede filtrar esta página" + }, + "context_site_filtering_off": { + "message": "Deshabilitar filtrado en este sitio web" + }, + "context_site_filtering_on": { + "message": "Habilitar filtrado en este sitio web" + }, + "context_site_protection_disabled": { + "message": "La protección de AdGuard está pausada" + }, + "context_update_antibanner_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Inigualable extensión para bloqueo de anuncios y ventanas emergentes. Bloquea anuncios en Facebook, YouTube y los demás sitios web." + }, + "filtering_clear_log_events": { + "message": "Borrar registro" + }, + "filtering_log_actions_menu": { + "message": "Filtrar acciones de registro" + }, + "filtering_log_assumed_rule_description": { + "message": "Esta es una regla asumida. Para más detalles, consulta nuestra \u003Ca>base de conocimientos\u003C/a>." + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Método de petición HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Código de estado HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Petición de tercero" + }, + "filtering_log_details_modal_back_button": { + "message": "Regresar a la petición" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Embellecer" + }, + "filtering_log_details_modal_try_again": { + "message": "Volver a intentar" + }, + "filtering_log_filter_allowed": { + "message": "Permitido" + }, + "filtering_log_filter_blocked": { + "message": "Bloqueado" + }, + "filtering_log_filter_modified": { + "message": "Modificado" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Reglas del usuario" + }, + "filtering_log_hide_referrer": { + "message": "Referer oculto a terceros" + }, + "filtering_log_hide_search_queries": { + "message": "Tus consultas de búsqueda ocultas" + }, + "filtering_log_in_allowlist": { + "message": "El sitio está permitido" + }, + "filtering_log_modified_rules": { + "message": "Reglas modificadas: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sí, conservar" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Esta opción puede aumentar significativamente el uso de memoria" + }, + "filtering_log_preserve_log_modal_title": { + "message": "¿Conservar registro?" + }, + "filtering_log_preserve_log_off": { + "message": "No conservar registro" + }, + "filtering_log_preserve_log_on": { + "message": "Conservar registro" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "No volver a mostrar" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protección contra rastreo aplicada" + }, + "filtering_log_remove_client_data": { + "message": "Encabezado X-Client-Data eliminado" + }, + "filtering_log_search_string": { + "message": "Buscar" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Buscar en pestañas" + }, + "filtering_log_send_not_track": { + "message": "Encabezado \"No rastrear\" enviado" + }, + "filtering_log_status_allowed": { + "message": "Permitido" + }, + "filtering_log_status_blocked": { + "message": "Bloqueado" + }, + "filtering_log_status_modified": { + "message": "Modificado" + }, + "filtering_log_status_processed": { + "message": "Procesado" + }, + "filtering_log_stealth_rules": { + "message": "Reglas de protección contra rastreo: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origen de la petición" + }, + "filtering_log_tag_request_status": { + "message": "Estado de filtrado" + }, + "filtering_log_tag_request_type": { + "message": "Tipo de petición" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Peticiones permitidas y desbloqueadas" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Peticiones bloqueadas" + }, + "filtering_log_tag_tooltip_css": { + "message": "Hojas de estilo" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Peticiones del dominio" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documentos y subdocumentos" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imagenes" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Multimedia" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Peticiones modificadas" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fuentes, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Peticiones procesadas sin filtrar" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Peticiones de terceros" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Peticiones afectadas por reglas del usuario" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Peticiones XMLHttpRequest y fetch" + }, + "filtering_log_title": { + "message": "Registro de filtrado" + }, + "filtering_menu_open_filters": { + "message": "Personalizar" + }, + "filtering_modal_add_rule": { + "message": "Añadir" + }, + "filtering_modal_allow_title": { + "message": "Agregar regla de permiso" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla aplicada | Reglas aplicadas" + }, + "filtering_modal_apply_domains": { + "message": "Aplicar a todos los sitios web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla asumida: | Reglas asumidas:" + }, + "filtering_modal_block": { + "message": "Bloquear" + }, + "filtering_modal_block_again": { + "message": "Bloquear de nuevo" + }, + "filtering_modal_block_title": { + "message": "Agregar regla de bloqueo" + }, + "filtering_modal_converted_to": { + "message": "Convertido a:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiado" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiar al portapapeles" + }, + "filtering_modal_declarative_rule": { + "message": "Regla DNR:" + }, + "filtering_modal_element": { + "message": "Elemento:" + }, + "filtering_modal_exception_title": { + "message": "Añadir excepción" + }, + "filtering_modal_filter": { + "message": "Filtro" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Estado de filtrado" + }, + "filtering_modal_hide_full_element": { + "message": "Ocultar elemento completo" + }, + "filtering_modal_hide_full_rule": { + "message": "Ocultar regla completa" + }, + "filtering_modal_hide_full_url": { + "message": "Ocultar URL completa" + }, + "filtering_modal_important": { + "message": "Dar mayor prioridad a la regla" + }, + "filtering_modal_info_title": { + "message": "Detalles de la petición" + }, + "filtering_modal_open_in_new_tab": { + "message": "Abrir en una nueva pestaña" + }, + "filtering_modal_options_desc": { + "message": "Opciones" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla original: | Reglas originales:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Qué se debe permitir" + }, + "filtering_modal_patterns_desc_block": { + "message": "Qué se debe bloquear" + }, + "filtering_modal_preview_request_button": { + "message": "Vista previa" + }, + "filtering_modal_preview_title": { + "message": "Vista previa" + }, + "filtering_modal_privacy": { + "message": "Protección contra rastreo" + }, + "filtering_modal_remove_allowlist": { + "message": "Eliminar de la lista de permitido" + }, + "filtering_modal_remove_param": { + "message": "Eliminar parámetros de consulta" + }, + "filtering_modal_remove_user": { + "message": "Eliminar regla" + }, + "filtering_modal_rule": { + "message": "Regla:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regla" + }, + "filtering_modal_rules": { + "message": "Reglas:" + }, + "filtering_modal_show_full_element": { + "message": "Mostrar elemento completo" + }, + "filtering_modal_show_full_rule": { + "message": "Mostrar regla completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostrar URL completa" + }, + "filtering_modal_source": { + "message": "Fuente" + }, + "filtering_modal_status_text_desc": { + "message": "Estado" + }, + "filtering_modal_status_text_error": { + "message": "No se pudo cargar la vista previa. Inténtalo nuevamente" + }, + "filtering_modal_status_text_loading": { + "message": "Cargando..." + }, + "filtering_modal_third_party": { + "message": "Solo aplicar a peticiones de terceros" + }, + "filtering_modal_type": { + "message": "Tipo" + }, + "filtering_modal_unblock": { + "message": "Desbloquear" + }, + "filtering_refresh_tab_short": { + "message": "Actualizar" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Actualizar página" + }, + "filtering_table_action": { + "message": "Acción" + }, + "filtering_table_empty_reload_page_desc": { + "message": "No se encontró nada. \u003Creset>Deshabilita filtros\u003C/reset> o \u003Crefresh>recarga la página\u003C/refresh> para ver los registros" + }, + "filtering_table_filter": { + "message": "Filtro" + }, + "filtering_table_open_details": { + "message": "Abrir detalles" + }, + "filtering_table_rule": { + "message": "Regla de filtrado" + }, + "filtering_table_source": { + "message": "Fuente" + }, + "filtering_table_status": { + "message": "Estado" + }, + "filtering_table_type": { + "message": "Tipo" + }, + "filtering_type_all": { + "message": "Todo" + }, + "filtering_type_other": { + "message": "Otros" + }, + "filters_download_loading": { + "message": "Por favor, espera mientras la base de datos de los filtros se carga..." + }, + "filters_download_title": { + "message": "La base de datos de los filtros se está cargando..." + }, + "fullscreen_user_rules_title": { + "message": "Reglas del usuario" + }, + "group_description_adblocking": { + "message": "Configura aquí el bloqueo de anuncios para acabar de una vez por todas con los molestos banners, ventanas emergentes y anuncios en vídeo." + }, + "group_description_annoyances": { + "message": "Elimina ventanas emergentes y otras notificaciones molestas como avisos de cookies." + }, + "group_description_custom": { + "message": "Crea tus propios filtros para ajustar el filtrado web a tus preferencias." + }, + "group_description_lang": { + "message": "No te limites, bloquea anuncios en sitios web en cualquier idioma." + }, + "group_description_miscellaneous": { + "message": "Más opciones para configurar aún más tu navegación web con AdGuard." + }, + "group_description_security": { + "message": "Protégete del malware, phishing y otras amenazas en línea." + }, + "group_description_social": { + "message": "Oculta botones \"Me gusta\"/\"Compartir\" no deseados y otros widgets de redes sociales." + }, + "group_description_stealth": { + "message": "Protege tu identidad e información personal sensible de miles de rastreadores en línea bloqueando todos los métodos de rastreo populares conocidos." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "No volver a mostrar" + }, + "opera_search_permission_go_to_settings": { + "message": "Ir a Configuración" + }, + "opera_search_permission_warning": { + "message": "Para bloquear anuncios de búsqueda, permite el acceso a los resultados de la página de búsqueda en la configuración del navegador" + }, + "options_about": { + "message": "Acerca de" + }, + "options_about_libs": { + "message": "Bibliotecas utilizadas" + }, + "options_about_title": { + "message": "Extensión de navegador AdGuard" + }, + "options_about_update_available": { + "message": "La versión %version% está disponible. Se descargará e instalará automáticamente." + }, + "options_about_version": { + "message": "Versión" + }, + "options_acknowledgment": { + "message": "Agradecimientos" + }, + "options_add_custom_filter": { + "message": "Añadir filtro personalizado" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Añadir" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Revisando tu filtro..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "La URL devolvió una página web en lugar de una lista de filtros. Por favor, proporcione un enlace directo al archivo de filtro." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Por favor, inténtalo de nuevo o contacta con el soporte" + }, + "options_add_custom_filter_modal_error_title": { + "message": "No se pudo agregar el filtro personalizado" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nombre del filtro:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Confiable" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Los filtros de confianza pueden utilizar potentes modificadores de reglas: asegúrate de utilizar un filtro de desarrolladores de confianza." + }, + "options_add_custom_filter_modal_title": { + "message": "Añadir personalizado" + }, + "options_all_limits_exceeded_warning": { + "message": "Has alcanzado el límite de reglas incorporadas activas. Tu navegador ha modificado la lista de filtros incorporados activos. El número de filtros activados ha cambiado de %expected% a %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Has alcanzado el límite de reglas integradas activas de tu navegador. Tu navegador ha reducido la lista de filtros integrados activos de %expected% a %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tu navegador restringe \u003Cexternal-link>algunos tipos de reglas\u003C/external-link>. Para aplicar todas las reglas, habilita \u003Cb>permitir userscripts\u003C/b> en la \u003Csettings-link>configuración de extensiones\u003C/settings-link> de tu navegador" + }, + "options_allowlist": { + "message": "Lista de permitido" + }, + "options_allowlist_alert_invert": { + "message": "La lista de permitidos está invertida. Los anuncios solo se bloquean en los sitios web añadidos a ella." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Dejar de invertir\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard no bloquea anuncios ni rastreadores en los sitios web de la lista" + }, + "options_allowlist_invalid_entries": { + "message": "Para guardar, conserva solo los dominios o URL. Estos necesitan corrección: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertir lista de permitido" + }, + "options_allowlist_invert_desc": { + "message": "Bloquea anuncios y rastreadores solo en sitios web permitidos" + }, + "options_allowlist_leave_subtitle": { + "message": "Se perderán tus cambios en la lista de permitido" + }, + "options_allowlist_menu": { + "message": "Acciones de la lista de permitidos" + }, + "options_anonymized_usage_data_description": { + "message": "Envía estadísticas anónimas sobre el uso de la extensión a AdGuard. \u003Cbutton>Más información\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Entiendo" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Estos datos incluyen:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nombres de los botones que haces clic" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nombres de las pantallas con las que interactúas" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificadores de sesión" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Estos datos son anónimos y solo se utilizan internamente. Nunca lo compartimos con terceros" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Necesitamos esta información para analizar y mejorar la funcionalidad de AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Datos de uso de la extensión" + }, + "options_anonymized_usage_data_title": { + "message": "Enviar datos anónimos de uso de la extensión" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Este filtro personalizado ya ha sido añadido" + }, + "options_antibanner_custom_group": { + "message": "Personalizado" + }, + "options_antibanner_custom_group_description": { + "message": "Te permite agregar filtros desde un archivo o una URL" + }, + "options_antibanner_rules_count": { + "message": "Reglas: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Actualizado: %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloquear anuncios de búsqueda y autopromoción de sitios web" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloquea anuncios en los resultados de búsqueda y la autopromoción de sitios web. \u003Ca>Más información\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Para bloquear estas cookies, configura su duración en 0" + }, + "options_block_known_trackers_description": { + "message": "Bloquea los rastreadores y analytics mediante el filtro AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Bloquear rastreadores" + }, + "options_check_update_progress": { + "message": "Comprobando..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Borrar" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Todas las estadísticas sobre el uso de datos se eliminarán permanentemente" + }, + "options_clear_stats_confirm_modal_title": { + "message": "¿Borrar estadísticas?" + }, + "options_clipboard_permission_warning": { + "message": "Para copiar y pegar reglas, permite que AdGuard acceda al portapapeles. \u003Ca>Permitir\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envía estadísticas anónimas sobre el uso del filtrado de anuncios a AdGuard. \u003Ca>Más información\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ayuda a desarrollar los filtros de AdGuard" + }, + "options_coming_soon": { + "message": "Próximamente" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancelar" + }, + "options_copyright": { + "message": "Todos los derechos reservados." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para usar filtros personalizados, habilita \u003Cb>permitir userscripts\u003C/b> en la \u003Csettings-link>configuración de extensiones\u003C/settings-link> de tu navegador" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para utilizar filtros personalizados, activa el \u003Cb>Modo de desarrollador\u003C/b> en la \u003Csettings-link>configuración de la extensión\u003C/settings-link> de tu navegador" + }, + "options_desktop_app_promo_button_linux": { + "message": "Obtener AdGuard para Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtener AdGuard para Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtener AdGuard para Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicaciones como Spotify, Discord o Zoom aún pueden mostrar anuncios y rastrear tu actividad" + }, + "options_desktop_app_promo_subdescription": { + "message": "Nuestra aplicación de escritorio puede protegerte de ellos" + }, + "options_desktop_app_promo_title": { + "message": "La extensión protege únicamente el navegador" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tu navegador restringe \u003Cexternal-link>algunos tipos de reglas\u003C/external-link>. Para aplicar todas las reglas, habilita el \u003Cb>Modo desarrollador\u003C/b> en la \u003Csettings-link>configuración de la extensión\u003C/settings-link> de tu navegador" + }, + "options_disable_webrtc_desc": { + "message": "Bloquea WebRTC que puede filtrar tu dirección IP real incluso si usas un proxy o VPN. Algunos mensajeros, plataformas de transmisión o juegos pueden dejar de funcionar correctamente" + }, + "options_disable_webrtc_title": { + "message": "Bloquear WebRTC" + }, + "options_discuss": { + "message": "Debatir sobre AdGuard" + }, + "options_do_you_like_question": { + "message": "¿Te gusta AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Salir del modo ventana" + }, + "options_editor_indicator_saved": { + "message": "Guardado" + }, + "options_editor_indicator_saving": { + "message": "Guardando..." + }, + "options_editor_leave_cancel": { + "message": "Volver a la edición" + }, + "options_editor_leave_confirm": { + "message": "Sí, salir" + }, + "options_editor_leave_title": { + "message": "¿Salir sin guardar?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Abrir editor en una ventana nueva" + }, + "options_editor_save": { + "message": "Guardar" + }, + "options_editor_save_error": { + "message": "Fallo al guardar los cambios. Inténtalo de nuevo o contacta con soporte" + }, + "options_empty_custom_filter": { + "message": "Todavía no tienes filtros personalizados" + }, + "options_enable_autodetect_filter": { + "message": "Habilitar automáticamente los filtros más adecuados" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecta el idioma del sitio web y activa los filtros adecuados" + }, + "options_export_settings": { + "message": "Exportar configuración" + }, + "options_filters": { + "message": "Filtros" + }, + "options_filters_annoyances_consent_description": { + "message": "Estás a punto de habilitar uno o más filtros de molestias. Bloquean elementos que no están relacionados con el contenido del sitio web o que están relacionados pero son molestos para tu experiencia de usuario. Los propietarios de los sitios web pueden considerar estos elementos obligatorios: si los bloqueas, podrías estar infringiendo sus términos; es posible que algunas funcionalidades de los sitios web no estén disponibles o no funcionen correctamente. Entiendes y aceptas que eres el único responsable de cumplir con los términos de uso de los sitios web que visitas y que AdGuard no es responsable de que cumplas con los términos de uso de los sitios web que visitas usando nuestros productos." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Habilitar" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Página de inicio" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Para obtener detalles sobre lo que bloquean los filtros de elementos molestos de AdGuard, consulta la \u003Ca>política de filtros\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "¿Habilitar estos filtros?" + }, + "options_filters_annoyances_consent_title": { + "message": "Por favor, lee atentamente antes de habilitar los filtros de elementos molestos" + }, + "options_filters_back_button": { + "message": "Regresar" + }, + "options_filters_empty_title": { + "message": "No se ha encontrado nada" + }, + "options_filters_enabled": { + "message": "Habilitado:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% y %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% y %more% más" + }, + "options_filters_enabled_per_group": { + "message": "Activado: %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Ir a la página de inicio" + }, + "options_filters_filter_tags": { + "message": "Tags de filtro" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Elegiste confiar en este filtro." + }, + "options_filters_filter_updated": { + "message": "actualizado:" + }, + "options_filters_filter_version": { + "message": "versión:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Reglas totales: %num%" + }, + "options_filters_last_checked": { + "message": "Última comprobación: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Todos los filtros" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Deshabilitado" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Habilitado" + }, + "options_filters_no_enabled": { + "message": "No hay filtros habilitados" + }, + "options_filters_of_group": { + "message": "Filtros del grupo \"%groupName%\"" + }, + "options_filters_search": { + "message": "Buscar" + }, + "options_filters_search_filter": { + "message": "Buscar filtro" + }, + "options_first_party_block_cookies_warning": { + "message": "Si bloqueas estas cookies, algunos sitios web pueden dejar de funcionar" + }, + "options_first_party_desc": { + "message": "Evita que los sitios web recuerden tus datos, como tus credenciales de inicio de sesión y preferencias de idioma, limitando el tiempo de vida de las cookies primarias" + }, + "options_first_party_title": { + "message": "Eliminar las cookies de origen (no recomendado)" + }, + "options_general_settings": { + "message": "General" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Impide que terceros sepan qué sitio web estás visitando." + }, + "options_hide_referrer_title": { + "message": "Ocultar Referrer a terceros" + }, + "options_hide_search_queries_desc": { + "message": "Oculta tus búsquedas en los sitios web visitados a través de los resultados de los motores de búsqueda" + }, + "options_hide_search_queries_title": { + "message": "Ocultar consultas de búsqueda" + }, + "options_import_configuration_applying_subtitle": { + "message": "Sustituindo la configuración actual por la importada. El filtrado se desactiva durante la importación" + }, + "options_import_configuration_applying_title": { + "message": "Importando..." + }, + "options_import_configuration_confirm_button": { + "message": "Importar" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Las configuraciones importadas reemplazarán las actuales. Otras configuraciones no se verán afectadas" + }, + "options_import_configuration_confirm_title": { + "message": "Importar configuración" + }, + "options_import_configuration_error_button": { + "message": "Cerrar" + }, + "options_import_configuration_error_subtitle": { + "message": "Por favor, revisa el enlace de importación y vuelve a intentarlo. Si no ayuda, comunícate con el soporte" + }, + "options_import_configuration_error_title": { + "message": "Error al importar la configuración" + }, + "options_import_configuration_success_button": { + "message": "Cerrar" + }, + "options_import_configuration_success_subtitle": { + "message": "La configuración se ha importado correctamente" + }, + "options_import_configuration_success_title": { + "message": "Todo listo" + }, + "options_import_settings": { + "message": "Importar configuración" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertir" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Los anuncios y rastreadores solo se bloquearán en sitios web de la lista de permitidos" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "¿Invertir la lista de permitidos?" + }, + "options_leave_feedback": { + "message": "Dejar comentario" + }, + "options_lifetime_minutes": { + "message": "Duración, minutos" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Has alcanzado el límite de reglas regex de usuario agregadas. %maximum% de %current% reglas regex están habilitadas." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Has alcanzado el límite de reglas regex agregadas por el usuario. %maximum% de %current% reglas están habilitadas. Para agregar nuevas reglas regex, quita algunas existentes" + }, + "options_limits_warning_dynamic_rules": { + "message": "Has alcanzado el límite de reglas añadidas por el usuario. %maximum% de %current% reglas están habilitadas." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Has alcanzado el límite de reglas agregadas por el usuario. %maximum% de %current% reglas están habilitadas. Para agregar nuevas reglas, quita algunas existentes" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Has alcanzado el límite de reglas no seguras agregadas por el usuario. %maximum% de %current% reglas inseguras están habilitadas." + }, + "options_limits_warning_static_filters": { + "message": "Has alcanzado el límite de filtros integrados activos. %maximum% de %current% filtros están habilitados. Para habilitar nuevas reglas, deshabilita algunos filtros integrados." + }, + "options_limits_warning_static_filters_browser": { + "message": "Has alcanzado el límite de filtros incorporados activos de tu navegador. %maximum% de %current% filtros están activados. Para activar nuevos filtros, desactive algunos de los incorporados" + }, + "options_limits_warning_static_regex_rules": { + "message": "Has alcanzado el límite de reglas regex incorporadas activas. %maximum% de %current% reglas regex están habilitadas. Para habilitar nuevas reglas, deshabilita algunos filtros incorporados." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Has alcanzado el límite de reglas de expresiones regulares integradas activas. Para activar nuevas reglas, desactiva algunos filtros integrados" + }, + "options_limits_warning_static_rules": { + "message": "Has alcanzado el límite de reglas incorporadas activas. %maximum% de %current% reglas están habilitados. Para habilitar nuevas reglas, deshabilita algunos filtros incorporados." + }, + "options_limits_warning_static_rules_browser": { + "message": "Has alcanzado el límite de reglas integradas activas de tu navegador. Para activar nuevas reglas, desactiva algunos filtros incorporados" + }, + "options_loader_applying_changes": { + "message": "Aplicando cambios..." + }, + "options_miscellaneous_settings": { + "message": "Configuración adicional" + }, + "options_modified_first_party_cookie": { + "message": "Cookie del dominio modificada" + }, + "options_modified_third_party_cookie": { + "message": "Cookie de tercero modificada" + }, + "options_nav_better_than_extension": { + "message": "¿Por qué la aplicación AdGuard es mejor que la extensión?" + }, + "options_nav_compare": { + "message": "Comparar" + }, + "options_navigation": { + "message": "Navegación" + }, + "options_open_changelog": { + "message": "Registro de cambios" + }, + "options_open_log": { + "message": "Abrir registro de filtrado" + }, + "options_popup_call_to_action": { + "message": "Ingresa una URL válida o la ruta del archivo de filtro en la casilla de arriba." + }, + "options_popup_check_false_description": { + "message": "Error al añadir tu filtro personalizado." + }, + "options_popup_check_false_title": { + "message": "Error" + }, + "options_popup_checking_filter": { + "message": "Revisando tu filtro" + }, + "options_popup_description": { + "message": "Estarás suscrito a ese filtro." + }, + "options_popup_filter_description": { + "message": "Descripción:" + }, + "options_popup_filter_homepage": { + "message": "Página de inicio:" + }, + "options_popup_filter_rules_count": { + "message": "Número de reglas:" + }, + "options_popup_filter_title": { + "message": "Título:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versión:" + }, + "options_popup_import_error_file_description": { + "message": "Se ha producido un error." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Para importar este archivo de configuración, permite que AdGuard cambie tu configuración relacionada con la privacidad." + }, + "options_popup_import_error_title": { + "message": "Error al importar la configuración" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "La extensión del archivo debe ser %extension%" + }, + "options_popup_import_success_title": { + "message": "Configuración importada" + }, + "options_popup_next_button": { + "message": "Siguiente" + }, + "options_popup_subscribe_button": { + "message": "Suscribirse" + }, + "options_popup_title_placeholder": { + "message": "Ingresa el nombre del filtro" + }, + "options_popup_trusted_filter_description": { + "message": "Los filtros de confianza pueden utilizar potentes modificadores de reglas de filtrado que pueden ser peligrosos en las manos equivocadas. No marques esta casilla a menos que confíes plenamente en ella." + }, + "options_popup_trusted_filter_title": { + "message": "Confiable" + }, + "options_popup_try_again_button": { + "message": "Volver a intentar" + }, + "options_popup_update_error": { + "message": "Error al obtener actualizaciones. Por favor, inténtelo de nuevo más tarde." + }, + "options_popup_update_filter": { + "message": "fue actualizado." + }, + "options_popup_update_filters": { + "message": "fueron actualizados." + }, + "options_popup_update_not_found": { + "message": "Tus filtros están actualizados" + }, + "options_popup_update_title_error": { + "message": "Error al actualizar los filtros" + }, + "options_popup_updating_filters": { + "message": "Actualizando filtros..." + }, + "options_popup_url_placeholder": { + "message": "Ingresa una URL o ruta" + }, + "options_popup_url_title": { + "message": "Nueva suscripción a filtro" + }, + "options_popup_version_update_changelog_text": { + "message": "Novedades en esta versión" + }, + "options_popup_version_update_description_major": { + "message": "Esta es una actualización mayor que trae nuevas características y mejoras." + }, + "options_popup_version_update_description_minor": { + "message": "Esta versión trae mejoras y correcciones de errores." + }, + "options_popup_version_update_disable_notification": { + "message": "Deshabilitar notificaciones" + }, + "options_popup_version_update_offer": { + "message": "¿Sabías que las capacidades de AdGuard no están limitadas a este navegador?" + }, + "options_popup_version_update_offer_button_text": { + "message": "MÁS INFORMACIÓN" + }, + "options_popup_version_update_title_text": { + "message": "La extensión AdGuard ha sido actualizada a la versión %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Hace que WebRTC utilice una política de direcciones IP más estricta para ayudar a mantener oculta tu dirección IP real cuando usas un proxy o una VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Evita fugas de direcciones IP a través de WebRTC" + }, + "options_privacy": { + "message": "Protección contra rastreo" + }, + "options_privacy_desc": { + "message": "Protege tu actividad en Internet y tus datos personales de los rastreadores web" + }, + "options_privacy_policy": { + "message": "Política de privacidad" + }, + "options_privacy_title": { + "message": "Protección contra rastreo" + }, + "options_rate_us_cta": { + "message": "Califícanos" + }, + "options_remove_client_data_desc": { + "message": "Bloquea Google Chrome para que no envíe información sobre su versión y modificaciones a los dominios de Google." + }, + "options_remove_client_data_title": { + "message": "Eliminar encabezado X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Eliminar" + }, + "options_remove_filter_confirm_modal_title": { + "message": "¿Eliminar este filtro?" + }, + "options_report_bug": { + "message": "Informar de un error" + }, + "options_reset_settings": { + "message": "Restablecer configuración" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Restablecer" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Toda la configuración se reiniciará a sus valores predeterminados" + }, + "options_reset_settings_confirm_modal_title": { + "message": "¿Restablecer configuración?" + }, + "options_reset_settings_done": { + "message": "La configuración se ha restablecido" + }, + "options_reset_settings_error": { + "message": "Error al restablecer la configuración" + }, + "options_reset_stats": { + "message": "Borrar estadísticas" + }, + "options_reset_stats_done": { + "message": "Las estadísticas se han restablecido" + }, + "options_rule_limits": { + "message": "Límite de reglas" + }, + "options_rule_limits_description": { + "message": "Chrome limita el número de reglas que pueden aplicarse." + }, + "options_rule_limits_dynamic": { + "message": "Reglas dinámicas" + }, + "options_rule_limits_dynamic_regex": { + "message": "Reglas Regex — incluidas en las reglas añadidas por el usuario" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Reglas dinámicas no seguras (utilizadas para algunos modificadores avanzados, como $$redirect o $$cookie) — incluido en las reglas añadidas por el usuario" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Reglas agregadas por el usuario, como \u003Cuser_rules>reglas de usuario\u003C/user_rules>, \u003Callowlist>sitios web de la lista de permitidos\u003C/allowlist> y \u003Ccustom_filters>filtros personalizados\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Reglas añadidas por el usuario, como \u003Cuser_rules>reglas de usuario\u003C/user_rules> y \u003Callowlist>sitios web permitidos\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Reglas estáticas" + }, + "options_rule_limits_static_rules_all": { + "message": "Reglas de \u003Ca>filtros incorporados\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Reglas de expresiones regulares: incluidas en lo anterior" + }, + "options_rule_limits_static_rulesets": { + "message": "Conjuntos de reglas estáticas" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtros incorporados\u003C/a>, como bloquear elementos molestos o filtros específicos por idioma" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Option 3. Si estás satisfecho con los filtros predeterminados habilitados actualmente, \u003Ca>cierra esta advertencia\u003C/a>." + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Option 3. Si estás satisfecho con el filtro predeterminado habilitado actualmente, \u003Ca>cierra esta advertencia\u003C/a>." + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opción 1. Elimine las extensiones para bloqueo de anuncios innecesarias de tu navegador. Para rehabilitar los filtros mencionados en la sección \"Filtros habilitados antes de la actualización\", haz clic en \u003Ca>rehabilitar filtros\u003C/a>." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opción 2. Instala la aplicación bloqueador de anuncios AdGuard: no tiene restricciones en las reglas de filtrado. \u003Ca>Obtener la aplicación AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Tus posibles acciones" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Se ha superado el límite de reglas integradas activas después de una actualización o al añadir una nueva extensión. Según Manifest V3, tu navegador Chrome reaccionó deshabilitando todos los filtros integrados de la extensión, excepto los predeterminados." + }, + "options_rule_limits_warning_explanation_title": { + "message": "¿Qué sucedió?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtros habilitados antes de la actualización" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtros habilitados ahora" + }, + "options_rule_limits_warning_title": { + "message": "El navegador ha modificado la lista de filtros activos" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Elimina los límites de reglas y obtén protección ampliada que funciona en todos los navegadores" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalar la aplicación de escritorio" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ir a los filtros" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Administrar extensiones" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Las extensiones del navegador comparten el mismo límite de reglas. Eliminar otros bloqueadores de anuncios puede liberar más reglas para la extensión de navegador AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Elimina otros bloqueadores de anuncios" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Activa los filtros que necesites. Los filtros específicos de idioma y de privacidad pueden usar muchas reglas" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Revisar los filtros disponibles" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Esto es lo que puedes hacer" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Límite alcanzado — algunos filtros fueron desactivados" + }, + "options_rule_syntax": { + "message": "Sintaxis de regla" + }, + "options_safebrowsing_enabled": { + "message": "Protección contra phishing y malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Advierte sobre sitios web maliciosos y de phishing mediante el módulo Seguridad de Navegación de AdGuard. \u003Ca>Más información\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 horas" + }, + "options_select_update_period_1h": { + "message": "1 hora" + }, + "options_select_update_period_24h": { + "message": "24 horas" + }, + "options_select_update_period_48h": { + "message": "48 horas" + }, + "options_select_update_period_6h": { + "message": "6 horas" + }, + "options_select_update_period_default": { + "message": "Predeterminado" + }, + "options_select_update_period_disabled": { + "message": "Deshabilitado" + }, + "options_send_not_track_desc": { + "message": "Envia las señales \"\u003Cgpc>Control de privacidad global\u003C/gpc>\" y \"\u003Cdnt>No rastrear\u003C/dnt>\" a los sitios web que estás visitando." + }, + "options_send_not_track_title": { + "message": "Pedir a los sitios web que no me rastreen" + }, + "options_set_update_interval": { + "message": "Actualizar filtros automáticamente" + }, + "options_set_update_interval_desc": { + "message": "Mantiene los filtros actualizados para un bloqueo de anuncios más efectivo" + }, + "options_settings": { + "message": "Configuración de AdGuard" + }, + "options_share_settings": { + "message": "Compartir configuraciones" + }, + "options_show_adguard_full_version_title": { + "message": "Mostrar información sobre la versión completa de AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notificar sobre las actualizaciones de la extensión" + }, + "options_show_blocked_ads_count_title": { + "message": "Mostrar el número de anuncios bloqueados en el icono de la extensión AdGuard" + }, + "options_show_context_menu_title": { + "message": "Añadir el elemento AdGuard al menú contextual del navegador" + }, + "options_site": { + "message": "Sitio web oficial" + }, + "options_skip_to_main_content": { + "message": "Saltar al contenido principal" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Varios" + }, + "options_stealth_tracking_methods_title": { + "message": "Métodos de rastreo" + }, + "options_strip_tracking_params_description": { + "message": "Elimina los parámetros de seguimiento de las URL de las páginas mediante el filtro de seguimiento de URL de AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Eliminar parámetros de seguimiento de las URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parámetros de rastreo eliminados" + }, + "options_theme_selector_dark": { + "message": "Oscuro" + }, + "options_theme_selector_light": { + "message": "Claro" + }, + "options_theme_selector_system": { + "message": "Predeterminado del sistema" + }, + "options_third_party_block_cookies_warning": { + "message": "Si bloqueas estas cookies, es posible que tengas que volver a iniciar sesión en algunos sitios web o enfrentar otros problemas relacionados con las cookies" + }, + "options_third_party_desc": { + "message": "Evita que los anunciantes rastreen tu comportamiento en varias páginas al limitar la vida útil de las cookies de terceros" + }, + "options_third_party_title": { + "message": "Eliminar cookies de terceros" + }, + "options_update_antibanner_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "options_use_optimized_filters": { + "message": "Usar filtros optimizados" + }, + "options_use_optimized_filters_desc": { + "message": "Utiliza versiones más cortas de los filtros con solo las reglas más populares para ahorrar tráfico. Más adecuado para navegadores móviles." + }, + "options_user_rules_clear_search": { + "message": "Borrar búsqueda" + }, + "options_user_rules_create_rule": { + "message": "Crear regla" + }, + "options_user_rules_delete_all": { + "message": "Eliminar todo" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Todas las reglas de usuario se eliminarán de forma permanente" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Eliminar todo?" + }, + "options_user_rules_delete_all_success": { + "message": "Todas las reglas de usuario eliminadas" + }, + "options_user_rules_delete_rule": { + "message": "Eliminar regla" + }, + "options_user_rules_deleted_notification": { + "message": "Regla de usuario eliminada:" + }, + "options_user_rules_description_key": { + "message": "Tus reglas para bloquear y desbloquear anuncios o sitios web completos" + }, + "options_user_rules_edit_rule": { + "message": "Editar regla" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Ir al editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Tus reglas aparecerán aquí después de cerrarlas" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor abierto en otra ventana" + }, + "options_user_rules_empty_placeholder": { + "message": "Todavía no hay reglas" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Resaltando reglas…" + }, + "options_user_rules_import_error": { + "message": "No se pudieron importar las reglas de usuario. Inténtalo de nuevo" + }, + "options_user_rules_import_success": { + "message": "Reglas de usuario importadas con éxito" + }, + "options_user_rules_menu": { + "message": "Acciones de reglas de usuario" + }, + "options_user_rules_no_match": { + "message": "No se ha encontrado nada" + }, + "options_user_rules_search_placeholder": { + "message": "Buscar" + }, + "options_user_rules_switch_to_editor": { + "message": "Cambiar a la vista del editor" + }, + "options_user_rules_switch_to_list": { + "message": "Cambiar a vista de lista" + }, + "options_user_rules_undo": { + "message": "Deshacer" + }, + "options_userfilter": { + "message": "Reglas del usuario" + }, + "options_userfilter_description_key": { + "message": "Puedes añadir tus propias reglas aquí. Esta opción se recomienda para usuarios avanzados familiarizados con HTML/CSS. Lee el \u003Ca>tutorial de reglas de filtro\u003C/a> para aprender a escribir tus propias reglas de filtro." + }, + "options_userfilter_export": { + "message": "Exportar" + }, + "options_userfilter_import": { + "message": "Importar" + }, + "options_userfilter_leave_subtitle": { + "message": "Tus cambios a las reglas se perderán" + }, + "options_userfilter_line_break": { + "message": "Salto de línea" + }, + "options_userfilter_line_break_off": { + "message": "Salto de línea: deshabilitado" + }, + "options_userfilter_line_break_on": { + "message": "Salto de línea: habilitado" + }, + "options_userfilter_subtitle_key": { + "message": "Permite crear tus propias reglas de filtrado" + }, + "popup_abuse_site": { + "message": "Informar de un problema" + }, + "popup_adguard_footer_title": { + "message": "Protege tu dispositivo móvil" + }, + "popup_adguard_for_android": { + "message": "AdGuard para Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard para iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquear anuncios manualmente" + }, + "popup_get_system_wide_protection": { + "message": "Obtén protección para todo el sistema" + }, + "popup_header_cta_link": { + "message": "Cómo mejorar la protección" + }, + "popup_header_update_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "popup_limits_exceeded_warning": { + "message": "Tu navegador ha modificado la lista de filtros integrados activos" + }, + "popup_open_filtering_log": { + "message": "Abrir registro de filtrado" + }, + "popup_open_settings": { + "message": "Abrir la configuración de AdGuard" + }, + "popup_protection_button": { + "message": "Protección de AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Eliminar reglas del usuario para este sitio web" + }, + "popup_resume_protection_button": { + "message": "Reanudar" + }, + "popup_security_report": { + "message": "Verificar seguridad del sitio web" + }, + "popup_site_exception_information": { + "message": "El filtrado está deshabilitado porque puede interferir con el funcionamiento de este sitio web." + }, + "popup_site_filtering_state_disabled": { + "message": "Protección deshabilitada" + }, + "popup_site_filtering_state_disabling": { + "message": "Deshabilitando protección..." + }, + "popup_site_filtering_state_enabled": { + "message": "Protección habilitada" + }, + "popup_site_filtering_state_enabling": { + "message": "Habilitando protección..." + }, + "popup_site_filtering_state_loading": { + "message": "Procesando..." + }, + "popup_site_filtering_state_paused": { + "message": "Protección pausada" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausando protección..." + }, + "popup_site_filtering_state_resuming": { + "message": "Reanudando protección..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Página segura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "para todos los sitios web" + }, + "popup_statistics_all_categories": { + "message": "Todo" + }, + "popup_statistics_category_advertising": { + "message": "Anuncios" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoría de estadísticas" + }, + "popup_statistics_category_other": { + "message": "Otros" + }, + "popup_statistics_category_social_media": { + "message": "Redes sociales" + }, + "popup_statistics_category_trackers": { + "message": "Rastreadores" + }, + "popup_statistics_months_apr": { + "message": "Abr." + }, + "popup_statistics_months_aug": { + "message": "Ago." + }, + "popup_statistics_months_dec": { + "message": "Dic." + }, + "popup_statistics_months_feb": { + "message": "Feb." + }, + "popup_statistics_months_jan": { + "message": "Ene." + }, + "popup_statistics_months_jul": { + "message": "Jul." + }, + "popup_statistics_months_jun": { + "message": "Jun." + }, + "popup_statistics_months_mar": { + "message": "Mar." + }, + "popup_statistics_months_may": { + "message": "May." + }, + "popup_statistics_months_nov": { + "message": "Nov." + }, + "popup_statistics_months_oct": { + "message": "Oct." + }, + "popup_statistics_months_sep": { + "message": "Sept." + }, + "popup_statistics_time_day": { + "message": "24 horas" + }, + "popup_statistics_time_label": { + "message": "Periodo de tiempo de las estadísticas" + }, + "popup_statistics_time_month": { + "message": "30 días" + }, + "popup_statistics_time_week": { + "message": "7 días" + }, + "popup_statistics_time_year": { + "message": "1 año" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Vie." + }, + "popup_statistics_week_days_mon": { + "message": "Lun." + }, + "popup_statistics_week_days_sat": { + "message": "Sáb." + }, + "popup_statistics_week_days_sun": { + "message": "Dom." + }, + "popup_statistics_week_days_thu": { + "message": "Jue." + }, + "popup_statistics_week_days_tue": { + "message": "Mar." + }, + "popup_statistics_week_days_wed": { + "message": "Mié." + }, + "popup_switch_button": { + "message": "Protección para el sitio web actual" + }, + "popup_tab_actions": { + "message": "Acciones" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloqueado: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloqueado: %num%" + }, + "popup_tab_current_website": { + "message": "Sitio web actual" + }, + "popup_tab_statistics": { + "message": "Estadísticas" + }, + "popup_tabs": { + "message": "Pestañas" + }, + "popup_tooltip_loading": { + "message": "Procesando..." + }, + "popup_tooltip_protection_disabled": { + "message": "Protección deshabilitada" + }, + "popup_tooltip_protection_enabled": { + "message": "Protección habilitada" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Algunas reglas no se aplicaron" + }, + "popup_tooltip_update_available": { + "message": "Actualización disponible" + }, + "post_install_loading": { + "message": "Cargando extensión..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Se ha excedido el límite de reglas en la extensión del navegador AdGuard. Revisa tus filtros y desactiva los que no necesites" + }, + "text_collapser_hide_default": { + "message": "Ocultar texto completo" + }, + "text_collapser_show_default": { + "message": "Mostrar texto completo" + }, + "update_available_desc": { + "message": "Para bloquear anuncios de forma eficaz, mantén tu extensión y filtros actualizados." + }, + "update_available_title": { + "message": "Actualizaciones disponibles" + }, + "update_available_update_btn": { + "message": "Actualizar" + }, + "update_check": { + "message": "Buscar actualizaciones" + }, + "update_checking_in_progress": { + "message": "Buscando actualizaciones..." + }, + "update_failed_text": { + "message": "Error al completar la actualización" + }, + "update_failed_try_again_btn": { + "message": "Volver a intentar" + }, + "update_installing_in_progress_desc": { + "message": "La extensión se reiniciará después de actualizar." + }, + "update_installing_in_progress_title": { + "message": "Actualizando extensión y filtros..." + }, + "update_not_needed": { + "message": "Tu extensión y tus filtros están actualizados" + }, + "update_success_text": { + "message": "Extensión y filtros actualizados" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es_419/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es_419/messages.json new file mode 100644 index 0000000..428469a --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/es_419/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% ha sido habilitado automáticamente." + }, + "alert_popup_filter_enabled_title": { + "message": "Habilitación automática de filtros" + }, + "background_tab_title": { + "message": "Pestaña en segundo plano" + }, + "blocking_pages_advanced_button": { + "message": "Avanzado" + }, + "blocking_pages_btn_go_back": { + "message": "Regresar" + }, + "blocking_pages_btn_proceed": { + "message": "Continuar de todos modos" + }, + "blocking_pages_malware": { + "message": "Esta página en \u003Cstrong>%host%\u003C/strong> ha sido reportada como una página de malware y ha sido bloqueada basado en tus preferencias de seguridad." + }, + "blocking_pages_more_info_button": { + "message": "Más información" + }, + "blocking_pages_page_title": { + "message": "Acceso denegado" + }, + "blocking_pages_phishing": { + "message": "Esta página en \u003Cstrong>%host%\u003C/strong> ha sido reportada como una página de phishing y ha sido bloqueada basado en tus preferencias de seguridad." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ha impedido que esta página se cargue debido a la siguiente regla de filtro" + }, + "blocking_pages_rule_header_title": { + "message": "Bloqueado por AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ha bloqueado el acceso a esta página" + }, + "clear_button_title": { + "message": "Borrar" + }, + "close_button_title": { + "message": "Cerrar" + }, + "context_block_site_ads": { + "message": "Bloquear anuncios manualmente" + }, + "context_complaint_website": { + "message": "Reportar un error" + }, + "context_disable_protection": { + "message": "Pausar protección de AdGuard" + }, + "context_enable_protection": { + "message": "Reanudar protección de AdGuard" + }, + "context_open_log": { + "message": "Registro de filtrado" + }, + "context_open_settings": { + "message": "Configuración de AdGuard" + }, + "context_security_report": { + "message": "Verificar seguridad del sitio web" + }, + "context_site_exception": { + "message": "Este sitio web está en las excepciones" + }, + "context_site_filtering_disabled": { + "message": "AdGuard no puede filtrar esta página" + }, + "context_site_filtering_off": { + "message": "Deshabilitar filtrado en este sitio web" + }, + "context_site_filtering_on": { + "message": "Habilitar filtrado en este sitio web" + }, + "context_site_protection_disabled": { + "message": "La protección de AdGuard está pausada" + }, + "context_update_antibanner_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Inigualable extensión para bloqueo de anuncios y ventanas emergentes. Bloquea anuncios en Facebook, YouTube y los demás sitios web." + }, + "filtering_clear_log_events": { + "message": "Borrar registro" + }, + "filtering_log_actions_menu": { + "message": "Filtrar acciones de registro" + }, + "filtering_log_assumed_rule_description": { + "message": "Esta es una regla asumida. Para más detalles, consulta nuestra \u003Ca>base de conocimientos\u003C/a>." + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Método de petición HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Código de estado HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Petición de tercero" + }, + "filtering_log_details_modal_back_button": { + "message": "Regresar a la petición" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Embellecer" + }, + "filtering_log_details_modal_try_again": { + "message": "Volver a intentar" + }, + "filtering_log_filter_allowed": { + "message": "Permitido" + }, + "filtering_log_filter_blocked": { + "message": "Bloqueado" + }, + "filtering_log_filter_modified": { + "message": "Modificado" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Reglas del usuario" + }, + "filtering_log_hide_referrer": { + "message": "Referer oculto a terceros" + }, + "filtering_log_hide_search_queries": { + "message": "Tus consultas de búsqueda ocultas" + }, + "filtering_log_in_allowlist": { + "message": "El sitio está permitido" + }, + "filtering_log_modified_rules": { + "message": "Reglas modificadas: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sí, conservar" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Esta opción puede aumentar significativamente el uso de memoria" + }, + "filtering_log_preserve_log_modal_title": { + "message": "¿Conservar registro?" + }, + "filtering_log_preserve_log_off": { + "message": "No conservar registro" + }, + "filtering_log_preserve_log_on": { + "message": "Conservar registro" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "No volver a mostrar" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protección contra rastreo aplicada" + }, + "filtering_log_remove_client_data": { + "message": "Encabezado X-Client-Data eliminado" + }, + "filtering_log_search_string": { + "message": "Buscar" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Buscar en pestañas" + }, + "filtering_log_send_not_track": { + "message": "Encabezado \"No rastrear\" enviado" + }, + "filtering_log_status_allowed": { + "message": "Permitido" + }, + "filtering_log_status_blocked": { + "message": "Bloqueado" + }, + "filtering_log_status_modified": { + "message": "Modificado" + }, + "filtering_log_status_processed": { + "message": "Procesado" + }, + "filtering_log_stealth_rules": { + "message": "Reglas de protección contra rastreo: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origen de la petición" + }, + "filtering_log_tag_request_status": { + "message": "Estado de filtrado" + }, + "filtering_log_tag_request_type": { + "message": "Tipo de petición" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Peticiones permitidas y desbloqueadas" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Peticiones bloqueadas" + }, + "filtering_log_tag_tooltip_css": { + "message": "Hojas de estilo" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Peticiones del dominio" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documentos y subdocumentos" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imagenes" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Multimedia" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Peticiones modificadas" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fuentes, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Peticiones procesadas sin filtrar" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Peticiones de terceros" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Peticiones afectadas por reglas del usuario" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Peticiones XMLHttpRequest y fetch" + }, + "filtering_log_title": { + "message": "Registro de filtrado" + }, + "filtering_menu_open_filters": { + "message": "Personalizar" + }, + "filtering_modal_add_rule": { + "message": "Añadir" + }, + "filtering_modal_allow_title": { + "message": "Agregar regla de permiso" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla aplicada | Reglas aplicadas" + }, + "filtering_modal_apply_domains": { + "message": "Aplicar a todos los sitios web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla asumida: | Reglas asumidas:" + }, + "filtering_modal_block": { + "message": "Bloquear" + }, + "filtering_modal_block_again": { + "message": "Bloquear de nuevo" + }, + "filtering_modal_block_title": { + "message": "Agregar regla de bloqueo" + }, + "filtering_modal_converted_to": { + "message": "Convertido a:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiado" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiar al portapapeles" + }, + "filtering_modal_declarative_rule": { + "message": "Regla DNR:" + }, + "filtering_modal_element": { + "message": "Elemento:" + }, + "filtering_modal_exception_title": { + "message": "Añadir excepción" + }, + "filtering_modal_filter": { + "message": "Filtro" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Estado de filtrado" + }, + "filtering_modal_hide_full_element": { + "message": "Ocultar elemento completo" + }, + "filtering_modal_hide_full_rule": { + "message": "Ocultar regla completa" + }, + "filtering_modal_hide_full_url": { + "message": "Ocultar URL completa" + }, + "filtering_modal_important": { + "message": "Dar mayor prioridad a la regla" + }, + "filtering_modal_info_title": { + "message": "Detalles de la petición" + }, + "filtering_modal_open_in_new_tab": { + "message": "Abrir en una nueva pestaña" + }, + "filtering_modal_options_desc": { + "message": "Opciones" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regla original: | Reglas originales:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Qué se debe permitir" + }, + "filtering_modal_patterns_desc_block": { + "message": "Qué se debe bloquear" + }, + "filtering_modal_preview_request_button": { + "message": "Vista previa" + }, + "filtering_modal_preview_title": { + "message": "Vista previa" + }, + "filtering_modal_privacy": { + "message": "Protección contra rastreo" + }, + "filtering_modal_remove_allowlist": { + "message": "Eliminar de la lista de permitido" + }, + "filtering_modal_remove_param": { + "message": "Eliminar parámetros de consulta" + }, + "filtering_modal_remove_user": { + "message": "Eliminar regla" + }, + "filtering_modal_rule": { + "message": "Regla:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regla" + }, + "filtering_modal_rules": { + "message": "Reglas:" + }, + "filtering_modal_show_full_element": { + "message": "Mostrar elemento completo" + }, + "filtering_modal_show_full_rule": { + "message": "Mostrar regla completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostrar URL completa" + }, + "filtering_modal_source": { + "message": "Fuente" + }, + "filtering_modal_status_text_desc": { + "message": "Estado" + }, + "filtering_modal_status_text_error": { + "message": "No se pudo cargar la vista previa. Inténtalo nuevamente" + }, + "filtering_modal_status_text_loading": { + "message": "Cargando..." + }, + "filtering_modal_third_party": { + "message": "Solo aplicar a peticiones de terceros" + }, + "filtering_modal_type": { + "message": "Tipo" + }, + "filtering_modal_unblock": { + "message": "Desbloquear" + }, + "filtering_refresh_tab_short": { + "message": "Actualizar" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Actualizar página" + }, + "filtering_table_action": { + "message": "Acción" + }, + "filtering_table_empty_reload_page_desc": { + "message": "No se encontró nada. \u003Creset>Deshabilita filtros\u003C/reset> o \u003Crefresh>recarga la página\u003C/refresh> para ver los registros" + }, + "filtering_table_filter": { + "message": "Filtro" + }, + "filtering_table_open_details": { + "message": "Abrir detalles" + }, + "filtering_table_rule": { + "message": "Regla de filtrado" + }, + "filtering_table_source": { + "message": "Fuente" + }, + "filtering_table_status": { + "message": "Estado" + }, + "filtering_table_type": { + "message": "Tipo" + }, + "filtering_type_all": { + "message": "Todo" + }, + "filtering_type_other": { + "message": "Otros" + }, + "filters_download_loading": { + "message": "Por favor, espera mientras la base de datos de los filtros se carga..." + }, + "filters_download_title": { + "message": "La base de datos de los filtros se está cargando..." + }, + "fullscreen_user_rules_title": { + "message": "Reglas del usuario" + }, + "group_description_adblocking": { + "message": "Configura aquí el bloqueo de anuncios para acabar de una vez por todas con los molestos banners, ventanas emergentes y anuncios en vídeo." + }, + "group_description_annoyances": { + "message": "Elimina ventanas emergentes y otras notificaciones molestas como avisos de cookies." + }, + "group_description_custom": { + "message": "Crea tus propios filtros para ajustar el filtrado web a tus preferencias." + }, + "group_description_lang": { + "message": "No te limites, bloquea anuncios en sitios web en cualquier idioma." + }, + "group_description_miscellaneous": { + "message": "Más opciones para configurar aún más tu navegación web con AdGuard." + }, + "group_description_security": { + "message": "Protégete del malware, phishing y otras amenazas en línea." + }, + "group_description_social": { + "message": "Oculta botones \"Me gusta\"/\"Compartir\" no deseados y otros widgets de redes sociales." + }, + "group_description_stealth": { + "message": "Protege tu identidad e información personal sensible de miles de rastreadores en línea bloqueando todos los métodos de rastreo populares conocidos." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "No volver a mostrar" + }, + "opera_search_permission_go_to_settings": { + "message": "Ir a Configuración" + }, + "opera_search_permission_warning": { + "message": "Para bloquear anuncios de búsqueda, permite el acceso a los resultados de la página de búsqueda en la configuración del navegador" + }, + "options_about": { + "message": "Acerca de" + }, + "options_about_libs": { + "message": "Bibliotecas utilizadas" + }, + "options_about_title": { + "message": "Extensión de navegador AdGuard" + }, + "options_about_update_available": { + "message": "La versión %version% está disponible. Se descargará e instalará automáticamente." + }, + "options_about_version": { + "message": "Versión" + }, + "options_acknowledgment": { + "message": "Agradecimientos" + }, + "options_add_custom_filter": { + "message": "Añadir filtro personalizado" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Añadir" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Revisando tu filtro..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "La URL devolvió una página web en lugar de una lista de filtros. Por favor, proporcione un enlace directo al archivo de filtro." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Por favor, inténtalo de nuevo o contacta con el soporte" + }, + "options_add_custom_filter_modal_error_title": { + "message": "No se pudo agregar el filtro personalizado" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nombre del filtro:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Confiable" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Los filtros de confianza pueden utilizar potentes modificadores de reglas: asegúrate de utilizar un filtro de desarrolladores de confianza." + }, + "options_add_custom_filter_modal_title": { + "message": "Añadir personalizado" + }, + "options_all_limits_exceeded_warning": { + "message": "Has alcanzado el límite de reglas incorporadas activas. Tu navegador ha modificado la lista de filtros incorporados activos. El número de filtros activados ha cambiado de %expected% a %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Has alcanzado el límite de reglas integradas activas de tu navegador. Tu navegador ha reducido la lista de filtros integrados activos de %expected% a %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tu navegador restringe \u003Cexternal-link>algunos tipos de reglas\u003C/external-link>. Para aplicar todas las reglas, habilita \u003Cb>permitir userscripts\u003C/b> en la \u003Csettings-link>configuración de extensiones\u003C/settings-link> de tu navegador" + }, + "options_allowlist": { + "message": "Lista de permitido" + }, + "options_allowlist_alert_invert": { + "message": "La lista de permitidos está invertida. Los anuncios solo se bloquean en los sitios web añadidos a ella." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Dejar de invertir\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard no bloquea anuncios ni rastreadores en los sitios web de la lista" + }, + "options_allowlist_invalid_entries": { + "message": "Para guardar, conserva solo los dominios o URL. Estos necesitan corrección: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertir lista de permitido" + }, + "options_allowlist_invert_desc": { + "message": "Bloquea anuncios y rastreadores solo en sitios web permitidos" + }, + "options_allowlist_leave_subtitle": { + "message": "Se perderán tus cambios en la lista de permitido" + }, + "options_allowlist_menu": { + "message": "Acciones de la lista de permitidos" + }, + "options_anonymized_usage_data_description": { + "message": "Envía estadísticas anónimas sobre el uso de la extensión a AdGuard. \u003Cbutton>Más información\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Entiendo" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Estos datos incluyen:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nombres de los botones que haces clic" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nombres de las pantallas con las que interactúas" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificadores de sesión" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Estos datos son anónimos y solo se utilizan internamente. Nunca lo compartimos con terceros" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Necesitamos esta información para analizar y mejorar la funcionalidad de AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Datos de uso de la extensión" + }, + "options_anonymized_usage_data_title": { + "message": "Enviar datos anónimos de uso de la extensión" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Este filtro personalizado ya ha sido añadido" + }, + "options_antibanner_custom_group": { + "message": "Personalizado" + }, + "options_antibanner_custom_group_description": { + "message": "Te permite agregar filtros desde un archivo o una URL" + }, + "options_antibanner_rules_count": { + "message": "Reglas: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Actualizado: %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloquear anuncios de búsqueda y autopromoción de sitios web" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloquea anuncios en los resultados de búsqueda y la autopromoción de sitios web. \u003Ca>Más información\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Para bloquear estas cookies, configura su duración en 0" + }, + "options_block_known_trackers_description": { + "message": "Bloquea los rastreadores y analytics mediante el filtro AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Bloquear rastreadores" + }, + "options_check_update_progress": { + "message": "Comprobando..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Borrar" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Todas las estadísticas sobre el uso de datos se eliminarán permanentemente" + }, + "options_clear_stats_confirm_modal_title": { + "message": "¿Borrar estadísticas?" + }, + "options_clipboard_permission_warning": { + "message": "Para copiar y pegar reglas, permite que AdGuard acceda al portapapeles. \u003Ca>Permitir\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envía estadísticas anónimas sobre el uso del filtrado de anuncios a AdGuard. \u003Ca>Más información\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ayuda a desarrollar los filtros de AdGuard" + }, + "options_coming_soon": { + "message": "Próximamente" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancelar" + }, + "options_copyright": { + "message": "Todos los derechos reservados." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para usar filtros personalizados, habilita \u003Cb>permitir userscripts\u003C/b> en la \u003Csettings-link>configuración de extensiones\u003C/settings-link> de tu navegador" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para utilizar filtros personalizados, activa el \u003Cb>Modo de desarrollador\u003C/b> en la \u003Csettings-link>configuración de la extensión\u003C/settings-link> de tu navegador" + }, + "options_desktop_app_promo_button_linux": { + "message": "Obtener AdGuard para Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtener AdGuard para Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtener AdGuard para Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicaciones como Spotify, Discord o Zoom aún pueden mostrar anuncios y rastrear tu actividad" + }, + "options_desktop_app_promo_subdescription": { + "message": "Nuestra aplicación de escritorio puede protegerte de ellos" + }, + "options_desktop_app_promo_title": { + "message": "La extensión protege únicamente el navegador" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tu navegador restringe \u003Cexternal-link>algunos tipos de reglas\u003C/external-link>. Para aplicar todas las reglas, habilita el \u003Cb>Modo desarrollador\u003C/b> en la \u003Csettings-link>configuración de la extensión\u003C/settings-link> de tu navegador" + }, + "options_disable_webrtc_desc": { + "message": "Bloquea WebRTC que puede filtrar tu dirección IP real incluso si usas un proxy o VPN. Algunos mensajeros, plataformas de transmisión o juegos pueden dejar de funcionar correctamente" + }, + "options_disable_webrtc_title": { + "message": "Bloquear WebRTC" + }, + "options_discuss": { + "message": "Debatir sobre AdGuard" + }, + "options_do_you_like_question": { + "message": "¿Te gusta AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Salir del modo ventana" + }, + "options_editor_indicator_saved": { + "message": "Guardado" + }, + "options_editor_indicator_saving": { + "message": "Guardando..." + }, + "options_editor_leave_cancel": { + "message": "Volver a la edición" + }, + "options_editor_leave_confirm": { + "message": "Sí, salir" + }, + "options_editor_leave_title": { + "message": "¿Salir sin guardar?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Abrir editor en una ventana nueva" + }, + "options_editor_save": { + "message": "Guardar" + }, + "options_editor_save_error": { + "message": "Fallo al guardar los cambios. Inténtalo de nuevo o contacta con soporte" + }, + "options_empty_custom_filter": { + "message": "Todavía no tienes filtros personalizados" + }, + "options_enable_autodetect_filter": { + "message": "Habilitar automáticamente los filtros más adecuados" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecta el idioma del sitio web y activa los filtros adecuados" + }, + "options_export_settings": { + "message": "Exportar configuración" + }, + "options_filters": { + "message": "Filtros" + }, + "options_filters_annoyances_consent_description": { + "message": "Estás a punto de habilitar uno o más filtros de molestias. Bloquean elementos que no están relacionados con el contenido del sitio web o que están relacionados pero son molestos para tu experiencia de usuario. Los propietarios de los sitios web pueden considerar estos elementos obligatorios: si los bloqueas, podrías estar infringiendo sus términos; es posible que algunas funcionalidades de los sitios web no estén disponibles o no funcionen correctamente. Entiendes y aceptas que eres el único responsable de cumplir con los términos de uso de los sitios web que visitas y que AdGuard no es responsable de que cumplas con los términos de uso de los sitios web que visitas usando nuestros productos." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Habilitar" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Página de inicio" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Para obtener detalles sobre lo que bloquean los filtros de elementos molestos de AdGuard, consulta la \u003Ca>política de filtros\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "¿Habilitar estos filtros?" + }, + "options_filters_annoyances_consent_title": { + "message": "Por favor, lee atentamente antes de habilitar los filtros de elementos molestos" + }, + "options_filters_back_button": { + "message": "Regresar" + }, + "options_filters_empty_title": { + "message": "No se ha encontrado nada" + }, + "options_filters_enabled": { + "message": "Habilitado:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% y %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% y %more% más" + }, + "options_filters_enabled_per_group": { + "message": "Activado: %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Ir a la página de inicio" + }, + "options_filters_filter_tags": { + "message": "Tags de filtro" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Elegiste confiar en este filtro." + }, + "options_filters_filter_updated": { + "message": "actualizado:" + }, + "options_filters_filter_version": { + "message": "versión:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Reglas totales: %num%" + }, + "options_filters_last_checked": { + "message": "Última comprobación: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Todos los filtros" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Deshabilitado" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Habilitado" + }, + "options_filters_no_enabled": { + "message": "No hay filtros habilitados" + }, + "options_filters_of_group": { + "message": "Filtros del grupo \"%groupName%\"" + }, + "options_filters_search": { + "message": "Buscar" + }, + "options_filters_search_filter": { + "message": "Buscar filtro" + }, + "options_first_party_block_cookies_warning": { + "message": "Si bloqueas estas cookies, algunos sitios web pueden dejar de funcionar" + }, + "options_first_party_desc": { + "message": "Evita que los sitios web recuerden tus datos, como tus credenciales de inicio de sesión y preferencias de idioma, limitando el tiempo de vida de las cookies primarias" + }, + "options_first_party_title": { + "message": "Eliminar las cookies de origen (no recomendado)" + }, + "options_general_settings": { + "message": "General" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Impide que terceros sepan qué sitio web estás visitando." + }, + "options_hide_referrer_title": { + "message": "Ocultar Referrer a terceros" + }, + "options_hide_search_queries_desc": { + "message": "Oculta tus búsquedas en los sitios web visitados a través de los resultados de los motores de búsqueda" + }, + "options_hide_search_queries_title": { + "message": "Ocultar consultas de búsqueda" + }, + "options_import_configuration_applying_subtitle": { + "message": "Sustituindo la configuración actual por la importada. El filtrado se desactiva durante la importación" + }, + "options_import_configuration_applying_title": { + "message": "Importando..." + }, + "options_import_configuration_confirm_button": { + "message": "Importar" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Las configuraciones importadas reemplazarán las actuales. Otras configuraciones no se verán afectadas" + }, + "options_import_configuration_confirm_title": { + "message": "Importar configuración" + }, + "options_import_configuration_error_button": { + "message": "Cerrar" + }, + "options_import_configuration_error_subtitle": { + "message": "Por favor, revisa el enlace de importación y vuelve a intentarlo. Si no ayuda, comunícate con el soporte" + }, + "options_import_configuration_error_title": { + "message": "Error al importar la configuración" + }, + "options_import_configuration_success_button": { + "message": "Cerrar" + }, + "options_import_configuration_success_subtitle": { + "message": "La configuración se ha importado correctamente" + }, + "options_import_configuration_success_title": { + "message": "Todo listo" + }, + "options_import_settings": { + "message": "Importar configuración" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertir" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Los anuncios y rastreadores solo se bloquearán en sitios web de la lista de permitidos" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "¿Invertir la lista de permitidos?" + }, + "options_leave_feedback": { + "message": "Dejar comentario" + }, + "options_lifetime_minutes": { + "message": "Duración, minutos" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Has alcanzado el límite de reglas regex de usuario agregadas. %maximum% de %current% reglas regex están habilitadas." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Has alcanzado el límite de reglas regex agregadas por el usuario. %maximum% de %current% reglas están habilitadas. Para agregar nuevas reglas regex, quita algunas existentes" + }, + "options_limits_warning_dynamic_rules": { + "message": "Has alcanzado el límite de reglas añadidas por el usuario. %maximum% de %current% reglas están habilitadas." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Has alcanzado el límite de reglas agregadas por el usuario. %maximum% de %current% reglas están habilitadas. Para agregar nuevas reglas, quita algunas existentes" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Has alcanzado el límite de reglas no seguras agregadas por el usuario. %maximum% de %current% reglas inseguras están habilitadas." + }, + "options_limits_warning_static_filters": { + "message": "Has alcanzado el límite de filtros integrados activos. %maximum% de %current% filtros están habilitados. Para habilitar nuevas reglas, deshabilita algunos filtros integrados." + }, + "options_limits_warning_static_filters_browser": { + "message": "Has alcanzado el límite de filtros incorporados activos de tu navegador. %maximum% de %current% filtros están activados. Para activar nuevos filtros, desactive algunos de los incorporados" + }, + "options_limits_warning_static_regex_rules": { + "message": "Has alcanzado el límite de reglas regex incorporadas activas. %maximum% de %current% reglas regex están habilitadas. Para habilitar nuevas reglas, deshabilita algunos filtros incorporados." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Has alcanzado el límite de reglas de expresiones regulares integradas activas. Para activar nuevas reglas, desactiva algunos filtros integrados" + }, + "options_limits_warning_static_rules": { + "message": "Has alcanzado el límite de reglas incorporadas activas. %maximum% de %current% reglas están habilitados. Para habilitar nuevas reglas, deshabilita algunos filtros incorporados." + }, + "options_limits_warning_static_rules_browser": { + "message": "Has alcanzado el límite de reglas integradas activas de tu navegador. Para activar nuevas reglas, desactiva algunos filtros incorporados" + }, + "options_loader_applying_changes": { + "message": "Aplicando cambios..." + }, + "options_miscellaneous_settings": { + "message": "Configuración adicional" + }, + "options_modified_first_party_cookie": { + "message": "Cookie del dominio modificada" + }, + "options_modified_third_party_cookie": { + "message": "Cookie de tercero modificada" + }, + "options_nav_better_than_extension": { + "message": "¿Por qué la aplicación AdGuard es mejor que la extensión?" + }, + "options_nav_compare": { + "message": "Comparar" + }, + "options_navigation": { + "message": "Navegación" + }, + "options_open_changelog": { + "message": "Registro de cambios" + }, + "options_open_log": { + "message": "Abrir registro de filtrado" + }, + "options_popup_call_to_action": { + "message": "Ingresa una URL válida o la ruta del archivo de filtro en la casilla de arriba." + }, + "options_popup_check_false_description": { + "message": "Error al añadir tu filtro personalizado." + }, + "options_popup_check_false_title": { + "message": "Error" + }, + "options_popup_checking_filter": { + "message": "Revisando tu filtro" + }, + "options_popup_description": { + "message": "Estarás suscrito a ese filtro." + }, + "options_popup_filter_description": { + "message": "Descripción:" + }, + "options_popup_filter_homepage": { + "message": "Página de inicio:" + }, + "options_popup_filter_rules_count": { + "message": "Número de reglas:" + }, + "options_popup_filter_title": { + "message": "Título:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versión:" + }, + "options_popup_import_error_file_description": { + "message": "Se ha producido un error." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Para importar este archivo de configuración, permite que AdGuard cambie tu configuración relacionada con la privacidad." + }, + "options_popup_import_error_title": { + "message": "Error al importar la configuración" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "La extensión del archivo debe ser %extension%" + }, + "options_popup_import_success_title": { + "message": "Configuración importada" + }, + "options_popup_next_button": { + "message": "Siguiente" + }, + "options_popup_subscribe_button": { + "message": "Suscribirse" + }, + "options_popup_title_placeholder": { + "message": "Ingresa el nombre del filtro" + }, + "options_popup_trusted_filter_description": { + "message": "Los filtros de confianza pueden utilizar potentes modificadores de reglas de filtrado que pueden ser peligrosos en las manos equivocadas. No marques esta casilla a menos que confíes plenamente en ella." + }, + "options_popup_trusted_filter_title": { + "message": "Confiable" + }, + "options_popup_try_again_button": { + "message": "Volver a intentar" + }, + "options_popup_update_error": { + "message": "Error al obtener actualizaciones. Por favor, inténtelo de nuevo más tarde." + }, + "options_popup_update_filter": { + "message": "fue actualizado." + }, + "options_popup_update_filters": { + "message": "fueron actualizados." + }, + "options_popup_update_not_found": { + "message": "Tus filtros están actualizados" + }, + "options_popup_update_title_error": { + "message": "Error al actualizar los filtros" + }, + "options_popup_updating_filters": { + "message": "Actualizando filtros..." + }, + "options_popup_url_placeholder": { + "message": "Ingresa una URL o ruta" + }, + "options_popup_url_title": { + "message": "Nueva suscripción a filtro" + }, + "options_popup_version_update_changelog_text": { + "message": "Novedades en esta versión" + }, + "options_popup_version_update_description_major": { + "message": "Esta es una actualización mayor que trae nuevas características y mejoras." + }, + "options_popup_version_update_description_minor": { + "message": "Esta versión trae mejoras y correcciones de errores." + }, + "options_popup_version_update_disable_notification": { + "message": "Deshabilitar notificaciones" + }, + "options_popup_version_update_offer": { + "message": "¿Sabías que las capacidades de AdGuard no están limitadas a este navegador?" + }, + "options_popup_version_update_offer_button_text": { + "message": "MÁS INFORMACIÓN" + }, + "options_popup_version_update_title_text": { + "message": "La extensión AdGuard ha sido actualizada a la versión %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Hace que WebRTC utilice una política de direcciones IP más estricta para ayudar a mantener oculta tu dirección IP real cuando usas un proxy o una VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Evita fugas de direcciones IP a través de WebRTC" + }, + "options_privacy": { + "message": "Protección contra rastreo" + }, + "options_privacy_desc": { + "message": "Protege tu actividad en Internet y tus datos personales de los rastreadores web" + }, + "options_privacy_policy": { + "message": "Política de privacidad" + }, + "options_privacy_title": { + "message": "Protección contra rastreo" + }, + "options_rate_us_cta": { + "message": "Califícanos" + }, + "options_remove_client_data_desc": { + "message": "Bloquea Google Chrome para que no envíe información sobre su versión y modificaciones a los dominios de Google." + }, + "options_remove_client_data_title": { + "message": "Eliminar encabezado X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Eliminar" + }, + "options_remove_filter_confirm_modal_title": { + "message": "¿Eliminar este filtro?" + }, + "options_report_bug": { + "message": "Informar de un error" + }, + "options_reset_settings": { + "message": "Restablecer configuración" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Restablecer" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Toda la configuración se reiniciará a sus valores predeterminados" + }, + "options_reset_settings_confirm_modal_title": { + "message": "¿Restablecer configuración?" + }, + "options_reset_settings_done": { + "message": "La configuración se ha restablecido" + }, + "options_reset_settings_error": { + "message": "Error al restablecer la configuración" + }, + "options_reset_stats": { + "message": "Borrar estadísticas" + }, + "options_reset_stats_done": { + "message": "Las estadísticas se han restablecido" + }, + "options_rule_limits": { + "message": "Límite de reglas" + }, + "options_rule_limits_description": { + "message": "Chrome limita el número de reglas que pueden aplicarse." + }, + "options_rule_limits_dynamic": { + "message": "Reglas dinámicas" + }, + "options_rule_limits_dynamic_regex": { + "message": "Reglas Regex — incluidas en las reglas añadidas por el usuario" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Reglas dinámicas no seguras (utilizadas para algunos modificadores avanzados, como $$redirect o $$cookie) — incluido en las reglas añadidas por el usuario" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Reglas agregadas por el usuario, como \u003Cuser_rules>reglas de usuario\u003C/user_rules>, \u003Callowlist>sitios web de la lista de permitidos\u003C/allowlist> y \u003Ccustom_filters>filtros personalizados\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Reglas añadidas por el usuario, como \u003Cuser_rules>reglas de usuario\u003C/user_rules> y \u003Callowlist>sitios web permitidos\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Reglas estáticas" + }, + "options_rule_limits_static_rules_all": { + "message": "Reglas de \u003Ca>filtros incorporados\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Reglas de expresiones regulares: incluidas en lo anterior" + }, + "options_rule_limits_static_rulesets": { + "message": "Conjuntos de reglas estáticas" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtros incorporados\u003C/a>, como bloquear elementos molestos o filtros específicos por idioma" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Option 3. Si estás satisfecho con los filtros predeterminados habilitados actualmente, \u003Ca>cierra esta advertencia\u003C/a>." + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Option 3. Si estás satisfecho con el filtro predeterminado habilitado actualmente, \u003Ca>cierra esta advertencia\u003C/a>." + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opción 1. Elimine las extensiones para bloqueo de anuncios innecesarias de tu navegador. Para rehabilitar los filtros mencionados en la sección \"Filtros habilitados antes de la actualización\", haz clic en \u003Ca>rehabilitar filtros\u003C/a>." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opción 2. Instala la aplicación bloqueador de anuncios AdGuard: no tiene restricciones en las reglas de filtrado. \u003Ca>Obtener la aplicación AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Tus posibles acciones" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Se ha superado el límite de reglas integradas activas después de una actualización o al añadir una nueva extensión. Según Manifest V3, tu navegador Chrome reaccionó deshabilitando todos los filtros integrados de la extensión, excepto los predeterminados." + }, + "options_rule_limits_warning_explanation_title": { + "message": "¿Qué sucedió?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtros habilitados antes de la actualización" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtros habilitados ahora" + }, + "options_rule_limits_warning_title": { + "message": "El navegador ha modificado la lista de filtros activos" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Elimina los límites de reglas y obtén protección ampliada que funciona en todos los navegadores" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalar la aplicación de escritorio" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ir a los filtros" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Administrar extensiones" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Las extensiones del navegador comparten el mismo límite de reglas. Eliminar otros bloqueadores de anuncios puede liberar más reglas para la extensión de navegador AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Elimina otros bloqueadores de anuncios" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Activa los filtros que necesites. Los filtros específicos de idioma y de privacidad pueden usar muchas reglas" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Revisar los filtros disponibles" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Esto es lo que puedes hacer" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Límite alcanzado — algunos filtros fueron desactivados" + }, + "options_rule_syntax": { + "message": "Sintaxis de regla" + }, + "options_safebrowsing_enabled": { + "message": "Protección contra phishing y malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Advierte sobre sitios web maliciosos y de phishing mediante el módulo Seguridad de Navegación de AdGuard. \u003Ca>Más información\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 horas" + }, + "options_select_update_period_1h": { + "message": "1 hora" + }, + "options_select_update_period_24h": { + "message": "24 horas" + }, + "options_select_update_period_48h": { + "message": "48 horas" + }, + "options_select_update_period_6h": { + "message": "6 horas" + }, + "options_select_update_period_default": { + "message": "Predeterminado" + }, + "options_select_update_period_disabled": { + "message": "Deshabilitado" + }, + "options_send_not_track_desc": { + "message": "Envia las señales \"\u003Cgpc>Control de privacidad global\u003C/gpc>\" y \"\u003Cdnt>No rastrear\u003C/dnt>\" a los sitios web que estás visitando." + }, + "options_send_not_track_title": { + "message": "Pedir a los sitios web que no me rastreen" + }, + "options_set_update_interval": { + "message": "Actualizar filtros automáticamente" + }, + "options_set_update_interval_desc": { + "message": "Mantiene los filtros actualizados para un bloqueo de anuncios más efectivo" + }, + "options_settings": { + "message": "Configuración de AdGuard" + }, + "options_share_settings": { + "message": "Compartir configuraciones" + }, + "options_show_adguard_full_version_title": { + "message": "Mostrar información sobre la versión completa de AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notificar sobre las actualizaciones de la extensión" + }, + "options_show_blocked_ads_count_title": { + "message": "Mostrar el número de anuncios bloqueados en el icono de la extensión AdGuard" + }, + "options_show_context_menu_title": { + "message": "Añadir el elemento AdGuard al menú contextual del navegador" + }, + "options_site": { + "message": "Sitio web oficial" + }, + "options_skip_to_main_content": { + "message": "Saltar al contenido principal" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Varios" + }, + "options_stealth_tracking_methods_title": { + "message": "Métodos de rastreo" + }, + "options_strip_tracking_params_description": { + "message": "Elimina los parámetros de seguimiento de las URL de las páginas mediante el filtro de seguimiento de URL de AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Eliminar parámetros de seguimiento de las URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parámetros de rastreo eliminados" + }, + "options_theme_selector_dark": { + "message": "Oscuro" + }, + "options_theme_selector_light": { + "message": "Claro" + }, + "options_theme_selector_system": { + "message": "Predeterminado del sistema" + }, + "options_third_party_block_cookies_warning": { + "message": "Si bloqueas estas cookies, es posible que tengas que volver a iniciar sesión en algunos sitios web o enfrentar otros problemas relacionados con las cookies" + }, + "options_third_party_desc": { + "message": "Evita que los anunciantes rastreen tu comportamiento en varias páginas al limitar la vida útil de las cookies de terceros" + }, + "options_third_party_title": { + "message": "Eliminar cookies de terceros" + }, + "options_update_antibanner_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "options_use_optimized_filters": { + "message": "Usar filtros optimizados" + }, + "options_use_optimized_filters_desc": { + "message": "Utiliza versiones más cortas de los filtros con solo las reglas más populares para ahorrar tráfico. Más adecuado para navegadores móviles." + }, + "options_user_rules_clear_search": { + "message": "Borrar búsqueda" + }, + "options_user_rules_create_rule": { + "message": "Crear regla" + }, + "options_user_rules_delete_all": { + "message": "Eliminar todo" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Todas las reglas de usuario se eliminarán de forma permanente" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Eliminar todo?" + }, + "options_user_rules_delete_all_success": { + "message": "Todas las reglas de usuario eliminadas" + }, + "options_user_rules_delete_rule": { + "message": "Eliminar regla" + }, + "options_user_rules_deleted_notification": { + "message": "Regla de usuario eliminada:" + }, + "options_user_rules_description_key": { + "message": "Tus reglas para bloquear y desbloquear anuncios o sitios web completos" + }, + "options_user_rules_edit_rule": { + "message": "Editar regla" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Ir al editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Tus reglas aparecerán aquí después de cerrarlas" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor abierto en otra ventana" + }, + "options_user_rules_empty_placeholder": { + "message": "Todavía no hay reglas" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Resaltando reglas…" + }, + "options_user_rules_import_error": { + "message": "No se pudieron importar las reglas de usuario. Inténtalo de nuevo" + }, + "options_user_rules_import_success": { + "message": "Reglas de usuario importadas con éxito" + }, + "options_user_rules_menu": { + "message": "Acciones de reglas de usuario" + }, + "options_user_rules_no_match": { + "message": "No se ha encontrado nada" + }, + "options_user_rules_search_placeholder": { + "message": "Buscar" + }, + "options_user_rules_switch_to_editor": { + "message": "Cambiar a la vista del editor" + }, + "options_user_rules_switch_to_list": { + "message": "Cambiar a vista de lista" + }, + "options_user_rules_undo": { + "message": "Deshacer" + }, + "options_userfilter": { + "message": "Reglas del usuario" + }, + "options_userfilter_description_key": { + "message": "Puedes añadir tus propias reglas aquí. Esta opción se recomienda para usuarios avanzados familiarizados con HTML/CSS. Lee el \u003Ca>tutorial de reglas de filtro\u003C/a> para aprender a escribir tus propias reglas de filtro." + }, + "options_userfilter_export": { + "message": "Exportar" + }, + "options_userfilter_import": { + "message": "Importar" + }, + "options_userfilter_leave_subtitle": { + "message": "Tus cambios a las reglas se perderán" + }, + "options_userfilter_line_break": { + "message": "Salto de línea" + }, + "options_userfilter_line_break_off": { + "message": "Salto de línea: deshabilitado" + }, + "options_userfilter_line_break_on": { + "message": "Salto de línea: habilitado" + }, + "options_userfilter_subtitle_key": { + "message": "Permite crear tus propias reglas de filtrado" + }, + "popup_abuse_site": { + "message": "Informar de un problema" + }, + "popup_adguard_footer_title": { + "message": "Protege tu dispositivo móvil" + }, + "popup_adguard_for_android": { + "message": "AdGuard para Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard para iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquear anuncios manualmente" + }, + "popup_get_system_wide_protection": { + "message": "Obtén protección para todo el sistema" + }, + "popup_header_cta_link": { + "message": "Cómo mejorar la protección" + }, + "popup_header_update_filters": { + "message": "Buscar actualizaciones de los filtros" + }, + "popup_limits_exceeded_warning": { + "message": "Tu navegador ha modificado la lista de filtros integrados activos" + }, + "popup_open_filtering_log": { + "message": "Abrir registro de filtrado" + }, + "popup_open_settings": { + "message": "Abrir la configuración de AdGuard" + }, + "popup_protection_button": { + "message": "Protección de AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Eliminar reglas del usuario para este sitio web" + }, + "popup_resume_protection_button": { + "message": "Reanudar" + }, + "popup_security_report": { + "message": "Verificar seguridad del sitio web" + }, + "popup_site_exception_information": { + "message": "El filtrado está deshabilitado porque puede interferir con el funcionamiento de este sitio web." + }, + "popup_site_filtering_state_disabled": { + "message": "Protección deshabilitada" + }, + "popup_site_filtering_state_disabling": { + "message": "Deshabilitando protección..." + }, + "popup_site_filtering_state_enabled": { + "message": "Protección habilitada" + }, + "popup_site_filtering_state_enabling": { + "message": "Habilitando protección..." + }, + "popup_site_filtering_state_loading": { + "message": "Procesando..." + }, + "popup_site_filtering_state_paused": { + "message": "Protección pausada" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausando protección..." + }, + "popup_site_filtering_state_resuming": { + "message": "Reanudando protección..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Página segura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "para todos los sitios web" + }, + "popup_statistics_all_categories": { + "message": "Todo" + }, + "popup_statistics_category_advertising": { + "message": "Anuncios" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoría de estadísticas" + }, + "popup_statistics_category_other": { + "message": "Otros" + }, + "popup_statistics_category_social_media": { + "message": "Redes sociales" + }, + "popup_statistics_category_trackers": { + "message": "Rastreadores" + }, + "popup_statistics_months_apr": { + "message": "Abr." + }, + "popup_statistics_months_aug": { + "message": "Ago." + }, + "popup_statistics_months_dec": { + "message": "Dic." + }, + "popup_statistics_months_feb": { + "message": "Feb." + }, + "popup_statistics_months_jan": { + "message": "Ene." + }, + "popup_statistics_months_jul": { + "message": "Jul." + }, + "popup_statistics_months_jun": { + "message": "Jun." + }, + "popup_statistics_months_mar": { + "message": "Mar." + }, + "popup_statistics_months_may": { + "message": "May." + }, + "popup_statistics_months_nov": { + "message": "Nov." + }, + "popup_statistics_months_oct": { + "message": "Oct." + }, + "popup_statistics_months_sep": { + "message": "Sept." + }, + "popup_statistics_time_day": { + "message": "24 horas" + }, + "popup_statistics_time_label": { + "message": "Periodo de tiempo de las estadísticas" + }, + "popup_statistics_time_month": { + "message": "30 días" + }, + "popup_statistics_time_week": { + "message": "7 días" + }, + "popup_statistics_time_year": { + "message": "1 año" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Vie." + }, + "popup_statistics_week_days_mon": { + "message": "Lun." + }, + "popup_statistics_week_days_sat": { + "message": "Sáb." + }, + "popup_statistics_week_days_sun": { + "message": "Dom." + }, + "popup_statistics_week_days_thu": { + "message": "Jue." + }, + "popup_statistics_week_days_tue": { + "message": "Mar." + }, + "popup_statistics_week_days_wed": { + "message": "Mié." + }, + "popup_switch_button": { + "message": "Protección para el sitio web actual" + }, + "popup_tab_actions": { + "message": "Acciones" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloqueado: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloqueado: %num%" + }, + "popup_tab_current_website": { + "message": "Sitio web actual" + }, + "popup_tab_statistics": { + "message": "Estadísticas" + }, + "popup_tabs": { + "message": "Pestañas" + }, + "popup_tooltip_loading": { + "message": "Procesando..." + }, + "popup_tooltip_protection_disabled": { + "message": "Protección deshabilitada" + }, + "popup_tooltip_protection_enabled": { + "message": "Protección habilitada" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Algunas reglas no se aplicaron" + }, + "popup_tooltip_update_available": { + "message": "Actualización disponible" + }, + "post_install_loading": { + "message": "Cargando extensión..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Se ha excedido el límite de reglas en la extensión del navegador AdGuard. Revisa tus filtros y desactiva los que no necesites" + }, + "text_collapser_hide_default": { + "message": "Ocultar texto completo" + }, + "text_collapser_show_default": { + "message": "Mostrar texto completo" + }, + "update_available_desc": { + "message": "Para bloquear anuncios de forma eficaz, mantén tu extensión y filtros actualizados." + }, + "update_available_title": { + "message": "Actualizaciones disponibles" + }, + "update_available_update_btn": { + "message": "Actualizar" + }, + "update_check": { + "message": "Buscar actualizaciones" + }, + "update_checking_in_progress": { + "message": "Buscando actualizaciones..." + }, + "update_failed_text": { + "message": "Error al completar la actualización" + }, + "update_failed_try_again_btn": { + "message": "Volver a intentar" + }, + "update_installing_in_progress_desc": { + "message": "La extensión se reiniciará después de actualizar." + }, + "update_installing_in_progress_title": { + "message": "Actualizando extensión y filtros..." + }, + "update_not_needed": { + "message": "Tu extensión y tus filtros están actualizados" + }, + "update_success_text": { + "message": "Extensión y filtros actualizados" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/et/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/et/messages.json new file mode 100644 index 0000000..afc92e0 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/et/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% on automaatselt aktiveeritud" + }, + "alert_popup_filter_enabled_title": { + "message": "Toimus automaatne filtri aktiveerimine" + }, + "background_tab_title": { + "message": "Tagaplaani kaart" + }, + "blocking_pages_advanced_button": { + "message": "Edasijõudnule" + }, + "blocking_pages_btn_go_back": { + "message": "Mine tagasi" + }, + "blocking_pages_btn_proceed": { + "message": "Jätka ikkagi" + }, + "blocking_pages_malware": { + "message": "Veebileht \u003Cstrong>%host%\u003C/strong> on meile teadaolevalt pahavara levitav veebileht. Keelasime sellele ligipääsu vastavalt AdGuardi seadistusele." + }, + "blocking_pages_more_info_button": { + "message": "Rohkem infot" + }, + "blocking_pages_page_title": { + "message": "Ligipääs on keelatud" + }, + "blocking_pages_phishing": { + "message": "Veebileht \u003Cstrong>%host%\u003C/strong> on meile teadaolevalt õngevõtmise veebileht. Keelasime sellele ligipääsu vastavalt AdGuardi seadistusele." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard on takistanud selle lehe laadimist järgmise filtrireegli tõttu" + }, + "blocking_pages_rule_header_title": { + "message": "Blokeeritud AdGuardi poolt" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard on sellele lehele ligipääsu blokeerinud" + }, + "clear_button_title": { + "message": "Eemalda" + }, + "close_button_title": { + "message": "Sulge" + }, + "context_block_site_ads": { + "message": "Blokeeri reklaame käsitsi" + }, + "context_complaint_website": { + "message": "Teatage probleemist" + }, + "context_disable_protection": { + "message": "Peata AdGuardi kaitse" + }, + "context_enable_protection": { + "message": "Lülita AdGuardi kaitse sisse" + }, + "context_open_log": { + "message": "Filtreerimise logi" + }, + "context_open_settings": { + "message": "AdGuardi seaded" + }, + "context_security_report": { + "message": "Kontrolli veebilehe turvalisust" + }, + "context_site_exception": { + "message": "See veebileht on erandites" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ei saa seda lehte filtreerida" + }, + "context_site_filtering_off": { + "message": "Lülita sel veebilehel filtreerimise logi välja" + }, + "context_site_filtering_on": { + "message": "Lülita sel veebilehel filtreerimise logi sisse" + }, + "context_site_protection_disabled": { + "message": "AdGuardi kaitse on peatatud" + }, + "context_update_antibanner_filters": { + "message": "Käivita filtrite uuendamine" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Parim reklaamiblokeerija, mis blokeerib reklaame ja hüpikaknaid kõikjal, sealhulgas Facebookis ja YouTubes." + }, + "filtering_clear_log_events": { + "message": "Tühjenda logi" + }, + "filtering_log_actions_menu": { + "message": "Filtreerimislogi toimingud" + }, + "filtering_log_assumed_rule_description": { + "message": "See on eeldatav reegel. Täiendava teabe saamiseks vaata meie \u003Ca>teadmistebaasi\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP päringu meetod" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP staatuse kood" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Kolmanda osapoole päring" + }, + "filtering_log_details_modal_back_button": { + "message": "Tagasi päringu juurde" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Imeline" + }, + "filtering_log_details_modal_try_again": { + "message": "Proovi uuesti" + }, + "filtering_log_filter_allowed": { + "message": "Lubatud" + }, + "filtering_log_filter_blocked": { + "message": "Blokeeritud" + }, + "filtering_log_filter_modified": { + "message": "Muudetud" + }, + "filtering_log_filter_regular": { + "message": "Tavaline" + }, + "filtering_log_filter_user_rules": { + "message": "Kasutaja reeglid" + }, + "filtering_log_hide_referrer": { + "message": "Viitaja peideti kolmandate osapoolte eest" + }, + "filtering_log_hide_search_queries": { + "message": "Otsingupäring peideti" + }, + "filtering_log_in_allowlist": { + "message": "Sait on lubatud" + }, + "filtering_log_modified_rules": { + "message": "Muudetud reegleid: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Jah, jäta alles" + }, + "filtering_log_preserve_log_modal_description": { + "message": "See valik võib märkimisväärselt suurendada mälukasutust" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Jäta logi alles?" + }, + "filtering_log_preserve_log_off": { + "message": "Ära salvesta logi" + }, + "filtering_log_preserve_log_on": { + "message": "Jäta logi alles" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ära näita enam" + }, + "filtering_log_privacy_applied_rules": { + "message": "Jälgimiskaitse rakendatud" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data päis eemaldati" + }, + "filtering_log_search_string": { + "message": "Otsida" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Otsi vahelehtedelt" + }, + "filtering_log_send_not_track": { + "message": "Saadeti Ära jälita päis" + }, + "filtering_log_status_allowed": { + "message": "Lubatud" + }, + "filtering_log_status_blocked": { + "message": "Blokeeritud" + }, + "filtering_log_status_modified": { + "message": "Muudetud" + }, + "filtering_log_status_processed": { + "message": "Töödeldud" + }, + "filtering_log_stealth_rules": { + "message": "Jälgimiskaitse reeglid: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Päringu päritolu" + }, + "filtering_log_tag_request_status": { + "message": "Filtreerimise staatus" + }, + "filtering_log_tag_request_type": { + "message": "Päringu tüüp" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Ainult lubatud või blokeerimata päringud" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokeeritud taotlused" + }, + "filtering_log_tag_tooltip_css": { + "message": "Laadilehed" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Esimese osapoole päringud" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumendid ja alamdomeenid" + }, + "filtering_log_tag_tooltip_img": { + "message": "Pildid" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skriptid" + }, + "filtering_log_tag_tooltip_media": { + "message": "Meedia" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Ainult muudetud päringud" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fondid, pingid, WebRTC, WebSocket jms..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Ainult ilma filtreerimiseta töödeldud päringud" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Kolmanda-osapoole päringud" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Ainult päringud, mida on muutnud kasutaja reeglid" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests ja väljavõtte taotlused" + }, + "filtering_log_title": { + "message": "Filtreerimise logi" + }, + "filtering_menu_open_filters": { + "message": "Kohanda" + }, + "filtering_modal_add_rule": { + "message": "LISA" + }, + "filtering_modal_allow_title": { + "message": "Lisa lubamisreegel" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Rakendatud reegel | Rakendatud reeglid" + }, + "filtering_modal_apply_domains": { + "message": "Kasuta kõikidel veebilehtedel" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Eeldatav reegel: | Eeldatavad reeglid:" + }, + "filtering_modal_block": { + "message": "Blokeeri" + }, + "filtering_modal_block_again": { + "message": "Blokeeri uuesti" + }, + "filtering_modal_block_title": { + "message": "Lisa blokeerimisreegel" + }, + "filtering_modal_converted_to": { + "message": "Konventeeriti:" + }, + "filtering_modal_cookie": { + "message": "Küpsis:" + }, + "filtering_modal_copied": { + "message": "Kopeeritud" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopeeri lõikelauale" + }, + "filtering_modal_declarative_rule": { + "message": "DNR reegel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Lisa erand" + }, + "filtering_modal_filter": { + "message": "Filtreeri" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtreerimise staatus" + }, + "filtering_modal_hide_full_element": { + "message": "Peida täispikk element" + }, + "filtering_modal_hide_full_rule": { + "message": "Peida täispikk reegel" + }, + "filtering_modal_hide_full_url": { + "message": "Peida täispikk URL" + }, + "filtering_modal_important": { + "message": "Anna reeglile kõrgem prioriteet" + }, + "filtering_modal_info_title": { + "message": "Päringu detailid" + }, + "filtering_modal_open_in_new_tab": { + "message": "Ava uuel vahelehel" + }, + "filtering_modal_options_desc": { + "message": "Valikud" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Originaal reegel: | Originaalsed reeglid:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Mida tuleks lubada" + }, + "filtering_modal_patterns_desc_block": { + "message": "Mida tuleks blokeerida" + }, + "filtering_modal_preview_request_button": { + "message": "Eelvaade" + }, + "filtering_modal_preview_title": { + "message": "Eelvaade" + }, + "filtering_modal_privacy": { + "message": "Jälgimiskaitse" + }, + "filtering_modal_remove_allowlist": { + "message": "Eemalda valgest listist" + }, + "filtering_modal_remove_param": { + "message": "Eemalda päringu parameetrid" + }, + "filtering_modal_remove_user": { + "message": "Kustuta reegel" + }, + "filtering_modal_rule": { + "message": "Reegel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Reegel" + }, + "filtering_modal_rules": { + "message": "Reeglid:" + }, + "filtering_modal_show_full_element": { + "message": "Kuva täispikk element" + }, + "filtering_modal_show_full_rule": { + "message": "Kuva täispikk reegel" + }, + "filtering_modal_show_full_url": { + "message": "Kuva täispikk URL" + }, + "filtering_modal_source": { + "message": "Allikas" + }, + "filtering_modal_status_text_desc": { + "message": "Staatus" + }, + "filtering_modal_status_text_error": { + "message": "Eelvaate laadimine ebaõnnestus. Palun proovi uuesti" + }, + "filtering_modal_status_text_loading": { + "message": "Laadimine..." + }, + "filtering_modal_third_party": { + "message": "Rakenda ainult kolmanda osapoole päringutel" + }, + "filtering_modal_type": { + "message": "Tüüp" + }, + "filtering_modal_unblock": { + "message": "Eemalda blokeering" + }, + "filtering_refresh_tab_short": { + "message": "Värskenda" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Värskenda lehte" + }, + "filtering_table_action": { + "message": "Tegevus" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Midagi ei leitud. \u003Creset>Keela filtrid\u003C/reset> või \u003Crefresh>laadi leht uuesti\u003C/refresh>, et vaadata logikirjeid" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Ava üksikasjad" + }, + "filtering_table_rule": { + "message": "Filtreerimise reegel" + }, + "filtering_table_source": { + "message": "Allikas" + }, + "filtering_table_status": { + "message": "Staatus" + }, + "filtering_table_type": { + "message": "Tüüp" + }, + "filtering_type_all": { + "message": "Kõik" + }, + "filtering_type_other": { + "message": "Muu" + }, + "filters_download_loading": { + "message": "Palun oota, kuni toimub filtrite andmebaaside laadimine..." + }, + "filters_download_title": { + "message": "Filtrite andmebaasi laadimine..." + }, + "fullscreen_user_rules_title": { + "message": "Kasutaja reeglid" + }, + "group_description_adblocking": { + "message": "Siin saad seadistada reklaami blokeerimisel kasutatavaid filtreid. Liiga paljude filtrite korraga kasutamine võib jõudlusele negatiivselt mõjuda" + }, + "group_description_annoyances": { + "message": "Eemalda hüpikreklaamid ja teised tüütud teavitused nagu küpsiste bännerid" + }, + "group_description_custom": { + "message": "Loo erinevaid filtreid, mis aitavad veebisisu veelgi paremini filtreerida." + }, + "group_description_lang": { + "message": "Ära piira end — blokeeri reklaame veebisaitidel igasugustes keeltes" + }, + "group_description_miscellaneous": { + "message": "Erinevad valikud, mis võimaldavad AdGuardi veelgi rohkem seadistada" + }, + "group_description_security": { + "message": "Kaitse end pahavara, andmepüügist ja teistest veebiohtudest." + }, + "group_description_social": { + "message": "Peida soovimatuid \"Like\"/\"Share\" nuppe ja teisi sotsiaalmeedia vidinaid" + }, + "group_description_stealth": { + "message": "Kaitse oma identiteeti ja delikaatseid isikuandmeid tuhandete veebijälitajate eest, blokeerides kõik teadaolevad populaarsed jälgimismeetodid" + }, + "name": { + "message": "AdGuardi reklaamiblokeerija" + }, + "opera_search_permission_dont_show": { + "message": "Ära kuva enam" + }, + "opera_search_permission_go_to_settings": { + "message": "Mine seadetesse" + }, + "opera_search_permission_warning": { + "message": "Otsingureklaamide blokeerimiseks lubage juurdepääs otsingutulemuste lehele brauseri seadetes" + }, + "options_about": { + "message": "Teave" + }, + "options_about_libs": { + "message": "Kasutatud raamatukogud" + }, + "options_about_title": { + "message": "AdGuard'i brauseri laiendus" + }, + "options_about_update_available": { + "message": "Versioon %version% on saadaval. See laaditakse alla ja installitakse automaatselt." + }, + "options_about_version": { + "message": "Versioon" + }, + "options_acknowledgment": { + "message": "Tänuavaldused" + }, + "options_add_custom_filter": { + "message": "Lisa kohandatud filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Lisa" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Filtri kontrollimine..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL tagastas veebilehe filterloendi asemel. Palun esitage otsene link filtri failile." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Palun proovige uuesti või võtke ühendust toega" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Kohandatud filtri lisamine ebaõnnestus" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filtri nimi:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Usaldatud" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Mõned filtering reeglid võivad oluliselt muuta teie sirvimiskogemust ja ohustada teie privaatsust. Veenduge, et kasutate ainult arendajate filtreid, kellele te usaldate" + }, + "options_add_custom_filter_modal_title": { + "message": "Lisa kohandatud filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Te olete jõudnud aktiivsete sisseehitatud reeglite piirini. Brauser on muutnud aktiivsete sisseehitatud filtrite nimekirja. Filtrite arv on muutunud %expected% -lt %current%-le." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Olete jõudnud oma brauseri aktiivsete sisseehitatud reeglite piirini. Teie brauser on vähendanud aktiivsete sisseehitatud filtrite nimekirja %expected%-lt %current%-le" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Teie brauser piirab \u003Cexternal-link>Teatud tüüpi reeglid\u003C/external-link>. Kõigi reeglite rakendamiseks lubage \u003Cb>Luba kasutajaskriptid\u003C/b> brauseris \u003Csettings-link>Laienduse seaded\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Valge list" + }, + "options_allowlist_alert_invert": { + "message": "Lubamisloend on ümber pööratud. Reklaamid blokeeritakse ainult veebisaitidel, mis on sellesse lisatud." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Lõpeta ümberpööramine\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ei blokeeri reklaame ega jälgijaid loendis olevatel veebisaitidel" + }, + "options_allowlist_invalid_entries": { + "message": "Salvestamiseks jäta alles ainult domeenid või URL-id. Need vajavad parandamist: %entries%" + }, + "options_allowlist_invert": { + "message": "Pöördjärjesta valge list" + }, + "options_allowlist_invert_desc": { + "message": "Blokeerib reklaamid ja jälgijad ainult lubatud veebilehtedel" + }, + "options_allowlist_leave_subtitle": { + "message": "Teie muudatused lubatud nimekirjas kaovad" + }, + "options_allowlist_menu": { + "message": "Lubamisloendi toimingud" + }, + "options_anonymized_usage_data_description": { + "message": "Saadab AdGuardile anonüümset statistikat laienduse kasutamise kohta. \u003Cbutton>Lisateave\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Selge" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Need andmed hõlmavad:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nuppude nimed, millele klõpsate" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Ekraanide nimed, millega suhtlete" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Seansi identifikaatorid" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Need andmed on anonüümsed ja neid kasutatakse ainult ettevõttesiseselt. Me ei jaga neid kunagi kolmandate osapooltega" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Me vajame seda teavet, et analüüsida ja parandada AdGuardi funktsionaalsust" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Laienduse kasutamise andmed" + }, + "options_anonymized_usage_data_title": { + "message": "Saada anonüümseid laienduse kasutusandmeid" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "See kohandatud filter on juba lisatud" + }, + "options_antibanner_custom_group": { + "message": "Kohandatud" + }, + "options_antibanner_custom_group_description": { + "message": "Võimaldab lisada filtreid failist või URL-ilt" + }, + "options_antibanner_rules_count": { + "message": "Reeglid: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Uuendatud: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokeeri otsingureklaamid ja veebisaitide isereklaam" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokeerib reklaamid otsingutulemustes ja veebisaitide isereklaami. \u003Ca>Lisateave\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Et küpsised blokeerida, seadke eluaeg nulli" + }, + "options_block_known_trackers_description": { + "message": "Blokeerib jälitajad ja veebianalüütika, kasutades AdGuardi Jälgimiskaitse filtrit" + }, + "options_block_known_trackers_title": { + "message": "Blokeeri tuntud jälitajad" + }, + "options_check_update_progress": { + "message": "Kontrollin..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Nulli" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Kõik andmekasutuse statistika kustutatakse jäädavalt" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Nulli statistika?" + }, + "options_clipboard_permission_warning": { + "message": "Reeglite kopeerimiseks ja kleepimiseks luba AdGuardil pääseda juurde lõikepuhvrile. \u003Ca>Luba\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Saadab anonüümseid statistilisi andmeid reklaamifiltrite kasutamise kohta AdGuardile. \u003Ca>Lisateave\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Aita arendada AdGuardi filtreid" + }, + "options_coming_soon": { + "message": "Varsti saadaval" + }, + "options_confirm_modal_cancel_button": { + "message": "Tühista" + }, + "options_copyright": { + "message": "Kõik õigused kaitstud." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Kohandatud filtrite kasutamiseks luba \u003Cb>Luba kasutajaskriptid\u003C/b> oma brauseri \u003Csettings-link>laiendusseadetes\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Kohandatud filtrite kasutamiseks lubage \u003Cb>Arendaja režiim\u003C/b> brauseris \u003Csettings-link>Laienduse seaded\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Hangi AdGuard Linux jaoks" + }, + "options_desktop_app_promo_button_mac": { + "message": "Hangi AdGuard Mac jaoks" + }, + "options_desktop_app_promo_button_windows": { + "message": "Hangi AdGuard Windows jaoks" + }, + "options_desktop_app_promo_description": { + "message": "Rakendused nagu Spotify, Discord või Zoom võivad endiselt näidata reklaame ja jälgida teie tegevust" + }, + "options_desktop_app_promo_subdescription": { + "message": "Meie töölauarakendus saab teid nende eest kaitsta" + }, + "options_desktop_app_promo_title": { + "message": "Laiendus kaitseb ainult brauserit" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Teie brauser piirab \u003Cexternal-link>Teatud tüüpi reeglid\u003C/external-link>. Kõigi reeglite rakendamiseks lubage \u003Cb>Arendaja režiim\u003C/b> brauseris \u003Csettings-link>Laienduse seaded\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokeerib WebRTC, mis võib lekkida teie tegeliku IP-aadressi, isegi kui kasutate proksit või VPN-i. Mõned sõnumsiderakendused, voogedastusplatvormid või mängud võivad lõpetada nõuetekohase töö" + }, + "options_disable_webrtc_title": { + "message": "Blokeeri WebRTC" + }, + "options_discuss": { + "message": "Avalda arvamust" + }, + "options_do_you_like_question": { + "message": "Sulle meeldib AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Sulge redigeerija täisekraani režiim" + }, + "options_editor_indicator_saved": { + "message": "Salvesta" + }, + "options_editor_indicator_saving": { + "message": "Salvestamine..." + }, + "options_editor_leave_cancel": { + "message": "Tagasi redigeerimise juurde" + }, + "options_editor_leave_confirm": { + "message": "Jah, lahku" + }, + "options_editor_leave_title": { + "message": "Kas lahkuda ilma salvestamata?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Ava redigeerija täisekraani režiimis" + }, + "options_editor_save": { + "message": "Salvesta" + }, + "options_editor_save_error": { + "message": "Muudatuste salvestamine ebaõnnestus. Proovi uuesti või võta ühendust toega" + }, + "options_empty_custom_filter": { + "message": "Vabandame, aga sul ei ole hetkel ühtegi kohandatud filtrit" + }, + "options_enable_autodetect_filter": { + "message": "Aktiveeri automaatselt sobivad filtrid" + }, + "options_enable_autodetect_filter_desc": { + "message": "Tuletab veebisaidi keele tuvastab ja aktiveerib sobivad filtrid" + }, + "options_export_settings": { + "message": "Seadete eksportimine" + }, + "options_filters": { + "message": "Filtrid" + }, + "options_filters_annoyances_consent_description": { + "message": "Olete lubamas ühte või mitut tüütuse filtrit. Need blokeerivad elemente, mis ei ole seotud veebisaidi sisuga või on seotud, kuid tüütud ja mõjutavad teie kasutuskogemust. Veebisaitide omanikud võivad neid elemente pidada kohustuslikuks: kui te neid blokeerite, võite rikkuda nende tingimusi; mõned veebisaidi funktsioonid ei pruugi olla kättesaadavad või ei tööta korralikult. Te mõistate ja nõustute, et vastutate täielikult Külastatavate veebisaitide kasutustingimuste täitmise eest ja et AdGuard ei vastuta teie poolt meie toodete kasutamisega külastatud veebisaitide kasutustingimuste täitmise eest." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Lubama" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Koduleht" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Üksikasjade saamiseks selle kohta, mida AdGuardi häirimisfiltrid blokeerivad, vaadake \u003Ca>Filtripoliitikat\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Kas lubada need filtrid?" + }, + "options_filters_annoyances_consent_title": { + "message": "Lugege enne häirivate filtrite lubamist hoolikalt läbi" + }, + "options_filters_back_button": { + "message": "Mine tagasi" + }, + "options_filters_empty_title": { + "message": "Tulemusi ei leitud" + }, + "options_filters_enabled": { + "message": "Sisselülitatud:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% ja %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% ja veel %more%" + }, + "options_filters_enabled_per_group": { + "message": "Kasutuses: %current%/%total%" + }, + "options_filters_filter_link": { + "message": "Mine kodulehele" + }, + "options_filters_filter_tags": { + "message": "Filtreeri sildid" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Otsustasid, et usaldad seda filtrit" + }, + "options_filters_filter_updated": { + "message": "uuendatud:" + }, + "options_filters_filter_version": { + "message": "versioon:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Kokku reegleid: %num%" + }, + "options_filters_last_checked": { + "message": "Viimati kontrollitud: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Kõik filtrid" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Väljalülitatud" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Sisselülitatud" + }, + "options_filters_no_enabled": { + "message": "Filtreid pole sisse lülitatud" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" grupi filtrid" + }, + "options_filters_search": { + "message": "Otsing" + }, + "options_filters_search_filter": { + "message": "Otsingufilter" + }, + "options_first_party_block_cookies_warning": { + "message": "Kui blokeerid need küpsised, võivad mõned veebisaidid lakata töötamast või minna katki" + }, + "options_first_party_desc": { + "message": "Võimaldab piirata esimese osapoole küpsiste eluaega, et veebisaidid ei mäletaks sinu andmeid (nt sisselogimisandmed ja keele-eelistused)" + }, + "options_first_party_title": { + "message": "Kustuta esimese osapoole küpsised (ei ole soovitatav)" + }, + "options_general_settings": { + "message": "Üldine" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Takista kolmandate isikute teadlikkust, milliseid veebilehti külastate." + }, + "options_hide_referrer_title": { + "message": "Peidab kolmandate osapoolte eest Viitaja" + }, + "options_hide_search_queries_desc": { + "message": "Peidab sinu otsingud veebisaitide eest, mis on külastatud otsingumootori tulemustest" + }, + "options_hide_search_queries_title": { + "message": "Peida otsingupäringud" + }, + "options_import_configuration_applying_subtitle": { + "message": "Asendame sinu praegused seaded imporditutega. Filtreerimine on impordi ajal keelatud" + }, + "options_import_configuration_applying_title": { + "message": "Importimine..." + }, + "options_import_configuration_confirm_button": { + "message": "Impordi" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Imporditud seaded asendavad teie praegused seaded. Teised seaded jäävad muutmata" + }, + "options_import_configuration_confirm_title": { + "message": "Impordi seaded" + }, + "options_import_configuration_error_button": { + "message": "Sulge" + }, + "options_import_configuration_error_subtitle": { + "message": "Palun kontrolli impordi linki ja proovi uuesti. Kui see ei aita, võta ühendust toe osakonnaga" + }, + "options_import_configuration_error_title": { + "message": "Seadete importimine nurjus" + }, + "options_import_configuration_success_button": { + "message": "Sulge" + }, + "options_import_configuration_success_subtitle": { + "message": "Seaded imporditi edukalt" + }, + "options_import_configuration_success_title": { + "message": "Tehtud" + }, + "options_import_settings": { + "message": "Seadete importimine" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Pööra" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklaamid ja jälgijad blokeeritakse ainult lubatud loendi veebisaitidel" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Pööra lubatud nimekiri ümber?" + }, + "options_leave_feedback": { + "message": "Anna tagasisidet" + }, + "options_lifetime_minutes": { + "message": "Eluaeg, minutites" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Te olete jõudnud kasutaja poolt lisatud regex-reeglite piirini. %maximum% of %current% regex-reeglit on lubatud." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Olete jõudnud kasutaja lisatud regex-reeglite piirini. %maximum% %current% reeglist on lubatud. Uute regex-reeglite lisamiseks eemaldage mõned olemasolevad" + }, + "options_limits_warning_dynamic_rules": { + "message": "Te olete jõudnud kasutaja poolt lisatud reeglite piirini. %maximum% of %current% reeglit on lubatud." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Olete jõudnud kasutaja lisatud reeglite piirini. %maximum% %current% reeglist on lubatud. Uute reeglite lisamiseks eemaldage mõned olemasolevad" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Olete jõudnud kasutajate lisatud ebaturvaliste reeglite limiidini. %maximum% / %current% ebaturvalised reeglid on lubatud." + }, + "options_limits_warning_static_filters": { + "message": "Te olete jõudnud aktiivsete sisseehitatud filtrite piirini. %maximum% %current% filtrit on lubatud. Uute reeglite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja." + }, + "options_limits_warning_static_filters_browser": { + "message": "Olete jõudnud oma brauseri aktiivsete sisseehitatud filtrite piirini. %maximum% %current% filtritest on lubatud. Uute filtrite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja" + }, + "options_limits_warning_static_regex_rules": { + "message": "Te olete jõudnud aktiivsete sisseehitatud regex-reeglite piirini. %maximum% of %current% regex-reeglit on lubatud. Uute reeglite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Olete jõudnud aktiivsete sisseehitatud regex-reeglite piirini. Uute reeglite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja" + }, + "options_limits_warning_static_rules": { + "message": "Te olete jõudnud aktiivsete sisseehitatud reeglite piirini. %maximum% %current% reeglit on lubatud. Uute reeglite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja." + }, + "options_limits_warning_static_rules_browser": { + "message": "Olete jõudnud oma brauseri aktiivsete sisseehitatud reeglite piirini. Uute reeglite aktiveerimiseks lülitage mõned sisseehitatud filtrid välja" + }, + "options_loader_applying_changes": { + "message": "Rakenda muudatused..." + }, + "options_miscellaneous_settings": { + "message": "Täiendavad seaded" + }, + "options_modified_first_party_cookie": { + "message": "Esimese osapoole küpsis on muudetud" + }, + "options_modified_third_party_cookie": { + "message": "Kolmanda osapoole küpsis on muudetud" + }, + "options_nav_better_than_extension": { + "message": "Miks on AdGuardi programm parem kui brauseri laiendus?" + }, + "options_nav_compare": { + "message": "Võrdle" + }, + "options_navigation": { + "message": "Navigatsioon" + }, + "options_open_changelog": { + "message": "Muudatuste logi" + }, + "options_open_log": { + "message": "Ava filtreerimise logi" + }, + "options_popup_call_to_action": { + "message": "Lisa filtri URL või asukoht ülemisse kasti." + }, + "options_popup_check_false_description": { + "message": "Valikulise filtri lisamisel ilmes viga." + }, + "options_popup_check_false_title": { + "message": "Tõrge" + }, + "options_popup_checking_filter": { + "message": "Filtri kontrollimine" + }, + "options_popup_description": { + "message": "Jätkates tellid selle filtri." + }, + "options_popup_filter_description": { + "message": "Kirjeldus:" + }, + "options_popup_filter_homepage": { + "message": "Koduleht:" + }, + "options_popup_filter_rules_count": { + "message": "Reeglite hulk:" + }, + "options_popup_filter_title": { + "message": "Pealkiri:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versioon:" + }, + "options_popup_import_error_file_description": { + "message": "Midagi läks valesti." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Selle seadistuste faili importimiseks luba AdGuardil muuta teie privaatsusega seotud seadeid." + }, + "options_popup_import_error_title": { + "message": "Seadete importimine ebaõnnestus" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Faili laiendus peab olema %extension%" + }, + "options_popup_import_success_title": { + "message": "Seaded imporditud" + }, + "options_popup_next_button": { + "message": "Edasi" + }, + "options_popup_subscribe_button": { + "message": "Telli" + }, + "options_popup_title_placeholder": { + "message": "Sisesta filtri nimi" + }, + "options_popup_trusted_filter_description": { + "message": "Usaldusväärseks märgistatud filtrid saavad kasutada võimsaid filtrireeglite modifikaatoreid, mis võivad valedes kätes pahandust tekitada. Ära märgista seda kasti enne, kui usaldad selle autorit 100%%." + }, + "options_popup_trusted_filter_title": { + "message": "Usaldatud" + }, + "options_popup_try_again_button": { + "message": "Proovi uuesti" + }, + "options_popup_update_error": { + "message": "Uuendamine nurjus. Proovi hiljem uuesti." + }, + "options_popup_update_filter": { + "message": "on uuendatud." + }, + "options_popup_update_filters": { + "message": "on uuendatud." + }, + "options_popup_update_not_found": { + "message": "Teie filtrid on ajakohased" + }, + "options_popup_update_title_error": { + "message": "Filtrite uuendamisel ilmes viga" + }, + "options_popup_updating_filters": { + "message": "Filtrite uuendamine..." + }, + "options_popup_url_placeholder": { + "message": "Sisesta URL või asukoht" + }, + "options_popup_url_title": { + "message": "Uue filtri tellimine" + }, + "options_popup_version_update_changelog_text": { + "message": "Mis selles versioonis uut on?" + }, + "options_popup_version_update_description_major": { + "message": "See on suurem uuendus, mis toob endaga kaasa uusi funktsioone ja täiustusi." + }, + "options_popup_version_update_description_minor": { + "message": "See versioon toob endaga veaparandusi ja teisi väiksemaid täiustusi." + }, + "options_popup_version_update_disable_notification": { + "message": "Lülita teavitused välja" + }, + "options_popup_version_update_offer": { + "message": "Kas teadsid, et AdGuardi võimalused ei piirdu ainult brauserilaiendusega?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ROHKEM TEAVET" + }, + "options_popup_version_update_title_text": { + "message": "AdGuardi brauserilisa on uuendatud versioonile %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Paneb WebRTC kasutama rangemat IP-aadressi poliitikat, et aidata hoida sinu tegelik IP-aadress peidetuna, kui kasutad puhverserverit või VPN-i" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Väldi IP-aadressi lekkeid WebRTC kaudu" + }, + "options_privacy": { + "message": "Jälgimiskaitse" + }, + "options_privacy_desc": { + "message": "Kaitseb sinu võrgutegevust ja isikuandmeid veebijälgijate eest" + }, + "options_privacy_policy": { + "message": "Privaatsuspoliitika" + }, + "options_privacy_title": { + "message": "Jälgimiskaitse" + }, + "options_rate_us_cta": { + "message": "Jäta hinnang" + }, + "options_remove_client_data_desc": { + "message": "Blokeerib Google Chrome'i, et see ei saaks Google domeenidele oma versiooni ja muudatuste andmeid saata" + }, + "options_remove_client_data_title": { + "message": "Eemalda X-Client-Data päis" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Eemalda" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Eemalda see filter?" + }, + "options_report_bug": { + "message": "Teavita veast" + }, + "options_reset_settings": { + "message": "Taasta seadistused" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Lähtesta" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Kõik seaded lähtestatakse nende vaikimisi väärtustele" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Lähtesta seadistused?" + }, + "options_reset_settings_done": { + "message": "Seadistus on taastatud" + }, + "options_reset_settings_error": { + "message": "Seadete taastamisel ilmnes tõrge" + }, + "options_reset_stats": { + "message": "Nulli statistika" + }, + "options_reset_stats_done": { + "message": "Statistika on nullitud" + }, + "options_rule_limits": { + "message": "Reegli piirangud" + }, + "options_rule_limits_description": { + "message": "Chrome piirab rakendatavate reeglite arvu" + }, + "options_rule_limits_dynamic": { + "message": "Dünaamilised reeglid" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex reeglid — sisaldub kasutaja lisatud reeglites" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Ohutud dünaamilised reeglid (kasutatakse mõnede täiustatud modifikaatorite jaoks, nagu $$redirect või $$cookie) — sisaldub kasutaja lisatud reeglites" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Kasutaja lisatud reeglid, nagu \u003Cuser_rules>kasutajareeglid\u003C/user_rules>, \u003Callowlist>lubatud veebisaidid\u003C/allowlist> ja \u003Ccustom_filters>kohandatud filtrid\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Kasutaja poolt lisatud reeglid, näiteks \u003Cuser_rules>kasutaja reeglid\u003C/user_rules> ja \u003Callowlist>lubatud veebilehed\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current%/%maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Staatilised reeglid" + }, + "options_rule_limits_static_rules_all": { + "message": "Reeglid \u003Ca>sisseehitatud filtritest\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex reeglid — sisalduvad eespool" + }, + "options_rule_limits_static_rulesets": { + "message": "Staatilised reeglistikud" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Sisseehitatud filtrid\u003C/a>, nagu Blokeeri tüütused või Keelespetsiifilised filtrid" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Valik 3. Kui olete rahul hetkel aktiveeritud vaikimisi filtritega, \u003Ca>sulgege see hoiatus.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Võimalus 3. Kui olete rahul hetkel aktiveeritud vaikimisi filtriga, \u003Ca>sulgege see hoiatus.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Võimalus 1. Kustutage oma brauserist mittevajalikud reklaami blokeerivad laiendused. Punktis \"Enne uuendust lubatud filtrid\" nimetatud filtrite taasaktiveerimiseks klõpsake \u003Ca>filtrite taasaktiveerimisele.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Võimalus 2. Paigaldage AdGuard Ad Blocker rakendus: sellel ei ole filtreerimisreeglitele piiranguid. \u003Ca>Hankige AdGuard Ad Blocker rakendus\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Teie võimalikud tegevused" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Aktiivsete sisseehitatud reeglite arv ületati pärast uuendamist või uue laienduse lisamist. Manifest V3 kohaselt reageeris teie Chrome'i brauser, lülitades välja kõik laienduse sisseehitatud filtrid, välja arvatud vaikimisi filtrid." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Mis juhtus?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Enne uuendamist aktiveeritud filtrid" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtrid on nüüd lubatud" + }, + "options_rule_limits_warning_title": { + "message": "Brauser on muutnud aktiivsete filtrite nimekirja" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Eemalda reeglipiirangud ja hanki laiendatud kaitse, mis töötab kõigis brauserites" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installi töölauarakendus" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Mine filtrite juurde" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Halda laiendusi" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Brauseri laiendused jagavad sama reeglite piirangut. Teiste reklaamiblokeerijate eemaldamine võib vabastada rohkem reegleid AdGuard Browser Extension jaoks" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Eemalda teised reklaamiblokeerijad" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Luba vajalikud filtrid. Keelepõhised ja privaatsusfiltrid võivad kasutada palju reegleid" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Vaata üle saadaolevad filtrid" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Siin on, mida saad teha" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Piirang saavutatud — mõned filtrid on keelatud" + }, + "options_rule_syntax": { + "message": "Reegli süntaks" + }, + "options_safebrowsing_enabled": { + "message": "Õngevõtmine ja pahavara kaitse" + }, + "options_safebrowsing_enabled_desc": { + "message": "Hoiatab pahatahtlike ja andmepüügiveebisaitide eest, kasutades AdGuardi Sirvimise Turvalisuse moodulit. \u003Ca>Loe lisaks\u003C/a>" + }, + "options_select_theme": { + "message": "Välimus" + }, + "options_select_update_period_12h": { + "message": "12 tunni tagant" + }, + "options_select_update_period_1h": { + "message": "1 tunni tagant" + }, + "options_select_update_period_24h": { + "message": "24 tunni tagant" + }, + "options_select_update_period_48h": { + "message": "48 tunni tagant" + }, + "options_select_update_period_6h": { + "message": "6 tunni tagant" + }, + "options_select_update_period_default": { + "message": "Vaikeseade" + }, + "options_select_update_period_disabled": { + "message": "Väljalülitatud" + }, + "options_send_not_track_desc": { + "message": "Saatke külastatavatele veebisaitidele signaalid \u003Cgpc>Globaalne privaatsuskontroll\u003C/gpc> ja \u003Cdnt>Ära jälgi\u003C/dnt>" + }, + "options_send_not_track_title": { + "message": "Palu veebisaite mind mitte jälgida" + }, + "options_set_update_interval": { + "message": "Filtrite uuendamise sagedus" + }, + "options_set_update_interval_desc": { + "message": "Hoidke filtrid ajakohasena tõhusama reklaamide blokeerimise jaoks" + }, + "options_settings": { + "message": "AdGuardi seaded" + }, + "options_share_settings": { + "message": "Jaga seadeid" + }, + "options_show_adguard_full_version_title": { + "message": "Näita teavitust AdGuardi täisversiooni kohta" + }, + "options_show_app_updated_notification": { + "message": "Teavita mind AdGuardi brauserilisa uuendustest" + }, + "options_show_blocked_ads_count_title": { + "message": "Kuva AdGuardi ikoonil blokeeritud reklaami arvu" + }, + "options_show_context_menu_title": { + "message": "Lisa AdGuard brauseri parema kliki menüüsse" + }, + "options_site": { + "message": "Meie koduleht" + }, + "options_skip_to_main_content": { + "message": "Liigu põhisisu juurde" + }, + "options_stealth_general_title": { + "message": "Üldine" + }, + "options_stealth_miscellaneous_title": { + "message": "Mitmesugust" + }, + "options_stealth_tracking_methods_title": { + "message": "Jälitamise meetodid" + }, + "options_strip_tracking_params_description": { + "message": "Eemaldab AdGuardi URL-i jälgimise filtri abil jälgimisparameetrid lehe URLidest" + }, + "options_strip_tracking_params_title": { + "message": "Eemalda jälitamise parameetrid URLidest" + }, + "options_stripped_tracking_parameters": { + "message": "Eemaldatakse jälitamise parameetrid" + }, + "options_theme_selector_dark": { + "message": "Tume" + }, + "options_theme_selector_light": { + "message": "Hele" + }, + "options_theme_selector_system": { + "message": "Süsteem" + }, + "options_third_party_block_cookies_warning": { + "message": "Kui blokeerid need küpsised, võib olla vajalik mõnele veebilehele uuesti sisse logida või tekkida muid küpsistega seotud probleeme" + }, + "options_third_party_desc": { + "message": "Takistab reklaamijatel jälgida teie käitumist mitmel lehel, piirates kolmandate osapoolte küpsiste eluaega" + }, + "options_third_party_title": { + "message": "Kustuta kolmandate osapoolte küpsised" + }, + "options_update_antibanner_filters": { + "message": "Käivita filtrite uuendamine" + }, + "options_use_optimized_filters": { + "message": "Kasuta optimeeritud filtreid" + }, + "options_use_optimized_filters_desc": { + "message": "Liikluse säästmiseks kasutab filtrite lühemaid versioone ainult kõige populaarsemate reeglitega. Sobib paremini mobiilibrauseritele" + }, + "options_user_rules_clear_search": { + "message": "Tühjenda otsing" + }, + "options_user_rules_create_rule": { + "message": "Loo reegel" + }, + "options_user_rules_delete_all": { + "message": "Kustuta kõik" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Kõik kasutajareeglid kustutatakse jäädavalt" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Kas kustutada kõik?" + }, + "options_user_rules_delete_all_success": { + "message": "Kõik kasutajareeglid on kustutatud" + }, + "options_user_rules_delete_rule": { + "message": "Kustuta reegel" + }, + "options_user_rules_deleted_notification": { + "message": "Kasutajareegel kustutati:" + }, + "options_user_rules_description_key": { + "message": "Teie reeglid reklaamide või tervete veebisaitide blokeerimiseks ja blokeeringu eemaldamiseks" + }, + "options_user_rules_edit_rule": { + "message": "Muuda reeglit" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Ava redigeerija" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Teie reeglid kuvatakse siin pärast sulgemist" + }, + "options_user_rules_editor_stub_title": { + "message": "Toimetaja avati teises aknas" + }, + "options_user_rules_empty_placeholder": { + "message": "Reegleid pole veel" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Reeglite esiletõstmine…" + }, + "options_user_rules_import_error": { + "message": "Kasutajareeglite importimine ebaõnnestus. Palun proovi uuesti" + }, + "options_user_rules_import_success": { + "message": "Kasutajareeglid imporditi edukalt" + }, + "options_user_rules_menu": { + "message": "Kasutajareeglite toimingud" + }, + "options_user_rules_no_match": { + "message": "Midagi ei leitud" + }, + "options_user_rules_search_placeholder": { + "message": "Otsida" + }, + "options_user_rules_switch_to_editor": { + "message": "Lülitu redaktori vaatesse" + }, + "options_user_rules_switch_to_list": { + "message": "Lülitu loendivaatesse" + }, + "options_user_rules_undo": { + "message": "Võta tagasi" + }, + "options_userfilter": { + "message": "Kasutaja reeglid" + }, + "options_userfilter_description_key": { + "message": "Siia saab lisada enda reegleid. Soovitatav kasutajatele, kes on tuttavad HTML/CSS-iga. Rohkema info saamiseks tutvu \u003Ca>filtri loomise abilisega\u003C/a>." + }, + "options_userfilter_export": { + "message": "Ekspordi" + }, + "options_userfilter_import": { + "message": "Impordi" + }, + "options_userfilter_leave_subtitle": { + "message": "Teie reeglite muudatused on kaotatud" + }, + "options_userfilter_line_break": { + "message": "Rea murdmine" + }, + "options_userfilter_line_break_off": { + "message": "Rea murdmine: Välja lülitatud" + }, + "options_userfilter_line_break_on": { + "message": "Rea murdmine: Sisse lülitatud" + }, + "options_userfilter_subtitle_key": { + "message": "Võimaldab lisada oma filtreerimisreegleid" + }, + "popup_abuse_site": { + "message": "Teata probleemist" + }, + "popup_adguard_footer_title": { + "message": "Kaitse oma mobiilseadet" + }, + "popup_adguard_for_android": { + "message": "AdGuard Androidile" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokeeri reklaame käsitsi" + }, + "popup_get_system_wide_protection": { + "message": "Hangi süsteemipõhine kaitse" + }, + "popup_header_cta_link": { + "message": "Kuidas kaitset täiustada" + }, + "popup_header_update_filters": { + "message": "Käivita filtrite uuendamine" + }, + "popup_limits_exceeded_warning": { + "message": "Brauser on muutnud aktiivsete sisseehitatud filtrite nimekirja" + }, + "popup_open_filtering_log": { + "message": "Ava filtreerimise logi" + }, + "popup_open_settings": { + "message": "Avage AdGuard seaded" + }, + "popup_protection_button": { + "message": "Sisse lülitatud" + }, + "popup_reset_page_user_rules": { + "message": "Kustuta kasutaja reeglid selle veebilehe jaoks" + }, + "popup_resume_protection_button": { + "message": "Jätka" + }, + "popup_security_report": { + "message": "Kontrolli veebilehe turvalisust" + }, + "popup_site_exception_information": { + "message": "Filtreerimine on keelatud, sest see võib antud veebilehe funktsionaalsust häirida." + }, + "popup_site_filtering_state_disabled": { + "message": "Kaitse on väljalülitatud" + }, + "popup_site_filtering_state_disabling": { + "message": "Kaitse deaktiveerimine..." + }, + "popup_site_filtering_state_enabled": { + "message": "Kaitse on sisselülitatud" + }, + "popup_site_filtering_state_enabling": { + "message": "Kaitse aktiveerimine..." + }, + "popup_site_filtering_state_loading": { + "message": "Laadimine..." + }, + "popup_site_filtering_state_paused": { + "message": "Kaitse on peatatud" + }, + "popup_site_filtering_state_pausing": { + "message": "Kaitse pausile seadmine..." + }, + "popup_site_filtering_state_resuming": { + "message": "Kaitse jätkamine..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Turvaline leht" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "kõikidele veebilehtedele" + }, + "popup_statistics_all_categories": { + "message": "Kõik" + }, + "popup_statistics_category_advertising": { + "message": "Reklaamid" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistika kategooria" + }, + "popup_statistics_category_other": { + "message": "Muu" + }, + "popup_statistics_category_social_media": { + "message": "Ühismeedia" + }, + "popup_statistics_category_trackers": { + "message": "Jälitajaid" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dets" + }, + "popup_statistics_months_feb": { + "message": "Veeb" + }, + "popup_statistics_months_jan": { + "message": "Jaan" + }, + "popup_statistics_months_jul": { + "message": "Juuli" + }, + "popup_statistics_months_jun": { + "message": "Juuni" + }, + "popup_statistics_months_mar": { + "message": "Märts" + }, + "popup_statistics_months_may": { + "message": "Mai" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sept" + }, + "popup_statistics_time_day": { + "message": "24 tunni tagant" + }, + "popup_statistics_time_label": { + "message": "Statistika ajaperiood" + }, + "popup_statistics_time_month": { + "message": "30 päeva" + }, + "popup_statistics_time_week": { + "message": "7 päeva" + }, + "popup_statistics_time_year": { + "message": "1 aasta" + }, + "popup_statistics_total": { + "message": "Kokku" + }, + "popup_statistics_week_days_fri": { + "message": "Ree" + }, + "popup_statistics_week_days_mon": { + "message": "Esm" + }, + "popup_statistics_week_days_sat": { + "message": "Lau" + }, + "popup_statistics_week_days_sun": { + "message": "Püh" + }, + "popup_statistics_week_days_thu": { + "message": "Nel" + }, + "popup_statistics_week_days_tue": { + "message": "Tei" + }, + "popup_statistics_week_days_wed": { + "message": "Kol" + }, + "popup_switch_button": { + "message": "Praeguse veebisaidi kaitse" + }, + "popup_tab_actions": { + "message": "Tegevused" + }, + "popup_tab_blocked_all_count": { + "message": "Kokku blokeeritud: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokeeritud: %num%" + }, + "popup_tab_current_website": { + "message": "Praegune veebisait" + }, + "popup_tab_statistics": { + "message": "Statistika" + }, + "popup_tabs": { + "message": "Vahekaardid" + }, + "popup_tooltip_loading": { + "message": "Laadimine..." + }, + "popup_tooltip_protection_disabled": { + "message": "Kaitse keelatud" + }, + "popup_tooltip_protection_enabled": { + "message": "Kaitse lubatud" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Mõned reeglid ei kehti" + }, + "popup_tooltip_update_available": { + "message": "Uuendus on saadaval" + }, + "post_install_loading": { + "message": "Laienemise laadimine..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Reeglite piirang ületatud AdGuard Brauseri Laienduses. Palun kontrollige oma filtreid ja keelake need, mida te ei vaja" + }, + "text_collapser_hide_default": { + "message": "Peida täispikk tekst" + }, + "text_collapser_show_default": { + "message": "Kuva täispikk tekst" + }, + "update_available_desc": { + "message": "Reklaamide tõhusaks blokeerimiseks hoidke oma laiendusi ja filtreid ajakohasena" + }, + "update_available_title": { + "message": "Uuendused on saadaval" + }, + "update_available_update_btn": { + "message": "Ajakohastamine" + }, + "update_check": { + "message": "Otsi uuendusi" + }, + "update_checking_in_progress": { + "message": "Uuenduste kontrollimine..." + }, + "update_failed_text": { + "message": "Uuenduse lõpuleviimine ebaõnnestus" + }, + "update_failed_try_again_btn": { + "message": "Proovi uuesti" + }, + "update_installing_in_progress_desc": { + "message": "Laiend taaskäivitub pärast uuendust" + }, + "update_installing_in_progress_title": { + "message": "Laienduse ja filtrite uuendamine..." + }, + "update_not_needed": { + "message": "Sinu laiendus ja filtrid on ajakohased" + }, + "update_success_text": { + "message": "Laiend ja filtrid on uuendatud" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fa/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fa/messages.json new file mode 100644 index 0000000..815a14f --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fa/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% به طور خودکار فعال شده است" + }, + "alert_popup_filter_enabled_title": { + "message": "فعالسازی خودکار فیلترها" + }, + "background_tab_title": { + "message": "تب پس زمینه" + }, + "blocking_pages_advanced_button": { + "message": "پیشرفته" + }, + "blocking_pages_btn_go_back": { + "message": "برگرد" + }, + "blocking_pages_btn_proceed": { + "message": "در هر صورت ادامه بده" + }, + "blocking_pages_malware": { + "message": "این صفحه وب در \u003Cstrong>%host%\u003C/strong>تحت عنوان صفحه بدافزار گزارش و بر اساس ترجیحات امنیتی شما مسدود شده است." + }, + "blocking_pages_more_info_button": { + "message": "اطلاعات بیشتر" + }, + "blocking_pages_page_title": { + "message": "دسترسی رد شد" + }, + "blocking_pages_phishing": { + "message": "این صفحه وب در \u003Cstrong>%host%\u003C/strong>تحت عنوان صفحه فیشینگ گزارش و بر اساس ترجیحات امنیتی شما مسدود شده است." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard از بارگیری این صفحه به علت دستور فیلتر زیر جلوگیری کرده است" + }, + "blocking_pages_rule_header_title": { + "message": "با AdGuard مسدود شده است" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard دسترسی به این صفحه را مسدود کرده است" + }, + "clear_button_title": { + "message": "پاکسازی" + }, + "close_button_title": { + "message": "بستن" + }, + "context_block_site_ads": { + "message": "مسدود کردن تبلیغات به‌صورت دستی" + }, + "context_complaint_website": { + "message": "گزارش یک مشکل" + }, + "context_disable_protection": { + "message": "وقفه حفاظت AdGuard" + }, + "context_enable_protection": { + "message": "ادامه حفاظت AdGuard" + }, + "context_open_log": { + "message": "بازکردن وقایع فیلترینگ" + }, + "context_open_settings": { + "message": "تنظیمات AdGuard" + }, + "context_security_report": { + "message": "گزارش امنیتی وبسایت" + }, + "context_site_exception": { + "message": "این وبسایت در استثناءها هست" + }, + "context_site_filtering_disabled": { + "message": "AdGuard نمی‌تواند این صفحه را فیلتر کند" + }, + "context_site_filtering_off": { + "message": "غیرفعالسازی فیلترینگ در این وبسایت" + }, + "context_site_filtering_on": { + "message": "فعالسازی فیلترینگ در این وبسایت" + }, + "context_site_protection_disabled": { + "message": "حفاظت AdGuard متوقف شده است" + }, + "context_update_antibanner_filters": { + "message": "بررسی بروز رسانی برای فیلتر" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "افزونه مسدودساز تبلیغ بی‌همتا در برابر تبلیغات و پنجره‌های بازشو. تبلیغات را در فیسبوک،یوتیوب و سایر تارنماها مسدود می‌کند." + }, + "filtering_clear_log_events": { + "message": "پاکسازی گزارشات" + }, + "filtering_log_actions_menu": { + "message": "اقدامات وقایع فیلترینگ" + }, + "filtering_log_assumed_rule_description": { + "message": "این یک رویه فرضی است. برای جزئیات، به \u003Ca>پایگاه دانش\u003C/a> ما مراجعه کنید." + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "روش درخواست HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "کد وضعیت HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "درخواست شخص ثالث" + }, + "filtering_log_details_modal_back_button": { + "message": "بازگشت به درخواست" + }, + "filtering_log_details_modal_beautify_button": { + "message": "زیبا کردن" + }, + "filtering_log_details_modal_try_again": { + "message": "امتحان دوباره" + }, + "filtering_log_filter_allowed": { + "message": "مجاز" + }, + "filtering_log_filter_blocked": { + "message": "مسدود شده" + }, + "filtering_log_filter_modified": { + "message": "ویرایش شده" + }, + "filtering_log_filter_regular": { + "message": "عادی" + }, + "filtering_log_filter_user_rules": { + "message": "دستورات کاربر" + }, + "filtering_log_hide_referrer": { + "message": "ارجاع دهنده از ثالث ها پنهان است" + }, + "filtering_log_hide_search_queries": { + "message": "جستار جستجوی شما پنهان است" + }, + "filtering_log_in_allowlist": { + "message": "این تارنما مجاز است" + }, + "filtering_log_modified_rules": { + "message": "قوانین اصلاح شده: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "بله، حفظ کن" + }, + "filtering_log_preserve_log_modal_description": { + "message": "این گزینه ممکن است به طور چشمگیری استفاده از حافظه را افزایش دهد" + }, + "filtering_log_preserve_log_modal_title": { + "message": "حفظ رویدادنامه؟" + }, + "filtering_log_preserve_log_off": { + "message": "عدم حفظ رویداد نامه" + }, + "filtering_log_preserve_log_on": { + "message": "حفظ رویداد نامه" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "دوباره نمایش داده نشود" + }, + "filtering_log_privacy_applied_rules": { + "message": "حفاظت ردیابی اعمال شد" + }, + "filtering_log_remove_client_data": { + "message": "سرساز داده-کلاینت-ایکس حذف شد" + }, + "filtering_log_search_string": { + "message": "جستجو" + }, + "filtering_log_search_tabs_placeholder": { + "message": "جستجو در زبانه ها" + }, + "filtering_log_send_not_track": { + "message": "سرساز من-را-ردیابی نکن ارسال شد" + }, + "filtering_log_status_allowed": { + "message": "مجاز" + }, + "filtering_log_status_blocked": { + "message": "مسدود شده" + }, + "filtering_log_status_modified": { + "message": "ویرایش شده" + }, + "filtering_log_status_processed": { + "message": "پردازش شده" + }, + "filtering_log_stealth_rules": { + "message": "قوانین حفاظت از ردیابی: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "منشاء درخواست" + }, + "filtering_log_tag_request_status": { + "message": "وضعیت پالایش" + }, + "filtering_log_tag_request_type": { + "message": "نوع درخواست" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "درخواست‌های مجاز و رفع انسداد" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "درخواست‌های مسدود شده" + }, + "filtering_log_tag_tooltip_css": { + "message": "شیوه نامه ها" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "درخواست‌های طرف اول" + }, + "filtering_log_tag_tooltip_html": { + "message": "اسناد و مدارک فرعی" + }, + "filtering_log_tag_tooltip_img": { + "message": "تصاویر" + }, + "filtering_log_tag_tooltip_js": { + "message": "اسکریپت ها" + }, + "filtering_log_tag_tooltip_media": { + "message": "رسانه" + }, + "filtering_log_tag_tooltip_modified": { + "message": "درخواست‌های اصلاح‌شده" + }, + "filtering_log_tag_tooltip_other": { + "message": "فونت‌ها، پینگ‌ها، WebRTC، WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "درخواست‌های پردازش‌شده بدون فیلتر" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "درخواست‌های شخص ثالث" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "درخواست‌های تحت تأثیر رویه‌های کاربر" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests و درخواست های واکشی" + }, + "filtering_log_title": { + "message": "وقایع فیلترینگ" + }, + "filtering_menu_open_filters": { + "message": "سفارشی" + }, + "filtering_modal_add_rule": { + "message": "افزودن" + }, + "filtering_modal_allow_title": { + "message": "قانون مجاز را اضافه کنید" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| رویه اعمال‌شده | رویه‌های اعمال‌شده" + }, + "filtering_modal_apply_domains": { + "message": "برای همه وب سایت ها اعمال شود" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| رویه‌ی فرض‌شده: | رویه‌های فرض‌شده:" + }, + "filtering_modal_block": { + "message": "مسدود کن" + }, + "filtering_modal_block_again": { + "message": "مسدودسازی مجدد" + }, + "filtering_modal_block_title": { + "message": "قانون مسدود کردن را اضافه کنید" + }, + "filtering_modal_converted_to": { + "message": "تبدیل شده به:" + }, + "filtering_modal_cookie": { + "message": "کوکی:" + }, + "filtering_modal_copied": { + "message": "کپی شد" + }, + "filtering_modal_copy_to_clipboard": { + "message": "کپی به کلیپ‌بورد" + }, + "filtering_modal_declarative_rule": { + "message": "قانون DNR:" + }, + "filtering_modal_element": { + "message": "عنصر:" + }, + "filtering_modal_exception_title": { + "message": "افزودن یک استثناء" + }, + "filtering_modal_filter": { + "message": "فیلتر" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "وضعیت پالایش" + }, + "filtering_modal_hide_full_element": { + "message": "پنهان کردن تمام عناصر" + }, + "filtering_modal_hide_full_rule": { + "message": "پنهان کردن دستور کامل" + }, + "filtering_modal_hide_full_url": { + "message": "پنهان‌سازی تارنشانی کامل" + }, + "filtering_modal_important": { + "message": "دادن اولویت بالاتر به دستور" + }, + "filtering_modal_info_title": { + "message": "جزئیات درخواست" + }, + "filtering_modal_open_in_new_tab": { + "message": "بازکردن در تب جدید" + }, + "filtering_modal_options_desc": { + "message": "گزينه ها" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| رویه‌ی اصلی: | رویه‌های اصلی:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "چه چیزی باید اجازه داده شود" + }, + "filtering_modal_patterns_desc_block": { + "message": "چه چیزی باید مسدود شود" + }, + "filtering_modal_preview_request_button": { + "message": "پیش‌نمایش" + }, + "filtering_modal_preview_title": { + "message": "پیش‌نمایش" + }, + "filtering_modal_privacy": { + "message": "حفاظت ردیابی" + }, + "filtering_modal_remove_allowlist": { + "message": "حذف از لیست سفید" + }, + "filtering_modal_remove_param": { + "message": "حذف پارامترهای جستار" + }, + "filtering_modal_remove_user": { + "message": "حذف قانون" + }, + "filtering_modal_rule": { + "message": "دستور:" + }, + "filtering_modal_rule_text_desc": { + "message": "دستور" + }, + "filtering_modal_rules": { + "message": "دستورات:" + }, + "filtering_modal_show_full_element": { + "message": "نمایش تمام عناصر" + }, + "filtering_modal_show_full_rule": { + "message": "نمایش دستور کامل" + }, + "filtering_modal_show_full_url": { + "message": "نمایش URL کامل" + }, + "filtering_modal_source": { + "message": "منبع" + }, + "filtering_modal_status_text_desc": { + "message": "وضعیت" + }, + "filtering_modal_status_text_error": { + "message": "بارگذاری پیش‌نمایش شکست خورد. لطفا دوباره تلاش کنید" + }, + "filtering_modal_status_text_loading": { + "message": "در حال بارگذاری..." + }, + "filtering_modal_third_party": { + "message": "فقط اِعمال به درخواست های ثالث" + }, + "filtering_modal_type": { + "message": "نوع" + }, + "filtering_modal_unblock": { + "message": "باز کن" + }, + "filtering_refresh_tab_short": { + "message": "نوسازی" + }, + "filtering_refresh_tab_short_mobile": { + "message": "بازخوانی صفحه" + }, + "filtering_table_action": { + "message": "اقدام" + }, + "filtering_table_empty_reload_page_desc": { + "message": "چیزی پیدا نشد. \u003Creset>غیرفعال کردن فیلترها\u003C/reset> یا \u003Crefresh>بارگذاری مجدد صفحه\u003C/refresh> برای مشاهده رویدادنامه‌ رکوردها" + }, + "filtering_table_filter": { + "message": "فیلتر" + }, + "filtering_table_open_details": { + "message": "گشایش جزئیات" + }, + "filtering_table_rule": { + "message": "دستور فیلترینگ" + }, + "filtering_table_source": { + "message": "منبع" + }, + "filtering_table_status": { + "message": "وضعیت" + }, + "filtering_table_type": { + "message": "نوع" + }, + "filtering_type_all": { + "message": "همه" + }, + "filtering_type_other": { + "message": "ساير" + }, + "filters_download_loading": { + "message": "لطفا حین بارگیری پایگاه اطلاعات فیلترها منتظر بمانید..." + }, + "filters_download_title": { + "message": "پایگاه اطلاعات فیلترها در حال بارگیری است..." + }, + "fullscreen_user_rules_title": { + "message": "فیلتر کاربر" + }, + "group_description_adblocking": { + "message": "مسدود کردن تبلیغات را در اینجا پیکربندی کنید تا با بنرهای مزاحم، پنجره‌های بازشو، تبلیغات ویدیویی و مواردی از این دست، یک بار برای همیشه مقابله کنید" + }, + "group_description_annoyances": { + "message": "پنجره های پاپ آپ و سایر اعلان های مزاحم مانند اطلاعیه های کوکی را حذف کنید" + }, + "group_description_custom": { + "message": "فیلترهای خود را ایجاد کنید تا فیلتر وب را به دلخواه خود تنظیم کنید." + }, + "group_description_lang": { + "message": "خودتان را محدود نکنید — تبلیغات را در وب سایت ها به هر زبانی مسدود کنید" + }, + "group_description_miscellaneous": { + "message": "تنظیمات بیشتر برای پیکربندی بیشتر وب گردی با ادگارد" + }, + "group_description_security": { + "message": "از خود در برابر بدافزار، فیشینگ و سایر تهدیدات آنلاین محافظت کنید" + }, + "group_description_social": { + "message": "دکمه‌های «لایک»/«اشتراک‌گذاری» ناخواسته و سایر ابزارک‌های رسانه‌های اجتماعی را پنهان کنید" + }, + "group_description_stealth": { + "message": "با مسدود کردن همه روش‌های شناخته شده ردیابی، از هویت و اطلاعات شخصی حساس خود در برابر هزاران ردیاب آنلاین محافظت کنید" + }, + "name": { + "message": "مسدودساز تبلیغ AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "دوباره نمایش داده نشود" + }, + "opera_search_permission_go_to_settings": { + "message": "بازکردن تنظيمات" + }, + "opera_search_permission_warning": { + "message": "برای مسدود کردن تبلیغات جستجو، اجازه دسترسی به نتایج صفحه جستجو را در تنظيمات مرورگر بدهید" + }, + "options_about": { + "message": "درباره" + }, + "options_about_libs": { + "message": "کتابخانه‌های استفاده‌شده" + }, + "options_about_title": { + "message": "افزونه مرورگر AdGuard" + }, + "options_about_update_available": { + "message": "نسخه %version% در دسترس است. به‌طور خودکار بارگیری و نصب خواهد شد." + }, + "options_about_version": { + "message": "نسخه" + }, + "options_acknowledgment": { + "message": "قدرداني ها" + }, + "options_add_custom_filter": { + "message": "افزودن فیلتر دستی" + }, + "options_add_custom_filter_modal_add_button": { + "message": "افزودن" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "در حال بررسی فیلتر شما..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "تارنشانی یک صفحه وب را به‌جای یک فهرست‌های پالایش برگرداند. لطفاً یک پیوند مستقیم به فایل پالایش ارائه دهید." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "لطفاً دوباره امتحان کنید یا با پشتیبانی تماس بگیرید" + }, + "options_add_custom_filter_modal_error_title": { + "message": "در افزودن فیلتر سفارشی خطا پیش آمد" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "نام فیلتر:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "قابل اعتماد" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "فیلترهای مورد اعتماد می‌توانند از اصلاح‌کننده‌های قوی قوانین استفاده کنند - مطمئن شوید که از فیلتر توسعه‌دهندگان مورد اعتماد استفاده می‌کنید" + }, + "options_add_custom_filter_modal_title": { + "message": "افزودن فیلتر دستی" + }, + "options_all_limits_exceeded_warning": { + "message": "شما به حد قواعد داخلی فعال رسیده‌اید. مرورگر شما فهرست فیلترهای داخلی فعال را اصلاح کرده است. تعداد فیلترهای فعال از %expected% به %current% تغییر کرده است." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "شما به حد مجاز مرورگر خود برای رویه‌های داخلی فعال رسیده‌اید. مرورگر شما فهرست پالایش‌های داخلی فعال را از %expected% به %current% کاهش داده است" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "مرورگر شما محدود می شود \u003Cexternal-link>برخی از انواع قوانین\u003C/external-link>. برای اعمال همه قوانین، فعال کنید \u003Cb>اجازه دادن به اسکریپت های کاربر\u003C/b> در مرورگر شما \u003Csettings-link>تنظیمات برنامه افزودنی\u003C/settings-link>" + }, + "options_allowlist": { + "message": "لیست سفید" + }, + "options_allowlist_alert_invert": { + "message": "فهرست مجاز به‌صورت معکوس تنظیم شده است. تبلیغات فقط در تارنماهایی که به آن افزوده شده‌اند مسدود می‌شوند." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>توقف معکوس‌سازی\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard تبلیغات و رَدیاب‌ها را در تارنماهای موجود در فهرست مسدود نمی‌کند" + }, + "options_allowlist_invalid_entries": { + "message": "برای ذخیره، فقط دامنه‌ها یا تارنشانی‌ها را نگه دارید. این‌ها نیاز به اصلاح دارند: %entries%" + }, + "options_allowlist_invert": { + "message": "معکوس کردن لیست سفید" + }, + "options_allowlist_invert_desc": { + "message": "فقط تبلیغات و ردیاب‌ها را در تارنماهای فهرست شده مسدود می‌کند" + }, + "options_allowlist_leave_subtitle": { + "message": "تغییرات شما در لیست مجاز از دست خواهد رفت" + }, + "options_allowlist_menu": { + "message": "اقدامات فهرست مجاز" + }, + "options_anonymized_usage_data_description": { + "message": "آمار ناشناس در مورد استفاده از افزونه را به AdGuard ارسال می‌کند. \u003Cbutton>بیشتر بدانید\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "متوجه شدم" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "این داده‌ها شامل:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "نامهای دکمه‌هایی که روی آنها کلیک می‌کنید" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "نام‌های صفحه‌هایی که با آن‌ها تعامل دارید" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "شناسه‌های جلسه" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "این داده‌ها ناشناس هستند و فقط به صورت داخلی استفاده می‌شوند. ما هرگز آن را با اشخاص ثالث به اشتراک نمی‌گذاریم" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "ما به این اطلاعات نیاز داریم تا عملکرد AdGuard را تجزیه و تحلیل و بهبود بخشیم" + }, + "options_anonymized_usage_data_modal_title": { + "message": "داده‌های استفاده از افزونه" + }, + "options_anonymized_usage_data_title": { + "message": "ارسال داده‌های ناشناس استفاده از افزونه" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "این فیلتر دستی از قبل اضافه شده است" + }, + "options_antibanner_custom_group": { + "message": "دستي" + }, + "options_antibanner_custom_group_description": { + "message": "به شما اجازه می‌دهد پالایش را از یک فایل یا تارنشانی اضافه کنید" + }, + "options_antibanner_rules_count": { + "message": "رویه‌ها: %rules_count%" + }, + "options_antibanner_updated": { + "message": "به‌روزرسانی شد: %date%" + }, + "options_block_acceptable_ads": { + "message": "مسدود کردن تبلیغات جستجو و خودنمایی تارنماها" + }, + "options_block_acceptable_ads_desc": { + "message": "تبلیغات را در نتایج جستجو و خودنمایی تارنماها مسدود می‌کند. \u003Ca>بیشتر بدانید\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "برای مسدود کردن کلوچک‌ها، طول عمر را برابر ۰ تنظیم کنید" + }, + "options_block_known_trackers_description": { + "message": "ردیاب ها و تجزیه و تحلیل های وب را با استفاده از فیلتر محافظت از ردیابی AdGuard مسدود می کند" + }, + "options_block_known_trackers_title": { + "message": "مسدودسازی ردیاب های شناخته شده" + }, + "options_check_update_progress": { + "message": "در حال بررسی..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "پاکسازی" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "تمام آمار مربوط به استفاده از داده به‌طور دائم حذف خواهد شد" + }, + "options_clear_stats_confirm_modal_title": { + "message": "آمار پاک شود؟" + }, + "options_clipboard_permission_warning": { + "message": "برای کپی و چسباندن قوانین، به AdGuard اجازه دسترسی به کلیپ‌بورد را بدهید. \u003Ca>اجازه دهید\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "آمار ناشناس مربوط به استفاده از پالایش تبلیغات را به AdGuard ارسال می‌کند. \u003Ca>بیشتر بدانید\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "به بهبود پالایش‌های AdGuard کمک کنید" + }, + "options_coming_soon": { + "message": "به زودی" + }, + "options_confirm_modal_cancel_button": { + "message": "لغو" + }, + "options_copyright": { + "message": "همه حقوق محفوظ است." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "برای استفاده از فیلترهای سفارشی، \u003Cb>را فعال کنید. اجازه دسترسی به اسکریپت‌های کاربر\u003C/b> را در تنظیمات افزونه \u003Csettings-link>مرورگر خود فعال کنید.\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "برای استفاده از فیلترهای سفارشی، \u003Cb>حالت توسعه‌دهنده\u003C/b> را در تنظیمات افزونه \u003Csettings-link>مرورگر خود\u003C/settings-link>فعال کنید" + }, + "options_desktop_app_promo_button_linux": { + "message": "دریافت AdGuard برای Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "دریافت AdGuard برای Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "دریافت AdGuard برای Windows" + }, + "options_desktop_app_promo_description": { + "message": "برنامک‌هایی مانند Spotify، Discord یا Zoom همچنان می‌توانند تبلیغات نمایش دهند و فعالیت شما را ردیابی کنند" + }, + "options_desktop_app_promo_subdescription": { + "message": "برنامه رایانه رومیزی ما می‌تواند شما را از آن‌ها محافظت کند" + }, + "options_desktop_app_promo_title": { + "message": "افزونه فقط از مرورگر محافظت می‌کند" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "مرورگر شما محدود می شود \u003Cexternal-link>برخی از انواع قوانین\u003C/external-link>. برای اعمال همه قوانین، فعال کنید \u003Cb>حالت توسعه دهنده\u003C/b> در مرورگر شما \u003Csettings-link>تنظیمات برنامه افزودنی\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "WebRTC را مسدود می‌کند که می‌تواند نشانی IP واقعی شما را حتی اگر از پراکسی یا VPN استفاده کنید، افشا کند. برخی پیام‌رسان‌ها، پلتفرم‌های پخش برخط یا بازی‌ها ممکن است به درستی کار نکنند" + }, + "options_disable_webrtc_title": { + "message": "مسدودسازی وب آر تی سی" + }, + "options_discuss": { + "message": "گفتگو درباره AdGuard" + }, + "options_do_you_like_question": { + "message": "آیا AdGuard را دوست دارید؟" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "حالت تمام صفحه ویرایشگر را ببندید" + }, + "options_editor_indicator_saved": { + "message": "ذخیره شده" + }, + "options_editor_indicator_saving": { + "message": "ذخیره سازی..." + }, + "options_editor_leave_cancel": { + "message": "بازگشت به ویرایش" + }, + "options_editor_leave_confirm": { + "message": "بله، بروید" + }, + "options_editor_leave_title": { + "message": "آیا بدون ذخیره کردن ترک می‌کنید؟" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "ویرایشگر را در تب جدید باز کنید" + }, + "options_editor_save": { + "message": "ذخیره" + }, + "options_editor_save_error": { + "message": "ذخیره تغییرات ناموفق بود. لطفاً دوباره تلاش کنید یا با پشتیبانی تماس بگیرید" + }, + "options_empty_custom_filter": { + "message": "شما هنوز هیچ فیلتر سفارشی ندارید" + }, + "options_enable_autodetect_filter": { + "message": "فعالسازی خودکار بیشتر فیلترهای مناسب" + }, + "options_enable_autodetect_filter_desc": { + "message": "زبان وب سایت را تشخیص می دهد و فیلترهای مناسب را فعال می کند" + }, + "options_export_settings": { + "message": "خروجی گیری تنظیمات" + }, + "options_filters": { + "message": "پالایه‌ها" + }, + "options_filters_annoyances_consent_description": { + "message": "شما در حال فعال کردن یک یا چند پالایش آزاردهنده هستید. این پالایش‌ها اجزاءی را مسدود می‌کنند که یا به محتوای تارنما مرتبط نیستند یا مرتبط هستند ولی برای تجربه کاربری شما آزاردهنده‌اند. مالکان تارنما ممکن است این اجزاء را ضروری بدانند: اگر آن‌ها را مسدود کنید، ممکن است شرایط استفاده آن‌ها را نقض کنید؛ برخی عملکردها در تارنماها ممکن است در دسترس نباشد یا به‌درستی کار نکند. شما درک می‌کنید و موافقت می‌کنید که تنها خودتان مسئول رعایت شرایط استفاده از تارنماهایی که بازدید می‌کنید هستید و AdGuard هیچ مسئولیتی در قبال رعایت شرایط استفاده از تارنماهایی که با محصولات ما بازدید می‌کنید ندارد." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "فعالسازي" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "صفحه خانگی" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "برای جزئیات بیشتر در مورد آنچه فیلترهای مزاحمت AdGuard مسدود می‌کنند، به \u003Ca>خط مشی پالایش\u003C/a> مراجعه کنید" + }, + "options_filters_annoyances_consent_question": { + "message": "فعال کردن این فیلترها؟" + }, + "options_filters_annoyances_consent_title": { + "message": "لطفاً قبل از فعال کردن فیلترهای اذیت‌کننده دقت کنید" + }, + "options_filters_back_button": { + "message": "برگرد" + }, + "options_filters_empty_title": { + "message": "هیچ چیز یافت نشد" + }, + "options_filters_enabled": { + "message": "فعال شده:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% و %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% و %more% مورد دیگر" + }, + "options_filters_enabled_per_group": { + "message": "فعال: %current% از %total%" + }, + "options_filters_filter_link": { + "message": "رفتن به صفحه اصلی" + }, + "options_filters_filter_tags": { + "message": "برچسب های فیلتر" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "شما اعتماد به این فیلتر را انتخاب کردید." + }, + "options_filters_filter_updated": { + "message": "بروز رسانی شده در:" + }, + "options_filters_filter_version": { + "message": "نسخه:" + }, + "options_filters_info_mv3_total_rules": { + "message": "کل قوانین: %num%" + }, + "options_filters_last_checked": { + "message": "آخرین بررسی: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "همه‌ی فیلترها" + }, + "options_filters_list_search_display_option_disabled": { + "message": "غير فعال شده" + }, + "options_filters_list_search_display_option_enabled": { + "message": "فعال شده" + }, + "options_filters_no_enabled": { + "message": "فیلتری فعال نشده است" + }, + "options_filters_of_group": { + "message": "پالایش های گروه \"%groupName%\"" + }, + "options_filters_search": { + "message": "جستجو" + }, + "options_filters_search_filter": { + "message": "جستجوی فیلتر" + }, + "options_first_party_block_cookies_warning": { + "message": "اگر این کلوچک‌ها را مسدود کنید، برخی تارنماها ممکن است خراب شوند یا متوقف شوند" + }, + "options_first_party_desc": { + "message": "با محدود کردن طول عمر کلوچک‌های طرف اول، از به خاطر سپردن جزئیات شما توسط تارنماها، مانند اعتبارنامه ورود و ترجیحات زبان، جلوگیری می‌کند" + }, + "options_first_party_title": { + "message": "حذف کلوچک‌های طرف اول (توصیه نمیشود)" + }, + "options_general_settings": { + "message": "تنظیمات عمومی" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "بازداری طرفهای ثالث از شناسایی تارنماهایی که بازدید می‌کنید" + }, + "options_hide_referrer_title": { + "message": " مخفی کردن ارجاع دهنده شما از ثالث ها" + }, + "options_hide_search_queries_desc": { + "message": "جستجوهای شما را از تارنماهایی که از طریق نتایج موتور جستجو بازدید شده‌اند، نهان‌سازی می‌کند" + }, + "options_hide_search_queries_title": { + "message": "پنهان کردن عبارت های جستجو" + }, + "options_import_configuration_applying_subtitle": { + "message": "تنظیمات فعلی خود را با تنظیمات وارد شده جایگزین کنید. فیلتر کردن در حین وارد کردن غیرفعال است" + }, + "options_import_configuration_applying_title": { + "message": "در حال وارد کردن..." + }, + "options_import_configuration_confirm_button": { + "message": "وارد کردن" + }, + "options_import_configuration_confirm_subtitle": { + "message": "تنظیمات وارد شده جایگزین تنظیمات فعلی شما می شود. تنظیمات دیگر تحت تأثیر قرار نخواهند گرفت" + }, + "options_import_configuration_confirm_title": { + "message": "وارد کردن تنظیمات" + }, + "options_import_configuration_error_button": { + "message": "بستن" + }, + "options_import_configuration_error_subtitle": { + "message": "لطفا لینک واردات را بررسی کنید و دوباره امتحان کنید. اگر کمکی نکرد، با پشتیبانی تماس بگیرید" + }, + "options_import_configuration_error_title": { + "message": "تنظیمات وارد نشد" + }, + "options_import_configuration_success_button": { + "message": "بستن" + }, + "options_import_configuration_success_subtitle": { + "message": "تنظیمات با موفقیت وارد شدند" + }, + "options_import_configuration_success_title": { + "message": "همه کارها انجام شد" + }, + "options_import_settings": { + "message": "واردکردن تنظیمات" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "وارونه‌سازی" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "تبلیغات و رَدیاب‌ها فقط در تارنماهای موجود در allowlist مسدود خواهند شد" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "وارونه‌سازی فهرست مجاز؟" + }, + "options_leave_feedback": { + "message": "ثبت بازخورد" + }, + "options_lifetime_minutes": { + "message": "طول عمر، بر حسب دقیقه" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "شما به حد قواعد regex اضافه‌شده توسط کاربر رسیده‌اید. %maximum% از %current% قواعد regex فعال هستند." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "شما به حد قوانین regex اضافه شده توسط کاربر رسیده‌اید. %maximum% از %current% رویه‌ها فعال هستند. برای افزودن رویه‌های regex جدید، برخی از رویه‌های موجود را حذف کنید" + }, + "options_limits_warning_dynamic_rules": { + "message": "شما به حد قواعد اضافه‌شده توسط کاربر رسیده‌اید. %maximum% از %current% قواعد فعال هستند." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "شما به حد قوانین اضافه شده توسط کاربر رسیده‌اید. %maximum% از %current% رویه‌ها فعال هستند. برای افزودن رویه‌های جدید، برخی از رویه‌های موجود را حذف کنید" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "شما به حد قوانین ناامن اضافه شده توسط کاربر رسیده‌اید. %maximum% از %current% قوانین ناامن فعال شده‌اند." + }, + "options_limits_warning_static_filters": { + "message": "شما به حد فیلترهای داخلی فعال رسیده‌اید. %maximum% از %current% فیلتر فعال هستند. برای فعال سازی قواعد جدید، برخی از فیلترهای داخلی را غیر فعال کنید." + }, + "options_limits_warning_static_filters_browser": { + "message": "شما به حد مجاز مرورگر خود برای فیلترهای داخلی فعال رسیده‌اید. %maximum% از %current% فیلترها فعال شده‌اند. برای فعال کردن فیلترهای جدید، برخی از فیلترهای داخلی را غیر فعال کنید" + }, + "options_limits_warning_static_regex_rules": { + "message": "شما به حد قواعد عبارات منظم داخلی رسیده‌اید. %maximum% از %current% قواعد عبارات منظم فعال هستند. برای فعال‌سازی قواعد جدید، برخی از فیلترهای داخلی را غیرفعال کنید." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "شما به حد مجاز رویه‌های regex داخلی فعال رسیده‌اید. برای فعال کردن رویه‌های جدید، برخی از فیلترهای داخلی را غیر فعال کنید" + }, + "options_limits_warning_static_rules": { + "message": "شما به حد قواعد داخلی فعال رسیده‌اید. %maximum% از %current% قواعد فعال هستند. برای فعال سازی قواعد جدید، برخی از فیلترهای داخلی را غیر فعال کنید." + }, + "options_limits_warning_static_rules_browser": { + "message": "شما به حد مجاز مرورگر خود برای رویه‌های داخلی فعال رسیده‌اید. برای فعال کردن رویه‌های جدید، برخی از فیلترهای داخلی را غیر فعال کنید" + }, + "options_loader_applying_changes": { + "message": "اِعمال تغییرات..." + }, + "options_miscellaneous_settings": { + "message": "متفرقه" + }, + "options_modified_first_party_cookie": { + "message": "کوکی اولیه ویرایش شده" + }, + "options_modified_third_party_cookie": { + "message": "کوکی شخص ثالث ویرایش شده" + }, + "options_nav_better_than_extension": { + "message": "چرا برنامه تمام عیار AdGuard بهتر از افزونه است؟" + }, + "options_nav_compare": { + "message": "مقایسه" + }, + "options_navigation": { + "message": "پیمایش" + }, + "options_open_changelog": { + "message": "وقایع تغییرات" + }, + "options_open_log": { + "message": "بازکردن وقایع فیلترینگ" + }, + "options_popup_call_to_action": { + "message": "آدرس یا مسیر فایل فیلتر معتبر در کادر بالا وارد کنید." + }, + "options_popup_check_false_description": { + "message": "خطا حین افزودن فیلتر دستی شما" + }, + "options_popup_check_false_title": { + "message": "خطا" + }, + "options_popup_checking_filter": { + "message": "بررسی فیلتر شما" + }, + "options_popup_description": { + "message": "شما مشترک این فیلتر شده اید." + }, + "options_popup_filter_description": { + "message": "توضيحات:" + }, + "options_popup_filter_homepage": { + "message": "صفحه خانگي:" + }, + "options_popup_filter_rules_count": { + "message": "تعداد دستور:" + }, + "options_popup_filter_title": { + "message": "عنوان:" + }, + "options_popup_filter_url": { + "message": "آدرس وب" + }, + "options_popup_filter_version": { + "message": "نسخه:" + }, + "options_popup_import_error_file_description": { + "message": "مشکلی پیش آمده" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "برای درون‌برد این فایل تنظیمات، به AdGuard اجازه دهید تنظیمات مربوط به حریم خصوصی شما را تغییر دهد." + }, + "options_popup_import_error_title": { + "message": "تنظیمات وارد نشد" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "پسوند فایل باید %extension% باشد" + }, + "options_popup_import_success_title": { + "message": "تنظیمات وارد شده" + }, + "options_popup_next_button": { + "message": "بعدی" + }, + "options_popup_subscribe_button": { + "message": "اشتراک" + }, + "options_popup_title_placeholder": { + "message": "نام فیلتر را وارد کنید" + }, + "options_popup_trusted_filter_description": { + "message": "فیلترهای مورد اعتماد میتوانند از ویرایشگرهای دستور قدرتمند استفاده کنند که استفاده نادرست از آن میتواند خطرناک باشد.این کادر را انتخاب نکنید مگر اینکه کاملا به آن اعتماد دارید." + }, + "options_popup_trusted_filter_title": { + "message": "قابل اعتماد" + }, + "options_popup_try_again_button": { + "message": "امتحان دوباره" + }, + "options_popup_update_error": { + "message": "موفق به دریافت بروز رسانی نشد.لطفا بعدا امتحان کنید." + }, + "options_popup_update_filter": { + "message": "بروز رسانی شده است." + }, + "options_popup_update_filters": { + "message": "به روز شد." + }, + "options_popup_update_not_found": { + "message": "فیلترهای شما به‌روز هستند" + }, + "options_popup_update_title_error": { + "message": "خطای بروز رسانی فیلترها" + }, + "options_popup_updating_filters": { + "message": "به‌روزرسانی فیلتر ها..." + }, + "options_popup_url_placeholder": { + "message": "مسیر یا آدرس را وارد کنید" + }, + "options_popup_url_title": { + "message": "اشتراک فیلتر جدید" + }, + "options_popup_version_update_changelog_text": { + "message": "چه چیزی در این نسخه جدید است؟" + }, + "options_popup_version_update_description_major": { + "message": "این ارتقاء افزونه ویژگی های جدید و بهبودی را اضافه می کند." + }, + "options_popup_version_update_description_minor": { + "message": "این نسخه بیشتر حاوی حل مشکلات و بهبودی های کوچک می باشد." + }, + "options_popup_version_update_disable_notification": { + "message": "غيرفعالسازي اطلاع رسانی ها" + }, + "options_popup_version_update_offer": { + "message": "آیا می دانستید پشتیبانی AdGuard فقط به این مرورگر محدود نمی شود؟" + }, + "options_popup_version_update_offer_button_text": { + "message": "بیشتر بدانید" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard extension به نسخه %current_version% بروز شده است" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "باعث می‌شود WebRTC از یک خط مشی نشانی IP سخت‌گیرانه‌تر استفاده کند تا به نهان‌سازی نشانی IP واقعی شما هنگام استفاده از پراکسی یا VPN کمک کند" + }, + "options_prevent_webrtc_leaks_title": { + "message": "جلوگیری از نشت نشانی IP از طریق WebRTC" + }, + "options_privacy": { + "message": "حفاظت ردیابی" + }, + "options_privacy_desc": { + "message": "از فعالیت آنلاین و داده های شخصی شما در برابر ردیاب های وب محافظت می کند" + }, + "options_privacy_policy": { + "message": "سیاست حریم خصوصی" + }, + "options_privacy_title": { + "message": "حفاظت ردیابی" + }, + "options_rate_us_cta": { + "message": "امتیاز بدهید" + }, + "options_remove_client_data_desc": { + "message": "مسدودسازی گوگل کروم از ارسال نسخه آن و اطلاعات ویرایش شده به دامنه های گوگل" + }, + "options_remove_client_data_title": { + "message": "حذف سرساز X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "حذف" + }, + "options_remove_filter_confirm_modal_title": { + "message": "این فیلتر حذف شود؟" + }, + "options_report_bug": { + "message": "گزارش مشکل" + }, + "options_reset_settings": { + "message": "ریست تنظیمات" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "ريست" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "تمام تنظيمات به مقادیر پیش‌فرض خود بازنشانی خواهند شد" + }, + "options_reset_settings_confirm_modal_title": { + "message": "تنظیمات بازنشانی شود؟" + }, + "options_reset_settings_done": { + "message": "تنظیمات بازنشانی شده است" + }, + "options_reset_settings_error": { + "message": "خطا هنگام بازنشانی تنظیمات" + }, + "options_reset_stats": { + "message": "بازنشانی آمار" + }, + "options_reset_stats_done": { + "message": "آمار بازنشانی شد" + }, + "options_rule_limits": { + "message": "محدودیت‌های رویه" + }, + "options_rule_limits_description": { + "message": "Chrome تعداد قوانینی که می‌تواند اعمال شود را محدود می‌کند" + }, + "options_rule_limits_dynamic": { + "message": "قوانین پویا" + }, + "options_rule_limits_dynamic_regex": { + "message": "قوانین Regex — شامل رویه‌های اضافه شده توسط کاربر" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "قواعد دینامیکی ناامن (که برای برخی از اصلاح‌کننده‌های پیشرفته مانند $$redirect یا $$cookie استفاده می‌شوند) — شامل رویه‌های اضافه شده توسط کاربر" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "رویه‌های اضافه شده توسط کاربر، مانند \u003Cuser_rules>رویه‌های کاربر\u003C/user_rules>، \u003Callowlist>تارنماهای موجود در لیست مجاز\u003C/allowlist> و \u003Ccustom_filters>پالایش‌های سفارشی\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "قوانین اضافه شده توسط کاربر، مانند \u003Cuser_rules>قوانین کاربر\u003C/user_rules> و \u003Callowlist>وب‌سایت‌های مجاز در لیست\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% از %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "قوانین ثابت" + }, + "options_rule_limits_static_rules_all": { + "message": "قوانین از \u003Ca>فیلترهای داخلی\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "قوانین Regex - در موارد فوق گنجانده شده است" + }, + "options_rule_limits_static_rulesets": { + "message": "قوانین ثابت" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>فیلترهای داخلی\u003C/a>، مانند مسدود کردن مزاحمت‌ها یا فیلترهای خاص زبان" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "گزینه ۳. اگر از فیلترهای پیش‌فرض فعلی راضی هستید، \u003Ca>این هشدار را ببندید.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "گزینه ۳. اگر از فیلتر پیش‌فرض فعلی راضی هستید، \u003Ca>این هشدار را ببندید.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "گزینه 1. افزونه های غیرضروری مسدودکننده تبلیغات را از مرورگر خود حذف کنید. برای فعال سازی مجدد فیلترهای ذکر شده در بخش «فیلترها قبل از به روز رسانی فعال شده اند»، روی \u003Ca>فیلترها را دوباره فعال کنید.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "گزینه ۲. نصب برنامه AdGuard Ad Blocker: هیچ محدودیتی برای قواعد فیلترینگ ندارد. \u003Ca>برنامه AdGuard را دریافت کنید\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "اقدامات احتمالی شما" + }, + "options_rule_limits_warning_explanation_description": { + "message": "پس از به روز رسانی یا افزودن یک افزونه جدید، از حد مجاز قوانین داخلی فعال فراتر رفت. طبق Manifest V3، مرورگر کروم شما با غیرفعال کردن تمام فیلترهای داخلی برنامه افزودنی به جز فیلترهای پیش فرض، واکنش نشان داد." + }, + "options_rule_limits_warning_explanation_title": { + "message": "چه اتفاقی افتاد؟" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "پالایه‌ها قبل از به‌روزرسانی فعال شدند" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "پالایه‌ها اکنون فعال شدند" + }, + "options_rule_limits_warning_title": { + "message": "مرورگر فهرست فیلتر های فعال را اصلاح کرده است" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "محدودیت‌های رویه را حذف کنید و محافظت گسترده‌ای دریافت کنید که در تمام مرورگرها کار می‌کند" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "نصب برنامه رایانه رومیزی" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "برو به فیلترها" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "مدیریت افزونه‌ها" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "افزونه‌های مرورگر از یک محدودیت یکسان برای رویه‌ها استفاده می‌کنند. حذف سایر مسدود کننده‌های تبلیغات ممکن است رویه‌های بیشتری را برای AdGuard Browser Extension آزاد کند" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "حذف سایر مسدود کننده‌های تبلیغات" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "فیلترهای موردنیاز خود را فعال کنید. فیلترهای مربوط به زبان و حریم خصوصی می‌توانند از رویه‌های زیادی استفاده کنند" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "بررسی فیلترهای موجود" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "در اینجا کاری است که می توانید انجام دهید" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "به حد رسید — برخی فیلترها غیر فعال شدند" + }, + "options_rule_syntax": { + "message": "نحو قوانین" + }, + "options_safebrowsing_enabled": { + "message": "حفاظت از فیشینگ و بد افزار" + }, + "options_safebrowsing_enabled_desc": { + "message": "با استفاده از ماژول امنیت وب گردی AdGuard درباره تارنماهای مخرب و طعمه‌گذاری هشدار می‌دهد. \u003Ca>بیشتر بخوانید\u003C/a>" + }, + "options_select_theme": { + "message": "تم" + }, + "options_select_update_period_12h": { + "message": "12 ساعت" + }, + "options_select_update_period_1h": { + "message": "1 ساعت" + }, + "options_select_update_period_24h": { + "message": "24 ساعت" + }, + "options_select_update_period_48h": { + "message": "48 ساعت" + }, + "options_select_update_period_6h": { + "message": "6 ساعت" + }, + "options_select_update_period_default": { + "message": "پيش فرض" + }, + "options_select_update_period_disabled": { + "message": "غیرفعال شده است" + }, + "options_send_not_track_desc": { + "message": "ارسال \u003Cgpc>کنترل حریم خصوصی جهانی\u003C/gpc> و \u003Cdnt>ردیابی نکنید\u003C/dnt> به وب سایت هایی که بازدید می کنید" + }, + "options_send_not_track_title": { + "message": "درخواست از تارنماها که مرا ردیابی نکنند" + }, + "options_set_update_interval": { + "message": "فاصله بروز رسانی فیلترها" + }, + "options_set_update_interval_desc": { + "message": "برای مسدودسازی مؤثرتر تبلیغات، پالایش‌ها را به‌روزرسانی می‌کند" + }, + "options_settings": { + "message": "تنظیمات AdGuard" + }, + "options_share_settings": { + "message": "تنظیمات را به اشتراک بگذارید" + }, + "options_show_adguard_full_version_title": { + "message": "نمایش اطلاعات در نسخه کامل AdGuard" + }, + "options_show_app_updated_notification": { + "message": "درباره بروز رسانی افزونه اطلاع رسانی کن" + }, + "options_show_blocked_ads_count_title": { + "message": "تعداد تبلیغات مسدود شده را در آیکون افزونه AdGuard نشان می دهد" + }, + "options_show_context_menu_title": { + "message": "افزودن AdGuard به منوی زمینۀ مرورگر" + }, + "options_site": { + "message": "تارنمای رسمی" + }, + "options_skip_to_main_content": { + "message": "پرش به محتوای اصلی" + }, + "options_stealth_general_title": { + "message": "عمومی" + }, + "options_stealth_miscellaneous_title": { + "message": "متفرقه" + }, + "options_stealth_tracking_methods_title": { + "message": "روش های رَدیابی" + }, + "options_strip_tracking_params_description": { + "message": "با استفاده از فیلتر AdGuard URL Tracking، پارامترهای ردیابی را از URL های صفحه حذف می کند" + }, + "options_strip_tracking_params_title": { + "message": "پارامترهای ردیابی را از URL ها حذف کنید" + }, + "options_stripped_tracking_parameters": { + "message": "پارامترهای ردیابی حذف شده" + }, + "options_theme_selector_dark": { + "message": "تاریک" + }, + "options_theme_selector_light": { + "message": "روشن" + }, + "options_theme_selector_system": { + "message": "دستگاه" + }, + "options_third_party_block_cookies_warning": { + "message": "اگر این کلوچک‌ها را مسدود کنید، ممکن است مجبور شوید دوباره به برخی از تارنماها وارد شوید یا با مشکلات مرتبط با کلوچک‌ها مواجه شوید" + }, + "options_third_party_desc": { + "message": "با محدود کردن طول عمر کلوچک‌های طرف ثالث، از ردیابی رفتار شما در چندین صفحه توسط تبلیغ‌کنندگان جلوگیری می‌کند" + }, + "options_third_party_title": { + "message": "حذف کوکی های شخص ثالث" + }, + "options_update_antibanner_filters": { + "message": "بررسی بروز رسانی برای فیلتر" + }, + "options_use_optimized_filters": { + "message": "از فیلترهای بهینه شده استفاده کن" + }, + "options_use_optimized_filters_desc": { + "message": "برای صرفه جویی در ترافیک، از نسخه های کوتاه تر فیلترها فقط با محبوب ترین قوانین استفاده می کند. برای مرورگرهای موبایل مناسب تر است" + }, + "options_user_rules_clear_search": { + "message": "پاک کردن جستجو" + }, + "options_user_rules_create_rule": { + "message": "قاعده ایجاد کنید" + }, + "options_user_rules_delete_all": { + "message": "همه را حذف کنید" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "همه قوانین کاربر برای همیشه حذف خواهند شد" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "همه حذف شود؟" + }, + "options_user_rules_delete_all_success": { + "message": "همه قوانین کاربر حذف شدند" + }, + "options_user_rules_delete_rule": { + "message": "حذف قانون" + }, + "options_user_rules_deleted_notification": { + "message": "رویه کاربر حذف شد:" + }, + "options_user_rules_description_key": { + "message": "رویه‌های شما برای مسدودسازی یا آزادسازی تبلیغات یا کل تارنماها" + }, + "options_user_rules_edit_rule": { + "message": "ویرایش رویه کاربر" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "به ویرایشگر بروید" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "قوانین شما پس از بستن آن اینجا ظاهر خواهد شد" + }, + "options_user_rules_editor_stub_title": { + "message": "ویرایشگر در یک پنجره دیگر باز شد" + }, + "options_user_rules_empty_placeholder": { + "message": "هنوز هیچ قاعده‌ای وجود ندارد" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "در حال برجسته‌سازی رویه‌ها…" + }, + "options_user_rules_import_error": { + "message": "وارد کردن رویه‌های کاربر انجام نشد. لطفاً دوباره تلاش کنید" + }, + "options_user_rules_import_success": { + "message": "قاعده‌های کاربر با موفقیت وارد شدند" + }, + "options_user_rules_menu": { + "message": "اقدامات رویه‌های کاربر" + }, + "options_user_rules_no_match": { + "message": "هیچ چیز یافت نشد" + }, + "options_user_rules_search_placeholder": { + "message": "جستجو" + }, + "options_user_rules_switch_to_editor": { + "message": "تغییر به نمای ویرایشگر" + }, + "options_user_rules_switch_to_list": { + "message": "تغییر به نمای فهرست" + }, + "options_user_rules_undo": { + "message": "آندو" + }, + "options_userfilter": { + "message": "فیلتر کاربر" + }, + "options_userfilter_description_key": { + "message": "می توانید فیلترهای خودتان را در اینجا اضافه کنید. این گزینه برای کاربرانی که با HTML/CSS آشنا هستند توصیه می شود. \u003Ca>آموزش فیلترهای دستی\u003C/a> را برای اضافه کردن فیلترهای خود مطالعه کنید." + }, + "options_userfilter_export": { + "message": "خروجيگيري" + }, + "options_userfilter_import": { + "message": "وارد کردن" + }, + "options_userfilter_leave_subtitle": { + "message": "تغییرات شما در قوانین از دست خواهد رفت" + }, + "options_userfilter_line_break": { + "message": "شکست خط" + }, + "options_userfilter_line_break_off": { + "message": "شکست خط: غیر فعال" + }, + "options_userfilter_line_break_on": { + "message": "شکست خط: فعال" + }, + "options_userfilter_subtitle_key": { + "message": "به شما اجازه می‌دهد رویه‌های پالایشی خود را اضافه کنید" + }, + "popup_abuse_site": { + "message": "ارسال گزارش مشکل" + }, + "popup_adguard_footer_title": { + "message": "از دستگاه تلفن همراه خود محافظت کنید" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "مسدود کردن تبلیغات به‌صورت دستی" + }, + "popup_get_system_wide_protection": { + "message": "دریافت حفاظت در کل سیستم" + }, + "popup_header_cta_link": { + "message": "چگونه محافظت را ارتقا دهیم" + }, + "popup_header_update_filters": { + "message": "بررسی بروز رسانی برای فیلتر" + }, + "popup_limits_exceeded_warning": { + "message": "مرورگر شما فهرست پالایش های داخلی فعال را اصلاح کرده است" + }, + "popup_open_filtering_log": { + "message": "بازکردن وقایع فیلترینگ" + }, + "popup_open_settings": { + "message": "گشایش تنظيمات AdGuard" + }, + "popup_protection_button": { + "message": "فعال شده" + }, + "popup_reset_page_user_rules": { + "message": "حذف رویه‌های کاربر برای این تارنما" + }, + "popup_resume_protection_button": { + "message": "تعمیر کن" + }, + "popup_security_report": { + "message": "گزارش امنیتی وبسایت" + }, + "popup_site_exception_information": { + "message": "پالایش غیرفعال شده است،چون در عملکرد این تارنما تاثیر می‌گذارد." + }, + "popup_site_filtering_state_disabled": { + "message": "حفاظت غيرفعال شده است" + }, + "popup_site_filtering_state_disabling": { + "message": "غیرفعال کردن محافظت..." + }, + "popup_site_filtering_state_enabled": { + "message": "حفاظت فعال شده است" + }, + "popup_site_filtering_state_enabling": { + "message": "فعال‌سازي محافظت..." + }, + "popup_site_filtering_state_loading": { + "message": "بارگیری..." + }, + "popup_site_filtering_state_paused": { + "message": "حفاظت متوقف شده است" + }, + "popup_site_filtering_state_pausing": { + "message": "در حال توقف محافظت..." + }, + "popup_site_filtering_state_resuming": { + "message": "از سرگیری محافظت..." + }, + "popup_site_filtering_state_secure_page": { + "message": "صفحه امن" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "برای همه تارنماها" + }, + "popup_statistics_all_categories": { + "message": "همه" + }, + "popup_statistics_category_advertising": { + "message": "تبلیغات" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "آمار دسته بندی" + }, + "popup_statistics_category_other": { + "message": "ساير" + }, + "popup_statistics_category_social_media": { + "message": "رسانه اجتماعی" + }, + "popup_statistics_category_trackers": { + "message": "رَدیاب" + }, + "popup_statistics_months_apr": { + "message": "آوریل" + }, + "popup_statistics_months_aug": { + "message": "آگوست" + }, + "popup_statistics_months_dec": { + "message": "دسامبر" + }, + "popup_statistics_months_feb": { + "message": "فوریه" + }, + "popup_statistics_months_jan": { + "message": "ژانویه" + }, + "popup_statistics_months_jul": { + "message": "ژوئیه" + }, + "popup_statistics_months_jun": { + "message": "ژوئن" + }, + "popup_statistics_months_mar": { + "message": "مارس" + }, + "popup_statistics_months_may": { + "message": "مِی" + }, + "popup_statistics_months_nov": { + "message": "نوامبر" + }, + "popup_statistics_months_oct": { + "message": "اُکتبر" + }, + "popup_statistics_months_sep": { + "message": "سپتامبر" + }, + "popup_statistics_time_day": { + "message": "24 ساعت" + }, + "popup_statistics_time_label": { + "message": "آمار دوره زمانی" + }, + "popup_statistics_time_month": { + "message": "30 روز" + }, + "popup_statistics_time_week": { + "message": "7 روز" + }, + "popup_statistics_time_year": { + "message": "۱ سال" + }, + "popup_statistics_total": { + "message": "مجموع" + }, + "popup_statistics_week_days_fri": { + "message": "جمعه" + }, + "popup_statistics_week_days_mon": { + "message": "دوشنبه" + }, + "popup_statistics_week_days_sat": { + "message": "شنبه" + }, + "popup_statistics_week_days_sun": { + "message": "یکشنبه" + }, + "popup_statistics_week_days_thu": { + "message": "پنج شنبه" + }, + "popup_statistics_week_days_tue": { + "message": "سه شنبه" + }, + "popup_statistics_week_days_wed": { + "message": "چهارشنبه" + }, + "popup_switch_button": { + "message": "محافظت از تارنمای کنونی" + }, + "popup_tab_actions": { + "message": "اقدامات" + }, + "popup_tab_blocked_all_count": { + "message": "کل مسدود شده: %num%" + }, + "popup_tab_blocked_count": { + "message": "مسدود شده: %num%" + }, + "popup_tab_current_website": { + "message": "تارنمای کنونی" + }, + "popup_tab_statistics": { + "message": "آمارها" + }, + "popup_tabs": { + "message": "زبانه‌ها" + }, + "popup_tooltip_loading": { + "message": "بارگیری..." + }, + "popup_tooltip_protection_disabled": { + "message": "حفاظت غيرفعال شده است" + }, + "popup_tooltip_protection_enabled": { + "message": "حفاظت فعال شده است" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "برخی از قوانین اعمال نمی شود" + }, + "popup_tooltip_update_available": { + "message": "به‌روزرسانی موجود است" + }, + "post_install_loading": { + "message": "بارگذاری افزونه..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "حد قانون در افزونه مرورگر AdGuard تجاوز شده است. لطفا فیلترهای خود را بررسی کرده و مواردی که نیاز ندارید غیرفعال کنید" + }, + "text_collapser_hide_default": { + "message": "پنهان کردن تمام متن" + }, + "text_collapser_show_default": { + "message": "نمایش کامل متن" + }, + "update_available_desc": { + "message": "برای مسدود کردن مؤثر تبلیغات، افزونه و فیلترهای خود را به‌روز نگه دارید" + }, + "update_available_title": { + "message": "بروزرسانی موجودست" + }, + "update_available_update_btn": { + "message": "بروز رسانی" + }, + "update_check": { + "message": "بررسی بروز رسانی" + }, + "update_checking_in_progress": { + "message": "بررسی برای بروز رسانی..." + }, + "update_failed_text": { + "message": "تکمیل به‌روزرسانی ناموفق بود" + }, + "update_failed_try_again_btn": { + "message": "امتحان دوباره" + }, + "update_installing_in_progress_desc": { + "message": "افزونه پس از به‌روزرسانی مجدداً راه‌اندازی خواهد شد" + }, + "update_installing_in_progress_title": { + "message": "بروزرسانی افزونه و فیلترها" + }, + "update_not_needed": { + "message": "افزونه و فیلترهای شما به‌روز هستند" + }, + "update_success_text": { + "message": "افزونه و فیلترها به روز شدند" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fi/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fi/messages.json new file mode 100644 index 0000000..22a600d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fi/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% aktivoitiin automaattisesti." + }, + "alert_popup_filter_enabled_title": { + "message": "Suodattimia aktivoitiin automaattisesti" + }, + "background_tab_title": { + "message": "Taustavälilehti" + }, + "blocking_pages_advanced_button": { + "message": "Lisäasetukset" + }, + "blocking_pages_btn_go_back": { + "message": "Palaa takaisin" + }, + "blocking_pages_btn_proceed": { + "message": "Jatka silti" + }, + "blocking_pages_malware": { + "message": "Sijainnissa \u003Cstrong>%host%\u003C/strong> olevan verkkosivun on raportoitu olevan haittaohjelmasivu ja se on estetty suojausasetustesi perusteella." + }, + "blocking_pages_more_info_button": { + "message": "Lisätietoja" + }, + "blocking_pages_page_title": { + "message": "Pääsy estetty" + }, + "blocking_pages_phishing": { + "message": "Sijainnissa \u003Cstrong>%host%\u003C/strong> olevan verkkosivun on raportoitu olevan tietojenkalastelusivu ja se on estetty suojausasetustesi perusteella." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard esti sivun latauksen seuraavalla suodatussäännöllä" + }, + "blocking_pages_rule_header_title": { + "message": "Estetty AdGuardilla" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard on estänyt pääsyn sivulle" + }, + "clear_button_title": { + "message": "Tyhjennä" + }, + "close_button_title": { + "message": "Sulje" + }, + "context_block_site_ads": { + "message": "Estä mainokset käsin" + }, + "context_complaint_website": { + "message": "Ilmoita ongelmasta" + }, + "context_disable_protection": { + "message": "Pysäytä AdGuardin suojaus" + }, + "context_enable_protection": { + "message": "Palauta AdGuardin suojaus" + }, + "context_open_log": { + "message": "Suodatushistoria" + }, + "context_open_settings": { + "message": "AdGuardin asetukset" + }, + "context_security_report": { + "message": "Sivuston suojausraportti" + }, + "context_site_exception": { + "message": "Sivusto on lisätty poikkeuksiin" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ei voi suodattaa tätä sivua" + }, + "context_site_filtering_off": { + "message": "Älä suodata tätä sivustoa" + }, + "context_site_filtering_on": { + "message": "Suodata tämä sivusto" + }, + "context_site_protection_disabled": { + "message": "AdGuardin suojaus on pysäytetty" + }, + "context_update_antibanner_filters": { + "message": "Tarkista suodatinpäivitykset" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ylivertainen mainosestolaajennus mainontaa ja ponnahduksia vastaan. Estää mainoksia Facebookissa, YouTubessa ja muilla sivustoilla." + }, + "filtering_clear_log_events": { + "message": "Tyhjennä historia" + }, + "filtering_log_actions_menu": { + "message": "Lokitoimintojen suodattaminen" + }, + "filtering_log_assumed_rule_description": { + "message": "Tämä on oletettu sääntö. Lisätietoja saat \u003Ca>-tietokannasta\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-pyyntömenetelmä" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-tilakoodi" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Kolmannen osapuolen pyyntö" + }, + "filtering_log_details_modal_back_button": { + "message": "Takaisin pyyntöön" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Kaunista" + }, + "filtering_log_details_modal_try_again": { + "message": "Yritä uudelleen" + }, + "filtering_log_filter_allowed": { + "message": "Sallitut" + }, + "filtering_log_filter_blocked": { + "message": "Estetty" + }, + "filtering_log_filter_modified": { + "message": "Muokatut" + }, + "filtering_log_filter_regular": { + "message": "Tavalliset" + }, + "filtering_log_filter_user_rules": { + "message": "Käyttäjän säännöt" + }, + "filtering_log_hide_referrer": { + "message": "Viittaaja piilotettu kolmansilta osapuolilta" + }, + "filtering_log_hide_search_queries": { + "message": "Hakulausekkeet piilotettiin" + }, + "filtering_log_in_allowlist": { + "message": "Sivusto on sallittu" + }, + "filtering_log_modified_rules": { + "message": "Muokattuja sääntöjä: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Kyllä, säilytä" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Tämä vaihtoehto voi merkittävästi lisätä muistin käyttöä" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Säilytä loki?" + }, + "filtering_log_preserve_log_off": { + "message": "Älä säilytä lokia" + }, + "filtering_log_preserve_log_on": { + "message": "Säilytä loki" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Älä näytä uudelleen" + }, + "filtering_log_privacy_applied_rules": { + "message": "Seurantasuojaus käytössä" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data-tieto poistettiin" + }, + "filtering_log_search_string": { + "message": "Haku" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Etsi välilehdistä" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track-signaali lähetettiin" + }, + "filtering_log_status_allowed": { + "message": "Sallitut" + }, + "filtering_log_status_blocked": { + "message": "Estetty" + }, + "filtering_log_status_modified": { + "message": "Muokatut" + }, + "filtering_log_status_processed": { + "message": "Käsitelty" + }, + "filtering_log_stealth_rules": { + "message": "Seurannan suojaussäännöt: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Pyynnön alkuperä" + }, + "filtering_log_tag_request_status": { + "message": "Suodatuksen tila" + }, + "filtering_log_tag_request_type": { + "message": "Pyynnön tyyppi" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Sallitut ja estämättömät pyynnöt" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Estetyt pyynnöt" + }, + "filtering_log_tag_tooltip_css": { + "message": "CSS-tyylit" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Ensimmäisen osapuolen pyynnöt" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumentit ja alidokumentit" + }, + "filtering_log_tag_tooltip_img": { + "message": "Kuvat" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skriptit" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Muokatut pyynnöt" + }, + "filtering_log_tag_tooltip_other": { + "message": "Kirjasimet, vasteajat, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Ilman suodatusta käsitellyt pyynnöt" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Kolmannen osapuolen pyynnöt" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Pyyntöä muokattiin käyttäjän säännöillä" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequest- ja fetch-pyynnöt" + }, + "filtering_log_title": { + "message": "Suodatushistoria" + }, + "filtering_menu_open_filters": { + "message": "Mukauta" + }, + "filtering_modal_add_rule": { + "message": "Lisää" + }, + "filtering_modal_allow_title": { + "message": "Lisää salliva sääntö" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Sovellettu sääntö | Sovellettavat säännöt" + }, + "filtering_modal_apply_domains": { + "message": "Käytä kaikille sivustoille" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Oletettu sääntö: | Oletetut säännöt:" + }, + "filtering_modal_block": { + "message": "Estä" + }, + "filtering_modal_block_again": { + "message": "Estä uudelleen" + }, + "filtering_modal_block_title": { + "message": "Lisää estosääntö" + }, + "filtering_modal_converted_to": { + "message": "Muunnettu:" + }, + "filtering_modal_cookie": { + "message": "Eväste:" + }, + "filtering_modal_copied": { + "message": "Kopioitu" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopioi leikepöydälle" + }, + "filtering_modal_declarative_rule": { + "message": "DNR sääntö:" + }, + "filtering_modal_element": { + "message": "Elementti:" + }, + "filtering_modal_exception_title": { + "message": "Lisää poikkeus" + }, + "filtering_modal_filter": { + "message": "Suodatin" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Suodatuksen tila" + }, + "filtering_modal_hide_full_element": { + "message": "Piilota koko elementti" + }, + "filtering_modal_hide_full_rule": { + "message": "Piilota koko sääntö" + }, + "filtering_modal_hide_full_url": { + "message": "Piilota täysi URL" + }, + "filtering_modal_important": { + "message": "Anna säännölle korkeampi tärkeysaste" + }, + "filtering_modal_info_title": { + "message": "Pyynnön tiedot" + }, + "filtering_modal_open_in_new_tab": { + "message": "Avaa uuteen välilehteen" + }, + "filtering_modal_options_desc": { + "message": "Valinnat" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Alkuperäinen sääntö: | Alkuperäiset säännöt:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Mitä tulee sallia" + }, + "filtering_modal_patterns_desc_block": { + "message": "Mitä tulee estää" + }, + "filtering_modal_preview_request_button": { + "message": "Preview" + }, + "filtering_modal_preview_title": { + "message": "Preview" + }, + "filtering_modal_privacy": { + "message": "Seurantaesto" + }, + "filtering_modal_remove_allowlist": { + "message": "Poistettu sallituista" + }, + "filtering_modal_remove_param": { + "message": "Poista pyyntöparametrit" + }, + "filtering_modal_remove_user": { + "message": "Poista sääntö" + }, + "filtering_modal_rule": { + "message": "Sääntö:" + }, + "filtering_modal_rule_text_desc": { + "message": "Sääntö" + }, + "filtering_modal_rules": { + "message": "Säännöt:" + }, + "filtering_modal_show_full_element": { + "message": "Näytä koko elementti" + }, + "filtering_modal_show_full_rule": { + "message": "Näytä koko sääntö" + }, + "filtering_modal_show_full_url": { + "message": "Näytä täysi URL" + }, + "filtering_modal_source": { + "message": "Lähde" + }, + "filtering_modal_status_text_desc": { + "message": "Tila" + }, + "filtering_modal_status_text_error": { + "message": "Sovelluksen esikatselun lataaminen epäonnistui. Yritä uudelleen" + }, + "filtering_modal_status_text_loading": { + "message": "Ladataan..." + }, + "filtering_modal_third_party": { + "message": "Käytä vain kolmansien osapuolten pyynnöille" + }, + "filtering_modal_type": { + "message": "Tyyppi" + }, + "filtering_modal_unblock": { + "message": "Salli" + }, + "filtering_refresh_tab_short": { + "message": "Päivitä" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Pävitä sivu" + }, + "filtering_table_action": { + "message": "Toiminto" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Mitään ei löytynyt. \u003Creset>Poista suodattimet käytöstä\u003C/reset> tai \u003Crefresh>lataa sivu uudelleen\u003C/refresh> nähdäksesi lokitietueet" + }, + "filtering_table_filter": { + "message": "Suodatin" + }, + "filtering_table_open_details": { + "message": "Avaa tiedot" + }, + "filtering_table_rule": { + "message": "Suodatussääntö" + }, + "filtering_table_source": { + "message": "Lähde" + }, + "filtering_table_status": { + "message": "Tila" + }, + "filtering_table_type": { + "message": "Tyyppi" + }, + "filtering_type_all": { + "message": "Kaikki" + }, + "filtering_type_other": { + "message": "Muut" + }, + "filters_download_loading": { + "message": "Odota kun suodatintietokanta latautuu..." + }, + "filters_download_title": { + "message": "Suodatintietokanta latautuu..." + }, + "fullscreen_user_rules_title": { + "message": "Käyttäjän säännöt" + }, + "group_description_adblocking": { + "message": "Määritä mainosten esto täällä käsitelläksesi ärsyttäviä bannereita, ponnahdusikkunoita, videomainoksia ja vastaavia kerta kaikkiaan" + }, + "group_description_annoyances": { + "message": "Poista ponnahdusikkunat ja muut ärsyttävät ilmoitukset, kuten evästeilmoitukset" + }, + "group_description_custom": { + "message": "Luo omia suodattimia hienosäätääksesi suodatuksen haluamaksesi." + }, + "group_description_lang": { + "message": "Älä rajoita itseäsi — estä mainokset kaikenkielisillä verkkosivustoilla" + }, + "group_description_miscellaneous": { + "message": "Lisää asetuksia verkkoselauksesi muokkaamiseksi AdGuardilla vielä enemmän" + }, + "group_description_security": { + "message": "Suojaudu haittaohjelmilta, tietojenkalastelulta ja muilta verkon uhkilta" + }, + "group_description_social": { + "message": "Piilota ei toivotut \"Tykkää\"/\"Jaa\" -painikkeet ja muut sosiaalisen median vimpaimet" + }, + "group_description_stealth": { + "message": "Suojaa identiteettiäsi ja arkaluontoisia henkilötietojasi tuhansilta verkkoseurannoita estämällä kaikki yleisimmät seurantatavat" + }, + "name": { + "message": "AdGuard Mainosesto" + }, + "opera_search_permission_dont_show": { + "message": "Älä näytä uudelleen" + }, + "opera_search_permission_go_to_settings": { + "message": "Siirry asetuksiin" + }, + "opera_search_permission_warning": { + "message": "Estääksesi hakumainoksia, salli pääsy hakusivun tuloksiin selaimen asetuksista" + }, + "options_about": { + "message": "Tietoja" + }, + "options_about_libs": { + "message": "Käytetyt kirjastot" + }, + "options_about_title": { + "message": "AdGuard Selainlaajennus" + }, + "options_about_update_available": { + "message": "Versio %version% on saatavilla. Se ladataan ja asennetaan automaattisesti." + }, + "options_about_version": { + "message": "Versio" + }, + "options_acknowledgment": { + "message": "Kiitokset" + }, + "options_add_custom_filter": { + "message": "Lisää oma suodatin" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Lisää" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Tarkastetaan suodatinta..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL-osoite palautti verkkosivun suodatinluettelon sijaan. Anna suora linkki suodatintiedostoon." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Yritä uudelleen tai ota yhteyttä asiakaspalveluun." + }, + "options_add_custom_filter_modal_error_title": { + "message": "Mukautetun suodattimen lisääminen epäonnistui" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Suodattimen nimi:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Luotettu" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Luotetut suodattimet voivat käyttää tehokkaita sääntömuutoksia – varmista, että käytät suodattimia luotettavilta kehittäjiltä." + }, + "options_add_custom_filter_modal_title": { + "message": "Lisää oma suodatin" + }, + "options_all_limits_exceeded_warning": { + "message": "Olet saavuttanut aktiivisten sisäänrakennettujen sääntöjen rajan. Selaimesi on muokannut aktiivisten sisäänrakennettujen suodattimien luetteloa. Käytössä olevien suodattimien määrä on muuttunut arvosta %expected% arvoon %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Olet saavuttanut selaimesi aktiivisten sisäänrakennettujen sääntöjen rajan. Selaimesi on vähentänyt aktiivisten sisäänrakennettujen suodattimien luettelon osoitteesta %expected% osoitteeseen %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Selaimesi rajoittaa \u003Cexternal-link>tietyntyyppisiä sääntöjä\u003C/external-link>. Jos haluat soveltaa kaikkia sääntöjä, vaihda selaimen \u003Csettings-link>lisäasetuksissa\u003C/settings-link> \u003Cb>Salli käyttäjän skriptit\u003C/b>" + }, + "options_allowlist": { + "message": "Sallittujen lista" + }, + "options_allowlist_alert_invert": { + "message": "Sallittujen lista on käännetty päinvastaiseksi. Mainokset estetään vain sivustoilla, jotka on lisätty siihen." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Lopeta kääntäminen\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ei estä mainoksia ja seurantalaitteita listalla olevilla verkkosivustoilla" + }, + "options_allowlist_invalid_entries": { + "message": "Tallenna vain verkkotunnukset tai URL-osoitteet. Nämä täytyy korjata: %entries%" + }, + "options_allowlist_invert": { + "message": "Käänteinen sallittujen lista" + }, + "options_allowlist_invert_desc": { + "message": "Estää mainokset ja seurantalaitteet vain sallittujen verkkosivustojen kohdalla" + }, + "options_allowlist_leave_subtitle": { + "message": "Muutokset sallittujen luetteloon menetetään" + }, + "options_allowlist_menu": { + "message": "Sallittujen luettelon toiminnot" + }, + "options_anonymized_usage_data_description": { + "message": "Lähettää AdGuardille nimettömiä tilastoja laajennusten käytöstä. \u003Cbutton>Lue lisää\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Selvä" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Nämä tiedot sisältävät:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Napsauttamiesi painikkeiden nimet" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Niiden näyttöjen nimet, joiden kanssa olet vuorovaikutuksessa" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Istuntojen tunnisteet" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Nämä tiedot ovat anonyymejä ja niitä käytetään vain sisäisesti. Emme koskaan jaa sitä kolmansien osapuolten kanssa" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Tarvitsemme näitä tietoja AdGuardin toiminnallisuuden analysointiin ja parantamiseen" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Laajennuksen käyttötiedot" + }, + "options_anonymized_usage_data_title": { + "message": "Lähetä anonyymisti sovelluksen käyttödataa" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Tämä suodatin on jo lisätty" + }, + "options_antibanner_custom_group": { + "message": "Mukautettu" + }, + "options_antibanner_custom_group_description": { + "message": "Voit lisätä suodattimia tiedostosta tai URL-osoitteesta" + }, + "options_antibanner_rules_count": { + "message": "Säännöt: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Päivitetty: %date%" + }, + "options_block_acceptable_ads": { + "message": "Estä hakukonemainokset ja verkkosivustojen oma mainostaminen" + }, + "options_block_acceptable_ads_desc": { + "message": "Estää mainokset hakutuloksissa ja verkkosivustojen itsensä mainostamisen. \u003Ca>Lue lisää\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Jos haluat estää evästeet, aseta käyttöiäksi 0" + }, + "options_block_known_trackers_description": { + "message": "Estää verkon seuranta- ja analytiikkajärjestelmät AdGuardin seurantaestosuodattimella." + }, + "options_block_known_trackers_title": { + "message": "Estä seurannat" + }, + "options_check_update_progress": { + "message": "Tarkistetaan..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Tyhjennä" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Kaikki datan käyttöä koskevat tilastot poistetaan pysyvästi" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Haluatko tyhjentää tilastot?" + }, + "options_clipboard_permission_warning": { + "message": "Sääntöjen kopioimiseksi ja liittämiseksi salli AdGuardin käyttää leikepöytää. \u003Ca>Salli\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Lähettää AdGuardille nimettömiä tilastoja mainossuodattimen käytöstä. \u003Ca>Lue lisää\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Auta kehittämään AdGuard-suodattimia" + }, + "options_coming_soon": { + "message": "Tulossa pian" + }, + "options_confirm_modal_cancel_button": { + "message": "Peruuta" + }, + "options_copyright": { + "message": "Kaikki oikeudet pidätetään." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Käyttääksesi omia suodattimia, kytke \u003Cb>Salli käyttäjän skriptit\u003C/b> selaimesi \u003Csettings-link>laajennuksen asetuksissa\u003C/settings-link> päälle" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Käyttääksesi mukautettuja suodattimia, ota käyttöön \u003Cb>kehittäjätila\u003C/b> selaimesi \u003Csettings-link>laajennusasetuksissa\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Hanki AdGuard Linuxille" + }, + "options_desktop_app_promo_button_mac": { + "message": "Hanki AdGuard Macille" + }, + "options_desktop_app_promo_button_windows": { + "message": "Hanki AdGuard Windowsille" + }, + "options_desktop_app_promo_description": { + "message": "Sovellukset kuten Spotify, Discord tai Zoom voivat edelleen näyttää mainoksia ja seurata aktiivisuuttasi" + }, + "options_desktop_app_promo_subdescription": { + "message": "Työpöytäsovelluksemme voi suojata sinua niiltä" + }, + "options_desktop_app_promo_title": { + "message": "Laajennus suojaa vain selainta" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Selaimesi rajoittaa \u003Cexternal-link>tietyntyyppisiä sääntöjä\u003C/external-link>. Jos haluat käyttää kaikkia sääntöjä, ota käyttöön \u003Cb>Kehittäjätila\u003C/b> selaimesi \u003Csettings-link>laajennuksen asetuksista\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Estää WebRTC:n, joka voi vuotaa todellisen IP-osoitteesi, vaikka käyttäisit välityspalvelinta tai VPN: ää. Jotkut messengerit, suoratoistopalvelut tai pelit saattavat lakata toimimasta kunnolla" + }, + "options_disable_webrtc_title": { + "message": "Estä WebRTC" + }, + "options_discuss": { + "message": "Keskustele AdGuardista" + }, + "options_do_you_like_question": { + "message": "Pidätkö AdGuardista?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Poistu ikkunatilasta" + }, + "options_editor_indicator_saved": { + "message": "Säästetty" + }, + "options_editor_indicator_saving": { + "message": "Tallennetaan..." + }, + "options_editor_leave_cancel": { + "message": "Palaa muokkaukseen" + }, + "options_editor_leave_confirm": { + "message": "Kyllä, sulje" + }, + "options_editor_leave_title": { + "message": "Jätä tallentamatta?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Avaa editori uudessa ikkunassa" + }, + "options_editor_save": { + "message": "Tallenna" + }, + "options_editor_save_error": { + "message": "Muutosten tallentaminen epäonnistui. Yritä uudelleen tai ota yhteyttä tukeen" + }, + "options_empty_custom_filter": { + "message": "Sinulla ei vielä ole omia suodattimia" + }, + "options_enable_autodetect_filter": { + "message": "Käytä sopivimpia suodattimia automaattisesti" + }, + "options_enable_autodetect_filter_desc": { + "message": "Tunnistaa verkkosivuston kielen ja aktivoi asianmukaiset suodattimet" + }, + "options_export_settings": { + "message": "Vie asetukset" + }, + "options_filters": { + "message": "Suodattimet" + }, + "options_filters_annoyances_consent_description": { + "message": "Olet ottamassa käyttöön yhden tai useamman ärsytyssuodattimen. Ne estävät elementtejä, jotka eivät joko liity verkkosivuston sisältöön tai liittyvät käyttökokemukseesi, mutta ärsyttävät sitä. Verkkosivustojen omistajat voivat pitää näitä elementtejä pakollisina: jos estät ne, saatat rikkoa heidän ehtojaan; Jotkin verkkosivustojen toiminnot eivät ehkä ole käytettävissä tai eivät välttämättä toimi oikein. Ymmärrät ja hyväksyt, että olet yksin vastuussa vierailemiesi verkkosivustojen käyttöehtojen noudattamisesta ja että AdGuard ei ole vastuussa tuotteidemme avulla vierailemiesi verkkosivustojen käyttöehtojen noudattamisesta." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Ota käyttöön" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Verkkosivusto" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Lisätietoja siitä, mitä AdGuardin ärsytyssuodattimet estävät, löydät katsosta \u003Ca>Suodatinkäytäntö\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Ota suodattimet käyttöön?" + }, + "options_filters_annoyances_consent_title": { + "message": "Lue huolellisesti, ennen ärsykesuodattimien käyttöönottoa" + }, + "options_filters_back_button": { + "message": "Palaa takaisin" + }, + "options_filters_empty_title": { + "message": "Ei tuloksia" + }, + "options_filters_enabled": { + "message": "Käytössä:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% ja %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% ja %more% muuta" + }, + "options_filters_enabled_per_group": { + "message": "Käytössä: %current%/%total%" + }, + "options_filters_filter_link": { + "message": "Avaa verkkosivusto" + }, + "options_filters_filter_tags": { + "message": "Suodatin tunnisteet" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Olet merkinnyt suodattimen luotettavaksi." + }, + "options_filters_filter_updated": { + "message": "päivitetty:" + }, + "options_filters_filter_version": { + "message": "versio:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Säännöt yhteensä: %num%" + }, + "options_filters_last_checked": { + "message": "Viimeksi tarkistettu: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Kaikki suodattimet" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Ei käytössä" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Käytössä" + }, + "options_filters_no_enabled": { + "message": "Suodattimia ei ole käytössä" + }, + "options_filters_of_group": { + "message": "Ryhmän \"%groupName%\" suodattimet" + }, + "options_filters_search": { + "message": "Haku" + }, + "options_filters_search_filter": { + "message": "Etsi suodattimista" + }, + "options_first_party_block_cookies_warning": { + "message": "Jos estät nämä evästeet, jotkin verkkosivustot saattavat lakata toimimasta" + }, + "options_first_party_desc": { + "message": "Estää verkkosivustoja muistamasta tietojasi, kuten kirjautumistietojasi ja kieliasetuksiasi, rajoittamalla ensimmäisen osapuolen evästeiden käyttöikää" + }, + "options_first_party_title": { + "message": "Poista ensimmäisen osapuolen evästeet (ei suositella)" + }, + "options_general_settings": { + "message": "Yleiset" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Estä kolmansia osapuolia näkemästä mistä saavuit ja millä sivustoilla olet vieraillut" + }, + "options_hide_referrer_title": { + "message": "Piilota Referer-viitetieto ulkopuolisilta" + }, + "options_hide_search_queries_desc": { + "message": "Piilottaa hakusi hakukoneiden tulosten kautta vierailluilta verkkosivustoilta" + }, + "options_hide_search_queries_title": { + "message": "Piilota hakulausekkeet" + }, + "options_import_configuration_applying_subtitle": { + "message": "Korvaa nykyiset asetukset tuoduilla asetuksilla. Suodatus on poistettu käytöstä tuonnin aikana" + }, + "options_import_configuration_applying_title": { + "message": "Tuodaan..." + }, + "options_import_configuration_confirm_button": { + "message": "Tuo" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Tuodut asetukset korvaavat nykyiset asetukset. Tämä ei vaikuta muihin asetuksiin" + }, + "options_import_configuration_confirm_title": { + "message": "Tuo asetukset" + }, + "options_import_configuration_error_button": { + "message": "Sulje" + }, + "options_import_configuration_error_subtitle": { + "message": "Tarkista tuontilinkki ja yritä uudelleen. Jos se ei auta, ota yhteyttä asiakaspalveluun" + }, + "options_import_configuration_error_title": { + "message": "Asetusten tuonti epäonnistui" + }, + "options_import_configuration_success_button": { + "message": "Sulje" + }, + "options_import_configuration_success_subtitle": { + "message": "Asetusten tuonti onnistui" + }, + "options_import_configuration_success_title": { + "message": "Kaikki kunnossa" + }, + "options_import_settings": { + "message": "Tuo asetukset" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Käännä" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Mainokset ja seurannat estetään vain sallittujen listassa olevilla verkkosivustoilla" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Käänteinen sallittu lista?" + }, + "options_leave_feedback": { + "message": "Lähetä palautetta" + }, + "options_lifetime_minutes": { + "message": "Elinikä, minuuttia" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Olet saavuttanut käyttäjän lisäämien regex-sääntöjen määrän. %maximum% / %current% regex-säännöt ovat käytössä." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Olet saavuttanut käyttäjien lisäämien regex-sääntöjen rajan. %maximum% of %current% Säännöt ovat käytössä. Uusien regex-sääntöjen lisäämiseksi poista joitakin olemassa olevia" + }, + "options_limits_warning_dynamic_rules": { + "message": "Olet saavuttanut käyttäjien lisäämien sääntöjen enimmäismäärän. %maximum% / %current% säännöt ovat käytössä." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Olet saavuttanut käyttäjien lisäämien sääntöjen rajan. %maximum% of %current% Säännöt ovat käytössä. Uusien sääntöjen lisäämiseksi poista joitakin olemassa olevia" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Olet saavuttanut käyttäjien lisäämien vaarallisten sääntöjen rajan. %maximum% ja %current% vaaralliset säännöt ovat käytössä." + }, + "options_limits_warning_static_filters": { + "message": "Olet saavuttanut aktiivisten sisäänrakennettujen suodattimien määrän. %maximum% of %current% suodattimet ovat käytössä. Voit aktivoida uusia sääntöjä poistamalla joitakin sisäänrakennettuja suodattimia käytöstä." + }, + "options_limits_warning_static_filters_browser": { + "message": "Olet saavuttanut selaimesi rajan aktiivisille sisäänrakennetuille suodattimille. %maximum% of %current% Suodattimet ovat käytössä. Uusien suodattimien aktivoimiseksi poista käytöstä joitakin sisäänrakennettuja suodattimia" + }, + "options_limits_warning_static_regex_rules": { + "message": "Olet saavuttanut aktiivisten sisäänrakennettujen regex-sääntöjen enimmäisrajan. %maximum% / %current% regex-säännöt ovat käytössä. Ota uudet säännöt käyttöön poistamalla käytöstä jotkin sisäänrakennetut suodattimet." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Olet saavuttanut aktiivisten sisäänrakennettujen regex-sääntöjen rajan. Uusien sääntöjen aktivoimiseksi poista käytöstä joitakin sisäänrakennettuja suodattimia" + }, + "options_limits_warning_static_rules": { + "message": "Aktiivisten sisäänrakennettujen sääntöjen raja on saavutettu. %maximum% of %current% säännöt ovat käytössä. Jos haluat aktivoida uusia sääntöjä, poista joitakin sisäänrakennettuja suodattimia käytöstä." + }, + "options_limits_warning_static_rules_browser": { + "message": "Olet saavuttanut selaimesi rajan aktiivisille sisäänrakennetuille säännöille. Uusien sääntöjen aktivoimiseksi poista käytöstä joitakin sisäänrakennettuja suodattimia" + }, + "options_loader_applying_changes": { + "message": "Muutoksia otetaan käyttöön..." + }, + "options_miscellaneous_settings": { + "message": "Muut asetukset" + }, + "options_modified_first_party_cookie": { + "message": "Sovelletaan ensimmäisen osapuolen evästeiden rajoituksia" + }, + "options_modified_third_party_cookie": { + "message": "Sovelletaan kolmannen osapuolen evästeiden rajoituksia" + }, + "options_nav_better_than_extension": { + "message": "Mikä tekee AdGuard-sovelluksesta laajennusta paremman?" + }, + "options_nav_compare": { + "message": "Vertaile" + }, + "options_navigation": { + "message": "Navigointi" + }, + "options_open_changelog": { + "message": "Muutoshistoria" + }, + "options_open_log": { + "message": "Suodatushistoria" + }, + "options_popup_call_to_action": { + "message": "Syötä yllä olevaan kenttään suodattimen toimiva URL-osoite tai tiedostosijainti." + }, + "options_popup_check_false_description": { + "message": "Virhe lisättäessä suodatintasi." + }, + "options_popup_check_false_title": { + "message": "Virhe" + }, + "options_popup_checking_filter": { + "message": "Tarkastetaan suodatinta" + }, + "options_popup_description": { + "message": "Sinut liitetään suodattimen tilaajaksi." + }, + "options_popup_filter_description": { + "message": "Kuvaus:" + }, + "options_popup_filter_homepage": { + "message": "Verkkosivusto:" + }, + "options_popup_filter_rules_count": { + "message": "Sääntöjen määrä:" + }, + "options_popup_filter_title": { + "message": "Nimi:" + }, + "options_popup_filter_url": { + "message": "URL-osoite" + }, + "options_popup_filter_version": { + "message": "Versio:" + }, + "options_popup_import_error_file_description": { + "message": "Jokin meni pieleen." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Tuodaksesi tämän asetustiedoston, salli AdGuardin muuttaa tietosuojaan liittyviä asetuksiasi." + }, + "options_popup_import_error_title": { + "message": "Asetusten tuonti epäonnistui" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Tiedostopäätteen on oltava %extension%" + }, + "options_popup_import_success_title": { + "message": "Asetukset tuotu" + }, + "options_popup_next_button": { + "message": "Seuraava" + }, + "options_popup_subscribe_button": { + "message": "Tilaa" + }, + "options_popup_title_placeholder": { + "message": "Syötä suodattimelle nimi" + }, + "options_popup_trusted_filter_description": { + "message": "Luotetut suodattimet pystyvät hyödyntämään tekohokkaita suodatus ominaisuuksia, jotka saattavat olla vaarallisia väärissä käsissä. Älä valitse tätä, jos et luota siihen täysin." + }, + "options_popup_trusted_filter_title": { + "message": "Luotettu" + }, + "options_popup_try_again_button": { + "message": "Yritä uudelleen" + }, + "options_popup_update_error": { + "message": "Päivtysten nouto epäonnistui. Yritä myöhemmin uudelleen." + }, + "options_popup_update_filter": { + "message": "päivitettiin." + }, + "options_popup_update_filters": { + "message": "päivitettiin." + }, + "options_popup_update_not_found": { + "message": "Suodattimesi ovat ajan tasalla" + }, + "options_popup_update_title_error": { + "message": "Virhe päivitettäessä suodattimia" + }, + "options_popup_updating_filters": { + "message": "Päivitetään suodattimia..." + }, + "options_popup_url_placeholder": { + "message": "Syötä URL tai tiedostosijainti" + }, + "options_popup_url_title": { + "message": "Uusi suodatintilaus" + }, + "options_popup_version_update_changelog_text": { + "message": "Mitä uutta tämä versio sisältää?" + }, + "options_popup_version_update_description_major": { + "message": "Tämä on merkittävä päivitys, joka sisältää paljon uusia ominaisuuksia ja parannuksia." + }, + "options_popup_version_update_description_minor": { + "message": "Tämä versio sisältää lähinnä virhekorjauksia ja pieniä parannuksia." + }, + "options_popup_version_update_disable_notification": { + "message": "Poista ilmoitukset" + }, + "options_popup_version_update_offer": { + "message": "Tiesitkö, ettei AdGuard ole vain tätä selainta varten?" + }, + "options_popup_version_update_offer_button_text": { + "message": "LUE LISÄÄ" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard-laajennus päivitettiin versioon %current_version%." + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Saa WebRTC:n käyttämään tiukempaa IP-osoitekäytäntöä pitämään todellisen IP-osoitteesi piilossa, kun käytät välityspalvelinta tai VPN: ää" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Estä IP-osoitteiden vuodot WebRTC:n avulla" + }, + "options_privacy": { + "message": "Seurantaesto" + }, + "options_privacy_desc": { + "message": "Suojaa verkkotoimintaasi ja henkilökohtaisia tietojasi verkkoserannoilta." + }, + "options_privacy_policy": { + "message": "Tietosuojakäytäntö" + }, + "options_privacy_title": { + "message": "Seurantaesto" + }, + "options_rate_us_cta": { + "message": "Arvostele tämä" + }, + "options_remove_client_data_desc": { + "message": "Estää Google Chromea lähettämästä versionumeroaan ja kustomointitietoja Googlen palvelimille" + }, + "options_remove_client_data_title": { + "message": "Poista X-Client-Data-tieto" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Poista" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Poistetaanko tämä suodatin?" + }, + "options_report_bug": { + "message": "Ilmoita viasta" + }, + "options_reset_settings": { + "message": "Tyhjennä asetukset" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Palauta" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Kaikki asetukset palautetaan oletusarvoihinsa" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Palautetaanko asetukset?" + }, + "options_reset_settings_done": { + "message": "Asetukset on palautettu" + }, + "options_reset_settings_error": { + "message": "Virhe asetusten palautuksessa" + }, + "options_reset_stats": { + "message": "Tyhjennä tilastot" + }, + "options_reset_stats_done": { + "message": "Tilastot on tyhjennetty" + }, + "options_rule_limits": { + "message": "Sääntörajoitukset" + }, + "options_rule_limits_description": { + "message": "Chrome rajoittaa sovellettavien sääntöjen määrää" + }, + "options_rule_limits_dynamic": { + "message": "Dynaamiset säännöt" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-säännöt — sisältyvät käyttäjien lisäämiin sääntöihin" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Vaaralliset dynaamiset säännöt (käytetään joissakin edistyneissä muuntimissa, kuten $$redirect tai $$cookie) — sisältyvät käyttäjien lisäämiin sääntöihin" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Käyttäjän lisäämät säännöt, kuten \u003Cuser_rules>Käyttäjän säännöt\u003C/user_rules>, \u003Callowlist>Sallitut sivustot\u003C/allowlist> ja \u003Ccustom_filters>Omat suodattimet\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Käyttäjän lisäämät säännöt, kuten \u003Cuser_rules>Käyttäjän säännöt\u003C/user_rules> ja \u003Callowlist>Sallitut verkkosivustot\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current%/%maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Staattiset säännöt" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>Sisäänrakennettujen\u003C/a> suodattimien säännöt" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-säännöt – sisältyvät yllä olevaan" + }, + "options_rule_limits_static_rulesets": { + "message": "Staattiset sääntöjoukot" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Sisäänrakennetut suodattimet\u003C/a>, kuten \"Ärsykkeet\" tai \"Kielikohtaiset suodattimet\"" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Vaihtoehto 3. Jos olet tyytyväinen tällä hetkellä käytössä oleviin oletussuodattimiin, \u003Ca>sulje tämä varoitus\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Vaihtoehto 3. Jos olet tyytyväinen tällä hetkellä käytössä oleviin oletussuodattimiin, \u003Ca>sulje tämä varoitus\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Vaihtoehto 1. Poista tarpeettomat mainosestolaajennukset selaimestasi. Jos haluat palauttaa \"Suodattimet, jotka olivat käytössä ennen päivitystä\" -kohdassa mainitut suodattimet käyttöön, paina \u003Ca>aktivoi suodattimet uudelleen\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Vaihtoehto 2. Asenna AdGuard Ad Blocker -sovellus: sillä ei ole rajoituksia suodatussäännöille. \u003Ca>Hanki AdGuard-sovellus\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Mahdolliset toiminnot" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Aktiivisten sisäänrakennettujen sääntöjen raja ylittyi päivityksen tai uuden laajennuksen asennuksen jälkeen. Manifest V3 -määritysten mukaisesti Chrome-selaimesi reagoi poistamalla käytöstä oletussuodattimia lukuun ottamatta kaikki laajennuksen sisäänrakennetut suodattimet." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Mitä tapahtui?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Suodattimet, jotka olivat käytössä ennen päivitystä" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Suodattimet, jotka ovat nyt käytössä" + }, + "options_rule_limits_warning_title": { + "message": "Selain on muokannut aktiivisten suodattimien luetteloa" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Poista sääntöjen rajoitukset ja hanki laajennettu suojaus, joka toimii kaikissa selaimissa" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Asenna työpöytäsovellus" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Siirry suodattimiin" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Hallitse laajennuksia" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Selainlaajennukset jakavat saman sääntörajan. Muiden mainosten estäjien poistaminen voi vapauttaa lisää sääntöjä AdGuard-selainlaajennukselle" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Poista muut mainosten estäjät" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Ota tarvitsemasi suodattimet käyttöön. Kielikohtaisissa ja tietosuojasuodattimissa voi olla useita sääntöjä" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Tarkista käytettävissä olevat suodattimet" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Voit toimia seuraavasti" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Raja saavutettu — jotkut suodattimet poistettiin käytöstä" + }, + "options_rule_syntax": { + "message": "Sääntösyntaksi" + }, + "options_safebrowsing_enabled": { + "message": "Tietojenkalastelu- ja haittaohjelmasuojaus" + }, + "options_safebrowsing_enabled_desc": { + "message": "Varoittaa haitallisista ja tietojenkalastelusivustoista, jotka käyttävät AdGuard Browsing Security -moduulia. \u003Ca>Lue lisää\u003C/a>" + }, + "options_select_theme": { + "message": "Teema" + }, + "options_select_update_period_12h": { + "message": "12 tuntia" + }, + "options_select_update_period_1h": { + "message": "1 tunti" + }, + "options_select_update_period_24h": { + "message": "24 tunnilta" + }, + "options_select_update_period_48h": { + "message": "48 tunnilta" + }, + "options_select_update_period_6h": { + "message": "6 tuntia" + }, + "options_select_update_period_default": { + "message": "Oletus" + }, + "options_select_update_period_disabled": { + "message": "Ei käytössä" + }, + "options_send_not_track_desc": { + "message": "Lähetä \u003Cgpc>Global Privacy Control\u003C/gpc> ja \u003Cdnt>Do Not Track\u003C/dnt> -signaalit käyttämillesi verkkosivustoille" + }, + "options_send_not_track_title": { + "message": "Pyydä, etteivät verkkosivustot seuraa minua" + }, + "options_set_update_interval": { + "message": "Suodatinten automaattinen päivitys" + }, + "options_set_update_interval_desc": { + "message": "Pitää suodattimet ajan tasalla, jotta mainosten estäminen olisi tehokkaampaa" + }, + "options_settings": { + "message": "AdGuardin asetukset" + }, + "options_share_settings": { + "message": "Jaa asetuksesi" + }, + "options_show_adguard_full_version_title": { + "message": "Näytä tietoja AdGuardin täysversiosta" + }, + "options_show_app_updated_notification": { + "message": "Ilmoita laajennuksen päivityksistä" + }, + "options_show_blocked_ads_count_title": { + "message": "Näytä estettyjen mainosten määrä AdGuard-laajennuksen kuvakkeessa" + }, + "options_show_context_menu_title": { + "message": "Lisää AdGuard selaimen valikkoon" + }, + "options_site": { + "message": "Virallinen sivusto" + }, + "options_skip_to_main_content": { + "message": "Siirry pääsisältöön" + }, + "options_stealth_general_title": { + "message": "Yleiset" + }, + "options_stealth_miscellaneous_title": { + "message": "Muut asetukset" + }, + "options_stealth_tracking_methods_title": { + "message": "Seurantamenetelmät" + }, + "options_strip_tracking_params_description": { + "message": "Poistaa seurantaparametrit sivujen URL-osoitteista AdGuardin URL-seurannanestosuodattimella." + }, + "options_strip_tracking_params_title": { + "message": "Poista seurantaparametrit URL-osoitteista" + }, + "options_stripped_tracking_parameters": { + "message": "Poistetaan seurantaparametrit" + }, + "options_theme_selector_dark": { + "message": "Tumma" + }, + "options_theme_selector_light": { + "message": "Vaalea" + }, + "options_theme_selector_system": { + "message": "Järjestelmä" + }, + "options_third_party_block_cookies_warning": { + "message": "Jos estät nämä evästeet, saatat joutua kirjautumaan uudelleen joillekin verkkosivustoille tai kohtaat muita evästeisiin liittyviä ongelmia" + }, + "options_third_party_desc": { + "message": "Estää mainostajia seuraamasta käyttäytymistäsi useilla sivuilla rajoittamalla kolmannen osapuolen evästeiden käyttöikää" + }, + "options_third_party_title": { + "message": "Poista kolmannen osapuolen evästeet" + }, + "options_update_antibanner_filters": { + "message": "Tarkista suodatinpäivitykset" + }, + "options_use_optimized_filters": { + "message": "Käytä optimoituja suodattimia" + }, + "options_use_optimized_filters_desc": { + "message": "Käyttää lyhyempiä suodatinversioita, jotka sisältävät vain suosituimmat säännöt tietoliikenteen säästöön. Sopii paremmin mobiiliselaimille." + }, + "options_user_rules_clear_search": { + "message": "Tyhjennä haku" + }, + "options_user_rules_create_rule": { + "message": "Luo sääntö" + }, + "options_user_rules_delete_all": { + "message": "Poista kaikki" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Kaikki käyttäjän säännöt poistetaan pysyvästi." + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Poistetaanko kaikki?" + }, + "options_user_rules_delete_all_success": { + "message": "Kaikki käyttäjän säännöt poistettiin" + }, + "options_user_rules_delete_rule": { + "message": "Poista sääntö" + }, + "options_user_rules_deleted_notification": { + "message": "Käyttäjäsääntö poistettu:" + }, + "options_user_rules_description_key": { + "message": "Omat sääntösi mainosten tai kokonaisien verkkosivujen estämiseen ja sallimiseen." + }, + "options_user_rules_edit_rule": { + "message": "Muokkaa sääntöä" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Siirry editoriin" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Sääntösi näkyvät tässä, kun suljet sen" + }, + "options_user_rules_editor_stub_title": { + "message": "Editori avattu toisessa ikkunassa" + }, + "options_user_rules_empty_placeholder": { + "message": "Ei vielä sääntöjä" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Sääntöjen korostaminen…" + }, + "options_user_rules_import_error": { + "message": "Käyttäjäsääntöjen tuonti epäonnistui. Yritä uudelleen" + }, + "options_user_rules_import_success": { + "message": "Käyttäjän säännöt tuotiin onnistuneesti" + }, + "options_user_rules_menu": { + "message": "Käyttäjäsääntöjen toiminnot" + }, + "options_user_rules_no_match": { + "message": "Ei tuloksia" + }, + "options_user_rules_search_placeholder": { + "message": "Haku" + }, + "options_user_rules_switch_to_editor": { + "message": "Vaihda editori-näkymään" + }, + "options_user_rules_switch_to_list": { + "message": "Vaihda luettelonäkymään" + }, + "options_user_rules_undo": { + "message": "Kumoa" + }, + "options_userfilter": { + "message": "Käyttäjän säännöt" + }, + "options_userfilter_description_key": { + "message": "Tässä voit lisätä omia sääntöjäsi. Tämä vaihtoehto soveltuu edistyneille käyttäjille, jotka ymmärtävät HTML/CSS-ohjelmointikieliä. Lue \u003Ca>suodatussääntöjen opas\u003C/a> oppiaksesi miten luot omia sääntöjä." + }, + "options_userfilter_export": { + "message": "Vie" + }, + "options_userfilter_import": { + "message": "Tuo" + }, + "options_userfilter_leave_subtitle": { + "message": "Muutokset sääntöihin menetetään" + }, + "options_userfilter_line_break": { + "message": "Rivinvaihto" + }, + "options_userfilter_line_break_off": { + "message": "Rivinvaihto: ei käytössä" + }, + "options_userfilter_line_break_on": { + "message": "Rivinvaihto: käytössä" + }, + "options_userfilter_subtitle_key": { + "message": "Mahdollistaa omien suodatussääntöjen lisäämisen" + }, + "popup_abuse_site": { + "message": "Ilmoita ongelmasta" + }, + "popup_adguard_footer_title": { + "message": "Suojaa mobiililaitteesi" + }, + "popup_adguard_for_android": { + "message": "AdGuard Androidille" + }, + "popup_adguard_for_ios": { + "message": "AdGuard iOS:lle" + }, + "popup_block_site_ads_option": { + "message": "Estä mainokset käsin" + }, + "popup_get_system_wide_protection": { + "message": "Hanki koko järjestelmän kattava suojaus" + }, + "popup_header_cta_link": { + "message": "Kuinka parantaa suojausta" + }, + "popup_header_update_filters": { + "message": "Tarkista suodatinpäivitykset" + }, + "popup_limits_exceeded_warning": { + "message": "Selain on muokannut aktiivisten sisäänrakennettujen suodattimien luetteloa" + }, + "popup_open_filtering_log": { + "message": "Suodatushistoria" + }, + "popup_open_settings": { + "message": "Avaa AdGuardin asetukset" + }, + "popup_protection_button": { + "message": "AdGuardin suojaus" + }, + "popup_reset_page_user_rules": { + "message": "Poista sivustolle luodut käyttäjän säännöt" + }, + "popup_resume_protection_button": { + "message": "Käynnistä" + }, + "popup_security_report": { + "message": "Sivuston suojausraportti" + }, + "popup_site_exception_information": { + "message": "Suodatus on poistettu käytöstä, koska se saattaa vaikuttaa sivuston toimintaan." + }, + "popup_site_filtering_state_disabled": { + "message": "Suojaus on pysäytetty" + }, + "popup_site_filtering_state_disabling": { + "message": "Suojausta poistetaan käytöstä..." + }, + "popup_site_filtering_state_enabled": { + "message": "Suojaus on käytössä" + }, + "popup_site_filtering_state_enabling": { + "message": "Suojausta otetaan käyttöön..." + }, + "popup_site_filtering_state_loading": { + "message": "Ladataan..." + }, + "popup_site_filtering_state_paused": { + "message": "Suojaus on pysäytetty" + }, + "popup_site_filtering_state_pausing": { + "message": "Suojausta pysäytetään..." + }, + "popup_site_filtering_state_resuming": { + "message": "Suojausta jatketaan..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Salattu sivu" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "kaikilla verkkosivustoilla" + }, + "popup_statistics_all_categories": { + "message": "Kaikki" + }, + "popup_statistics_category_advertising": { + "message": "Mainokset" + }, + "popup_statistics_category_cdn": { + "message": "Sisällönjakelu (CDN)" + }, + "popup_statistics_category_label": { + "message": "Tilastot-luokka" + }, + "popup_statistics_category_other": { + "message": "Muut" + }, + "popup_statistics_category_social_media": { + "message": "Sosiaalinen media" + }, + "popup_statistics_category_trackers": { + "message": "Seurannat" + }, + "popup_statistics_months_apr": { + "message": "Huhti" + }, + "popup_statistics_months_aug": { + "message": "Elo" + }, + "popup_statistics_months_dec": { + "message": "Joulu" + }, + "popup_statistics_months_feb": { + "message": "Helmi" + }, + "popup_statistics_months_jan": { + "message": "Tammi" + }, + "popup_statistics_months_jul": { + "message": "Heinä" + }, + "popup_statistics_months_jun": { + "message": "Kesä" + }, + "popup_statistics_months_mar": { + "message": "Maalis" + }, + "popup_statistics_months_may": { + "message": "Touko" + }, + "popup_statistics_months_nov": { + "message": "Marras" + }, + "popup_statistics_months_oct": { + "message": "Loka" + }, + "popup_statistics_months_sep": { + "message": "Syys" + }, + "popup_statistics_time_day": { + "message": "24 tunnilta" + }, + "popup_statistics_time_label": { + "message": "Tilastojen ajanjakso" + }, + "popup_statistics_time_month": { + "message": "30 päivältä" + }, + "popup_statistics_time_week": { + "message": "7 päivältä" + }, + "popup_statistics_time_year": { + "message": "Vuotuinen" + }, + "popup_statistics_total": { + "message": "Kaikki yhteensä" + }, + "popup_statistics_week_days_fri": { + "message": "Pe" + }, + "popup_statistics_week_days_mon": { + "message": "Ma" + }, + "popup_statistics_week_days_sat": { + "message": "La" + }, + "popup_statistics_week_days_sun": { + "message": "Su" + }, + "popup_statistics_week_days_thu": { + "message": "To" + }, + "popup_statistics_week_days_tue": { + "message": "Ti" + }, + "popup_statistics_week_days_wed": { + "message": "Ke" + }, + "popup_switch_button": { + "message": "Suojaus nykyiselle verkkosivustolle" + }, + "popup_tab_actions": { + "message": "Toiminnot" + }, + "popup_tab_blocked_all_count": { + "message": "Täysin estetty: %num%" + }, + "popup_tab_blocked_count": { + "message": "Estetty: %num%" + }, + "popup_tab_current_website": { + "message": "Nykyinen verkkosivusto" + }, + "popup_tab_statistics": { + "message": "Tilastot" + }, + "popup_tabs": { + "message": "Välilehdet" + }, + "popup_tooltip_loading": { + "message": "Ladataan..." + }, + "popup_tooltip_protection_disabled": { + "message": "Suojaus ei ole käytössä" + }, + "popup_tooltip_protection_enabled": { + "message": "Suojaus otettiin käyttöön" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Joitakin sääntöjä ei sovelleta" + }, + "popup_tooltip_update_available": { + "message": "Päivitys saatavilla" + }, + "post_install_loading": { + "message": "Ladataan laajennusta..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Sääntöraja ylitetty AdGuard-selainlaajennuksessa. Tarkista suodattimet ja poista käytöstä tarpeettomat" + }, + "text_collapser_hide_default": { + "message": "Piilota koko teksti" + }, + "text_collapser_show_default": { + "message": "Näytä koko teksti" + }, + "update_available_desc": { + "message": "Jotta voit estää mainoksia tehokkaasti, pidä laajennuksesi ja suodattimesi ajan tasalla" + }, + "update_available_title": { + "message": "Päivityksiä on saatavilla" + }, + "update_available_update_btn": { + "message": "Päivitä" + }, + "update_check": { + "message": "Tarkista päivitykset" + }, + "update_checking_in_progress": { + "message": "Tarkistetaan päivityksiä..." + }, + "update_failed_text": { + "message": "Päivitys epäonnistui" + }, + "update_failed_try_again_btn": { + "message": "Yritä uudelleen" + }, + "update_installing_in_progress_desc": { + "message": "Laajennus käynnistyy uudelleen päivityksen jälkeen" + }, + "update_installing_in_progress_title": { + "message": "Laajennusten ja suodattimien päivittäminen..." + }, + "update_not_needed": { + "message": "Laajennuksesi ja suodattimesi ovat ajan tasalla" + }, + "update_success_text": { + "message": "Laajennus ja suodattimet päivitetty" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fil/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fil/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fil/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fr/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fr/messages.json new file mode 100644 index 0000000..ae50301 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/fr/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% a été activé automatiquement." + }, + "alert_popup_filter_enabled_title": { + "message": "Auto-activation des filtres" + }, + "background_tab_title": { + "message": "Onglet en arrière-plan" + }, + "blocking_pages_advanced_button": { + "message": "Avancés" + }, + "blocking_pages_btn_go_back": { + "message": "Retour" + }, + "blocking_pages_btn_proceed": { + "message": "Procéder malgré tout" + }, + "blocking_pages_malware": { + "message": "Cette page web \u003Cstrong>%host%\u003C/strong> a été signalée comme une page malveillante et fût bloquée selon vos préférences de sécurité." + }, + "blocking_pages_more_info_button": { + "message": "Plus d'information" + }, + "blocking_pages_page_title": { + "message": "Accès refusé" + }, + "blocking_pages_phishing": { + "message": "Cette page web \u003Cstrong>%host%\u003C/strong> a été signalée comme une page d'hameçonnage et fût bloquée selon vos préférences de sécurité." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard n'a pas autorisé le chargement de cette page en raison de la régle de filtrage suivante" + }, + "blocking_pages_rule_header_title": { + "message": "Bloqué par AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard a bloqué l'accès à cette page" + }, + "clear_button_title": { + "message": "Effacer" + }, + "close_button_title": { + "message": "Fermer" + }, + "context_block_site_ads": { + "message": "Bloquer les annonces manuellement" + }, + "context_complaint_website": { + "message": "Signaler un problème" + }, + "context_disable_protection": { + "message": "Mettre en pause la protection d'AdGuard" + }, + "context_enable_protection": { + "message": "Réactiver la protection AdGuard" + }, + "context_open_log": { + "message": "Journal de filtrage" + }, + "context_open_settings": { + "message": "Paramètres d'AdGuard" + }, + "context_security_report": { + "message": "Vérifier la sécurité sur le site" + }, + "context_site_exception": { + "message": "Ce site est dans les exceptions" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ne peut pas filtrer cette page" + }, + "context_site_filtering_off": { + "message": "Désactiver le filtrage sur ce site" + }, + "context_site_filtering_on": { + "message": "Activer le filtrage sur ce site" + }, + "context_site_protection_disabled": { + "message": "La protection d'AdGuard est en pause" + }, + "context_update_antibanner_filters": { + "message": "Vérifier les mises à jour des filtres" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Extension sans égal contre la publicité et les pop-ups. Bloque les publicités sur Facebook, YouTube et tous les autres sites web." + }, + "filtering_clear_log_events": { + "message": "Effacer le journal" + }, + "filtering_log_actions_menu": { + "message": "Les actions du Journal de filtrage" + }, + "filtering_log_assumed_rule_description": { + "message": "Ceci est une règle supposée. Pour plus de détails, voir notre \u003Ca>Base de connaissances\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Méthode de requête HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Code de statut HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Requêtes de tiers" + }, + "filtering_log_details_modal_back_button": { + "message": "Retour à la demande Web" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Embellir" + }, + "filtering_log_details_modal_try_again": { + "message": "Essayer à nouveau" + }, + "filtering_log_filter_allowed": { + "message": "Autorisées" + }, + "filtering_log_filter_blocked": { + "message": "Bloqué" + }, + "filtering_log_filter_modified": { + "message": "Modifié" + }, + "filtering_log_filter_regular": { + "message": "Normal" + }, + "filtering_log_filter_user_rules": { + "message": "Règles d'utilisateur" + }, + "filtering_log_hide_referrer": { + "message": "Référent masqué auprès des tierces parties" + }, + "filtering_log_hide_search_queries": { + "message": "Vos requêtes de recherche sont masquées" + }, + "filtering_log_in_allowlist": { + "message": "Le site web est autorisé" + }, + "filtering_log_modified_rules": { + "message": "Règles modifiées : %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Oui, conserver" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Cette option peut augmenter considérablement l'utilisation de la mémoire" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Conserver le journal ?" + }, + "filtering_log_preserve_log_off": { + "message": "Ne pas conserver le journal" + }, + "filtering_log_preserve_log_on": { + "message": "Conserver le journal" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ne plus afficher" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protection contre le suivi appliquée" + }, + "filtering_log_remove_client_data": { + "message": "En-tête X-Client-Data supprimé" + }, + "filtering_log_search_string": { + "message": "Rechercher" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Rechercher dans les onglets" + }, + "filtering_log_send_not_track": { + "message": "En-tête Do-Not-Track (DNT) envoyé" + }, + "filtering_log_status_allowed": { + "message": "Autorisée" + }, + "filtering_log_status_blocked": { + "message": "Bloquée" + }, + "filtering_log_status_modified": { + "message": "Modifiée" + }, + "filtering_log_status_processed": { + "message": "Traitée" + }, + "filtering_log_stealth_rules": { + "message": "Règles de protection contre le suivi : %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origine de la requête" + }, + "filtering_log_tag_request_status": { + "message": "État du filtrage" + }, + "filtering_log_tag_request_type": { + "message": "Type de la requête" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Requêtes autorisées et débloquées" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Requêtes bloquées" + }, + "filtering_log_tag_tooltip_css": { + "message": "Feuilles de style" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Requêtes propriétaires" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documents et sous-documents" + }, + "filtering_log_tag_tooltip_img": { + "message": "Images" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Média" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Requêtes modifiées" + }, + "filtering_log_tag_tooltip_other": { + "message": "Police de caractères, pings, WebRTC, WebSocket, etc..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Requêtes traitées sans filtrage" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Requêtes tierces" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Requêtes affectées par les règles utilisateur" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests et requêtes fetch" + }, + "filtering_log_title": { + "message": "Journal de filtrage" + }, + "filtering_menu_open_filters": { + "message": "Personnaliser" + }, + "filtering_modal_add_rule": { + "message": "Ajouter" + }, + "filtering_modal_allow_title": { + "message": "Ajouter une règle d\\'autorisation" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Règle appliquée | Règles appliquées" + }, + "filtering_modal_apply_domains": { + "message": "Appliquer à tous les sites" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Règle présumée : | Règles présumées :" + }, + "filtering_modal_block": { + "message": "Bloquer" + }, + "filtering_modal_block_again": { + "message": "Bloquer à nouveau" + }, + "filtering_modal_block_title": { + "message": "Ajouter une règle de blocage" + }, + "filtering_modal_converted_to": { + "message": "Converti en :" + }, + "filtering_modal_cookie": { + "message": "Cookie :" + }, + "filtering_modal_copied": { + "message": "Copié" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copier dans le clipboard" + }, + "filtering_modal_declarative_rule": { + "message": "Règle DNR :" + }, + "filtering_modal_element": { + "message": "Élement :" + }, + "filtering_modal_exception_title": { + "message": "Ajouter une exception" + }, + "filtering_modal_filter": { + "message": "Filtre" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "État du filtrage" + }, + "filtering_modal_hide_full_element": { + "message": "Masquer l'élément complet" + }, + "filtering_modal_hide_full_rule": { + "message": "Masquer la règle complète" + }, + "filtering_modal_hide_full_url": { + "message": "Masquer l'URL complète" + }, + "filtering_modal_important": { + "message": "Accorder une priorité plus élevée à la règle" + }, + "filtering_modal_info_title": { + "message": "Demander des détails" + }, + "filtering_modal_open_in_new_tab": { + "message": "Ouvrir dans un nouvel onglet" + }, + "filtering_modal_options_desc": { + "message": "Options" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Règle d’origine : | Règles d’origine :" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Ce qui doit être autorisé" + }, + "filtering_modal_patterns_desc_block": { + "message": "Ce qui doit être bloqué" + }, + "filtering_modal_preview_request_button": { + "message": "Aperçu" + }, + "filtering_modal_preview_title": { + "message": "Aperçu" + }, + "filtering_modal_privacy": { + "message": "Protection contre le suivi" + }, + "filtering_modal_remove_allowlist": { + "message": "Retirer de la Liste blanche" + }, + "filtering_modal_remove_param": { + "message": "Supprimer les paramètres de la requête" + }, + "filtering_modal_remove_user": { + "message": "Supprimer règle" + }, + "filtering_modal_rule": { + "message": "Règle:" + }, + "filtering_modal_rule_text_desc": { + "message": "Règle" + }, + "filtering_modal_rules": { + "message": "Règles :" + }, + "filtering_modal_show_full_element": { + "message": "Afficher l'élément complet" + }, + "filtering_modal_show_full_rule": { + "message": "Afficher la règle complète" + }, + "filtering_modal_show_full_url": { + "message": "Afficher l'URL complète" + }, + "filtering_modal_source": { + "message": "Source" + }, + "filtering_modal_status_text_desc": { + "message": "État" + }, + "filtering_modal_status_text_error": { + "message": "Échec du chargement de l'aperçu. Veuillez réessayer" + }, + "filtering_modal_status_text_loading": { + "message": "Chargement..." + }, + "filtering_modal_third_party": { + "message": "Appliquer aux requêtes des tierces uniquement" + }, + "filtering_modal_type": { + "message": "Type" + }, + "filtering_modal_unblock": { + "message": "Débloquer" + }, + "filtering_refresh_tab_short": { + "message": "Actualiser" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Actualiser la page" + }, + "filtering_table_action": { + "message": "Action" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Rien n'a été trouvé. \u003Creset>Désactivez les filtres\u003C/reset> ou \u003Crefresh>rechargez la page\u003C/refresh> pour afficher les enregistrements du journal" + }, + "filtering_table_filter": { + "message": "Filtre" + }, + "filtering_table_open_details": { + "message": "Ouvrir les détails" + }, + "filtering_table_rule": { + "message": "Règle de filtrage" + }, + "filtering_table_source": { + "message": "Source" + }, + "filtering_table_status": { + "message": "Statut" + }, + "filtering_table_type": { + "message": "Taper" + }, + "filtering_type_all": { + "message": "Tout" + }, + "filtering_type_other": { + "message": "Autre" + }, + "filters_download_loading": { + "message": "Veuillez patientez pendant le chargement de la base de données..." + }, + "filters_download_title": { + "message": "Chargement de la base de données des filtres en cours..." + }, + "fullscreen_user_rules_title": { + "message": "Règles d'utilisateur" + }, + "group_description_adblocking": { + "message": "Configurez le blocage des publicités ici pour gérer une fois pour toutes les bannières, les pop-ups, les publicités vidéo et autres nuisances" + }, + "group_description_annoyances": { + "message": "Supprimez les fenêtres contextuelles et autres notifications ennuyeuses comme les notifications de cookies" + }, + "group_description_custom": { + "message": "Créez vos propres filtres pour affiner le filtrage web selon vos préférences." + }, + "group_description_lang": { + "message": "Ne vous limitez pas — bloquez les publicités sur les sites web dans toutes les langues" + }, + "group_description_miscellaneous": { + "message": "Plus de paramètres pour configurer encore plus votre navigation sur le Web avec AdGuard" + }, + "group_description_security": { + "message": "Protégez-vous contre les logiciels malveillants, l’hameçonnage et autres menaces en ligne" + }, + "group_description_social": { + "message": "Masquez les boutons «J'aime»/«Partager» indésirables et d'autres widgets de médias sociaux" + }, + "group_description_stealth": { + "message": "Protégez votre identité et vos informations personnelles sensibles contre des milliers de traqueurs en ligne en bloquant toutes les méthodes de traçage connues" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Ne plus afficher" + }, + "opera_search_permission_go_to_settings": { + "message": "Accéder aux paramètres" + }, + "opera_search_permission_warning": { + "message": "Pour bloquer les annonces de recherche, autorisez l'accès aux résultats de recherche dans les paramètres de votre navigateur" + }, + "options_about": { + "message": "À propos" + }, + "options_about_libs": { + "message": "Bibliothèques utilisées" + }, + "options_about_title": { + "message": "Extension de navigateur AdGuard" + }, + "options_about_update_available": { + "message": "La version %version% est disponible. Elle sera téléchargée et installée automatiquement." + }, + "options_about_version": { + "message": "Version" + }, + "options_acknowledgment": { + "message": "Remerciements" + }, + "options_add_custom_filter": { + "message": "Ajouter un filtre personnalisé" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Ajouter" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Vérification du filtre..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "L'URL a renvoyé une page Web au lieu d'une liste de filtres. Veuillez fournir un lien direct vers le fichier de filtres." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Veuillez réessayer ou contacter l\\'assistance" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Échec de l'ajout d'un filtre personnalisé" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nom du filtre :" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Fiable" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Les filtres de confiance peuvent utiliser des modificateurs de règles puissants - assurez-vous d'utiliser un filtre provenant de développeurs fiables" + }, + "options_add_custom_filter_modal_title": { + "message": "Ajout de filtre personnalisé" + }, + "options_all_limits_exceeded_warning": { + "message": "Vous avez atteint la limite de règles intégrées actives. Votre navigateur a modifié la liste des filtres intégrés. La quantité des filtres activés est passée de %expected% à %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Vous avez atteint la limite de votre navigateur pour les règles intégrées actives. Votre navigateur a réduit la liste des filtres intégrés actifs de %expected% à %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Votre navigateur restreint \u003Cexternal-link>certains types de règles\u003C/external-link>. Pour appliquer toutes les règles, activez l'option \u003Cb>Autoriser les scripts utilisateur\u003C/b> dans les \u003Csettings-link>paramètres d'extension\u003C/settings-link> de votre navigateur" + }, + "options_allowlist": { + "message": "Liste blanche" + }, + "options_allowlist_alert_invert": { + "message": "La liste d'autorisation est inversée. Les publicités ne sont bloquées que sur les sites web qui y sont ajoutés." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Arrêter l'inversion\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ne bloque pas les publicités et les traqueurs sur les sites web figurant sur la liste" + }, + "options_allowlist_invalid_entries": { + "message": "Pour enregistrer, ne conservez que les domaines ou les URL. Ces éléments doivent être corrigés : %entries%" + }, + "options_allowlist_invert": { + "message": "Inverser la Liste blanche" + }, + "options_allowlist_invert_desc": { + "message": "Bloque uniquement les publicités et les traqueurs sur les sites web autorisés" + }, + "options_allowlist_leave_subtitle": { + "message": "Vos modifications apportées à la Liste d'autorisation seront perdues" + }, + "options_allowlist_menu": { + "message": "Actions de la liste d’autorisation" + }, + "options_anonymized_usage_data_description": { + "message": "Envoie des statistiques anonymes sur l'utilisation de l'extension à AdGuard. \u003Cbutton>Apprendre plus\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "OK" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Ces données comprennent :" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Noms des boutons sur lesquels vous cliquez" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Noms des écrans avec lesquels vous interagissez" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifiants de session" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ces données sont anonymes et utilisées uniquement en interne. Nous ne les partageons jamais avec des tiers" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Nous avons besoin de ces informations pour analyser et améliorer les fonctionnalités d'AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Données d'utilisation des extensions" + }, + "options_anonymized_usage_data_title": { + "message": "Envoyer des données d'utilisation d'extension anonymisées" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Le filtre personnalisé a déjà été ajouté" + }, + "options_antibanner_custom_group": { + "message": "Personnaliser" + }, + "options_antibanner_custom_group_description": { + "message": "Permet d'ajouter des filtres à partir d'un fichier ou d'une URL" + }, + "options_antibanner_rules_count": { + "message": "Règles : %rules_count%" + }, + "options_antibanner_updated": { + "message": "Mis à jour : %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloquer les annonces publicitaires et l'autopromotion des sites web" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloque les publicités dans les résultats de recherche et l'autopromotion des sites Web. \u003Ca>En savoir plus\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Pour bloquer les cookies, réglez leur durée de vie sur 0" + }, + "options_block_known_trackers_description": { + "message": "Bloque les traqueurs et les analyses web à l'aide du filtre AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Bloquez les traqueurs" + }, + "options_check_update_progress": { + "message": "Vérification en cours..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Effacer" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Toutes les statistiques sur l'utilisation des données seront définitivement supprimées" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Effacer les statistiques?" + }, + "options_clipboard_permission_warning": { + "message": "Pour copier et coller les règles, autorisez AdGuard à accéder au presse-papiers. \u003Ca>Autoriser\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envoie des statistiques anonymes sur l'utilisation du filtre publicitaire à AdGuard. \u003Ca>En savoir plus\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Aidez-nous à développer les filtres AdGuard" + }, + "options_coming_soon": { + "message": "Bientôt disponible" + }, + "options_confirm_modal_cancel_button": { + "message": "Annuler" + }, + "options_copyright": { + "message": "Tous droits réservés." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Pour utiliser des filtres personnalisés, activez \u003Cb>Autoriser les scripts utilisateur\u003C/b> dans les \u003Csettings-link>paramètres d'extension\u003C/settings-link> de votre navigateur" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Pour utiliser des filtres personnalisés, activez le \u003Cb>mode développeur\u003C/b> dans les \u003Csettings-link>paramètres d'extension\u003C/settings-link> de votre navigateur" + }, + "options_desktop_app_promo_button_linux": { + "message": "Obtenir AdGuard pour Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtenir AdGuard pour Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtenir AdGuard pour Windows" + }, + "options_desktop_app_promo_description": { + "message": "Les applications telles que Spotify, Discord ou Zoom peuvent toujours afficher des publicités et suivre votre activité" + }, + "options_desktop_app_promo_subdescription": { + "message": "Notre application pour ordinateur de bureau peut vous en protéger" + }, + "options_desktop_app_promo_title": { + "message": "L’extension ne protège que le navigateur" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Votre navigateur restreint \u003Cexternal-link>certains types de règles\u003C/external-link>. Pour appliquer toutes les règles, activez le \u003Cb>mode développeur\u003C/b> dans les \u003Csettings-link>paramètres d'extension\u003C/settings-link> de votre navigateur" + }, + "options_disable_webrtc_desc": { + "message": "Bloque WebRTC qui peut divulguer votre adresse IP réelle même si vous utilisez un proxy ou un VPN. Certaines messageries instantanées, plateformes de streaming ou jeux peuvent cesser de fonctionner correctement" + }, + "options_disable_webrtc_title": { + "message": "Bloquer WebRTC" + }, + "options_discuss": { + "message": "Discuter" + }, + "options_do_you_like_question": { + "message": "Avez-vous apprécié AdGuard ?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Sortir de la fenêtre de l'éditeur" + }, + "options_editor_indicator_saved": { + "message": "Enregistré" + }, + "options_editor_indicator_saving": { + "message": "Sauvegarde en cours..." + }, + "options_editor_leave_cancel": { + "message": "Retour à l'édition" + }, + "options_editor_leave_confirm": { + "message": "Oui, quitter" + }, + "options_editor_leave_title": { + "message": "Quitter sans enregistrer ?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Ouvrir l'Éditeur dans une nouvelle fenêtre" + }, + "options_editor_save": { + "message": "Enregistrer" + }, + "options_editor_save_error": { + "message": "Échec de l'enregistrement des modifications. Réessayez ou contactez l'assistance" + }, + "options_empty_custom_filter": { + "message": "Vous n'avez pas encore de filtres personnalisés" + }, + "options_enable_autodetect_filter": { + "message": "Activer automatiquement les filtres les plus appropriés" + }, + "options_enable_autodetect_filter_desc": { + "message": "Détecte la langue du site web et active les filtres appropriés" + }, + "options_export_settings": { + "message": "Exporter les paramètres" + }, + "options_filters": { + "message": "Filtres" + }, + "options_filters_annoyances_consent_description": { + "message": "Vous êtes sur le point d'activer un ou plusieurs filtres anti-nuisances. Ceux-ci bloquent les éléments qui ne sont pas liés au contenu du site web ou qui, bien que liés, nuisent à votre expérience utilisateur. Les propriétaires de sites Web peuvent considérer ces éléments comme obligatoires : si vous les bloquez, vous risquez d'enfreindre leurs conditions d'utilisation ; certaines fonctionnalités des sites Web peuvent ne pas être disponibles ou ne pas fonctionner correctement. Vous comprenez et acceptez que vous êtes seul responsable du respect des conditions d'utilisation des sites Web que vous visitez et qu'AdGuard n'est pas responsable de votre respect des conditions d'utilisation des sites Web que vous visitez à l'aide de nos produits." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Activer" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Page d'accueil" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Pour plus de détails sur ce que bloquent les filtres anti-nuisances d'AdGuard, consultez la \u003Ca>Politique de filtrage\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Activer ces filtres ?" + }, + "options_filters_annoyances_consent_title": { + "message": "Veuillez lire attentivement avant d'activer les filtres anti-nuisances" + }, + "options_filters_back_button": { + "message": "Retour" + }, + "options_filters_empty_title": { + "message": "Rien n’a été trouvé" + }, + "options_filters_enabled": { + "message": "Activé :" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% et %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% et %more% restant" + }, + "options_filters_enabled_per_group": { + "message": "Activé : %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Aller à la page d’accueil" + }, + "options_filters_filter_tags": { + "message": "Filtrer les balises" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Vous avez choisi de faire confiance à ce filtre." + }, + "options_filters_filter_updated": { + "message": "mis à jour:" + }, + "options_filters_filter_version": { + "message": "version :" + }, + "options_filters_info_mv3_total_rules": { + "message": "Nombre total de règles : %num%" + }, + "options_filters_last_checked": { + "message": "Dernière vérification : %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Tous les filtres" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Desactivé" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Activé" + }, + "options_filters_no_enabled": { + "message": "Aucun filtre activé" + }, + "options_filters_of_group": { + "message": "Filtres du groupe \"%groupName%\"" + }, + "options_filters_search": { + "message": "Rechercher" + }, + "options_filters_search_filter": { + "message": "Rechercher un filtre" + }, + "options_first_party_block_cookies_warning": { + "message": "Si vous bloquez ces cookies, certains sites Web peuvent planter ou cesser de fonctionner" + }, + "options_first_party_desc": { + "message": "Empêche les sites Web de mémoriser vos informations, telles que vos identifiants de connexion et vos préférences linguistiques, en limitant la durée de vie des cookies propriétaires" + }, + "options_first_party_title": { + "message": "Détruire automatiquement les cookies propriétaires (déconseillé)" + }, + "options_general_settings": { + "message": "Paramètres généraux" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Empêchez les tiers de savoir quel site web vous visitez" + }, + "options_hide_referrer_title": { + "message": "Masquer le Référent aux tiers" + }, + "options_hide_search_queries_desc": { + "message": "Masque vos recherches sur les sites Web visités via les résultats des moteurs de recherche" + }, + "options_hide_search_queries_title": { + "message": "Masquer les requêtes de recherche" + }, + "options_import_configuration_applying_subtitle": { + "message": "Remplacement de vos paramètres actuels par ceux importés. Le filtrage est désactivé lors de l'importation" + }, + "options_import_configuration_applying_title": { + "message": "Importation en cours..." + }, + "options_import_configuration_confirm_button": { + "message": "Importer" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Les paramètres importés remplaceront vos paramètres actuels. Les autres paramètres ne seront pas touchés" + }, + "options_import_configuration_confirm_title": { + "message": "Importer les paramètres" + }, + "options_import_configuration_error_button": { + "message": "Fermer" + }, + "options_import_configuration_error_subtitle": { + "message": "Veuillez vérifier le lien d'importation et réessayer. Si cela ne résout pas le problème, contactez l'assistance" + }, + "options_import_configuration_error_title": { + "message": "Échec de l\\'importation des paramètres" + }, + "options_import_configuration_success_button": { + "message": "Fermer" + }, + "options_import_configuration_success_subtitle": { + "message": "Les paramètres ont été importés" + }, + "options_import_configuration_success_title": { + "message": "Tout est bon" + }, + "options_import_settings": { + "message": "Importer les paramètres" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverser" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Les annonces et traqueurs ne seront bloqués que sur les sites web de la liste autorisée" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inverser la liste d'autorisation ?" + }, + "options_leave_feedback": { + "message": "Envoyer un commentaire" + }, + "options_lifetime_minutes": { + "message": "Durée de vie, en minutes" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Vous avez atteint la limite de règles regex ajoutées par l'utilisateur. %maximum% de %current% règles regex sont activées." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Vous avez atteint la limite des règles d'expression régulière ajoutées par l'utilisateur. %maximum% des règles %current% sont activées. Pour ajouter de nouvelles règles d'expression régulière, supprimez certaines règles existantes" + }, + "options_limits_warning_dynamic_rules": { + "message": "Vous avez atteint la limite de règles ajoutées par l'utilisateur. %maximum% de %current% règles sont activées." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Vous avez atteint la limite des règles ajoutées par l'utilisateur. %maximum% des règles %current% sont activées. Pour ajouter de nouvelles règles, supprimez certaines règles existantes" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Vous avez atteint la limite des règles non sécurisées ajoutées par l'utilisateur. %maximum% sur %current% règles non sécurisées sont activées." + }, + "options_limits_warning_static_filters": { + "message": "Vous avez atteint la limite de filtres intégrés actifs. %maximum% de %current% filtres sont activés. Pour activer de nouvelles règles, désactivez plusieurs filtres intégrés." + }, + "options_limits_warning_static_filters_browser": { + "message": "Vous avez atteint la limite de filtres intégrés actifs de votre navigateur. %maximum% des filtres %current% sont activés. Pour activer de nouveaux filtres, désactivez certains filtres intégrés" + }, + "options_limits_warning_static_regex_rules": { + "message": "Vous avez atteint la limite de règles regex intégrées actives. %maximum% des %current% règles regex sont activées. Pour activer de nouvelles règles, désactivez certains filtres intégrés." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Vous avez atteint la limite des règles d'expression régulière intégrées actives. Pour activer de nouvelles règles, désactivez certains filtres intégrés" + }, + "options_limits_warning_static_rules": { + "message": "Vous avez atteint la limite des règles intégrées actives. %maximum% de %current% règles sont activées. Pour activer de nouvelles règles, désactivez plusieurs filtres intégrés." + }, + "options_limits_warning_static_rules_browser": { + "message": "Vous avez atteint la limite de règles intégrées actives de votre navigateur. Pour activer de nouvelles règles, désactivez certains filtres intégrés" + }, + "options_loader_applying_changes": { + "message": "Application en cours..." + }, + "options_miscellaneous_settings": { + "message": "Divers" + }, + "options_modified_first_party_cookie": { + "message": "Cookie propriétaire modifié" + }, + "options_modified_third_party_cookie": { + "message": "Cookie tiers modifié" + }, + "options_nav_better_than_extension": { + "message": "Pourquoi l'application AdGuard est-elle meilleure que l'extension ?" + }, + "options_nav_compare": { + "message": "Comparer" + }, + "options_navigation": { + "message": "Navigation" + }, + "options_open_changelog": { + "message": "Journal des modifications" + }, + "options_open_log": { + "message": "Journal de filtrage" + }, + "options_popup_call_to_action": { + "message": "Entrez une URL valide ou le chemin vers le fichier du filtre dans la zone de saisie ci-dessus." + }, + "options_popup_check_false_description": { + "message": "Erreur lors de l'ajout du filtre personnalisé." + }, + "options_popup_check_false_title": { + "message": "Erreur" + }, + "options_popup_checking_filter": { + "message": "Vérification du filtre" + }, + "options_popup_description": { + "message": "Vous vous abonnerez alors à ce filtre." + }, + "options_popup_filter_description": { + "message": "Description :" + }, + "options_popup_filter_homepage": { + "message": "Page d'accueil:" + }, + "options_popup_filter_rules_count": { + "message": "Nombre de règles:" + }, + "options_popup_filter_title": { + "message": "Nom du filtre:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Version :" + }, + "options_popup_import_error_file_description": { + "message": "Une erreur est survenue." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Pour importer ce fichier de paramètres, autorisez AdGuard à modifier vos paramètres de confidentialité." + }, + "options_popup_import_error_title": { + "message": "Échec de l\\'importation des paramètres" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "L'extension du fichier doit être %extension%" + }, + "options_popup_import_success_title": { + "message": "Paramètres importés" + }, + "options_popup_next_button": { + "message": "Suivant" + }, + "options_popup_subscribe_button": { + "message": "S'abonner" + }, + "options_popup_title_placeholder": { + "message": "Entrez un nom de filtre" + }, + "options_popup_trusted_filter_description": { + "message": "Les filtres fiables peuvent utiliser de puissants modificateurs de règles de filtrage pouvant être dangereux entre de mauvaises mains. Ne cochez pas cette case si vous n'êtes pas sûr." + }, + "options_popup_trusted_filter_title": { + "message": "Fiable" + }, + "options_popup_try_again_button": { + "message": "Essayer à nouveau" + }, + "options_popup_update_error": { + "message": "Impossible d'obtenir les mises à jour. Veuillez réessayer plus tard." + }, + "options_popup_update_filter": { + "message": "a été mis à jour." + }, + "options_popup_update_filters": { + "message": "ont été mis à jour." + }, + "options_popup_update_not_found": { + "message": "Vos filtres sont à jour" + }, + "options_popup_update_title_error": { + "message": "Erreur lors de la mise à jour des filtres" + }, + "options_popup_updating_filters": { + "message": "Mise à jour des filtres..." + }, + "options_popup_url_placeholder": { + "message": "Saisir une URL ou le chemin" + }, + "options_popup_url_title": { + "message": "Nouvel abonnement au filtre" + }, + "options_popup_version_update_changelog_text": { + "message": "Cliquez ici pour voir le journal complet des modifications." + }, + "options_popup_version_update_description_major": { + "message": "C'est une mise à jour majeure comportant beaucoup d'améliorations et des fonctionnalités nouvelles." + }, + "options_popup_version_update_description_minor": { + "message": "Cette version contient des corrections des bogues et améliorations mineures." + }, + "options_popup_version_update_disable_notification": { + "message": "Désactiver les notifications" + }, + "options_popup_version_update_offer": { + "message": "Si vous êtes aussi obsédé par la confidentialité que nous, essayez les produits AdGuard prémium pour Windows, Mac, iOS ou Android pour trouver encore plus de fonctionnalités." + }, + "options_popup_version_update_offer_button_text": { + "message": "En savoir plus" + }, + "options_popup_version_update_title_text": { + "message": "L'extension AdGuard vient d'être mise à jours à la version %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Permet à WebRTC d'appliquer une politique plus stricte en matière d'adresses IP afin de masquer votre adresse IP réelle lorsque vous utilisez un proxy ou un VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Empêcher les fuites d'adresse IP via WebRTC" + }, + "options_privacy": { + "message": "Protection contre le suivi" + }, + "options_privacy_desc": { + "message": "Protège votre activité en ligne et vos données personnelles contre les traqueurs Web" + }, + "options_privacy_policy": { + "message": "Politique de confidentialité" + }, + "options_privacy_title": { + "message": "Protection contre le suivi" + }, + "options_rate_us_cta": { + "message": "Évaluez-nous" + }, + "options_remove_client_data_desc": { + "message": "Empêchez Google Chrome d'envoyer sa version et ses modifications aux domaines Google" + }, + "options_remove_client_data_title": { + "message": "Retire l'en-tête des données X-Client" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Supprimer" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Supprimer ce filtre ?" + }, + "options_report_bug": { + "message": "Signaler un bogue" + }, + "options_reset_settings": { + "message": "Réinitialiser les paramètres" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Réinitialiser" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Tous les paramètres seront réinitialisés à leurs valeurs par défaut" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Réinitialiser les paramètres?" + }, + "options_reset_settings_done": { + "message": "Les paramètres ont été réinitialisés" + }, + "options_reset_settings_error": { + "message": "Erreur lors de la réinitialisation des paramètres" + }, + "options_reset_stats": { + "message": "Réinitialiser les statistiques" + }, + "options_reset_stats_done": { + "message": "Les statistiques ont été réinitialisées" + }, + "options_rule_limits": { + "message": "Limites des règles" + }, + "options_rule_limits_description": { + "message": "Chrome limite le nombre de règles pouvant être appliquées" + }, + "options_rule_limits_dynamic": { + "message": "Règles dynamiques" + }, + "options_rule_limits_dynamic_regex": { + "message": "Règles Regex — incluses dans les règles ajoutées par l'utilisateur" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Règles dynamiques non sécurisées (utilisées pour certains modificateurs avancés, tels que $$redirect ou $$cookie) — incluses dans les règles ajoutées par l'utilisateur" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Les règles ajoutées par l'utilisateur, telles que les \u003Cuser_rules>règles utilisateur\u003C/user_rules>, la \u003Callowlist>liste des sites web autorisés\u003C/allowlist> et les \u003Ccustom_filters>filtres personnalisés\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Règles ajoutées par l'utilisateur, telles que les \u003Cuser_rules>règles utilisateur\u003C/user_rules> et \u003Callowlist>sites Web sur la liste autorisée\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Règles statiques" + }, + "options_rule_limits_static_rules_all": { + "message": "Règles des \u003Ca>filtres intégrés\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Règles Regex — incluses ci-dessus" + }, + "options_rule_limits_static_rulesets": { + "message": "Ensembles de règles statiques" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtres intégrés\u003C/a>, tels que le Bloqueur des nuisances ou les filtres spécifiques aux langues" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Option 3. Si vous êtes satisfait des filtres par défaut actuellement activés, \u003Ca>fermez cet avertissement \u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Option 3. Si vous êtes satisfait des filtres par défaut actuellement activés, \u003Ca>fermez cet avertissement \u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Option 1. Supprimez les extensions de blocage de publicités de votre navigateur. Pour réactiver les filtres mentionnés dans la section \"Filtres activés avant la mise à jour\", cliquez sur \u003Ca>, réactiver les filtres.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Option 2. Installez l'application Bloqueur d'annonces AdGuard : elle n'a pas de restriction sur les règles de filtrage.\u003Ca> Obtenez l'application AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vos actions possibles" + }, + "options_rule_limits_warning_explanation_description": { + "message": "La limite des règles intégrées actives a été dépassée après une mise à jour ou l'ajout d'une nouvelle extension. Selon le manifeste V3, votre navigateur Chrome a réagi en désactivant tous les filtres intégrés de l'extension, à l'exception de ceux par défaut." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Que s'est-il passé ?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtres activés avant la mise à jour" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtres activés maintenant" + }, + "options_rule_limits_warning_title": { + "message": "Le navigateur a modifié la liste des filtres actifs" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Supprimez les restrictions liées aux règles et bénéficiez d'une protection étendue compatible avec tous les navigateurs" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installer l'application de bureau" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Aller aux filtres" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gérer les extensions" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Les extensions de navigateur sont soumises à la même limite de règles. La désinstallation d'autres bloqueurs de publicités peut libérer davantage de règles pour l'Extension de navigateur AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Supprimer les autres bloqueurs d'annonces" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Activez les filtres dont vous avez besoin. Les filtres linguistiques et ceux de confidentialité peuvent utiliser de nombreuses règles" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Consulter les filtres disponibles" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Voici ce que vous pouvez faire" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limite atteinte — certains filtres ont été désactivés" + }, + "options_rule_syntax": { + "message": "Syntaxe des règles" + }, + "options_safebrowsing_enabled": { + "message": "Protection contre l'hameçonnage et les maliciels" + }, + "options_safebrowsing_enabled_desc": { + "message": "Avertit des sites web malveillants et d'hameçonnage grâce au module de navigation sécurisée AdGuard. \u003Ca>En savoir plus\u003C/a>" + }, + "options_select_theme": { + "message": "Thème" + }, + "options_select_update_period_12h": { + "message": "12 heures" + }, + "options_select_update_period_1h": { + "message": "1 heure" + }, + "options_select_update_period_24h": { + "message": "24 heures" + }, + "options_select_update_period_48h": { + "message": "48 heures" + }, + "options_select_update_period_6h": { + "message": "6 heures" + }, + "options_select_update_period_default": { + "message": "Par défaut" + }, + "options_select_update_period_disabled": { + "message": "Désactivé" + }, + "options_send_not_track_desc": { + "message": "Envoyez des signaux \u003Cgpc>Global Privacy Control\u003C/gpc> et \u003Cdnt>Do Not Track\u003C/dnt> aux sites web que vous visitez" + }, + "options_send_not_track_title": { + "message": "Demander aux sites Web de ne pas me suivre" + }, + "options_set_update_interval": { + "message": "Mise à jour automatique des filtres" + }, + "options_set_update_interval_desc": { + "message": "Maintient les filtres à jour pour un blocage plus efficace des publicités" + }, + "options_settings": { + "message": "Paramètres d'AdGuard" + }, + "options_share_settings": { + "message": "Partager les paramètres" + }, + "options_show_adguard_full_version_title": { + "message": "Afficher les informations sur la version complète d'AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Me notifier des mises à jour des extensions" + }, + "options_show_blocked_ads_count_title": { + "message": "Indiquer le nombre d'annonces bloquées sur l'icône de l'extension AdGuard" + }, + "options_show_context_menu_title": { + "message": "Ajouter AdGuard au menu contextuel du navigateur" + }, + "options_site": { + "message": "Site Web officiel" + }, + "options_skip_to_main_content": { + "message": "Accéder au contenu principal" + }, + "options_stealth_general_title": { + "message": "Général" + }, + "options_stealth_miscellaneous_title": { + "message": "Divers" + }, + "options_stealth_tracking_methods_title": { + "message": "Méthodes de suivi" + }, + "options_strip_tracking_params_description": { + "message": "Supprime les paramètres de suivi des pages URL à l\\'aide du filtre AdGuard URL Tracking" + }, + "options_strip_tracking_params_title": { + "message": "Supprimer les paramètres de suivi des URL" + }, + "options_stripped_tracking_parameters": { + "message": "Paramètres de suivi supprimés" + }, + "options_theme_selector_dark": { + "message": "Sombre" + }, + "options_theme_selector_light": { + "message": "Clair" + }, + "options_theme_selector_system": { + "message": "Valeur par défaut du système" + }, + "options_third_party_block_cookies_warning": { + "message": "Si vous bloquez ces cookies, vous devrez peut-être vous reconnecter à certains sites Web ou faire face à d'autres problèmes liés aux cookies" + }, + "options_third_party_desc": { + "message": "Empêche les annonceurs de suivre votre comportement sur plusieurs pages en limitant la durée de vie des cookies tiers" + }, + "options_third_party_title": { + "message": "Supprimer les cookies tiers" + }, + "options_update_antibanner_filters": { + "message": "Vérifier les mises à jour des filtres" + }, + "options_use_optimized_filters": { + "message": "Utiliser les filtres optimisés" + }, + "options_use_optimized_filters_desc": { + "message": "Utilise des versions plus courtes de filtres avec uniquement les règles les plus populaires pour économiser du trafic. Mieux adapté aux navigateurs mobiles" + }, + "options_user_rules_clear_search": { + "message": "Effacer la recherche" + }, + "options_user_rules_create_rule": { + "message": "Créer une règle" + }, + "options_user_rules_delete_all": { + "message": "Tout supprimer" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Toutes les règles utilisateur seront définitivement supprimées" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Tout supprimer ?" + }, + "options_user_rules_delete_all_success": { + "message": "Toutes les règles utilisateur ont été supprimées" + }, + "options_user_rules_delete_rule": { + "message": "Supprimer la règle" + }, + "options_user_rules_deleted_notification": { + "message": "Règle utilisateur supprimée :" + }, + "options_user_rules_description_key": { + "message": "Vos règles concernant le blocage et le déblocage des annonces ou de sites web entiers" + }, + "options_user_rules_edit_rule": { + "message": "Modifier la règle" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Aller à l'éditeur" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Vos règles apparaîtront ici après que vous les aurez fermées" + }, + "options_user_rules_editor_stub_title": { + "message": "L'éditeur s'est ouvert dans une autre fenêtre" + }, + "options_user_rules_empty_placeholder": { + "message": "Pas encore de règles" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Mise en évidence des règles…" + }, + "options_user_rules_import_error": { + "message": "Échec de l'importation des règles utilisateur. Veuillez réessayer" + }, + "options_user_rules_import_success": { + "message": "Règles utilisateur importées avec succès" + }, + "options_user_rules_menu": { + "message": "Actions liées aux règles d'utilisateur" + }, + "options_user_rules_no_match": { + "message": "Rien n'a été trouvé" + }, + "options_user_rules_search_placeholder": { + "message": "Rechercher" + }, + "options_user_rules_switch_to_editor": { + "message": "Passer à la vue éditeur" + }, + "options_user_rules_switch_to_list": { + "message": "Passer à l’affichage en liste" + }, + "options_user_rules_undo": { + "message": "Annuler" + }, + "options_userfilter": { + "message": "Règles d'utilisateur" + }, + "options_userfilter_description_key": { + "message": "Vous pouvez ajouter vos propres règles ici. Cette option est recommandée pour les utilisateurs avancés familiers avec le langage HTML/CSS. Lisez le \u003Ca>tutoriel sur les régles de filtrage\u003C/a> pour apprendre à écrire vos propres règles." + }, + "options_userfilter_export": { + "message": "Exporter" + }, + "options_userfilter_import": { + "message": "Importer" + }, + "options_userfilter_leave_subtitle": { + "message": "Les modifications apportées aux règles seront perdues" + }, + "options_userfilter_line_break": { + "message": "Saut de ligne" + }, + "options_userfilter_line_break_off": { + "message": "Saut de ligne : Désactivé" + }, + "options_userfilter_line_break_on": { + "message": "Saut de ligne : Activé" + }, + "options_userfilter_subtitle_key": { + "message": "Vous permet d'ajouter vos propres règles de filtrage" + }, + "popup_abuse_site": { + "message": "Signaler un problème" + }, + "popup_adguard_footer_title": { + "message": "Protégez votre appareil mobile" + }, + "popup_adguard_for_android": { + "message": "AdGuard pour Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard pour iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquer les annonces manuellement" + }, + "popup_get_system_wide_protection": { + "message": "Obtenez la protection à l'échelle du système" + }, + "popup_header_cta_link": { + "message": "Comment améliorer la protection" + }, + "popup_header_update_filters": { + "message": "Vérifier les mises à jour des filtres" + }, + "popup_limits_exceeded_warning": { + "message": "Votre navigateur a modifié la liste des filtres intégrés actifs" + }, + "popup_open_filtering_log": { + "message": "Ouvrir le journal de filtrage" + }, + "popup_open_settings": { + "message": "Ouvrir les paramètres d'AdGuard" + }, + "popup_protection_button": { + "message": "Protection AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Supprimer les règles de l'utilisateur pour ce site web" + }, + "popup_resume_protection_button": { + "message": "Réactiver" + }, + "popup_security_report": { + "message": "Vérifier la sécurité sur le site" + }, + "popup_site_exception_information": { + "message": "Le filtrage est désactivé car il peut perturber le fonctionnement du site." + }, + "popup_site_filtering_state_disabled": { + "message": "La protection est désactivée" + }, + "popup_site_filtering_state_disabling": { + "message": "Désactivation de la protection..." + }, + "popup_site_filtering_state_enabled": { + "message": "La protection est activée" + }, + "popup_site_filtering_state_enabling": { + "message": "Activation de la protection..." + }, + "popup_site_filtering_state_loading": { + "message": "Chargement..." + }, + "popup_site_filtering_state_paused": { + "message": "La protection est en pause" + }, + "popup_site_filtering_state_pausing": { + "message": "Mise en pause de la protection..." + }, + "popup_site_filtering_state_resuming": { + "message": "Reprise de la protection..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Page sécurisée" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "pour tous les sites web" + }, + "popup_statistics_all_categories": { + "message": "Toutes" + }, + "popup_statistics_category_advertising": { + "message": "Annonces" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Catégorie Statistiques" + }, + "popup_statistics_category_other": { + "message": "Autre" + }, + "popup_statistics_category_social_media": { + "message": "Les médias sociaux" + }, + "popup_statistics_category_trackers": { + "message": "Traqueurs" + }, + "popup_statistics_months_apr": { + "message": "Avr." + }, + "popup_statistics_months_aug": { + "message": "Août" + }, + "popup_statistics_months_dec": { + "message": "Déc." + }, + "popup_statistics_months_feb": { + "message": "Févr." + }, + "popup_statistics_months_jan": { + "message": "Janv." + }, + "popup_statistics_months_jul": { + "message": "Juil." + }, + "popup_statistics_months_jun": { + "message": "Juin" + }, + "popup_statistics_months_mar": { + "message": "Mars" + }, + "popup_statistics_months_may": { + "message": "Mai" + }, + "popup_statistics_months_nov": { + "message": "Nov." + }, + "popup_statistics_months_oct": { + "message": "Oct." + }, + "popup_statistics_months_sep": { + "message": "Sept." + }, + "popup_statistics_time_day": { + "message": "24 heures" + }, + "popup_statistics_time_label": { + "message": "Période de temps des statistiques" + }, + "popup_statistics_time_month": { + "message": "30 jours" + }, + "popup_statistics_time_week": { + "message": "7 jours" + }, + "popup_statistics_time_year": { + "message": "1 an" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Ven." + }, + "popup_statistics_week_days_mon": { + "message": "Lun." + }, + "popup_statistics_week_days_sat": { + "message": "Sam." + }, + "popup_statistics_week_days_sun": { + "message": "Dim." + }, + "popup_statistics_week_days_thu": { + "message": "Jeu." + }, + "popup_statistics_week_days_tue": { + "message": "Mar." + }, + "popup_statistics_week_days_wed": { + "message": "Mer." + }, + "popup_switch_button": { + "message": "Protection du site Web actuel" + }, + "popup_tab_actions": { + "message": "Actions" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloqué : %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloqué : %num%" + }, + "popup_tab_current_website": { + "message": "Site Web actuel" + }, + "popup_tab_statistics": { + "message": "Statistiques" + }, + "popup_tabs": { + "message": "Onglets" + }, + "popup_tooltip_loading": { + "message": "Chargement..." + }, + "popup_tooltip_protection_disabled": { + "message": "Protection désactivée" + }, + "popup_tooltip_protection_enabled": { + "message": "Protection activée" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Certaines règles ne s'appliquent pas" + }, + "popup_tooltip_update_available": { + "message": "Mise à jour disponible" + }, + "post_install_loading": { + "message": "Chargement de l'extension..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "La limite des règles a été dépassée dans l'Extension de navigateur AdGuard. Veuillez vérifier vos filtres et désactiver ceux dont vous n'avez pas besoin" + }, + "text_collapser_hide_default": { + "message": "Masquer le texte complet" + }, + "text_collapser_show_default": { + "message": "Afficher le texte complet" + }, + "update_available_desc": { + "message": "Pour un blocage efficace des publicités, maintenez votre extension et vos filtres à jour" + }, + "update_available_title": { + "message": "Mises à jour disponibles" + }, + "update_available_update_btn": { + "message": "Mettre à jour" + }, + "update_check": { + "message": "Vérifier les mises à jour" + }, + "update_checking_in_progress": { + "message": "Vérification des mises à jour..." + }, + "update_failed_text": { + "message": "Échec de la mise à jour" + }, + "update_failed_try_again_btn": { + "message": "Essayer à nouveau" + }, + "update_installing_in_progress_desc": { + "message": "L'extension redémarrera après la mise à jour" + }, + "update_installing_in_progress_title": { + "message": "Mise à jour de l'extension et des filtres..." + }, + "update_not_needed": { + "message": "Votre extension et vos filtres sont à jour" + }, + "update_success_text": { + "message": "Extension et filtres mis à jour" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/he/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/he/messages.json new file mode 100644 index 0000000..1a4d382 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/he/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% הופעל באופן אוטומטי." + }, + "alert_popup_filter_enabled_title": { + "message": "הפעלה אוטומטית של המסננים" + }, + "background_tab_title": { + "message": "לשונית רקע" + }, + "blocking_pages_advanced_button": { + "message": "מתקדם" + }, + "blocking_pages_btn_go_back": { + "message": "חזור" + }, + "blocking_pages_btn_proceed": { + "message": "המשך בכל זאת" + }, + "blocking_pages_malware": { + "message": "דף רשת זה בכתובת \u003Cstrong>%host%\u003C/strong> דווח כדף נוזקה ונחסם על סמך העדפות האבטחה שלך." + }, + "blocking_pages_more_info_button": { + "message": "עוד מידע" + }, + "blocking_pages_page_title": { + "message": "גישה נדחתה" + }, + "blocking_pages_phishing": { + "message": "דף רשת זה בכתובת \u003Cstrong>%host%\u003C/strong> דווח כדף דיוג ונחסם על סמך העדפות האבטחה שלך." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard מנע מדף זה להיטען עקב הכלל הבא של מסנן" + }, + "blocking_pages_rule_header_title": { + "message": "נחסם ע״י AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard חסם גישה אל דף זה" + }, + "clear_button_title": { + "message": "נקה" + }, + "close_button_title": { + "message": "סגור" + }, + "context_block_site_ads": { + "message": "חסום מודעות ידנית" + }, + "context_complaint_website": { + "message": "דווח על סוגייה" + }, + "context_disable_protection": { + "message": "השהה את הגנת AdGuard" + }, + "context_enable_protection": { + "message": "המשך את הגנת AdGuard" + }, + "context_open_log": { + "message": "יומן סינון" + }, + "context_open_settings": { + "message": "הגדרות AdGuard" + }, + "context_security_report": { + "message": "בדוק אבטחת אתר" + }, + "context_site_exception": { + "message": "אתר זה נמצא בחריגות" + }, + "context_site_filtering_disabled": { + "message": "AdGuard לא יכול לסנן את העמוד הזה" + }, + "context_site_filtering_off": { + "message": "השבת סינון באתר זה" + }, + "context_site_filtering_on": { + "message": "אפשר סינון באתר זה" + }, + "context_site_protection_disabled": { + "message": "הגנת AdGuard מושהית" + }, + "context_update_antibanner_filters": { + "message": "בדוק אחר עדכוני מסננים" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "הרחבה ללא תחרות של חסימת פרסומות נגד פרסום וחלונות קופצים. חוסמת פרסומות בפייסבוק, ביוטיוב ובכל האתרים האחרים." + }, + "filtering_clear_log_events": { + "message": "נקה יומן" + }, + "filtering_log_actions_menu": { + "message": "פעולות יומן סינון" + }, + "filtering_log_assumed_rule_description": { + "message": "זהו חוק משוער. לפרטים נוספים, עיין ב-\u003Ca>מאגר הידע\u003C/a> שלנו" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "שיטת בקשת HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "קוד מעמד HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "בקשת צד שלישי" + }, + "filtering_log_details_modal_back_button": { + "message": "חזור אל בקשה" + }, + "filtering_log_details_modal_beautify_button": { + "message": "ייפה" + }, + "filtering_log_details_modal_try_again": { + "message": "נסה שוב" + }, + "filtering_log_filter_allowed": { + "message": "מותר" + }, + "filtering_log_filter_blocked": { + "message": "חסום" + }, + "filtering_log_filter_modified": { + "message": "השתנה" + }, + "filtering_log_filter_regular": { + "message": "רגיל" + }, + "filtering_log_filter_user_rules": { + "message": "כללי משתמש" + }, + "filtering_log_hide_referrer": { + "message": "מפנה הסתר מצדדים שלישיים" + }, + "filtering_log_hide_search_queries": { + "message": "שאילתות החיפוש שלך מוסתרות" + }, + "filtering_log_in_allowlist": { + "message": "האתר מותר" + }, + "filtering_log_modified_rules": { + "message": "כללים שהשתנו: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "כן, שמור" + }, + "filtering_log_preserve_log_modal_description": { + "message": "אפשרות זו עלולה להגדיל משמעותית את צריכת הזיכרון" + }, + "filtering_log_preserve_log_modal_title": { + "message": "שמור יומן?" + }, + "filtering_log_preserve_log_off": { + "message": "אל תשמור יומן" + }, + "filtering_log_preserve_log_on": { + "message": "שמור יומן" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "אל תראה שוב" + }, + "filtering_log_privacy_applied_rules": { + "message": "הגנת המעקב הופעלה" + }, + "filtering_log_remove_client_data": { + "message": "כותרת עליונה X-Client-Data הוסרה" + }, + "filtering_log_search_string": { + "message": "חפש" + }, + "filtering_log_search_tabs_placeholder": { + "message": "חפש בלשוניות" + }, + "filtering_log_send_not_track": { + "message": "כותרת אל־תעקוב נשלחה" + }, + "filtering_log_status_allowed": { + "message": "מותר" + }, + "filtering_log_status_blocked": { + "message": "חָסוּם" + }, + "filtering_log_status_modified": { + "message": "עבר שינוי" + }, + "filtering_log_status_processed": { + "message": "מעובד" + }, + "filtering_log_stealth_rules": { + "message": "כללי הגנה מעקב: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "מוצא בקשה" + }, + "filtering_log_tag_request_status": { + "message": "מצב הסינון" + }, + "filtering_log_tag_request_type": { + "message": "סוג בקשה" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "בקשות מותרות ולא חסומות" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "בקשות נחסמו" + }, + "filtering_log_tag_tooltip_css": { + "message": "גיליונות סגנון" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "בקשות צד ראשון" + }, + "filtering_log_tag_tooltip_html": { + "message": "מסמכים ותת־מסמכים" + }, + "filtering_log_tag_tooltip_img": { + "message": "תמונות" + }, + "filtering_log_tag_tooltip_js": { + "message": "תסריטים" + }, + "filtering_log_tag_tooltip_media": { + "message": "מדיה" + }, + "filtering_log_tag_tooltip_modified": { + "message": "בקשות ששונו" + }, + "filtering_log_tag_tooltip_other": { + "message": "פונטים, פינגים, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "בקשות מעובדות ללא סינון" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "בקשות צד שלישי" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "בקשות המושפעות מכללי משתמש" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests ובקשות משיכה" + }, + "filtering_log_title": { + "message": "יומן סינון" + }, + "filtering_menu_open_filters": { + "message": "התאם אישית" + }, + "filtering_modal_add_rule": { + "message": "הוסף" + }, + "filtering_modal_allow_title": { + "message": "הוסף כלל הרשאה" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| כלל שהוחל | חוקים שהוחלו" + }, + "filtering_modal_apply_domains": { + "message": "החל על כל אתרי האינטרנט" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| חוק משוער: | חוקים משוערים:" + }, + "filtering_modal_block": { + "message": "חסום" + }, + "filtering_modal_block_again": { + "message": "חסום שוב" + }, + "filtering_modal_block_title": { + "message": "הוסף כלל חסימה" + }, + "filtering_modal_converted_to": { + "message": "מומר אל:" + }, + "filtering_modal_cookie": { + "message": "עוגייה:" + }, + "filtering_modal_copied": { + "message": "הועתק" + }, + "filtering_modal_copy_to_clipboard": { + "message": "העתק ללוח גזירה" + }, + "filtering_modal_declarative_rule": { + "message": "חוק DNR:" + }, + "filtering_modal_element": { + "message": "אלמנט:" + }, + "filtering_modal_exception_title": { + "message": "הוסף חריגה" + }, + "filtering_modal_filter": { + "message": "מסנן" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "מצב הסינון" + }, + "filtering_modal_hide_full_element": { + "message": "הסתר אלמנט מלא" + }, + "filtering_modal_hide_full_rule": { + "message": "הסתר כלל מלא" + }, + "filtering_modal_hide_full_url": { + "message": "הסתר מען מלא" + }, + "filtering_modal_important": { + "message": "תן עדיפות גבוהה יותר אל הכלל" + }, + "filtering_modal_info_title": { + "message": "פרטי בקשה" + }, + "filtering_modal_open_in_new_tab": { + "message": "פתח בלשונית חדשה" + }, + "filtering_modal_options_desc": { + "message": "אפשרויות" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| חוק מקורי: | חוקים מקוריים:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "מה צריך להיות מותר" + }, + "filtering_modal_patterns_desc_block": { + "message": "מה צריך להיות חסום" + }, + "filtering_modal_preview_request_button": { + "message": "הצג מראש" + }, + "filtering_modal_preview_title": { + "message": "תצוגה מקדימה" + }, + "filtering_modal_privacy": { + "message": "הגנת מעקב" + }, + "filtering_modal_remove_allowlist": { + "message": "הסר מרשימת ההיתר" + }, + "filtering_modal_remove_param": { + "message": "הסר פרמטרי שאילתה" + }, + "filtering_modal_remove_user": { + "message": "מחק כלל" + }, + "filtering_modal_rule": { + "message": "כלל:" + }, + "filtering_modal_rule_text_desc": { + "message": "כלל" + }, + "filtering_modal_rules": { + "message": "כללים:" + }, + "filtering_modal_show_full_element": { + "message": "הראה אלמנט מלא" + }, + "filtering_modal_show_full_rule": { + "message": "הראה כלל מלא" + }, + "filtering_modal_show_full_url": { + "message": "הראה מען מלא" + }, + "filtering_modal_source": { + "message": "מקור" + }, + "filtering_modal_status_text_desc": { + "message": "מעמד" + }, + "filtering_modal_status_text_error": { + "message": "לא הצליח לטעון תצוגה מקדימה. אנא נסה שוב" + }, + "filtering_modal_status_text_loading": { + "message": "טוען…" + }, + "filtering_modal_third_party": { + "message": "החל על בקשות צד שלישי בלבד" + }, + "filtering_modal_type": { + "message": "סוג" + }, + "filtering_modal_unblock": { + "message": "בטל חסימה" + }, + "filtering_refresh_tab_short": { + "message": "רענן" + }, + "filtering_refresh_tab_short_mobile": { + "message": "רענן דף" + }, + "filtering_table_action": { + "message": "פעולה" + }, + "filtering_table_empty_reload_page_desc": { + "message": "לא נמצא דבר. \u003Creset>השבת מסננים\u003C/reset> או \u003Crefresh>טען מחדש את הדף\u003C/refresh> כדי לצפות ברשומות יומן" + }, + "filtering_table_filter": { + "message": "מסנן" + }, + "filtering_table_open_details": { + "message": "פתח פרטים" + }, + "filtering_table_rule": { + "message": "כלל סינון" + }, + "filtering_table_source": { + "message": "מקור" + }, + "filtering_table_status": { + "message": "מעמד" + }, + "filtering_table_type": { + "message": "סוג" + }, + "filtering_type_all": { + "message": "הכל" + }, + "filtering_type_other": { + "message": "אחר" + }, + "filters_download_loading": { + "message": "אנא המתן בזמן שמסד נתונים של מסננים נטען…" + }, + "filters_download_title": { + "message": "מסד נתונים של מסננים נטען…" + }, + "fullscreen_user_rules_title": { + "message": "כללי משתמש" + }, + "group_description_adblocking": { + "message": "תצר חסימת פרסומות כאן כדי להתמודד עם מודעות מטרידות, חלונות קופצים מטרידים, פרסומות וידאו מטרידות וכולי, פעם אחת ולתמיד" + }, + "group_description_annoyances": { + "message": "הסר חלונות קופצים והתראות מטרידות אחרות כמו התראות עוגייה" + }, + "group_description_custom": { + "message": "צור מסננים משלך עבור סינון רשת מכוונן על פי העדפתך." + }, + "group_description_lang": { + "message": "אל תגביל את עצמך — חסום פרסומות באתרים בכל שפה שהיא" + }, + "group_description_miscellaneous": { + "message": "עוד הגדרות לתצר את גלישת האינטרנט שלך עם AdGuard אפילו יותר" + }, + "group_description_security": { + "message": "הגן על עצמך מפני נוזקה, דיוג ואיומים מקוונים אחרים" + }, + "group_description_social": { + "message": "הסתר כפתורים של \"אהבתי\"/\"שתף\" בלתי רצויים ויישומונים אחרים של מדיה חברתית" + }, + "group_description_stealth": { + "message": "הגן על זהותך ועל המידע האישי הרגיש שלך מפני אלפי עוקבנים מקוונים ע״י חסימת כל שיטות המעקב הפופולריות הידועות" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "אל תציג שוב" + }, + "opera_search_permission_go_to_settings": { + "message": "פתח הגדרות" + }, + "opera_search_permission_warning": { + "message": "כדי לחסום פרסומות חיפוש, אפשר גישה לתוצאות דף החיפוש בהגדרות הדפדפן" + }, + "options_about": { + "message": "אודות" + }, + "options_about_libs": { + "message": "ספריות בשימוש" + }, + "options_about_title": { + "message": "הרחבת דפדפן של AdGuard" + }, + "options_about_update_available": { + "message": "גרסה %version% זמינה. היא תורד ותותקן אוטומטית." + }, + "options_about_version": { + "message": "גרסה" + }, + "options_acknowledgment": { + "message": "הוקרות" + }, + "options_add_custom_filter": { + "message": "הוסף מסנן מותאם אישית" + }, + "options_add_custom_filter_modal_add_button": { + "message": "הוסף" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "בודק את המסנן שלך..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "הכתובת החזירה דף רשת במקום רשימת מסננים. נא לספק קישור ישיר לקובץ המסנן." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "אנא נסה שוב או פנה לתמיכה" + }, + "options_add_custom_filter_modal_error_title": { + "message": "הוספת המסנן המותאם נכשלה" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "שם המסנן:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "מהימן" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "חלק מכללי הסינון יכולים לשנות באופן משמעותי את חוויית הגלישה שלך ולפגוע בפרטיות שלך. ודא שאתה משתמש רק בסינונים ממפתחים שאליהם אתה סומך" + }, + "options_add_custom_filter_modal_title": { + "message": "הוסף מסנן מותאם אישית" + }, + "options_all_limits_exceeded_warning": { + "message": "הגעת למגבלת החוקים המובנים הפעילים. הדפדפן שלך שינה את רשימת המסננים המובנים הפעילים. מספר המסננים המופעלים השתנה מ-%expected% ל-%current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "הגעת למגבלת הדפדפן שלך עבור כללים מובנים פעילים. הדפדפן שלך צמצם את רשימת המסננים המובנים הפעילים מ-%expected% ל-%current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "הדפדפן שלך מגביל \u003Cexternal-link>סוגים מסוימים של כללים\u003C/external-link>. כדי להחיל את כל הכללים, הפעל \u003Cb>אפשר סקריפטים של משתמשים\u003C/b> בהגדרות התוסף \u003Csettings-link>של הדפדפן שלך\u003C/settings-link>" + }, + "options_allowlist": { + "message": "רשימת היתר" + }, + "options_allowlist_alert_invert": { + "message": "רשימת ההיתר הפוכה. פרסומות נחסמות רק באתרים שהתווספו אליה." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>הפסק היפוך\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard לא חוסם פרסומות ועוקבנים על\u0000a0אתרים מהרשימה" + }, + "options_allowlist_invalid_entries": { + "message": "כדי לשמור, השאר רק דומיינים או כתובות. יש לתקן את אלה: %entries%" + }, + "options_allowlist_invert": { + "message": "הפוך את רשימת ההיתר" + }, + "options_allowlist_invert_desc": { + "message": "חוסם פרסומות ועוקבים רק באתרים מהרשימה המותרת" + }, + "options_allowlist_leave_subtitle": { + "message": "השינויים שלך ברשימת ההיתרים יאבדו" + }, + "options_allowlist_menu": { + "message": "פעולות רשימת ההיתר" + }, + "options_anonymized_usage_data_description": { + "message": "שולח סטטיסטיקות אלמוניות על שימוש בהרחבה אל AdGuard. \u003Cbutton>למד עוד\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "הבנתי" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "נתונים אלה כוללים:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "שמות הכפתורים שאת/ה לוחץ/ת עליהן" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "שמות המסכים שאתה/את מתמודד איתם" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "מזהי ישיבות" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "נתונים אלה אלמוניים ונעשה בהם שימוש פנימי בלבד. אנחנו אף פעם לא חולקים את זה עם צדדים שלישיים" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "אנחנו זקוקים למידע הזה כדי לנתח ולשפר את תפקוד AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "נתוני שימוש בהרחבה" + }, + "options_anonymized_usage_data_title": { + "message": "שלח נתוני שימוש אנונימיים בהרחבה" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "מסנן מותאם אישית זה התווסף כבר" + }, + "options_antibanner_custom_group": { + "message": "מותאם אישית" + }, + "options_antibanner_custom_group_description": { + "message": "מאפשר להוסיף מסננים מקובץ או מכתובת" + }, + "options_antibanner_rules_count": { + "message": "כללים: %rules_count%" + }, + "options_antibanner_updated": { + "message": "עודכן: %date%" + }, + "options_block_acceptable_ads": { + "message": "חסום פרסומות וחלונות פרסום בתוצאות חיפוש וקידום עצמי של אתרים" + }, + "options_block_acceptable_ads_desc": { + "message": "חוסם פרסומות בתוצאות חיפוש וקידום עצמי של אתרים. \u003Ca>למד עוד\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "כדי לחסום את העוגיות, הגדר את משך החיים לאפס" + }, + "options_block_known_trackers_description": { + "message": "חוסם טראקרים וניתוחי אינטרנט באמצעות מסנן הגנת המעקב של AdGuard" + }, + "options_block_known_trackers_title": { + "message": "חסום עוקבנים" + }, + "options_check_update_progress": { + "message": "בודק…" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "נקה" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "כל הסטטיסטיקות על שימוש בנתונים יימחקו לצמיתות" + }, + "options_clear_stats_confirm_modal_title": { + "message": "לנקות סטטיסטיקה?" + }, + "options_clipboard_permission_warning": { + "message": "כדי להעתיק ולהדביק כללים, יש לאפשר ל-AdGuard גישה ללוח. \u003Ca>אפשר\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "שולח סטטיסטיקות אלמוניות על שימוש במסנן הפרסומות ל-AdGuard. \u003Ca>למד עוד\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "עזור בפיתוח מסנני AdGuard" + }, + "options_coming_soon": { + "message": "בקרוב" + }, + "options_confirm_modal_cancel_button": { + "message": "בטל" + }, + "options_copyright": { + "message": "כל הזכויות שמורות." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "כדי להשתמש במסננים מותאמים אישית, הפעל את \u003Cb>אפשר סקריפטים של משתמשים\u003C/b> בהגדרות התוסף \u003Csettings-link>של הדפדפן שלך\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "כדי להשתמש במסננים מותאמים אישית, הפעל את \u003Cb>מצב מפתח\u003C/b> בהגדרות התוסף \u003Csettings-link>של הדפדפן שלך\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "קבל את AdGuard עבור Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "קבל את AdGuard עבור Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "קבל את AdGuard עבור Windows" + }, + "options_desktop_app_promo_description": { + "message": "אפליקציות כמו Spotify, Discord או Zoom עדיין יכולות להציג פרסומות ולעקוב אחר הפעילות שלך" + }, + "options_desktop_app_promo_subdescription": { + "message": "האפליקציה לשולחן העבודה שלנו יכולה להגן עליך מפניהם" + }, + "options_desktop_app_promo_title": { + "message": "ההרחבה מגינה רק על הדפדפן" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "הדפדפן שלך מגביל \u003Cexternal-link>סוגים מסוימים של כללים\u003C/external-link>. כדי להחיל את כל הכללים, הפעל \u003Cb>מצב מפתח\u003C/b> בהגדרות התוסף \u003Csettings-link>של הדפדפן שלך\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "חוסם WebRTC שיכול לחשוף את כתובת ה-IP האמיתית שלך גם אם אתה משתמש בייפוי כוח או VPN. ייתכן שחלק מהמסנג'רים, פלטפורמות הזרמה או משחקים יפסיקו לעבוד כראוי" + }, + "options_disable_webrtc_title": { + "message": "WebRTC חסום" + }, + "options_discuss": { + "message": "דון על AdGuard" + }, + "options_do_you_like_question": { + "message": "אתה אוהב את AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "צא ממצב חלון" + }, + "options_editor_indicator_saved": { + "message": "נשמר" + }, + "options_editor_indicator_saving": { + "message": "שומר…" + }, + "options_editor_leave_cancel": { + "message": "חזרה לעריכה" + }, + "options_editor_leave_confirm": { + "message": "כן, צא" + }, + "options_editor_leave_title": { + "message": "לצאת ללא שמירה?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "פתח את העורך בחלון חדש" + }, + "options_editor_save": { + "message": "שמור" + }, + "options_editor_save_error": { + "message": "נכשל לשמור את השינויים. נסה שוב או פנה לתמיכה" + }, + "options_empty_custom_filter": { + "message": "אין לך עדיין מסננים מותאמים אישית כלשהם" + }, + "options_enable_autodetect_filter": { + "message": "הפעל באופן אוטומטי את המסננים ההולמים ביותר" + }, + "options_enable_autodetect_filter_desc": { + "message": "מזהה את שפת האתר ומפעיל מסננים מתאימים" + }, + "options_export_settings": { + "message": "ייצא הגדרות" + }, + "options_filters": { + "message": "מסננים" + }, + "options_filters_annoyances_consent_description": { + "message": "אתה עומד להפעיל מסנן מטרד אחד או יותר. הם חוסמים אלמנטים שאינם קשורים לתוכן האתר או קשורים אך מעצבנים לחוויית המשתמש שלך. בעלי אתרים עשויים לשקול אלמנטים אלה כחובה: אם תחסום אותם, ייתכן שאתה מפר את התנאים שלהם; ייתכן שפונקציונליות מסוימת של אתרים לא תהיה זמינה או שלא תפעל כראוי. אתה מבין ומסכים כי אתה האחראי הבלעדי לציית לתנאי השימוש של אתרים שבהם אתה מבקר וכי AdGuard אינה אחראית לעמידתך בתנאי השימוש של אתרים שבהם אתה מבקר בשימוש במוצרינו." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "אפשר" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "דף הבית" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "לפרטים על מה שסינוני המטרד של AdGuard חוסמים, ראה \u003Ca>מדיניות סינון\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "הפעל מסננים אלה?" + }, + "options_filters_annoyances_consent_title": { + "message": "אנא קרא בעיון לפני הפעלת מסנני מטרדים" + }, + "options_filters_back_button": { + "message": "חזור" + }, + "options_filters_empty_title": { + "message": "שום דבר לא נמצא" + }, + "options_filters_enabled": { + "message": "מאופשר:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% וגם %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% ועוד %more%" + }, + "options_filters_enabled_per_group": { + "message": "מופעלת: %current% של %total%" + }, + "options_filters_filter_link": { + "message": "לך אל דף הבית" + }, + "options_filters_filter_tags": { + "message": "סנן תגיות" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "בחרת לתת אמון במסנן זה." + }, + "options_filters_filter_updated": { + "message": "עודכן:" + }, + "options_filters_filter_version": { + "message": "גרסה:" + }, + "options_filters_info_mv3_total_rules": { + "message": "סך הכללים: %num%" + }, + "options_filters_last_checked": { + "message": "נבדק לאחרונה: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "כל המסננים" + }, + "options_filters_list_search_display_option_disabled": { + "message": "מושבתים" + }, + "options_filters_list_search_display_option_enabled": { + "message": "מאופשרים" + }, + "options_filters_no_enabled": { + "message": "אין מסננים מאופשרים" + }, + "options_filters_of_group": { + "message": "מסננים של הקבוצה \"%groupName%\"" + }, + "options_filters_search": { + "message": "חפש" + }, + "options_filters_search_filter": { + "message": "חפש מסנן" + }, + "options_first_party_block_cookies_warning": { + "message": "אם תחסום את העוגיות הללו לחלוטין, כמה אתרים עשויים להישבר או להפסיק לעבוד." + }, + "options_first_party_desc": { + "message": "מונע מאתרים לזכור את פרטיך, כגון אישורי כניסה והעדפות שפה, על ידי הגבלת אורך החיים של עוגיות צד ראשון" + }, + "options_first_party_title": { + "message": "מחק עוגיות צד ראשון (לא מומלץ)" + }, + "options_general_settings": { + "message": "כללי" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "מנע מצדדים שלישיים לדעת באיזה אתר אתה גולש" + }, + "options_hide_referrer_title": { + "message": "הסתר מפנה מצדדים שלישיים" + }, + "options_hide_search_queries_desc": { + "message": "הסתרת החיפושים שלך מאתרים שנכנסת אליהם מתוצאות מנועי חיפוש" + }, + "options_hide_search_queries_title": { + "message": "הסתרת שאילתות חיפוש" + }, + "options_import_configuration_applying_subtitle": { + "message": "מחליף את ההגדרות הנוכחיות שלך באלה שיובאו. הסינון מושבת במהלך הייבוא." + }, + "options_import_configuration_applying_title": { + "message": "מייבא..." + }, + "options_import_configuration_confirm_button": { + "message": "ייבא" + }, + "options_import_configuration_confirm_subtitle": { + "message": "ההגדרות המיובאות יחליפו את ההגדרות הנוכחיות. הגדרות אחרות לא יושפעו" + }, + "options_import_configuration_confirm_title": { + "message": "יבוא הגדרות" + }, + "options_import_configuration_error_button": { + "message": "סגור" + }, + "options_import_configuration_error_subtitle": { + "message": "אנא בדוק את קישור הייבוא ונסה שוב. אם זה לא עוזר, פנה לתמיכה" + }, + "options_import_configuration_error_title": { + "message": "ייבוא ההגדרות נכשל" + }, + "options_import_configuration_success_button": { + "message": "סגור" + }, + "options_import_configuration_success_subtitle": { + "message": "הגדרות יובאו בהצלחה" + }, + "options_import_configuration_success_title": { + "message": "הכל נעשה" + }, + "options_import_settings": { + "message": "ייבא הגדרות" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "הפוך" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "פרסומות ועוקבנים ייחסמו רק באתרים מרשימת ההיתרים" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "להפוך את רשימת המורשים?" + }, + "options_leave_feedback": { + "message": "השאר משוב" + }, + "options_lifetime_minutes": { + "message": "משך חיים, בדקות" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "הגעת למגבלה של כללי Regex שנוספו על ידי המשתמש. %maximum% מתוך %current% כללי Regex מופעלים." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "הגעת למגבלת כללי ביטוי רגולרי שהוספו על ידי המשתמש. %maximum% מתוך %current% כללים מופעלים. כדי להוסיף כללי ביטוי רגולרי חדשים, הסר כמה כללים קיימים" + }, + "options_limits_warning_dynamic_rules": { + "message": "הגעת למגבלה של כללי Regex שנוספו על ידי המשתמש. %maximum% מתוך %current% כללי Regex מופעלים." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "הגעת למגבלת כללים שהוספו על ידי המשתמש. %maximum% מתוך %current% כללים מופעלים. כדי להוסיף כללים חדשים, הסר כמה כללים קיימים" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "הגעת למגבלה של כללים לא בטוחים שנוספו על ידי המשתמש. %maximum% מתוך %current% כללים לא בטוחים מאופשרים." + }, + "options_limits_warning_static_filters": { + "message": "הגעת למגבלה של מסננים מובנים פעילים. %maximum% מתוך %current% מסננים מופעלים. כדי להפעיל כללים חדשים, בטל כמה מסננים מובנים." + }, + "options_limits_warning_static_filters_browser": { + "message": "הגעת למגבלת הדפדפן שלך עבור מסננים מובנים פעילים. %maximum% מתוך %current% מסננים מופעלים. כדי להפעיל מסננים חדשים, השבת כמה מסננים מובנים" + }, + "options_limits_warning_static_regex_rules": { + "message": "הגעת למגבלה של כללים שנוספו על ידי המשתמש. %maximum% מתוך %current% כללים מופעלים." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "הגעת למגבלה של כללי ביטוי רגולרי מובנים פעילים. כדי להפעיל כללים חדשים, השבת כמה מסננים מובנים" + }, + "options_limits_warning_static_rules": { + "message": "הגעת למגבלה של כללי Regex מובנים פעילים. %maximum% מתוך %current% כללים מופעלים. כדי להפעיל כללים חדשים, בטל כמה מסננים מובנים." + }, + "options_limits_warning_static_rules_browser": { + "message": "הגעת למגבלת הדפדפן שלך עבור כללים מובנים פעילים. כדי להפעיל כללים חדשים, השבת כמה מסננים מובנים" + }, + "options_loader_applying_changes": { + "message": "מחיל שינויים…" + }, + "options_miscellaneous_settings": { + "message": "הגדרות נוספות" + }, + "options_modified_first_party_cookie": { + "message": "עוגיית צד ראשון שונתה" + }, + "options_modified_third_party_cookie": { + "message": "עוגיית צד שלישי שונתה" + }, + "options_nav_better_than_extension": { + "message": "למה היישום של AdGuard טוב יותר מההרחבה?" + }, + "options_nav_compare": { + "message": "השווה" + }, + "options_navigation": { + "message": "ניווט" + }, + "options_open_changelog": { + "message": "יומן שינויים" + }, + "options_open_log": { + "message": "פתח יומן סינון" + }, + "options_popup_call_to_action": { + "message": "הכנס כתובת תקפה או נתיב קובץ תקף של המסנן לתוך השדה לעיל." + }, + "options_popup_check_false_description": { + "message": "שגיאה בזמן הוספת המסנן המותאם אישית שלך." + }, + "options_popup_check_false_title": { + "message": "שגיאה" + }, + "options_popup_checking_filter": { + "message": "בודק את המסנן שלך" + }, + "options_popup_description": { + "message": "תהיה רשום כמנוי אל המסנן הזה." + }, + "options_popup_filter_description": { + "message": "תיאור:" + }, + "options_popup_filter_homepage": { + "message": "דף בית:" + }, + "options_popup_filter_rules_count": { + "message": "ספירת כללים:" + }, + "options_popup_filter_title": { + "message": "כותרת:" + }, + "options_popup_filter_url": { + "message": "כתובת" + }, + "options_popup_filter_version": { + "message": "גרסה:" + }, + "options_popup_import_error_file_description": { + "message": "משהו השתבש." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "כדי לייבא קובץ הגדרות זה, התר אל AdGuard לשנות את ההגדרות קשורות הפרטיות שלך." + }, + "options_popup_import_error_title": { + "message": "ייבוא ההגדרות נכשל" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "סיומת הקובץ חייבת להיות %extension%" + }, + "options_popup_import_success_title": { + "message": "ההגדרות יובאו" + }, + "options_popup_next_button": { + "message": "הבא" + }, + "options_popup_subscribe_button": { + "message": "הירשם כמנוי" + }, + "options_popup_title_placeholder": { + "message": "הכנס שם מסנן" + }, + "options_popup_trusted_filter_description": { + "message": "מסננים מהימנים יכולים להשתמש במסגלים עוצמתיים של כללים של סינון עוצמתי אשר יכולים להיות מסוכנים בידיים הלא נכונות. אל תסמן תיבה זו אלא אם אתה סומך על המסנן לחלוטין." + }, + "options_popup_trusted_filter_title": { + "message": "מהימן" + }, + "options_popup_try_again_button": { + "message": "נסה שוב" + }, + "options_popup_update_error": { + "message": "נכשל בקבלת עדכונים. אנא נסה שוב מאוחר יותר" + }, + "options_popup_update_filter": { + "message": "עודכן" + }, + "options_popup_update_filters": { + "message": "עודכנו" + }, + "options_popup_update_not_found": { + "message": "המסננים שלך מעודכנים" + }, + "options_popup_update_title_error": { + "message": "שגיאה בעת עדכון מסננים" + }, + "options_popup_updating_filters": { + "message": "מעדכן מסננים..." + }, + "options_popup_url_placeholder": { + "message": "הכנס כתובת או נתיב קובץ" + }, + "options_popup_url_title": { + "message": "מינוי חדש של מסנן" + }, + "options_popup_version_update_changelog_text": { + "message": "מה חדש בגרסה זו?" + }, + "options_popup_version_update_description_major": { + "message": "זהו שדרוג הרחבה ענקי שמביא מלא מאפיינים חדשים ושיפורים" + }, + "options_popup_version_update_description_minor": { + "message": "גרסה זו מכילה בעיקר תיקוני תקלים ושיפורים זעירים" + }, + "options_popup_version_update_disable_notification": { + "message": "השבת התראות" + }, + "options_popup_version_update_offer": { + "message": "האם ידעת שהיכולות של AdGuard אינן מוגבלות אל דפדפן זה?" + }, + "options_popup_version_update_offer_button_text": { + "message": "למד עוד" + }, + "options_popup_version_update_title_text": { + "message": "הרחבת AdGuard עודכנה אל גרסה %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "גורם ל-WebRTC להשתמש במדיניות כתובת IP מחמירה יותר כדי לעזור לשמור על כתובת ה-IP האמיתית שלך מוסתרת כאשר אתה משתמש בייפוי כוח או VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "מנע דליפות של כתובת IP דרך WebRTC" + }, + "options_privacy": { + "message": "הגנת מעקב" + }, + "options_privacy_desc": { + "message": "מגן על הפעילות שלך ברשת ועל הנתונים האישיים שלך מעוקבים במדיה" + }, + "options_privacy_policy": { + "message": "מדיניות פרטיות" + }, + "options_privacy_title": { + "message": "הגנת מעקב" + }, + "options_rate_us_cta": { + "message": "דרג" + }, + "options_remove_client_data_desc": { + "message": "חסום את Google Chrome משליחת המידע על גרסתו ושינוייו לתחומי Google" + }, + "options_remove_client_data_title": { + "message": "הסר כותרת עליונה X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "הסר" + }, + "options_remove_filter_confirm_modal_title": { + "message": "להסיר את המסנן הזה?" + }, + "options_report_bug": { + "message": "דווח על תקל" + }, + "options_reset_settings": { + "message": "אפס הגדרות" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "אפס" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "כל ההגדרות יאופסו לערכי ברירת המחדל שלהן" + }, + "options_reset_settings_confirm_modal_title": { + "message": "לאפס הגדרות?" + }, + "options_reset_settings_done": { + "message": "הגדרות אופסו" + }, + "options_reset_settings_error": { + "message": "שגיאה בזמן איפוס הגדרות" + }, + "options_reset_stats": { + "message": "נקה סטטיסטיקה" + }, + "options_reset_stats_done": { + "message": "סטטיסטיקה אופסה" + }, + "options_rule_limits": { + "message": "מגבלות כללים" + }, + "options_rule_limits_description": { + "message": "Chrome מגביל את מספר הכללים שניתן להחיל" + }, + "options_rule_limits_dynamic": { + "message": "כללים דינמיים" + }, + "options_rule_limits_dynamic_regex": { + "message": "כללי ביטוי רגולרי — כלולים בכלליים שנוספו על ידי המשתמש" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "כללים דינמיים לא בטוחים (משמשים עבור כמה מודיפיקטורים מתקדמים, כגון $$redirect או $$cookie) — כלולים בכלליים שנוספו על ידי המשתמש" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "כללים שנוספו על ידי המשתמש, כגון \u003Cuser_rules>כללי משתמש\u003C/user_rules>, \u003Callowlist>אתרים ברשימת ההיתרים\u003C/allowlist>, ו-\u003Ccustom_filters>מסננים מותאמים אישית\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "כללים שנוספו על ידי משתמשים, כגון \u003Cuser_rules>כללי משתמש\u003C/user_rules> ו- \u003Callowlist>אתרים רשומים כאישור\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% מתוך %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "כללים סטטיים" + }, + "options_rule_limits_static_rules_all": { + "message": "כללים מ-\u003Ca>מסננים מובנים\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "כללי Regex — כלולים באמור לעיל" + }, + "options_rule_limits_static_rulesets": { + "message": "כללים סטטיים" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>מסננים מובנים\u003C/a>, כגון חסימת מטרדים או מסננים ייעודיים לשפה" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "אפשרות 3. אם אתה מרוצה מהמסנרים המוגדרים כברירת מחדל שהופעלו, \u003Ca>סגור את האזהרה הזו\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "אפשרות 3. אם אתה מרוצה מהמסנן המוגדר כברירת מחדל שהופעל, \u003Ca>סגור את האזהרה הזו\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "אפשרות 1. מחק תוספי חסימת מודעות מיותרים מהדפדפן שלך. להפעלת המסננים המוזכרים בסעיף \"המסננים שהופעלו לפני העדכון\", לחץ על \u003Ca>הפעל מסננים מחדש.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "אפשרות 2. התקן את אפליקציית חוסם הפרסומות של AdGuard: אין לה מגבלות על כללי הסינון. \u003Ca>קבל את אפליקציית AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "הפעולות האפשריות שלך" + }, + "options_rule_limits_warning_explanation_description": { + "message": "חריגה מהמגבלה של כללים מובנים פעילים לאחר עדכון או הוספת תוסף חדש. לפי Manifest V3, דפדפן Chrome שלך הגיב על ידי השבתת כל המסננים המובנים של התוסף מלבד אלה המוגדרים כברירת מחדל." + }, + "options_rule_limits_warning_explanation_title": { + "message": "מה קרה?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "מסננים מאופשרים לפני העדכון" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "מסננים מאופשרים כעת" + }, + "options_rule_limits_warning_title": { + "message": "הדפדפן שינה את רשימת המסננים הפעילים" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "הסר את מגבלות הכללים וקבל הגנה מורחבת שפועלת בכל הדפדפנים" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "התקן את אפליקציית הדסקטופ" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "לך אל מסננים" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "נהל הרחבות" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "הרחבות דפדפן חולקות את אותה מגבלת כללים. הסרת חוסמי פרסומות אחרים עשויה לפנות יותר כללים עבור AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "הסר חוסמי פרסומות אחרים" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "הפעל את המסננים שאתה צריך. מסננים לפי שפה ומסנני פרטיות יכולים להשתמש בהרבה כללים" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "סקור מסננים זמינים" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "הנה מה שאתה יכול לעשות" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "הגעת למגבלה — חלק מהמסננים הושבתו" + }, + "options_rule_syntax": { + "message": "תחביר הכללים" + }, + "options_safebrowsing_enabled": { + "message": "הגנה מפני דיוג ונוזקה" + }, + "options_safebrowsing_enabled_desc": { + "message": "מזהיר מפני אתרים זדוניים ואתרי דיוג באמצעות מודול אבטחת גלישה של AdGuard. \u003Ca>קרא עוד\u003C/a>" + }, + "options_select_theme": { + "message": "ערכת נושא" + }, + "options_select_update_period_12h": { + "message": "12 שעות" + }, + "options_select_update_period_1h": { + "message": "שעה 1" + }, + "options_select_update_period_24h": { + "message": "24 שעות" + }, + "options_select_update_period_48h": { + "message": "48 שעות" + }, + "options_select_update_period_6h": { + "message": "6 שעות" + }, + "options_select_update_period_default": { + "message": "ברירת מחדל" + }, + "options_select_update_period_disabled": { + "message": "מושבת" + }, + "options_send_not_track_desc": { + "message": "שלח את אותות ה-\u003Cgpc>בקרת פרטיות גלובלית\u003C/gpc> ואת ה-\u003Cdnt>אל תעקוב\u003C/dnt> לאתרים שאתה מבקר בהם" + }, + "options_send_not_track_title": { + "message": "בקש מאתרים לא לעקוב אחריי" + }, + "options_set_update_interval": { + "message": "עדכון אוטומטי של מסננים" + }, + "options_set_update_interval_desc": { + "message": "מחזיק את המסננים מעודכנים לחסימת פרסומות יעילה יותר" + }, + "options_settings": { + "message": "הגדרות AdGuard" + }, + "options_share_settings": { + "message": "הגדרות שיתוף" + }, + "options_show_adguard_full_version_title": { + "message": "הראה מידע על הגרסה המלאה של AdGuard" + }, + "options_show_app_updated_notification": { + "message": "יידע לגבי עדכוני הרחבה" + }, + "options_show_blocked_ads_count_title": { + "message": "הראה את מספר הפרסומות החסומות על האיקון של הרחבת AdGuard" + }, + "options_show_context_menu_title": { + "message": "הוסף את AdGuard אל תפריט ההקשר של הדפדפן" + }, + "options_site": { + "message": "האתר הרשמי" + }, + "options_skip_to_main_content": { + "message": "דלג לתוכן העיקרי" + }, + "options_stealth_general_title": { + "message": "כללי" + }, + "options_stealth_miscellaneous_title": { + "message": "שונות" + }, + "options_stealth_tracking_methods_title": { + "message": "שיטות מעקב" + }, + "options_strip_tracking_params_description": { + "message": "הסרת פרמטרי מעקב מכתובות URL של דפים באמצעות מסנן מעקב כתובות URL של AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "הסרת פרמטרי מעקב מכתובות URL" + }, + "options_stripped_tracking_parameters": { + "message": "פרמטרי מעקב הוסרו" + }, + "options_theme_selector_dark": { + "message": "כהה" + }, + "options_theme_selector_light": { + "message": "בהירה" + }, + "options_theme_selector_system": { + "message": "ברירת מחדל" + }, + "options_third_party_block_cookies_warning": { + "message": "אם תחסום את העוגיות הללו, ייתכן שיהיה עליך להתחבר מחדש לאתרים מסוימים או להתמודד עם בעיות אחרות הקשורות לעוגיות." + }, + "options_third_party_desc": { + "message": "מונע ממפרסמים לעקוב אחר ההתנהגות שלך בלא מעט דפים באמצעות הגבלת משך החיים של עוגיות צד שלישי" + }, + "options_third_party_title": { + "message": "מחיקת קובצי עוגיות של צד שלישי" + }, + "options_update_antibanner_filters": { + "message": "בדוק אחר עדכוני מסננים" + }, + "options_use_optimized_filters": { + "message": "השתמש במסננים ממוטבים" + }, + "options_use_optimized_filters_desc": { + "message": "משתמש בגרסאות קצרות יותר של מסננים רק עם הכללים הפופולריים ביותר כדי לחסוך תעבורה. מתאים יותר לדפדפני נייד" + }, + "options_user_rules_clear_search": { + "message": "נקה חיפוש" + }, + "options_user_rules_create_rule": { + "message": "צור כלל" + }, + "options_user_rules_delete_all": { + "message": "מחק הכל" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "כל כללי המשתמש יימחקו לצמיתות" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "מחק הכל?" + }, + "options_user_rules_delete_all_success": { + "message": "כללי משתמש נמחקו" + }, + "options_user_rules_delete_rule": { + "message": "מחק כלל" + }, + "options_user_rules_deleted_notification": { + "message": "כלל משתמש נמחק:" + }, + "options_user_rules_description_key": { + "message": "הכללים שלך לחסימה והסרה של חסימה של פרסומות או אתרים שלמים" + }, + "options_user_rules_edit_rule": { + "message": "ערוך כלל" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "לך אל העורך" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "החוקים שלך יופיעו כאן לאחר שתסגור אותו" + }, + "options_user_rules_editor_stub_title": { + "message": "העורך נפתח בחלון אחר" + }, + "options_user_rules_empty_placeholder": { + "message": "אין עדיין כללים" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "מדגיש כללים…" + }, + "options_user_rules_import_error": { + "message": "נכשל בייבוא כללי משתמש. אנא נסה שוב" + }, + "options_user_rules_import_success": { + "message": "כללי המשתמש מיובאים בהצלחה" + }, + "options_user_rules_menu": { + "message": "פעולות כללי משתמש" + }, + "options_user_rules_no_match": { + "message": "שום דבר לא נמצא" + }, + "options_user_rules_search_placeholder": { + "message": "חפש" + }, + "options_user_rules_switch_to_editor": { + "message": "עבור לתצוגת עורך" + }, + "options_user_rules_switch_to_list": { + "message": "עבור לתצוגת רשימה" + }, + "options_user_rules_undo": { + "message": "בטל עשייה" + }, + "options_userfilter": { + "message": "כללי משתמש" + }, + "options_userfilter_description_key": { + "message": "אתה יכול להוסיף כללים משלך כאן. אפשרות זו מומלצת עבור משתמשים מתקדמים שבקיים ב־HTML/CSS. קרא את \u003Ca>מדריך כללי המסננים\u003C/a> כדי ללמוד כיצד לכתוב כללי מסננים משלך." + }, + "options_userfilter_export": { + "message": "ייצא" + }, + "options_userfilter_import": { + "message": "ייבא" + }, + "options_userfilter_leave_subtitle": { + "message": "השינויים שלך לכללים יאבדו" + }, + "options_userfilter_line_break": { + "message": "שבירת שורות" + }, + "options_userfilter_line_break_off": { + "message": "שבירת שורה: מבוטלת" + }, + "options_userfilter_line_break_on": { + "message": "שבירת שורה: מופעלת" + }, + "options_userfilter_subtitle_key": { + "message": "מאפשר להוסיף כללי סינון משלך" + }, + "popup_abuse_site": { + "message": "דווח על סוגייה" + }, + "popup_adguard_footer_title": { + "message": "הגן על המכשיר הנייד שלך" + }, + "popup_adguard_for_android": { + "message": "AdGuard עבור Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard עבור iOS" + }, + "popup_block_site_ads_option": { + "message": "חסום מודעות ידנית" + }, + "popup_get_system_wide_protection": { + "message": "קבל הגנה כלל-מערכתית" + }, + "popup_header_cta_link": { + "message": "כיצד לשפר את ההגנה" + }, + "popup_header_update_filters": { + "message": "בדוק אחר עדכוני מסננים" + }, + "popup_limits_exceeded_warning": { + "message": "הדפדפן שלך שינה את רשימת המסננים המובנים הפעילים" + }, + "popup_open_filtering_log": { + "message": "פתח יומן סינון" + }, + "popup_open_settings": { + "message": "פתח הגדרות AdGuard" + }, + "popup_protection_button": { + "message": "הגנת AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "מחק את כללי המשתמש עבור אתר זה" + }, + "popup_resume_protection_button": { + "message": "המשך" + }, + "popup_security_report": { + "message": "בדוק אבטחת אתר" + }, + "popup_site_exception_information": { + "message": "סינון מושבת מאחר שהוא יכול להפריע לתפעול של אתר זה." + }, + "popup_site_filtering_state_disabled": { + "message": "הגנה מושבתת" + }, + "popup_site_filtering_state_disabling": { + "message": "משבית הגנה..." + }, + "popup_site_filtering_state_enabled": { + "message": "הגנה מאופשרת" + }, + "popup_site_filtering_state_enabling": { + "message": "מפעיל הגנה..." + }, + "popup_site_filtering_state_loading": { + "message": "...טוען" + }, + "popup_site_filtering_state_paused": { + "message": "ההגנה מושהית" + }, + "popup_site_filtering_state_pausing": { + "message": "משהה הגנה..." + }, + "popup_site_filtering_state_resuming": { + "message": "ממשיך הגנה..." + }, + "popup_site_filtering_state_secure_page": { + "message": "דף מאובטח" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "עבור כל האתרים" + }, + "popup_statistics_all_categories": { + "message": "הכל" + }, + "popup_statistics_category_advertising": { + "message": "המודעות" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "קטגוריית סטטיסטיקה" + }, + "popup_statistics_category_other": { + "message": "אחר" + }, + "popup_statistics_category_social_media": { + "message": "מדיה חברתית" + }, + "popup_statistics_category_trackers": { + "message": "עוקבנים" + }, + "popup_statistics_months_apr": { + "message": "אפר'" + }, + "popup_statistics_months_aug": { + "message": "אוג'" + }, + "popup_statistics_months_dec": { + "message": "דצמ'" + }, + "popup_statistics_months_feb": { + "message": "פב'" + }, + "popup_statistics_months_jan": { + "message": "ינו'" + }, + "popup_statistics_months_jul": { + "message": "יול'" + }, + "popup_statistics_months_jun": { + "message": "יונ'" + }, + "popup_statistics_months_mar": { + "message": "מרץ" + }, + "popup_statistics_months_may": { + "message": "מאי" + }, + "popup_statistics_months_nov": { + "message": "נוב'" + }, + "popup_statistics_months_oct": { + "message": "אוק'" + }, + "popup_statistics_months_sep": { + "message": "ספט'" + }, + "popup_statistics_time_day": { + "message": "24 שעות" + }, + "popup_statistics_time_label": { + "message": "תקופת סטטיסטיקה" + }, + "popup_statistics_time_month": { + "message": "30 ימים" + }, + "popup_statistics_time_week": { + "message": "7 ימים" + }, + "popup_statistics_time_year": { + "message": "שנה" + }, + "popup_statistics_total": { + "message": "סה״כ" + }, + "popup_statistics_week_days_fri": { + "message": "'ו" + }, + "popup_statistics_week_days_mon": { + "message": "'ב" + }, + "popup_statistics_week_days_sat": { + "message": "שבת" + }, + "popup_statistics_week_days_sun": { + "message": "'א" + }, + "popup_statistics_week_days_thu": { + "message": "'ה" + }, + "popup_statistics_week_days_tue": { + "message": "'ג" + }, + "popup_statistics_week_days_wed": { + "message": "'ד" + }, + "popup_switch_button": { + "message": "הגנה עבור אתר הנוכחי" + }, + "popup_tab_actions": { + "message": "פעולות" + }, + "popup_tab_blocked_all_count": { + "message": "סך הכל נחסם: %num%" + }, + "popup_tab_blocked_count": { + "message": "נחסמו: %num%" + }, + "popup_tab_current_website": { + "message": "אתר אינטרנט נוכחי" + }, + "popup_tab_statistics": { + "message": "סטטיסטיקה" + }, + "popup_tabs": { + "message": "לשוניות" + }, + "popup_tooltip_loading": { + "message": "...טוען" + }, + "popup_tooltip_protection_disabled": { + "message": "הגנה מושבתת" + }, + "popup_tooltip_protection_enabled": { + "message": "הגנה מאופשרת" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "חלק מהכללים לא יושמו" + }, + "popup_tooltip_update_available": { + "message": "עדכון זמין" + }, + "post_install_loading": { + "message": "טוען את התוסף..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "מגבלת החוקים חורגת בתוסף הדפדפן של AdGuard. בדוק את המסננים שלך והשבת את אלו שאינך זקוק להם" + }, + "text_collapser_hide_default": { + "message": "הסתר מלל מלא" + }, + "text_collapser_show_default": { + "message": "הראה מלל מלא" + }, + "update_available_desc": { + "message": "כדי לחסום ביעילות פרסומות, עדכן את התוסף והמסננים שלך" + }, + "update_available_title": { + "message": "יש עדכונים זמינים" + }, + "update_available_update_btn": { + "message": "עדכן" + }, + "update_check": { + "message": "בדוק אחר עדכונים" + }, + "update_checking_in_progress": { + "message": "בודק אחר עדכונים…" + }, + "update_failed_text": { + "message": "השלמת העדכון נכשלה" + }, + "update_failed_try_again_btn": { + "message": "נסה שוב" + }, + "update_installing_in_progress_desc": { + "message": "ההרחבה תופעל מחדש לאחר העדכון" + }, + "update_installing_in_progress_title": { + "message": "מעדכן את התוסף והמסננים..." + }, + "update_not_needed": { + "message": "התוסף והמסננים שלך מעודכנים" + }, + "update_success_text": { + "message": "התוסף והמסננים עודכנו" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hi/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hi/messages.json new file mode 100644 index 0000000..d1df5b3 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hi/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% अपने आप एक्टिवटे हो चूका है" + }, + "alert_popup_filter_enabled_title": { + "message": "\tफ़िल्टर का स्वतः सक्रियण" + }, + "background_tab_title": { + "message": "पृष्ठभूमि टैब" + }, + "blocking_pages_advanced_button": { + "message": "अधिक" + }, + "blocking_pages_btn_go_back": { + "message": "पिछले चरण में जाएं" + }, + "blocking_pages_btn_proceed": { + "message": "फिर भी आगे बढ़ें" + }, + "blocking_pages_malware": { + "message": "\u003Cstrong>%host%\u003C/strong> पर इस वेब पेज को मैलवेयर पेज के रूप में रिपोर्ट किया गया है और आपकी सुरक्षा प्राथमिकताओं के आधार पर ब्लॉक किया गया है." + }, + "blocking_pages_more_info_button": { + "message": "और जानकारी" + }, + "blocking_pages_page_title": { + "message": "पहुंच निरस्त\"" + }, + "blocking_pages_phishing": { + "message": "\u003Cstrong>%host%\u003C/strong> पर इस वेब पेज को फ़िशिंग पेज के रूप में रिपोर्ट किया गया है और आपकी सुरक्षा प्राथमिकताओं के आधार पर ब्लॉक किया गया है." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ने निम्न फ़िल्टर नियम के कारण इस पृष्ठ को लोड होने से रोका है" + }, + "blocking_pages_rule_header_title": { + "message": "AdGuard द्वारा अवरुद्धित" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ने इस पृष्ठ तक पहुँच अवरुद्ध कर दी है" + }, + "clear_button_title": { + "message": "स्पष्ट" + }, + "close_button_title": { + "message": "बंद" + }, + "context_block_site_ads": { + "message": "विज्ञापनों को मैन्युअल रूप से ब्लॉक करें" + }, + "context_complaint_website": { + "message": "इस वेबसाइट की रिपोर्ट करें" + }, + "context_disable_protection": { + "message": "एडगार्ड सुरक्षा रोकें" + }, + "context_enable_protection": { + "message": "एडगार्ड सुरक्षा रोकें" + }, + "context_open_log": { + "message": "फ़िल्टरिंग लॉग" + }, + "context_open_settings": { + "message": "AdGuard सेटिंग्स" + }, + "context_security_report": { + "message": "वेबसाइट सुरक्षा रिपोर्ट" + }, + "context_site_exception": { + "message": " यह वेबसाइट अपवादों में है" + }, + "context_site_filtering_disabled": { + "message": "AdGuard इस पृष्ठ को फ़िल्टर नहीं कर सकता" + }, + "context_site_filtering_off": { + "message": "\tइस वेबसाइट पर फ़िल्टरिंग सक्षम करें" + }, + "context_site_filtering_on": { + "message": "\tइस वेबसाइट पर फ़िल्टरिंग सक्षम करें" + }, + "context_site_protection_disabled": { + "message": "AdGuard सुरक्षा रोक दी गई है" + }, + "context_update_antibanner_filters": { + "message": "अद्यतन के लिए जांचे" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "विज्ञापन और पॉप अप के खिलाफ बेजोड़ एडब्लॉक विस्तारफेसबुक, यूट्यूब और अन्य सभी वेबसाइटों पर विज्ञापन ब्लॉक करता है" + }, + "filtering_clear_log_events": { + "message": "लॉग साफ करें" + }, + "filtering_log_actions_menu": { + "message": "निस्पंदन नियम क्रिया" + }, + "filtering_log_assumed_rule_description": { + "message": "यह एक मान लिया गया नियम है। विवरण के लिए, हमारी \u003Ca>ज्ञान आधार\u003C/a> देखें" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP अनुरोध विधि" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP स्थिति कोड" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "तृतीय-पक्ष अनुरोध" + }, + "filtering_log_details_modal_back_button": { + "message": "अनुरोध पर वापस जाएं" + }, + "filtering_log_details_modal_beautify_button": { + "message": "सुंदर बनाएं" + }, + "filtering_log_details_modal_try_again": { + "message": "पुनः प्रयास करें" + }, + "filtering_log_filter_allowed": { + "message": "अनुमति दिया गया" + }, + "filtering_log_filter_blocked": { + "message": "अवरोधित" + }, + "filtering_log_filter_modified": { + "message": "संशोधित" + }, + "filtering_log_filter_regular": { + "message": "नियमित" + }, + "filtering_log_filter_user_rules": { + "message": "यूजर रुल्स" + }, + "filtering_log_hide_referrer": { + "message": "तीसरे पक्ष के सेखराहट से रेखांकित करें" + }, + "filtering_log_hide_search_queries": { + "message": "आपकी खोज क्वेरी छिपाये गए।" + }, + "filtering_log_in_allowlist": { + "message": "इस वेबसाइट को अनुमति है" + }, + "filtering_log_modified_rules": { + "message": "संशोधित नियम: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "हाँ, संरक्षित करें" + }, + "filtering_log_preserve_log_modal_description": { + "message": "यह विकल्प मेमोरी उपयोग को काफी हद तक बढ़ा सकता है" + }, + "filtering_log_preserve_log_modal_title": { + "message": "लॉग संरक्षित करें?" + }, + "filtering_log_preserve_log_off": { + "message": "लॉग रिकॉर्ड न करें" + }, + "filtering_log_preserve_log_on": { + "message": "लॉग संरक्षित करें " + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "दुबारा न पूछें" + }, + "filtering_log_privacy_applied_rules": { + "message": "ट्रैकिंग सुरक्षा लागू हो गयी \nहै" + }, + "filtering_log_remove_client_data": { + "message": "एक्स-क्लाइंट-डेटा हेडर निकाल दिया गया" + }, + "filtering_log_search_string": { + "message": "खोज" + }, + "filtering_log_search_tabs_placeholder": { + "message": "टैब में खोजें" + }, + "filtering_log_send_not_track": { + "message": "नो-नॉट-ट्रैक शीर्षक भेजा" + }, + "filtering_log_status_allowed": { + "message": "अनुमति दिया गया" + }, + "filtering_log_status_blocked": { + "message": "अवरोधित" + }, + "filtering_log_status_modified": { + "message": "संशोधित" + }, + "filtering_log_status_processed": { + "message": "प्रसंस्कृत" + }, + "filtering_log_stealth_rules": { + "message": "ट्रैकिंग सुरक्षा नियम: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "उत्पत्ति का अनुरोध" + }, + "filtering_log_tag_request_status": { + "message": "फ़िल्टरिंग स्थिति" + }, + "filtering_log_tag_request_type": { + "message": "अनुरोध का प्रकार" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "अनुमत और अनब्लॉक किए गए अनुरोध" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "ब्लॉक अनुरोध" + }, + "filtering_log_tag_tooltip_css": { + "message": "स्टाइलशीट्स" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "प्रथम-पक्ष अनुरोध" + }, + "filtering_log_tag_tooltip_html": { + "message": "दस्तावेज़ और उप-दस्तावेज़" + }, + "filtering_log_tag_tooltip_img": { + "message": "चित्र" + }, + "filtering_log_tag_tooltip_js": { + "message": "स्क्रिप्ट्स" + }, + "filtering_log_tag_tooltip_media": { + "message": "मीडिया" + }, + "filtering_log_tag_tooltip_modified": { + "message": "संशोधित अनुरोध" + }, + "filtering_log_tag_tooltip_other": { + "message": "फ़ॉन्ट्स, पिंग, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "फ़िल्टरिंग के बिना संसाधित किए गए अनुरोध" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "तृतीय-पक्ष अनुरोध" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "उपयोगकर्ता नियमों द्वारा प्रभावित अनुरोध" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests और प्राप्ति अनुरोध" + }, + "filtering_log_title": { + "message": "लॉग फ़िल्टर किया जा रहा है" + }, + "filtering_menu_open_filters": { + "message": "अनुकूलित करें" + }, + "filtering_modal_add_rule": { + "message": "जोड़ें" + }, + "filtering_modal_allow_title": { + "message": "अनुमति देने वाला नियम जोड़ें" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "लागू किया गया नियम | लागू किए गए नियम" + }, + "filtering_modal_apply_domains": { + "message": "सभी वेबसाइटों पर लागू करें" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "मान लिया गया नियम: | मान लिया गया नियम:" + }, + "filtering_modal_block": { + "message": "अवरुद्ध" + }, + "filtering_modal_block_again": { + "message": "फिर से ब्लॉक करें" + }, + "filtering_modal_block_title": { + "message": "अवरोधन नियम जोड़ें" + }, + "filtering_modal_converted_to": { + "message": "में परिवर्तित:" + }, + "filtering_modal_cookie": { + "message": "कुकीज़" + }, + "filtering_modal_copied": { + "message": "कॉपी किया गया" + }, + "filtering_modal_copy_to_clipboard": { + "message": "क्लिपबोर्ड पर प्रतिलिपि बनाएँ" + }, + "filtering_modal_declarative_rule": { + "message": "DNR नियम:" + }, + "filtering_modal_element": { + "message": "तत्व:" + }, + "filtering_modal_exception_title": { + "message": "एक अपवाद जोड़ें" + }, + "filtering_modal_filter": { + "message": "फ़िल्टर" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "फ़िल्टरिंग स्थिति" + }, + "filtering_modal_hide_full_element": { + "message": "पूर्ण तत्व छिपाएँ" + }, + "filtering_modal_hide_full_rule": { + "message": "पूर्ण नियम छिपाएं" + }, + "filtering_modal_hide_full_url": { + "message": "पूर्ण URL छुपाएँ" + }, + "filtering_modal_important": { + "message": "नियम को उच्च प्राथमिकता दें" + }, + "filtering_modal_info_title": { + "message": "अनुरोध विवरण" + }, + "filtering_modal_open_in_new_tab": { + "message": "नए टैब में खोलें" + }, + "filtering_modal_options_desc": { + "message": "विकल्प" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "मूल नियम: | मूल नियम:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "क्या अनुमति दी जानी चाहिए" + }, + "filtering_modal_patterns_desc_block": { + "message": "क्या अवरोधित किया जाना चाहिए" + }, + "filtering_modal_preview_request_button": { + "message": "पूर्वदर्शन" + }, + "filtering_modal_preview_title": { + "message": "पूर्वदर्शन" + }, + "filtering_modal_privacy": { + "message": "ट्रैकिंग सुरक्षा" + }, + "filtering_modal_remove_allowlist": { + "message": "अनुमति सूची से निकालें" + }, + "filtering_modal_remove_param": { + "message": "क्वेरी पैरामीटर निकालें" + }, + "filtering_modal_remove_user": { + "message": "नियम हटाएं" + }, + "filtering_modal_rule": { + "message": "नियम:" + }, + "filtering_modal_rule_text_desc": { + "message": "नियम" + }, + "filtering_modal_rules": { + "message": "नियम:" + }, + "filtering_modal_show_full_element": { + "message": "पूर्ण तत्व दिखाएँ" + }, + "filtering_modal_show_full_rule": { + "message": "पूर्ण नियम दिखाएँ" + }, + "filtering_modal_show_full_url": { + "message": "पूर्ण URL दिखाएँ" + }, + "filtering_modal_source": { + "message": "स्रोत" + }, + "filtering_modal_status_text_desc": { + "message": "स्थिति" + }, + "filtering_modal_status_text_error": { + "message": "पूर्वावलोकन लोड करने में विफल। पुनः प्रयास करें" + }, + "filtering_modal_status_text_loading": { + "message": "लोड हो रहा है..." + }, + "filtering_modal_third_party": { + "message": "केवल तृतीय-पक्ष अनुरोधों पर लागू करें" + }, + "filtering_modal_type": { + "message": "प्रकार" + }, + "filtering_modal_unblock": { + "message": "अवरुध हटाएँ" + }, + "filtering_refresh_tab_short": { + "message": "ताज़ा करना" + }, + "filtering_refresh_tab_short_mobile": { + "message": "पृष्ठ पुनः लोड करें" + }, + "filtering_table_action": { + "message": "क्रिया" + }, + "filtering_table_empty_reload_page_desc": { + "message": "कुछ नहीं मिला। \u003Creset>फ़िल्टर अक्षम करें\u003C/reset> या \u003Crefresh>पृष्ठ पुनः लोड करें\u003C/refresh> करके लॉग अभिलेख देखने के लिए" + }, + "filtering_table_filter": { + "message": "फ़िल्टर" + }, + "filtering_table_open_details": { + "message": "विवरण खोलें" + }, + "filtering_table_rule": { + "message": "फ़िल्टरिंग नियम" + }, + "filtering_table_source": { + "message": "स्रोत" + }, + "filtering_table_status": { + "message": "स्थिति" + }, + "filtering_table_type": { + "message": "प्रकार" + }, + "filtering_type_all": { + "message": "सभी" + }, + "filtering_type_other": { + "message": "अन्य" + }, + "filters_download_loading": { + "message": "कृपया प्रतीक्षा करें फिल्टर डेटाबेस लोड हो रहा है..." + }, + "filters_download_title": { + "message": "फ़िल्टर लोड हो रहे हैं..." + }, + "fullscreen_user_rules_title": { + "message": "उपयोगकर्ता नियम" + }, + "group_description_adblocking": { + "message": "परेशान करने वाले बैनर, पॉप-अप, वीडियो विज्ञापन और इस तरह के, एक बार और सभी से निपटने के लिए यहां विज्ञापन अवरोधन को कॉन्फ़िगर करें।" + }, + "group_description_annoyances": { + "message": "पॉप-अप विंडोज़ और कुकी सूचनाएं जैसे अफसोसनाक नोटिफिकेशन्स को हटा दें।" + }, + "group_description_custom": { + "message": "अपनी पसंद के अनुसार वेब फ़िल्टरिंग को ठीक करने के लिए अपने स्वयं के फ़िल्टर बनाएं।" + }, + "group_description_lang": { + "message": "अपने आप को सीमित न करें — किसी भी भाषा में वेबसाइटों पर विज्ञापन ब्लॉक करें।" + }, + "group_description_miscellaneous": { + "message": "AdGuard के साथ अपनी वेब सर्फिंग को और भी कॉन्फ़िगर करने के लिए अधिक सेटिंग्स।" + }, + "group_description_security": { + "message": "मैलवेयर, फिशिंग, और अन्य ऑनलाइन खतरों से अपने आपको सुरक्षित रखें।" + }, + "group_description_social": { + "message": "अन्य सोशल मीडिया विजेट्स और अवांछित \"लाइक\"/\"शेयर\" बटन छुपाएं" + }, + "group_description_stealth": { + "message": "सभी ज्ञात लोकप्रिय ट्रैकिंग विधियों को अवरुद्ध करके हजारों ऑनलाइन ट्रैकर्स से अपनी पहचान और संवेदनशील व्यक्तिगत जानकारी को सुरक्षित रखें।" + }, + "name": { + "message": "एडवर्ड टब्लिकर" + }, + "opera_search_permission_dont_show": { + "message": "दुबारा न पूछें" + }, + "opera_search_permission_go_to_settings": { + "message": "सेटिंग पर जाएं" + }, + "opera_search_permission_warning": { + "message": "खोज विज्ञापनों को अवरोधित करने के लिए, ब्राउज़र की सेटिंग में खोज पृष्ठ परिणामों तक पहुंच की अनुमति दें" + }, + "options_about": { + "message": "के बारे में" + }, + "options_about_libs": { + "message": "उपयुक्त पुस्तकालयें" + }, + "options_about_title": { + "message": "AdGuard ब्राउज़र एक्सटेंशन" + }, + "options_about_update_available": { + "message": "संस्करण %version% उपलब्ध है। इसे स्वचालित रूप से डाउनलोड और इंस्टॉल किया जाएगा।" + }, + "options_about_version": { + "message": "संस्करण" + }, + "options_acknowledgment": { + "message": "अभिस्वीकृति" + }, + "options_add_custom_filter": { + "message": "मनपसंद फ़िल्टर जोड़ें" + }, + "options_add_custom_filter_modal_add_button": { + "message": "जोड़ें" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "आपके फ़िल्टर की जाँच की जा रही है..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL ने फ़िल्टर सूची के बजाय एक वेब पेज लौटाया। कृपया फ़िल्टर फ़ाइल के लिए एक सीधा लिंक प्रदान करें।" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "कृपया पुनः प्रयास करें या सहायता से संपर्क करें" + }, + "options_add_custom_filter_modal_error_title": { + "message": "कस्टम फ़िल्टर जोड़ने में विफल" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "फ़िल्टर का नाम:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "विश्वसनीय" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "कुछ फ़िल्टर नियम आपके ब्राउज़िंग अनुभव को काफ़ी हद तक बदल सकते हैं और आपकी गोपनीयता नीति से समझौता कर सकते हैं। सुनिश्चित करें कि आप केवल उन डेवलपर्स के फ़िल्टर का उपयोग करें जिन पर आप भरोसा करते हैं" + }, + "options_add_custom_filter_modal_title": { + "message": "मनपसंद फ़िल्टर जोड़ें" + }, + "options_all_limits_exceeded_warning": { + "message": "आप सक्रिय अंतर्निहित नियमों की सीमा तक पहुँच गए हैं। आपके ब्राउज़र ने सक्रिय अंतर्निहित फ़िल्टर की सूची को संशोधित किया है। सक्षम फ़िल्टरों की संख्या %expected% से %current% में बदल गई है।" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "आप अपने ब्राउज़र की सक्रिय अंतर्निहित नियमों की सीमा तक पहुँच गए हैं। आपके ब्राउज़र ने सक्रिय अंतर्निहित फ़िल्टरों की सूची %expected% से घटाकर %current%कर दी है।" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "आपका ब्राउज़र प्रतिबंधित करता है \u003Cexternal-link>कुछ प्रकार के नियम\u003C/external-link>. सभी नियमों को लागू करने के लिए, सक्षम करें \u003Cb>उपयोगकर्ता स्क्रिप्ट की अनुमति दें\u003C/b> अपने ब्राउज़र में \u003Csettings-link>एक्सटेंशन सेटिंग्स\u003C/settings-link>" + }, + "options_allowlist": { + "message": "अल्लॉवलिस्ट" + }, + "options_allowlist_alert_invert": { + "message": "अनुमति सूची उलटी है। विज्ञापन केवल उन वेबसाइटों पर अवरोधित होते हैं जो इसमें जोड़ी गई हैं।" + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>उलटना बंद करें\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard सूची की वेबसाइटों पर विज्ञापन और ट्रैकर्स को अवरोधित नहीं करता है" + }, + "options_allowlist_invalid_entries": { + "message": "सहेजने के लिए, केवल डोमेन या URL रखें। इन्हें ठीक करने की आवश्यकता है: %entries%" + }, + "options_allowlist_invert": { + "message": "अनुमति सूची को उल्टा करें" + }, + "options_allowlist_invert_desc": { + "message": "केवल अनुमति सूचीबद्ध वेबसाइटों पर विज्ञापन और ट्रैकर्स को अवरुद्ध करता है" + }, + "options_allowlist_leave_subtitle": { + "message": "अनुमति सूची में आपके सारे परिवर्तन खो जाएंगे" + }, + "options_allowlist_menu": { + "message": "अनुमति सूची क्रिया" + }, + "options_anonymized_usage_data_description": { + "message": "एक्सटेंशन उपयोग पर अनाम आँकड़े AdGuard को भेजता है. \u003Cbutton>अधिक जानें\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "ठीक है" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "इस डेटा में शामिल हैं:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "आपके द्वारा क्लिक किए गए बटनों के नाम" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "आप जिन स्क्रीन से इंटरैक्ट करते हैं" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "सत्र पहचानकर्ता" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "यह डेटा गुमनाम है और केवल आंतरिक रूप से उपयोग किया जाता है। हम इसे कभी भी तीसरे पक्ष के साथ साझा नहीं करते।" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "हमें AdGuard की कार्यक्षमता का विश्लेषण और सुधार करने के लिए यह जानकारी चाहिए।" + }, + "options_anonymized_usage_data_modal_title": { + "message": "विस्तार उपयोग डेटा" + }, + "options_anonymized_usage_data_title": { + "message": "गुमनाम विस्तार उपयोग डेटा भेजें" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "यह कस्टम फ़िल्टर पहले ही जोड़ा जा चुका है" + }, + "options_antibanner_custom_group": { + "message": "प्रचलन" + }, + "options_antibanner_custom_group_description": { + "message": "आपको फ़ाइल या URL से फ़िल्टर जोड़ने की अनुमति देता है" + }, + "options_antibanner_rules_count": { + "message": "नियम: %rules_count%" + }, + "options_antibanner_updated": { + "message": "अपडेट किया गया: %date%" + }, + "options_block_acceptable_ads": { + "message": "खोज विज्ञापन और वेबसाइट के स्व-प्रचार को अवरुद्ध करें" + }, + "options_block_acceptable_ads_desc": { + "message": "खोज परिणामों में और वेबसाइट के स्व-प्रचार में विज्ञापन अवरुद्ध करता है। \u003Ca>अधिक जाने\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "कुकीज़ को अवरुद्ध करने के लिए, आजीवन को 0 पर सेट करें" + }, + "options_block_known_trackers_description": { + "message": "AdGuard ट्रैकिंग सुरक्षा फ़िल्टर के साथ ट्रैकर्स और वेब विश्लेषिकी को ब्लॉक करें।" + }, + "options_block_known_trackers_title": { + "message": "ट्रैकर्स को ब्लॉक करें" + }, + "options_check_update_progress": { + "message": "जाँच।।।" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "स्पष्ट" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "डाटा प्रयोग पर सभी आँकड़े स्थायी रूप से हटाए जाएंगे" + }, + "options_clear_stats_confirm_modal_title": { + "message": "आंकड़े साफ़ करें" + }, + "options_clipboard_permission_warning": { + "message": "नियमों को कॉपी और पेस्ट करने के लिए, AdGuard को क्लिपबोर्ड तक पहुंचने की अनुमति दें। \u003Ca>अनुमति दें\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "एक्सटेंशन के विज्ञापन फ़िल्टर प्रयोग पर गुमनाम आँकड़े AdGuard को भेजता है। \u003Ca>अधिक जाने\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuard फ़िल्टर के विकास में मदद करें" + }, + "options_coming_soon": { + "message": "जल्द आ रहा है" + }, + "options_confirm_modal_cancel_button": { + "message": "रद्द करें" + }, + "options_copyright": { + "message": "\tसर्वाधिकार सुरक्षित।" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "कस्टम फ़िल्टर का उपयोग करने के लिए, सक्षम करें \u003Cb>उपयोगकर्ता स्क्रिप्ट की अनुमति दें\u003C/b> अपने ब्राउज़र में \u003Csettings-link>एक्सटेंशन सेटिंग्स\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "कस्टम फ़िल्टर का उपयोग करने के लिए, सक्षम करें \u003Cb>डेवलपर मोड\u003C/b> अपने ब्राउज़र में \u003Csettings-link>एक्सटेंशन सेटिंग्स\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "एडगार्ड के लिए Linux प्राप्त करें" + }, + "options_desktop_app_promo_button_mac": { + "message": "एडगार्ड के लिए Mac प्राप्त करें" + }, + "options_desktop_app_promo_button_windows": { + "message": "एडगार्ड के लिए Windows प्राप्त करें" + }, + "options_desktop_app_promo_description": { + "message": "Spotify, Discord, या Zoom जैसे ऐप्स अभी भी विज्ञापन दिखा सकते हैं और आपकी गतिविधि को ट्रैक कर सकते हैं" + }, + "options_desktop_app_promo_subdescription": { + "message": "हमारा डेस्कटॉप ऐप आपको उनसे सुरक्षित रख सकता है" + }, + "options_desktop_app_promo_title": { + "message": "विस्तार केवल ब्राउज़र की सुरक्षा करता है" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "आपका ब्राउज़र प्रतिबंधित करता है \u003Cexternal-link>कुछ प्रकार के नियम\u003C/external-link>. सभी नियमों को लागू करने के लिए, सक्षम करें \u003Cb>डेवलपर मोड\u003C/b> अपने ब्राउज़र में \u003Csettings-link>एक्सटेंशन सेटिंग्स\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "WebRTC को अवरुद्ध करता है जो आपका असली IP address प्रॉक्सी या VPN उपयोग के बावजूद लीक कर सकता है। कुछ संदेशवाहक, स्ट्रीमिंग प्लेटफ़ॉर्म, या खेल ठीक से काम करना बंद कर सकते हैं।" + }, + "options_disable_webrtc_title": { + "message": "वेबआरटीसी को ब्लॉक करें" + }, + "options_discuss": { + "message": "एडगार्ड पर चर्चा करें" + }, + "options_do_you_like_question": { + "message": "क्या आपको AdGuard पसंद है?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "विंडो मोड से बाहर निकलें" + }, + "options_editor_indicator_saved": { + "message": "बचाया" + }, + "options_editor_indicator_saving": { + "message": "\tसहेज रहा है…" + }, + "options_editor_leave_cancel": { + "message": "संपादन पर वापस जाएं" + }, + "options_editor_leave_confirm": { + "message": "हाँ, छोड़ें" + }, + "options_editor_leave_title": { + "message": "बिना सहेजे बाहर जाएं?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "संपादक को नई विंडो में खोलें" + }, + "options_editor_save": { + "message": "सहेजें" + }, + "options_editor_save_error": { + "message": "परिवर्तनों को सहेजने में विफल. पुनः प्रयास करें या सहयोग से संपर्क करें" + }, + "options_empty_custom_filter": { + "message": "क्षमा करें, लेकिन आपके पास अभी तक कोई कस्टम फ़िल्टर नहीं है" + }, + "options_enable_autodetect_filter": { + "message": "सबसे उपयुक्त फ़िल्टर को स्वचालित रूप से सक्रिय करें" + }, + "options_enable_autodetect_filter_desc": { + "message": "वेबसाइट की भाषा का पता लगाता है और उपयुक्त फ़िल्टर सक्रिय करता है" + }, + "options_export_settings": { + "message": "निर्यात सेटिंग्स" + }, + "options_filters": { + "message": "फिल्टर" + }, + "options_filters_annoyances_consent_description": { + "message": "आप एक या अधिक झुंझलाहट फ़िल्टर सक्रिय करने वाले हैं। ये उन तत्वों को अवरोधित करते हैं जो या तो वेबसाइट सामग्री से असंबंधित हैं या संबंधित हैं लेकिन आपके उपयोगकर्ता के अनुभव के लिए कष्टप्रद हैं। वेबसाइट मालिक इन तत्वों को अनिवार्य मान सकते हैं: यदि आप उन्हें अवरोधित करते हैं, तो आप उनकी शर्तों का उल्लंघन कर सकते हैं; कुछ वेबसाइटों की कार्यक्षमता उपलब्ध नहीं हो सकती या ठीक से काम नहीं कर सकती। आप समझते हैं और सहमत हैं कि आप जिन वेबसाइटों पर जाते हैं उनके उपयोग की शर्तों का पालन करने के लिए पूरी तरह से उत्तरदायी हैं और AdGuard आपके द्वारा देखी जाने वाली वेबसाइटों के उपयोग की शर्तों के अनुपालन के लिए जिम्मेदार नहीं है।" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "सक्षम" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "मुख पृष्ठ" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "AdGuard के झुंझलाहट फ़िल्टर ब्लॉक के बारे में विवरण के लिए, देखें \u003Ca>फ़िल्टर नीति\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "इन फिल्टर को सक्षम करें?" + }, + "options_filters_annoyances_consent_title": { + "message": "झुंझलाहट फ़िल्टर सक्षम करने से पहले कृपया ध्यान से पढ़ें" + }, + "options_filters_back_button": { + "message": "पस जाओ" + }, + "options_filters_empty_title": { + "message": "कुछ भी नहीं मिला" + }, + "options_filters_enabled": { + "message": "सक्षम होना चाहिए:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% और %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% सक्षम और %more% और" + }, + "options_filters_enabled_per_group": { + "message": "सक्षम: %current% का %total%" + }, + "options_filters_filter_link": { + "message": "होमपेज पर जाये" + }, + "options_filters_filter_tags": { + "message": "टैग फ़िल्टर करें" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "आपने इस फ़िल्टर पर विश्वास करना चुना है." + }, + "options_filters_filter_updated": { + "message": "अद्यतन:" + }, + "options_filters_filter_version": { + "message": "संस्करण:" + }, + "options_filters_info_mv3_total_rules": { + "message": "कुल नियम: %num%" + }, + "options_filters_last_checked": { + "message": "अंतिम जाँच: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "सभी फ़िल्टर" + }, + "options_filters_list_search_display_option_disabled": { + "message": "निष्क्रिय" + }, + "options_filters_list_search_display_option_enabled": { + "message": "सक्रिय" + }, + "options_filters_no_enabled": { + "message": "कोई फ़िल्टर सक्षम नहीं है" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" समूह के फ़िल्टर" + }, + "options_filters_search": { + "message": "खोज" + }, + "options_filters_search_filter": { + "message": "खोज फ़िल्टर" + }, + "options_first_party_block_cookies_warning": { + "message": "यदि आप इन कुकी को ब्लॉक करते हैं, तो कुछ वेबसाइट्स खराब या बंद हो सकती हैं।" + }, + "options_first_party_desc": { + "message": "प्रथम पक्ष की कुकी की लाइफटाइम को सीमित करके वेबसाइट को आपकी जानकारी, जैसे लॉगिन क्रेडेंशियल्स और भाषा प्राथमिकताएं, याद रखने से रोकता है" + }, + "options_first_party_title": { + "message": "प्रथम पक्ष कुकीज़ हटायें (अनुशंसित नहीं)" + }, + "options_general_settings": { + "message": "सामान्य" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "तृतीय-पक्ष को यह जानने से रोकें कि आप किस वेबसाइट पर जा रहे हैं।" + }, + "options_hide_referrer_title": { + "message": "तृतीय-पक्ष से संदर्भ छिपाएं" + }, + "options_hide_search_queries_desc": { + "message": "खोज इंजन के परिणामों से विज़िट की गई वेबसाइटों से आपकी खोजों को छुपाता है" + }, + "options_hide_search_queries_title": { + "message": "खोज क्वेरी छिपाएँ" + }, + "options_import_configuration_applying_subtitle": { + "message": "आपकी वर्तमान सेटिंग को आयात की गई सेटिंग से बदला जा रहा है। आयात के दौरान छानना निष्क्रिय है" + }, + "options_import_configuration_applying_title": { + "message": "आयात किया जा रहा है..." + }, + "options_import_configuration_confirm_button": { + "message": "आयात" + }, + "options_import_configuration_confirm_subtitle": { + "message": "आयात किए गए सेटिंग्स आपकी वर्तमान सेटिंग्स की जगह ले लेंगे। अन्य सेटिंग्स प्रभावित नहीं होंगी" + }, + "options_import_configuration_confirm_title": { + "message": "सेटिंग आयात करना" + }, + "options_import_configuration_error_button": { + "message": "बंद" + }, + "options_import_configuration_error_subtitle": { + "message": "कृपया आयात लिंक जांचें और पुनः प्रयास करें। यदि इससे समस्या हल नहीं होती, तो समर्थन से सम्पर्क करें" + }, + "options_import_configuration_error_title": { + "message": "सेटिंग्स इंपोर्ट करने में असफल" + }, + "options_import_configuration_success_button": { + "message": "बंद" + }, + "options_import_configuration_success_subtitle": { + "message": "सेटिंग सफलतापूर्वक आयात की गईं" + }, + "options_import_configuration_success_title": { + "message": "सभी तैयार है" + }, + "options_import_settings": { + "message": "सेटिंग आयात करना" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "उलटें" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "विज्ञापन और ट्रैकर्स केवल अनुमति सूची की वेबसाइटों पर ही अवरोधित किए जाएंगे" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "अनुमति सूची उलटें?" + }, + "options_leave_feedback": { + "message": "प्रतिक्रिया दें" + }, + "options_lifetime_minutes": { + "message": "आजीवन, मिनट" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "आप उपयोगकर्ता द्वारा जोड़े गए रेगेक्स नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% रेगेक्स नियम सक्षम हैं।" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "आप उपयोगकर्ता-जोड़े गए रेगेक्स नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% नियम सक्रिय हैं। नए रेगेक्स नियम जोड़ने के लिए, कुछ मौजूदा नियम हटा दें।" + }, + "options_limits_warning_dynamic_rules": { + "message": "आप उपयोगकर्ता द्वारा जोड़े गए नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% नियम सक्षम हैं।" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "आप उपयोगकर्ता द्वारा जोड़े गए नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% नियम सक्रिय हैं। नए नियम जोड़ने के लिए, कुछ मौजूदा नियमों को हटाएँ।" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "आपने उपयोगकर्ता द्वारा जोड़ी गई खतरनाक नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% खतरनाक नियम सक्षम हैं।" + }, + "options_limits_warning_static_filters": { + "message": "आप सक्रिय अंतर्निहित फ़िल्टर की सीमा तक पहुँच गए हैं। %maximum% में से %current% फ़िल्टर सक्षम हैं। नए नियमों को सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर अक्षम करें।" + }, + "options_limits_warning_static_filters_browser": { + "message": "आप अपने ब्राउज़र की सक्रिय अंतर्निहित फ़िल्टर की सीमा तक पहुँच गए हैं। %maximum% में से %current% फ़िल्टर सक्षम हैं। नए फ़िल्टर सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर बंद करें।" + }, + "options_limits_warning_static_regex_rules": { + "message": "आप सक्रिय अंतर्निहित रेगेक्स नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% रेगेक्स नियम सक्षम हैं। नए नियमों को सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर अक्षम करें।" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "आप सक्रिय अंतर्निहित regex नियमों की सीमा तक पहुँच गए हैं। नए नियमों को सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर बंद करें।" + }, + "options_limits_warning_static_rules": { + "message": "आप सक्रिय अंतर्निहित नियमों की सीमा तक पहुँच गए हैं। %maximum% में से %current% नियम सक्षम हैं। नए नियमों को सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर अक्षम करें।" + }, + "options_limits_warning_static_rules_browser": { + "message": "आप अपने ब्राउज़र की सक्रिय अंतर्निहित नियमों की सीमा तक पहुँच गए हैं। नए नियमों को सक्रिय करने के लिए, कुछ अंतर्निहित फ़िल्टर बंद करें।" + }, + "options_loader_applying_changes": { + "message": "बदलाव अप्लाई हो रहें हैं।..." + }, + "options_miscellaneous_settings": { + "message": "अतिरिक्त सेटिंग्स" + }, + "options_modified_first_party_cookie": { + "message": "प्रथम-पक्ष कुकी संशोधित" + }, + "options_modified_third_party_cookie": { + "message": "प्रथम-पक्ष कुकी संशोधित" + }, + "options_nav_better_than_extension": { + "message": "AdGuard ऐप एक्सटेंशन से बेहतर क्यों है?" + }, + "options_nav_compare": { + "message": "तुलना करना" + }, + "options_navigation": { + "message": "नेविगेशन" + }, + "options_open_changelog": { + "message": "बदलाव का" + }, + "options_open_log": { + "message": "लॉग फ़िल्टर किया जा रहा है" + }, + "options_popup_call_to_action": { + "message": "उपरोक्त क्षेत्र में फ़िल्टर का वैध यूआरएल या फ़ाइल पथ दर्ज करें।" + }, + "options_popup_check_false_description": { + "message": "मनपसंद फ़िल्टर जोड़ने में त्रुटि." + }, + "options_popup_check_false_title": { + "message": "त्रुटि" + }, + "options_popup_checking_filter": { + "message": "अपने फ़िल्टर को जाँचना" + }, + "options_popup_description": { + "message": "आपको उस फ़िल्टर की सदस्यता मिल जाएगी।" + }, + "options_popup_filter_description": { + "message": "विवरण:" + }, + "options_popup_filter_homepage": { + "message": "मुखपृष्ठ:" + }, + "options_popup_filter_rules_count": { + "message": "नियम गणना: " + }, + "options_popup_filter_title": { + "message": "शीर्षक:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "संस्करण:" + }, + "options_popup_import_error_file_description": { + "message": "कुछ गलत हो गया" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "इस सेटिंग फ़ाइल को आयात करने के लिए, AdGuard को अपनी गोपनीयता-संबंधी सेटिंग बदलने की अनुमति दें." + }, + "options_popup_import_error_title": { + "message": "सेटिंग आयात करने में विफल" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "फ़ाइल एक्सटेंशन होना चाहिए %extension%" + }, + "options_popup_import_success_title": { + "message": "सेटिंग्स आयात की गई" + }, + "options_popup_next_button": { + "message": "अगला" + }, + "options_popup_subscribe_button": { + "message": "सदस्यता लें" + }, + "options_popup_title_placeholder": { + "message": " फ़िल्टर का नाम दर्ज करें" + }, + "options_popup_trusted_filter_description": { + "message": "विश्वसनीय के रूप में चिह्नित फ़िल्टर शक्तिशाली फ़िल्टरिंग नियम संशोधक का उपयोग कर सकते हैं जो गलत हाथों में खतरनाक हो सकते हैं। जब तक आप पूरी तरह से इस पर भरोसा नहीं करते तब तक इस बॉक्स को चेक न करें।" + }, + "options_popup_trusted_filter_title": { + "message": "विश्वसनीय" + }, + "options_popup_try_again_button": { + "message": "पुनः प्रयास करें" + }, + "options_popup_update_error": { + "message": "अद्यतन प्राप्त करने में विफल। बाद में पुन: प्रयास करें।" + }, + "options_popup_update_filter": { + "message": "अद्दतन किया गया था" + }, + "options_popup_update_filters": { + "message": "अद्दतन किया गया था" + }, + "options_popup_update_not_found": { + "message": "आपके फ़िल्टर अप टू डेट हैं" + }, + "options_popup_update_title_error": { + "message": "फ़िल्टर को अपडेट करने में त्रुटि" + }, + "options_popup_updating_filters": { + "message": "फ़िल्टर अद्यतन कर रहा है..." + }, + "options_popup_url_placeholder": { + "message": "यूआरएल या पथ दर्ज करें" + }, + "options_popup_url_title": { + "message": "नई फ़िल्टर सबस्क्रिप्शन" + }, + "options_popup_version_update_changelog_text": { + "message": "इस संस्करण में नया क्या है?" + }, + "options_popup_version_update_description_major": { + "message": "यह एक प्रमुख एक्सटेंशन अपग्रेड है जो बहुत सारी नई सुविधाएँ और सुधार लाता है।" + }, + "options_popup_version_update_description_minor": { + "message": "इस संस्करण में ज्यादातर बगफिक्स और छोटे सुधार शामिल हैं" + }, + "options_popup_version_update_disable_notification": { + "message": "नोटीफिकेशन निष्क्रिय किया गया" + }, + "options_popup_version_update_offer": { + "message": "क्या आप जानते हैं कि AdGuard क्षमताएं इस ब्राउज़र तक सीमित नहीं हैं?" + }, + "options_popup_version_update_offer_button_text": { + "message": "और अधिक जानें" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard एक्सटेंशन को $ 1 संस्करण में अपडेट किया गया है %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "WebRTC को एक अधिक सख्त IP address नीति का उपयोग करने के लिए सक्षम बनाता है ताकि जब आप प्रॉक्सी या VPN का उपयोग करें तो आपके वास्तविक IP address को छुपाने में मदद मिले" + }, + "options_prevent_webrtc_leaks_title": { + "message": "WebRTC के माध्यम से IP address रिसाव को रोकें" + }, + "options_privacy": { + "message": "ट्रैकिंग सुरक्षा" + }, + "options_privacy_desc": { + "message": "आपकी ऑनलाइन गतिविधि और व्यक्तिगत डेटा को वेब ट्रैकर्स से सुरक्षित रखता है" + }, + "options_privacy_policy": { + "message": "गोपनीयता नीति" + }, + "options_privacy_title": { + "message": "ट्रैकिंग सुरक्षा" + }, + "options_rate_us_cta": { + "message": "इसे रेट करें" + }, + "options_remove_client_data_desc": { + "message": "Google Chrome को उसका संस्करण और संशोधनों की जानकारी Google डोमेन पर भेजने से रोकें।" + }, + "options_remove_client_data_title": { + "message": "एक्स-क्लाइंट-डेटा हेडर निकालें" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "हटाए" + }, + "options_remove_filter_confirm_modal_title": { + "message": "इस फ़िल्टर को हटा दें?" + }, + "options_report_bug": { + "message": "गलती सूचित करें" + }, + "options_reset_settings": { + "message": "सेटिंग्स रीसेट करें" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "रिसेट" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "सभी सेटिंग डिफ़ॉल्ट मानों पर रीसेट की जाएंगी" + }, + "options_reset_settings_confirm_modal_title": { + "message": "सेटिंग्स रीसेट करें" + }, + "options_reset_settings_done": { + "message": "सेटिंग्स रीसेट कर दी गई हैं" + }, + "options_reset_settings_error": { + "message": "सेटिंग रीसेट करते समय गड़बड़ी हुई" + }, + "options_reset_stats": { + "message": "सांख्यिकीय को रीसेट करें" + }, + "options_reset_stats_done": { + "message": "आंकड़े रीसेट कर दिए गए हैं" + }, + "options_rule_limits": { + "message": "नियम सीमा" + }, + "options_rule_limits_description": { + "message": "Chrome लागू किए जा सकने वाले नियमों की संख्या को सीमित करता है" + }, + "options_rule_limits_dynamic": { + "message": "गतिशील नियम" + }, + "options_rule_limits_dynamic_regex": { + "message": "रेगेक्स नियम — उपयोगकर्ता द्वारा जोड़े गए नियमों में शामिल हैं" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "खतरनाक गतिशील नियम (कुछ उन्नत संशोधकों के लिए उपयोग किए जाते हैं, जैसे $$redirect या $$cookie) — उपयोगकर्ता द्वारा जोड़े गए नियमों में शामिल हैं" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "उपयोगकर्ता द्वारा जोड़े गए नियम, जैसे \u003Cuser_rules>उपयोगकर्ता नियम\u003C/user_rules>, \u003Callowlist>अनुमति की गई वेबसाइटें\u003C/allowlist>, और \u003Ccustom_filters>कस्टम फ़िल्टर\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "उपयोगकर्ता द्वारा जोड़े गए नियम, जैसे \u003Cuser_rules>उपयोगकर्ता नियम\u003C/user_rules> और \u003Callowlist>सूचीबद्ध वेबसाइटों की अनुमति दें\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% का %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "स्थैतिक नियम" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>अंतर्निहित फ़िल्टर\u003C/a> से नियम" + }, + "options_rule_limits_static_rules_regex": { + "message": "रेगेक्स नियम — उपरोक्त में शामिल" + }, + "options_rule_limits_static_rulesets": { + "message": "स्थैतिक नियम-सेट" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>अंतर्निहित फ़िल्टर\u003C/a>, जैसे व्याकुलताएं ब्लॉक करें या भाषा-विशिष्ट फ़िल्टर" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "विकल्प 3. यदि आप वर्तमान में सक्षम डिफ़ॉल्ट फ़िल्टर से संतुष्ट हैं, तो \u003Ca>इस चेतावनी को बंद करें\u003C/a>।" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "विकल्प 3. यदि आप वर्तमान में सक्षम डिफ़ॉल्ट फ़िल्टर से संतुष्ट हैं, तो \u003Ca>इस चेतावनी को बंद करें\u003C/a>।" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "विकल्प 1. अपने ब्राउज़र से अनावश्यक विज्ञापन-अवरोधक एक्सटेंशन हटाएं। \"अपडेट से पहले सक्षम फ़िल्टर\" अनुभाग में उल्लिखित फ़िल्टर को पुनः सक्रिय करने के लिए, क्लिक करें \u003Ca>फ़िल्टर पुनः सक्रिय करें\u003C/a>।" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "विकल्प 2. एडगार्ड एड ब्लॉकर ऐप इंस्टॉल करें: इसमें फ़िल्टरिंग नियमों पर कोई प्रतिबंध नहीं है। \u003Ca>एडगार्ड ऐप प्राप्त करें\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "आपके संभावित कार्य" + }, + "options_rule_limits_warning_explanation_description": { + "message": "अद्यतन या नया एक्सटेंशन जोड़ने के बाद सक्रिय अंतर्निहित नियमों की सीमा पार हो गई थी। मेनिफेस्ट V3 के अनुसार, आपके क्रोम ब्राउज़र ने डिफ़ॉल्ट एक्सटेंशन को छोड़कर सभी एक्सटेंशन के बिल्ट-इन फ़िल्टर को अक्षम करके प्रतिक्रिया दी।" + }, + "options_rule_limits_warning_explanation_title": { + "message": "क्या हुआ?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "अद्यतन से पहले फ़िल्टर सक्षम किए गए" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "फ़िल्टर अब सक्षम हैं" + }, + "options_rule_limits_warning_title": { + "message": "ब्राउज़र ने सक्रिय फ़िल्टर की सूची संशोधित कर दी है" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "नियम सीमाओं को हटाए और सभी ब्राउज़र में काम करने वाली विस्तारित सुरक्षा प्राप्त करें" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "डेस्कटॉप ऐप इंस्टॉल करें" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "फ़िल्टरस में जाएं" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "विस्तार प्रबंध करें" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "ब्राउज़र विस्तार समान नियम सीमा साझा करते हैं। अन्य विज्ञापन अवरोधक हटाने से एडगार्ड ब्राउज़र एक्सटेंशन के लिए अधिक नियम मुक्त हो सकते हैं" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "अन्य विज्ञापन अवरोधक हटाएं" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "जिन फ़िल्टर की आपको आवश्यकता है उन्हें सक्रिय करें। भाषा-विशिष्ट और गोपनीयता फ़िल्टर कई नियमों का उपयोग कर सकते हैं" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "उपलब्ध फ़िल्टर की समीक्षा करें" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "यहाँ आप क्या कर सकते हैं" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "सीमा तक पहुँच गए — कुछ फ़िल्टर निष्क्रिय कर दिए गए" + }, + "options_rule_syntax": { + "message": "नियम वाक्य रचना" + }, + "options_safebrowsing_enabled": { + "message": "फ़िशिंग और मैलवेयर सुरक्षा" + }, + "options_safebrowsing_enabled_desc": { + "message": "AdGuard ब्राउज़िंग सुरक्षा भाग का उपयोग करते हुए दुर्भावनापूर्ण और फिशिंग वेबसाइटों के बारे में चेतावनी देता है। \u003Ca>अधिक पढ़ें\u003C/a>" + }, + "options_select_theme": { + "message": "थीम" + }, + "options_select_update_period_12h": { + "message": "12 घंटे" + }, + "options_select_update_period_1h": { + "message": "1 घंटे" + }, + "options_select_update_period_24h": { + "message": "48 घंटे" + }, + "options_select_update_period_48h": { + "message": "48 घंटे" + }, + "options_select_update_period_6h": { + "message": "6 घंटे" + }, + "options_select_update_period_default": { + "message": "चूक" + }, + "options_select_update_period_disabled": { + "message": "सक्षम" + }, + "options_send_not_track_desc": { + "message": "भेजें \u003Cgpc>वैश्विक गोपनीयता नियंत्रण\u003C/gpc> और \u003Cdnt>ट्रैक न करें\u003C/dnt> संकेत आपके द्वारा देखी जाने वाली वेबसाइटों पर।" + }, + "options_send_not_track_title": { + "message": "वेबसाइटों से अनुरोध करें कि वे मुझे ट्रैक न करें" + }, + "options_set_update_interval": { + "message": "\tअद्यतन अंतराल जांचना" + }, + "options_set_update_interval_desc": { + "message": "अधिक प्रभावी विज्ञापन अवरुद्ध करने के लिए फ़िल्टरों को अद्यतन रखें" + }, + "options_settings": { + "message": "AdGuard सेटिंग्स" + }, + "options_share_settings": { + "message": "सेटिंग साझा करें" + }, + "options_show_adguard_full_version_title": { + "message": "AdGuard पूर्ण संस्करण के बारे में जानकारी दिखाएँ" + }, + "options_show_app_updated_notification": { + "message": "एक्सटेंशन अपडेट के बारे में सूचित करें" + }, + "options_show_blocked_ads_count_title": { + "message": "AdGuard एक्सटेंशन आइकन पर अवरुद्ध विज्ञापनों की संख्या इंगित करें" + }, + "options_show_context_menu_title": { + "message": "Adguard आइटम को ब्राउज़र के संदर्भ मेनू में जोड़ें" + }, + "options_site": { + "message": "आधिकारिक वेबसाइट" + }, + "options_skip_to_main_content": { + "message": "मुख्य सामग्री पर जाएँ" + }, + "options_stealth_general_title": { + "message": "सामान्य" + }, + "options_stealth_miscellaneous_title": { + "message": "प्रकीर्ण" + }, + "options_stealth_tracking_methods_title": { + "message": "ट्रैकिंग के तरीके" + }, + "options_strip_tracking_params_description": { + "message": "AdGuard URL ट्रैकिंग फ़िल्टर के साथ पृष्ठ URL से ट्रैकिंग पैरामीटर निकालें।" + }, + "options_strip_tracking_params_title": { + "message": "URL से ट्रैकिंग पैरामीटर निकालें" + }, + "options_stripped_tracking_parameters": { + "message": "ट्रैकिंग पैरामीटर stripped" + }, + "options_theme_selector_dark": { + "message": "डार्क" + }, + "options_theme_selector_light": { + "message": "लाइट" + }, + "options_theme_selector_system": { + "message": "सिस्टम डिफ़ॉल्ट" + }, + "options_third_party_block_cookies_warning": { + "message": "यदि आप इन कुकी को ब्लॉक करते हैं, तो आपको कुछ वेबसाइटों पर फिर से लॉग इन करना पड़ सकता है या अन्य कुकी-संबंधित समस्याओं का सामना करना पड़ सकता है।" + }, + "options_third_party_desc": { + "message": "यह सुनिश्चित करता है कि विज्ञापनदाता आपकी विभिन्न पृष्ठों के बीच व्यवहार को ट्रैक न कर सकें, तृतीय-पक्ष कुकीज़ की आजीवन सीमा को सीमित करके" + }, + "options_third_party_title": { + "message": "तृतीय-पक्ष कुकीज़ हटायें" + }, + "options_update_antibanner_filters": { + "message": "अद्यतन के लिए जांचे" + }, + "options_use_optimized_filters": { + "message": "\tअनुकूलित फ़िल्टर का उपयोग करें" + }, + "options_use_optimized_filters_desc": { + "message": "ट्रैफ़िक को बचाने के लिए केवल सबसे लोकप्रिय नियमों के साथ फ़िल्टर के छोटे संस्करणों का उपयोग करता है। मोबाइल ब्राउज़र के लिए बेहतर अनुकूल" + }, + "options_user_rules_clear_search": { + "message": "खोज साफ करें" + }, + "options_user_rules_create_rule": { + "message": "नियम बनाएँ" + }, + "options_user_rules_delete_all": { + "message": "सभी हटाएँ" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "सभी उपयोगकर्ता नियम स्थायी रूप से हटा दिए जाएंगे" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "सभी को हटाएं?" + }, + "options_user_rules_delete_all_success": { + "message": "सभी उपयोगकर्ता नियम हटा दिए गए" + }, + "options_user_rules_delete_rule": { + "message": "नियम हटाएं" + }, + "options_user_rules_deleted_notification": { + "message": "उपयोगकर्ता नियम हटा दिया गया:" + }, + "options_user_rules_description_key": { + "message": "विज्ञापनों या पूरी वेबसाइटों के अवरुद्ध करना और अवरुध हटाएँ के लिए आपके नियम" + }, + "options_user_rules_edit_rule": { + "message": "नियम संपादित करें" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "संपादक के पास जाएँ" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "आपके नियम बंद करने के बाद यहां दिखाई देंगे" + }, + "options_user_rules_editor_stub_title": { + "message": "एडिटर एक अन्य विंडो में खोला गया" + }, + "options_user_rules_empty_placeholder": { + "message": "अभी तक कोई नियम नहीं" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "नियमों को हाइलाइट किया जा रहा है…" + }, + "options_user_rules_import_error": { + "message": "उपयोगकर्ता नियम आयात करने में विफल। पुनः प्रयास करें" + }, + "options_user_rules_import_success": { + "message": "उपयोगकर्ता नियम सफलतापूर्वक आयात किए गए" + }, + "options_user_rules_menu": { + "message": "उपयोगकर्ता नियम क्रिया" + }, + "options_user_rules_no_match": { + "message": "कुछ नहीं मिला" + }, + "options_user_rules_search_placeholder": { + "message": "खोज" + }, + "options_user_rules_switch_to_editor": { + "message": "संपादक दृश्य में बदलें" + }, + "options_user_rules_switch_to_list": { + "message": "सूची दृश्य में बदलें" + }, + "options_user_rules_undo": { + "message": "पूर्ववत" + }, + "options_userfilter": { + "message": "उपयोगकर्ता फ़िल्टर" + }, + "options_userfilter_description_key": { + "message": "आप यहां अपने स्वयं के नियम जोड़ सकते हैं। HTML/CSS से परिचित उन्नत उपयोगकर्ताओं के लिए यह विकल्प अनुशंसित है. अपने स्वयं के \u003Ca>फ़िल्टर नियमों\u003C/a> को लिखने का तरीका जानने के लिए फ़िल्टर नियम ट्यूटोरियल पढ़ें।" + }, + "options_userfilter_export": { + "message": "निर्यात" + }, + "options_userfilter_import": { + "message": "आयात" + }, + "options_userfilter_leave_subtitle": { + "message": "आपके नियमों में परिवर्तन खो जाएंगे" + }, + "options_userfilter_line_break": { + "message": "लाइन ब्रेक" + }, + "options_userfilter_line_break_off": { + "message": "लाइन ब्रेक: बंद" + }, + "options_userfilter_line_break_on": { + "message": "लाइन ब्रेक: चालू" + }, + "options_userfilter_subtitle_key": { + "message": "आपको अपने खुद के फ़िल्टर नियम जोड़ने की अनुमति देता है" + }, + "popup_abuse_site": { + "message": "मामले का विवरण करें" + }, + "popup_adguard_footer_title": { + "message": "अपने मोबाइल डिवाइस को सुरक्षित करे" + }, + "popup_adguard_for_android": { + "message": "Android के लिए AdGuard" + }, + "popup_adguard_for_ios": { + "message": "IOS के लिए AdGuard" + }, + "popup_block_site_ads_option": { + "message": "विज्ञापनों को मैन्युअल रूप से ब्लॉक करें" + }, + "popup_get_system_wide_protection": { + "message": "सिस्टम-व्यापी सुरक्षा प्राप्त करें" + }, + "popup_header_cta_link": { + "message": "सुरक्षा कैसे बढ़ाएँ" + }, + "popup_header_update_filters": { + "message": "अद्यतन के लिए जांचे" + }, + "popup_limits_exceeded_warning": { + "message": "आपके ब्राउज़र ने सक्रिय अंतर्निहित फ़िल्टर की सूची को संशोधित किया है" + }, + "popup_open_filtering_log": { + "message": "फ़िल्टरिंग लोग खोलें" + }, + "popup_open_settings": { + "message": "AdGuard सेटिंग्स खोलें" + }, + "popup_protection_button": { + "message": "AdGuard सुरक्षा" + }, + "popup_reset_page_user_rules": { + "message": "इस वेबसाइट के लिए उपयोगकर्ता नियम हटाएँ" + }, + "popup_resume_protection_button": { + "message": "फिर से शुरू करना" + }, + "popup_security_report": { + "message": "वेबसाइट सुरक्षा रिपोर्ट" + }, + "popup_site_exception_information": { + "message": "इस वेबसाइट पे फ़िल्टरिंग बंद है क्युकी वो वेबसाइट को काम करने से बंद करदेगा." + }, + "popup_site_filtering_state_disabled": { + "message": "सुरक्षा अक्षम है" + }, + "popup_site_filtering_state_disabling": { + "message": "सुरक्षा बंद कर रहे हैं..." + }, + "popup_site_filtering_state_enabled": { + "message": "सुरक्षा रोका गया है" + }, + "popup_site_filtering_state_enabling": { + "message": "सुरक्षा सक्रिय कर रहे हैं..." + }, + "popup_site_filtering_state_loading": { + "message": "लोड हो रहा है..." + }, + "popup_site_filtering_state_paused": { + "message": "सुरक्षा रोका गया है" + }, + "popup_site_filtering_state_pausing": { + "message": "सुरक्षा को विश्राम दे रहा है..." + }, + "popup_site_filtering_state_resuming": { + "message": "सुरक्षा को फिर से शुरू कर रहे हैं..." + }, + "popup_site_filtering_state_secure_page": { + "message": "सुरक्षित पृष्ठ" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "सभी वेबसाइटों के लिए" + }, + "popup_statistics_all_categories": { + "message": "सभी" + }, + "popup_statistics_category_advertising": { + "message": "विज्ञापन" + }, + "popup_statistics_category_cdn": { + "message": "सीडीएन" + }, + "popup_statistics_category_label": { + "message": "आंकड़े श्रेणी" + }, + "popup_statistics_category_other": { + "message": "अन्य" + }, + "popup_statistics_category_social_media": { + "message": "सामाजिक मीडिया" + }, + "popup_statistics_category_trackers": { + "message": "ट्रैकर्स" + }, + "popup_statistics_months_apr": { + "message": "अप्रेल" + }, + "popup_statistics_months_aug": { + "message": "अगस्त" + }, + "popup_statistics_months_dec": { + "message": "दिसंबर" + }, + "popup_statistics_months_feb": { + "message": "फरवरी" + }, + "popup_statistics_months_jan": { + "message": "जनवरी" + }, + "popup_statistics_months_jul": { + "message": "जुलाई" + }, + "popup_statistics_months_jun": { + "message": "जून" + }, + "popup_statistics_months_mar": { + "message": "मार्च" + }, + "popup_statistics_months_may": { + "message": "मई" + }, + "popup_statistics_months_nov": { + "message": "नवंबर" + }, + "popup_statistics_months_oct": { + "message": "अक्टूबर" + }, + "popup_statistics_months_sep": { + "message": "सितम्बर" + }, + "popup_statistics_time_day": { + "message": "48 घंटे" + }, + "popup_statistics_time_label": { + "message": "आंकड़े समय अवधि" + }, + "popup_statistics_time_month": { + "message": "30 दिन" + }, + "popup_statistics_time_week": { + "message": "7 दिन" + }, + "popup_statistics_time_year": { + "message": "एक साल" + }, + "popup_statistics_total": { + "message": "सम्पूर्ण" + }, + "popup_statistics_week_days_fri": { + "message": "शुक्रवार" + }, + "popup_statistics_week_days_mon": { + "message": "सोमवार" + }, + "popup_statistics_week_days_sat": { + "message": "शनिवार" + }, + "popup_statistics_week_days_sun": { + "message": "सोमवार" + }, + "popup_statistics_week_days_thu": { + "message": "गुरुवार" + }, + "popup_statistics_week_days_tue": { + "message": "बुधवार" + }, + "popup_statistics_week_days_wed": { + "message": "बुधवार" + }, + "popup_switch_button": { + "message": "वर्तमान वेबसाइट के लिए सुरक्षा" + }, + "popup_tab_actions": { + "message": "क्रिया" + }, + "popup_tab_blocked_all_count": { + "message": "कुल बंद: %num%" + }, + "popup_tab_blocked_count": { + "message": "बंद: %num%" + }, + "popup_tab_current_website": { + "message": "वर्तमान वेबसाइट" + }, + "popup_tab_statistics": { + "message": "आंकड़े" + }, + "popup_tabs": { + "message": "टैब" + }, + "popup_tooltip_loading": { + "message": "लोड हो रहा है..." + }, + "popup_tooltip_protection_disabled": { + "message": "सुरक्षा बंध" + }, + "popup_tooltip_protection_enabled": { + "message": "सुरक्षा क्रियाशील है" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "कुछ नियम लागू नहीं हुए" + }, + "popup_tooltip_update_available": { + "message": "अद्यतन उपलब्ध है" + }, + "post_install_loading": { + "message": "एक्सटेंशन लोड हो रहा है..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard ब्राउज़र एक्सटेंशन में नियम सीमा पार हो गई है। कृपया अपने फ़िल्टर की जांच करें और जो आपको आवश्यक नहीं हैं उन्हें बंद करें" + }, + "text_collapser_hide_default": { + "message": "पूरा पाठ छुपाएँ" + }, + "text_collapser_show_default": { + "message": "पूरा पाठ दिखाएं" + }, + "update_available_desc": { + "message": "विज्ञापनों को प्रभावी ढंग से अवरुद्ध करने के लिए, अपने विस्तार और फ़िल्टर को अद्यतित रखें।" + }, + "update_available_title": { + "message": "अद्यतन उपलब्ध हैं" + }, + "update_available_update_btn": { + "message": "अपडेट" + }, + "update_check": { + "message": "अद्यतन के लिए जांचे" + }, + "update_checking_in_progress": { + "message": "अपडेट के लिए जांच कर रहा है..." + }, + "update_failed_text": { + "message": "अपडेट पूरा करने में विफल रहा" + }, + "update_failed_try_again_btn": { + "message": "पुनः प्रयास करें" + }, + "update_installing_in_progress_desc": { + "message": "अपडेट के बाद विस्तार पुनः प्रारंभ होगा" + }, + "update_installing_in_progress_title": { + "message": "विस्तार और फ़िल्टर अपडेट किए जा रहे हैं..." + }, + "update_not_needed": { + "message": "आपका विस्तार और फ़िल्टर नवीनतम हैं।" + }, + "update_success_text": { + "message": "विस्तार और फ़िल्टर अपडेट किए गए हैं" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hr/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hr/messages.json new file mode 100644 index 0000000..ea2785b --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hr/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% je automatski aktiviran." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatska aktivacija filtra" + }, + "background_tab_title": { + "message": "Pozadinska kartica" + }, + "blocking_pages_advanced_button": { + "message": "Napredno" + }, + "blocking_pages_btn_go_back": { + "message": "Vrati se nazad" + }, + "blocking_pages_btn_proceed": { + "message": "Sve jedno nastavi" + }, + "blocking_pages_malware": { + "message": "Ova web stranica na adresi \u003Cstrong>%host%\u003C/strong> prijavljena je kao zlonamjerna stranica te je stoga blokirana bazirano na vašim postavkama sigurnosti." + }, + "blocking_pages_more_info_button": { + "message": "Više informacija" + }, + "blocking_pages_page_title": { + "message": "Pristup je odbijen" + }, + "blocking_pages_phishing": { + "message": "Ova web stranica na adresi \u003Cstrong>%host%\u003C/strong> prijavljena je kao fishing stranica te je stoga blokirana bazirano na vaše postavke sigurnosti." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard je spriječio učitavanje ove stranice zbog sljedećeg pravila filtera" + }, + "blocking_pages_rule_header_title": { + "message": "Blokirao AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard je blokirao pristup ovoj stranici" + }, + "clear_button_title": { + "message": "Očisti" + }, + "close_button_title": { + "message": "Zatvori" + }, + "context_block_site_ads": { + "message": "Ručno blokirajte oglase" + }, + "context_complaint_website": { + "message": "Prijavite problem" + }, + "context_disable_protection": { + "message": "Pauziraj AdGuard zaštitu" + }, + "context_enable_protection": { + "message": "Uključi AdGuard zaštitu" + }, + "context_open_log": { + "message": "Zapisnik filtriranja" + }, + "context_open_settings": { + "message": "AdGuard postavke" + }, + "context_security_report": { + "message": "Provjeri sigurnost web stranice" + }, + "context_site_exception": { + "message": "Ova web stranica je u iznimkama" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ne može filtrirati ovu stranicu" + }, + "context_site_filtering_off": { + "message": "Onemogući filtriranje na ovoj web stranici" + }, + "context_site_filtering_on": { + "message": "Omogući filtriranje na ovoj web stranici" + }, + "context_site_protection_disabled": { + "message": "AdGuard zaštita je pauzirana" + }, + "context_update_antibanner_filters": { + "message": "Provjeri ažuriranja za filtre" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Najbolje proširenje za blokadu oglasa i skočnih prozora. Blokira oglase na Facebook-u, YouTube-u i drugim web stranicama." + }, + "filtering_clear_log_events": { + "message": "Očisti zapise" + }, + "filtering_log_actions_menu": { + "message": "Radnje zapisnika filtriranja" + }, + "filtering_log_assumed_rule_description": { + "message": "Ovo je pretpostavljeno pravilo. Za detalje pogledajte našu \u003Ca>bazu znanja\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metoda Http zahtjeva" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP kod stanja" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Zahtjev treće strane" + }, + "filtering_log_details_modal_back_button": { + "message": "Natrag na zahtjev" + }, + "filtering_log_details_modal_beautify_button": { + "message": "uljepšati se" + }, + "filtering_log_details_modal_try_again": { + "message": "Pokušajte ponovno" + }, + "filtering_log_filter_allowed": { + "message": "Dopušteno" + }, + "filtering_log_filter_blocked": { + "message": "Blokirano" + }, + "filtering_log_filter_modified": { + "message": "Promijenjeno" + }, + "filtering_log_filter_regular": { + "message": "Zadano" + }, + "filtering_log_filter_user_rules": { + "message": "Korisnička pravila" + }, + "filtering_log_hide_referrer": { + "message": "Referer je skriven od trećih strana" + }, + "filtering_log_hide_search_queries": { + "message": "Vaši upiti pretraživanja su skriveni" + }, + "filtering_log_in_allowlist": { + "message": "Ova stranica je dopuštena" + }, + "filtering_log_modified_rules": { + "message": "Izmijenjena pravila: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Da, sačuvaj" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ova opcija može značajno povećati upotrebu memorije" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Sačuvati zapisnik?" + }, + "filtering_log_preserve_log_off": { + "message": "Ne čuvaj zapisnik" + }, + "filtering_log_preserve_log_on": { + "message": "Sačuvaj zapisnik" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Nemoj više prikazivati" + }, + "filtering_log_privacy_applied_rules": { + "message": "Zaštita od praćenja primijenjena" + }, + "filtering_log_remove_client_data": { + "message": "Uklonjeno je X-Client-Data zaglavlje" + }, + "filtering_log_search_string": { + "message": "Pretraga" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Pretraži u karticama" + }, + "filtering_log_send_not_track": { + "message": "Poslano zaglavlje \"Ne prati me\"" + }, + "filtering_log_status_allowed": { + "message": "Dopušteno" + }, + "filtering_log_status_blocked": { + "message": "Blokirano" + }, + "filtering_log_status_modified": { + "message": "Modificirano" + }, + "filtering_log_status_processed": { + "message": "Procesirano" + }, + "filtering_log_stealth_rules": { + "message": "Pravila zaštite od praćenja: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Podrijetlo zahtjeva" + }, + "filtering_log_tag_request_status": { + "message": "Status filtriranja" + }, + "filtering_log_tag_request_type": { + "message": "Vrsta zahtjeva" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Samo dozvoljeni i odblokirani zahtjevi" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokirani zahtjevi" + }, + "filtering_log_tag_tooltip_css": { + "message": "Liste stilova" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Zahtjevi prve strane" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenti i poddokumenti" + }, + "filtering_log_tag_tooltip_img": { + "message": "Slike" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripte" + }, + "filtering_log_tag_tooltip_media": { + "message": "Multimedija" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Samo modificirani zahtjevi" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fontovi, pingovi, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Samo zahtjevi procesirani bez filtriranja" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Zahtjevi trećih strana" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Zahtjevi na koje utiču korisnička pravila" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpZahtjevi i zahtjevi dohvaćanja" + }, + "filtering_log_title": { + "message": "Zapisnik filtriranja" + }, + "filtering_menu_open_filters": { + "message": "Prilagodi" + }, + "filtering_modal_add_rule": { + "message": "DODAJ" + }, + "filtering_modal_allow_title": { + "message": "Dodaj pravilo o dopuštanju" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Primijenjeno pravilo | Primijenjena pravila | Primijenjenih pravila" + }, + "filtering_modal_apply_domains": { + "message": "Primijeni na sva web-mjesta" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Pretpostavljeno pravilo: | Pretpostavljena pravila: | Pretpostavljena pravila:" + }, + "filtering_modal_block": { + "message": "Blokiraj" + }, + "filtering_modal_block_again": { + "message": "Ponovno blokiraj" + }, + "filtering_modal_block_title": { + "message": "Dodavanje pravila blokiranja" + }, + "filtering_modal_converted_to": { + "message": "Pretvoreno u:" + }, + "filtering_modal_cookie": { + "message": "Kolačić:" + }, + "filtering_modal_copied": { + "message": "Kopirano" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopirati u međuspremnikq" + }, + "filtering_modal_declarative_rule": { + "message": "DNR pravilo:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Dodaj iznimku" + }, + "filtering_modal_filter": { + "message": "Filtar" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Status filtriranja" + }, + "filtering_modal_hide_full_element": { + "message": "Sakrij potpunu stavku" + }, + "filtering_modal_hide_full_rule": { + "message": "Sakrij potpuno pravilo" + }, + "filtering_modal_hide_full_url": { + "message": "Sakrij cijeli URL" + }, + "filtering_modal_important": { + "message": "Postavi viši prioritet ovom pravilu" + }, + "filtering_modal_info_title": { + "message": "Detalji zahtjeva" + }, + "filtering_modal_open_in_new_tab": { + "message": "Otvorite u novoj kartici" + }, + "filtering_modal_options_desc": { + "message": "Opcije" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Izvorno pravilo: | Izvorna pravila: | Izvorna pravila:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Što bi trebalo dopustiti" + }, + "filtering_modal_patterns_desc_block": { + "message": "Što bi trebalo blokirati" + }, + "filtering_modal_preview_request_button": { + "message": "Pregled" + }, + "filtering_modal_preview_title": { + "message": "Pregled" + }, + "filtering_modal_privacy": { + "message": "Zaštita od praćenja" + }, + "filtering_modal_remove_allowlist": { + "message": "Ukloni s popisa dopuštenih" + }, + "filtering_modal_remove_param": { + "message": "Uklanjanje parametara upita" + }, + "filtering_modal_remove_user": { + "message": "Ukloni pravilo" + }, + "filtering_modal_rule": { + "message": "Pravilo:" + }, + "filtering_modal_rule_text_desc": { + "message": "Pravilo" + }, + "filtering_modal_rules": { + "message": "pravila:" + }, + "filtering_modal_show_full_element": { + "message": "Pokaži potpunu stavku" + }, + "filtering_modal_show_full_rule": { + "message": "Pokaži potpuno pravilo" + }, + "filtering_modal_show_full_url": { + "message": "Pokaži cijeli URL" + }, + "filtering_modal_source": { + "message": "Izvor" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Nije uspjelo učitavanje pregleda. Pokušajte ponovo" + }, + "filtering_modal_status_text_loading": { + "message": "Učitavanje..." + }, + "filtering_modal_third_party": { + "message": "Primjeni samo na zahtjeve treće strane" + }, + "filtering_modal_type": { + "message": "Vrsta" + }, + "filtering_modal_unblock": { + "message": "Odblokiraj" + }, + "filtering_refresh_tab_short": { + "message": "Osvježi" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Osvježi stranicu" + }, + "filtering_table_action": { + "message": "Radnja" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ništa nije pronađeno. \u003Creset>Onemogući filtre\u003C/reset> ili \u003Crefresh>ponovno učitaj stranicu\u003C/refresh> za prikaz zapisa" + }, + "filtering_table_filter": { + "message": "Filtar" + }, + "filtering_table_open_details": { + "message": "Otvori detalje" + }, + "filtering_table_rule": { + "message": "Pravilo filtriranja" + }, + "filtering_table_source": { + "message": "Izvor" + }, + "filtering_table_status": { + "message": "Stanje" + }, + "filtering_table_type": { + "message": "Vrsta" + }, + "filtering_type_all": { + "message": "Sve" + }, + "filtering_type_other": { + "message": "Ostalo" + }, + "filters_download_loading": { + "message": "Molimo pričekajte dok se bazafiltara ne učita..." + }, + "filters_download_title": { + "message": "Baza filtara seučitava..." + }, + "fullscreen_user_rules_title": { + "message": "Korisnička pravila" + }, + "group_description_adblocking": { + "message": "Konfigurirajte blokiranje oglasa ovdje kako biste se nosili s dosadnim natpisima, skočnim prozorima, videooglasima i slično, jednom zauvijek" + }, + "group_description_annoyances": { + "message": "Uklonite skočne prozore i druge dosadne obavijesti kao što su obavijesti o kolačićima" + }, + "group_description_custom": { + "message": "Stvaranje vlastitih filtara radi preciznog podešavanja filtriranja weba prema vašim željama." + }, + "group_description_lang": { + "message": "Nemojte se ograničavati – blokirajte oglase na web-lokacijama na bilo kojem jeziku" + }, + "group_description_miscellaneous": { + "message": "Dodatne postavke za još veću konfiguraciju surfanja webom pomoću AdGuarda" + }, + "group_description_security": { + "message": "Zaštitite se od zlonamjernih programa, krađe identiteta i drugih internetskih prijetnji" + }, + "group_description_social": { + "message": "Sakrijte neželjene gumbe \"Sviđa mi se\"/\"Podijeli\" i druge widgete na društvenim mrežama" + }, + "group_description_stealth": { + "message": "Zaštitite svoj identitet i osjetljive osobne podatke od tisuća internetskih pratitelja blokiranjem svih poznatih popularnih metoda praćenja" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Nemoj više prikazivati" + }, + "opera_search_permission_go_to_settings": { + "message": "Idi na Postavke" + }, + "opera_search_permission_warning": { + "message": "Za blokiranje oglasa u pretraživanju dopustite pristup rezultatima stranice pretraživanja u postavkama preglednika" + }, + "options_about": { + "message": "O programu" + }, + "options_about_libs": { + "message": "Korištene biblioteke" + }, + "options_about_title": { + "message": "Proširenje preglednika AdGuard" + }, + "options_about_update_available": { + "message": "Dostupna je verzija %version%. Bit će preuzeta i instalirana automatski." + }, + "options_about_version": { + "message": "Verzija" + }, + "options_acknowledgment": { + "message": "Priznanja" + }, + "options_add_custom_filter": { + "message": "Dodaj prilagođeni filtar" + }, + "options_add_custom_filter_modal_add_button": { + "message": "DODAJ" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Provjera vašeg filtra..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL je vratio web stranicu umjesto filter liste. Navedite izravnu poveznicu na datoteku filtra." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Prostražite pokušaj ponovno ili se obratite podršci" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Pogreška pri učitavanju filtra" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Naziv filtra:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Pouzdan" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Neka pravila filtra mogu značajno promijeniti vaše iskustvo pregledavanja i ugroziti vašu privatnost. Pazite da koristite samo filtre programera kojima vjerujete" + }, + "options_add_custom_filter_modal_title": { + "message": "Dodaj prilagođeni filtar" + }, + "options_all_limits_exceeded_warning": { + "message": "Dosegli ste ograničenje broja aktivnih ugrađenih pravila. Preglednik je izmijenio popis aktivnih ugrađenih filtara. Broj omogućenih filtara promijenjen je s %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Dosegli ste ograničenje preglednika za aktivna ugrađena pravila. Vaš je preglednik smanjio popis aktivnih ugrađenih filtara s %expected% na %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš preglednik ograničava \u003Cexternal-link>neke vrste pravila\u003C/external-link>. Da biste primijenili sva pravila, omogućite \u003Cb>Dopusti korisničke skripte\u003C/b> u \u003Csettings-link>postavkama proširenja\u003C/settings-link> vašeg preglednika" + }, + "options_allowlist": { + "message": "Bijela lista" + }, + "options_allowlist_alert_invert": { + "message": "Popis dopuštenih je obrnut. Oglasi su blokirani samo na web stranicama koje su mu dodane." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Zaustavi obrtanje\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ne blokira oglase i praćenike na web-stranicama s popisa" + }, + "options_allowlist_invalid_entries": { + "message": "Za spremanje zadržite samo domene ili URL-ove. Ovo treba ispraviti: %entries%" + }, + "options_allowlist_invert": { + "message": "Preokreni bijelu listu" + }, + "options_allowlist_invert_desc": { + "message": "Blokira oglase i pratitelje samo na dopuštenim web stranicama" + }, + "options_allowlist_leave_subtitle": { + "message": "Vaše promjene na popisu dozvola će biti izgubljene" + }, + "options_allowlist_menu": { + "message": "Radnje popisa dopuštenih" + }, + "options_anonymized_usage_data_description": { + "message": "Šalje anonimne statistike o korištenju ekstenzija AdGuardu. \u003Cbutton>Saznajte više\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "U redu" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Ovi podaci uključuju:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Imena gumba na koje kliknete" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nazivi ekrana s kojima se interagirate" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifikatori sesije" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ti su podaci anonimni i koriste se samo interno. Nikada ga ne dijelimo s trećim stranama" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Ove informacije su nam potrebne za analizu i poboljšanje funkcionalnosti AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Podaci o korištenju proširenja" + }, + "options_anonymized_usage_data_title": { + "message": "Pošaljite anonimizirane podatke o korištenju proširenja" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Ovaj prilagođeni filtar je već dodan" + }, + "options_antibanner_custom_group": { + "message": "Prilagođeno" + }, + "options_antibanner_custom_group_description": { + "message": "Omogućuje dodavanje filtera iz datoteke ili URL-a" + }, + "options_antibanner_rules_count": { + "message": "Pravila: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Ažurirano: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokiraj oglase u pretraživanju i samopromociju web stranica" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokira oglase u rezultatima pretraživanja i samopromociju web stranica. \u003Ca>Saznajte više\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Za blokiranje kolačića, postavite vijek trajanja na 0" + }, + "options_block_known_trackers_description": { + "message": "Blokira trackere i web analitiku pomoću AdGuard filtra za zaštitu od praćenja" + }, + "options_block_known_trackers_title": { + "message": "Blokiranje poznatih alata za praćenje" + }, + "options_check_update_progress": { + "message": "provjera..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Očisti" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Sve statistike o korištenju podataka bit će trajno uklonjene" + }, + "options_clear_stats_confirm_modal_title": { + "message": " Poništi statistiku" + }, + "options_clipboard_permission_warning": { + "message": "Da biste kopirali i zalijepili pravila, dopustite AdGuardu pristup međuspremniku. \u003Ca>Dopusti\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Šalje anonimne statistike o korištenju filtara oglasa AdGuardu. \u003Ca>Saznajte više\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomoći razvijanju AdGuard filtera" + }, + "options_coming_soon": { + "message": "Uskoro" + }, + "options_confirm_modal_cancel_button": { + "message": "Poništi" + }, + "options_copyright": { + "message": "Sva prava pridržana." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Za korištenje prilagođenih filtera, omogućite \u003Cb>Dopusti korisničke skripte\u003C/b> u postavkama proširenja \u003Csettings-link>vašeg preglednika\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Za korištenje prilagođenih filtera, omogućite \u003Cb>Način rada za razvojne programere\u003C/b> u postavkama proširenja \u003Csettings-link>vašeg preglednika\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Preuzmite AdGuard za Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Preuzmite AdGuard za Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Preuzmite AdGuard za Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikacije poput Spotifyja, Discorda ili Zooma i dalje mogu prikazivati oglase i pratiti vašu aktivnost" + }, + "options_desktop_app_promo_subdescription": { + "message": "Naša desktop aplikacija može vas zaštititi od njih" + }, + "options_desktop_app_promo_title": { + "message": "Proširenje štiti samo preglednik" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš preglednik ograničava \u003Cexternal-link>neke vrste pravila\u003C/external-link>. Da biste primijenili sva pravila, omogućite \u003Cb>Način rada za razvojne programere\u003C/b> u postavkama proširenja \u003Csettings-link>vašeg preglednika\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokira WebRTC koji može otkriti vašu stvarnu IP adresu čak i ako koristite proxy ili VPN. Neki komunikatori, platforme za streaming ili igre možda neće ispravno raditi" + }, + "options_disable_webrtc_title": { + "message": "Blokiraj WebRTC" + }, + "options_discuss": { + "message": "Raspravite o AdGuardu" + }, + "options_do_you_like_question": { + "message": "Sviđa li vam se AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Izađite iz prozora" + }, + "options_editor_indicator_saved": { + "message": "Spremljeno" + }, + "options_editor_indicator_saving": { + "message": "Spremanje..." + }, + "options_editor_leave_cancel": { + "message": "Natrag na uređivanje" + }, + "options_editor_leave_confirm": { + "message": "Da, napusti" + }, + "options_editor_leave_title": { + "message": "Želite li napustiti bez spremanja?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Otvori uređivač u novom prozoru" + }, + "options_editor_save": { + "message": "Spremi" + }, + "options_editor_save_error": { + "message": "Nije uspjelo spremanje promjena. Pokušajte ponovno ili kontaktirajte podršku" + }, + "options_empty_custom_filter": { + "message": "Nemate prilagođene filtre" + }, + "options_enable_autodetect_filter": { + "message": "Automatski aktiviraj najprikladnije filtre" + }, + "options_enable_autodetect_filter_desc": { + "message": "Otkriva jezik web stranice i aktivira odgovarajuće filtre" + }, + "options_export_settings": { + "message": "Izvoz postavki" + }, + "options_filters": { + "message": "Filtri" + }, + "options_filters_annoyances_consent_description": { + "message": "Spremate se omogućiti jedan ili više filtara za smetnje. Oni blokiraju elemente koji ili nisu povezani sa sadržajem web stranice ili su povezani, ali smetaju vašem korisničkom iskustvu. Vlasnici web stranica ove elemente mogu smatrati obveznima: ako ih blokirate, možda kršite njihove uvjete; neka funkcionalnost web stranica možda neće biti dostupna ili možda neće ispravno raditi. Razumijete i slažete se da ste isključivo vi odgovorni za pridržavanje uvjeta korištenja web stranica koje posjećujete i da AdGuard nije odgovoran za vaše pridržavanje uvjeta korištenja web stranica koje posjećujete koristeći naše proizvode." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Omogućiti" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Početna stranica" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Za detalje o tome što AdGuardovi filtri za smetnje blokiraju, pogledajte \u003Ca>Pravila filtriranja\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Omogućiti filtre?" + }, + "options_filters_annoyances_consent_title": { + "message": "Pažljivo pročitajte prije nego omogućite filtre za smetnje" + }, + "options_filters_back_button": { + "message": "Natrag" + }, + "options_filters_empty_title": { + "message": "Ništa nije pronađeno" + }, + "options_filters_enabled": { + "message": "Omogućeno:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% i %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% i %more% više" + }, + "options_filters_enabled_per_group": { + "message": "Omogućeno: %current% od %total%" + }, + "options_filters_filter_link": { + "message": "Idi na početnu stranicu" + }, + "options_filters_filter_tags": { + "message": "Oznake filtra" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Izabrali ste vjerovati ovom filtru." + }, + "options_filters_filter_updated": { + "message": "ažurirano:" + }, + "options_filters_filter_version": { + "message": "verzija:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Ukupno pravila: %num%" + }, + "options_filters_last_checked": { + "message": "Zadnja provjera: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Svi filtri" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Onemogućeno" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Omogućeno" + }, + "options_filters_no_enabled": { + "message": "Nema omogućenih filtara" + }, + "options_filters_of_group": { + "message": "Filtri grupe \"%groupName%\"" + }, + "options_filters_search": { + "message": "Pretraga" + }, + "options_filters_search_filter": { + "message": "Pretraži filtar" + }, + "options_first_party_block_cookies_warning": { + "message": "Ako blokirate ove kolačiće, neke web stranice mogu se pokvariti ili prestati raditi" + }, + "options_first_party_desc": { + "message": "Sprječava web stranice da pamte vaše podatke, kao što su vaši pristupni podaci i jezične postavke, ograničavanjem vijeka trajanja kolačića prve strane" + }, + "options_first_party_title": { + "message": "Izbrišiti kolačiće prve strane (ne preporučuje se)" + }, + "options_general_settings": { + "message": "Općenito" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Spriječite treće strane da znaju koju web stranicu posjećujete" + }, + "options_hide_referrer_title": { + "message": " Sakrij HTTP referer od trećih strana" + }, + "options_hide_search_queries_desc": { + "message": "Skriva vaše pretrage s web stranica posjećenih putem rezultata pretraživača" + }, + "options_hide_search_queries_title": { + "message": "Skrivanje upita za pretraživanje" + }, + "options_import_configuration_applying_subtitle": { + "message": "Zamjena trenutnih postavki uvezenim. Filtriranje je onemogućeno tijekom uvoza" + }, + "options_import_configuration_applying_title": { + "message": "Uvoz..." + }, + "options_import_configuration_confirm_button": { + "message": "Uvoz" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Uvezene postavke zamijenit će vaše trenutne. Ostale postavke neće utjecati" + }, + "options_import_configuration_confirm_title": { + "message": "Uvoz postavki" + }, + "options_import_configuration_error_button": { + "message": "Zatvori" + }, + "options_import_configuration_error_subtitle": { + "message": "Provjerite vezu za uvoz i pokušajte ponovno. Ako ne pomogne, kontaktirajte podršku" + }, + "options_import_configuration_error_title": { + "message": "Uvoz postavki nije uspio" + }, + "options_import_configuration_success_button": { + "message": "Zatvori" + }, + "options_import_configuration_success_subtitle": { + "message": "Postavke su uspješno uvezene" + }, + "options_import_configuration_success_title": { + "message": "Sve je gotovo" + }, + "options_import_settings": { + "message": "Uvoz postavki" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Izokreni" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Oglasi i pratitelji bit će blokirani samo na web stranicama s popisa dopuštenih" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Obrnuti popis dopuštenih?" + }, + "options_leave_feedback": { + "message": "Ostavite povratnu informaciju" + }, + "options_lifetime_minutes": { + "message": "Vijek trajanja, minute" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Dosegli ste ograničenje broja regex pravila koje je dodao korisnik. %maximum% od %current% regex pravila je omogućeno." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Dosegli ste ograničenje korisnički dodanih regex pravila. Omogućeno je %maximum% od %current% pravila. Da biste dodali nova regex pravila, uklonite neka postojeća" + }, + "options_limits_warning_dynamic_rules": { + "message": "Dosegli ste ograničenje broja pravila koja je dodao korisnik. %maximum% od %current% pravila je omogućeno." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Dosegli ste ograničenje pravila koje je dodao korisnik. Omogućeno je %maximum% od %current% pravila. Da biste dodali nova pravila, uklonite neka postojeća" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Dosegnuli ste limit korisnički dodanih nesigurnih pravila. %maximum% od %current% nesigurnih pravila je omogućeno." + }, + "options_limits_warning_static_filters": { + "message": "Dosegli ste ograničenje aktivnih ugrađenih filtara. %maximum% od %current% filtara je omogućeno. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtre." + }, + "options_limits_warning_static_filters_browser": { + "message": "Dosegli ste ograničenje broja aktivnih ugrađenih filtera u pregledniku. Omogućeno je %maximum% od %current% filtara. Da biste aktivirali nove filtre, onemogućite neke ugrađene" + }, + "options_limits_warning_static_regex_rules": { + "message": "Dosegli ste ograničenje aktivnih ugrađenih regex pravila. %maximum% od %current% regex pravila je omogućeno. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtre." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Dosegli ste ograničenje aktivnih ugrađenih pravila regexa. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtre" + }, + "options_limits_warning_static_rules": { + "message": "Dosegli ste ograničenje aktivnih ugrađenih pravila. %maximum% od %current% pravila je omogućeno. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtre." + }, + "options_limits_warning_static_rules_browser": { + "message": "Dosegli ste ograničenje preglednika za aktivna ugrađena pravila. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtre" + }, + "options_loader_applying_changes": { + "message": "Primjena promjena..." + }, + "options_miscellaneous_settings": { + "message": "Razno" + }, + "options_modified_first_party_cookie": { + "message": "Promijenjen je kolačić prve strane" + }, + "options_modified_third_party_cookie": { + "message": "Promijenjen je kolačić treće strane" + }, + "options_nav_better_than_extension": { + "message": "Zašto je AdGuard punopravni program bolji od proširenja?" + }, + "options_nav_compare": { + "message": "Kako se uspoređuju" + }, + "options_navigation": { + "message": "Navigacija" + }, + "options_open_changelog": { + "message": "Zapisnik promjena" + }, + "options_open_log": { + "message": "Zapisnik filtriranja" + }, + "options_popup_call_to_action": { + "message": "Unesite pravilan URL ili putanju datoteke do filtra u polju iznad." + }, + "options_popup_check_false_description": { + "message": "Pogreška pri dodavanju prilagođenog filtra." + }, + "options_popup_check_false_title": { + "message": "Pogreška" + }, + "options_popup_checking_filter": { + "message": "Provjera vašeg filtra" + }, + "options_popup_description": { + "message": "Biti će te pretplaćeni na taj filtar." + }, + "options_popup_filter_description": { + "message": "Opis:" + }, + "options_popup_filter_homepage": { + "message": "Početna stranica:" + }, + "options_popup_filter_rules_count": { + "message": "Broj pravila:" + }, + "options_popup_filter_title": { + "message": "Naslov:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Verzija:" + }, + "options_popup_import_error_file_description": { + "message": "Nešto je pošlo po zlu." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Za uvoz ove datoteke s postavkama dopustite AdGuardu da promijeni vaše postavke vezane uz privatnost." + }, + "options_popup_import_error_title": { + "message": "Uvoz postavki nije uspio" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Datotečni nastavak treba biti %extension%" + }, + "options_popup_import_success_title": { + "message": "Postavke uvezene" + }, + "options_popup_next_button": { + "message": "Sljedeće" + }, + "options_popup_subscribe_button": { + "message": "Pretplatite se" + }, + "options_popup_title_placeholder": { + "message": "Unesite naziv filtra" + }, + "options_popup_trusted_filter_description": { + "message": "Pouzdani filtri mogu koristiti snažne modifikatore pravila filtriranja, koji u pogrešnim rukama mogu biti opasni. Ne označavajte ako u potpunosti ne vjerujete." + }, + "options_popup_trusted_filter_title": { + "message": "Pouzdan" + }, + "options_popup_try_again_button": { + "message": "Pokušajte ponovno" + }, + "options_popup_update_error": { + "message": "Ne uspješno ažuriranje. Pokušajte ponovno kasnije." + }, + "options_popup_update_filter": { + "message": "je ažuriran." + }, + "options_popup_update_filters": { + "message": "su ažurirani." + }, + "options_popup_update_not_found": { + "message": "Vaši filtri su ažurni" + }, + "options_popup_update_title_error": { + "message": "Pogreška pri ažuriranju filtara" + }, + "options_popup_updating_filters": { + "message": "Ažuriranje filtara..." + }, + "options_popup_url_placeholder": { + "message": "Unesite URL ili putanju" + }, + "options_popup_url_title": { + "message": "Pretplata na novi filtar" + }, + "options_popup_version_update_changelog_text": { + "message": "Što je novo u ovoj verziji?" + }, + "options_popup_version_update_description_major": { + "message": "Ovo je veliko ažuriranje proširenja koja donosi puno novih značajki i poboljšanja." + }, + "options_popup_version_update_description_minor": { + "message": "Ova verzija uglavnom sadrži ispravke pogrešaka i manja poboljšanja." + }, + "options_popup_version_update_disable_notification": { + "message": "Onemogući obavijesti" + }, + "options_popup_version_update_offer": { + "message": "Jeste li znali da mogućnosti AdGuarda nisu ograničene samo na ovaj preglednik?" + }, + "options_popup_version_update_offer_button_text": { + "message": "SAZNAJTE VIŠE" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard proširenje je ažuriran na inačicu %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Omogućuje da WebRTC koristi strožu politiku IP adrese kako bi se vaša stvarna IP adresa zadržala skrivenom kada koristite proxy ili VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Spriječite curenje IP adrese putem WebRTC-a" + }, + "options_privacy": { + "message": "Zaštita od praćenja" + }, + "options_privacy_desc": { + "message": "Štiti vaše mrežne aktivnosti i osobne podatke od alata za praćenje weba" + }, + "options_privacy_policy": { + "message": "Politika privatnosti" + }, + "options_privacy_title": { + "message": "Zaštita od praćenja" + }, + "options_rate_us_cta": { + "message": "Ocijenite ga" + }, + "options_remove_client_data_desc": { + "message": "Blokirajte Google Chrome da ne šalje informacije o svojoj verziji i izmjenama prema Google-ovim domenama" + }, + "options_remove_client_data_title": { + "message": "Ukloni X-Client-Data zaglavlje" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Ukloni" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Želite li ukloniti ovaj filtar?" + }, + "options_report_bug": { + "message": "Prijavite pogrešku" + }, + "options_reset_settings": { + "message": "Poništi postavke" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Poništavanje" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Sve postavke bit će vraćene na zadane vrijednosti" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Poništi postavke" + }, + "options_reset_settings_done": { + "message": "Postavke su vraćene na izvorno" + }, + "options_reset_settings_error": { + "message": "Pogreška prilikom vraćanja postavki u izvorno stanje" + }, + "options_reset_stats": { + "message": "Poništi statistiku" + }, + "options_reset_stats_done": { + "message": "Statistika je poništena" + }, + "options_rule_limits": { + "message": "Ograničenja pravila" + }, + "options_rule_limits_description": { + "message": "Chrome ograničava broj pravila koja se mogu primijeniti" + }, + "options_rule_limits_dynamic": { + "message": "Dinamička pravila" + }, + "options_rule_limits_dynamic_regex": { + "message": "Pravila regularnih izraza — uključena u pravila koja dodaje korisnik" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nesigurna dinamična pravila (koriste se za neke napredne modifikatore, kao što su $$redirect ili $$cookie) — uključena u pravila koja dodaje korisnik" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Pravila koja je dodao korisnik, kao što su \u003Cuser_rules>korisnička pravila\u003C/user_rules>, \u003Callowlist>web stranice na dopuštenom popisu\u003C/allowlist> i \u003Ccustom_filters>prilagođeni filtri\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Pravila koja dodaju korisnici, kao što su \u003Cuser_rules>korisnička pravila\u003C/user_rules> i \u003Callowlist>web-lokacije na popisu dopuštenih\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% od %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statička pravila" + }, + "options_rule_limits_static_rules_all": { + "message": "Pravila iz \u003Ca>ugrađenih filtera\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Pravila regularnih izraza — uključena u gore" + }, + "options_rule_limits_static_rulesets": { + "message": "Statički skupovi pravila" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Ugrađeni filtri\u003C/a>, kao što su blokiranje ometanja ili filtri specifični za jezik." + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opcija 3. Ako ste zadovoljni s trenutno omogućenim filtrima, \u003Ca>zatvorite ovo upozorenje.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opcija 3. Ako ste zadovoljni s trenutno omogućenim zadanim filtrima, \u003Ca>Zatvorite ovo upozorenje.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opcija 1. Uklonite nepotrebna proširenja za blokiranje oglasa iz svog preglednika. Da biste ponovno aktivirali filtru navedenu u odjeljku \"Filtri omogućeni prije ažuriranja\", kliknite \u003Ca>reaktivirajte filtre.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opcija 2. Instalirajte AdGuard Ad Blocker aplikaciju: nema ograničenja za pravila filtriranja. \u003Ca>Nabavite aplikaciju AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vaše moguće radnje" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Ograničenje aktivnih ugrađenih pravila premašeno je nakon ažuriranja ili dodavanja novog proširenja. Prema Manifestu V3, vaš preglednik Chrome reagirao je onemogućivanjem svih ugrađenih filtara proširenja osim zadanih." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Što se dogodilo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtri omogućeni prije ažuriranja" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtri su sada omogućeni" + }, + "options_rule_limits_warning_title": { + "message": "Preglednik je izmijenio popis aktivnih filtera" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Uklonite ograničenja pravila i dobijte proširenu zaštitu koja radi u svim preglednicima" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalirajte desktop aplikaciju" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Idi na filtre" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Upravljanje proširenjima" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Proširenja preglednika dijele isto ograničenje pravila. Uklanjanje drugih blokera oglasa može osloboditi više pravila za AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Ukloni druge blokere oglasa" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Omogućite filtre koji su vam potrebni. Filtri specifični za jezik i privatnost mogu koristiti mnogo pravila" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Pregled dostupnih filtara" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Evo što možete učiniti" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Dosegnuto ograničenje — neki filtri su onemogućeni" + }, + "options_rule_syntax": { + "message": "Sintaksa" + }, + "options_safebrowsing_enabled": { + "message": "Zaštita od krađe identiteta i zločudnih programa" + }, + "options_safebrowsing_enabled_desc": { + "message": "Upozorava na zlonamjerne i phishing web stranice koristeći AdGuard modul Zaštita pregledavanja Interneta. \u003Ca>Pročitajte više\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 sati" + }, + "options_select_update_period_1h": { + "message": "1 sat" + }, + "options_select_update_period_24h": { + "message": "24 sata" + }, + "options_select_update_period_48h": { + "message": "48 sati" + }, + "options_select_update_period_6h": { + "message": "6 sati" + }, + "options_select_update_period_default": { + "message": "Zadano" + }, + "options_select_update_period_disabled": { + "message": "Onemogućeno" + }, + "options_send_not_track_desc": { + "message": "Pošaljite signale \u003Cgpc>Global Privacy Control\u003C/gpc> i \u003Cdnt>Do Not Track\u003C/dnt> na web stranice koje posjećujete" + }, + "options_send_not_track_title": { + "message": "Zamoli web stranice da me ne prate" + }, + "options_set_update_interval": { + "message": "Automatsko ažuriranje filtara" + }, + "options_set_update_interval_desc": { + "message": "Održava filtre ažurnima radi učinkovitijeg blokiranja oglasa" + }, + "options_settings": { + "message": "AdGuard Postavke" + }, + "options_share_settings": { + "message": "Dijeliti postavke" + }, + "options_show_adguard_full_version_title": { + "message": "Prikaži informacije o punoj verziji AdGuarda" + }, + "options_show_app_updated_notification": { + "message": "Obavijesti o ažuriranjima proširenja" + }, + "options_show_blocked_ads_count_title": { + "message": "Prikaži broj blokiranih oglasa na ikoni AdGuard proširenja" + }, + "options_show_context_menu_title": { + "message": "Dodaj AdGuard u kontekstni izbornik preglednika" + }, + "options_site": { + "message": "Službena stranica" + }, + "options_skip_to_main_content": { + "message": "Prijeđi na glavni sadržaj" + }, + "options_stealth_general_title": { + "message": "Općenito" + }, + "options_stealth_miscellaneous_title": { + "message": "Razno" + }, + "options_stealth_tracking_methods_title": { + "message": "Metode praćenja" + }, + "options_strip_tracking_params_description": { + "message": "Uklanja parametre praćenja iz URL-ova stranica pomoću AdGuard filtra za praćenje URL-ova" + }, + "options_strip_tracking_params_title": { + "message": "Uklanjanje parametara praćenja iz URL-ova" + }, + "options_stripped_tracking_parameters": { + "message": "Parametri praćenja su uklonjeni" + }, + "options_theme_selector_dark": { + "message": "Tamno" + }, + "options_theme_selector_light": { + "message": "Svijetlo" + }, + "options_theme_selector_system": { + "message": "Zadano sustavom" + }, + "options_third_party_block_cookies_warning": { + "message": "Ako blokirate ove kolačiće, možda ćete se morati ponovno prijaviti na neke web stranice ili se suočiti s drugim problemima s kolačićima" + }, + "options_third_party_desc": { + "message": "Sprječava oglašivače da prate vaše ponašanje na više stranica ograničavanjem vijeka trajanja kolačića trećih strana" + }, + "options_third_party_title": { + "message": "Izbrišiti kolačiće treće strane" + }, + "options_update_antibanner_filters": { + "message": "Provjeri ažuriranja za filtre" + }, + "options_use_optimized_filters": { + "message": "Koristi optimizirane filtre" + }, + "options_use_optimized_filters_desc": { + "message": "Koristi kraće verzije filtara samo s najpopularnijim pravilima za uštedu prometa. Bolje prilagođen mobilnim preglednicima" + }, + "options_user_rules_clear_search": { + "message": "Očisti pretraživanje" + }, + "options_user_rules_create_rule": { + "message": "Izradi pravilo" + }, + "options_user_rules_delete_all": { + "message": "Izbrišite sve" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Sva korisnička pravila bit će trajno izbrisana" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Izbrisati sve?" + }, + "options_user_rules_delete_all_success": { + "message": "Sva korisnička pravila su obrisana" + }, + "options_user_rules_delete_rule": { + "message": "Ukloni pravilo" + }, + "options_user_rules_deleted_notification": { + "message": "Korisničko pravilo uklonjeno:" + }, + "options_user_rules_description_key": { + "message": "Vaša pravila za blokiranje i deblokiranje oglasa ili cijelih web stranica" + }, + "options_user_rules_edit_rule": { + "message": "Uredi pravilo" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Idi na uređivač" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Vaša pravila će se ovde pojaviti nakon što ga zatvorite" + }, + "options_user_rules_editor_stub_title": { + "message": "Uređivač otvoren u drugom prozoru" + }, + "options_user_rules_empty_placeholder": { + "message": "Još nema pravila" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Isticanje pravila…" + }, + "options_user_rules_import_error": { + "message": "Neuspjelo uvoz korisničkih pravila. Pokušajte ponovo" + }, + "options_user_rules_import_success": { + "message": "Korisnička pravila uspješno uvezena" + }, + "options_user_rules_menu": { + "message": "Radnje korisničkih pravila" + }, + "options_user_rules_no_match": { + "message": "Nema rezultata" + }, + "options_user_rules_search_placeholder": { + "message": "Pretraga" + }, + "options_user_rules_switch_to_editor": { + "message": "Prebaci na prikaz uređivača" + }, + "options_user_rules_switch_to_list": { + "message": "Prebaci na prikaz popisa" + }, + "options_user_rules_undo": { + "message": "Poništi" + }, + "options_userfilter": { + "message": "Korisnička pravila" + }, + "options_userfilter_description_key": { + "message": "Ovdje možete dodati svoja pravila. Ova se opcija preporučuje naprednim korisnicima koji su upoznati s HTML/CSS-om. Pročitajte \u003Ca>vodič za pravila filtriranja\u003C/a> da biste naučili kako napisati vlastita pravila za filtriranje." + }, + "options_userfilter_export": { + "message": "Izvoz" + }, + "options_userfilter_import": { + "message": "Uvoz" + }, + "options_userfilter_leave_subtitle": { + "message": "Vaše promjene u pravilima će biti izgubljene" + }, + "options_userfilter_line_break": { + "message": "Prijelom retka" + }, + "options_userfilter_line_break_off": { + "message": "Prijelom retka: DEAKTIVIRAN" + }, + "options_userfilter_line_break_on": { + "message": "Prijelom retka: AKTIVIRAN" + }, + "options_userfilter_subtitle_key": { + "message": "Omogućuje vam dodavanje vlastitih pravila filtriranja" + }, + "popup_abuse_site": { + "message": "Prijavite problem" + }, + "popup_adguard_footer_title": { + "message": "Zaštitite svoj mobilni uređaj" + }, + "popup_adguard_for_android": { + "message": "AdGuard za Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard za iOS" + }, + "popup_block_site_ads_option": { + "message": "Ručno blokirajte oglase" + }, + "popup_get_system_wide_protection": { + "message": "Zaštitite cijeli sustav" + }, + "popup_header_cta_link": { + "message": "Kako poboljšati zaštitu" + }, + "popup_header_update_filters": { + "message": "Provjeri ažuriranja za filtre" + }, + "popup_limits_exceeded_warning": { + "message": "Preglednik je izmijenio popis aktivnih ugrađenih filtara" + }, + "popup_open_filtering_log": { + "message": "Otvori zapisnik filtriranja" + }, + "popup_open_settings": { + "message": "Otvorite AdGuard postavke" + }, + "popup_protection_button": { + "message": "AdGuard zaštita" + }, + "popup_reset_page_user_rules": { + "message": "Ukloni korisnička pravila za ovo web-mjesto" + }, + "popup_resume_protection_button": { + "message": "Nastavi" + }, + "popup_security_report": { + "message": "Provjeri sigurnost web stranice" + }, + "popup_site_exception_information": { + "message": "Filtriranje je onemogućeno zato što može ometati rad web stranice." + }, + "popup_site_filtering_state_disabled": { + "message": "Zaštita je onemogućena" + }, + "popup_site_filtering_state_disabling": { + "message": "Onemogućavanje zaštite..." + }, + "popup_site_filtering_state_enabled": { + "message": "Zaštita je omogućena" + }, + "popup_site_filtering_state_enabling": { + "message": "Omogućavanje zaštite..." + }, + "popup_site_filtering_state_loading": { + "message": "Učitavanje..." + }, + "popup_site_filtering_state_paused": { + "message": "Zaštita je pauzirana" + }, + "popup_site_filtering_state_pausing": { + "message": "Pauziranje zaštite..." + }, + "popup_site_filtering_state_resuming": { + "message": "Nastavljanje zaštite..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Sigurna stranica" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "za sve web stranice" + }, + "popup_statistics_all_categories": { + "message": "Sve" + }, + "popup_statistics_category_advertising": { + "message": "Oglasi" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategorija statistike" + }, + "popup_statistics_category_other": { + "message": "Ostalo" + }, + "popup_statistics_category_social_media": { + "message": "Društvene mreže" + }, + "popup_statistics_category_trackers": { + "message": "Pratitelji" + }, + "popup_statistics_months_apr": { + "message": "Tra" + }, + "popup_statistics_months_aug": { + "message": "Kol" + }, + "popup_statistics_months_dec": { + "message": "Pro" + }, + "popup_statistics_months_feb": { + "message": "Velj" + }, + "popup_statistics_months_jan": { + "message": "Sij" + }, + "popup_statistics_months_jul": { + "message": "Srp" + }, + "popup_statistics_months_jun": { + "message": "Lip" + }, + "popup_statistics_months_mar": { + "message": "Ožu" + }, + "popup_statistics_months_may": { + "message": "Svi" + }, + "popup_statistics_months_nov": { + "message": "Stu" + }, + "popup_statistics_months_oct": { + "message": "Lis" + }, + "popup_statistics_months_sep": { + "message": "Ruj" + }, + "popup_statistics_time_day": { + "message": "24 sata" + }, + "popup_statistics_time_label": { + "message": "Vremensko razdoblje statistike" + }, + "popup_statistics_time_month": { + "message": "30 dana" + }, + "popup_statistics_time_week": { + "message": "7 dana" + }, + "popup_statistics_time_year": { + "message": "1 godina" + }, + "popup_statistics_total": { + "message": "Ukupno" + }, + "popup_statistics_week_days_fri": { + "message": "Pet" + }, + "popup_statistics_week_days_mon": { + "message": "Pon" + }, + "popup_statistics_week_days_sat": { + "message": "Sub" + }, + "popup_statistics_week_days_sun": { + "message": "Ned" + }, + "popup_statistics_week_days_thu": { + "message": "Čet" + }, + "popup_statistics_week_days_tue": { + "message": "Uto" + }, + "popup_statistics_week_days_wed": { + "message": "Sri" + }, + "popup_switch_button": { + "message": "Zaštita za trenutnu web stranicu" + }, + "popup_tab_actions": { + "message": "Radnje" + }, + "popup_tab_blocked_all_count": { + "message": "Oglasi blokirani: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokirano: %num%" + }, + "popup_tab_current_website": { + "message": "Trenutna web stranica" + }, + "popup_tab_statistics": { + "message": "Statistika" + }, + "popup_tabs": { + "message": "Kartice" + }, + "popup_tooltip_loading": { + "message": "Učitavanje..." + }, + "popup_tooltip_protection_disabled": { + "message": "Zaštita je onemogućena" + }, + "popup_tooltip_protection_enabled": { + "message": "Zaštita je omogućena" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Neka pravila nisu primijenjena" + }, + "popup_tooltip_update_available": { + "message": "Nadogradnja dostupna" + }, + "post_install_loading": { + "message": "Učitavanje proširenja..." + }, + "short_name": { + "message": "AdGuard AdBlocker" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Prekoračeno ograničenje pravila u AdGuard proširenju preglednika. Provjerite svoje filtre i onemogućite one koji vam nisu potrebni" + }, + "text_collapser_hide_default": { + "message": "Sakrij puni tekst" + }, + "text_collapser_show_default": { + "message": "Pokaži puni tekst" + }, + "update_available_desc": { + "message": "Za učinkovito blokiranje oglasa, ažurirajte proširenje i filtere" + }, + "update_available_title": { + "message": "Dostupna su ažuriranja" + }, + "update_available_update_btn": { + "message": "Ažuriraj" + }, + "update_check": { + "message": "Provjeri ažuriranja" + }, + "update_checking_in_progress": { + "message": "Provjera ažuriranja..." + }, + "update_failed_text": { + "message": "Ažuriranje nije uspjelo" + }, + "update_failed_try_again_btn": { + "message": "Pokušajte ponovno" + }, + "update_installing_in_progress_desc": { + "message": "Proširenje će se ponovno pokrenuti nakon ažuriranja" + }, + "update_installing_in_progress_title": { + "message": "Ažuriranje proširenja i filtara..." + }, + "update_not_needed": { + "message": "Vaše proširenje i filteri su ažurirani" + }, + "update_success_text": { + "message": "Proširenje i filteri ažurirani" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hu/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hu/messages.json new file mode 100644 index 0000000..77a6212 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hu/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name%\" automatikusan bekapcsolva." + }, + "alert_popup_filter_enabled_title": { + "message": "A szűrők automatikus aktiválása" + }, + "background_tab_title": { + "message": "Háttéroldal" + }, + "blocking_pages_advanced_button": { + "message": "Haladó" + }, + "blocking_pages_btn_go_back": { + "message": "Visszalépés" + }, + "blocking_pages_btn_proceed": { + "message": "Folytatás ennek ellenére" + }, + "blocking_pages_malware": { + "message": "Ez a webhely a(z) \u003Cstrong>%host%\u003C/strong> címen rosszindulatú, kártékony webhelyként lett bejelentve, ezért blokkolva lett az Ön biztonsága érdekében." + }, + "blocking_pages_more_info_button": { + "message": "További információ" + }, + "blocking_pages_page_title": { + "message": "Hozzáférés megtagadva" + }, + "blocking_pages_phishing": { + "message": "Ez a webhely a(z) \u003Cstrong>%host%\u003C/strong> címen adathalász webhelyként lett bejelentve, ezért blokkolva lett az Ön biztonsága érdekében." + }, + "blocking_pages_rule_content_title": { + "message": "Az AdGuard megakadályozta ezen oldal betöltését az alábbi szűrőszabály miatt" + }, + "blocking_pages_rule_header_title": { + "message": "Blokkolva az AdGuard által" + }, + "blocking_pages_safe_header_title": { + "message": "Az AdGuard blokkolta a hozzáférést ehhez az oldalhoz" + }, + "clear_button_title": { + "message": "Törlés" + }, + "close_button_title": { + "message": "Bezárás" + }, + "context_block_site_ads": { + "message": "Hirdetések manuális blokkolása" + }, + "context_complaint_website": { + "message": "Probléma bejelentése" + }, + "context_disable_protection": { + "message": "AdGuard védelem szüneteltetése" + }, + "context_enable_protection": { + "message": "AdGuard védelem folytatása" + }, + "context_open_log": { + "message": "Szűrési napló" + }, + "context_open_settings": { + "message": "AdGuard beállítások" + }, + "context_security_report": { + "message": "Webhely biztonságának ellenőrzése" + }, + "context_site_exception": { + "message": "Ez az oldal a kivételek között szerepel" + }, + "context_site_filtering_disabled": { + "message": "Az AdGuard nem tudja szűrni ezt az oldalt" + }, + "context_site_filtering_off": { + "message": "Szűrés kikapcsolása ezen az oldalon" + }, + "context_site_filtering_on": { + "message": "Szűrés bekapcsolása ezen az oldalon" + }, + "context_site_protection_disabled": { + "message": "AdGuard védelem szüneteltetve" + }, + "context_update_antibanner_filters": { + "message": "Szűrő frissítések ellenőrzése" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Páratlan adblock kiegészítő a reklámok és felugró ablakok ellen. Blokkolja a Facebook, YouTube és más webhelyek hirdetéseit." + }, + "filtering_clear_log_events": { + "message": "Napló törlése" + }, + "filtering_log_actions_menu": { + "message": "Szűrési napló műveletek" + }, + "filtering_log_assumed_rule_description": { + "message": "Ez egy feltételezett szabály. További részletekért lásd a \u003Ca>Tudásbázist\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP kérés módja" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP állapot kód" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Harmadik fél kérése" + }, + "filtering_log_details_modal_back_button": { + "message": "Vissza a kéréshez" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Formázás" + }, + "filtering_log_details_modal_try_again": { + "message": "Újrapróbálkozás" + }, + "filtering_log_filter_allowed": { + "message": "Engedélyezve" + }, + "filtering_log_filter_blocked": { + "message": "Blokkolva" + }, + "filtering_log_filter_modified": { + "message": "Módosítva" + }, + "filtering_log_filter_regular": { + "message": "Szokásos" + }, + "filtering_log_filter_user_rules": { + "message": "Felhasználói szabályok" + }, + "filtering_log_hide_referrer": { + "message": "Referer elrejtve a harmadik felek elől" + }, + "filtering_log_hide_search_queries": { + "message": "Keresési kérések elrejtve" + }, + "filtering_log_in_allowlist": { + "message": "Az oldal engedélyezve van" + }, + "filtering_log_modified_rules": { + "message": "Módosított szabályok: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Igen, megőrzés" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ez az opció jelentősen megnövelheti a memóriahasználatot" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Napló megőrzése?" + }, + "filtering_log_preserve_log_off": { + "message": "Naplót ne őrizz meg" + }, + "filtering_log_preserve_log_on": { + "message": "Naplót megőriz" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ne jelenjen meg újra" + }, + "filtering_log_privacy_applied_rules": { + "message": "Követésvédelem alkalmazva" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data fejléc eltávolítva" + }, + "filtering_log_search_string": { + "message": "Keresés" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Keresés a lapok között" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track fejléc elküldve" + }, + "filtering_log_status_allowed": { + "message": "Engedélyezve" + }, + "filtering_log_status_blocked": { + "message": "Blokkolva" + }, + "filtering_log_status_modified": { + "message": "Módosítva" + }, + "filtering_log_status_processed": { + "message": "Feldolgozva" + }, + "filtering_log_stealth_rules": { + "message": "Nyomkövetés védelem szabályok: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Kérés eredete" + }, + "filtering_log_tag_request_status": { + "message": "Szűrés állapota" + }, + "filtering_log_tag_request_type": { + "message": "Kérés típusa" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Engedélyezett és feloldott kérések" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokkolt kérések" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stíluslapok" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Elsődleges kérések" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumentumok és aldokumentumok" + }, + "filtering_log_tag_tooltip_img": { + "message": "Képek" + }, + "filtering_log_tag_tooltip_js": { + "message": "Szkriptek" + }, + "filtering_log_tag_tooltip_media": { + "message": "Média" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Módosított kérések" + }, + "filtering_log_tag_tooltip_other": { + "message": "Betűtípusok, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Szűrés nélkül feldolgozott kérések" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Harmadik fél kérések" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Felhasználói szabályok által érintett kérések" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests és fetch kérések" + }, + "filtering_log_title": { + "message": "Szűrési napló" + }, + "filtering_menu_open_filters": { + "message": "Testreszabás" + }, + "filtering_modal_add_rule": { + "message": "Hozzáad" + }, + "filtering_modal_allow_title": { + "message": "Engedélyező szabály hozzáadása" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Alkalmazott szabály | Alkalmazott szabályok" + }, + "filtering_modal_apply_domains": { + "message": "Minden weboldalra vonatkozik" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Feltételezett szabály: | Feltételezett szabályok:" + }, + "filtering_modal_block": { + "message": "Blokkolás" + }, + "filtering_modal_block_again": { + "message": "Ismételt blokkolás" + }, + "filtering_modal_block_title": { + "message": "Blokkolási szabály hozzáadása" + }, + "filtering_modal_converted_to": { + "message": "Átalakítva erre:" + }, + "filtering_modal_cookie": { + "message": "Süti:" + }, + "filtering_modal_copied": { + "message": "Átmásolva" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Másolás vágólapra" + }, + "filtering_modal_declarative_rule": { + "message": "DNR szabály:" + }, + "filtering_modal_element": { + "message": "Elem:" + }, + "filtering_modal_exception_title": { + "message": "Kivétel hozzáadása" + }, + "filtering_modal_filter": { + "message": "Szűrő" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Szűrés állapota" + }, + "filtering_modal_hide_full_element": { + "message": "Teljes elem elrejtése" + }, + "filtering_modal_hide_full_rule": { + "message": "Teljes szabály elrejtése" + }, + "filtering_modal_hide_full_url": { + "message": "Ne mutassa a teljes URL-t" + }, + "filtering_modal_important": { + "message": "Adjon nagyobb prioritást a szabálynak" + }, + "filtering_modal_info_title": { + "message": "Kérés részletei" + }, + "filtering_modal_open_in_new_tab": { + "message": "Megnyitás új fülön" + }, + "filtering_modal_options_desc": { + "message": "Beállítások" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Eredeti szabály: | Eredeti szabályok:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Mit kell engedélyezni" + }, + "filtering_modal_patterns_desc_block": { + "message": "Mit kell blokkolni" + }, + "filtering_modal_preview_request_button": { + "message": "Előnézet" + }, + "filtering_modal_preview_title": { + "message": "Előnézet" + }, + "filtering_modal_privacy": { + "message": "Nyomon követés elleni védelem" + }, + "filtering_modal_remove_allowlist": { + "message": "Eltávolítás a kivételek közül" + }, + "filtering_modal_remove_param": { + "message": "Lekérdezési paraméterek eltávolítása" + }, + "filtering_modal_remove_user": { + "message": "Szabály törlése" + }, + "filtering_modal_rule": { + "message": "Szabály:" + }, + "filtering_modal_rule_text_desc": { + "message": "Szabály" + }, + "filtering_modal_rules": { + "message": "Szabályok:" + }, + "filtering_modal_show_full_element": { + "message": "Teljes elem megjelenítése" + }, + "filtering_modal_show_full_rule": { + "message": "Teljes szabály megjelenítése" + }, + "filtering_modal_show_full_url": { + "message": "Mutassa a teljes URL-t" + }, + "filtering_modal_source": { + "message": "Forrás" + }, + "filtering_modal_status_text_desc": { + "message": "Állapot" + }, + "filtering_modal_status_text_error": { + "message": "Nem sikerült betölteni az előnézetet. Kérjük, próbálja újra" + }, + "filtering_modal_status_text_loading": { + "message": "Betöltés..." + }, + "filtering_modal_third_party": { + "message": "Csak a harmadik felektől származó kérésekre alkalmazza" + }, + "filtering_modal_type": { + "message": "Típus" + }, + "filtering_modal_unblock": { + "message": "Feloldás" + }, + "filtering_refresh_tab_short": { + "message": "Frissítés" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Oldal frissítése" + }, + "filtering_table_action": { + "message": "Művelet" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nem található semmi. \u003Creset>Szűrők letiltása\u003C/reset> vagy \u003Crefresh>az oldal újratöltése\u003C/refresh> a log bejegyzések megtekintéséhez" + }, + "filtering_table_filter": { + "message": "Szűrő" + }, + "filtering_table_open_details": { + "message": "Részletek megnyitása" + }, + "filtering_table_rule": { + "message": "Szűrési szabály" + }, + "filtering_table_source": { + "message": "Forrás" + }, + "filtering_table_status": { + "message": "Állapot" + }, + "filtering_table_type": { + "message": "Típus" + }, + "filtering_type_all": { + "message": "Mind" + }, + "filtering_type_other": { + "message": "Egyéb" + }, + "filters_download_loading": { + "message": "Kérjük várjon, amíg a szűrők adatbázisa betölt..." + }, + "filters_download_title": { + "message": "A szűrők adatbázisa töltődik..." + }, + "fullscreen_user_rules_title": { + "message": "Felhasználói szabályok" + }, + "group_description_adblocking": { + "message": "Itt tudja beállítani a hirdetésblokkolást, hogy egyszer és mindenkorra megszabaduljon a szalaghirdetésektől, felugró ablakoktól, videóhirdetésektől, stb" + }, + "group_description_annoyances": { + "message": "Távolítsa el az előugró ablakokat és egyéb bosszantó értesítéseket, például a süti értesítéseket" + }, + "group_description_custom": { + "message": "Hozza létre saját szűrőit a szűrés tetszés szerinti finomhangolásához." + }, + "group_description_lang": { + "message": "Ne szorítsa magát korlátok közé — blokkolja a hirdetéseket bármilyen nyelvű weboldalon" + }, + "group_description_miscellaneous": { + "message": "Egyéb beállítások, amelyekkel még tovább fokozhatja a webes böngészését az AdGuarddal" + }, + "group_description_security": { + "message": "Védje magát a rosszindulatú programokkal, adathalászokkal és más online fenyegetésekkel szemben" + }, + "group_description_social": { + "message": "Rejtse el a kéretlen \"Lájk\"/\"Megosztás\" gombokat és a többi közösségi média widgetet" + }, + "group_description_stealth": { + "message": "Védje meg személyazonosságát és érzékeny személyes adatait az online nyomkövetők ezreivel szemben azzal, hogy blokkolja az összes népszerű nyomkövetési technikát" + }, + "name": { + "message": "AdGuard Hirdetésblokkoló" + }, + "opera_search_permission_dont_show": { + "message": "Ne mutasd meg újra" + }, + "opera_search_permission_go_to_settings": { + "message": "Beállítások megnyitása" + }, + "opera_search_permission_warning": { + "message": "A keresési hirdetések blokkolásához engedélyezze a hozzáférést a keresési oldal eredményeihez a böngésző beállításokban" + }, + "options_about": { + "message": "Névjegy" + }, + "options_about_libs": { + "message": "Használt könyvtárak" + }, + "options_about_title": { + "message": "AdGuard Böngészőkiegészítő" + }, + "options_about_update_available": { + "message": "A %version% verzió elérhető. Automatikusan letöltődik és települ." + }, + "options_about_version": { + "message": "Verzió" + }, + "options_acknowledgment": { + "message": "Köszönetnyilvánítás" + }, + "options_add_custom_filter": { + "message": "Egyéni szűrő hozzáadása" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Hozzáad" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "A szűrő ellenőrzése..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "Az URL egy weboldalt adott vissza szűrőlista helyett. Kérjük, adjon meg egy közvetlen linket a szűrőfájlhoz." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Kérjük, próbálja újra, vagy forduljon az ügyfélszolgálathoz" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nem sikerült az egyéni szűrő hozzáadása" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Szűrő neve:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Megbízható" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "A megbízható szűrők hatékony szabálymódosítókat használhatnak – ügyeljen arra, hogy megbízható fejlesztőktől származó szűrőt használjon" + }, + "options_add_custom_filter_modal_title": { + "message": "Egyéni szűrő hozzáadása" + }, + "options_all_limits_exceeded_warning": { + "message": "Elérte az aktív beépített szabályok korlátját. Az Ön böngészője módosította az aktív beépített szűrők listáját. Az engedélyezett szűrők száma %expected% értékről %current% értékre változott." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Elérte a böngésző aktív beépített szabályainak korlátját. A böngésző csökkentette az aktív beépített szűrők listáját %expected% értékről %current% értékre" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "A böngésző korlátozza \u003Cexternal-link>a szabályok bizonyos típusait\u003C/external-link>. Az összes szabály alkalmazásához engedélyezze a \u003Cb>felhasználói szkriptek engedélyezését\u003C/b> a böngésző \u003Csettings-link>bővítménybeállításaiban\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Kivételek" + }, + "options_allowlist_alert_invert": { + "message": "A kivételek listája meg lett fordítva. A hirdetések csak azokon a weboldalakon vannak blokkolva, amelyek hozzá lettek adva." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Inverzió leállítása\u003C/a>" + }, + "options_allowlist_desc": { + "message": "Az AdGuard nem blokkolja a hirdetéseket és a nyomkövetőket a listában szereplő weboldalakon" + }, + "options_allowlist_invalid_entries": { + "message": "A mentéshez csak domaineket vagy URL-eket tartson meg. Ezek javításra szorulnak: %entries%" + }, + "options_allowlist_invert": { + "message": "Kivételek megfordítása" + }, + "options_allowlist_invert_desc": { + "message": "Csak a listán szereplő weboldalakon blokkolja a hirdetéseket és nyomkövetőket" + }, + "options_allowlist_leave_subtitle": { + "message": "A kivételek listájára tett módosításai elvesznek" + }, + "options_allowlist_menu": { + "message": "Kivételek lista műveletei" + }, + "options_anonymized_usage_data_description": { + "message": "Névtelen statisztikákat küld a bővítményhasználatról az AdGuardnak. \u003Cbutton>További információ\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Rendben" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Ezek az adatok a következőket tartalmazzák:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Azon gombok neve, amelyekre rákattint" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Azon képernyők nevei, amelyekkel kapcsolatba lép" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Munkamenet azonosítók" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ezek az adatok névtelenek, és csak belsőleg használhatók fel. Soha nem osztjuk meg harmadik felekkel" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Ezekre az információkra az AdGuard funkcionalitásának elemzése és javítása érdekében van szükségünk" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Kiegészítő használati adatok" + }, + "options_anonymized_usage_data_title": { + "message": "Küldje el az anonimizált kiegészítő használati adatokat" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Ez az egyéni szűrő már hozzá van adva" + }, + "options_antibanner_custom_group": { + "message": "Egyéni" + }, + "options_antibanner_custom_group_description": { + "message": "Lehetővé teszi szűrők hozzáadását fájlból vagy URL-ből" + }, + "options_antibanner_rules_count": { + "message": "Szabályok: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Frissítve: %date%" + }, + "options_block_acceptable_ads": { + "message": "Keresési hirdetések és weboldalak önpromóciójának blokkolása" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokkolja a keresési eredmények között megjelenő hirdetéseket és a weboldalak önreklámozását. \u003Ca>Tudjon meg többet\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "A sütik blokkolásához állítsa az élettartamot 0-ra" + }, + "options_block_known_trackers_description": { + "message": "Az AdGuard Tracking Protection szűrő használatával blokkolja a nyomkövetőket és a webes elemzéseket" + }, + "options_block_known_trackers_title": { + "message": "Nyomkövetők blokkolása" + }, + "options_check_update_progress": { + "message": "Ellenőrzés..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Törlés" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Az adat használatára vonatkozó összes statisztika véglegesen törlésre kerül" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Statisztika törlése?" + }, + "options_clipboard_permission_warning": { + "message": "Szabályok másolásához és beillesztéséhez engedélyezze az AdGuard számára a vágólap elérését. \u003Ca>Engedélyezés\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Névtelen statisztikákat küld a hirdetés szűrő használatáról az AdGuardnak. \u003Ca>Tudjon meg többet\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Segítsen az AdGuard szűrők fejlesztésében" + }, + "options_coming_soon": { + "message": "Hamarosan érkezik" + }, + "options_confirm_modal_cancel_button": { + "message": "Mégse" + }, + "options_copyright": { + "message": "Minden jog fenntartva." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Az egyéni szűrők használatához engedélyezze a \u003Cb>felhasználói szkriptek engedélyezését\u003C/b> a böngésző \u003Csettings-link>bővítménybeállításaiban\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Az egyéni szűrők használatához engedélyezze a \u003Cb>fejlesztői módot\u003C/b> a böngésző \u003Csettings-link>bővítménybeállításaiban\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "AdGuard for Linux beszerzése" + }, + "options_desktop_app_promo_button_mac": { + "message": "AdGuard for Mac beszerzése" + }, + "options_desktop_app_promo_button_windows": { + "message": "AdGuard for Windows beszerzése" + }, + "options_desktop_app_promo_description": { + "message": "Az olyan alkalmazások, mint a Spotify, Discord vagy a Zoom, továbbra is megjeleníthetnek hirdetéseket és nyomon követhetik a tevékenységedet" + }, + "options_desktop_app_promo_subdescription": { + "message": "Asztali alkalmazásunk megvédhet ezektől" + }, + "options_desktop_app_promo_title": { + "message": "A kiegészítő csak a böngészőt védi" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "A böngésző korlátozza \u003Cexternal-link>a szabályok bizonyos típusait\u003C/external-link>. Az összes szabály alkalmazásához engedélyezze a \u003Cb>fejlesztői módot\u003C/b> a böngésző \u003Csettings-link>bővítménybeállításaiban\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokkolja a WebRTC-t, amely kiszivárogtathatja a valódi IP-címét még akkor is, ha proxy-t vagy VPN-t használ. Egyes üzenetküldő alkalmazások, streaming platformok vagy játékok előfordulhat, hogy nem működnek megfelelően" + }, + "options_disable_webrtc_title": { + "message": "WebRTC tiltása" + }, + "options_discuss": { + "message": "Fórum" + }, + "options_do_you_like_question": { + "message": "Szereti az AdGuardot?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Teljes képernyős mód elhagyása" + }, + "options_editor_indicator_saved": { + "message": "Mentve" + }, + "options_editor_indicator_saving": { + "message": "Mentés..." + }, + "options_editor_leave_cancel": { + "message": "Vissza a szerkesztéshez" + }, + "options_editor_leave_confirm": { + "message": "Igen, kijelentkezés" + }, + "options_editor_leave_title": { + "message": "Bezárás mentés nélkül?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Szerkesztő megnyitása új ablakban" + }, + "options_editor_save": { + "message": "Mentés" + }, + "options_editor_save_error": { + "message": "Nem sikerült menteni a változásokat. Próbálkozzon újra, vagy lépjen kapcsolatba a támogatással" + }, + "options_empty_custom_filter": { + "message": "Még nem állított be egyetlen egyéni szűrőt sem" + }, + "options_enable_autodetect_filter": { + "message": "A megfelelő szűrők automatikus aktiválása" + }, + "options_enable_autodetect_filter_desc": { + "message": "Érzékeli a webhely nyelvét, és aktiválja a megfelelő szűrőket" + }, + "options_export_settings": { + "message": "Beállítások exportálása" + }, + "options_filters": { + "message": "Szűrők" + }, + "options_filters_annoyances_consent_description": { + "message": "Ön egy vagy több zavaró elemeket szűrő (annoyance) szűrőt készül engedélyezni. Ezek olyan elemeket blokkolnak, amelyek vagy nem kapcsolódnak a weboldal tartalmához, vagy kapcsolódnak ugyan hozzá, de zavarják a felhasználói élményt. A weboldalak tulajdonosai ezeket az elemeket kötelezőnek tekinthetik: ha Ön blokkolja őket, előfordulhat, hogy megsérti a felhasználási feltételeiket; egyes weboldalak bizonyos funkciói nem lesznek elérhetők, vagy nem fognak megfelelően működni. Ön tudomásul veszi és elfogadja, hogy kizárólag Ön felelős azért, hogy betartsa az Ön által meglátogatott weboldalak felhasználási feltételeit, és hogy az AdGuard nem felelős azért, hogy Ön betartja-e ezeket a feltételeket a termékeink használata során." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Engedélyezve" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Honlap" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Az AdGuard bosszúságszűrőinek blokkolásával kapcsolatos részletekért lásd: \u003Ca>Szűrési irányelvek\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Szűrők engedélyezése?" + }, + "options_filters_annoyances_consent_title": { + "message": "Kérjük, olvassa el figyelmesen, mielőtt engedélyezi a kellemetlenség szűrőket" + }, + "options_filters_back_button": { + "message": "Vissza" + }, + "options_filters_empty_title": { + "message": "Nincs találat" + }, + "options_filters_enabled": { + "message": "Engedélyezve:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% és %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% és %more% további" + }, + "options_filters_enabled_per_group": { + "message": "Engedélyezve: %current% a %total%-ból" + }, + "options_filters_filter_link": { + "message": "Ugrás a kezdőlapra" + }, + "options_filters_filter_tags": { + "message": "Címkék szűrése" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Úgy döntött, hogy megbízik ebben a szűrőben." + }, + "options_filters_filter_updated": { + "message": "frissítve:" + }, + "options_filters_filter_version": { + "message": "verzió:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Összes szabály: %num%" + }, + "options_filters_last_checked": { + "message": "Utoljára ellenőrizve: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Minden szűrő" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Letiltva" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Engedélyezve" + }, + "options_filters_no_enabled": { + "message": "Nincsenek engedélyezett szűrők" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" csoport szűrői" + }, + "options_filters_search": { + "message": "Keresés" + }, + "options_filters_search_filter": { + "message": "Szűrő keresése" + }, + "options_first_party_block_cookies_warning": { + "message": "Ha blokkolja ezeket a sütiket, egyes weboldalak megszakadhatnak vagy leállhatnak" + }, + "options_first_party_desc": { + "message": "Megakadályozza, hogy a weboldalak megjegyezzék az Ön adatait, például a bejelentkezési hitelesítő adatait és a nyelvi beállításait, az elsődleges sütik élettartamának korlátozásával" + }, + "options_first_party_title": { + "message": "Törlés elsődleges sütik (nem ajánlott)" + }, + "options_general_settings": { + "message": "Általános beállítások" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Annaks megelőzése, hogy a harmadik felek megismerjék, Ön milyen webhelyeket látogat meg" + }, + "options_hide_referrer_title": { + "message": "Referer elrejtése a harmadik felek elől" + }, + "options_hide_search_queries_desc": { + "message": "Elrejti a kereséseidet a keresőmotor találatain keresztül meglátogatott weboldalakon" + }, + "options_hide_search_queries_title": { + "message": "Keresési lekérdezések elrejtése" + }, + "options_import_configuration_applying_subtitle": { + "message": "A jelenlegi beállítások lecserélése az importáltakra. Az importálás során a szűrés le van tiltva" + }, + "options_import_configuration_applying_title": { + "message": "Importálás..." + }, + "options_import_configuration_confirm_button": { + "message": "Importálás" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Az importált beállítások felülírják a jelenlegieket. A többi beállítást ez nem érinti" + }, + "options_import_configuration_confirm_title": { + "message": "Beállítások importálása" + }, + "options_import_configuration_error_button": { + "message": "Bezárás" + }, + "options_import_configuration_error_subtitle": { + "message": "Kérjük, ellenőrizze az importálási linket, és próbálja újra. Ha nem segít, lépjen kapcsolatba az ügyfélszolgálattal." + }, + "options_import_configuration_error_title": { + "message": "Nem sikerült importálni a beállításokat" + }, + "options_import_configuration_success_button": { + "message": "Bezárás" + }, + "options_import_configuration_success_subtitle": { + "message": "A beállítások importálása sikeresen megtörtént" + }, + "options_import_configuration_success_title": { + "message": "Minden kész" + }, + "options_import_settings": { + "message": "Beállítások importálása" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Megfordítás" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "A hirdetések és a nyomkövetők csak az engedélyezési listán szereplő weboldalakon lesznek blokkolva" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Engedélyezési lista megfordítása?" + }, + "options_leave_feedback": { + "message": "Visszajelzés küldése" + }, + "options_lifetime_minutes": { + "message": "Élettartam, percben" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Elérte a felhasználók által hozzáadott reguláris kifejezések korlátját. %maximum% / %current% regex szabály engedélyezve van." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Elérte a felhasználó által hozzáadott regex szabályok korlátját. A %current% szabályból %maximum% van engedélyezve. Új regex szabályok hozzáadásához töröljön néhány meglévőt" + }, + "options_limits_warning_dynamic_rules": { + "message": "Elérte a felhasználók által hozzáadott szabályok korlátját. %maximum% / %current% szabály engedélyezve van." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Elérte a felhasználó által hozzáadott szabályok korlátját. A %current% szabályból %maximum% van engedélyezve. Új szabályok hozzáadásához töröljön néhány meglévőt" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Elérte a felhasználók által hozzáadott nem biztonságos szabályok korlátját. %maximum% a %current% nem biztonságos szabályok közül engedélyezve van." + }, + "options_limits_warning_static_filters": { + "message": "Elérte az aktív beépített szűrők maximális számát. %maximum% / %current% szűrő engedélyezve van. Az új szabályok aktiválásához kapcsoljon ki néhány beépített szűrőt." + }, + "options_limits_warning_static_filters_browser": { + "message": "Elérte a böngésző aktív beépített szűrőinek korlátját. A %current% szűrőből %maximum% van engedélyezve. Új szűrők aktiválásához kapcsoljon ki néhány beépített szűrőt" + }, + "options_limits_warning_static_regex_rules": { + "message": "Elérte az aktív beépített reguláris kifejezések korlátját. %maximum% / %current% regex szabály engedélyezve van. Az új szabályok aktiválásához kapcsoljon ki néhány beépített szűrőt." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Elérte az aktív beépített regex-szabályok korlátját. Új szabályok aktiválásához kapcsoljon ki néhány beépített szűrőt" + }, + "options_limits_warning_static_rules": { + "message": "Elérte az aktív beépített szabályok korlátját. %maximum% / %current% szabály engedélyezve van. Az új szabályok aktiválásához kapcsoljon ki néhány beépített szűrőt." + }, + "options_limits_warning_static_rules_browser": { + "message": "Elérte a böngésző aktív beépített szabályainak korlátját. Új szabályok aktiválásához kapcsoljon ki néhány beépített szűrőt" + }, + "options_loader_applying_changes": { + "message": "Változások alkalmazása..." + }, + "options_miscellaneous_settings": { + "message": "Vegyes" + }, + "options_modified_first_party_cookie": { + "message": "Elsődleges süti módosítva" + }, + "options_modified_third_party_cookie": { + "message": "Külső süti módosítva" + }, + "options_nav_better_than_extension": { + "message": "Miért jobb az AdGuard alkalmazás, mint a böngészőbővítmény?" + }, + "options_nav_compare": { + "message": "Összehasonlítás" + }, + "options_navigation": { + "message": "Navigáció" + }, + "options_open_changelog": { + "message": "Változásnapló" + }, + "options_open_log": { + "message": "Szűrési napló megnyitása" + }, + "options_popup_call_to_action": { + "message": "Írja be a szűrő érvényes URL-jét vagy fájlútvonalát a fenti mezőbe." + }, + "options_popup_check_false_description": { + "message": "Hiba történt az egyéni szűrő hozzáadása során." + }, + "options_popup_check_false_title": { + "message": "Hiba" + }, + "options_popup_checking_filter": { + "message": "Szűrő ellenőrzése" + }, + "options_popup_description": { + "message": "Feliratkozik erre a szűrőre." + }, + "options_popup_filter_description": { + "message": "Leírás:" + }, + "options_popup_filter_homepage": { + "message": "Honlap:" + }, + "options_popup_filter_rules_count": { + "message": "Szabályok száma:" + }, + "options_popup_filter_title": { + "message": "Cím:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Verzió:" + }, + "options_popup_import_error_file_description": { + "message": "Valami hiba történt." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "A beállításfájl importálásához engedélyezze az AdGuard számára az adatvédelemmel kapcsolatos beállítások módosítását." + }, + "options_popup_import_error_title": { + "message": "Nem sikerült importálni a beállításokat" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "A fájl kiterjesztése %extension% kell, hogy legyen" + }, + "options_popup_import_success_title": { + "message": "Beállítások importálva" + }, + "options_popup_next_button": { + "message": "Következő" + }, + "options_popup_subscribe_button": { + "message": "Feliratkozás" + }, + "options_popup_title_placeholder": { + "message": "Adja meg a szűrő nevét" + }, + "options_popup_trusted_filter_description": { + "message": "A megbízhatónak jelölt szűrők magasabb szintű szabályokat használhatnak, amelyek rossz kezekben veszélyesek lehetnek. Csak akkor jelölje be, ha teljes mértékben megbízik az adott szűrőben." + }, + "options_popup_trusted_filter_title": { + "message": "Megbízható" + }, + "options_popup_try_again_button": { + "message": "Újrapróbálkozás" + }, + "options_popup_update_error": { + "message": "Nem sikerült a frissítés. Kérjük, próbálja meg később!" + }, + "options_popup_update_filter": { + "message": "frissítve lett." + }, + "options_popup_update_filters": { + "message": "frissítve lett." + }, + "options_popup_update_not_found": { + "message": "A szűrők naprakészek" + }, + "options_popup_update_title_error": { + "message": "Hiba történt a szűrők frissítésekor" + }, + "options_popup_updating_filters": { + "message": "Szűrők frissítése..." + }, + "options_popup_url_placeholder": { + "message": "Adjon meg egy URL-t vagy elérési utat" + }, + "options_popup_url_title": { + "message": "Új szűrő hozzáadása" + }, + "options_popup_version_update_changelog_text": { + "message": "Mik az újdonságok ebben a verzióban?" + }, + "options_popup_version_update_description_major": { + "message": "Ez egy jelentős kiegészítő frissítés, amely sok új funkciót és fejlesztést vezet be." + }, + "options_popup_version_update_description_minor": { + "message": "Ez a verzió leginkább hibajavításokat, valamint kisebb fejlesztéseket tartalmaz." + }, + "options_popup_version_update_disable_notification": { + "message": "Értesítések letiltása" + }, + "options_popup_version_update_offer": { + "message": "Tudta, hogy az AdGuard képességei nem csak erre a böngészőre korlátozódnak?" + }, + "options_popup_version_update_offer_button_text": { + "message": "TUDJON MEG TÖBBET" + }, + "options_popup_version_update_title_text": { + "message": "Az AdGuard kiegészítő a(z) %current_version% verzióra frissült" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "A WebRTC szigorúbb IP-cím házirendet alkalmaz, hogy segítsen a valódi IP-címet rejtve tartani, ha proxy vagy VPN-t használsz" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Az IP-cím szivárgásának megakadályozása a WebRTC-n keresztül" + }, + "options_privacy": { + "message": "Nyomon követés elleni védelem" + }, + "options_privacy_desc": { + "message": "Megvédi online tevékenységét és személyes adatait a webes nyomkövetőktől" + }, + "options_privacy_policy": { + "message": "Adatvédelmi irányelvek" + }, + "options_privacy_title": { + "message": "Nyomon követés elleni védelem" + }, + "options_rate_us_cta": { + "message": "Értékeljen minket" + }, + "options_remove_client_data_desc": { + "message": "Megakadályozza, hogy a Google Chrome elküldje a verziószámát és egyéb információkat a Google domainek felé" + }, + "options_remove_client_data_title": { + "message": "X-Client-Data fejléc eltávolítása" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Eltávolítás" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Szűrő eltávolítása?" + }, + "options_report_bug": { + "message": "Hiba jelentése" + }, + "options_reset_settings": { + "message": "Beállítások visszaállítása" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Visszaállítás" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Minden beállítás vissza lesz állítva az alapértelmezett értékekre" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Beállítások visszaállítása?" + }, + "options_reset_settings_done": { + "message": "A beállítások alaphelyzetbe lettek állítva" + }, + "options_reset_settings_error": { + "message": "Hiba történt a beállítások alaphelyzetbe állításakor" + }, + "options_reset_stats": { + "message": "Statisztikák visszaállítása" + }, + "options_reset_stats_done": { + "message": "Statisztikák visszaállítva" + }, + "options_rule_limits": { + "message": "Szabálykorlátok" + }, + "options_rule_limits_description": { + "message": "A Chrome korlátozza az alkalmazható szabályok számát" + }, + "options_rule_limits_dynamic": { + "message": "Dinamikus szabályok" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex szabályok — Itt szerepelnek a felhasználó által hozzáadott szabályok" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nem biztonságos dinamikus szabályok (egyes speciális módosítókhoz használatosak, például $$redirect vagy $$cookie) – a felhasználó által hozzáadott szabályokban" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Felhasználó által hozzáadott szabályok, például \u003Cuser_rules>felhasználói szabályok\u003C/user_rules>, \u003Callowlist>engedélyezési listára tett weboldalak\u003C/allowlist> és \u003Ccustom_filters>egyéni szűrők\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Felhasználó által hozzáadott szabályok, például \u003Cuser_rules>felhasználói szabályok\u003C/user_rules> és \u003Callowlist>engedélyezett webhelyek\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% / %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statikus szabályok" + }, + "options_rule_limits_static_rules_all": { + "message": "Szabályok innen: \u003Ca>beépített szűrők\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex szabályok – a fentiekben" + }, + "options_rule_limits_static_rulesets": { + "message": "Statikus szabályrendszerek" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Beépített szűrők\u003C/a>, mint például a zavaró tényezők blokkolása vagy a nyelvspecifikus szűrők" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "3. lehetőség. Ha elégedett a jelenleg engedélyezett alapértelmezett szűrőkkel, \u003Ca>zárja be ezt a figyelmeztetést.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "3. Ha elégedett a jelenleg engedélyezett alapértelmezett szűrővel, \u003Ca>zárja be ezt a figyelmeztetést\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "1. lehetőség: Törölje a szükségtelen hirdetésblokkoló bővítményeket a böngészőből. A „Frissítés előtt engedélyezett szűrők” részben említett szűrők újraaktiválásához kattintson a \u003Ca>szűrők újraaktiválása lehetőségre.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "2. lehetőség. Telepítse az AdGuard Ad Blocker alkalmazást: abban nincs korlátozása a szűrési szabályokra vonatkozóan. \u003Ca>Töltse le az AdGuard alkalmazást\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Az Ön lehetséges lépései" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Az aktív beépített szabályok korlátját frissítés vagy új bővítmény hozzáadása után túllépték. A Manifest V3 szerint a Chrome böngészője úgy reagált, hogy letiltotta a bővítmény összes beépített szűrőjét, kivéve az alapértelmezetteket." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Mi történt?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "A frissítés előtt engedélyezve vannak a szűrők" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "A szűrők mostantól engedélyezve vannak" + }, + "options_rule_limits_warning_title": { + "message": "A böngésző módosította az aktív szűrők listáját" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Távolítsa el a szabálykorlátokat, és szerezzen kiterjesztett védelmet, amely minden böngészőben működik" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Telepítse az asztali alkalmazást" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Menj a szűrőkhöz" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Kiegészítők kezelése" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "A böngésző kiegészítők ugyanazt a szabálykorlátot használják. Más hirdetésblokkolók eltávolítása több szabályt szabadíthat fel az AdGuard Browser Extension számára" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Távolítsa el a többi hirdetésblokkolót" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Engedélyezze a szükséges szűrőket. A nyelvspecifikus és adatvédelmi szűrők sok szabályt használhatnak" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Elérhető szűrők áttekintése" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "A következőket teheti" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Elérte a korlátot — néhány szűrő le lett tiltva" + }, + "options_rule_syntax": { + "message": "Szabály szintaxis" + }, + "options_safebrowsing_enabled": { + "message": "Adathalászat- és kártevők elleni védelem" + }, + "options_safebrowsing_enabled_desc": { + "message": "Figyelmeztet veszélyes és adathalász weboldalakra az AdGuard Böngészési Biztonság modul segítségével. \u003Ca>Tudjon meg többet\u003C/a>" + }, + "options_select_theme": { + "message": "Téma" + }, + "options_select_update_period_12h": { + "message": "12 óra" + }, + "options_select_update_period_1h": { + "message": "1 óra" + }, + "options_select_update_period_24h": { + "message": "24 óra" + }, + "options_select_update_period_48h": { + "message": "48 óra" + }, + "options_select_update_period_6h": { + "message": "6 óra" + }, + "options_select_update_period_default": { + "message": "Alapértelmezett" + }, + "options_select_update_period_disabled": { + "message": "Letiltva" + }, + "options_send_not_track_desc": { + "message": "Ez elküldi a \u003Cgpc>Global Privacy Control\u003C/gpc> és a \u003Cdnt>Do Not Track\u003C/dnt> jelzéseket a webhelyek számára, amelyeket meglátogat" + }, + "options_send_not_track_title": { + "message": "Kérd meg a weboldalakat, hogy ne kövessenek nyomon" + }, + "options_set_update_interval": { + "message": "Szűrők automatikus frissítése" + }, + "options_set_update_interval_desc": { + "message": "A hatékonyabb hirdetésblokkolás érdekében naprakészen tartja a szűrőket" + }, + "options_settings": { + "message": "AdGuard beállítások" + }, + "options_share_settings": { + "message": "Megosztási beállítások" + }, + "options_show_adguard_full_version_title": { + "message": "Információ megjelenítése a teljes verziós AdGuardon" + }, + "options_show_app_updated_notification": { + "message": "Értesítsen a kiegészítő frissítéseiről" + }, + "options_show_blocked_ads_count_title": { + "message": "A blokkolt hirdetések számának megjelenítése az AdGuard kiegészítő ikonján" + }, + "options_show_context_menu_title": { + "message": "Az AdGuard hozzáadása a böngésző helyi menüjéhez" + }, + "options_site": { + "message": "Hivatalos webhely" + }, + "options_skip_to_main_content": { + "message": "Ugrás a fő tartalomra" + }, + "options_stealth_general_title": { + "message": "Általános" + }, + "options_stealth_miscellaneous_title": { + "message": "Vegyes" + }, + "options_stealth_tracking_methods_title": { + "message": "Nyomkövetési módszerek" + }, + "options_strip_tracking_params_description": { + "message": "Eltávolítja a nyomkövetési paramétereket az oldal URL-jéből az AdGuard URL-követő szűrő használatával" + }, + "options_strip_tracking_params_title": { + "message": "Távolítsa el a nyomkövetési paramétereket az URL-ekből" + }, + "options_stripped_tracking_parameters": { + "message": "Követési paraméterek eltávolítva" + }, + "options_theme_selector_dark": { + "message": "Sötét" + }, + "options_theme_selector_light": { + "message": "Világos" + }, + "options_theme_selector_system": { + "message": "Rendszer alapértelmezett" + }, + "options_third_party_block_cookies_warning": { + "message": "Ha blokkolja ezeket a sütiket, előfordulhat, hogy újra be kell jelentkeznie egyes weboldalakra, vagy más, a sütikkel kapcsolatos problémákkal kell szembenéznie" + }, + "options_third_party_desc": { + "message": "Megakadályozza, hogy a hirdetők több oldalon keresztül követhessék a viselkedését azáltal, hogy korlátozza a harmadik féltől származó sütik élettartamát" + }, + "options_third_party_title": { + "message": "Harmadik féltől származó cookie-k törlése" + }, + "options_update_antibanner_filters": { + "message": "Szűrőfrissítések ellenőrzése" + }, + "options_use_optimized_filters": { + "message": "Optimalizált szűrők használata" + }, + "options_use_optimized_filters_desc": { + "message": "A forgalom megtakarítása érdekében a szűrők rövidebb változatait használja, és csak a legnépszerűbb szabályokat tartalmazza. Jobban illeszkedik a mobil böngészőkhöz" + }, + "options_user_rules_clear_search": { + "message": "Keresés törlése" + }, + "options_user_rules_create_rule": { + "message": "Szabály létrehozása" + }, + "options_user_rules_delete_all": { + "message": "Összes törlése" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Az összes felhasználói szabály véglegesen törlődik" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Összes törlése?" + }, + "options_user_rules_delete_all_success": { + "message": "Minden felhasználói szabály törölve" + }, + "options_user_rules_delete_rule": { + "message": "Szabály törlése" + }, + "options_user_rules_deleted_notification": { + "message": "Felhasználói szabály törölve:" + }, + "options_user_rules_description_key": { + "message": "Saját szabályai a hirdetések vagy teljes weboldalak blokkolására illetve feloldására" + }, + "options_user_rules_edit_rule": { + "message": "Szabály szerkesztése" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Szerkesztő megnyitása" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "A szabályai itt jelennek meg, miután bezárta" + }, + "options_user_rules_editor_stub_title": { + "message": "A szerkesztő egy másik ablakban nyitva van" + }, + "options_user_rules_empty_placeholder": { + "message": "Még nincsenek szabályok" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Szabályok kiemelése…" + }, + "options_user_rules_import_error": { + "message": "Nem sikerült importálni a felhasználói szabályokat. Kérjük, próbálja újra" + }, + "options_user_rules_import_success": { + "message": "Felhasználói szabályok sikeresen importálva" + }, + "options_user_rules_menu": { + "message": "Felhasználói szabályok műveletei" + }, + "options_user_rules_no_match": { + "message": "Nincs találat" + }, + "options_user_rules_search_placeholder": { + "message": "Keresés" + }, + "options_user_rules_switch_to_editor": { + "message": "Átváltás szerkesztő nézetre" + }, + "options_user_rules_switch_to_list": { + "message": "Átváltás lista nézetre" + }, + "options_user_rules_undo": { + "message": "Visszavonás" + }, + "options_userfilter": { + "message": "Felhasználói szabályok" + }, + "options_userfilter_description_key": { + "message": "Itt hozzáadhatja saját szabályait. Ezt a lehetőséget csak a HTML/CSS világában jártas felhasználóinknak ajánljuk. Olvassa el a \u003Ca>szűrőszabályokról szóló oktatóanyagot\u003C/a>, hogy megtanulja, hogyan írhat saját szűrőszabályokat." + }, + "options_userfilter_export": { + "message": "Exportálás" + }, + "options_userfilter_import": { + "message": "Importálás" + }, + "options_userfilter_leave_subtitle": { + "message": "A szabályok módosításai elvesznek" + }, + "options_userfilter_line_break": { + "message": "Sortörés" + }, + "options_userfilter_line_break_off": { + "message": "Sortörés: Letiltva" + }, + "options_userfilter_line_break_on": { + "message": "Sortörés: Engedélyezve" + }, + "options_userfilter_subtitle_key": { + "message": "Lehetővé teszi saját szűrési szabályok hozzáadását" + }, + "popup_abuse_site": { + "message": "Probléma bejelentése" + }, + "popup_adguard_footer_title": { + "message": "Védje meg mobil eszközét" + }, + "popup_adguard_for_android": { + "message": "AdGuard Androidra" + }, + "popup_adguard_for_ios": { + "message": "AdGuard iOS-re" + }, + "popup_block_site_ads_option": { + "message": "Hirdetések manuális blokkolása" + }, + "popup_get_system_wide_protection": { + "message": "Rendszerszintű védelmet szerezzen" + }, + "popup_header_cta_link": { + "message": "Hogyan fokozható a védelem" + }, + "popup_header_update_filters": { + "message": "Szűrő frissítések ellenőrzése" + }, + "popup_limits_exceeded_warning": { + "message": "A böngészője módosította az aktív beépített szűrők listáját" + }, + "popup_open_filtering_log": { + "message": "Szűrési napló megnyitása" + }, + "popup_open_settings": { + "message": "AdGuard beállítások megnyitása" + }, + "popup_protection_button": { + "message": "AdGuard védelem" + }, + "popup_reset_page_user_rules": { + "message": "Felhasználó szabályok törlése ennél a webhelynél" + }, + "popup_resume_protection_button": { + "message": "Folytatás" + }, + "popup_security_report": { + "message": "Webhely biztonságának ellenőrzése" + }, + "popup_site_exception_information": { + "message": "A szűrés le van tiltva, mivel zavarhatja a webhely működését." + }, + "popup_site_filtering_state_disabled": { + "message": "Védelem kikapcsolva" + }, + "popup_site_filtering_state_disabling": { + "message": "Védelem letiltása..." + }, + "popup_site_filtering_state_enabled": { + "message": "Védelem bekapcsolva" + }, + "popup_site_filtering_state_enabling": { + "message": "Védelem engedélyezése..." + }, + "popup_site_filtering_state_loading": { + "message": "Betöltés..." + }, + "popup_site_filtering_state_paused": { + "message": "Védelem szüneteltetve" + }, + "popup_site_filtering_state_pausing": { + "message": "Védelem szüneteltetése..." + }, + "popup_site_filtering_state_resuming": { + "message": "Védelem folytatása..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Biztonságos oldal" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "minden webhelyhez" + }, + "popup_statistics_all_categories": { + "message": "Mind" + }, + "popup_statistics_category_advertising": { + "message": "Hirdetések" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statisztikai kategória" + }, + "popup_statistics_category_other": { + "message": "Egyéb" + }, + "popup_statistics_category_social_media": { + "message": "Közösségi média" + }, + "popup_statistics_category_trackers": { + "message": "Követők" + }, + "popup_statistics_months_apr": { + "message": "Ápr" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Júl" + }, + "popup_statistics_months_jun": { + "message": "Jún" + }, + "popup_statistics_months_mar": { + "message": "Már" + }, + "popup_statistics_months_may": { + "message": "Máj" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Szept" + }, + "popup_statistics_time_day": { + "message": "24 óra" + }, + "popup_statistics_time_label": { + "message": "Statisztikai időszak" + }, + "popup_statistics_time_month": { + "message": "30 nap" + }, + "popup_statistics_time_week": { + "message": "7 nap" + }, + "popup_statistics_time_year": { + "message": "1 év" + }, + "popup_statistics_total": { + "message": "Összesen" + }, + "popup_statistics_week_days_fri": { + "message": "Pén" + }, + "popup_statistics_week_days_mon": { + "message": "Hét" + }, + "popup_statistics_week_days_sat": { + "message": "Szom" + }, + "popup_statistics_week_days_sun": { + "message": "Vas" + }, + "popup_statistics_week_days_thu": { + "message": "Csüt" + }, + "popup_statistics_week_days_tue": { + "message": "Kedd" + }, + "popup_statistics_week_days_wed": { + "message": "Szer" + }, + "popup_switch_button": { + "message": "Védelem az aktuális weboldalon" + }, + "popup_tab_actions": { + "message": "Műveletek" + }, + "popup_tab_blocked_all_count": { + "message": "Összes blokkolva: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokkolva: %num%" + }, + "popup_tab_current_website": { + "message": "Jelenlegi weboldal" + }, + "popup_tab_statistics": { + "message": "Statisztikák" + }, + "popup_tabs": { + "message": "Fülek" + }, + "popup_tooltip_loading": { + "message": "Betöltés..." + }, + "popup_tooltip_protection_disabled": { + "message": "Védelem kikapcsolva" + }, + "popup_tooltip_protection_enabled": { + "message": "Védelem bekapcsolva" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Néhány szabály nem alkalmazható" + }, + "popup_tooltip_update_available": { + "message": "Frissítés elérhető" + }, + "post_install_loading": { + "message": "Bővítmény betöltése..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Túllépte a szabálykorlátot az AdGuard böngészőbővítményben. Kérjük, ellenőrizze a szűrőket, és tiltsa le azokat, amelyekre nincs szüksége" + }, + "text_collapser_hide_default": { + "message": "Teljes szöveg elrejtése" + }, + "text_collapser_show_default": { + "message": "Teljes szöveg megjelenítése" + }, + "update_available_desc": { + "message": "Az adok hatékony blokkolásához tartsa naprakészen a kiegészítőt és a szűrőket" + }, + "update_available_title": { + "message": "Frissítések elérhetők" + }, + "update_available_update_btn": { + "message": "Frissítés" + }, + "update_check": { + "message": "Frissítések keresése" + }, + "update_checking_in_progress": { + "message": "Frissítések ellenőrzése..." + }, + "update_failed_text": { + "message": "Nem sikerült befejezni a frissítést" + }, + "update_failed_try_again_btn": { + "message": "Újrapróbálkozás" + }, + "update_installing_in_progress_desc": { + "message": "A bővítmény a frissítés után újraindul" + }, + "update_installing_in_progress_title": { + "message": "Kiegészítő és szűrők frissítése..." + }, + "update_not_needed": { + "message": "Kiegészítője és szűrői naprakészek" + }, + "update_success_text": { + "message": "Kiegészítő és szűrők frissítve" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hy/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hy/messages.json new file mode 100644 index 0000000..f640511 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/hy/messages.json @@ -0,0 +1,1686 @@ +{ + "options_clipboard_permission_warning": { + "message": "Կանոնների պատճենման եւ տեղադրելու համար թույլատրեք AdGuard-ին մուտք գործել սեղմատախտակ: Թույլատրել" + }, + "options_popup_title_placeholder": { + "message": "Մուտքագրեք ֆիլտրի անունը" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Բոլոր ֆիլտրերը" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Թույլատրված" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Անջատված" + }, + "options_filters_empty_title": { + "message": "Ոչինչ չի գտնվել" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" խմբի ֆիլտրեր" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Այս կարգավորվող զտիչն արդեն ավելացվել է" + }, + "options_filters_annoyances_consent_title": { + "message": "Խնդրում ենք ուշադիր կարդալ նախքան նյարդայնացնող ֆիլտրեր հնարավորություն տալը" + }, + "options_filters_annoyances_consent_description": { + "message": "Դուք պատրաստվում եք հնարավորություններ տալ մեկ կամ ավելի նյարդայնացնող ֆիլտրեր: Դրանք արգելափակում են տարրեր, որոնք կամ կապ չունեն կայքի բովանդակության հետ, կամ կապված են, բայց նյարդայնացնող են ձեր օգտատիրոջ փորձին: Կայքի սեփականատերերը կարող են համարել այս տարրերը պարտադիր՝ եթե դուք արգելափակեք դրանք, կարող եք խախտել նրանց պայմանները; կայքերի որոշ ֆունկցիոնալություններ կարող են չլինել հասանելի կամ չաշխատել ճիշտ: Դուք հասկանում և համաձայնում եք, որ բացառապես պատասխանատու եք այցելած կայքերի օգտագործման պայմաններին համապատասխանելու համար, և որ AdGuard-ը պատասխանատու չէ մեր արտադրանքն օգտագործելիս այցելած կայքերի օգտագործման պայմանների համապատասխանության համար:" + }, + "options_filters_annoyances_consent_question": { + "message": "Միացնե՞լ այս զտիչները:" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Մանրամասների համար, թե AdGuard-ի նյարդայնացնող զտիչները ինչ են արգելափակում, դիտեք Զտիչ քաղաքականությունը" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Միացնել" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Տուն" + }, + "popup_header_cta_link": { + "message": "Ինչպես բարելավել պաշտպանությունը" + }, + "popup_get_system_wide_protection": { + "message": "Ստացեք համակարգի մասշտաբով պաշտպանություն" + }, + "popup_header_update_filters": { + "message": "Ստուգել զտիչի թարմացումները" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Ֆայլի ընդլայնումը պետք է լինի %extension%" + }, + "popup_resume_protection_button": { + "message": "Վերականգնել հիմա" + }, + "popup_adguard_for_ios": { + "message": "AdGuard iOS-ի համար" + }, + "popup_adguard_for_android": { + "message": "AdGuard Android-ի համար" + }, + "options_filters_filter_version": { + "message": "տարբերակ" + }, + "options_filters_filter_link": { + "message": "Գնալ գլխավոր էջ" + }, + "options_filters_filter_updated": { + "message": "թարմացվել է" + }, + "options_filters_filter_tags": { + "message": "Ֆիլտրել թեգերը" + }, + "options_filters_back_button": { + "message": "Վերադառնալ" + }, + "options_popup_version_update_disable_notification": { + "message": "Անջատել ծանուցումները" + }, + "popup_adguard_footer_title": { + "message": "Պաշտպանեք ձեր շարժական սարքը" + }, + "options_popup_call_to_action": { + "message": "Մուտքագրեք վավեր URL-ը կամ ֆիլտրի ֆայլի ուղին վերևի դաշտում:" + }, + "options_popup_description": { + "message": "Դուք կբաժանվեք այդ ֆիլտրին:" + }, + "options_popup_url_title": { + "message": "Նոր զտիչի բաժանորդագրություն" + }, + "options_popup_url_placeholder": { + "message": "Մուտքագրեք URL կամ ֆայլի ուղին" + }, + "options_popup_next_button": { + "message": "Հաջորդը" + }, + "options_popup_checking_filter": { + "message": "Ստուգվում է ձեր զտիչը" + }, + "options_popup_check_false_title": { + "message": "Սխալ" + }, + "options_popup_check_false_description": { + "message": "Սխալ է ձեր մաքսային ֆիլտրը ավելացնելիս:" + }, + "options_add_custom_filter_modal_title": { + "message": "Ավելացնել հարմարեցված զտիչ" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Աղբյուրի ձեր ֆիլտրը ստուգվում է..." + }, + "options_add_custom_filter_modal_error_title": { + "message": "Կարգավորումները հաշվի առնել" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Խնդրում ենք կրկին փորձել կամ կապվել աջակցման ծառայության հետ" + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL-ը վերադարձրեց վեբ էջ ֆիլտրերի ցուցակի փոխարեն։ Խնդրում ենք տրամադրել ֆիլտրի ֆայլի ուղիղ հղում։" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Ավելացնել" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Իմ զտիչի անունը:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Վստահված" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Զտիչի որոշ կանոններ կարող են զգալիորեն փոխել ձեր զննարկման փորձը և վտանգել ձեր գաղտնիությունը: Համոզվեք, որ օգտագործում եք զտիչներ միայն այն մշակողների կողմից, որոնց վստահում եք" + }, + "options_popup_try_again_button": { + "message": "Կրկին փորձեք" + }, + "options_popup_filter_title": { + "message": "Վերնագիր:" + }, + "options_popup_filter_description": { + "message": "Նկարագրություն՝" + }, + "options_popup_filter_version": { + "message": "Տարբերակ՝" + }, + "options_popup_filter_rules_count": { + "message": "Կանոնների հաշվարկ." + }, + "options_popup_filter_homepage": { + "message": "Գլխավոր էջ" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_subscribe_button": { + "message": "Բաժանորդագրվել" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "description": { + "message": "Անգերազանցելի ընդլայնում՝ ընդդեմ գովազդի և ելնող պատուհանների: Արգելափակում է գովազդները Facebook-ում, Youtube-ում և այլ կայքերում.", + "description": "TEXT MAX LENGTH: 132" + }, + "popup_tooltip_protection_enabled": { + "message": "Պաշտպանությունը միացված է" + }, + "popup_tooltip_protection_disabled": { + "message": "Պաշտպանությունը անջատված է:" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Որոշ կանոններ չեն կիրառվել" + }, + "popup_tooltip_update_available": { + "message": "Թարմացումը հասանելի է" + }, + "popup_tooltip_loading": { + "message": "Բեռնում է..." + }, + "background_tab_title": { + "message": "Հետեւի թաբ" + }, + "options_allowlist": { + "message": "Թույլատրեք ցուցակը" + }, + "options_allowlist_desc": { + "message": "AdGuard-ը չի արգելափակում մարքեթինգի հայտարարություններն ու հետևորդները ցուցակի վրա կայքերում" + }, + "options_allowlist_invert": { + "message": "Շրջել թույլտվությունների ցանկը" + }, + "options_allowlist_invert_desc": { + "message": "Արգելափակում է մարքեթինգի հայտարարությունները և հետևորդներին միայն ցուցակում գտնվող կայքերում" + }, + "options_allowlist_alert_invert": { + "message": "Թույլատրելի ցուցակը հակառակ է։ Մարքեթինգի հայտարարությունները արգելափակվում են միայն այն կայքերում, որոնք ավելացված են դրան։" + }, + "options_allowlist_alert_invert_stop": { + "message": "Դադարեցնել հակադարձումը" + }, + "options_allowlist_leave_subtitle": { + "message": "Դուք կորցնելու եք Ձեր փոփոխությունները թույլատրելի ցուցակում" + }, + "options_allowlist_invalid_entries": { + "message": "Պահպանելու համար թողեք միայն տիրույթներ կամ URL-ներ։ Սրանք պետք է ուղղել՝ %entries%" + }, + "options_userfilter": { + "message": "Օգտվողի զտիչ" + }, + "filtering_log_modified_rules": { + "message": "Փոփոխված կանոններ. %rules_count%" + }, + "filtering_log_stealth_rules": { + "message": "Գտելու պաշտպանման կանոններ. %rules_count%" + }, + "filtering_log_privacy_applied_rules": { + "message": "Գտացող պաշտպանության կիրառված է" + }, + "filtering_log_in_allowlist": { + "message": "Կայքը թույլատրված է" + }, + "filtering_log_hide_referrer": { + "message": "Referer-ը թաքցված է երրորդ կողմից" + }, + "filtering_log_hide_search_queries": { + "message": "Ձեր որոնման հարցումները թաքնված են" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data գլուխը հեռացվել է" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track-ի գլխամասը ուղարկվել է" + }, + "options_select_update_period_default": { + "message": "Հիմնական" + }, + "options_select_update_period_48h": { + "message": "48 ժամ" + }, + "options_select_update_period_24h": { + "message": "24 ժամ" + }, + "options_select_update_period_12h": { + "message": "12 ժամ" + }, + "options_select_update_period_6h": { + "message": "6 ժամ" + }, + "options_select_update_period_1h": { + "message": "1 ժամ" + }, + "options_select_update_period_disabled": { + "message": "Անջատված" + }, + "options_filters": { + "message": "Զտիչներ" + }, + "options_antibanner_rules_count": { + "message": "Կանոններ՝ %rules_count%" + }, + "options_antibanner_updated": { + "message": "Թարմացվել է: %date%" + }, + "options_filters_last_checked": { + "message": "Վերջին ստուգումը՝ %date%" + }, + "options_antibanner_custom_group": { + "message": "Ընտրված" + }, + "options_antibanner_custom_group_description": { + "message": "Թույլ է տալիս ավելացնել ֆիլտրեր ֆայլից կամ URL-ից" + }, + "options_filters_enabled_per_group": { + "message": "Միացված: %current% %total%-ից" + }, + "options_filters_enabled": { + "message": "Միացված:" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% և %more% ավելի" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% և %last%" + }, + "options_filters_no_enabled": { + "message": "Ոչ մի ֆիլտր չի մեկացված" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Դուք նախընտրեցիք վստահել այս ֆիլտրին:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Ընդհանուր կանոններ. %num%" + }, + "options_add_custom_filter": { + "message": "Ավելացնել հարմարեցված զտիչ" + }, + "options_empty_custom_filter": { + "message": "Դուք դեռ չունեք որեւէ մաքսային ֆիլտր" + }, + "options_loader_applying_changes": { + "message": "Փոփոխությունների գործադրում..." + }, + "options_editor_indicator_saving": { + "message": "Պահվում է..." + }, + "options_editor_indicator_saved": { + "message": "Պահպանված է" + }, + "options_editor_save_error": { + "message": "Չհաջողվեց պահպանել փոփոխությունները։ Փորձեք նորից կամ կապվել աջակցությանը" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Այս կարգավիճակի ֆայլը ներբեռնելու համար թույլ տվեք AdGuard-ին փոխել ձեր գաղտնիությանը վերաբերող կարգավորումները։" + }, + "options_popup_import_success_title": { + "message": "Ապահովեք ձեր փոփոխությունները հաջողությամբ ներմուծվեցին" + }, + "options_popup_import_error_title": { + "message": "Հնարավոր չէ ներմուծել կարգավորումները" + }, + "options_popup_import_error_file_description": { + "message": "Սխալ առաջացավ։" + }, + "options_popup_trusted_filter_title": { + "message": "Վստահված" + }, + "options_popup_trusted_filter_description": { + "message": "Վստահելի ֆիլտրերը կարող են օգտագործել հզոր ֆիլտրի կանոնների փոփոխիչներ, որոնք կարող են վտանգավոր լինել, եթե դրանք ոչ պատշաճ կերպով օգտագործվեն: Մի ստուգեք այս տուփը, քանի դեռ լիովին չեք վստահում դրան։" + }, + "popup_site_filtering_state_secure_page": { + "message": "Ապահով էջ" + }, + "popup_site_filtering_state_loading": { + "message": "Բեռնում է..." + }, + "popup_site_filtering_state_enabling": { + "message": "Միացնել պաշտպանությունը..." + }, + "popup_site_filtering_state_enabled": { + "message": "Պաշտպանությունը ակտիվ է" + }, + "popup_site_filtering_state_disabling": { + "message": "Անջատել պաշտպանությունը..." + }, + "popup_site_filtering_state_disabled": { + "message": "Պաշտպանությունն անջատված է" + }, + "popup_site_filtering_state_pausing": { + "message": "Դադարեցնել պաշտպանությունը..." + }, + "popup_site_filtering_state_paused": { + "message": "Պաշտպանությունը դադարեցված է" + }, + "popup_site_filtering_state_resuming": { + "message": "Վերականգնել պաշտպանությունը..." + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "բոլոր կայքերի համար" + }, + "popup_site_exception_information": { + "message": "Զտիչը անջատված է, քանի որ դա կարող է խոչընդոտել այս կայքի աշխատանքին։" + }, + "popup_tab_current_website": { + "message": "Ընթացիկ կայքը" + }, + "popup_tab_blocked_count": { + "message": "Արգելափակված. %num%" + }, + "popup_tab_blocked_all_count": { + "message": "Ընդհանուր արգելված: %num%" + }, + "popup_statistics_total": { + "message": "Ընդամենը" + }, + "popup_statistics_category_label": { + "message": "Վիճակագրության կատեգորիա" + }, + "popup_statistics_all_categories": { + "message": "All" + }, + "popup_statistics_category_advertising": { + "message": "Գովազդներ" + }, + "popup_statistics_category_trackers": { + "message": "Հետագծումներ" + }, + "popup_statistics_category_social_media": { + "message": "Սոցիալական մեդիա" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_other": { + "message": "Այլ" + }, + "popup_statistics_week_days_mon": { + "message": "Երկ" + }, + "popup_statistics_week_days_tue": { + "message": "Երք" + }, + "popup_statistics_week_days_wed": { + "message": "Չրք" + }, + "popup_statistics_week_days_thu": { + "message": "Հինգշ" + }, + "popup_statistics_week_days_fri": { + "message": "Ուրբ" + }, + "popup_statistics_week_days_sat": { + "message": "Շաբ" + }, + "popup_statistics_week_days_sun": { + "message": "Ակն" + }, + "popup_statistics_months_jan": { + "message": "հուն" + }, + "popup_statistics_months_feb": { + "message": "փետր" + }, + "popup_statistics_months_mar": { + "message": "Մարտ" + }, + "popup_statistics_months_apr": { + "message": "Ապր" + }, + "popup_statistics_months_may": { + "message": "Մայիս" + }, + "popup_statistics_months_jun": { + "message": "հուն" + }, + "popup_statistics_months_jul": { + "message": "հուլ" + }, + "popup_statistics_months_aug": { + "message": "Օգս" + }, + "popup_statistics_months_sep": { + "message": "Սեպ" + }, + "popup_statistics_months_oct": { + "message": "Հոկ" + }, + "popup_statistics_months_nov": { + "message": "Նոյ" + }, + "popup_statistics_months_dec": { + "message": "Դեկտ" + }, + "options_popup_updating_filters": { + "message": "Ֆիլտրերի թարմացում..." + }, + "options_popup_update_title_error": { + "message": "Խնդիր թարմացնելու ֆիլտրերը" + }, + "options_popup_update_not_found": { + "message": "Ձեր ֆիլտրերը արդիական են" + }, + "options_popup_update_error": { + "message": "Հնարավոր չեղավ ստանալ թարմացում: Խնդրում ենք կրկին փորձել:" + }, + "options_popup_update_filter": { + "message": "թարմացվել է:" + }, + "options_popup_update_filters": { + "message": "թարմացվել են։" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard հավելվածը թարմացված է %current_version% տարբերակին" + }, + "options_popup_version_update_description_minor": { + "message": "Այս տարբերակը հիմնականում պարունակում է բնօրինակների ուղղումներ և փոքր բարելավումներ։" + }, + "options_popup_version_update_description_major": { + "message": "Այս մեծ հասաձայնության վերափոխումը ավելացնում է բազմաթիվ նոր հատկություններ և բարելավումներ։" + }, + "options_popup_version_update_changelog_text": { + "message": "Այս տարբերակում ինչ նորություններ կան:" + }, + "options_popup_version_update_offer": { + "message": "Դուք գիտե՞ք, որ AdGuard-ի հնարավորությունները սահմանափակված չեն այս զննարկչով:" + }, + "options_popup_version_update_offer_button_text": { + "message": "Իմանալ ավելին" + }, + "popup_block_site_ads_option": { + "message": "Արգելափակել գովազդը ձեռքով" + }, + "popup_security_report": { + "message": "Կայքի անվտանգության զեկույց" + }, + "popup_reset_page_user_rules": { + "message": "Հեռացնել օգտվողի կանոնները այս կայքի համար" + }, + "popup_open_settings": { + "message": "Բացել AdGuard-ի կարգավորումները" + }, + "popup_protection_button": { + "message": "AdGuard պաշտպանություն" + }, + "context_block_site_ads": { + "message": "Մանուալ՝ արգելափակեք գովազդները" + }, + "context_security_report": { + "message": "Կայքի անվտանգության զեկույց" + }, + "context_complaint_website": { + "message": "Հաղորդել թողարկման մասին" + }, + "context_site_filtering_disabled": { + "message": "AdGuard չի կարող ֆիլտրել այս էջը" + }, + "context_disable_protection": { + "message": "Դադարեցնել AdGuard-ի պաշտպանությունը" + }, + "context_enable_protection": { + "message": "Շարունակել AdGuard-ի պաշտպանությունը" + }, + "context_site_protection_disabled": { + "message": "AdGuard-ի պաշտպանությունը դադարեցված է" + }, + "context_open_settings": { + "message": "AdGuard-ի կարգավորումներ" + }, + "context_open_log": { + "message": "Բացել զտման մատյանը" + }, + "context_site_exception": { + "message": "Կայքը բացառություններից է" + }, + "context_site_filtering_on": { + "message": "Միացնել զտումը այս կայքում" + }, + "context_site_filtering_off": { + "message": "Անջատել զտումը այս կայքում" + }, + "context_update_antibanner_filters": { + "message": "Ստուգել զտիչի թարմացումները" + }, + "alert_popup_filter_enabled_title": { + "message": "Զտիչների ինքնաակտիվացում" + }, + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% ինքնաբերաբար ակտիվացված է:" + }, + "filters_download_title": { + "message": "Զտիչների շտեմարանը բեռնվում է..." + }, + "filters_download_loading": { + "message": "Սպասեք, մինչև զտիչների շտեմարանը կբեռնվի..." + }, + "post_install_loading": { + "message": "Ներբեռնում է լայնեցումը..." + }, + "filtering_modal_element": { + "message": "Էլեմենտ:" + }, + "filtering_modal_cookie": { + "message": "Թխուկներ:" + }, + "filtering_modal_important": { + "message": "Բարձր առաջնահերթություն տալ կանոնին" + }, + "filtering_log_title": { + "message": "Զտիչների մատյան" + }, + "filtering_log_search_string": { + "message": "Որոնում" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Որոնել ներդրումների մեջ" + }, + "filtering_log_preserve_log_off": { + "message": "Մանրամասն գրանցամատյան չկա" + }, + "filtering_log_preserve_log_on": { + "message": "Պահպանել գրանցամատյանը" + }, + "filtering_refresh_tab_short": { + "message": "Թարմացնել" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Թարմացնել էջ" + }, + "filtering_menu_open_filters": { + "message": "Customize" + }, + "filtering_clear_log_events": { + "message": "Մաքրել մատյանը" + }, + "filtering_log_actions_menu": { + "message": "Ֆիլտրման գրանցամատյան գործողություններ" + }, + "filtering_type_all": { + "message": "Բոլորը" + }, + "filtering_type_other": { + "message": "Այլ" + }, + "filtering_table_status": { + "message": "Վիճակ" + }, + "filtering_table_type": { + "message": "Տեսակ" + }, + "filtering_table_rule": { + "message": "Զտիչի կանոն" + }, + "filtering_table_source": { + "message": "Աղբյուր" + }, + "filtering_table_filter": { + "message": "Զտիչ" + }, + "filtering_table_action": { + "message": "Գործողություն" + }, + "filtering_table_open_details": { + "message": "Բացել մանրամասները" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ոչինչ չի գտնվել։ Անջատել ֆիլտրերը կամ թարմացնել էջը՝ գրանցամատյան գրառումները տեսնելու համար" + }, + "filtering_modal_info_title": { + "message": "Հարցման մանրամասներ" + }, + "filtering_modal_preview_title": { + "message": "Preview" + }, + "filtering_modal_type": { + "message": "Տեսակ" + }, + "filtering_modal_source": { + "message": "Աղբյուր" + }, + "filtering_modal_rule": { + "message": "Կանոն." + }, + "filtering_modal_rules": { + "message": "Կանոններ." + }, + "filtering_modal_privacy": { + "message": "Հետևելու պաշտպանություն" + }, + "filtering_modal_filter": { + "message": "Զտիչ" + }, + "filtering_modal_block": { + "message": "Արգելափակել" + }, + "filtering_modal_block_again": { + "message": "Նորից արգելափակել" + }, + "filtering_modal_unblock": { + "message": "Ապաարգելափակել" + }, + "filtering_modal_remove_user": { + "message": "Ջնջել կանոնը" + }, + "filtering_modal_preview_request_button": { + "message": "Preview" + }, + "filtering_modal_remove_allowlist": { + "message": "Հեռացնել թույլատրվող ցուցակից" + }, + "filtering_modal_block_title": { + "message": "Ավելացնել արգելակող կանոն" + }, + "filtering_modal_allow_title": { + "message": "Ավելացնել թույլատրող կանոնը" + }, + "filtering_modal_status_text_desc": { + "message": "Կարգավիճակ" + }, + "filtering_modal_status_text_error": { + "message": "Նախնական դիտումը համալրել հնարավոր չէ։ Խնդրում ենք կրկին փորձել" + }, + "filtering_modal_status_text_loading": { + "message": "Բեռնում է..." + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Ֆիլտրացման վիճակ" + }, + "filtering_modal_rule_text_desc": { + "message": "Կանոն" + }, + "filtering_modal_patterns_desc_block": { + "message": "Ի՞նչ պետք է արգելվի" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Ի՞նչ պետք է թույլատրվի" + }, + "filtering_modal_options_desc": { + "message": "Ընտրանքներ" + }, + "filtering_modal_apply_domains": { + "message": "Դիմել բոլոր կայքերին" + }, + "filtering_modal_third_party": { + "message": "Կիրառել միայն երրորդ կողմի հարցումներին" + }, + "filtering_modal_remove_param": { + "message": "Հեռացնել հարցման պարամետրերը" + }, + "filtering_modal_add_rule": { + "message": "Ավելացնել" + }, + "filtering_modal_exception_title": { + "message": "Բացառության հավելում" + }, + "filtering_modal_open_in_new_tab": { + "message": "Բացել նոր ներդիրում" + }, + "filtering_modal_show_full_url": { + "message": "Ցուցադրել ամբողջ URL" + }, + "filtering_modal_hide_full_url": { + "message": "Թաքցնել ամբողջ URL" + }, + "filtering_modal_show_full_rule": { + "message": "Ցուցադրել ամբողջական կանոն" + }, + "filtering_modal_hide_full_rule": { + "message": "Թաքցնել ամբողջական կանոն" + }, + "filtering_modal_show_full_element": { + "message": "Ցույց տալ ամբողջ տարր" + }, + "filtering_modal_hide_full_element": { + "message": "Թաքցնել ամբողջական տարր" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Պատճենել" + }, + "filtering_modal_copied": { + "message": "Պատճենվել է" + }, + "filtering_modal_converted_to": { + "message": "Անցեց:" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_allowed": { + "message": "Սպիտակ ցուցակ" + }, + "filtering_log_filter_blocked": { + "message": "Արգելափակված" + }, + "filtering_log_filter_modified": { + "message": "Modified" + }, + "filtering_log_filter_user_rules": { + "message": "Օգտագործողի ֆիլտր" + }, + "filtering_log_status_processed": { + "message": "Ընթանում է" + }, + "filtering_log_status_allowed": { + "message": "Սպիտակ ցուցակ" + }, + "filtering_log_status_blocked": { + "message": "Արգելափակված" + }, + "filtering_log_status_modified": { + "message": "Modified" + }, + "options_skip_to_main_content": { + "message": "Անցնել հիմնական բովանդակությանը" + }, + "options_navigation": { + "message": "Նավիգացիա" + }, + "options_settings": { + "message": "AdGuard-ի կարգավորումներ" + }, + "options_general_settings": { + "message": "Գլխավոր կարգավորումներ" + }, + "options_block_acceptable_ads": { + "message": "Արգելափակել որոնման մարքեթինգի հայտարարություններն և կայքի ինքնագովազդը" + }, + "options_block_acceptable_ads_desc": { + "message": "Արգելափակում է մարքեթինգի հայտարարությունները որոնման արդյունքներում և կայքերի ինքնագովազդը։ Իմանալ ավելին" + }, + "options_show_blocked_ads_count_title": { + "message": "Ցուցադրել արգելափակված գովազդների քանակը AdGuard-ի ընդլայնման պատկերակում" + }, + "options_enable_autodetect_filter": { + "message": "Ակտիվացնել առավել համապատասխանող զտիչները ինքնաբար" + }, + "options_enable_autodetect_filter_desc": { + "message": "Նախշում է կայքի լեզուն և ակտիվացնում համապատասխան ֆիլտրեր" + }, + "options_select_theme": { + "message": "Ֆոն" + }, + "options_theme_selector_system": { + "message": "Համակարգի լռելյայն" + }, + "options_theme_selector_light": { + "message": "Բաց ֆոն" + }, + "options_theme_selector_dark": { + "message": "Մութ ֆոն" + }, + "options_export_settings": { + "message": "Արտահանել կարգավորումները" + }, + "options_share_settings": { + "message": "Հանձնարարված կարգավորումներ" + }, + "options_import_settings": { + "message": "Ներմուծել կարգավորումները" + }, + "options_report_bug": { + "message": "Հաղորդել սխալի մասին" + }, + "options_leave_feedback": { + "message": "Թողնել կարծիք" + }, + "options_privacy": { + "message": "Հետևելու պաշտպանություն" + }, + "options_update_antibanner_filters": { + "message": "Ստուգել զտիչի թարմացումները" + }, + "options_check_update_progress": { + "message": "Ստուգում..." + }, + "options_set_update_interval": { + "message": "Ավտոմատ թարմացման ֆիլտր" + }, + "options_set_update_interval_desc": { + "message": "Ֆիլտրերը պահպանում են արդիականությունը ավելի արդյունավետ մարքեթինգի հայտարարությունների արգելափակման համար" + }, + "options_userfilter_export": { + "message": "Արտահանել" + }, + "options_editor_save": { + "message": "Պահպանել" + }, + "options_editor_leave_title": { + "message": "Հեռանալ առանց պահպանելու՞:" + }, + "options_editor_leave_confirm": { + "message": "Այո, եղեք" + }, + "options_editor_leave_cancel": { + "message": "Վերադառնալ խմբագրման" + }, + "options_userfilter_import": { + "message": "Ներմուծել" + }, + "options_user_rules_delete_all": { + "message": "Ջնջել բոլորին" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Ջնջել բոլորը՞:" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Բոլոր օգտվողի կանոնները մշտապես կջնջվեն" + }, + "options_user_rules_delete_all_success": { + "message": "Բոլոր օգտվողի կանոնները ջնջվել են" + }, + "options_user_rules_import_success": { + "message": "Օգտագործողի կանոնները հաջողությամբ ներմուծվել են" + }, + "options_user_rules_import_error": { + "message": "Չհաջողվեց ներմուծել օգտատիրոջ կանոնները։ Խնդրում ենք կրկին փորձել" + }, + "options_user_rules_menu": { + "message": "Օգտատիրոջ կանոնների գործողություններ" + }, + "options_allowlist_menu": { + "message": "Թույլատրելի ցուցակի գործողություններ" + }, + "options_userfilter_description_key": { + "message": "Կարող եք հավելել Ձեր կանոնները այստեղ։ Այս ընտրանքը խորհուրդ է տրվում միայն հմուտ օգտվողներին, որոնք ծանոթ են HTML/CSS-ին։ Կարդացեք զտիչի կանոնների ձեռնարկը՝ իմանալու, թե ինչպես գրել Ձեր սեփական զտիչի կանոնները։" + }, + "options_userfilter_subtitle_key": { + "message": "Թույլ է տալիս ավելացնել ձեր սեփական զտման կանոնները" + }, + "options_user_rules_description_key": { + "message": "Ձեր կանոնները մարքեթինգի հայտարարությունների կամ ամբողջ կայքերի արգելափակման և ապարգելափակման համար" + }, + "options_user_rules_empty_placeholder": { + "message": "Կանոններ դեռ չեն ավելացվել" + }, + "options_user_rules_search_placeholder": { + "message": "Որոնում" + }, + "options_user_rules_clear_search": { + "message": "Մաքրել որոնումը" + }, + "options_user_rules_create_rule": { + "message": "Ստեղծել կանոնը" + }, + "options_user_rules_edit_rule": { + "message": "Խմբագրել կանոնը" + }, + "options_user_rules_delete_rule": { + "message": "Ջնջել կանոնը" + }, + "options_user_rules_deleted_notification": { + "message": "Օգտվողի կանոնը ջնջվել է:" + }, + "options_user_rules_undo": { + "message": "Հետարկել" + }, + "options_user_rules_no_match": { + "message": "Ոչինչ չի գտնվել" + }, + "options_user_rules_switch_to_editor": { + "message": "Անցնել խմբագրիչի տեսքին" + }, + "options_user_rules_switch_to_list": { + "message": "Անցնել ցուցակի տեսքին" + }, + "options_user_rules_highlight_loading": { + "message": "Կանոնների ընդգծում…", + "description": "Shown in the user rules list while syntax highlighting initializes." + }, + "options_userfilter_line_break": { + "message": "Տողը կոտրել" + }, + "options_userfilter_line_break_off": { + "message": "Տողերի բաժանում: Անջատված" + }, + "options_userfilter_line_break_on": { + "message": "Տողերի բաժանում:onor" + }, + "options_userfilter_leave_subtitle": { + "message": "Քո փոփոխությունները կանոններին կկորցվեն" + }, + "options_open_changelog": { + "message": "Փոփոխություններ" + }, + "options_safebrowsing_enabled": { + "message": "Պաշտպանություն որսումից և վնասագրերից" + }, + "options_safebrowsing_enabled_desc": { + "message": "Բացի չարամիտ և ֆիշինգ կայքերից, օգտագործում է AdGuard Զննեք անվտանգությունը մոդուլը: Իմանալ ավելին" + }, + "options_site": { + "message": "Պաշտոնական կայք" + }, + "options_discuss": { + "message": "Խմբագրել AdGuard" + }, + "options_do_you_like_question": { + "message": "Դուք հավանեցի՞ք AdGuard-ը:" + }, + "options_rate_us_cta": { + "message": "Գնահատեք դա" + }, + "options_miscellaneous_settings": { + "message": "Լրացուցիչ կարգավորումներ" + }, + "options_rule_syntax": { + "message": "Կանոնների շարահյուսություն" + }, + "options_rule_limits": { + "message": "Կանոնների սահմանները" + }, + "options_rule_limits_description": { + "message": "Chrome-ը սահմանափակում է կիրառելի կանոնների քանակը" + }, + "options_rule_limits_dynamic": { + "message": "Dynamic rules" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Օգտագործող-ավելացված կանոններ, օրինակ՝ Օգտագործողի կանոններ, Թույլատրված կայքեր, Անձնական Ֆիլտրեր" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Օգտագործող-ավելացված կանոններ, օրինակ՝ օգտատերի կանոններ եւ թույլատրված կայքեր" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Անվտանգ չէ դինամիկ կանոններ (օգտագործված որոշ avanz մարդիկ, օրինակ՝ $$redirect կամ $$cookie) — ներառված է օգտվող-ավելացված կանոններում" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex կանոնները — ներառված են օգտվող-ավելացված կանոններում" + }, + "options_rule_limits_static_rulesets": { + "message": "Ստատիկ կանոնակարգեր" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "Ներառված ֆիլտրեր, օրինակ՝ արգելել ձանձրացնելները կամ լեզվապետական ֆիլտրերը" + }, + "options_rule_limits_static_rules": { + "message": "Ստատիկ կանոններ" + }, + "options_rule_limits_static_rules_all": { + "message": "Правила от вградените филтри" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex կանոնները — ներառված են վերը նշվածում" + }, + "options_rule_limits_numbers": { + "message": "%current% / %maximum%" + }, + "options_rule_limits_warning_title": { + "message": "Բրաուզերը փոփոխել է ակտիվ ֆիլտրերի ցուցակը" + }, + "options_rule_limits_warning_explanation_title": { + "message": "Ի՞նչ է պատահել։" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Ակտիվ կառուցված կանոնների սահմանը գերազանցվել է թարմացումից կամ նոր ընդլայնում ավելացնելուց հետո։ Մասնավորապես Manifest V3-ի համաձայն, ձեր Chrome բրաուզերը արձագանքեց՝ անջատելով ընդլայնողի բոլոր կառուցված ֆիլտրերը, բացառությամբ ինքնաբերաբար ընտրածների:" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Զտիչները միացված են թարմացումից առաջ" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Ֆիլտրերը գործող են այժմ" + }, + "options_rule_limits_warning_actions_title": { + "message": "Ձեր հնարավոր գործողությունները" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Ընտրություն 1: Խնդրում ենք հեռացնել անփորձ \"գովազդ արգելափակման\" ընդարձակումը ձեր բրաուզերից: Վերականգնելու համար վերականգնել ֆիլտրերը:" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Ընտրություն 2: Տեղադրեք AdGuard Ad Blocker հավելվածը՝ այն չունի ֆիլտրացման կանոնների սահմանափակումներ։ Ստեղծեք AdGuard հավելվածը" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Տվյալ 3։ Եթե Դուք գոհ եք ներկայիս ակտիվ ֆիլտրից, փակեք այս զգուշացումը:" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Տվյալ 3։ Եթե Դուք գոհ եք ներկայիս ակտիվ ֆիլտրերից, փակեք այս զգուշացումը:" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Սահմանը հասել է — որոշ ֆիլտրներ անջատվել են" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Ահա ինչ կարող եք անել" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Հեռացնել այլ գովազդի արգելափակիչներ" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Դիտարկիչի ընդլայնումները կիսում են նույն կանոնների սահմանը։ Այլ գովազդի արգելափակիչների հեռացումը կարող է ազատել ավելի շատ կանոններ AdGuard դիտարկչի ընդլայնման համար" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Կառավարել ընդլայնումները" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Դիտարկել հասանելի ֆիլտրները" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Միացրեք ձեզ անհրաժեշտ ֆիլտրները։ Լեզվական և գաղտնիության ֆիլտրները կարող են օգտագործել շատ կանոններ" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Գնալ ֆիլտրներ" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Տեղադրել աշխատասեղանի հավելվածը" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Հեռացրեք կանոնի սահմանափակումները և ստացեք Ընդլայնված պաշտպանություն, որը գործում է բոլոր դիտարկիչներում" + }, + "options_all_limits_exceeded_warning": { + "message": "Դուք հասել եք ակտիվ տեղադրված օրենքների սահմանին։ Ձեր բրաուզերը փոփոխել է ակտիվ տեղադրված ֆիլտրերի ցուցակը։ Ֆիլտրերի թիվը, որոնք հնարավորինս ապահովել են, փոփոխվել է %expected% -ից %current% -ի:" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Դուք հասել եք ձեր դիտարկչի ակտիվ ներառված կանոնների սահմանին: Ձեր դիտարկիչը կրճատել է ակտիվ ընդգրկված ֆիլտրերի ցուցակը %expected%-ից մինչև %current%-ը" + }, + "options_limits_warning_static_filters": { + "message": "Դուք հասել եք ակտիվ ներառված ֆիլտրերի սահմանափակմանը։ %maximum% -ից %current% ֆիլտրերն ակտիվացված են։ Նոր կանոնները ակտիվացնելու համար, անջատեք որոշ ներառված ֆիլտրեր։" + }, + "options_limits_warning_static_filters_browser": { + "message": "Դուք հասել եք ձեր դիտարկչի ակտիվ ներառված ֆիլտրերի սահմանին: %maximum%-ից %current% ֆիլտրերը միացված են: Նոր ֆիլտրեր ակտիվացնելու համար անջատեք որոշ ներառվածները" + }, + "options_limits_warning_static_rules": { + "message": "Դուք հասել եք ակտիվ ներառված կանոնների սահմանափակմանը։ %maximum% -ից %current% կանոններն ակտիվացված են։ Նոր կանոնները ակտիվացնելու համար, անջատեք որոշ ներառված ֆիլտրեր։" + }, + "options_limits_warning_static_rules_browser": { + "message": "Դուք հասել եք ձեր դիտարկչի ակտիվ ներսի կանոնների սահմանին։ Նոր կանոններ ակտիվացնելու համար անջատեք որոշ ներառված ֆիլտրեր" + }, + "options_limits_warning_static_regex_rules": { + "message": "Դուք հասել եք ակտիվ ներառված regex կանոնների սահմանափակմանը։ %maximum% -ից %current% regex կանոններն ակտիվացված են։ Նոր կանոնները ակտիվացնելու համար, անջատեք որոշ ներառված ֆիլտրեր։" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Դուք հասել եք ակտիվ ներառված regex կանոնների սահմանին։ Նոր կանոններ ակտիվացնելու համար անջատեք որոշ ներառված ֆիլտրեր" + }, + "options_limits_warning_dynamic_rules": { + "message": "Դուք հասել եք օգտվող-ավելացված կանոնների սահմանափակմանը։ %maximum% -ը %current% կանոններից է ակտիվ։" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Դուք հասել եք օգտատերերի ավելացված կանոնների սահմանին։ %maximum%-ն ակտիվ է %current%-ից։ Նոր կանոններ ավելացնելու համար ջնջեք որոշ գոյություն ունեցողները" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Դուք հասնեցիք օգտվողի ավելացված վտանգավոր կանոնների սահմանագծին։ %maximum% -ը %current% կարևոր կանոններից ակտիվացված է։" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Դուք հասել եք օգտվող-ավելացված regex կանոնների սահմանափակմանը։ %maximum% -ը %current% regex կանոններից է ակտիվ։" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Դուք հասել եք օգտատերերի ավելացված regex կանոնների սահմանին։ %maximum%-ն ակտիվ է %current%-ից։ Նոր regex կանոններ ավելացնելու համար ջնջեք որոշ գոյություն ունեցողները" + }, + "options_developer_mode_required": { + "message": "Ձեր դիտարկիչը սահմանափակում է որոշ տեսակների կանոններ: Բոլոր կանոնները դիմելու համար ձեր դիտարկչի ընդլայնման տեղադրվածում հնարավորություն տվեք Մշակողի ռեժիմը։", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_allow_user_scripts_required": { + "message": "Ձեր դիտարկիչը սահմանափակում է որոշ տեսակի կանոններ: Բոլոր կանոնները կիրառելու համար ձեր դիտարկչի ընդլայնման տեղադրվածում միացրեք Թույլատրել օգտատիրոջ սցենարներ անջատիչը", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_developer_mode_required": { + "message": "Հատուկ ֆիլտրեր օգտագործելու համար միացրեք Մշակողի ռեժիմը ձեր դիտարկիչի ընդլայնման կարգավորումներում", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_allow_user_scripts_required": { + "message": "Սովորույթ ֆիլտրեր օգտագործելու համար, հնարավորություն տվեք Թույլատրել օգտատեր սկրիպտներ ձեր դիտարկչի ընդլայնման տեղադրվածում։", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_show_adguard_full_version_title": { + "message": "Ցուցադրել տեղեկությունը AdGuard-ի ամբողջական տարբերակում" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Տվյալների օգտագործման բոլոր վիճակագրությունները կջնջվեն մշտապես" + }, + "options_show_app_updated_notification": { + "message": "Ծանուցեք ընդլայնումների թարմացումների մասին" + }, + "options_open_log": { + "message": "Զտիչների մատյան" + }, + "options_reset_stats": { + "message": "Մաքրել վիճակագրությունը" + }, + "options_reset_stats_done": { + "message": "Վիճակագրությունը վերակայված է" + }, + "options_reset_settings": { + "message": "Վերակայել կարգավորումները" + }, + "options_reset_settings_done": { + "message": "Կարգավորումները վերակայված են" + }, + "options_reset_settings_error": { + "message": "Սխալ ծրագրավորվել է, երբ վերակայել կարգավորումները" + }, + "options_collect_hit_stats_title": { + "message": "Ներդրվեք AdGuard-ի զտիչների մշակմանը" + }, + "options_collect_hit_stats_desc": { + "message": "Ուղարկում է անանուն վիճակագրություն մարքեթինգի զտիչների օգտագործման մասին AdGuard-ին։ Իմանալ ավելին" + }, + "options_show_context_menu_title": { + "message": "Հավելել AdGuard տարրը դիտարկիչի համատեքստային ցանկում" + }, + "options_use_optimized_filters": { + "message": "Կիրառեք օպտիմիզացված զտիչներ" + }, + "options_use_optimized_filters_desc": { + "message": "Օգտագործեք կարճացված տարբերակներ ֆիլտրերի, որոնք ունեն միայն ամենահայտնի կանոնները, որպեսզի խնայեք տրաֆիկ։ Ավելի լավ է նախատեսված մոբիլային դիտարկիչների համար" + }, + "options_privacy_title": { + "message": "Հետևելու պաշտպանություն" + }, + "options_privacy_desc": { + "message": "Պաշտպանում է ձեր առցանց գործունեությունը և անձնական տվյալները վեբ հետևողներից" + }, + "options_hide_referrer_title": { + "message": "Թաքցնել Referer-ը երրորդ կողմերից" + }, + "options_hide_referrer_desc": { + "message": "Մանավանդ չարժե երրորդ կողմերին իմանալ, թե որ կայք եք այցելում։" + }, + "options_hide_search_queries_title": { + "message": "Թաքցնել որոնման հարցումներ" + }, + "options_hide_search_queries_desc": { + "message": "Թաքցնում է ձեր որոնումները այն կայքերում, որոնք այցելվել են որոնողական համակարգի արդյունքների միջոցով" + }, + "options_send_not_track_title": { + "message": "Վեբ կայքերին խնդրեք ձեզ չհետեւել" + }, + "options_send_not_track_desc": { + "message": "Ուղարկել Գլոբալ գաղտնիության վերահսկում և Չեք վերահսկում ազդանշանները, որոնք այցելեք վեբ կայքերին" + }, + "options_stripped_tracking_parameters": { + "message": "Հետևելու պարամետրերը հեռացվել են" + }, + "options_modified_first_party_cookie": { + "message": "Առաջատիպի կուկին փոխվել է" + }, + "options_modified_third_party_cookie": { + "message": "Երրորդ կողմի կուկին փոխվել է" + }, + "options_remove_client_data_title": { + "message": "Հեռացնել X-Client-Data վերնագիրը" + }, + "options_remove_client_data_desc": { + "message": "Հակադարձեք Google Chrome- ի կողմից իր տարբերակի և փոփոխությունների մասին տեղեկությունների ուղարկմանը Google դոմեններին" + }, + "options_disable_webrtc_title": { + "message": "Արգելափակել WebRTC-ին" + }, + "options_disable_webrtc_desc": { + "message": "Արգելափակում է WebRTC, որը կարող է արտահոսք անել ձեր իրական IP հասցեն, նույնիսկ եթե օգտագործում եք proxy կամ VPN: Որոշ մեսենջերներ, հոսքային հարթակներ կամ խաղեր կարող են դադարեցնել ճիշտ աշխատանքը" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Կանխել IP հասցեի արտահոսքերը WebRTC-ի միջոցով" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Ստիպում է WebRTC-ին օգտագործել ավելի խիստ IP հասցեի քաղաքականություն՝ օգնելու թաքցնել ձեր իրական IP հասցեն, երբ օգտագործում եք պրոքսի կամ VPN" + }, + "options_strip_tracking_params_title": { + "message": "Հեռացնել հետևող պարամետրերը URL-ներից" + }, + "options_strip_tracking_params_description": { + "message": "Հեռացնում է հետևող պարամետրերը էջերի URL-ներից՝ օգտագործելով AdGuard URL Tracking ֆիլտր" + }, + "options_block_known_trackers_title": { + "message": "Արգելափակել հետագծողները" + }, + "options_block_known_trackers_description": { + "message": "Հակադարձեք հետևողներին և վեբ անալիտիկային՝ օգտագործելով AdGuard Tracking Protection ֆիլտր" + }, + "options_third_party_title": { + "message": "Ջնջել երրորդ կողմի cookies-ը" + }, + "options_third_party_desc": { + "message": "Կանխում է գովազդատուներին հետևել ձեր վարքագծին մի քանի էջերի ընթացքում՝ սահմանելով երրորդ կողմի թխուկների ժամանակը" + }, + "options_block_cookies_lifetime": { + "message": "Թխուկները արգելափակելու համար, նշանակեք կյանքի տևողությունը 0" + }, + "options_third_party_block_cookies_warning": { + "message": "Եթե դուք արգելափակեք այս թխվածքաբլիթները, Դուք ստիպված եք լինելու կրկին մուտք գործել որոշ կայքեր կամ հանդիպել այլ թխուկների խնդիրների" + }, + "options_lifetime_minutes": { + "message": "Ժամանակի տևողություն, րոպե" + }, + "options_first_party_title": { + "message": "Ցանկանում եք հեռացնել առաջին հատվածի կուևաները (չի խորհուրդ տրվում)​" + }, + "options_first_party_desc": { + "message": "Կանխում է կայքերին հիշել ձեր տվյալները, օրինակ՝ մուտքի լիազորագրերը և լեզվի նախընտրությունները՝ սահմանափակելով առաջին կողմի թխվածքաբլիթների կյանքի տևողությունը" + }, + "options_first_party_block_cookies_warning": { + "message": "Եթե դուք արգելափակեք այս թխվածքաբլիթները, որոշ կայքեր կարող են դուրս գալ աշխատանքից կամ դադարել աշխատել։" + }, + "options_anonymized_usage_data_title": { + "message": "Ուղարկել անանուն լայնացման օգտագործման տվյալներ" + }, + "options_anonymized_usage_data_description": { + "message": "Ուղարկում է անանուն վիճակագրություն ընդլայնման օգտագործման մասին AdGuard։ " + }, + "options_anonymized_usage_data_modal_title": { + "message": "Ընդարձակման օգտագործման տվյալներ" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Այս տվյալները ներառում են՝" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Էջերի անվանումներ, որոնց հետ Դուք շփվում եք" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Սեղմված կոճակների անուններ" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Նստաշրջանի նույնականացուցիչներ" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Մենք այս տեղեկությունները պետք է վերլուծենք և բարելավենք AdGuard-ի ֆունկցիոնալությունը" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Այս տվյալները անանուն են և օգտագործվում են միայն ներքին" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Հասկացա" + }, + "popup_abuse_site": { + "message": "Խնդրում ենք հայտնել խնդրի մասին" + }, + "popup_open_filtering_log": { + "message": "Բացել զտիչների մատյան" + }, + "popup_tabs": { + "message": "Վարկածներ" + }, + "popup_tab_actions": { + "message": "Գործողություններ" + }, + "popup_tab_statistics": { + "message": "Վիճակագրություն" + }, + "popup_statistics_time_label": { + "message": "Վիճակագրության ժամանակաշրջան" + }, + "popup_statistics_time_day": { + "message": "24 ժամ" + }, + "popup_statistics_time_week": { + "message": "7 օր" + }, + "popup_statistics_time_month": { + "message": "30 օր" + }, + "popup_statistics_time_year": { + "message": "1 տարի" + }, + "popup_switch_button": { + "message": "Պաշտպանություն ընթացիկ կայքի համար" + }, + "popup_limits_exceeded_warning": { + "message": "Ձեր բրաուզերը փոխել է ակտիվ ներմուծված ֆիլտրերի ցանկը" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard-ը չի կարող պայքարել նյարդայնացնող պաստառների, թռուցիկների և տեսահոլովակների հետ:" + }, + "short_name": { + "message": "AdGuard" + }, + "options_about": { + "message": "Ծրագրի մասին" + }, + "options_privacy_policy": { + "message": "Գաղտնիության քաղաքականություն" + }, + "options_acknowledgment": { + "message": "Շնորհակալություններ" + }, + "options_github": { + "message": "GitHub" + }, + "options_about_version": { + "message": "Տարբերակ՝" + }, + "options_about_update_available": { + "message": "Տարբերակ %version% հասանելի է։ Այն կըներբեռնվի և կտեղադրվի ավտոմատ կերպով։" + }, + "options_about_libs": { + "message": "Օգտագործված գրադարաններ" + }, + "options_copyright": { + "message": "Բոլոր իրավունքները պաշտպանված են։" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Հեռացնե՞լ այս զտիչը։" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Հեռացնել" + }, + "options_nav_better_than_extension": { + "message": "Ինչու՞ AdGuard ծրագիրը լավն է քան ընդլայնումը:" + }, + "options_nav_compare": { + "message": "Համեմատել" + }, + "options_desktop_app_promo_title": { + "message": "Ընդլայնումը պաշտպանում է միայն դիտարկիչը" + }, + "options_desktop_app_promo_description": { + "message": "Spotify, Discord կամ Zoom նման հավելվածները դեռ կարող են ցուցադրել մարքեթինգի հայտարարություններ և հետևել ձեր գործունեությանը" + }, + "options_desktop_app_promo_subdescription": { + "message": "Մեր աշխատասեղանի հավելվածը կարող է պաշտպանել ձեզ դրանցից" + }, + "options_desktop_app_promo_button_windows": { + "message": "Ստանալ AdGuard Windows-ի համար" + }, + "options_desktop_app_promo_button_mac": { + "message": "Ստանալ AdGuard Mac-ի համար" + }, + "options_desktop_app_promo_button_linux": { + "message": "Ստանալ AdGuard Linux-ի համար" + }, + "options_filters_search": { + "message": "Որոնում" + }, + "options_filters_search_filter": { + "message": "Զտիչի որոնում" + }, + "options_about_title": { + "message": "AdGuard զննարկչի երկարացում" + }, + "group_description_adblocking": { + "message": "Կոնֆիգուրացրեք գովազդների արգելումը այստեղ, որպեսզի վերջնականապես զբաղվեք նյարդային պաստառներով, թռուցիկներով, տեսանյութային գովազդներով և նման բաներով:" + }, + "group_description_stealth": { + "message": "Պաշտպանեք ձեր ինքնությունը և զգայուն անձնական տվյալները հազարավոր օնլայն հետևիչներից, արգելելով բոլոր հայտնի տարածված մեթոդները" + }, + "group_description_social": { + "message": "Կաքեք ցանկալի \"Like\"/\"Share\" կոճակները և այլ սոցիալական մեդիայի վիդջեթներ" + }, + "group_description_annoyances": { + "message": "Հեռացրեք պոպ-up պատուհանները և այլ անհանգիստ ծանուցումները, ինչպիսիք են կուքի ծանուցումները" + }, + "group_description_security": { + "message": "Կապպեկեք ինքներդ ձեզ վնասակար ծրագրերից, ֆիշինգից և այլ օնլայն վտանգներից" + }, + "group_description_miscellaneous": { + "message": "Ավելի շատ կարգավորումներ ձեր վեբ զննման համար AdGuard-ով" + }, + "group_description_custom": { + "message": "Ստեղծեք ձեր սեփական զտիչները, որ կարողանաք կատարյալ հարմարեցնել վեբ զտումը ձեր նախասիրություններին։" + }, + "group_description_lang": { + "message": "Մի սահմանափակեք ձեզ — արգելեք գովազդները ցանկացած լեզվով կայքերում" + }, + "fullscreen_user_rules_title": { + "message": "Օգտագործողի ֆիլտր" + }, + "options_user_rules_editor_stub_title": { + "message": "Խմբագիրն բացված է այլ պատուհանում" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Ձեր կանոնները այստեղ կհայտնվեն այն բանից հետո, երբ փակեք այն" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Գնալ խմբագրիչ" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Բացեք խմբագրիչը նոր պատուհանում" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Ելք անել պատուհանային ռեժիմից" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Մաքրել վիճակագրությունը:" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Մաքրել" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Վերակայել կարգավորումները:" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Բոլոր տեղադրվածները կվերագործարկվեն իրենց լռելյայն արժեքներին" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Վերակայել" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Հակադարձել թույլատրելի ցուցակը:" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Մարքեթինգի հայտարարություններն ու հետևորդները կարգելափակվեն միայն թույլատրությունների ցուցակի կայքերում" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Հակադարձել" + }, + "options_confirm_modal_cancel_button": { + "message": "Չեղարկել" + }, + "options_import_configuration_confirm_title": { + "message": "Ներմուծել կարգավորումները" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Ներմուծված տեղադրվածները կփոխարինեն ձեր ընթացիկ տեղադրվածները։ Այլ տեղադրվածները չեն ազդի" + }, + "options_import_configuration_confirm_button": { + "message": "Ներմուծել" + }, + "options_import_configuration_applying_title": { + "message": "Ներմուծվում է..." + }, + "options_import_configuration_applying_subtitle": { + "message": "Փոխարինելով ձեր նոր կարգավորումները ներմուծվածներով։ Ներմուծման ժամանակ ֆիլտրումը դադարեցված է" + }, + "options_import_configuration_success_title": { + "message": "Ամեն բան պատրաստ է" + }, + "options_import_configuration_success_subtitle": { + "message": "Կարգավորումները հաջողությամբ ներմուծվել են" + }, + "options_import_configuration_success_button": { + "message": "Փակել" + }, + "options_import_configuration_error_title": { + "message": "Չհաջողվեց ներմուծել կարգավորումները" + }, + "options_import_configuration_error_subtitle": { + "message": "Խնդրում ենք ստուգել ներմուծման հղումը և փորձել կրկին։ Եթե դա չի օգնում, կապնվեք աջակցությանը" + }, + "options_import_configuration_error_button": { + "message": "Փակել" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Գեղեցիկացնել" + }, + "filtering_log_details_modal_back_button": { + "message": "Վերադառնալ խնդրանքին" + }, + "filtering_log_details_modal_try_again": { + "message": "Կրկին փորձեք" + }, + "filtering_log_tag_request_source": { + "message": "Հայցի աղբյուրը" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Առաջին կողմի հարցումներ" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Երրորդ կողմի պահանջներ" + }, + "filtering_log_tag_request_status": { + "message": "Ֆիլտրացման վիճակ" + }, + "filtering_log_tag_tooltip_regular": { + "message": "Հարցումներ, որոնք մշակված են առանց ֆիլտրելու" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Թույլատրված և բացահայտված հարցումներ" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Արգելափակված հարցումներ" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Փոփոխված պահանջներ" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Հարցումներ, որոնք ազդել են օգտագործողի կանոններով" + }, + "filtering_log_tag_request_type": { + "message": "Հարցման տեսակ" + }, + "filtering_log_tag_tooltip_html": { + "message": "Փաստաթղթեր և ենթափաստաթղթեր" + }, + "filtering_log_tag_tooltip_css": { + "message": "Անջատիչներ" + }, + "filtering_log_tag_tooltip_js": { + "message": "Սկրիպթեր" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests և fetch հարցումներ" + }, + "filtering_log_tag_tooltip_img": { + "message": "Նկարներ" + }, + "filtering_log_tag_tooltip_media": { + "message": "Մեդիա" + }, + "filtering_log_tag_tooltip_other": { + "message": "Նշաններ, pings, WebRTC, WebSocket..." + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Երրորդ կողմի հարցում" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP հարցման մեթոդ" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP կարգավիճակի կոդ" + }, + "filtering_log_assumed_rule_description": { + "message": "Սա ենթադրյալ կանոն է: Անհրաժեշտ մանրամասների համար հայացք նետեք մեր Տեղեկատվական բազա" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Պահպանե՞լ գրանցամատյանը" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Այս տարբերակը կարող է զգալիորեն մեծացնել հիշողության օգտագործումը" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Դուք չցուցադրեք այլևս" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Այո, պահպանել" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_tracking_methods_title": { + "message": "Հետագծման եղանակներ" + }, + "options_stealth_miscellaneous_title": { + "message": "Խառը" + }, + "options_coming_soon": { + "message": "Շուտով" + }, + "blocking_pages_malware": { + "message": "Այս կայքէջը %host% արդեն արձանագրվել է որպես վնասակար և արգելափակվել է ձեր անվտանգության նախասիրությունների հիման վրա։" + }, + "blocking_pages_phishing": { + "message": "Այս կայքէջը %host% արձանագրվել է որպես կեղծ էջ եւ արդեն արգելափակվել է ձեր անվտանգության նախասիրությունների հիման վրա։" + }, + "blocking_pages_advanced_button": { + "message": "Ընդլայնված" + }, + "blocking_pages_more_info_button": { + "message": "Լրացուցիչ տեղեկություններ" + }, + "blocking_pages_page_title": { + "message": "Մուտքը արգելված է" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard-ը արգելափակել է մուտքը դեպի այս էջ" + }, + "blocking_pages_rule_header_title": { + "message": "Արգելափակված է AdGuard-ի կողմից" + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard-ը կանխել է այս էջը բեռնվելուց հետևյալ ֆիլտրի կանոնի պատճառով" + }, + "blocking_pages_btn_go_back": { + "message": "Վերադառնալ" + }, + "blocking_pages_btn_proceed": { + "message": "Ամեն դեպքում շարունակել" + }, + "text_collapser_show_default": { + "message": "Ցուցադրել ամբողջական տեքստ" + }, + "text_collapser_hide_default": { + "message": "Թաքցնել ամբողջական տեքստ" + }, + "close_button_title": { + "message": "Փակել" + }, + "clear_button_title": { + "message": "Մաքրել" + }, + "update_check": { + "message": "Ստուգել թարմացումները" + }, + "update_checking_in_progress": { + "message": "Ստուգում է թարմացումները..." + }, + "update_available_title": { + "message": "Հասանելի են թարմացումներ" + }, + "update_available_desc": { + "message": "Գովազդները արդյունավետ արգելափակելու համար թարմացրեք ձեր ընդլայնումն ու ֆիլտրերը" + }, + "update_available_update_btn": { + "message": "Թարմացնել" + }, + "update_installing_in_progress_title": { + "message": "Ընդլայնման և ֆիլտրերի թարմացում..." + }, + "update_installing_in_progress_desc": { + "message": "Ընդլայնումը կվերստարտվի թարմացումից հետո" + }, + "update_not_needed": { + "message": "Ձեր ընդլայնումը և ֆիլտրերը թարմացված են" + }, + "update_failed_text": { + "message": "Չհաջողվեց ավարտել թարմացումը" + }, + "update_success_text": { + "message": "Ընդլայնումը և ֆիլտրերը թարմացվեցին" + }, + "update_failed_try_again_btn": { + "message": "Կրկին փորձեք" + }, + "filtering_modal_applied_rules": { + "message": "Կիրառված կանոն | Կիրառված կանոններ", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_assumed_rules": { + "message": "Ենթադրյալ կանոն. | Ենթադրյալ կանոններ.", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_original_rules": { + "message": "Օրիգինալ կանոն. | Օրիգինալ կանոններ.", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_declarative_rule": { + "message": "ԴՆՌ կանոն:" + }, + "opera_search_permission_warning": { + "message": "Որոնման մարքեթինգի հայտարարությունները արգելափակելու համար թույլատրել հասանելիություն որոնման էջի արդյունքներին դիտարկչի տեղադրվածներում" + }, + "opera_search_permission_go_to_settings": { + "message": "Գնալ տեղադրված" + }, + "opera_search_permission_dont_show": { + "message": "Չափազանցման կոճակ" + } +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/id/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/id/messages.json new file mode 100644 index 0000000..ff5c2d3 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/id/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% telah diaktifkan secara otomatis." + }, + "alert_popup_filter_enabled_title": { + "message": "Aktivasi otomatis filter" + }, + "background_tab_title": { + "message": "Tab latar belakang" + }, + "blocking_pages_advanced_button": { + "message": "Tingkat Lanjut" + }, + "blocking_pages_btn_go_back": { + "message": "Kembali" + }, + "blocking_pages_btn_proceed": { + "message": "Tetap lanjutkan" + }, + "blocking_pages_malware": { + "message": "Halaman web di \u003Cstrong>%host%\u003C/strong> ini telah dilaporkan sebagai halaman malware dan telah diblokir berdasarkan preferensi keamanan Anda." + }, + "blocking_pages_more_info_button": { + "message": "Informasi lebih lanjut" + }, + "blocking_pages_page_title": { + "message": "Akses ditolak" + }, + "blocking_pages_phishing": { + "message": "Halaman web di \u003Cstrong>%host%\u003C/strong> ini telah dilaporkan sebagai halaman phishing dan telah diblokir berdasarkan preferensi keamanan Anda." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard telah mencegah pemuatan halaman ini karena aturan filter berikut" + }, + "blocking_pages_rule_header_title": { + "message": "Diblokir oleh AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard telah memblokir akses ke halaman ini" + }, + "clear_button_title": { + "message": "Hapus" + }, + "close_button_title": { + "message": "Tutup" + }, + "context_block_site_ads": { + "message": "Blokir iklan secara manual" + }, + "context_complaint_website": { + "message": "Lapor masalah" + }, + "context_disable_protection": { + "message": "Jeda perlindungan AdGuard" + }, + "context_enable_protection": { + "message": "Lanjutkan perlindungan AdGuard" + }, + "context_open_log": { + "message": "Catatan pemfilteran" + }, + "context_open_settings": { + "message": "Pengaturan AdGuard" + }, + "context_security_report": { + "message": "Periksa keamanan situs" + }, + "context_site_exception": { + "message": "Situs web ini termasuk dalam pengecualian" + }, + "context_site_filtering_disabled": { + "message": "AdGuard tidak dapat memfilter halaman ini" + }, + "context_site_filtering_off": { + "message": "Nonaktifkan pemfilteran pada situs web ini" + }, + "context_site_filtering_on": { + "message": "Aktifkan pemfilteran pada situs web ini" + }, + "context_site_protection_disabled": { + "message": "Perlindungan AdGuard sedang dijeda" + }, + "context_update_antibanner_filters": { + "message": "Periksa pembaruan filter" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ekstensi adblock tidak cocok melawan iklan dan pop-ups. Blokir iklan pada Facebook, YouTube dan semua situs lainnya." + }, + "filtering_clear_log_events": { + "message": "Hapus catatan" + }, + "filtering_log_actions_menu": { + "message": "Tindakan catatan pemfilteran" + }, + "filtering_log_assumed_rule_description": { + "message": "Ini adalah aturan yang diasumsikan. Untuk detailnya, lihat \u003Ca>basis pengetahuan\u003C/a> kami" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metode permintaan HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Kode status HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Permintaan pihak ketiga" + }, + "filtering_log_details_modal_back_button": { + "message": "Kembali ke permintaan" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Percantik" + }, + "filtering_log_details_modal_try_again": { + "message": "Coba lagi" + }, + "filtering_log_filter_allowed": { + "message": "Diizinkan" + }, + "filtering_log_filter_blocked": { + "message": "Diblokir" + }, + "filtering_log_filter_modified": { + "message": "Diubah" + }, + "filtering_log_filter_regular": { + "message": "Reguler" + }, + "filtering_log_filter_user_rules": { + "message": "Aturan pengguna" + }, + "filtering_log_hide_referrer": { + "message": "Perujuk disembunyikan dari pihak ketiga" + }, + "filtering_log_hide_search_queries": { + "message": "Kueri pencarian Anda disembunyikan" + }, + "filtering_log_in_allowlist": { + "message": "Situs ini diizinkan" + }, + "filtering_log_modified_rules": { + "message": "Aturan yang diubah: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ya, pertahankan" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Opsi ini dapat secara signifikan meningkatkan penggunaan memori" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Pertahankan catatan?" + }, + "filtering_log_preserve_log_off": { + "message": "Jangan pertahankan catatan" + }, + "filtering_log_preserve_log_on": { + "message": "Pertahankan catatan" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Jangan tampilkan lagi" + }, + "filtering_log_privacy_applied_rules": { + "message": "Perlindungan pelacakan diterapkan" + }, + "filtering_log_remove_client_data": { + "message": "Tajuk X-Client-Data dihapus" + }, + "filtering_log_search_string": { + "message": "Cari" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Cari di tab" + }, + "filtering_log_send_not_track": { + "message": "Tajuk Jangan Lacak terkirim" + }, + "filtering_log_status_allowed": { + "message": "Diizinkan" + }, + "filtering_log_status_blocked": { + "message": "Diblokir" + }, + "filtering_log_status_modified": { + "message": "Diubah" + }, + "filtering_log_status_processed": { + "message": "Diproses" + }, + "filtering_log_stealth_rules": { + "message": "Aturan perlindungan pelacakan: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Sumber permintaan" + }, + "filtering_log_tag_request_status": { + "message": "Status pemfilteran" + }, + "filtering_log_tag_request_type": { + "message": "Jenis permintaan" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Permintaan yang diizinkan dan tidak diblokir" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Permintaan terblokir" + }, + "filtering_log_tag_tooltip_css": { + "message": "Lembar gaya" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Permintaan pihak pertama" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumen dan subdokumen" + }, + "filtering_log_tag_tooltip_img": { + "message": "Gambar" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skrip" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Permintaan yang dimodifikasi" + }, + "filtering_log_tag_tooltip_other": { + "message": "Font, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Permintaan yang diproses tanpa pemfilteran" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Permintaan pihak ketiga" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Permintaan yang dipengaruhi oleh aturan pengguna" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Permintaan XMLHttpRequests dan fetch" + }, + "filtering_log_title": { + "message": "Catatan Pemfilteran" + }, + "filtering_menu_open_filters": { + "message": "Serasikan..." + }, + "filtering_modal_add_rule": { + "message": "Tambahkan" + }, + "filtering_modal_allow_title": { + "message": "Tambahkan aturan perizinan" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Aturan diterapkan | Aturan diterapkan" + }, + "filtering_modal_apply_domains": { + "message": "Berlaku untuk semua situs web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Aturan yang diasumsikan: | Aturan yang diasumsikan:" + }, + "filtering_modal_block": { + "message": "Blokir" + }, + "filtering_modal_block_again": { + "message": "Blokir lagi" + }, + "filtering_modal_block_title": { + "message": "Tambahkan aturan pemblokiran" + }, + "filtering_modal_converted_to": { + "message": "Dikonversi ke:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Tersalin" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Salin ke papan klip" + }, + "filtering_modal_declarative_rule": { + "message": "Aturan DNR:" + }, + "filtering_modal_element": { + "message": "Elemen:" + }, + "filtering_modal_exception_title": { + "message": "Tambahkan pengecualian" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Status pemfilteran" + }, + "filtering_modal_hide_full_element": { + "message": "Sembunyikan elemen lengkap" + }, + "filtering_modal_hide_full_rule": { + "message": "Sembunyikan aturan lengkap" + }, + "filtering_modal_hide_full_url": { + "message": "Sembunyikan URL lengkap" + }, + "filtering_modal_important": { + "message": "Berikan prioritas lebih tinggi pada aturan" + }, + "filtering_modal_info_title": { + "message": "Detail permintaan" + }, + "filtering_modal_open_in_new_tab": { + "message": "Buka di tab baru" + }, + "filtering_modal_options_desc": { + "message": "Opsi" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Aturan asli: | Aturan asli:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Apa yang seharusnya diizinkan" + }, + "filtering_modal_patterns_desc_block": { + "message": "Apa yang harus diblokir" + }, + "filtering_modal_preview_request_button": { + "message": "Pratinjau" + }, + "filtering_modal_preview_title": { + "message": "Pratinjau" + }, + "filtering_modal_privacy": { + "message": "Perlindungan pelacakan" + }, + "filtering_modal_remove_allowlist": { + "message": "Hapus dari Daftar Putih" + }, + "filtering_modal_remove_param": { + "message": "Hapus parameter kueri" + }, + "filtering_modal_remove_user": { + "message": "Hapus aturan" + }, + "filtering_modal_rule": { + "message": "Aturan:" + }, + "filtering_modal_rule_text_desc": { + "message": "Aturan" + }, + "filtering_modal_rules": { + "message": "Aturan:" + }, + "filtering_modal_show_full_element": { + "message": "Tampilkan elemen lengkap" + }, + "filtering_modal_show_full_rule": { + "message": "Tampilkan aturan lengkap" + }, + "filtering_modal_show_full_url": { + "message": "Tampilkan teks lengkap" + }, + "filtering_modal_source": { + "message": "Sumber" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Gagal memuat pratinjau. Silakan coba lagi" + }, + "filtering_modal_status_text_loading": { + "message": "Memuat..." + }, + "filtering_modal_third_party": { + "message": "Terapkan hanya untuk permintaan pihak ketiga" + }, + "filtering_modal_type": { + "message": "Tipe" + }, + "filtering_modal_unblock": { + "message": "Buka blokir" + }, + "filtering_refresh_tab_short": { + "message": "Segarkan" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Segarkan halaman" + }, + "filtering_table_action": { + "message": "Tindakan" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Tidak ditemukan. \u003Creset>Nonaktifkan filter\u003C/reset> atau \u003Crefresh>muat ulang halaman\u003C/refresh> untuk melihat catatan log" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Buka detail" + }, + "filtering_table_rule": { + "message": "Aturan pemfilteran" + }, + "filtering_table_source": { + "message": "Sumber" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Tipe" + }, + "filtering_type_all": { + "message": "Semua" + }, + "filtering_type_other": { + "message": "Lainnya" + }, + "filters_download_loading": { + "message": "Silakan tunggu sementara basis data filter sedang dimuat..." + }, + "filters_download_title": { + "message": "Basis data filter sedang dimuat..." + }, + "fullscreen_user_rules_title": { + "message": "Aturan pengguna" + }, + "group_description_adblocking": { + "message": "Konfigurasikan pemblokiran iklan di sini untuk menghadapi spanduk yang mengganggu, pop-up, iklan video, dan sejenisnya, sekali untuk selamanya" + }, + "group_description_annoyances": { + "message": "Hapus jendela pop-up dan notifikasi mengganggu lainnya seperti pemberitahuan cookie" + }, + "group_description_custom": { + "message": "Buat filter Anda sendiri untuk menyempurnakan pemfilteran web sesuai keinginan Anda." + }, + "group_description_lang": { + "message": "Jangan batasi diri Anda — blokir iklan di situs web dalam bahasa apa pun" + }, + "group_description_miscellaneous": { + "message": "Lebih banyak pengaturan untuk mengonfigurasi penjelajahan web Anda dengan AdGuard lebih jauh lagi" + }, + "group_description_security": { + "message": "Lindungi diri Anda dari malware, phishing, dan ancaman daring lainnya" + }, + "group_description_social": { + "message": "Sembunyikan tombol \"Suka\"/\"Bagikan\" yang tidak diinginkan dan widget sosial media lainnya" + }, + "group_description_stealth": { + "message": "Lindungi identitas Anda dan informasi pribadi yang sensitif dari ribuan pelacak dalam jaringan dengan memblokir semua metode pelacakan populer yang diketahui" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Jangan tampilkan lagi" + }, + "opera_search_permission_go_to_settings": { + "message": "Buka pengaturan" + }, + "opera_search_permission_warning": { + "message": "Untuk memblokir iklan pencarian, izinkan akses ke hasil halaman pencarian di pengaturan peramban" + }, + "options_about": { + "message": "Tentang" + }, + "options_about_libs": { + "message": "Perpustakaan yang digunakan" + }, + "options_about_title": { + "message": "Ekstensi Peramban AdGuard" + }, + "options_about_update_available": { + "message": "Versi %version% tersedia. Akan diunduh dan dipasang secara otomatis." + }, + "options_about_version": { + "message": "Versi" + }, + "options_acknowledgment": { + "message": "Pengakuan" + }, + "options_add_custom_filter": { + "message": "Tambahkan filter kustom" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Tambahkan" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Memeriksa filter Anda..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL mengembalikan halaman web alih-alih daftar filter. Harap berikan tautan langsung ke berkas filter." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Silakan coba lagi atau hubungi dukungan" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Gagal menambahkan filter kustom" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nama filter:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Dipercaya" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Beberapa aturan filter dapat mengubah pengalaman penelusuran Anda secara signifikan dan membahayakan privasi Anda. Pastikan untuk hanya menggunakan filter dari pengembang yang Anda percaya" + }, + "options_add_custom_filter_modal_title": { + "message": "Tambahkan filter kustom" + }, + "options_all_limits_exceeded_warning": { + "message": "Anda telah mencapai batas aturan bawaan yang aktif. Peramban Anda telah mengubah daftar filter bawaan yang aktif. Jumlah filter yang diaktifkan telah berubah dari %expected% menjadi %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Anda telah mencapai batas peramban Anda untuk aturan bawaan aktif. Peramban Anda telah mengurangi daftar filter bawaan aktif dari %expected% menjadi %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Browser Anda membatasi \u003Cexternal-link>beberapa jenis aturan\u003C/external-link>. Untuk menerapkan semua aturan, aktifkan \u003Cb>Izinkan skrip pengguna\u003C/b> di \u003Csettings-link>pengaturan ekstensi\u003C/settings-link> browser Anda" + }, + "options_allowlist": { + "message": "Daftar Putih" + }, + "options_allowlist_alert_invert": { + "message": "Daftar yang diizinkan dibalik. Iklan hanya terblokir di situs web yang ditambahkan ke dalamnya." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Hentikan pembalikan\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard tidak memblokir iklan dan pelacak di situs web dari daftar" + }, + "options_allowlist_invalid_entries": { + "message": "Untuk Simpan, hanya pertahankan domain atau URL. Ini perlu diperbaiki: %entries%" + }, + "options_allowlist_invert": { + "message": "Balikkan daftar Putih" + }, + "options_allowlist_invert_desc": { + "message": "Memblokir iklan dan pelacak hanya di situs web yang diizinkan" + }, + "options_allowlist_leave_subtitle": { + "message": "Perubahan Anda terhadap daftar putih akan hilang" + }, + "options_allowlist_menu": { + "message": "Tindakan daftar yang diizinkan" + }, + "options_anonymized_usage_data_description": { + "message": "Mengirim statistik anonim tentang penggunaan ekstensi ke AdGuard. \u003Cbutton>Pelajari lebih lanjut\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Mengerti" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Data ini termasuk:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nama tombol yang Anda klik" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nama layar yang Anda gunakan untuk berinteraksi" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sesi ID" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Data ini bersifat anonim dan hanya digunakan secara internal. Kami tidak pernah membagikannya dengan pihak ketiga" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Kami membutuhkan informasi ini untuk menganalisis dan meningkatkan kegunaan AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Data penggunaan ekstensi" + }, + "options_anonymized_usage_data_title": { + "message": "Kirim data penggunaan ekstensi yang dianonimkan" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Penyaring kustom berhasil ditambahkan" + }, + "options_antibanner_custom_group": { + "message": "Kustom" + }, + "options_antibanner_custom_group_description": { + "message": "Memungkinkan Anda menambah filter dari berkas atau URL" + }, + "options_antibanner_rules_count": { + "message": "Aturan: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Diperbarui: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokir iklan pencarian dan promosi situs web sendiri" + }, + "options_block_acceptable_ads_desc": { + "message": "Memblokir iklan di hasil pencarian dan promosi mandiri dari situs web. \u003Ca>Pelajari lebih lanjut\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Untuk memblokir cookie, atur masa pakai menjadi 0" + }, + "options_block_known_trackers_description": { + "message": "Memblokir pelacak dan analitik web menggunakan filter Perlindungan Pelacakan AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Blokir pelacak" + }, + "options_check_update_progress": { + "message": "Memeriksa..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Hapus" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Semua statistik penggunaan data akan dihapus secara permanen" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Hapus statistik?" + }, + "options_clipboard_permission_warning": { + "message": "Untuk menyalin dan menempel aturan, izinkan AdGuard mengakses papan klip. \u003Ca>Izinkan\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Mengirim statistik anonim tentang penggunaan filter iklan ke AdGuard. \u003Ca>Pelajari lebih lanjut\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Bantu mengembangkan filter AdGuard" + }, + "options_coming_soon": { + "message": "Segera hadir" + }, + "options_confirm_modal_cancel_button": { + "message": "Batal" + }, + "options_copyright": { + "message": "Hak cipta dilindungi undang-undang." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Untuk menggunakan filter khusus, aktifkan \u003Cb>Izinkan skrip pengguna\u003C/b> di \u003Csettings-link>pengaturan ekstensi\u003C/settings-link> browser Anda" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Untuk menggunakan filter khusus, aktifkan \u003Cb>mode Pengembang\u003C/b> di \u003Csettings-link>pengaturan ekstensi\u003C/settings-link> browser Anda" + }, + "options_desktop_app_promo_button_linux": { + "message": "Dapatkan AdGuard untuk Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Dapatkan AdGuard untuk Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Dapatkan AdGuard untuk Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikasi seperti Spotify, Discord, atau Zoom masih dapat menampilkan iklan dan melacak aktivitas Anda" + }, + "options_desktop_app_promo_subdescription": { + "message": "Aplikasi desktop kami dapat melindungi Anda dari hal tersebut" + }, + "options_desktop_app_promo_title": { + "message": "Ekstensi hanya melindungi peramban" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Browser Anda membatasi \u003Cexternal-link>beberapa jenis aturan\u003C/external-link>. Untuk menerapkan semua aturan, aktifkan \u003Cb>mode Pengembang\u003C/b> di \u003Csettings-link>pengaturan ekstensi\u003C/settings-link> browser Anda" + }, + "options_disable_webrtc_desc": { + "message": "Memblokir WebRTC yang dapat membocorkan Alamat IP asli Anda bahkan jika Anda menggunakan proksi atau VPN. Beberapa aplikasi pesan, platform streaming, atau permainan mungkin berhenti berfungsi dengan benar" + }, + "options_disable_webrtc_title": { + "message": "Blokir WebRTC" + }, + "options_discuss": { + "message": "Diskusikan AdGuard" + }, + "options_do_you_like_question": { + "message": "Anda menyukai AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Keluar dari mode jendela" + }, + "options_editor_indicator_saved": { + "message": "Tersimpan" + }, + "options_editor_indicator_saving": { + "message": "Menyimpan..." + }, + "options_editor_leave_cancel": { + "message": "Kembali mengedit" + }, + "options_editor_leave_confirm": { + "message": "Ya, keluar" + }, + "options_editor_leave_title": { + "message": "Tinggalkan tanpa menyimpan?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Buka Editor di jendela baru" + }, + "options_editor_save": { + "message": "Simpan" + }, + "options_editor_save_error": { + "message": "Gagal menyimpan perubahan. Silakan coba lagi atau hubungi dukungan" + }, + "options_empty_custom_filter": { + "message": "Anda belum memiliki filter kustom" + }, + "options_enable_autodetect_filter": { + "message": "Aktifkan filter yang paling sesuai secara otomatis" + }, + "options_enable_autodetect_filter_desc": { + "message": "Mendeteksi bahasa pada situs web dan mengaktifkan filter yang sesuai" + }, + "options_export_settings": { + "message": "Ekspor pengaturan" + }, + "options_filters": { + "message": "Filter" + }, + "options_filters_annoyances_consent_description": { + "message": "Anda akan mengaktifkan satu atau beberapa filter gangguan. Filter ini memblokir elemen yang tidak terkait dengan konten situs web, atau terkait namun mengganggu pengalaman penggunaan Anda. Pemilik situs web dapat menganggap elemen-elemen ini wajib: jika Anda memblokirnya, Anda mungkin melanggar ketentuan mereka; beberapa kegunaan situs web mungkin tidak tersedia atau tidak berfungsi dengan baik. Anda memahami dan menyetujui bahwa Anda sepenuhnya bertanggung jawab untuk menaati persyaratan penggunaan situs web yang Anda kunjungi dan bahwa AdGuard tidak bertanggung jawab atas kepatuhan Anda terhadap persyaratan penggunaan situs web yang Anda kunjungi dengan menggunakan produk kami." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Aktifkan" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Beranda" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Untuk detail tentang apa yang diblokir filter gangguan AdGuard, lihat \u003Ca>Kebijakan filter\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Aktifkan filter ini?" + }, + "options_filters_annoyances_consent_title": { + "message": "Silakan baca dengan seksama sebelum mengaktifkan filter gangguan" + }, + "options_filters_back_button": { + "message": "Kembali" + }, + "options_filters_empty_title": { + "message": "Tidak ada yang ditemukan" + }, + "options_filters_enabled": { + "message": "Diaktifkan:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% dan %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% dan %more% lagi" + }, + "options_filters_enabled_per_group": { + "message": "Aktif: %current% dari %total%" + }, + "options_filters_filter_link": { + "message": "Pergi ke beranda" + }, + "options_filters_filter_tags": { + "message": "Tag filter" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Anda memilih untuk mempercayai filter ini." + }, + "options_filters_filter_updated": { + "message": "diperbarui:" + }, + "options_filters_filter_version": { + "message": "versi:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Total aturan: %num%" + }, + "options_filters_last_checked": { + "message": "Terakhir diperiksa: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Semua filter" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Nonaktifkan" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Diaktifkan" + }, + "options_filters_no_enabled": { + "message": "Tidak ada filter diaktifkan" + }, + "options_filters_of_group": { + "message": "Filter dari grup \"%groupName%\"" + }, + "options_filters_search": { + "message": "Cari" + }, + "options_filters_search_filter": { + "message": "Cari filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Jika Anda memblokir cookie ini, beberapa situs web mungkin rusak atau berhenti berfungsi" + }, + "options_first_party_desc": { + "message": "Mencegah situs web mengetahui kredensial login atau bahasa pilihan Anda dengan membatasi masa pakai cookie pihak pertama" + }, + "options_first_party_title": { + "message": "Hapus cookie pihak pertama (tidak disarankan)" + }, + "options_general_settings": { + "message": "Umum" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Cegah pihak ketiga mengetahui situs web apa yang Anda kunjungi" + }, + "options_hide_referrer_title": { + "message": " Sembunyikan perujuk dari pihak ketiga" + }, + "options_hide_search_queries_desc": { + "message": "Menyembunyikan pencarian Anda dari situs web yang dikunjungi melalui hasil mesin pencari" + }, + "options_hide_search_queries_title": { + "message": "Sembunyikan kueri penelusuran" + }, + "options_import_configuration_applying_subtitle": { + "message": "Mengganti pengaturan Anda saat ini dengan yang diimpor. Pemfilteran dinonaktifkan selama impor" + }, + "options_import_configuration_applying_title": { + "message": "Mengimpor..." + }, + "options_import_configuration_confirm_button": { + "message": "Impor" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Pengaturan yang diimpor akan menggantikan pengaturan Anda saat ini. Pengaturan lain tidak akan terpengaruh" + }, + "options_import_configuration_confirm_title": { + "message": "Impor pengaturan" + }, + "options_import_configuration_error_button": { + "message": "Tutup" + }, + "options_import_configuration_error_subtitle": { + "message": "Periksa tautan impor dan coba lagi. Jika tidak berhasil, hubungi dukungan" + }, + "options_import_configuration_error_title": { + "message": "Gagal mengimpor pengaturan" + }, + "options_import_configuration_success_button": { + "message": "Tutup" + }, + "options_import_configuration_success_subtitle": { + "message": "Pengaturan berhasil diimpor" + }, + "options_import_configuration_success_title": { + "message": "Semua selesai" + }, + "options_import_settings": { + "message": "Impor pengaturan" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Balikkan" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Iklan dan pelacak hanya akan diblokir di situs web dari allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Balikkan daftar yang diizinkan?" + }, + "options_leave_feedback": { + "message": "Beri masukan" + }, + "options_lifetime_minutes": { + "message": "Masa pakai, menit" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Anda telah mencapai batas aturan regex yang ditambahkan pengguna. %maximum% dari %current% aturan regex aktif." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Anda telah mencapai batas aturan regex yang ditambahkan pengguna. %maximum% dari %current% aturan diaktifkan. Untuk menambahkan aturan regex baru, hapus beberapa yang sudah ada" + }, + "options_limits_warning_dynamic_rules": { + "message": "Anda telah mencapai batas aturan yang ditambahkan pengguna. %maximum% dari %current% aturan aktif." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Anda telah mencapai batas aturan yang ditambahkan pengguna. %maximum% dari %current% aturan diaktifkan. Untuk menambahkan aturan baru, hapus beberapa yang sudah ada" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Anda telah mencapai batas aturan yang ditambahkan pengguna yang tidak aman. %maximum% dari %current% aturan yang tidak aman aktif." + }, + "options_limits_warning_static_filters": { + "message": "Anda telah mencapai batas filter bawaan yang aktif. %maximum% dari %current% filter aktif. Untuk mengaktifkan aturan baru, nonaktifkan beberapa filter bawaan." + }, + "options_limits_warning_static_filters_browser": { + "message": "Anda telah mencapai batas peramban Anda untuk filter bawaan aktif. %maximum% dari %current% filter diaktifkan. Untuk mengaktifkan filter baru, matikan beberapa filter bawaan" + }, + "options_limits_warning_static_regex_rules": { + "message": "Anda telah mencapai batas aturan regex bawaan yang aktif. %maximum% dari %current% aturan regex aktif. Untuk mengaktifkan aturan baru, nonaktifkan beberapa filter bawaan." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Anda telah mencapai batas aturan regex bawaan aktif. Untuk mengaktifkan aturan baru, matikan beberapa filter bawaan" + }, + "options_limits_warning_static_rules": { + "message": "Anda telah mencapai batas aturan bawaan yang aktif. %maximum% dari %current% aturan aktif. Untuk mengaktifkan aturan baru, nonaktifkan beberapa filter bawaan." + }, + "options_limits_warning_static_rules_browser": { + "message": "Anda telah mencapai batas peramban Anda untuk aturan bawaan aktif. Untuk mengaktifkan aturan baru, matikan beberapa filter bawaan" + }, + "options_loader_applying_changes": { + "message": "Menerapkan perubahan..." + }, + "options_miscellaneous_settings": { + "message": "Pengaturan tambahan" + }, + "options_modified_first_party_cookie": { + "message": "Cookie pihak pertama diubah" + }, + "options_modified_third_party_cookie": { + "message": "Cookie pihak ketiga diubah" + }, + "options_nav_better_than_extension": { + "message": "Mengapa aplikasi AdGuard lebih baik daripada ekstensinya?" + }, + "options_nav_compare": { + "message": "Perbandingan" + }, + "options_navigation": { + "message": "Navigasi" + }, + "options_open_changelog": { + "message": "Catatan perubahan" + }, + "options_open_log": { + "message": "Buka catatan pemfilteran" + }, + "options_popup_call_to_action": { + "message": "Masukkan URL atau lokasi berkas filter yang valid ke dalam kolom di atas." + }, + "options_popup_check_false_description": { + "message": "Kesalahan saat menambahkan filter kustom Anda." + }, + "options_popup_check_false_title": { + "message": "Kesalahan" + }, + "options_popup_checking_filter": { + "message": "Memeriksa filter Anda" + }, + "options_popup_description": { + "message": "Anda akan berlangganan filter tersebut." + }, + "options_popup_filter_description": { + "message": "Deskripsi:" + }, + "options_popup_filter_homepage": { + "message": "Beranda:" + }, + "options_popup_filter_rules_count": { + "message": "Jumlah aturan:" + }, + "options_popup_filter_title": { + "message": "Judul:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versi:" + }, + "options_popup_import_error_file_description": { + "message": "Terjadi kesalahan." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Untuk mengimpor berkas pengaturan ini, izinkan AdGuard untuk mengubah pengaturan terkait privasi Anda." + }, + "options_popup_import_error_title": { + "message": "Gagal mengimpor pengaturan" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Ekstensi berkas harus %extension%" + }, + "options_popup_import_success_title": { + "message": "Pengaturan diimpor" + }, + "options_popup_next_button": { + "message": "Selanjutnya" + }, + "options_popup_subscribe_button": { + "message": "Berlangganan" + }, + "options_popup_title_placeholder": { + "message": "Masukkan nama filter" + }, + "options_popup_trusted_filter_description": { + "message": "Filter tepercaya dapat menggunakan pengubah aturan pemfilteran kuat yang dapat berbahaya di tangan yang salah. Jangan centang kotak ini kecuali Anda benar-benar mempercayainya." + }, + "options_popup_trusted_filter_title": { + "message": "Dipercaya" + }, + "options_popup_try_again_button": { + "message": "Coba lagi" + }, + "options_popup_update_error": { + "message": "Gagal mendapatkan pembaruan. Silahkan coba kembali nanti." + }, + "options_popup_update_filter": { + "message": "telah diperbarui." + }, + "options_popup_update_filters": { + "message": "telah diperbarui." + }, + "options_popup_update_not_found": { + "message": "Filter Anda sudah terbaru" + }, + "options_popup_update_title_error": { + "message": "Kesalahan saat memperbarui filter" + }, + "options_popup_updating_filters": { + "message": "Memperbarui pemfilteran..." + }, + "options_popup_url_placeholder": { + "message": "Masukkan URL atau jalur berkas" + }, + "options_popup_url_title": { + "message": "Langganan filter baru" + }, + "options_popup_version_update_changelog_text": { + "message": "Apa yang baru pada versi ini?" + }, + "options_popup_version_update_description_major": { + "message": "Ini adalah peningkatan ekstensi besar yang menghadirkan banyak fitur dan peningkatan baru." + }, + "options_popup_version_update_description_minor": { + "message": "Versi ini sebagian besar berisi perbaikan bug dan peningkatan kecil." + }, + "options_popup_version_update_disable_notification": { + "message": "Nonaktifkan notifikasi" + }, + "options_popup_version_update_offer": { + "message": "Apakah Anda tahu bahwa kemampuan AdGuard tidak hanya sebatas pada peramban ini?" + }, + "options_popup_version_update_offer_button_text": { + "message": "PELAJARI LEBIH LANJUT" + }, + "options_popup_version_update_title_text": { + "message": "Ekstensi AdGuard telah diperbarui ke versi %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Membuat WebRTC menggunakan kebijakan Alamat IP yang lebih ketat untuk membantu menjaga agar Alamat IP asli Anda tetap tersembunyi saat Anda menggunakan proksi atau VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Cegah kebocoran Alamat IP melalui WebRTC" + }, + "options_privacy": { + "message": "Perlindungan pelacakan" + }, + "options_privacy_desc": { + "message": "Melindungi aktivitas daring dan data pribadi Anda dari pelacak web" + }, + "options_privacy_policy": { + "message": "Kebijakan privasi" + }, + "options_privacy_title": { + "message": "Perlindungan pelacakan" + }, + "options_rate_us_cta": { + "message": "Berikan nilai" + }, + "options_remove_client_data_desc": { + "message": "Blokir Google Chrome dari mengirimkan versi dan informasi modifikasinya ke domain Google" + }, + "options_remove_client_data_title": { + "message": "Hapus tajuk X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Hapus" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Hapus filter ini?" + }, + "options_report_bug": { + "message": "Laporkan bug" + }, + "options_reset_settings": { + "message": "Atur ulang pengaturan" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Atur ulang" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Semua pengaturan akan diatur ulang ke nilai defaultnya" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Atur ulang pengaturan?" + }, + "options_reset_settings_done": { + "message": "Pengaturan telah diatur ulang" + }, + "options_reset_settings_error": { + "message": "Kesalahan saat mengatur ulang pengaturan" + }, + "options_reset_stats": { + "message": "Hapus statistik" + }, + "options_reset_stats_done": { + "message": "Statistik telah dikembalikan" + }, + "options_rule_limits": { + "message": "Batas aturan" + }, + "options_rule_limits_description": { + "message": "Chrome membatasi jumlah aturan yang dapat diterapkan" + }, + "options_rule_limits_dynamic": { + "message": "Aturan dinamis" + }, + "options_rule_limits_dynamic_regex": { + "message": "Aturan regex — termasuk dalam aturan yang ditambahkan pengguna" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Aturan dinamis tidak aman (digunakan untuk beberapa modifier lanjutan, seperti $$redirect atau $$cookie) — termasuk dalam peraturan ditambah pengguna" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Aturan yang ditambahkan pengguna, seperti \u003Cuser_rules>aturan pengguna\u003C/user_rules>, \u003Callowlist>situs web yang diizinkan\u003C/allowlist>, dan \u003Ccustom_filters>filter kustom\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Aturan yang ditambahkan pengguna, seperti \u003Cuser_rules>aturan pengguna\u003C/user_rules> dan \u003Callowlist>situs web yang diizinkan\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% dari %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Aturan statis" + }, + "options_rule_limits_static_rules_all": { + "message": "Aturan dari \u003Ca>filter bawaan\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Aturan Regex — termasuk di atas" + }, + "options_rule_limits_static_rulesets": { + "message": "Aturan statis" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filter bawaan\u003C/a>, seperti pemblokir gangguan atau filter bahasa-spesifik" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opsi 3. Jika Anda puas dengan filter standar yang aktif saat ini, \u003Ca>tutup peringatan ini.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opsi 3. Jika Anda puas dengan filter standar yang aktif saat ini, \u003Ca>tutup peringatan ini.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opsi 1. Hapus ekstensi pemblokiran iklan yang tidak perlu dari peramban Anda. Untuk mengaktifkan kembali filter yang disebutkan di bagian \"Filter diaktifkan sebelum pembaruan\", klik \u003Ca>aktifkan kembali filter.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opsi 2. Pasang aplikasi Pemblokir Iklan AdGuard: aplikasi ini tidak memiliki batasan pada aturan pemfilteran. \u003Ca>Dapatkan aplikasi AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Kemungkinan tindakan Anda" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Batas aturan bawaan aktif terlampaui setelah pembaruan atau penambahan ekstensi baru. Sesuai Manifest V3, peramban Chrome Anda bereaksi dengan menonaktifkan semua filter bawaan ekstensi kecuali filter standar." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Apa yang terjadi?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filter diaktifkan sebelum pembaruan" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filter diaktifkan sekarang" + }, + "options_rule_limits_warning_title": { + "message": "Peramban telah memodifikasi daftar filter aktif" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Hapus batas aturan dan dapatkan perlindungan yang diperluas yang berfungsi di semua peramban" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Pasang aplikasi desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Buka filter" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Mengelola ekstensi" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Ekstensi peramban berbagi batas aturan yang sama. Menghapus pemblokir iklan lain dapat membebaskan lebih banyak aturan untuk AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Hapus pemblokir iklan lainnya" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktifkan filter yang Anda butuhkan. Filter khusus bahasa dan privasi dapat menggunakan banyak aturan" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Tinjau filter yang tersedia" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Berikut yang dapat Anda lakukan" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Batas tercapai — beberapa filter dinonaktifkan" + }, + "options_rule_syntax": { + "message": "Sintaks aturan" + }, + "options_safebrowsing_enabled": { + "message": "Perlindungan dari phishing dan malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Memberi peringatan tentang situs web berbahaya dan phishing menggunakan modul Keamanan Penjelajahan AdGuard. \u003Ca>Baca lebih lanjut\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 jam" + }, + "options_select_update_period_1h": { + "message": "1 jam" + }, + "options_select_update_period_24h": { + "message": "24 jam" + }, + "options_select_update_period_48h": { + "message": "48 jam" + }, + "options_select_update_period_6h": { + "message": "6 jam" + }, + "options_select_update_period_default": { + "message": "Standar" + }, + "options_select_update_period_disabled": { + "message": "Dinonaktifkan" + }, + "options_send_not_track_desc": { + "message": "Kirim sinyal \u003Cgpc>Kontrol Privasi Global\u003C/gpc> dan \u003Cdnt>Jangan Lacak\u003C/dnt> ke situs web yang Anda kunjungi" + }, + "options_send_not_track_title": { + "message": "Minta situs web untuk tidak melacak saya" + }, + "options_set_update_interval": { + "message": "Perbarui filter secara otomatis" + }, + "options_set_update_interval_desc": { + "message": "Menjaga filter tetap terbaru untuk pemblokiran iklan yang lebih efektif" + }, + "options_settings": { + "message": "Pengaturan AdGuard" + }, + "options_share_settings": { + "message": "Bagikan pengaturan" + }, + "options_show_adguard_full_version_title": { + "message": "Tampilkan informasi pada versi penuh AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Beritahu tentang pembaruan ekstensi" + }, + "options_show_blocked_ads_count_title": { + "message": "Tunjukkan jumlah iklan yang diblokir pada ikon ekstensi AdGuard" + }, + "options_show_context_menu_title": { + "message": "Tambahkan item AdGuard ke konteks menu peramban" + }, + "options_site": { + "message": "Situs resmi" + }, + "options_skip_to_main_content": { + "message": "Lewati ke konten utama" + }, + "options_stealth_general_title": { + "message": "Umum" + }, + "options_stealth_miscellaneous_title": { + "message": "Lain-lain" + }, + "options_stealth_tracking_methods_title": { + "message": "Metode pelacakan" + }, + "options_strip_tracking_params_description": { + "message": "Menghapus parameter pelacakan dari halaman URL menggunakan filter Pelacakan URL AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Hapus parameter pelacakan dari URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parameter pelacak dihapus" + }, + "options_theme_selector_dark": { + "message": "Gelap" + }, + "options_theme_selector_light": { + "message": "Terang" + }, + "options_theme_selector_system": { + "message": "Sistem standar" + }, + "options_third_party_block_cookies_warning": { + "message": "Jika Anda memblokir cookie ini, Anda mungkin harus masuk kembali ke beberapa situs web atau menghadapi masalah terkait cookie lainnya" + }, + "options_third_party_desc": { + "message": "Mencegah pengiklan melacak perilaku Anda di beberapa halaman dengan membatasi masa pakai cookie pihak ketiga" + }, + "options_third_party_title": { + "message": "Menghapus cookie pihak ketiga" + }, + "options_update_antibanner_filters": { + "message": "Periksa pembaruan filter" + }, + "options_use_optimized_filters": { + "message": "Gunakan filter yang dioptimalkan" + }, + "options_use_optimized_filters_desc": { + "message": "Menggunakan versi filter yang lebih pendek hanya dengan aturan yang paling populer untuk menghemat lalu lintas. Lebih cocok untuk peramban seluler" + }, + "options_user_rules_clear_search": { + "message": "Hapus pencarian" + }, + "options_user_rules_create_rule": { + "message": "Buat aturan" + }, + "options_user_rules_delete_all": { + "message": "Hapus semua" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Semua aturan pengguna akan dihapus secara permanen" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Hapus semua?" + }, + "options_user_rules_delete_all_success": { + "message": "Semua aturan pengguna dihapus" + }, + "options_user_rules_delete_rule": { + "message": "Hapus aturan" + }, + "options_user_rules_deleted_notification": { + "message": "Aturan pengguna dihapus:" + }, + "options_user_rules_description_key": { + "message": "Aturan Anda untuk memblokir dan membuka blokir iklan atau seluruh situs web" + }, + "options_user_rules_edit_rule": { + "message": "Edit aturan" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Pergi ke editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Aturan Anda akan muncul di sini setelah Anda menutupnya" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor dibuka di jendela lain" + }, + "options_user_rules_empty_placeholder": { + "message": "Belum ada aturan" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Menyorot aturan…" + }, + "options_user_rules_import_error": { + "message": "Gagal mengimpor aturan pengguna. Silakan coba lagi" + }, + "options_user_rules_import_success": { + "message": "Aturan pengguna berhasil diimpor" + }, + "options_user_rules_menu": { + "message": "Tindakan aturan pengguna" + }, + "options_user_rules_no_match": { + "message": "Tidak ditemukan" + }, + "options_user_rules_search_placeholder": { + "message": "Cari" + }, + "options_user_rules_switch_to_editor": { + "message": "Beralih ke tampilan editor" + }, + "options_user_rules_switch_to_list": { + "message": "Beralih ke tampilan daftar" + }, + "options_user_rules_undo": { + "message": "Urungkan" + }, + "options_userfilter": { + "message": "Penyaring pengguna" + }, + "options_userfilter_description_key": { + "message": "Anda dapat menambahkan aturan Anda sendiri di sini. Opsi ini direkomendasikan untuk pengguna tingkat lanjut yang terbiasa dengan HTML/CSS. Baca \u003Ca>tutorial aturan filter\u003C/a> untuk belajar menulis menulis aturan filter Anda sendiri." + }, + "options_userfilter_export": { + "message": "Ekspor" + }, + "options_userfilter_import": { + "message": "Impor" + }, + "options_userfilter_leave_subtitle": { + "message": "Perubahan Anda pada aturan akan hilang" + }, + "options_userfilter_line_break": { + "message": "Jeda baris" + }, + "options_userfilter_line_break_off": { + "message": "Jeda baris: Nonaktif" + }, + "options_userfilter_line_break_on": { + "message": "Jeda baris: Aktif" + }, + "options_userfilter_subtitle_key": { + "message": "Memungkinkan Anda menambahkan aturan penyaringan sendiri" + }, + "popup_abuse_site": { + "message": "Laporkan masalah" + }, + "popup_adguard_footer_title": { + "message": "Lindungi perangkat seluler Anda" + }, + "popup_adguard_for_android": { + "message": "AdGuard untuk Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard untuk iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokir iklan secara manual" + }, + "popup_get_system_wide_protection": { + "message": "Dapatkan Perlindungan seluruh sistem" + }, + "popup_header_cta_link": { + "message": "Cara meningkatkan perlindungan" + }, + "popup_header_update_filters": { + "message": "Periksa pembaruan filter" + }, + "popup_limits_exceeded_warning": { + "message": "Peramban Anda telah memodifikasi daftar filter bawaan yang aktif" + }, + "popup_open_filtering_log": { + "message": "Buka catatan pemfilteran" + }, + "popup_open_settings": { + "message": "Buka pengaturan AdGuard" + }, + "popup_protection_button": { + "message": "Perlindungan AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Hapus aturan pengguna untuk situs web ini" + }, + "popup_resume_protection_button": { + "message": "Perbaiki" + }, + "popup_security_report": { + "message": "Periksa keamanan situs" + }, + "popup_site_exception_information": { + "message": "Pemfilteran dinonaktifkan karena dapat mengganggu pengoperasian situs web ini." + }, + "popup_site_filtering_state_disabled": { + "message": "Perlindungan nonaktif" + }, + "popup_site_filtering_state_disabling": { + "message": "Menonaktifkan perlindungan..." + }, + "popup_site_filtering_state_enabled": { + "message": "Perlindungan aktif" + }, + "popup_site_filtering_state_enabling": { + "message": "Mengaktifkan perlindungan..." + }, + "popup_site_filtering_state_loading": { + "message": "Memuat..." + }, + "popup_site_filtering_state_paused": { + "message": "Perlindungan dijeda" + }, + "popup_site_filtering_state_pausing": { + "message": "Menjeda perlindungan..." + }, + "popup_site_filtering_state_resuming": { + "message": "Melanjutkan perlindungan..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Halaman aman" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "untuk semua situs web" + }, + "popup_statistics_all_categories": { + "message": "All" + }, + "popup_statistics_category_advertising": { + "message": "Iklan" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategori statistik" + }, + "popup_statistics_category_other": { + "message": "Lainnya" + }, + "popup_statistics_category_social_media": { + "message": "Media sosial" + }, + "popup_statistics_category_trackers": { + "message": "Pelacak" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Agu" + }, + "popup_statistics_months_dec": { + "message": "Des" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Mei" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 jam" + }, + "popup_statistics_time_label": { + "message": "Periode waktu statistik" + }, + "popup_statistics_time_month": { + "message": "30 hari" + }, + "popup_statistics_time_week": { + "message": "7 hari" + }, + "popup_statistics_time_year": { + "message": "1 tahun" + }, + "popup_statistics_total": { + "message": "Jumlah" + }, + "popup_statistics_week_days_fri": { + "message": "Jum" + }, + "popup_statistics_week_days_mon": { + "message": "Sen" + }, + "popup_statistics_week_days_sat": { + "message": "Sab" + }, + "popup_statistics_week_days_sun": { + "message": "Ming" + }, + "popup_statistics_week_days_thu": { + "message": "Kam" + }, + "popup_statistics_week_days_tue": { + "message": "Sel" + }, + "popup_statistics_week_days_wed": { + "message": "Rab" + }, + "popup_switch_button": { + "message": "Perlindungan untuk situs web saat ini" + }, + "popup_tab_actions": { + "message": "Aksi" + }, + "popup_tab_blocked_all_count": { + "message": "Total diblokir: %num%" + }, + "popup_tab_blocked_count": { + "message": "Diblokir: %num%" + }, + "popup_tab_current_website": { + "message": "Situs web saat ini" + }, + "popup_tab_statistics": { + "message": "Statistik" + }, + "popup_tabs": { + "message": "Tab" + }, + "popup_tooltip_loading": { + "message": "Memuat..." + }, + "popup_tooltip_protection_disabled": { + "message": "Perlindungan tidak aktif" + }, + "popup_tooltip_protection_enabled": { + "message": "Perlindungan aktif" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Beberapa aturan tidak diterapkan" + }, + "popup_tooltip_update_available": { + "message": "Pembaruan tersedia" + }, + "post_install_loading": { + "message": "Memuat ekstensi..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Batas aturan terlampaui dalam Ekstensi Peramban AdGuard. Silakan periksa filter Anda dan nonaktifkan yang tidak Anda perlukan" + }, + "text_collapser_hide_default": { + "message": "Sembunyikan teks lengkap" + }, + "text_collapser_show_default": { + "message": "Tampilkan teks lengkap" + }, + "update_available_desc": { + "message": "Untuk memblokir iklan secara efektif, selalu perbarui ekstensi dan filter Anda" + }, + "update_available_title": { + "message": "Pembaruan tersedia" + }, + "update_available_update_btn": { + "message": "Perbarui" + }, + "update_check": { + "message": "Cek pembaruan" + }, + "update_checking_in_progress": { + "message": "Memeriksa pembaruan..." + }, + "update_failed_text": { + "message": "Gagal menyelesaikan pembaruan" + }, + "update_failed_try_again_btn": { + "message": "Coba lagi" + }, + "update_installing_in_progress_desc": { + "message": "Ekstensi akan mulai ulang setelah pembaruan" + }, + "update_installing_in_progress_title": { + "message": "Memperbarui ekstensi dan filter..." + }, + "update_not_needed": { + "message": "Ekstensi dan filter Anda adalah yang terbaru" + }, + "update_success_text": { + "message": "Ekstensi dan filter diperbarui" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/it/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/it/messages.json new file mode 100644 index 0000000..1992e76 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/it/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% è stato attivato automaticamente." + }, + "alert_popup_filter_enabled_title": { + "message": "Attivazione automatica dei filtri" + }, + "background_tab_title": { + "message": "Scheda in secondo piano" + }, + "blocking_pages_advanced_button": { + "message": "Avanzate" + }, + "blocking_pages_btn_go_back": { + "message": "Torna indietro" + }, + "blocking_pages_btn_proceed": { + "message": "Procedi comunque" + }, + "blocking_pages_malware": { + "message": "Questa pagina web su \u003Cstrong>%host%\u003C/strong> è stata segnalata come pagina malware ed è stata bloccata secondo le tue preferenze di sicurezza." + }, + "blocking_pages_more_info_button": { + "message": "Maggiori informazioni" + }, + "blocking_pages_page_title": { + "message": "Accesso negato" + }, + "blocking_pages_phishing": { + "message": "Questa pagina web su \u003Cstrong>%host%\u003C/strong> è stata segnalata come pagina phishing ed è stata bloccata secondo le tue preferenze di sicurezza." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ha impedito il caricamento di questa pagina a causa della seguente regola di filtraggio" + }, + "blocking_pages_rule_header_title": { + "message": "Bloccato da AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ha bloccato l'accesso a questa pagina" + }, + "clear_button_title": { + "message": "Cancella" + }, + "close_button_title": { + "message": "Chiudi" + }, + "context_block_site_ads": { + "message": "Blocca le inserzioni manualmente" + }, + "context_complaint_website": { + "message": "Segnala un problema" + }, + "context_disable_protection": { + "message": "Metti in pausa la protezione AdGuard" + }, + "context_enable_protection": { + "message": "Riprendi protezione di AdGuard" + }, + "context_open_log": { + "message": "Registro di filtraggio" + }, + "context_open_settings": { + "message": "Impostazioni AdGuard" + }, + "context_security_report": { + "message": "Controlla sicurezza sito web" + }, + "context_site_exception": { + "message": "Questo sito web è presente nelle eccezioni" + }, + "context_site_filtering_disabled": { + "message": "AdGuard non può filtrare questa pagina" + }, + "context_site_filtering_off": { + "message": "Disattiva filtraggio su questo sito web" + }, + "context_site_filtering_on": { + "message": "Attiva filtraggio su questo sito web" + }, + "context_site_protection_disabled": { + "message": "La protezione di AdGuard è in pausa" + }, + "context_update_antibanner_filters": { + "message": "Ricerca aggiornamenti filtro" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ineguagliata estensione contro inserzioni e comparse. Blocca le inserzioni in Facebook, YouTube e tutti gli altri siti web." + }, + "filtering_clear_log_events": { + "message": "Pulisci il registro" + }, + "filtering_log_actions_menu": { + "message": "Azioni nel Registro di filtraggio" + }, + "filtering_log_assumed_rule_description": { + "message": "Questa è una regola presunta. Per i dettagli, vedi la nostra \u003Ca>Knowledge base\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metodo di richiesta HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Codice di stato HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Richieste di terze-parti" + }, + "filtering_log_details_modal_back_button": { + "message": "Torna alla richiesta" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Abbellimento" + }, + "filtering_log_details_modal_try_again": { + "message": "Riprova" + }, + "filtering_log_filter_allowed": { + "message": "Consentito" + }, + "filtering_log_filter_blocked": { + "message": "Bloccato" + }, + "filtering_log_filter_modified": { + "message": "Modificato" + }, + "filtering_log_filter_regular": { + "message": "Normale" + }, + "filtering_log_filter_user_rules": { + "message": "Regole utente" + }, + "filtering_log_hide_referrer": { + "message": "Referer nascosto a terze parti" + }, + "filtering_log_hide_search_queries": { + "message": "Le tue richieste di ricerca sono nascoste" + }, + "filtering_log_in_allowlist": { + "message": "Il sito è consentito" + }, + "filtering_log_modified_rules": { + "message": "Regole modificate: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sì, conserva" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Questa opzione può incrementare significativamente l'uso della memoria" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Conservare il registro?" + }, + "filtering_log_preserve_log_off": { + "message": "Non conservare il registro" + }, + "filtering_log_preserve_log_on": { + "message": "Conserva registro" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Non mostrare più" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protezione da tracciamento applicata" + }, + "filtering_log_remove_client_data": { + "message": "Intestazione X-Client-Data rimossa" + }, + "filtering_log_search_string": { + "message": "Cerca" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Cerca nelle schede" + }, + "filtering_log_send_not_track": { + "message": "Intestazione Do-Not-Track inviata" + }, + "filtering_log_status_allowed": { + "message": "Consentito" + }, + "filtering_log_status_blocked": { + "message": "Bloccato" + }, + "filtering_log_status_modified": { + "message": "Modificato" + }, + "filtering_log_status_processed": { + "message": "Processato" + }, + "filtering_log_stealth_rules": { + "message": "Regole di protezione dal tracciamento: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origine della richiesta" + }, + "filtering_log_tag_request_status": { + "message": "Stato del filtraggio" + }, + "filtering_log_tag_request_type": { + "message": "Tipo di richiesta" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Richieste consentite e sbloccate" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Richieste bloccate" + }, + "filtering_log_tag_tooltip_css": { + "message": "Fogli di stile" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Richieste di prima parte" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documenti e sottodocumenti" + }, + "filtering_log_tag_tooltip_img": { + "message": "Immagini" + }, + "filtering_log_tag_tooltip_js": { + "message": "Script" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Richieste modificate" + }, + "filtering_log_tag_tooltip_other": { + "message": "Caratteri, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Richieste elaborate senza filtraggio" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Richieste di terze parti" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Richieste condizionate da regole utente" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Richieste XMLHttp e fetch" + }, + "filtering_log_title": { + "message": "Registro di filtraggio" + }, + "filtering_menu_open_filters": { + "message": "Personalizza" + }, + "filtering_modal_add_rule": { + "message": "Aggiungi" + }, + "filtering_modal_allow_title": { + "message": "Aggiungi regola di autorizzazione" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regola applicata | Regole applicate" + }, + "filtering_modal_apply_domains": { + "message": "Applica per tutti i siti web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regola ipotizzata: | Regole ipotizzate:" + }, + "filtering_modal_block": { + "message": "Blocca" + }, + "filtering_modal_block_again": { + "message": "Blocca nuovamente" + }, + "filtering_modal_block_title": { + "message": "Aggiungi regola di blocco" + }, + "filtering_modal_converted_to": { + "message": "Convertito a:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiato" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copia negli appunti" + }, + "filtering_modal_declarative_rule": { + "message": "Regola DNR:" + }, + "filtering_modal_element": { + "message": "Elemento:" + }, + "filtering_modal_exception_title": { + "message": "Aggiungi un'eccezione" + }, + "filtering_modal_filter": { + "message": "Filtro" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Stato del filtraggio" + }, + "filtering_modal_hide_full_element": { + "message": "Nascondi elemento completo" + }, + "filtering_modal_hide_full_rule": { + "message": "Nascondi la regola completa" + }, + "filtering_modal_hide_full_url": { + "message": "Nascondi URL completo" + }, + "filtering_modal_important": { + "message": "Dai una priorità più alta alla regola" + }, + "filtering_modal_info_title": { + "message": "Dettagli della richiesta" + }, + "filtering_modal_open_in_new_tab": { + "message": "Apri in una nuova scheda" + }, + "filtering_modal_options_desc": { + "message": "Opzioni" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regola originale: | Regole originali:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Cosa dovrebbe essere consentito" + }, + "filtering_modal_patterns_desc_block": { + "message": "Cosa dovrebbe esser bloccato" + }, + "filtering_modal_preview_request_button": { + "message": "Anteprima" + }, + "filtering_modal_preview_title": { + "message": "Anteprima" + }, + "filtering_modal_privacy": { + "message": "Protezione dal tracciamento" + }, + "filtering_modal_remove_allowlist": { + "message": "Rimuovi dalla Lista bianca" + }, + "filtering_modal_remove_param": { + "message": "Rimuovi parametri richiesta" + }, + "filtering_modal_remove_user": { + "message": "Rimuovere la regola" + }, + "filtering_modal_rule": { + "message": "Regola:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regola" + }, + "filtering_modal_rules": { + "message": "Regole:" + }, + "filtering_modal_show_full_element": { + "message": "Mostra l'elemento completo" + }, + "filtering_modal_show_full_rule": { + "message": "Mostra regola completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostra URL completo" + }, + "filtering_modal_source": { + "message": "Fonte" + }, + "filtering_modal_status_text_desc": { + "message": "Stato" + }, + "filtering_modal_status_text_error": { + "message": "Impossibile caricare l'anteprima. Riprovare" + }, + "filtering_modal_status_text_loading": { + "message": "Caricamento..." + }, + "filtering_modal_third_party": { + "message": "Applica solo alle richieste di terze parti" + }, + "filtering_modal_type": { + "message": "Tipo" + }, + "filtering_modal_unblock": { + "message": "Sblocca" + }, + "filtering_refresh_tab_short": { + "message": "Aggiorna" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Ricarica la pagina" + }, + "filtering_table_action": { + "message": "Azione" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Non è stato trovato nulla. \u003Creset>Disabilita i filtri\u003C/reset> o \u003Crefresh>ricarica la pagina\u003C/refresh> per vedere i registri" + }, + "filtering_table_filter": { + "message": "Filtro" + }, + "filtering_table_open_details": { + "message": "Apri i dettagli" + }, + "filtering_table_rule": { + "message": "Regola di filtraggio" + }, + "filtering_table_source": { + "message": "Sorgente" + }, + "filtering_table_status": { + "message": "Stato" + }, + "filtering_table_type": { + "message": "Tipo" + }, + "filtering_type_all": { + "message": "Tutto" + }, + "filtering_type_other": { + "message": "Altro" + }, + "filters_download_loading": { + "message": "Attendi mentre il database dei filtri viene caricato..." + }, + "filters_download_title": { + "message": "Il database dei filtri è in fase di caricamento..." + }, + "fullscreen_user_rules_title": { + "message": "Regole utente" + }, + "group_description_adblocking": { + "message": "Configura qui il blocco delle inserzioni per gestire fastidiosi banner, popup, annunci video e simili, una volta per tutte" + }, + "group_description_annoyances": { + "message": "Rimuovi finestre popup e altre notifiche fastidiose come gli avvisi sui cookies" + }, + "group_description_custom": { + "message": "Crea i tuoi filtri personali per ottimizzare il filtraggio web in base alle tue preferenze." + }, + "group_description_lang": { + "message": "Non limitarti: blocca le inserzioni nei siti web in qualsiasi lingua" + }, + "group_description_miscellaneous": { + "message": "Ulteriori impostazioni per configurare la tua navigazione web con AdGuard" + }, + "group_description_security": { + "message": "Proteggiti da malware, phishing e altre minacce online" + }, + "group_description_social": { + "message": "Nascondi pulsanti \"Mi piace\"/\"Condividi\" indesiderati e altri elementi di reti sociali" + }, + "group_description_stealth": { + "message": "Proteggi la tua identità e le tue informazioni personali sensibili da migliaia di tracciatori online bloccando i metodi di tracciamento più diffusi" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Non mostrarmelo più" + }, + "opera_search_permission_go_to_settings": { + "message": "Vai a Impostazioni" + }, + "opera_search_permission_warning": { + "message": "Per bloccare le inserzioni di ricerca, consenti l'accesso ai risultati della pagina di ricerca nelle impostazioni del browser" + }, + "options_about": { + "message": "Informazioni su" + }, + "options_about_libs": { + "message": "Librerie usate" + }, + "options_about_title": { + "message": "AdGuard Estensione Browser" + }, + "options_about_update_available": { + "message": "La versione %version% è disponibile. Verrà scaricata e installata automaticamente." + }, + "options_about_version": { + "message": "Versione" + }, + "options_acknowledgment": { + "message": "Ringraziamenti" + }, + "options_add_custom_filter": { + "message": "Aggiungi filtro personalizzato" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Aggiungi" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Controllo del filtro…" + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "L'URL ha restituito una pagina web invece di una lista filtri. Fornisci un collegamento diretto al file del filtro." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Ti preghiamo di riprovare o di contattare il supporto" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Impossibile aggiungere il filtro personalizzato" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nome filtro:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Affidabile" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Alcune regole di filtraggio possono alterare significativamente l\\'esperienza di navigazione e compromettere la privacy. Assicurati di utilizzare solo filtri di sviluppatori affidabili" + }, + "options_add_custom_filter_modal_title": { + "message": "Aggiungi filtro personalizzato" + }, + "options_all_limits_exceeded_warning": { + "message": "Hai raggiunto il limite di regole integrate attive. Il tuo browser ha modificato l'elenco dei filtri integrati attivi. Il numero di filtri abilitati è cambiato da %expected% a %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Hai raggiunto il limite del tuo browser per le regole integrate attive. Il tuo browser ha ridotto la lista dei filtri integrati attivi da %expected% a %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Il tuo browser limita \u003Cexternal-link>alcuni tipi di regole\u003C/external-link>. Per applicare tutte le regole, abilita \u003Cb>Consenti codici utente\u003C/b> nelle \u003Csettings-link>impostazioni dell'estensione\u003C/settings-link> nel browser" + }, + "options_allowlist": { + "message": "Lista bianca" + }, + "options_allowlist_alert_invert": { + "message": "La lista consensi è invertita. Gli annunci vengono bloccati solo sui siti web aggiunti alla lista." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Interrompi inversione\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard non blocca inserzioni e tracciatori nei siti web della lista" + }, + "options_allowlist_invalid_entries": { + "message": "Per salvare, mantieni solo domini o URL. Questi devono essere corretti: %entries%" + }, + "options_allowlist_invert": { + "message": "Inverti la lista consensi" + }, + "options_allowlist_invert_desc": { + "message": "Blocca inserzioni e tracciatori solo nei siti web in lista consentiti" + }, + "options_allowlist_leave_subtitle": { + "message": "Le modifiche apportate alla lista consentita saranno perse" + }, + "options_allowlist_menu": { + "message": "Azioni nella lista consensi" + }, + "options_anonymized_usage_data_description": { + "message": "Invia statistiche anonime sull'uso dell'estensione ad AdGuard. \u003Cbutton>Scopri di più\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Capito" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Questi dati includono:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nomi dei pulsanti che clicchi" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nomi degli schermi con cui interagisci" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificatori di sessione" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Questi dati sono anonimi e usati solo internamente. Non li condividiamo mai con terze parti" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Abbiamo bisogno di queste informazioni per analizzare e migliorare la funzionalità di AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dati d'uso dell'estensione" + }, + "options_anonymized_usage_data_title": { + "message": "Invia dati anonimizzati sull'uso dell'estensione" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Questo filtro personalizzato è già presente" + }, + "options_antibanner_custom_group": { + "message": "Personali" + }, + "options_antibanner_custom_group_description": { + "message": "Ti consente di aggiungere filtri da un file o da un URL" + }, + "options_antibanner_rules_count": { + "message": "Regole: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Aggiornato: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blocca inserzioni di ricerca e auto-promozioni dei siti web" + }, + "options_block_acceptable_ads_desc": { + "message": "Blocca inserzioni nei risultati di ricerca e auto-promozioni dei siti web. \u003Ca>Scopri di più\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Per bloccare i cookie, imposta la loro durata a 0" + }, + "options_block_known_trackers_description": { + "message": "Blocca i tracker e l'analisi web utilizzando il filtro AdGuard Protezione dal tracciamento" + }, + "options_block_known_trackers_title": { + "message": "Blocca trackers" + }, + "options_check_update_progress": { + "message": "Verifica in corso..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Azzera" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Tutte le statistiche sull'uso dei dati saranno eliminate definitivamente" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Azzerare statistiche?" + }, + "options_clipboard_permission_warning": { + "message": "Per copiare e incollare le regole consenti ad AdGuard di accedere agli Appunti. \u003Ca>Consenti\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Invia statistiche anonime sull'uso del filtro inserzioni ad AdGuard. \u003Ca>Scopri di più\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Aiuta a sviluppare i filtri AdGuard" + }, + "options_coming_soon": { + "message": "Prossimamente" + }, + "options_confirm_modal_cancel_button": { + "message": "Annulla" + }, + "options_copyright": { + "message": "Tutti i diritti riservati." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Per usare i filtri personali, abilita \u003Cb>Consenti codice utente\u003C/b> nelle \u003Csettings-link>impostazioni dell'estensione\u003C/settings-link> del browser" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Per utilizzare filtri personali, abilita la \u003Cb>modalità sviluppatore\u003C/b> nelle \u003Csettings-link>impostazioni dell'estensione\u003C/settings-link> del tuo browser" + }, + "options_desktop_app_promo_button_linux": { + "message": "Ottieni AdGuard per Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Ottieni AdGuard per Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Ottieni AdGuard per Windows" + }, + "options_desktop_app_promo_description": { + "message": "App come Spotify, Discord o Zoom possono ancora mostrare inserzioni e tracciare la tua attività" + }, + "options_desktop_app_promo_subdescription": { + "message": "La nostra app per sistemi fissi può proteggerti da essi" + }, + "options_desktop_app_promo_title": { + "message": "L'estensione protegge solo il browser" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Il tuo browser limita \u003Cexternal-link>alcuni tipi di regole\u003C/external-link>. Per applicare tutte le regole, abilita la \u003Cb>modalità sviluppatore\u003C/b> nelle \u003Csettings-link>impostazioni dell'estensione\u003C/settings-link> nel browser" + }, + "options_disable_webrtc_desc": { + "message": "Blocca WebRTC che può svelare il tuo vero indirizzo IP anche se usi un proxy o una VPN. Può fermare il funzionamento corretto di alcune piattaforme di messaggistica, di flusso dati o di giochi" + }, + "options_disable_webrtc_title": { + "message": "Blocco WebRTC" + }, + "options_discuss": { + "message": "Discuti di AdGuard" + }, + "options_do_you_like_question": { + "message": "Ti piace AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Esci da schermo intero" + }, + "options_editor_indicator_saved": { + "message": "Salvato" + }, + "options_editor_indicator_saving": { + "message": "In salvataggio…" + }, + "options_editor_leave_cancel": { + "message": "Torna alla modifica" + }, + "options_editor_leave_confirm": { + "message": "Sì, uscire" + }, + "options_editor_leave_title": { + "message": "Vuoi uscire senza salvare?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Apri Editor in una nuova scheda" + }, + "options_editor_save": { + "message": "Salva" + }, + "options_editor_save_error": { + "message": "Impossibile salvare le modifiche. Riprova o contatta l'assistenza" + }, + "options_empty_custom_filter": { + "message": "Non hai ancora alcun filtro personalizzato" + }, + "options_enable_autodetect_filter": { + "message": "Attiva automaticamente i filtri più appropriati" + }, + "options_enable_autodetect_filter_desc": { + "message": "Rileva la lingua del sito e attiva i filtri appropriati" + }, + "options_export_settings": { + "message": "Esporta impostazioni" + }, + "options_filters": { + "message": "Filtri" + }, + "options_filters_annoyances_consent_description": { + "message": "Stai per abilitare uno o più filtri fastidi. Essi bloccano elementi non correlati al contenuto del sito web o correlati ma fastidiosi per la tua esperienza d'uso. I proprietari dei siti web possono considerare questi elementi obbligatori: se li blocchi, puoi violare i loro termini; alcune funzionalità dei siti web possono non essere disponibili o possono non funzionare come previsto. Comprendi e accetti di essere l'unico responsabile del rispetto dei termini d'uso dei siti web che visiti usando i nostri prodotti e che AdGuard non è responsabile del rispetto dei termini d'uso dei siti web che visiti usando i nostri prodotti." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Abilita" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Pagina principale" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Per dettagli su cosa bloccano i filtri scocciature di AdGuard, vedi \u003Ca>Politica filtri\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Abilitare questi filtri?" + }, + "options_filters_annoyances_consent_title": { + "message": "Leggere attentamente prima di abilitare i filtri dei fastidi" + }, + "options_filters_back_button": { + "message": "Torna indietro" + }, + "options_filters_empty_title": { + "message": "Non è stato trovato nulla" + }, + "options_filters_enabled": { + "message": "Abilitati:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% e %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% e altri %more%" + }, + "options_filters_enabled_per_group": { + "message": "Abilitati: %current% di %total%" + }, + "options_filters_filter_link": { + "message": "Vai alla pagina iniziale" + }, + "options_filters_filter_tags": { + "message": "Filtra i tag" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Hai scelto di fidarti di questo filtro." + }, + "options_filters_filter_updated": { + "message": "aggiornato:" + }, + "options_filters_filter_version": { + "message": "versione:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Totale regole: %num%" + }, + "options_filters_last_checked": { + "message": "Ultimo controllo: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Tutti i filtri" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Disabilitati" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Abilitati" + }, + "options_filters_no_enabled": { + "message": "Nessun filtro abilitato" + }, + "options_filters_of_group": { + "message": "Filtri del gruppo \"%groupName%\"" + }, + "options_filters_search": { + "message": "Cerca" + }, + "options_filters_search_filter": { + "message": "Cerca filtro" + }, + "options_first_party_block_cookies_warning": { + "message": "Se blocchi questi cookie, alcuni siti web possono corrompersi o smettere di funzionare" + }, + "options_first_party_desc": { + "message": "Impedisce ai siti web di ricordare i tuoi dati, come le tue credenziali di accesso e le tue preferenze linguistiche, limitando la durata dei cookie di prima parte" + }, + "options_first_party_title": { + "message": "Elimina i cookie proprietari (non consigliato)" + }, + "options_general_settings": { + "message": "Generali" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Impedisci a terze parti di conoscere quale sito web stai visitando" + }, + "options_hide_referrer_title": { + "message": "Nascondi il referente a terze parti" + }, + "options_hide_search_queries_desc": { + "message": "Nasconde le tue ricerche ai siti web visitati tramite i risultati del motore di ricerca" + }, + "options_hide_search_queries_title": { + "message": "Nascondi le richieste di ricerca" + }, + "options_import_configuration_applying_subtitle": { + "message": "Rimpiazzo delle impostazioni correnti con quelle importate. Il filtraggio è disabilitato durante l'importazione" + }, + "options_import_configuration_applying_title": { + "message": "Importazione..." + }, + "options_import_configuration_confirm_button": { + "message": "Importa" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Le impostazioni importate rimpiazzeranno quelle attuali. Le altre impostazioni non saranno influenzate" + }, + "options_import_configuration_confirm_title": { + "message": "Importa impostazioni" + }, + "options_import_configuration_error_button": { + "message": "Chiudi" + }, + "options_import_configuration_error_subtitle": { + "message": "Controlla il collegamento di importazione e tenta ancora. Se il problema persiste, contatta l\\'assistenza" + }, + "options_import_configuration_error_title": { + "message": "Impossibile importare le impostazioni" + }, + "options_import_configuration_success_button": { + "message": "Chiudi" + }, + "options_import_configuration_success_subtitle": { + "message": "Impostazioni importate correttamente" + }, + "options_import_configuration_success_title": { + "message": "Tutto fatto" + }, + "options_import_settings": { + "message": "Importa impostazioni" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverti" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Le inserzioni e i tracciatori saranno bloccati solo nei siti web della lista consensi" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invertire la lista consensi?" + }, + "options_leave_feedback": { + "message": "Lascia feedback" + }, + "options_lifetime_minutes": { + "message": "Durata, minuti" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Hai raggiunto il limite delle regole regex aggiunte dagli utenti. %maximum% di %current% regole regex sono abilitate." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Hai raggiunto il limite di regole regex aggiunte dall'utente. %maximum% di %current% regole sono abilitate. Per aggiungere altre regole regex rimuovi alcune regole esistenti" + }, + "options_limits_warning_dynamic_rules": { + "message": "Hai raggiunto il limite di regole aggiunte dagli utenti. Sono abilitate %maximum% di %current% regole." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Hai raggiunto il limite di regole aggiunte dall'utente. Sono abilitate %maximum% di %current% regole. Per aggiungere altre regole rimuovi alcune regole esistenti" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Hai raggiunto il limite delle regole non sicure aggiunte dagli utenti. %maximum% di %current% regole non sicure sono abilitate." + }, + "options_limits_warning_static_filters": { + "message": "Hai raggiunto il limite di filtri integrati attivi. %maximum% di %current% filtri sono abilitati. Per attivare nuove regole, disabilita alcuni filtri integrati." + }, + "options_limits_warning_static_filters_browser": { + "message": "Hai raggiunto il limite del tuo browser per i filtri integrati attivi. %maximum% di %current% filtri sono abilitati. Per attivare nuovi filtri, disabilita alcuni filtri integrati" + }, + "options_limits_warning_static_regex_rules": { + "message": "Hai raggiunto il limite di regole regex integrate attive. %maximum% di %current% regole regex sono abilitate. Per attivare nuove regole, disabilita alcuni filtri integrati." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Hai raggiunto il limite di regole regex integrate attive. Per attivare altre regole, disabilita alcuni filtri integrati" + }, + "options_limits_warning_static_rules": { + "message": "Hai raggiunto il limite di regole integrate attive. Sono abilitate %maximum% di %current% regole. Per attivare nuove regole, disabilita alcuni filtri integrati." + }, + "options_limits_warning_static_rules_browser": { + "message": "Hai raggiunto il limite del tuo browser per le regole integrate attive. Per attivare nuove regole, disabilita alcuni filtri integrati" + }, + "options_loader_applying_changes": { + "message": "Applicazione cambiamenti…" + }, + "options_miscellaneous_settings": { + "message": "Impostazioni aggiuntive" + }, + "options_modified_first_party_cookie": { + "message": "Cookie di prime parti modificati" + }, + "options_modified_third_party_cookie": { + "message": "Cookie di terze parti modificati" + }, + "options_nav_better_than_extension": { + "message": "Perché l'app AdGuard è migliore dell'estensione?" + }, + "options_nav_compare": { + "message": "Comparare" + }, + "options_navigation": { + "message": "Navigazione" + }, + "options_open_changelog": { + "message": "Novità" + }, + "options_open_log": { + "message": "Apri registro di filtraggio" + }, + "options_popup_call_to_action": { + "message": "Inserisci l'URL valido o il percorso al file del filtro nel campo soprastante." + }, + "options_popup_check_false_description": { + "message": "Errore durante l'aggiunta del tuo filtro personalizzato." + }, + "options_popup_check_false_title": { + "message": "Errore" + }, + "options_popup_checking_filter": { + "message": "Controllo del filtro" + }, + "options_popup_description": { + "message": "Sarai iscritto a quel filtro." + }, + "options_popup_filter_description": { + "message": "Descrizione:" + }, + "options_popup_filter_homepage": { + "message": "Pagina iniziale:" + }, + "options_popup_filter_rules_count": { + "message": "Numero regole:" + }, + "options_popup_filter_title": { + "message": "Titolo:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versione:" + }, + "options_popup_import_error_file_description": { + "message": "Qualcosa è andato storto." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Per importare questo file di impostazioni, consenti ad AdGuard di modificare le tue impostazioni relative alla riservatezza." + }, + "options_popup_import_error_title": { + "message": "Impossibile importare impostazioni" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "L'estensione del file deve essere %extension%" + }, + "options_popup_import_success_title": { + "message": "Impostazioni importate" + }, + "options_popup_next_button": { + "message": "Prossimo" + }, + "options_popup_subscribe_button": { + "message": "Sottoscrivi" + }, + "options_popup_title_placeholder": { + "message": "Inserisci il nome del filtro" + }, + "options_popup_trusted_filter_description": { + "message": "I filtri affidabili possono usare potenti gestori delle regole di filtraggio che potrebbero risultare pericolosi nelle mani sbagliate. Non spuntare questa casella a meno che tu non abbia piena fiducia." + }, + "options_popup_trusted_filter_title": { + "message": "Affidabile" + }, + "options_popup_try_again_button": { + "message": "Riprova" + }, + "options_popup_update_error": { + "message": "Impossibile ottenere aggiornamenti. Riprovare più tardi." + }, + "options_popup_update_filter": { + "message": "è stato aggiornato." + }, + "options_popup_update_filters": { + "message": "sono stati aggiornati." + }, + "options_popup_update_not_found": { + "message": "I tuoi filtri sono aggiornati" + }, + "options_popup_update_title_error": { + "message": "Errore aggiornamento filtri" + }, + "options_popup_updating_filters": { + "message": "Filtri in aggiornamento…" + }, + "options_popup_url_placeholder": { + "message": "Inserisci URL o percorso file" + }, + "options_popup_url_title": { + "message": "Nuovo abbonamento al filtro" + }, + "options_popup_version_update_changelog_text": { + "message": "Cosa c'è di nuovo in questa versione?" + }, + "options_popup_version_update_description_major": { + "message": "È un importante aggiornamento dell'estensione che apporta molte nuove funzionalità e miglioramenti." + }, + "options_popup_version_update_description_minor": { + "message": "Questa versione contiene principalmente correzioni di bug e miglioramenti minori." + }, + "options_popup_version_update_disable_notification": { + "message": "Disabilita notifiche" + }, + "options_popup_version_update_offer": { + "message": "Sapevi che le capacità di AdGuard non si limitano a questo browser?" + }, + "options_popup_version_update_offer_button_text": { + "message": "PER SAPERNE DI PIÙ" + }, + "options_popup_version_update_title_text": { + "message": "L'estensione AdGuard è stata aggiornata alla versione %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Fa sì che WebRTC usi una politica di indirizzo IP più rigorosa per aiutare a mantenere nascosto il tuo vero indirizzo IP quando usi un proxy o una VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Impedisci che WebRTC sveli l'indirizzo IP" + }, + "options_privacy": { + "message": "Protezione dal tracciamento" + }, + "options_privacy_desc": { + "message": "Protegge la tua attività online e i dati personali dai tracker web" + }, + "options_privacy_policy": { + "message": "Politica sulla Riservatezza" + }, + "options_privacy_title": { + "message": "Protezione dal tracciamento" + }, + "options_rate_us_cta": { + "message": "Valutaci" + }, + "options_remove_client_data_desc": { + "message": "Impedisce a Google Chrome di inviare informazioni sulla sua versione e sulle modifiche ai domini Google" + }, + "options_remove_client_data_title": { + "message": "Rimuovi intestazione X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Rimuovi" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Rimuovere questo filtro?" + }, + "options_report_bug": { + "message": "Segnala un bug" + }, + "options_reset_settings": { + "message": "Reimposta preferenze" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Reimposta" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Tutte le impostazioni saranno reimpostate ai valori prescelti" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Reimpostare preferenze?" + }, + "options_reset_settings_done": { + "message": "Le preferenze sono state reimpostate" + }, + "options_reset_settings_error": { + "message": "Errore durante la reimpostazione delle preferenze" + }, + "options_reset_stats": { + "message": "Azzera statistiche" + }, + "options_reset_stats_done": { + "message": "Le statistiche sono state ripristinate" + }, + "options_rule_limits": { + "message": "Limiti regole" + }, + "options_rule_limits_description": { + "message": "Chrome limita il numero di regole che possono essere applicate" + }, + "options_rule_limits_dynamic": { + "message": "Regole dinamiche" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regole espressione regolare: incluse in regole aggiunte dall'utente" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Regole dinamiche non sicure (usate per alcuni modificatori avanzati, come $$redirect o $$cookie) — incluse nelle regole aggiunte dall'utente" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Regole aggiunte dall'utente, come \u003Cuser_rules>regole utente\u003C/user_rules>, \u003Callowlist>siti web consentiti\u003C/allowlist> e \u003Ccustom_filters>filtri personalizzati\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Regole aggiunte dall'utente, come \u003Cuser_rules>regole utente\u003C/user_rules> e \u003Callowlist>siti web consentiti\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% di %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Regole statiche" + }, + "options_rule_limits_static_rules_all": { + "message": "Regole da \u003Ca>filtri incorporati\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regole Regex: incluse in quanto sopra" + }, + "options_rule_limits_static_rulesets": { + "message": "Serie di regole statiche" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtri incorporati\u003C/a>, come Blocca fastidi o Filtri specifici per lingua" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opzione 3. Se sei soddisfatto dei filtri predefiniti attualmente abilitati, \u003Ca>chiudi questo avviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opzione 3. Se sei soddisfatto del filtro predefinito attualmente abilitato, \u003Ca>chiudi questo avviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opzione 1. Elimina le estensioni di blocca-inserzioni non necessarie dal tuo browser. Per riattivare i filtri menzionati nella sezione \"Filtri abilitati prima dell'aggiornamento\", clicca \u003Ca>riattiva filtri.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opzione 2. Installa l'app AdGuard Ad Blocker: non ha restrizioni sulle regole di filtraggio. \u003Ca>Ottieni l'app AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Le tue possibili azioni" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Il limite delle regole integrate attive è stato superato dopo un aggiornamento o l'aggiunta di una nuova estensione. Secondo Manifest V3, il tuo browser Chrome ha reagito disabilitando tutti i filtri integrati dell'estensione tranne quelli predefiniti." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Cosa è successo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtri abilitati prima dell'aggiornamento" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtri abilitati ora" + }, + "options_rule_limits_warning_title": { + "message": "Il browser ha modificato l'elenco dei filtri attivi" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Rimuovi i limiti delle regole e ottieni una protezione estesa che funziona su tutti i browser" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installa l'app desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Vai ai filtri" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gestisci estensioni" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Le estensioni del browser condividono lo stesso limite di regole. Rimuovendo altri blocchi inserzioni potresti liberare più regole per l'estensione del browser AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Rimuovi altri blocchi inserzioni" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Abilita i filtri di cui hai bisogno. I filtri specifici per lingua e per la riservatezza possono utilizzare molte regole" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Esamina i filtri disponibili" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Ecco cosa puoi fare" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limite raggiunto — alcuni filtri sono stati disabilitati" + }, + "options_rule_syntax": { + "message": "Sintassi regola" + }, + "options_safebrowsing_enabled": { + "message": "Protezione da phishing e malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Avvisa riguardo a siti web dannosi e di phishing usando il modulo Sicurezza di navigazione di AdGuard. \u003Ca>Leggi di più\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 ore" + }, + "options_select_update_period_1h": { + "message": "1 ora" + }, + "options_select_update_period_24h": { + "message": "24 ore" + }, + "options_select_update_period_48h": { + "message": "48 ore" + }, + "options_select_update_period_6h": { + "message": "6 ore" + }, + "options_select_update_period_default": { + "message": "Predefinito" + }, + "options_select_update_period_disabled": { + "message": "Disabilitato" + }, + "options_send_not_track_desc": { + "message": "Invia richieste \u003Cgpc>Global Privacy Control\u003C/gpc> e \u003Cdnt>Do Not Track\u003C/dnt> ai siti web visitati" + }, + "options_send_not_track_title": { + "message": "Chiedi ai siti web di non tracciarmi" + }, + "options_set_update_interval": { + "message": "Aggiornamento automatico dei filtri" + }, + "options_set_update_interval_desc": { + "message": "Mantiene i filtri aggiornati per un bloccaggio delle inserzioni più efficace" + }, + "options_settings": { + "message": "Impostazioni di AdGuard" + }, + "options_share_settings": { + "message": "Condividi impostazioni" + }, + "options_show_adguard_full_version_title": { + "message": "Mostra informazioni sulla versione completa di AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notifica sugli aggiornamenti dell'estensione" + }, + "options_show_blocked_ads_count_title": { + "message": "Indica il numero di annunci bloccati sull'icona dell'estensione AdGuard" + }, + "options_show_context_menu_title": { + "message": "Aggiungi l'elemento AdGuard al menù contestuale del browser" + }, + "options_site": { + "message": "Sito web ufficiale" + }, + "options_skip_to_main_content": { + "message": "Salta al contenuto principale" + }, + "options_stealth_general_title": { + "message": "Generale" + }, + "options_stealth_miscellaneous_title": { + "message": "Varie" + }, + "options_stealth_tracking_methods_title": { + "message": "Metodi di monitoraggio" + }, + "options_strip_tracking_params_description": { + "message": "Rimuove i parametri di tracciamento dagli URL delle pagine utilizzando il filtro anti tracciamento degli URL di AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Elimina i parametri di tracciamento dagli URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parametri di monitoraggio rimossi" + }, + "options_theme_selector_dark": { + "message": "Scuro" + }, + "options_theme_selector_light": { + "message": "Chiaro" + }, + "options_theme_selector_system": { + "message": "Predefinito di sistema" + }, + "options_third_party_block_cookies_warning": { + "message": "Se blocchi questi cookie, può essere necessario accedere nuovamente ad alcuni siti web o affrontare altri inghippi correlati ai cookie" + }, + "options_third_party_desc": { + "message": "Impedisce agli inserzionisti di monitorare il tuo comportamento in più pagine limitando la durata dei cookie di terze parti" + }, + "options_third_party_title": { + "message": "Elimina i cookie di terze parti" + }, + "options_update_antibanner_filters": { + "message": "Ricerca aggiornamenti filtri" + }, + "options_use_optimized_filters": { + "message": "Utilizza filtri ottimizzati" + }, + "options_use_optimized_filters_desc": { + "message": "Utilizza versioni dei filtri più brevi con solo le regole più popolari per risparmiare traffico. Più adatto ai browser mobile" + }, + "options_user_rules_clear_search": { + "message": "Cancella ricerca" + }, + "options_user_rules_create_rule": { + "message": "Crea regola" + }, + "options_user_rules_delete_all": { + "message": "Cancella tutto" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Tutte le regole verranno eliminate definitivamente" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Cancellare tutto?" + }, + "options_user_rules_delete_all_success": { + "message": "Tutte le regole utente sono state eliminate" + }, + "options_user_rules_delete_rule": { + "message": "Rimuovere la regola" + }, + "options_user_rules_deleted_notification": { + "message": "Regola utente eliminata:" + }, + "options_user_rules_description_key": { + "message": "Le tue regole per bloccare e sbloccare inserzioni o interi siti web" + }, + "options_user_rules_edit_rule": { + "message": "Modifica regola" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Vai all'editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Le tue regole appariranno qui dopo averlo chiuso" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor aperto in un'altra finestra" + }, + "options_user_rules_empty_placeholder": { + "message": "Ancora nessuna regola" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Evidenziazione delle regole…" + }, + "options_user_rules_import_error": { + "message": "Impossibile importare le regole utente. Riprova" + }, + "options_user_rules_import_success": { + "message": "Regole utente importate correttamente" + }, + "options_user_rules_menu": { + "message": "Azioni nelle regole utente" + }, + "options_user_rules_no_match": { + "message": "Non è stato trovato nulla" + }, + "options_user_rules_search_placeholder": { + "message": "Cerca" + }, + "options_user_rules_switch_to_editor": { + "message": "Passa alla vista dell'editor" + }, + "options_user_rules_switch_to_list": { + "message": "Passa alla vista elenco" + }, + "options_user_rules_undo": { + "message": "Annulla" + }, + "options_userfilter": { + "message": "Regole utente" + }, + "options_userfilter_description_key": { + "message": "Puoi aggiungere le tue regole qui. Questa opzione è rivolta ad utenti esperti che hanno familiarità con HTML/CSS. Leggi il \u003Ca>tutorial sulle regole di filtraggio\u003C/a> per imparare a scrivere le tue regole personalizzate." + }, + "options_userfilter_export": { + "message": "Esporta" + }, + "options_userfilter_import": { + "message": "Importa" + }, + "options_userfilter_leave_subtitle": { + "message": "Le modifiche apportate alle regole saranno perse" + }, + "options_userfilter_line_break": { + "message": "Interruzione di riga" + }, + "options_userfilter_line_break_off": { + "message": "Interruzione di riga: Disabilitata" + }, + "options_userfilter_line_break_on": { + "message": "Interruzione di riga: Abilitata" + }, + "options_userfilter_subtitle_key": { + "message": "Consenti di aggiungere le tue regole di filtraggio" + }, + "popup_abuse_site": { + "message": "Segnala un problema" + }, + "popup_adguard_footer_title": { + "message": "Proteggi il tuo dispositivo mobile" + }, + "popup_adguard_for_android": { + "message": "Adguard per Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard per iOS" + }, + "popup_block_site_ads_option": { + "message": "Blocca inserzioni manualmente" + }, + "popup_get_system_wide_protection": { + "message": "Ottieni protezione a livello di sistema" + }, + "popup_header_cta_link": { + "message": "Come rafforzare la protezione" + }, + "popup_header_update_filters": { + "message": "Controlla aggiornamenti filtri" + }, + "popup_limits_exceeded_warning": { + "message": "Il tuo browser ha modificato l'elenco dei filtri integrati attivi" + }, + "popup_open_filtering_log": { + "message": "Apri il registro di filtraggio" + }, + "popup_open_settings": { + "message": "Apri le impostazioni di AdGuard" + }, + "popup_protection_button": { + "message": "Protezione AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Elimina le regole utente per questo sito web" + }, + "popup_resume_protection_button": { + "message": "Riprendi" + }, + "popup_security_report": { + "message": "Verifica sicurezza sito web" + }, + "popup_site_exception_information": { + "message": "Il filtro è disabilitato perché può interferire con il funzionamento di questo sito web." + }, + "popup_site_filtering_state_disabled": { + "message": "La protezione è disattivata" + }, + "popup_site_filtering_state_disabling": { + "message": "Disattivazione protezione..." + }, + "popup_site_filtering_state_enabled": { + "message": "La protezione è attiva" + }, + "popup_site_filtering_state_enabling": { + "message": "Attivazione protezione..." + }, + "popup_site_filtering_state_loading": { + "message": "Caricamento..." + }, + "popup_site_filtering_state_paused": { + "message": "La protezione è in pausa" + }, + "popup_site_filtering_state_pausing": { + "message": "Protezione in pausa..." + }, + "popup_site_filtering_state_resuming": { + "message": "Ripresa della protezione..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Pagina sicura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "per tutti i siti web" + }, + "popup_statistics_all_categories": { + "message": "Tutti" + }, + "popup_statistics_category_advertising": { + "message": "Annunci" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoria statistiche" + }, + "popup_statistics_category_other": { + "message": "Altro" + }, + "popup_statistics_category_social_media": { + "message": "Social media" + }, + "popup_statistics_category_trackers": { + "message": "Tracciatori" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Ago" + }, + "popup_statistics_months_dec": { + "message": "Dic" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Gen" + }, + "popup_statistics_months_jul": { + "message": "Lug" + }, + "popup_statistics_months_jun": { + "message": "Giu" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Mag" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Ott" + }, + "popup_statistics_months_sep": { + "message": "Set" + }, + "popup_statistics_time_day": { + "message": "24 ore" + }, + "popup_statistics_time_label": { + "message": "Lasso di tempo delle statistiche" + }, + "popup_statistics_time_month": { + "message": "30 giorni" + }, + "popup_statistics_time_week": { + "message": "7 giorni" + }, + "popup_statistics_time_year": { + "message": "1 anno" + }, + "popup_statistics_total": { + "message": "Totale" + }, + "popup_statistics_week_days_fri": { + "message": "Ven" + }, + "popup_statistics_week_days_mon": { + "message": "Lun" + }, + "popup_statistics_week_days_sat": { + "message": "Sab" + }, + "popup_statistics_week_days_sun": { + "message": "Dom" + }, + "popup_statistics_week_days_thu": { + "message": "Gio" + }, + "popup_statistics_week_days_tue": { + "message": "Mar" + }, + "popup_statistics_week_days_wed": { + "message": "Mer" + }, + "popup_switch_button": { + "message": "Protezione per il sito web attuale" + }, + "popup_tab_actions": { + "message": "Azioni" + }, + "popup_tab_blocked_all_count": { + "message": "Totale bloccate: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloccati: %num%" + }, + "popup_tab_current_website": { + "message": "Sito web attuale" + }, + "popup_tab_statistics": { + "message": "Statistiche" + }, + "popup_tabs": { + "message": "Schede" + }, + "popup_tooltip_loading": { + "message": "In caricamento…" + }, + "popup_tooltip_protection_disabled": { + "message": "Protezione disabilitata" + }, + "popup_tooltip_protection_enabled": { + "message": "Protezione abilitata" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Alcune regole non sono applicate" + }, + "popup_tooltip_update_available": { + "message": "Aggiornamento disponibile" + }, + "post_install_loading": { + "message": "Caricamento estensione…" + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Limite di regole superato nell'estensione del browser AdGuard. Controlla i filtri e disabilita quelli di cui non hai bisogno" + }, + "text_collapser_hide_default": { + "message": "Nascondi il testo completo" + }, + "text_collapser_show_default": { + "message": "Mostra il testo completo" + }, + "update_available_desc": { + "message": "Per bloccare efficacemente le inserzioni, mantieni la tua estensione e i filtri aggiornati" + }, + "update_available_title": { + "message": "Aggiornamenti disponibili" + }, + "update_available_update_btn": { + "message": "Aggiorna" + }, + "update_check": { + "message": "Controlla aggiornamenti" + }, + "update_checking_in_progress": { + "message": "Controllo aggiornamenti…" + }, + "update_failed_text": { + "message": "Impossibile completare l'aggiornamento" + }, + "update_failed_try_again_btn": { + "message": "Riprova" + }, + "update_installing_in_progress_desc": { + "message": "L'estensione si riavvierà dopo l'aggiornamento" + }, + "update_installing_in_progress_title": { + "message": "Estensione e filtri in aggiornamento…" + }, + "update_not_needed": { + "message": "La tua estensione e i tuoi filtri sono aggiornati" + }, + "update_success_text": { + "message": "Estensione e filtri aggiornati" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ja/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ja/messages.json new file mode 100644 index 0000000..4d4e484 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ja/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% が自動的に有効になりました。" + }, + "alert_popup_filter_enabled_title": { + "message": "フィルタの自動有効化" + }, + "background_tab_title": { + "message": "バックグラウンド・タブ" + }, + "blocking_pages_advanced_button": { + "message": "詳細設定" + }, + "blocking_pages_btn_go_back": { + "message": "戻る" + }, + "blocking_pages_btn_proceed": { + "message": "そのままページを開く" + }, + "blocking_pages_malware": { + "message": "\u003Cstrong>%host%\u003C/strong> はマルウェアのページとして報告されていますので、ユーザー様のセキュリティ設定に基づいてブロックしました。" + }, + "blocking_pages_more_info_button": { + "message": "詳細はこちら" + }, + "blocking_pages_page_title": { + "message": "アクセス拒否" + }, + "blocking_pages_phishing": { + "message": "\u003Cstrong>%host%\u003C/strong> はフィッシング詐欺ページとして報告されていますので、ユーザー様のセキュリティ設定に基づいてブロックしました。" + }, + "blocking_pages_rule_content_title": { + "message": "AdGuardは以下のフィルタリング・ルールに従って、このページの読み込みを防止しました:" + }, + "blocking_pages_rule_header_title": { + "message": "AdGuardによってブロックされました" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuardはこのページへのアクセスをブロックしました" + }, + "clear_button_title": { + "message": "クリア" + }, + "close_button_title": { + "message": "閉じる" + }, + "context_block_site_ads": { + "message": "手動で広告をブロックする" + }, + "context_complaint_website": { + "message": "問題を報告する" + }, + "context_disable_protection": { + "message": "AdGuardの保護を一時的に停止する" + }, + "context_enable_protection": { + "message": "AdGuard保護を再開する" + }, + "context_open_log": { + "message": "フィルタリングログを開く" + }, + "context_open_settings": { + "message": "AdGuard 設定" + }, + "context_security_report": { + "message": "サイトの安全性を確認する" + }, + "context_site_exception": { + "message": "このウェブサイトは例外として登録されています" + }, + "context_site_filtering_disabled": { + "message": "AdGuard はこのページをフィルタリングできません" + }, + "context_site_filtering_off": { + "message": "このウェブサイトでフィルタリングを無効にする" + }, + "context_site_filtering_on": { + "message": "このウェブサイトでフィルタリングを有効にする" + }, + "context_site_protection_disabled": { + "message": "AdGuardの保護を停止中" + }, + "context_update_antibanner_filters": { + "message": "フィルタの更新を確認する" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "AdGuardは、広告やポップアップ対処には比類のない広告ブロック拡張機能です。Facebook、YouTubeやその他のサイトで広告をブロックします。" + }, + "filtering_clear_log_events": { + "message": "ログをクリアする" + }, + "filtering_log_actions_menu": { + "message": "フィルタリングログのアクションメニュー" + }, + "filtering_log_assumed_rule_description": { + "message": "これは想定ルールです。詳細は\u003Ca>ナレッジベース\u003C/a>をご覧ください。" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP request method(HTTPリクエストメソッド)" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP status code(HTTPステータスコード)" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "サードパーティリクエスト" + }, + "filtering_log_details_modal_back_button": { + "message": "リクエストへ戻る" + }, + "filtering_log_details_modal_beautify_button": { + "message": "見やすくする" + }, + "filtering_log_details_modal_try_again": { + "message": "再試行する" + }, + "filtering_log_filter_allowed": { + "message": "許可済み" + }, + "filtering_log_filter_blocked": { + "message": "ブロック済み" + }, + "filtering_log_filter_modified": { + "message": "変更済み" + }, + "filtering_log_filter_regular": { + "message": "通常" + }, + "filtering_log_filter_user_rules": { + "message": "ユーザールール" + }, + "filtering_log_hide_referrer": { + "message": "サードパーティからリファラを隠蔽済み" + }, + "filtering_log_hide_search_queries": { + "message": "検索クエリ隠蔽済み" + }, + "filtering_log_in_allowlist": { + "message": "このサイトはホワイトリストに入っています" + }, + "filtering_log_modified_rules": { + "message": "変更されたルール数: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "保存する" + }, + "filtering_log_preserve_log_modal_description": { + "message": "※このオプションはメモリの使用量を大幅に増加させる可能性があります" + }, + "filtering_log_preserve_log_modal_title": { + "message": "ログを保存しますか?" + }, + "filtering_log_preserve_log_off": { + "message": "ログを保持しない" + }, + "filtering_log_preserve_log_on": { + "message": "ログを保存する" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "次回から表示しない" + }, + "filtering_log_privacy_applied_rules": { + "message": "トラッキング防止適用済み" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Dataヘッダ削除済み" + }, + "filtering_log_search_string": { + "message": "検索" + }, + "filtering_log_search_tabs_placeholder": { + "message": "タブで検索" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Trackヘッダ送信済み" + }, + "filtering_log_status_allowed": { + "message": "許可済み" + }, + "filtering_log_status_blocked": { + "message": "ブロック済み" + }, + "filtering_log_status_modified": { + "message": "修正済み" + }, + "filtering_log_status_processed": { + "message": "処理済み" + }, + "filtering_log_stealth_rules": { + "message": "トラッキング防止ルールの数: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "リクエスト元" + }, + "filtering_log_tag_request_status": { + "message": "フィルタリングステータス" + }, + "filtering_log_tag_request_type": { + "message": "リクエストタイプ" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "ホワイトリスト登録もしくはブロック解除されているリクエスト" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "ブロック済みリクエスト数" + }, + "filtering_log_tag_tooltip_css": { + "message": "Style sheet (スタイルシート)" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "ファーストパーティリクエスト" + }, + "filtering_log_tag_tooltip_html": { + "message": "ドキュメントとサブドキュメント" + }, + "filtering_log_tag_tooltip_img": { + "message": "画像" + }, + "filtering_log_tag_tooltip_js": { + "message": "JavaScriptスクリプト" + }, + "filtering_log_tag_tooltip_media": { + "message": "メディア" + }, + "filtering_log_tag_tooltip_modified": { + "message": "変更されたリクエスト" + }, + "filtering_log_tag_tooltip_other": { + "message": "フォント、pings、WebRTC、WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "フィルタリングを適用せずに処理されたリクエスト" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "サードパーティリクエスト" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "ユーザールールによって影響を受けたリクエスト" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequestsとフェッチ・リクエスト" + }, + "filtering_log_title": { + "message": "フィルタリングログ" + }, + "filtering_menu_open_filters": { + "message": "カスタマイズ" + }, + "filtering_modal_add_rule": { + "message": "追加する" + }, + "filtering_modal_allow_title": { + "message": "許可ルールの追加" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "適用済みルール | 適用済みルール" + }, + "filtering_modal_apply_domains": { + "message": "全ウェブサイトに適用する" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "想定ルール: | 想定ルール:" + }, + "filtering_modal_block": { + "message": "ブロックする" + }, + "filtering_modal_block_again": { + "message": "再度ブロックする" + }, + "filtering_modal_block_title": { + "message": "ブロックルールの追加" + }, + "filtering_modal_converted_to": { + "message": "変換後:" + }, + "filtering_modal_cookie": { + "message": "クッキー: " + }, + "filtering_modal_copied": { + "message": "コピー済み" + }, + "filtering_modal_copy_to_clipboard": { + "message": "クリップボードにコピー" + }, + "filtering_modal_declarative_rule": { + "message": "DNRルール:" + }, + "filtering_modal_element": { + "message": "要素:" + }, + "filtering_modal_exception_title": { + "message": "例外の追加" + }, + "filtering_modal_filter": { + "message": "フィルタ" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "フィルタリングステータス" + }, + "filtering_modal_hide_full_element": { + "message": "要素の全文を非表示にする" + }, + "filtering_modal_hide_full_rule": { + "message": "ルールの全文を非表示にする" + }, + "filtering_modal_hide_full_url": { + "message": "フルURLを非表示にする" + }, + "filtering_modal_important": { + "message": "ルールをより優先させる" + }, + "filtering_modal_info_title": { + "message": "詳細情報の確認" + }, + "filtering_modal_open_in_new_tab": { + "message": "新しいタブで開く" + }, + "filtering_modal_options_desc": { + "message": "オプション" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "元のルール: | 元のルール:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "許可されるべきもの" + }, + "filtering_modal_patterns_desc_block": { + "message": "ブロックされるべきもの" + }, + "filtering_modal_preview_request_button": { + "message": "プレビュー" + }, + "filtering_modal_preview_title": { + "message": "プレビュー" + }, + "filtering_modal_privacy": { + "message": "トラッキング防止" + }, + "filtering_modal_remove_allowlist": { + "message": "ホワイトリストから削除する" + }, + "filtering_modal_remove_param": { + "message": "クエリパラメータを削除" + }, + "filtering_modal_remove_user": { + "message": "ルールを削除する" + }, + "filtering_modal_rule": { + "message": "ルール:" + }, + "filtering_modal_rule_text_desc": { + "message": "ルール" + }, + "filtering_modal_rules": { + "message": "ルール:" + }, + "filtering_modal_show_full_element": { + "message": "要素の全文を表示する" + }, + "filtering_modal_show_full_rule": { + "message": "ルールの全文を表示する" + }, + "filtering_modal_show_full_url": { + "message": "フルURLを表示する" + }, + "filtering_modal_source": { + "message": "ソース" + }, + "filtering_modal_status_text_desc": { + "message": "ステータス" + }, + "filtering_modal_status_text_error": { + "message": "プレビューを読み込めませんでした。もう一度お試しください。" + }, + "filtering_modal_status_text_loading": { + "message": "読み込み中…" + }, + "filtering_modal_third_party": { + "message": "サードパーティのリクエストのみに適用" + }, + "filtering_modal_type": { + "message": "種類" + }, + "filtering_modal_unblock": { + "message": "ブロックを解除する" + }, + "filtering_refresh_tab_short": { + "message": "更新する" + }, + "filtering_refresh_tab_short_mobile": { + "message": "ページを更新する" + }, + "filtering_table_action": { + "message": "アクション" + }, + "filtering_table_empty_reload_page_desc": { + "message": "何も見つかりません。ログ記録を表示するには、\u003Creset>フィルタを無効にする\u003C/reset>か、\u003Crefresh>ページを再読み込み\u003C/refresh>してみてください。" + }, + "filtering_table_filter": { + "message": "フィルタ" + }, + "filtering_table_open_details": { + "message": "詳細を見る" + }, + "filtering_table_rule": { + "message": "フィルタリング・ルール名" + }, + "filtering_table_source": { + "message": "発行元" + }, + "filtering_table_status": { + "message": "ステータス" + }, + "filtering_table_type": { + "message": "種類" + }, + "filtering_type_all": { + "message": "全て" + }, + "filtering_type_other": { + "message": "その他" + }, + "filters_download_loading": { + "message": "フィルタデータベースを読み込み中です。少々お待ちください…" + }, + "filters_download_title": { + "message": "フィルタのデータベースを読み込み中..." + }, + "fullscreen_user_rules_title": { + "message": "ユーザールール" + }, + "group_description_adblocking": { + "message": "こちらで広告ブロックを設定して、迷惑なバナー、ポップアップ、ビデオ広告などをすべて一掃することができます。" + }, + "group_description_annoyances": { + "message": "ポップアップウィンドウやCookie使用同意通知などのような煩わしい通知を削除します。" + }, + "group_description_custom": { + "message": "独自のフィルタを作成・追加することで、ご自身に合わせてフィルタリング(広告ブロック)をさらにカスタマイズすることができます。" + }, + "group_description_lang": { + "message": "どの言語のウェブサイトでも広告をブロックできます。" + }, + "group_description_miscellaneous": { + "message": "AdGuardの機能をさらに微調整できる追加設定です。" + }, + "group_description_security": { + "message": "マルウェア、フィッシングやその他のオンライン脅威から保護します。" + }, + "group_description_social": { + "message": "迷惑な「いいね!」や「シェア」ボタンとその他のSNSウィジェットを非表示にします。" + }, + "group_description_stealth": { + "message": "何千ものオンライントラッカーからあなたの個人情報とプライバシーを保護するために、普及している既知の追跡手法をすべてブロックします。" + }, + "name": { + "message": "AdGuard 広告ブロッカー" + }, + "opera_search_permission_dont_show": { + "message": "今後この通知を表示しない" + }, + "opera_search_permission_go_to_settings": { + "message": "「設定」へ移動する" + }, + "opera_search_permission_warning": { + "message": "検索広告をブロックするには、ブラウザの設定で検索結果ページへのアクセスを許可してください。" + }, + "options_about": { + "message": "AdGuardについて" + }, + "options_about_libs": { + "message": "使用したライブラリ" + }, + "options_about_title": { + "message": "AdGuardブラウザ拡張機能" + }, + "options_about_update_available": { + "message": "バージョン %version% が利用可能です。自動的にダウンロード・インストールされます。" + }, + "options_about_version": { + "message": "バージョン" + }, + "options_acknowledgment": { + "message": "謝辞" + }, + "options_add_custom_filter": { + "message": "カスタムフィルタを追加する" + }, + "options_add_custom_filter_modal_add_button": { + "message": "追加する" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "カスタムフィルタを確認中..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URLはフィルタリストではなくウェブページを返しました。フィルタファイルへの直接リンクを指定してください。" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "もう一度試すか、サポートにご連絡ください。" + }, + "options_add_custom_filter_modal_error_title": { + "message": "カスタムフィルタを追加できませんでした" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "フィルタ名:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "信頼できる" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "一部のフィルター ルールは、ブラウジングエクスペリエンスを大幅に変更し、プライバシーを侵害する可能性があります。信頼できる開発者からのフィルタである場合にのみチェックを入れてください。" + }, + "options_add_custom_filter_modal_title": { + "message": "カスタムフィルタを追加" + }, + "options_all_limits_exceeded_warning": { + "message": "有効な組み込みルール数の上限に達しました。お使いのブラウザは有効な組み込みフィルタのリストを変更しました。有効になっているフィルタの数が %expected% から %current% に変更されました。" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "お使いのブラウザの有効な組み込みルール上限に達しました。お使いのブラウザは有効な組み込みフィルタの数を %expected% から %current% に削減しました。" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "お使いのブラウザでは、\u003Cexternal-link>いくつかのルール\u003C/external-link>が制限されています。全てのルールを適用するには、\u003Csettings-link>ブラウザの拡張機能設定\u003C/settings-link>で「\u003Cb>ユーザースクリプトを許可する\u003C/b>」をオンにしてください。" + }, + "options_allowlist": { + "message": "ホワイトリスト" + }, + "options_allowlist_alert_invert": { + "message": "ホワイトリスト反転中。リストにあるウェブサイトでのみ、広告がブロックされます。" + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>反転をオフにする\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuardはこのリストに入っているウェブサイトで広告やトラッカーをブロックしません" + }, + "options_allowlist_invalid_entries": { + "message": "保存するには、ドメインまたはURLのみを保持してください。これらは修正が必要です: %entries%" + }, + "options_allowlist_invert": { + "message": "ホワイトリストを反転する" + }, + "options_allowlist_invert_desc": { + "message": "ホワイトリストに登録されたウェブサイトでのみ広告とトラッカーをブロックします。" + }, + "options_allowlist_leave_subtitle": { + "message": "ホワイトリストへの変更は失われます" + }, + "options_allowlist_menu": { + "message": "ホワイトリストのアクションメニュー" + }, + "options_anonymized_usage_data_description": { + "message": "匿名化された拡張機能使用状況データをAdGuardに送信します。\u003Cbutton>詳細はこちら\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "OK" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "このデータには以下のものが含まれます:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "クリックしたボタンの名前" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "あなたが操作する画面の名前" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "セッション識別子" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "※このデータは匿名であり、社内でのみ使用されます。第三者と共有することは一切ありません。" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "この情報は、AdGuard機能の分析および改善のために必要です。" + }, + "options_anonymized_usage_data_modal_title": { + "message": "拡張機能の使用状況データ" + }, + "options_anonymized_usage_data_title": { + "message": "匿名化された拡張機能使用状況データを送信する" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "このカスタムフィルタは既に追加されています。" + }, + "options_antibanner_custom_group": { + "message": "カスタム" + }, + "options_antibanner_custom_group_description": { + "message": "ファイルまたはURLからフィルタを追加することを可能にします。" + }, + "options_antibanner_rules_count": { + "message": "ルール: %rules_count%件" + }, + "options_antibanner_updated": { + "message": "最終更新日時: %date%" + }, + "options_block_acceptable_ads": { + "message": "検索広告やウェブサイトの自己宣伝をブロックする" + }, + "options_block_acceptable_ads_desc": { + "message": "検索結果の中の広告やウェブサイトの自己宣伝をブロックします。\u003Ca>詳細はこちら\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Cookieをブロックするには、有効期間を「0」に設定してください。" + }, + "options_block_known_trackers_description": { + "message": "「AdGuard 追跡防止フィルタ」を使ってトラッカー(個人情報追跡ソフトウェア)やウェブ分析をブロックします。" + }, + "options_block_known_trackers_title": { + "message": "トラッカー(個人情報追跡)をブロックする" + }, + "options_check_update_progress": { + "message": "確認中…" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "クリア" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "データ通信量の統計情報がすべて永久に削除されます。" + }, + "options_clear_stats_confirm_modal_title": { + "message": "統計をクリア(初期化)しますか?" + }, + "options_clipboard_permission_warning": { + "message": "ルールをコピーして貼り付けるには、AdGuardにクリップボードへのアクセスするを許可してください。 \u003Ca>許可する\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "広告フィルタ使用状況の統計情報をAdGuardに送信します。(※統計情報は匿名です。)\u003Ca>詳細はこちら\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuardフィルタの開発に貢献する" + }, + "options_coming_soon": { + "message": "まもなく公開予定" + }, + "options_confirm_modal_cancel_button": { + "message": "キャンセル" + }, + "options_copyright": { + "message": "All rights reserved." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "カスタムフィルタを使用するには、ブラウザの\u003Csettings-link>拡張機能設定\u003C/settings-link>で「\u003Cb>ユーザースクリプトを許可する\u003C/b>」をオンにしてください。" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "カスタムフィルタを使用するには、ブラウザの\u003Csettings-link>拡張機能設定\u003C/settings-link>で\u003Cb>デベロッパモード\u003C/b>を有効にしてください。" + }, + "options_desktop_app_promo_button_linux": { + "message": "AdGuard for Linux を手に入れる" + }, + "options_desktop_app_promo_button_mac": { + "message": "AdGuard for Mac を手に入れる" + }, + "options_desktop_app_promo_button_windows": { + "message": "AdGuard for Windows を手に入れる" + }, + "options_desktop_app_promo_description": { + "message": "Spotify、Discord、Zoomのようなアプリではそのまま広告が表示されたり、アクティビティが追跡されたりします。" + }, + "options_desktop_app_promo_subdescription": { + "message": "デスクトップ版アプリなら、それらのアプリでもあなたを守れます。" + }, + "options_desktop_app_promo_title": { + "message": "拡張機能はブラウザのみを保護します" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "お使いのブラウザでは、\u003Cexternal-link>ルールの一部のタイプ\u003C/external-link>が制限されています。全てのルールを適用するには、\u003Csettings-link>ブラウザの拡張機能設定\u003C/settings-link>で「\u003Cb>デベロッパモード\u003C/b>」を有効にしてください。" + }, + "options_disable_webrtc_desc": { + "message": "WebRTCをブロックします。WebRTCは、プロキシやVPNを使用していても実際のIPアドレスを漏らす可能性があります。※ブロックしますと、一部のメッセンジャー、ストリーミング・動画配信プラットフォーム、ゲームの機能に干渉する可能性があります。" + }, + "options_disable_webrtc_title": { + "message": "WebRTCをブロックする" + }, + "options_discuss": { + "message": "AdGuardについての意見交換" + }, + "options_do_you_like_question": { + "message": "AdGuardを気に入っていますか?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "エディタのウィンドウモードを閉じる" + }, + "options_editor_indicator_saved": { + "message": "保存完了" + }, + "options_editor_indicator_saving": { + "message": "保存中…" + }, + "options_editor_leave_cancel": { + "message": "いいえ(編集を続行)" + }, + "options_editor_leave_confirm": { + "message": "はい(破棄)" + }, + "options_editor_leave_title": { + "message": "保存せずに終了しますか?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "新しいウィンドウでエディタを開く" + }, + "options_editor_save": { + "message": "保存する" + }, + "options_editor_save_error": { + "message": "変更の保存に失敗しました。再度お試しいただくか、 サポートまでご連絡ください。" + }, + "options_empty_custom_filter": { + "message": "カスタムフィルタはまだ一個も登録されていません。" + }, + "options_enable_autodetect_filter": { + "message": "適切な言語フィルタを自動的に有効にする" + }, + "options_enable_autodetect_filter_desc": { + "message": "ウェブサイトの言語を検出し、適切なフィルタを有効にします。" + }, + "options_export_settings": { + "message": "設定をエクスポート" + }, + "options_filters": { + "message": "フィルタ" + }, + "options_filters_annoyances_consent_description": { + "message": "1つか複数の迷惑要素フィルタを有効にしようとしています。これらのフィルタは、ウェブサイトのコンテンツと関係がない、または関係があってもユーザー体験にとって迷惑要素をブロックします。ウェブサイトの所有者は、これらの要素を必須とみなす場合があり、それらをブロックすると、所有者の利用規約に違反する可能性があったり、ウェブサイトの一部の機能が利用できなくなったり、正常に動作しなくなることもあります。訪れるウェブサイトの利用規約を遵守する責任が自己にあることを理解し、同意します。また、お客様がAdGuard製品を使用しながら訪問するウェブサイトの利用規約の遵守について、AdGuardは一切責任を負わないことを認識しています。" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "有効にする" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "ホームページ" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "AdGuard の迷惑要素フィルタが何をブロックするのかについて詳しくは、\u003Ca>フィルターポリシー\u003C/a>を参照してください。" + }, + "options_filters_annoyances_consent_question": { + "message": "これらのフィルタを有効にしますか?" + }, + "options_filters_annoyances_consent_title": { + "message": "迷惑要素フィルタを有効にする前によくお読みください" + }, + "options_filters_back_button": { + "message": "戻る" + }, + "options_filters_empty_title": { + "message": "該当するものが見つかりません" + }, + "options_filters_enabled": { + "message": "有効: " + }, + "options_filters_enabled_and_last": { + "message": "%enabled%と%last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% とその他%more%本" + }, + "options_filters_enabled_per_group": { + "message": "有効フィルタ数: %current%/%total%" + }, + "options_filters_filter_link": { + "message": "このフィルタのホームページへ" + }, + "options_filters_filter_tags": { + "message": "フィルタタグ" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "あなたはこのフィルタを「信頼できる」とマークしたため、このフィルタはより強力なフィルタルール修飾子を使用できます。" + }, + "options_filters_filter_updated": { + "message": "最終更新日時:" + }, + "options_filters_filter_version": { + "message": "バージョン:" + }, + "options_filters_info_mv3_total_rules": { + "message": "ルール総数: %num%" + }, + "options_filters_last_checked": { + "message": "最終確認: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "全フィルタ" + }, + "options_filters_list_search_display_option_disabled": { + "message": "無効" + }, + "options_filters_list_search_display_option_enabled": { + "message": "有効" + }, + "options_filters_no_enabled": { + "message": "有効フィルタはありません" + }, + "options_filters_of_group": { + "message": "「%groupName%」グループのフィルタ" + }, + "options_filters_search": { + "message": "検索" + }, + "options_filters_search_filter": { + "message": "フィルタを検索" + }, + "options_first_party_block_cookies_warning": { + "message": "これらのCookieをブロックすると、一部のウェブサイトが壊れたり、機能しなくなったりする可能性があります。" + }, + "options_first_party_desc": { + "message": "ファーストパーティCookieの有効期間を制限することで、ウェブサイトがログイン認証情報や言語設定などというユーザー情報を記憶するのを防ぎます。" + }, + "options_first_party_title": { + "message": "ファーストパーティCookieを削除する(非推奨)" + }, + "options_general_settings": { + "message": "一般" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "ユーザーがどんなウェブサイトを訪問しているかを、サードパーティに知られないようにします。" + }, + "options_hide_referrer_title": { + "message": "サードパーティからRefererを隠す" + }, + "options_hide_search_queries_desc": { + "message": "検索エンジンの検索結果経由でアクセスしたウェブサイトからあなたの検索内容を隠します。" + }, + "options_hide_search_queries_title": { + "message": "検索クエリを隠す" + }, + "options_import_configuration_applying_subtitle": { + "message": "現在の設定をインポート設定に置き換え中です。※インポートしている間、フィルタリング(広告ブロック)は無効です。" + }, + "options_import_configuration_applying_title": { + "message": "インポート中..." + }, + "options_import_configuration_confirm_button": { + "message": "インポート" + }, + "options_import_configuration_confirm_subtitle": { + "message": "インポートされた設定は、現在の設定に置き換わります。その他の設定は影響を受けません。" + }, + "options_import_configuration_confirm_title": { + "message": "設定をインポート…" + }, + "options_import_configuration_error_button": { + "message": "閉じる" + }, + "options_import_configuration_error_subtitle": { + "message": "インポート用リンクをご確認の上、再度お試しください。それでも解決しない場合は、サポートまでご連絡ください。" + }, + "options_import_configuration_error_title": { + "message": "設定をインポートできませんでした" + }, + "options_import_configuration_success_button": { + "message": "閉じる" + }, + "options_import_configuration_success_subtitle": { + "message": "設定が正常にインポートされました。" + }, + "options_import_configuration_success_title": { + "message": "完了" + }, + "options_import_settings": { + "message": "設定をインポート" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "反転" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "広告とトラッカーはホワイトリストに入っているウェブサイトでのみブロックされるようになります。" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "ホワイトリストを反転しますか?" + }, + "options_leave_feedback": { + "message": "ご提案・問題を送信" + }, + "options_lifetime_minutes": { + "message": "有効期間(分)" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "ユーザー追加の正規表現ルール数の上限に達しました。 %current% 個の正規表現ルールのうち %maximum% 個が有効になっています。" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "ユーザー追加の正規表現ルールの上限に達しています。 %maximum%のうちの%current%ルールが有効です。新しい正規表現ルールを追加するには、既存ルールの一部を削除してください。" + }, + "options_limits_warning_dynamic_rules": { + "message": "ユーザー追加ルールの数の上限に達しました。 %current% 個のルールのうち %maximum% 個が有効になっています。" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "ユーザー追加ルールの上限に達しています。 %maximum%のうちの%current%ルールが有効です。新しいルールを追加するには、既存ルールの一部を削除してください。" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "ユーザー追加の安全でないルール数の上限に達しました。 %current% 個の安全でないルールのうち %maximum% 個が有効になっています。" + }, + "options_limits_warning_static_filters": { + "message": "有効な組み込みフィルタ数の上限に達しました。 %current% 個のフィルタのうち %maximum% 個が有効になっています。新しいルールを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_limits_warning_static_filters_browser": { + "message": "お使いのブラウザの有効な組み込みフィルタ上限に達しました。 %current% 個のフィルタのうち %maximum% 個が有効になっています。新しいフィルタを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_limits_warning_static_regex_rules": { + "message": "有効な組み込み正規表現ルールの数の上限に達しました。 %current% 個の正規表現ルールのうち %maximum% 個が有効になっています。新しいルールを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "有効な正規表現ルール数の上限に達しました。 新しいルールを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_limits_warning_static_rules": { + "message": "有効な組み込みルール数の上限に達しました。 %current% 個のルールのうち %maximum% 個が有効になっています。新しいルールを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_limits_warning_static_rules_browser": { + "message": "お使いのブラウザの有効な組み込みルール上限に達しました。 新しいルールを有効にするには、組み込みフィルタの一部をオフにしてください。" + }, + "options_loader_applying_changes": { + "message": "変更を適用中..." + }, + "options_miscellaneous_settings": { + "message": "追加設定" + }, + "options_modified_first_party_cookie": { + "message": "ファーストパーティクッキー変更済み" + }, + "options_modified_third_party_cookie": { + "message": "サードパーティクッキー変更済み" + }, + "options_nav_better_than_extension": { + "message": "AdGuardアプリ版が拡張機能版よりも優れている理由は?" + }, + "options_nav_compare": { + "message": "比較を見る" + }, + "options_navigation": { + "message": "ナビゲーション" + }, + "options_open_changelog": { + "message": "チェンジログ" + }, + "options_open_log": { + "message": "フィルタリングログを開く" + }, + "options_popup_call_to_action": { + "message": "有効なURLまたはフィルタのファイルパスを上の欄に入力してください。" + }, + "options_popup_check_false_description": { + "message": "カスタムフィルタの追加中にエラーが発生しました。" + }, + "options_popup_check_false_title": { + "message": "エラー" + }, + "options_popup_checking_filter": { + "message": "フィルタ確認中" + }, + "options_popup_description": { + "message": "このフィルタへのサブスクリプションが有効になります。" + }, + "options_popup_filter_description": { + "message": "概要:" + }, + "options_popup_filter_homepage": { + "message": "ホームページ:" + }, + "options_popup_filter_rules_count": { + "message": "ルール数:" + }, + "options_popup_filter_title": { + "message": "タイトル:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "バージョン:" + }, + "options_popup_import_error_file_description": { + "message": "恐れ入りますが、なにかの問題が発生しました。" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "この設定ファイルをインポートするには、AdGuardにプライバシー関連設定の変更を許可してください。" + }, + "options_popup_import_error_title": { + "message": "設定をインポートできませんでした" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "ファイル拡張子は %extension% になっている必要があります" + }, + "options_popup_import_success_title": { + "message": "設定インポート完了です。" + }, + "options_popup_next_button": { + "message": "次へ" + }, + "options_popup_subscribe_button": { + "message": "サブスクライブする" + }, + "options_popup_title_placeholder": { + "message": "フィルタ名を入力" + }, + "options_popup_trusted_filter_description": { + "message": "信頼できるとマークされたフィルタには、悪意のある人に使わせると危険である強力なフィルタルール修飾子を使用することが許可されます。 完全に信頼していない限り、このボックスにチェックを付けないでください。" + }, + "options_popup_trusted_filter_title": { + "message": "信頼できる" + }, + "options_popup_try_again_button": { + "message": "再試行する" + }, + "options_popup_update_error": { + "message": "アップデート失敗しました。しばらく経ってからもう一度試してください。" + }, + "options_popup_update_filter": { + "message": "は更新されました。" + }, + "options_popup_update_filters": { + "message": "は更新されました。" + }, + "options_popup_update_not_found": { + "message": "ご利用のフィルタは最新状態になっています。" + }, + "options_popup_update_title_error": { + "message": "フィルタの更新中にエラーが発生しました" + }, + "options_popup_updating_filters": { + "message": "フィルタを更新しています..." + }, + "options_popup_url_placeholder": { + "message": "URLまたはファイルパスを入力してください" + }, + "options_popup_url_title": { + "message": "新しいフィルタ・サブスクリプション" + }, + "options_popup_version_update_changelog_text": { + "message": "本バージョンの新機能" + }, + "options_popup_version_update_description_major": { + "message": "今回の新バージョンは、多くの新機能と改善をもたらすメジャーアップデートです。" + }, + "options_popup_version_update_description_minor": { + "message": "このバージョンには主にバグ修正と軽微な改善が含まれています。" + }, + "options_popup_version_update_disable_notification": { + "message": "通知を無効にする" + }, + "options_popup_version_update_offer": { + "message": "AdGuardの機能は本プラウザに限らないことはご存知ですか?" + }, + "options_popup_version_update_offer_button_text": { + "message": "詳細はこちら" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard拡張機能はただいま v%current_version% にアップデートされました。" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "プロキシやVPNをご使用の際に実際のIPアドレスがしっかり隠されるよう、WebRTCにおいてより厳格なIPアドレスポリシーが使用されるようにします。" + }, + "options_prevent_webrtc_leaks_title": { + "message": "WebRTC経由のIPアドレス漏洩を防ぐ" + }, + "options_privacy": { + "message": "トラッキング防止" + }, + "options_privacy_desc": { + "message": "ウェブトラッカー(追跡ソフト)によるユーザーのオンライン行動追跡を防ぎます。" + }, + "options_privacy_policy": { + "message": "プライバシーポリシー" + }, + "options_privacy_title": { + "message": "トラッキング防止" + }, + "options_rate_us_cta": { + "message": "評価をつける" + }, + "options_remove_client_data_desc": { + "message": "Google Chromeが自分のバージョンおよび改変情報をGoogleドメインに送信することをブロックします。" + }, + "options_remove_client_data_title": { + "message": "X-Client-Dataヘッダーを削除する" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "削除" + }, + "options_remove_filter_confirm_modal_title": { + "message": "このフィルタを削除しますか?" + }, + "options_report_bug": { + "message": "バグ・不具合を報告する" + }, + "options_reset_settings": { + "message": "設定をリセットする" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "リセット" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "すべてのアプリの設定がデフォルト値にリセットされます。" + }, + "options_reset_settings_confirm_modal_title": { + "message": "設定をリセット(初期化)しますか?" + }, + "options_reset_settings_done": { + "message": "設定がリセットされました。" + }, + "options_reset_settings_error": { + "message": "設定のリセット中にエラーが発生しました" + }, + "options_reset_stats": { + "message": "統計をクリア" + }, + "options_reset_stats_done": { + "message": "統計がリセットされました。" + }, + "options_rule_limits": { + "message": "ルール数の上限" + }, + "options_rule_limits_description": { + "message": "Chromeは適用できるルールの数を制限しています。" + }, + "options_rule_limits_dynamic": { + "message": "動的ルール" + }, + "options_rule_limits_dynamic_regex": { + "message": "正規表現ルール - 「ユーザーが追加したルール」に含まれます。" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "安全でない動的ルール ($$redirect や $$cookieなどのような高度な修飾子に使用される) - 「ユーザーが追加したルール」に含まれます。" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "ユーザーが追加したルール(\u003Cuser_rules>ユーザールール\u003C/user_rules>、 \u003Callowlist>ウェブサイトのホワイトリスト化\u003C/allowlist> 、 \u003Ccustom_filters>カスタムフィルタ\u003C/custom_filters>など)" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "ユーザーが追加したルール(\u003Cuser_rules>ユーザールール\u003C/user_rules>、 \u003Callowlist>ホワイトリスト化されたウェブサイト\u003C/allowlist> など)" + }, + "options_rule_limits_numbers": { + "message": "%current%/%maximum%" + }, + "options_rule_limits_static_rules": { + "message": "静的ルール" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>組み込みフィルタ\u003C/a>からのルール" + }, + "options_rule_limits_static_rules_regex": { + "message": "正規表現ルール(上記に含まれるもの)" + }, + "options_rule_limits_static_rulesets": { + "message": "静的ルールセット" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>組み込みフィルタ\u003C/a>(迷惑要素ブロックや言語特化フィルタなど)" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "オプション 3. 現在有効になっているデフォルトフィルタで十分な場合は、 \u003Ca>この警告を閉じ\u003C/a>て結構です。" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "オプション 3. 現在有効になっているデフォルトフィルタで十分な場合は、 \u003Ca>この警告を閉じ\u003C/a>て結構です。" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "オプション 1. ブラウザから不要な広告ブロック拡張機能を削除します。 「更新前に有効化されたフィルタ」セクションに記載されているフィルタを再度有効化するには、「\u003Ca>フィルタを再有効化\u003C/a>」をクリックします。" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "オプション 2. AdGuard アプリをインストールすることで、フィルタリングルールは無制限になります。。 \u003Ca>AdGuard アプリを入手する\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "あなたにできること" + }, + "options_rule_limits_warning_explanation_description": { + "message": "アップデートまたは新しい拡張機能を追加した後に、有効な組み込みルール数の上限を超えました。Manifest V3 に従って、お使いのChromeブラウザは、拡張機能の組み込みフィルタ(デフォルトのフィルタを除く)を全て無効にすることで反応しました。" + }, + "options_rule_limits_warning_explanation_title": { + "message": "何が起きたのか" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "更新前に有効化されたフィルタ" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "現在有効になっているフィルタ" + }, + "options_rule_limits_warning_title": { + "message": "ブラウザが、有効な組み込みフィルタのリストを変更しました。" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "ルール制限なしですべてのブラウザで広告ブロックできます。" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "AdGuardアプリをインストールする" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "フィルターを確認する" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "拡張機能の管理へ" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "ブラウザ拡張機能は複数でも同じルール上限の対象です。他の広告ブロッカーを削除すると、AdGuardブラウザ拡張機能でより多くのルールを利用できる可能性があります。" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "他の広告ブロッカーを削除する" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "必要でないフィルタを無効にすることで、使用中のルールを減らすことができます。(なかでも、言語別フィルタやプライバシーフィルタがルール多いです。)" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "有効になっているフィルタを確認する" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "対処法は以下のとおりです:" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "上限に達したため、一部のフィルターが無効になりました" + }, + "options_rule_syntax": { + "message": "ルールの構文" + }, + "options_safebrowsing_enabled": { + "message": "フィッシング詐欺とマルウェアからの保護" + }, + "options_safebrowsing_enabled_desc": { + "message": "AdGuardの「ブラウジングセキュリティ」モジュールを使用して、悪意あるウェブサイトおよびフィッシングウェブサイトにアクセスしようとした場合に警告します。\u003Ca>詳細はこちら\u003C/a>" + }, + "options_select_theme": { + "message": "カラーテーマ" + }, + "options_select_update_period_12h": { + "message": "12時間" + }, + "options_select_update_period_1h": { + "message": "1時間" + }, + "options_select_update_period_24h": { + "message": "24時間" + }, + "options_select_update_period_48h": { + "message": "48時間" + }, + "options_select_update_period_6h": { + "message": "6時間" + }, + "options_select_update_period_default": { + "message": "デフォルト" + }, + "options_select_update_period_disabled": { + "message": "無効" + }, + "options_send_not_track_desc": { + "message": "訪問する各ウェブサイトに\u003Cgpc>Global Privacy Control\u003C/gpc>およびトラッキング拒否(\u003Cdnt>Do Not Track\u003C/dnt>)シグナルを送信します。" + }, + "options_send_not_track_title": { + "message": "サイトに「追跡しないで」と要求する" + }, + "options_set_update_interval": { + "message": "フィルタの自動更新" + }, + "options_set_update_interval_desc": { + "message": "広告ブロックをより効果的にするために、フィルタを最新の状態に保ちます。" + }, + "options_settings": { + "message": "AdGuard 設定" + }, + "options_share_settings": { + "message": "設定を共有する" + }, + "options_show_adguard_full_version_title": { + "message": "AdGuardフルバージョンの情報を表示する" + }, + "options_show_app_updated_notification": { + "message": "拡張機能のアップデートについて通知を受け取る" + }, + "options_show_blocked_ads_count_title": { + "message": "AdGuard拡張機能アイコンで広告ブロック数を表示する" + }, + "options_show_context_menu_title": { + "message": "ブラウザの右クリックメニューにAdGuardを追加する" + }, + "options_site": { + "message": "公式ホームページ" + }, + "options_skip_to_main_content": { + "message": "メインコンテンツへスキップする" + }, + "options_stealth_general_title": { + "message": "一般" + }, + "options_stealth_miscellaneous_title": { + "message": "その他" + }, + "options_stealth_tracking_methods_title": { + "message": "トラッキング方法" + }, + "options_strip_tracking_params_description": { + "message": "「AdGuard URL追跡防止フィルタ」を使ってページのURLから追跡パラメーターを取り除きます。" + }, + "options_strip_tracking_params_title": { + "message": "URLからトラッキングパラメータを削除する" + }, + "options_stripped_tracking_parameters": { + "message": "追跡パラメータ除去済み" + }, + "options_theme_selector_dark": { + "message": "ダーク" + }, + "options_theme_selector_light": { + "message": "ライト" + }, + "options_theme_selector_system": { + "message": "システムに合わせる" + }, + "options_third_party_block_cookies_warning": { + "message": "これらのCookieをブロックした場合、一部のウェブサイトに再ログインする必要が生じたり、その他のクッキー関連問題に直面したりする可能性があります。" + }, + "options_third_party_desc": { + "message": "サードパーティCookieの有効期間を制限することで、広告主がページ越えにユーザーの行動を追跡するのを防ぎます。" + }, + "options_third_party_title": { + "message": "サードパーティCookieを削除する" + }, + "options_update_antibanner_filters": { + "message": "フィルタの更新を確認する" + }, + "options_use_optimized_filters": { + "message": "最適化されたフィルタを使用する" + }, + "options_use_optimized_filters_desc": { + "message": "トラフィックを節約するために、フィルタの短いバージョン(最も人気のあるルールのみを使用しもの)を使用します。モバイルブラウザに最適です。" + }, + "options_user_rules_clear_search": { + "message": "検索をクリア" + }, + "options_user_rules_create_rule": { + "message": "ルールを作成" + }, + "options_user_rules_delete_all": { + "message": "全部削除する" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "すべてのユーザールールが完全に削除されます。" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "全部削除しますか?" + }, + "options_user_rules_delete_all_success": { + "message": "すべてのユーザールールが削除されました" + }, + "options_user_rules_delete_rule": { + "message": "ルールを削除する" + }, + "options_user_rules_deleted_notification": { + "message": "以下のユーザールールが削除されました:" + }, + "options_user_rules_description_key": { + "message": "広告、要素、ウェブサイトごとのブロック・ブロック解除をご自身で設定できるルールです。" + }, + "options_user_rules_edit_rule": { + "message": "ルールを編集" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "ルールエディタへ行く" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "閉じるとルールがここに表示されます。" + }, + "options_user_rules_editor_stub_title": { + "message": "エディタが別のウィンドウで開かれています" + }, + "options_user_rules_empty_placeholder": { + "message": "まだルールがありません" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "ルールをハイライトしています…" + }, + "options_user_rules_import_error": { + "message": "ユーザールールのインポートに失敗しました。もう一度お試しください" + }, + "options_user_rules_import_success": { + "message": "ユーザールールが正常にインポートされました。" + }, + "options_user_rules_menu": { + "message": "ユーザールールのアクションメニュー" + }, + "options_user_rules_no_match": { + "message": "何も見つかりません" + }, + "options_user_rules_search_placeholder": { + "message": "検索" + }, + "options_user_rules_switch_to_editor": { + "message": "エディタ表示に切り替える" + }, + "options_user_rules_switch_to_list": { + "message": "リスト表示に切り替える" + }, + "options_user_rules_undo": { + "message": "元に戻す" + }, + "options_userfilter": { + "message": "ユーザールール" + }, + "options_userfilter_description_key": { + "message": "ここで独自のルールを追加することができます。このオプションは、HTML/CSSに精通した上級ユーザーにお勧めです。独自のフィルタールールの書き方を学ぶには\u003Ca>こちらのフィルタールール作成方法説明\u003C/a> を読んでください。" + }, + "options_userfilter_export": { + "message": "エクスポート" + }, + "options_userfilter_import": { + "message": "インポート" + }, + "options_userfilter_leave_subtitle": { + "message": "ルールの変更は失われます" + }, + "options_userfilter_line_break": { + "message": "改行" + }, + "options_userfilter_line_break_off": { + "message": "改行(line break): 無効" + }, + "options_userfilter_line_break_on": { + "message": "改行(line break): 有効" + }, + "options_userfilter_subtitle_key": { + "message": "独自のフィルタリングルールを追加できます。" + }, + "popup_abuse_site": { + "message": "問題・不具合を報告する" + }, + "popup_adguard_footer_title": { + "message": "スマホ・iPhoneも保護しよう" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "手動で広告をブロックする" + }, + "popup_get_system_wide_protection": { + "message": "システム全体の保護機能をGET" + }, + "popup_header_cta_link": { + "message": "保護機能を強化する方法" + }, + "popup_header_update_filters": { + "message": "フィルタの更新を確認する" + }, + "popup_limits_exceeded_warning": { + "message": "お使いのブラウザが有効な組み込みフィルタのリストを変更しました。" + }, + "popup_open_filtering_log": { + "message": "フィルタリングログを開く" + }, + "popup_open_settings": { + "message": "AdGuard設定を開く" + }, + "popup_protection_button": { + "message": "AdGuardによる保護" + }, + "popup_reset_page_user_rules": { + "message": "このサイトに対するユーザールールを削除する" + }, + "popup_resume_protection_button": { + "message": "再開する" + }, + "popup_security_report": { + "message": "サイトの安全性を確認する" + }, + "popup_site_exception_information": { + "message": "このサイトの動作を邪魔する可能性があるため、フィルタリングを無効にしています。" + }, + "popup_site_filtering_state_disabled": { + "message": "保護は無効になっています" + }, + "popup_site_filtering_state_disabling": { + "message": "保護機能を無効化中…" + }, + "popup_site_filtering_state_enabled": { + "message": "保護が有効になっています" + }, + "popup_site_filtering_state_enabling": { + "message": "保護機能を起動中…..." + }, + "popup_site_filtering_state_loading": { + "message": "読み込み中…" + }, + "popup_site_filtering_state_paused": { + "message": "保護は一時停止中です" + }, + "popup_site_filtering_state_pausing": { + "message": "保護を一時停止中..." + }, + "popup_site_filtering_state_resuming": { + "message": "保護を再開中..." + }, + "popup_site_filtering_state_secure_page": { + "message": "セキュアページ" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "対象:全てのウェブサイト" + }, + "popup_statistics_all_categories": { + "message": "全て" + }, + "popup_statistics_category_advertising": { + "message": "広告数" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "統計カテゴリ" + }, + "popup_statistics_category_other": { + "message": "その他" + }, + "popup_statistics_category_social_media": { + "message": "SNS" + }, + "popup_statistics_category_trackers": { + "message": "追跡ソフト数" + }, + "popup_statistics_months_apr": { + "message": "4月" + }, + "popup_statistics_months_aug": { + "message": "8月" + }, + "popup_statistics_months_dec": { + "message": "12月" + }, + "popup_statistics_months_feb": { + "message": "2月" + }, + "popup_statistics_months_jan": { + "message": "1月" + }, + "popup_statistics_months_jul": { + "message": "7月" + }, + "popup_statistics_months_jun": { + "message": "6月" + }, + "popup_statistics_months_mar": { + "message": "3月" + }, + "popup_statistics_months_may": { + "message": "5月" + }, + "popup_statistics_months_nov": { + "message": "11月" + }, + "popup_statistics_months_oct": { + "message": "10月" + }, + "popup_statistics_months_sep": { + "message": "9月" + }, + "popup_statistics_time_day": { + "message": "24時間" + }, + "popup_statistics_time_label": { + "message": "統計期間" + }, + "popup_statistics_time_month": { + "message": "30日間" + }, + "popup_statistics_time_week": { + "message": "7日間" + }, + "popup_statistics_time_year": { + "message": "1年版" + }, + "popup_statistics_total": { + "message": "合計" + }, + "popup_statistics_week_days_fri": { + "message": "金" + }, + "popup_statistics_week_days_mon": { + "message": "月" + }, + "popup_statistics_week_days_sat": { + "message": "土" + }, + "popup_statistics_week_days_sun": { + "message": "日" + }, + "popup_statistics_week_days_thu": { + "message": "木" + }, + "popup_statistics_week_days_tue": { + "message": "火" + }, + "popup_statistics_week_days_wed": { + "message": "水" + }, + "popup_switch_button": { + "message": "現在のウェブサイトに対する保護機能" + }, + "popup_tab_actions": { + "message": "操作" + }, + "popup_tab_blocked_all_count": { + "message": "ブロック総数: %num%" + }, + "popup_tab_blocked_count": { + "message": "ブロック済み数: %num%" + }, + "popup_tab_current_website": { + "message": "現在のウェブサイト" + }, + "popup_tab_statistics": { + "message": "統計" + }, + "popup_tabs": { + "message": "タブ" + }, + "popup_tooltip_loading": { + "message": "読み込み中…" + }, + "popup_tooltip_protection_disabled": { + "message": "保護は無効です" + }, + "popup_tooltip_protection_enabled": { + "message": "保護は有効です" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "一部のルールは適用されていません" + }, + "popup_tooltip_update_available": { + "message": "利用可能なアップデートがあります" + }, + "post_install_loading": { + "message": "拡張機能を読み込み中…" + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard ブラウザ拡張機能のルール数上限を超えました。お使いのフィルタを確認し、不要なフィルタを無効にしてください。" + }, + "text_collapser_hide_default": { + "message": "全文を非表示にする" + }, + "text_collapser_show_default": { + "message": "全文を表示する" + }, + "update_available_desc": { + "message": "広告を効果的にブロックするには、拡張機能とフィルタを最新の状態に保ってください。" + }, + "update_available_title": { + "message": "利用可能アップデートがあります" + }, + "update_available_update_btn": { + "message": "更新する" + }, + "update_check": { + "message": "アップデートを確認する" + }, + "update_checking_in_progress": { + "message": "アップデートを確認中..." + }, + "update_failed_text": { + "message": "更新を完了できませんでした" + }, + "update_failed_try_again_btn": { + "message": "再試行する" + }, + "update_installing_in_progress_desc": { + "message": "拡張機能は更新後に再起動します。" + }, + "update_installing_in_progress_title": { + "message": "拡張機能とフィルタを更新しています..." + }, + "update_not_needed": { + "message": "拡張機能およびフィルタは最新状態になっています。" + }, + "update_success_text": { + "message": "拡張機能とフィルタが更新されました。" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/kn/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/kn/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/kn/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ko/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ko/messages.json new file mode 100644 index 0000000..9fe308a --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ko/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name%(이)가 자동으로 활성화되었습니다." + }, + "alert_popup_filter_enabled_title": { + "message": "필터 자동 켜짐" + }, + "background_tab_title": { + "message": "백그라운드 탭" + }, + "blocking_pages_advanced_button": { + "message": "고급" + }, + "blocking_pages_btn_go_back": { + "message": "뒤로가기" + }, + "blocking_pages_btn_proceed": { + "message": "무시하고 계속하기" + }, + "blocking_pages_malware": { + "message": "\u003Cstrong>%host%\u003C/strong> 페이지는 멀웨어 페이지로 보고되어, 설정하신 보안 설정에 따라 차단되었습니다." + }, + "blocking_pages_more_info_button": { + "message": "추가 정보" + }, + "blocking_pages_page_title": { + "message": "접근 거부됨" + }, + "blocking_pages_phishing": { + "message": "\u003Cstrong>%host%\u003C/strong> 페이지는 피싱 페이지로 보고되어, 설정하신 보안 설정에 따라 차단되었습니다." + }, + "blocking_pages_rule_content_title": { + "message": "다음 필터 규칙으로 인해 AdGuard에서 이 페이지를 로드하지 못했습니다" + }, + "blocking_pages_rule_header_title": { + "message": "AdGuard에 의해 차단됨" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard가 이 페이지 접근을 차단하였습니다" + }, + "clear_button_title": { + "message": "비우기" + }, + "close_button_title": { + "message": "닫기" + }, + "context_block_site_ads": { + "message": "수동으로 광고 차단" + }, + "context_complaint_website": { + "message": "문제 신고" + }, + "context_disable_protection": { + "message": "AdGuard 보호 일시 정지" + }, + "context_enable_protection": { + "message": "AdGuard 보호 재시작" + }, + "context_open_log": { + "message": "필터링 로그 열기" + }, + "context_open_settings": { + "message": "AdGuard 설정" + }, + "context_security_report": { + "message": "웹사이트 보안 확인" + }, + "context_site_exception": { + "message": "이 웹사이트는 예외 목록에 있음" + }, + "context_site_filtering_disabled": { + "message": "AdGuard가 이 페이지를 필터링할 수 없습니다." + }, + "context_site_filtering_off": { + "message": "이 웹사이트에서 필터링 끄기" + }, + "context_site_filtering_on": { + "message": "이 웹사이트에서 필터링 켜기" + }, + "context_site_protection_disabled": { + "message": "AdGuard 보호 일시 정지됨" + }, + "context_update_antibanner_filters": { + "message": "필터 업데이트 확인" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "광고, 팝업, Facebook이나 YouTube 등 사이트의 광고를 차단하는 타의 추종을 불허하는 광고 차단 확장 프로그램입니다." + }, + "filtering_clear_log_events": { + "message": "로그 비우기" + }, + "filtering_log_actions_menu": { + "message": "필터링 로그 동작" + }, + "filtering_log_assumed_rule_description": { + "message": "이는 가상의 규칙입니다. 자세한 내용은 \u003Ca>지식 창고\u003C/a>를 참고하세요." + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP 요청 메서드" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP 상태 코드" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "제 3자 요청" + }, + "filtering_log_details_modal_back_button": { + "message": "요청으로 돌아가기" + }, + "filtering_log_details_modal_beautify_button": { + "message": "가독성 향상" + }, + "filtering_log_details_modal_try_again": { + "message": "다시 시도" + }, + "filtering_log_filter_allowed": { + "message": "허용됨" + }, + "filtering_log_filter_blocked": { + "message": "차단됨" + }, + "filtering_log_filter_modified": { + "message": "수정됨" + }, + "filtering_log_filter_regular": { + "message": "일반" + }, + "filtering_log_filter_user_rules": { + "message": "사용자 규칙" + }, + "filtering_log_hide_referrer": { + "message": "제 3자로부터 리퍼러 숨기기" + }, + "filtering_log_hide_search_queries": { + "message": "검색어 숨기기" + }, + "filtering_log_in_allowlist": { + "message": "사이트가 허용 목록에 추가됨" + }, + "filtering_log_modified_rules": { + "message": "수정된 규칙: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "저장" + }, + "filtering_log_preserve_log_modal_description": { + "message": "이 옵션은 메모리 사용량을 크게 증가시킬 수 있습니다." + }, + "filtering_log_preserve_log_modal_title": { + "message": "로그를 저장할까요?" + }, + "filtering_log_preserve_log_off": { + "message": "로그 저장 안 함" + }, + "filtering_log_preserve_log_on": { + "message": "로그 저장" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "다시 표시 안 함" + }, + "filtering_log_privacy_applied_rules": { + "message": "추적 보호 적용됨" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data 헤더 제거됨" + }, + "filtering_log_search_string": { + "message": "검색" + }, + "filtering_log_search_tabs_placeholder": { + "message": "탭 검색" + }, + "filtering_log_send_not_track": { + "message": "추적 금지 헤더 전송" + }, + "filtering_log_status_allowed": { + "message": "허용됨" + }, + "filtering_log_status_blocked": { + "message": "차단됨" + }, + "filtering_log_status_modified": { + "message": "수정됨" + }, + "filtering_log_status_processed": { + "message": "처리됨" + }, + "filtering_log_stealth_rules": { + "message": "추적 보호 규칙: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "요청 출발지" + }, + "filtering_log_tag_request_status": { + "message": "필터링 상태" + }, + "filtering_log_tag_request_type": { + "message": "요청 유형" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "허용 및 차단 해제된 요청" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "차단된 요청" + }, + "filtering_log_tag_tooltip_css": { + "message": "스타일 시트" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "퍼스트 파티 요청" + }, + "filtering_log_tag_tooltip_html": { + "message": "문서 및 하위 문서" + }, + "filtering_log_tag_tooltip_img": { + "message": "이미지" + }, + "filtering_log_tag_tooltip_js": { + "message": "스크립트" + }, + "filtering_log_tag_tooltip_media": { + "message": "미디어" + }, + "filtering_log_tag_tooltip_modified": { + "message": "수정된 요청" + }, + "filtering_log_tag_tooltip_other": { + "message": "글꼴, 핑, WebRTC, 웹소켓 등" + }, + "filtering_log_tag_tooltip_regular": { + "message": "필터링 없이 처리된 요청" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "써드 파티 요청" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "사용자 규칙에 관련된 요청" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XML Http 요청 및 페치 요청" + }, + "filtering_log_title": { + "message": "필터링 로그" + }, + "filtering_menu_open_filters": { + "message": "사용자 정의" + }, + "filtering_modal_add_rule": { + "message": "추가" + }, + "filtering_modal_allow_title": { + "message": "허용 규칙 추가" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "적용된 규칙 | 적용된 규칙" + }, + "filtering_modal_apply_domains": { + "message": "모든 웹사이트에 적용" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| 가정 규칙:" + }, + "filtering_modal_block": { + "message": "차단" + }, + "filtering_modal_block_again": { + "message": "다시 차단" + }, + "filtering_modal_block_title": { + "message": "차단 규칙 추가" + }, + "filtering_modal_converted_to": { + "message": "변환됨:" + }, + "filtering_modal_cookie": { + "message": "쿠키:" + }, + "filtering_modal_copied": { + "message": "복사됨" + }, + "filtering_modal_copy_to_clipboard": { + "message": "클립보드에 복사" + }, + "filtering_modal_declarative_rule": { + "message": "DNR 규칙:" + }, + "filtering_modal_element": { + "message": "요소" + }, + "filtering_modal_exception_title": { + "message": "예외 추가" + }, + "filtering_modal_filter": { + "message": "필터" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "필터링 상태" + }, + "filtering_modal_hide_full_element": { + "message": "전체 요소 숨김" + }, + "filtering_modal_hide_full_rule": { + "message": "전체 규칙 숨김" + }, + "filtering_modal_hide_full_url": { + "message": "전체 URL 숨기기" + }, + "filtering_modal_important": { + "message": "이 규칙에 높은 우선 순위 부여" + }, + "filtering_modal_info_title": { + "message": "요청 세부 사항" + }, + "filtering_modal_open_in_new_tab": { + "message": "새 탭에서 열기" + }, + "filtering_modal_options_desc": { + "message": "옵션" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| 원본 규칙:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "허용해야 할 항목" + }, + "filtering_modal_patterns_desc_block": { + "message": "차단해야 할 항목" + }, + "filtering_modal_preview_request_button": { + "message": "미리 보기" + }, + "filtering_modal_preview_title": { + "message": "미리 보기" + }, + "filtering_modal_privacy": { + "message": "추적 보호" + }, + "filtering_modal_remove_allowlist": { + "message": "허용 목록에서 제거" + }, + "filtering_modal_remove_param": { + "message": "쿼리 매개 변수 제거" + }, + "filtering_modal_remove_user": { + "message": "규칙 제거" + }, + "filtering_modal_rule": { + "message": "규칙:" + }, + "filtering_modal_rule_text_desc": { + "message": "규칙" + }, + "filtering_modal_rules": { + "message": "규칙:" + }, + "filtering_modal_show_full_element": { + "message": "전체 요소 표시" + }, + "filtering_modal_show_full_rule": { + "message": "전체 규칙 표시" + }, + "filtering_modal_show_full_url": { + "message": "전체 URL 표시" + }, + "filtering_modal_source": { + "message": "소스" + }, + "filtering_modal_status_text_desc": { + "message": "상태" + }, + "filtering_modal_status_text_error": { + "message": "미리보기를 로드하는 데 실패했습니다. 다시 시도해 주세요." + }, + "filtering_modal_status_text_loading": { + "message": "로딩 중..." + }, + "filtering_modal_third_party": { + "message": "제3자 요청에만 적용" + }, + "filtering_modal_type": { + "message": "유형" + }, + "filtering_modal_unblock": { + "message": "차단 해제" + }, + "filtering_refresh_tab_short": { + "message": "새로고침" + }, + "filtering_refresh_tab_short_mobile": { + "message": "페이지 새로고침" + }, + "filtering_table_action": { + "message": "액션" + }, + "filtering_table_empty_reload_page_desc": { + "message": "찾을 수 없습니다. 로그 기록을 보려면 \u003Creset>필터를 비활성화\u003C/reset>하거나 \u003Crefresh>페이지를 새로고침\u003C/refresh>하세요." + }, + "filtering_table_filter": { + "message": "필터" + }, + "filtering_table_open_details": { + "message": "세부 정보 열기" + }, + "filtering_table_rule": { + "message": "필터링 규칙" + }, + "filtering_table_source": { + "message": "출처" + }, + "filtering_table_status": { + "message": "상태" + }, + "filtering_table_type": { + "message": "형식" + }, + "filtering_type_all": { + "message": "모두" + }, + "filtering_type_other": { + "message": "기타" + }, + "filters_download_loading": { + "message": "필터 데이터베이스를 불러오는 동안 기다려주세요..." + }, + "filters_download_title": { + "message": "필터 데이터베이스를 불러오는 중..." + }, + "fullscreen_user_rules_title": { + "message": "사용자 규칙" + }, + "group_description_adblocking": { + "message": "배너, 팝업, 동영상 광고 등을 차단하려면 여기에서 광고 차단을 설정하세요." + }, + "group_description_annoyances": { + "message": "팝업 창 및 쿠키 알림과 같은 기타 성가신 알림을 제거하세요." + }, + "group_description_custom": { + "message": "자신만의 필터를 원하는 대로 만들어 세세하게 웹을 필터링하세요." + }, + "group_description_lang": { + "message": "모든 언어로 웹사이트의 광고를 차단하세요." + }, + "group_description_miscellaneous": { + "message": "더 많은 AdGuard 설정을 통해 웹 서핑을 더 잘 제어하세요." + }, + "group_description_security": { + "message": "맬웨어, 피싱 및 기타 온라인 위협으로부터 자신을 보호하세요" + }, + "group_description_social": { + "message": "'좋아요'/'공유' 버튼 및 기타 SNS 위젯을 숨깁니다." + }, + "group_description_stealth": { + "message": "널리 알려진 모든 추적 방법을 차단하여 수천 개의 온라인 추적기로부터 사용자의 신원과 민감한 개인정보를 보호하세요." + }, + "name": { + "message": "AdGuard 광고차단기" + }, + "opera_search_permission_dont_show": { + "message": "다시 표시 안 함" + }, + "opera_search_permission_go_to_settings": { + "message": "설정으로 이동" + }, + "opera_search_permission_warning": { + "message": "검색 광고를 차단하려면 브라우저 설정에서 검색 페이지 결과에 접근하는 권한을 허용하세요." + }, + "options_about": { + "message": "정보" + }, + "options_about_libs": { + "message": "사용된 라이브러리" + }, + "options_about_title": { + "message": "AdGuard 브라우저 확장 프로그램" + }, + "options_about_update_available": { + "message": "%version% 버전을 사용할 수 있습니다. 자동으로 다운로드 및 설치될 예정입니다." + }, + "options_about_version": { + "message": "버전" + }, + "options_acknowledgment": { + "message": "감사의 말" + }, + "options_add_custom_filter": { + "message": "사용자 정의 필터 추가" + }, + "options_add_custom_filter_modal_add_button": { + "message": "추가" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "필터를 확인하는 중..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL이 필터 목록 대신 웹페이지를 반환했습니다. 필터 파일에 직접 접속하는 링크를 제공해 주세요." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "다시 시도하거나 고객 지원에 문의해 주세요." + }, + "options_add_custom_filter_modal_error_title": { + "message": "사용자 정의 필터를 추가하지 못했습니다." + }, + "options_add_custom_filter_modal_filter_name": { + "message": "필터 이름:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "신뢰함" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "신뢰할 수 있는 필터는 강력한 규칙 수정자를 사용할 수 있습니다. 신뢰할 수 있는 개발자의 필터를 사용해야 합니다." + }, + "options_add_custom_filter_modal_title": { + "message": "사용자 지정 필터 추가" + }, + "options_all_limits_exceeded_warning": { + "message": "활성 내장 규칙의 한도에 도달했습니다. 브라우저에서 활성 내장 필터 목록을 수정했습니다. 활성화된 필터 수가 %expected%에서 %current%로 변경되었습니다." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "브라우저의 활성화된 내장 규칙 한도에 도달했습니다. 브라우저는 활성화된 내장 필터 목록을 %expected%개에서 %current%개로 줄였습니다." + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "브라우저에서 \u003Cexternal-link>일부 유형의 규칙\u003C/external-link>을 제한하는 경우가 있습니다. 모든 규칙을 적용하려면 브라우저의 \u003Csettings-link>확장 프로그램 설정\u003C/settings-link>에서 \u003Cb>유저스크립트 허용\u003C/b>을 켜세요." + }, + "options_allowlist": { + "message": "허용 목록" + }, + "options_allowlist_alert_invert": { + "message": "허용 목록이 반전되었습니다. 허용 목록에 추가된 웹사이트에서만 광고가 차단됩니다." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>반전 취소\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard는 목록에 있는 웹사이트에서 광고와 추적기를 차단하지 않습니다." + }, + "options_allowlist_invalid_entries": { + "message": "저장하려면 도메인 또는 URL만 남기세요. 수정이 필요한 항목: %entries%" + }, + "options_allowlist_invert": { + "message": "허용 목록 반전" + }, + "options_allowlist_invert_desc": { + "message": "허용된 웹사이트에서만 광고 및 추적기를 차단합니다." + }, + "options_allowlist_leave_subtitle": { + "message": "허용 목록에 대한 변경 사항이 손실됩니다." + }, + "options_allowlist_menu": { + "message": "허용 목록 동작" + }, + "options_anonymized_usage_data_description": { + "message": "확장 프로그램 사용량에 대한 익명의 통계를 AdGuard로 전송합니다. \u003Cbutton>자세히 알아보기\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "확인" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "이 데이터에는 다음이 포함됩니다." + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "클릭하는 버튼의 이름" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "상호작용하는 화면의 이름" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "세션 식별자" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "이 데이터는 익명으로 처리되며 내부적으로만 사용됩니다. 제3자와 절대 공유하지 않습니다." + }, + "options_anonymized_usage_data_modal_reason": { + "message": "AdGuard의 기능을 분석하고 개선하기 위해 이 정보가 필요합니다." + }, + "options_anonymized_usage_data_modal_title": { + "message": "확장 프로그램 사용 데이터" + }, + "options_anonymized_usage_data_title": { + "message": "익명의 확장 프로그램 사용 데이터 전송" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "사용자 지정 필터가 이미 추가되어 있습니다." + }, + "options_antibanner_custom_group": { + "message": "사용자 정의 필터" + }, + "options_antibanner_custom_group_description": { + "message": "파일 또는 URL에서 필터를 추가할 수 있습니다." + }, + "options_antibanner_rules_count": { + "message": "규칙: %rules_count%" + }, + "options_antibanner_updated": { + "message": "업데이트됨: %date%" + }, + "options_block_acceptable_ads": { + "message": "검색 광고 및 웹사이트 자체 홍보 차단" + }, + "options_block_acceptable_ads_desc": { + "message": "검색결과의 광고와 웹사이트의 자체 홍보를 차단합니다. \u003Ca>자세히 알아보기\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "이 쿠키를 차단하려면 쿠키의 유효 기간을 0으로 설정하세요." + }, + "options_block_known_trackers_description": { + "message": "AdGuard 추적 방지 필터를 사용하여 추적기 및 웹 분석 차단" + }, + "options_block_known_trackers_title": { + "message": "추적기 차단" + }, + "options_check_update_progress": { + "message": "확인 중..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "비우기" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "데이터 사용량에 대한 모든 통계가 영구적으로 삭제됩니다." + }, + "options_clear_stats_confirm_modal_title": { + "message": "통계를 삭제하시겠습니까?" + }, + "options_clipboard_permission_warning": { + "message": "규칙을 복사하여 붙여넣으려면 AdGuard가 클립보드에 접근할 수 있도록 허용하세요. \u003Ca>허용\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "광고 필터 사용량에 대한 익명의 통계를 AdGuard로 전송합니다. \u003Ca>자세히 알아보기\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuard 필터 개발에 도움을 주세요" + }, + "options_coming_soon": { + "message": "출시 예정" + }, + "options_confirm_modal_cancel_button": { + "message": "취소" + }, + "options_copyright": { + "message": "All rights reserved." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "사용자 정의 필터를 사용하려면 브라우저의 \u003Csettings-link>확장 프로그램 설정\u003C/settings-link>에서 \u003Cb>유저스크립트 허용\u003C/b>을 활성화하세요." + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "사용자 정의 필터를 사용하려면 브라우저의 \u003Csettings-link>확장 프로그램 설정\u003C/settings-link>에서 \u003Cb>개발자 모드를\u003C/b> 활성화하세요." + }, + "options_desktop_app_promo_button_linux": { + "message": "Linux용 AdGuard 설치" + }, + "options_desktop_app_promo_button_mac": { + "message": "Mac용 AdGuard 설치" + }, + "options_desktop_app_promo_button_windows": { + "message": "Windows용 AdGuard 설치" + }, + "options_desktop_app_promo_description": { + "message": "Spotify, Discord, Zoom 등의 앱은 여전히 광고를 표시하고 활동을 추적할 수 있습니다." + }, + "options_desktop_app_promo_subdescription": { + "message": "데스크탑 앱을 이용하면 이들로부터 보호받을 수 있습니다." + }, + "options_desktop_app_promo_title": { + "message": "확장 프로그램은 브라우저만 보호합니다" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "브라우저에서 \u003Cexternal-link>일부 유형의 규칙\u003C/external-link>이 제한되어 있습니다. 모든 규칙을 적용하려면 \u003Csettings-link>브라우저 확장 프로그램 설정\u003C/settings-link>에서 \u003Cb>개발자 모드\u003C/b>를 활성화하세요." + }, + "options_disable_webrtc_desc": { + "message": "프록시 또는 VPN을 사용하더라도 실제 IP 주소가 유출될 수 있는 WebRTC를 차단합니다. 일부 메신저, 스트리밍 플랫폼 또는 게임이 제대로 작동하지 않을 수 있습니다." + }, + "options_disable_webrtc_title": { + "message": "WebRTC 차단" + }, + "options_discuss": { + "message": "AdGuard 의견 나눔" + }, + "options_do_you_like_question": { + "message": "AdGuard가 마음에 드시나요?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "편집기 전체 화면 해제" + }, + "options_editor_indicator_saved": { + "message": "저장" + }, + "options_editor_indicator_saving": { + "message": "저장중..." + }, + "options_editor_leave_cancel": { + "message": "편집으로 돌아가기" + }, + "options_editor_leave_confirm": { + "message": "네, 종료합니다" + }, + "options_editor_leave_title": { + "message": "저장하지 않고 종료하시겠습니까?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "새 창에서 편집기 열기" + }, + "options_editor_save": { + "message": "저장" + }, + "options_editor_save_error": { + "message": "변경 사항을 저장하지 못했습니다. 다시 시도하거나 고객 지원팀에 문의하세요." + }, + "options_empty_custom_filter": { + "message": "아직 사용자 지정 필터가 없습니다" + }, + "options_enable_autodetect_filter": { + "message": "가장 적당한 필터들을 자동으로 활성화" + }, + "options_enable_autodetect_filter_desc": { + "message": "웹사이트의 언어를 감지하여 적절한 필터를 활성화합니다." + }, + "options_export_settings": { + "message": "설정 내보내기" + }, + "options_filters": { + "message": "필터" + }, + "options_filters_annoyances_consent_description": { + "message": "귀하는 하나 이상의 방해 요소 필터를 활성화하려 합니다. 이 필터는 웹사이트 콘텐츠와 무관하거나 관련이 있으나 사용자 경험에 방해가 되는 요소를 차단합니다. 웹사이트 소유자는 이러한 요소를 필수로 간주할 수 있습니다: 이를 차단할 경우 해당 사이트의 이용 약관을 위반할 수 있으며, 웹사이트의 일부 기능이 사용 불가능하거나 제대로 작동하지 않을 수 있습니다. 귀하는 방문하는 웹사이트의 이용 약관을 준수할 책임이 전적으로 귀하에게 있으며, AdGuard는 귀하가 당사 제품을 사용하여 방문하는 웹사이트의 이용 약관 준수에 대해 책임을 지지 않음을 이해하고 동의합니다." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "활성화" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "홈페이지" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "AdGuard의 방해 요소 필터가 차단하는 항목에 대한 자세한 내용은 \u003Ca>필터 정책\u003C/a>을 참조하세요." + }, + "options_filters_annoyances_consent_question": { + "message": "이 필터를 활성화하시겠습니까?" + }, + "options_filters_annoyances_consent_title": { + "message": "방해 요소 필터를 활성화하기 전에 주의 깊게 읽어주세요." + }, + "options_filters_back_button": { + "message": "뒤로가기" + }, + "options_filters_empty_title": { + "message": "아무것도 찾을 수 없습니다" + }, + "options_filters_enabled": { + "message": "활성화 됨:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% 및 %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% 외 %more%개" + }, + "options_filters_enabled_per_group": { + "message": "활성화됨: %current%/%total%" + }, + "options_filters_filter_link": { + "message": "홈페이지로 이동" + }, + "options_filters_filter_tags": { + "message": "필터 태그" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "이 필터를 신뢰하셨습니다." + }, + "options_filters_filter_updated": { + "message": "마지막 업데이트:" + }, + "options_filters_filter_version": { + "message": "버전:" + }, + "options_filters_info_mv3_total_rules": { + "message": "전체 규칙: %num%" + }, + "options_filters_last_checked": { + "message": "마지막 확인: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "모든 필터" + }, + "options_filters_list_search_display_option_disabled": { + "message": "비활성화된 필터" + }, + "options_filters_list_search_display_option_enabled": { + "message": "활성화된 필터" + }, + "options_filters_no_enabled": { + "message": "활성화된 필터 없음" + }, + "options_filters_of_group": { + "message": "'%groupName%' 그룹의 필터" + }, + "options_filters_search": { + "message": "검색" + }, + "options_filters_search_filter": { + "message": "필터 검색" + }, + "options_first_party_block_cookies_warning": { + "message": "이러한 쿠키를 차단하면, 일부 웹사이트가 중단되거나 작동이 중지될 수 있습니다." + }, + "options_first_party_desc": { + "message": "퍼스트파티 쿠키의 세션 만료시간을 제한하여 웹사이트가 귀하의 로그인 정보 및 언어 기본 설정과 같은 세부 정보를 기억하지 못하도록 합니다" + }, + "options_first_party_title": { + "message": "퍼스트파티 쿠키삭제(권장하지 않음)" + }, + "options_general_settings": { + "message": "일반" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "방문하는 웹사이트를 제3자가 알 수 없도록 합니다." + }, + "options_hide_referrer_title": { + "message": "제 3자로부터 리퍼러 숨기기" + }, + "options_hide_search_queries_desc": { + "message": "검색 엔진 결과를 통해 방문한 웹사이트들에서 검색 내용을 숨깁니다." + }, + "options_hide_search_queries_title": { + "message": "검색어 숨기기" + }, + "options_import_configuration_applying_subtitle": { + "message": "현재 설정을 가져온 설정으로 바꿉니다. 가져오기 중에는 필터링이 꺼집니다." + }, + "options_import_configuration_applying_title": { + "message": "가져오는 중..." + }, + "options_import_configuration_confirm_button": { + "message": "가져오기" + }, + "options_import_configuration_confirm_subtitle": { + "message": "가져온 설정이 현재 설정을 대체합니다. 다른 설정은 영향을 받지 않습니다." + }, + "options_import_configuration_confirm_title": { + "message": "설정 불러오기" + }, + "options_import_configuration_error_button": { + "message": "닫기" + }, + "options_import_configuration_error_subtitle": { + "message": "링크를 확인하고 다시 시도해 보세요. 그래도 도움이 되지 않으면 지원팀에 문의하세요." + }, + "options_import_configuration_error_title": { + "message": "설정을 가져오지 못했습니다." + }, + "options_import_configuration_success_button": { + "message": "닫기" + }, + "options_import_configuration_success_subtitle": { + "message": "설정을 성공적으로 가져왔습니다." + }, + "options_import_configuration_success_title": { + "message": "모두 완료" + }, + "options_import_settings": { + "message": "설정 불러오기" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "반전" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "광고와 추적기가 허용 목록에 있는 웹사이트에서만 차단됩니다" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "허용 목록을 반전합니까?" + }, + "options_leave_feedback": { + "message": "피드백 남기기" + }, + "options_lifetime_minutes": { + "message": "세션 만료시간, 분" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "사용자가 추가한 정규식 규칙의 한도에 도달했습니다. %current% 중 %maximum% 정규식 규칙이 활성화되었습니다." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "사용자가 추가할 수 있는 규칙의 제한에 도달했습니다. %current%개 규칙 중 %maximum%개가 활성화되어 있습니다. 새로운 regex 규칙을 추가하려면 기존 규칙을 일부 삭제하세요." + }, + "options_limits_warning_dynamic_rules": { + "message": "사용자가 추가한 규칙의 한도에 도달했습니다. %current% 중 %maximum% 규칙이 활성화되었습니다." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "사용자가 추가할 수 있는 규칙의 제한에 도달했습니다. %current%개 규칙 중 %maximum%개가 활성화되어 있습니다. 새로운 규칙을 추가하려면 기존 규칙을 일부 삭제하세요." + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "안전하지 않은 사용자 규칙의 한도에 도달했습니다. %current% 중 %maximum% 안전하지 않은 규칙이 활성화되었습니다." + }, + "options_limits_warning_static_filters": { + "message": "활성 내장 필터의 한도에 도달했습니다. %current% 중 %maximum% 필터가 활성화되었습니다. 새 규칙을 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_limits_warning_static_filters_browser": { + "message": "브라우저의 활성화된 내장 필터 한도에 도달했습니다. %current%개의 필터 중 %maximum%개가 활성화되어 있습니다. 새로운 필터를 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_limits_warning_static_regex_rules": { + "message": "활성 내장 정규식 규칙의 한도에 도달했습니다. %current% 중 %maximum% 정규식 규칙이 활성화되었습니다. 새 규칙을 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "활성화된 내장 regex 규칙의 한도를 초과했습니다. 새로운 규칙을 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_limits_warning_static_rules": { + "message": "활성 내장 규칙의 한도에 도달했습니다. %current% 중 %maximum% 규칙이 활성화되었습니다. 새 규칙을 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_limits_warning_static_rules_browser": { + "message": "브라우저의 활성화된 내장 규칙 한도에 도달했습니다. 새로운 규칙을 활성화하려면 일부 내장 필터를 비활성화하세요." + }, + "options_loader_applying_changes": { + "message": "변경 사항을 적용하는 중..." + }, + "options_miscellaneous_settings": { + "message": "추가 설정" + }, + "options_modified_first_party_cookie": { + "message": "퍼스트-파티 쿠키 수정됨" + }, + "options_modified_third_party_cookie": { + "message": "제 3자 쿠키 수정됨" + }, + "options_nav_better_than_extension": { + "message": "AdGuard 앱이 확장 프로그램보다 나은 이유는 무엇인가요?" + }, + "options_nav_compare": { + "message": "차이점 비교해보기" + }, + "options_navigation": { + "message": "탐색" + }, + "options_open_changelog": { + "message": "변경사항" + }, + "options_open_log": { + "message": "필터링 로그 열기" + }, + "options_popup_call_to_action": { + "message": "필터의 올바른 URL 또는 파일 경로를 위의 필드에 입력하세요." + }, + "options_popup_check_false_description": { + "message": "시용자 지정 필터 추가 중 오류가 발생했습니다." + }, + "options_popup_check_false_title": { + "message": "오류" + }, + "options_popup_checking_filter": { + "message": "필터 확인중.." + }, + "options_popup_description": { + "message": "해당 필터를 구독하게 됩니다." + }, + "options_popup_filter_description": { + "message": "설명:" + }, + "options_popup_filter_homepage": { + "message": "홈페이지:" + }, + "options_popup_filter_rules_count": { + "message": "규칙 개수:" + }, + "options_popup_filter_title": { + "message": "이름:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "버전:" + }, + "options_popup_import_error_file_description": { + "message": "무엇인가 잘못되었습니다." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "이 설정 파일을 불러오기 위해 AdGuard가 개인정보 보호 관련 설정을 변경하도록 허용하세요." + }, + "options_popup_import_error_title": { + "message": "설정을 가져오지 못했습니다." + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "파일 확장자가 %extension% 형식이어야만 합니다" + }, + "options_popup_import_success_title": { + "message": "설정을 가져왔습니다." + }, + "options_popup_next_button": { + "message": "다음" + }, + "options_popup_subscribe_button": { + "message": "구독" + }, + "options_popup_title_placeholder": { + "message": "필터 이름 입력" + }, + "options_popup_trusted_filter_description": { + "message": "신뢰할 수 있는 필터는 강력한 필터링 규칙을 사용할 수 있어, 잘못 사용할 경우 위험할 수 있습니다. 완전히 신뢰하지 않는 한 이 옵션을 선택하지 마세요." + }, + "options_popup_trusted_filter_title": { + "message": "신뢰함" + }, + "options_popup_try_again_button": { + "message": "다시 시도해보세요" + }, + "options_popup_update_error": { + "message": "업데이트에 실패했습니다. 나중에 다시 해주세요." + }, + "options_popup_update_filter": { + "message": "가 업데이트 되었습니다." + }, + "options_popup_update_filters": { + "message": "가 업데이트 되었습니다." + }, + "options_popup_update_not_found": { + "message": "필터가 최신 버전입니다" + }, + "options_popup_update_title_error": { + "message": "필터 업데이트 오류" + }, + "options_popup_updating_filters": { + "message": "필터 업데이트 중..." + }, + "options_popup_url_placeholder": { + "message": "파일 URL 또는 경로 입력:" + }, + "options_popup_url_title": { + "message": "새로운 필터 구독" + }, + "options_popup_version_update_changelog_text": { + "message": "이번 버전의 업데이트 내역" + }, + "options_popup_version_update_description_major": { + "message": "이 주요 업데이트는 새로운 기능과 개선이 포함되어 있습니다." + }, + "options_popup_version_update_description_minor": { + "message": "이 버전은 버그 수정과 마이너한 기능 개선이 포함되어 있습니다." + }, + "options_popup_version_update_disable_notification": { + "message": "알림 비활성화" + }, + "options_popup_version_update_offer": { + "message": "AdGuard 기능이 이 브라우저에만 제한되지 않는다는 사실을 알고 계시나요?" + }, + "options_popup_version_update_offer_button_text": { + "message": "더 알아보기" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard 확장 프로그램이 %current_version% 버전으로 업데이트 되었습니다." + }, + "options_prevent_webrtc_leaks_desc": { + "message": "프록시 또는 VPN을 사용할 때 실제 IP 주소를 계속 숨기는 데 도움이 되도록 WebRTC가 더 엄격한 IP 주소 정책을 사용하게 합니다." + }, + "options_prevent_webrtc_leaks_title": { + "message": "WebRTC를 통한 IP 주소 유출 방지" + }, + "options_privacy": { + "message": "추적 보호" + }, + "options_privacy_desc": { + "message": "웹 트래커로부터 온라인 활동 및 개인 데이터를 보호합니다." + }, + "options_privacy_policy": { + "message": "개인정보취급방침" + }, + "options_privacy_title": { + "message": "추적 보호" + }, + "options_rate_us_cta": { + "message": "평가해 주세요" + }, + "options_remove_client_data_desc": { + "message": "Google Chrome이 버전 및 수정 정보를 Google 도메인으로 전송하지 못하도록 차단합니다." + }, + "options_remove_client_data_title": { + "message": "X-Client-Data 헤더 제거" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "제거" + }, + "options_remove_filter_confirm_modal_title": { + "message": "이 필터를 제거하시겠습니까?" + }, + "options_report_bug": { + "message": "버그 제보" + }, + "options_reset_settings": { + "message": "설정 초기화" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "초기화" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "모든 설정이 기본값으로 초기화됩니다" + }, + "options_reset_settings_confirm_modal_title": { + "message": "설정을 초기화하시겠습니까?" + }, + "options_reset_settings_done": { + "message": "설정이 초기화되었습니다" + }, + "options_reset_settings_error": { + "message": "설정을 초기화하는 동안 오류가 발생했습니다" + }, + "options_reset_stats": { + "message": "통계 비우기" + }, + "options_reset_stats_done": { + "message": "통계가 초기화 되었습니다." + }, + "options_rule_limits": { + "message": "규칙 제한" + }, + "options_rule_limits_description": { + "message": "Chrome은 적용할 수 있는 규칙의 수를 제한합니다." + }, + "options_rule_limits_dynamic": { + "message": "동적 규칙" + }, + "options_rule_limits_dynamic_regex": { + "message": "정규 표현식 규칙 (사용자 규칙에 포함)" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "안전하지 않은 동적 규칙($$redirect 또는 $$cookie와 같이 일부 고급 수정자가 사용됨) - 사용자 추가규칙에 포함됨" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "사용자가 추가하는 규칙: \u003Cuser_rules>사용자 규칙\u003C/user_rules>, \u003Callowlist>허용 목록 웹사이트\u003C/allowlist> 및 \u003Ccustom_filters>사용자 정의 필터\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "\u003Cuser_rules>사용자 규칙\u003C/user_rules> 및 \u003Callowlist>허용 목록에 등록된 웹사이트\u003C/allowlist>와 같은 사용자가 추가한 규칙" + }, + "options_rule_limits_numbers": { + "message": "%maximum%개 중 %current%개" + }, + "options_rule_limits_static_rules": { + "message": "정적 규칙" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>내장 필터\u003C/a>의 규칙" + }, + "options_rule_limits_static_rules_regex": { + "message": "정규 표현식 규칙 (위에 포함되어 있음)" + }, + "options_rule_limits_static_rulesets": { + "message": "정적 규칙 집합" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>내장 필터\u003C/a>: 방해 요소 차단 또는 언어별 필터" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "옵션 3. 현재 활성화된 기본 필터에 만족하는 경우 \u003Ca>이 경고를 닫습니다.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "옵션 3. 현재 활성화된 기본 필터에 만족하는 경우 \u003Ca>이 경고를 닫습니다.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "옵션 1. 브라우저에서 불필요한 광고 차단 확장 프로그램을 삭제하세요. '업데이트 전 활성화되었던 필터' 섹션에 언급된 필터를 다시 활성화하려면 \u003Ca>필터 다시 활성화\u003C/a>를 클릭하세요." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "옵션 2. AdGuard 광고 차단기 앱을 설치하세요. 필터링 규칙에 제한이 없습니다. \u003Ca>AdGuard 앱 다운로드\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "할 수 있는 동작" + }, + "options_rule_limits_warning_explanation_description": { + "message": "새 확장 프로그램을 추가 또는 업데이트한 뒤 활성화된 내장 규칙 수의 제한을 초과했습니다. Chrome 브라우저가 Manifest V3에 따라 기본 필터를 제외한 확장 프로그램의 모든 내장 필터를 비활성화했습니다." + }, + "options_rule_limits_warning_explanation_title": { + "message": "무슨 일이 발생했나요?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "업데이트 전 활성화되었던 필터" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "현재 활성화된 필터" + }, + "options_rule_limits_warning_title": { + "message": "브라우저에서 활성화된 필터 목록을 수정했습니다" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "규칙 제한 없이 모든 브라우저에서 동작하는 확장된 보호를 받으세요" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "데스크톱 앱 설치" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "필터 설정으로.." + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "확장 프로그램 관리" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "브라우저 확장 프로그램은 동일한 규칙 제한을 공유합니다. 다른 광고 차단기를 제거하면 AdGuard 브라우저 확장 프로그램을 위한 규칙 수를 확보할 수 있습니다" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "다른 광고 차단기 제거" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "필요한 필터를 활성화하세요. 언어별 필터나 개인정보 필터는 여러 규칙을 사용할 수 있습니다" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "사용 가능한 필터 검토" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "시도해볼 수 있는 방법" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "제한 도달 — 일부 필터가 비활성화되었습니다" + }, + "options_rule_syntax": { + "message": "규칙 구문" + }, + "options_safebrowsing_enabled": { + "message": "피싱, 멀웨어 보호" + }, + "options_safebrowsing_enabled_desc": { + "message": "AdGuard 브라우징 보안 모듈을 사용하여 악성 및 피싱 웹사이트에 대해 경고합니다. \u003Ca>자세히 보기\u003C/a>" + }, + "options_select_theme": { + "message": "테마" + }, + "options_select_update_period_12h": { + "message": "12시간" + }, + "options_select_update_period_1h": { + "message": "1시간" + }, + "options_select_update_period_24h": { + "message": "24시간" + }, + "options_select_update_period_48h": { + "message": "48시간" + }, + "options_select_update_period_6h": { + "message": "6시간" + }, + "options_select_update_period_default": { + "message": "기본" + }, + "options_select_update_period_disabled": { + "message": "비활성화 됨" + }, + "options_send_not_track_desc": { + "message": "방문하는 웹사이트에 \u003Cgpc>글로벌 개인정보 보호\u003C/gpc> 및 \u003Cdnt>Do Not Track\u003C/dnt> 신호를 보냅니다." + }, + "options_send_not_track_title": { + "message": "웹사이트에 추적하지 않도록 요청하기" + }, + "options_set_update_interval": { + "message": "필터 자동 업데이트" + }, + "options_set_update_interval_desc": { + "message": "필터를 최신 상태로 유지하여 광고를 더 효과적으로 차단합니다." + }, + "options_settings": { + "message": "AdGuard 설정" + }, + "options_share_settings": { + "message": "설정 공유하기" + }, + "options_show_adguard_full_version_title": { + "message": "AdGuard 전체 버전 정보 보기" + }, + "options_show_app_updated_notification": { + "message": "필터 업데이트 알림" + }, + "options_show_blocked_ads_count_title": { + "message": "차단된 광고의 수를 AdGuard 확장 프로그램 아이콘에 표시" + }, + "options_show_context_menu_title": { + "message": "AdGuard 항목을 브라우저 콘텍스트 메뉴에 추가" + }, + "options_site": { + "message": "공식 웹사이트" + }, + "options_skip_to_main_content": { + "message": "메인 컨텐츠로 건너뛰기" + }, + "options_stealth_general_title": { + "message": "일반" + }, + "options_stealth_miscellaneous_title": { + "message": "기타" + }, + "options_stealth_tracking_methods_title": { + "message": "추적 방법" + }, + "options_strip_tracking_params_description": { + "message": "AdGuard URL 추적 필터를 사용하여 페이지 URL에서 추적 매개변수를 제거합니다." + }, + "options_strip_tracking_params_title": { + "message": "URL에서 추적 매개변수 제거" + }, + "options_stripped_tracking_parameters": { + "message": "추적 매개변수 제거" + }, + "options_theme_selector_dark": { + "message": "다크" + }, + "options_theme_selector_light": { + "message": "라이트" + }, + "options_theme_selector_system": { + "message": "시스템 기본값" + }, + "options_third_party_block_cookies_warning": { + "message": "이러한 쿠키를 차단하면, 일부 웹사이트들에 재로그인해야 하거나 기타 쿠키 관련 문제가 발생할 수 있습니다." + }, + "options_third_party_desc": { + "message": "서드파티 쿠키의 세션 만료시간을 제한하여 광고주가 수많은 페이지에서 사용자의 행동을 추적하지 못하도록 방지합니다." + }, + "options_third_party_title": { + "message": "타사 쿠키 삭제" + }, + "options_update_antibanner_filters": { + "message": "필터 업데이트 확인" + }, + "options_use_optimized_filters": { + "message": "최적화된 필터 사용하기" + }, + "options_use_optimized_filters_desc": { + "message": "트래픽 절약용으로 가장 인기있는 규칙들만 포함된 간소화된 버전의 필터를 사용합니다. 모바일 브라우저에 더 적합." + }, + "options_user_rules_clear_search": { + "message": "검색 지우기" + }, + "options_user_rules_create_rule": { + "message": "규칙 생성" + }, + "options_user_rules_delete_all": { + "message": "모두 삭제" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "모든 사용자 규칙이 영구적으로 삭제됩니다." + }, + "options_user_rules_delete_all_confirm_title": { + "message": "모두 삭제하시겠습니까?" + }, + "options_user_rules_delete_all_success": { + "message": "모든 사용자 규칙 삭제됨" + }, + "options_user_rules_delete_rule": { + "message": "규칙 제거" + }, + "options_user_rules_deleted_notification": { + "message": "사용자 규칙 삭제됨:" + }, + "options_user_rules_description_key": { + "message": "광고 또는 전체 웹사이트 차단 및 차단 해제에 대한 규칙" + }, + "options_user_rules_edit_rule": { + "message": "규칙 편집" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "편집기로 이동" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "규칙을 닫으면 여기에 규칙이 표시됩니다." + }, + "options_user_rules_editor_stub_title": { + "message": "다른 창에서 편집기가 열렸습니다." + }, + "options_user_rules_empty_placeholder": { + "message": "아직 규칙 없음" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "규칙 강조 중…" + }, + "options_user_rules_import_error": { + "message": "사용자 규칙을 가져오지 못했습니다. 다시 시도해 주세요." + }, + "options_user_rules_import_success": { + "message": "사용자 규칙을 성공적으로 가져왔습니다." + }, + "options_user_rules_menu": { + "message": "사용자 규칙 동작" + }, + "options_user_rules_no_match": { + "message": "아무것도 찾을 수 없습니다" + }, + "options_user_rules_search_placeholder": { + "message": "검색" + }, + "options_user_rules_switch_to_editor": { + "message": "편집기로 전환" + }, + "options_user_rules_switch_to_list": { + "message": "목록으로 전환" + }, + "options_user_rules_undo": { + "message": "되돌리기" + }, + "options_userfilter": { + "message": "사용자 규칙" + }, + "options_userfilter_description_key": { + "message": "자신만의 규칙을 추가할 수 있습니다. 이 설정은 HTML/CSS에 익숙한 고급 사용자에게 권장합니다. \u003Ca>필터 규칙 튜토리얼\u003C/a>을 읽어보고 사용자 지정 필터 규칙을 어떻게 만드는지 알아보세요." + }, + "options_userfilter_export": { + "message": "내보내기" + }, + "options_userfilter_import": { + "message": "가져오기" + }, + "options_userfilter_leave_subtitle": { + "message": "규칙에 대한 변경 사항이 손실됩니다." + }, + "options_userfilter_line_break": { + "message": "줄 바꿈" + }, + "options_userfilter_line_break_off": { + "message": "줄바꿈: 비활성화됨" + }, + "options_userfilter_line_break_on": { + "message": "줄바꿈: 활성화됨" + }, + "options_userfilter_subtitle_key": { + "message": "사용자 정의 필터링 규칙을 추가할 수 있습니다." + }, + "popup_abuse_site": { + "message": "문제 신고하기" + }, + "popup_adguard_footer_title": { + "message": "모바일 기기 보호" + }, + "popup_adguard_for_android": { + "message": "Android용 AdGuard" + }, + "popup_adguard_for_ios": { + "message": "iOS용 AdGuard" + }, + "popup_block_site_ads_option": { + "message": "수동으로 광고 차단" + }, + "popup_get_system_wide_protection": { + "message": "시스템 전역 보호하기" + }, + "popup_header_cta_link": { + "message": "보호 강화 방법" + }, + "popup_header_update_filters": { + "message": "필터 업데이트 확인" + }, + "popup_limits_exceeded_warning": { + "message": "브라우저에서 활성 내장 필터 목록을 수정했습니다." + }, + "popup_open_filtering_log": { + "message": "필터링 로그 열기" + }, + "popup_open_settings": { + "message": "AdGuard 설정 열기" + }, + "popup_protection_button": { + "message": "AdGuard 보호" + }, + "popup_reset_page_user_rules": { + "message": "이 웹사이트에 대한 사용자 규칙 삭제" + }, + "popup_resume_protection_button": { + "message": "재개하기" + }, + "popup_security_report": { + "message": "웹사이트 보안 확인" + }, + "popup_site_exception_information": { + "message": "이 웹 사이트의 동작을 방해할 수 있어서 필터링이 해제됐습니다." + }, + "popup_site_filtering_state_disabled": { + "message": "보호가 비활성화 되었습니다." + }, + "popup_site_filtering_state_disabling": { + "message": "보호를 비활성화하는 중..." + }, + "popup_site_filtering_state_enabled": { + "message": "보호 사용중" + }, + "popup_site_filtering_state_enabling": { + "message": "보호를 활성화하는 중..." + }, + "popup_site_filtering_state_loading": { + "message": "로딩중..." + }, + "popup_site_filtering_state_paused": { + "message": "보호가 일시정지 되었습니다." + }, + "popup_site_filtering_state_pausing": { + "message": "보호를 일시중지하는 중..." + }, + "popup_site_filtering_state_resuming": { + "message": "보호를 재개하는 중..." + }, + "popup_site_filtering_state_secure_page": { + "message": "보안 페이지" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "모든 웹사이트에 대해" + }, + "popup_statistics_all_categories": { + "message": "모두" + }, + "popup_statistics_category_advertising": { + "message": "광고" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "통계 카테고리" + }, + "popup_statistics_category_other": { + "message": "기타" + }, + "popup_statistics_category_social_media": { + "message": "SNS" + }, + "popup_statistics_category_trackers": { + "message": "트래커" + }, + "popup_statistics_months_apr": { + "message": "4월" + }, + "popup_statistics_months_aug": { + "message": "8월" + }, + "popup_statistics_months_dec": { + "message": "12월" + }, + "popup_statistics_months_feb": { + "message": "2월" + }, + "popup_statistics_months_jan": { + "message": "1월" + }, + "popup_statistics_months_jul": { + "message": "7월" + }, + "popup_statistics_months_jun": { + "message": "6월" + }, + "popup_statistics_months_mar": { + "message": "3월" + }, + "popup_statistics_months_may": { + "message": "5월" + }, + "popup_statistics_months_nov": { + "message": "11월" + }, + "popup_statistics_months_oct": { + "message": "10월" + }, + "popup_statistics_months_sep": { + "message": "9월" + }, + "popup_statistics_time_day": { + "message": "24시간" + }, + "popup_statistics_time_label": { + "message": "통계 기간" + }, + "popup_statistics_time_month": { + "message": "30일" + }, + "popup_statistics_time_week": { + "message": "7일" + }, + "popup_statistics_time_year": { + "message": "1년" + }, + "popup_statistics_total": { + "message": "합계" + }, + "popup_statistics_week_days_fri": { + "message": "금" + }, + "popup_statistics_week_days_mon": { + "message": "월" + }, + "popup_statistics_week_days_sat": { + "message": "토" + }, + "popup_statistics_week_days_sun": { + "message": "일" + }, + "popup_statistics_week_days_thu": { + "message": "목" + }, + "popup_statistics_week_days_tue": { + "message": "화" + }, + "popup_statistics_week_days_wed": { + "message": "수" + }, + "popup_switch_button": { + "message": "이 웹사이트 보호" + }, + "popup_tab_actions": { + "message": "동작" + }, + "popup_tab_blocked_all_count": { + "message": "총 차단됨: %num%" + }, + "popup_tab_blocked_count": { + "message": "차단: %num%개" + }, + "popup_tab_current_website": { + "message": "현재 웹사이트" + }, + "popup_tab_statistics": { + "message": "통계" + }, + "popup_tabs": { + "message": "탭" + }, + "popup_tooltip_loading": { + "message": "로딩중..." + }, + "popup_tooltip_protection_disabled": { + "message": "보호 꺼짐" + }, + "popup_tooltip_protection_enabled": { + "message": "보호가 활성화됨" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "일부 규칙이 적용되지 않음" + }, + "popup_tooltip_update_available": { + "message": "업데이트 가능" + }, + "post_install_loading": { + "message": "확장 프로그램 로딩 중..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard 확장 프로그램에서 규칙 제한이 초과되었습니다. 필터를 확인하고 필요 없는 필터를 비활성화하세요." + }, + "text_collapser_hide_default": { + "message": "전체 텍스트 숨김" + }, + "text_collapser_show_default": { + "message": "전체 텍스트 표시" + }, + "update_available_desc": { + "message": "광고를 효과적으로 차단하려면 확장 프로그램과 필터를 최신 상태로 유지하세요." + }, + "update_available_title": { + "message": "업데이트 가능" + }, + "update_available_update_btn": { + "message": "업데이트" + }, + "update_check": { + "message": "업데이트 확인" + }, + "update_checking_in_progress": { + "message": "업데이트 확인 중..." + }, + "update_failed_text": { + "message": "업데이트를 완료하지 못했습니다." + }, + "update_failed_try_again_btn": { + "message": "다시 시도해보세요" + }, + "update_installing_in_progress_desc": { + "message": "업데이트 후 확장 프로그램이 다시 시작됩니다." + }, + "update_installing_in_progress_title": { + "message": "확장 프로그램과 필터를 업데이트하는 중..." + }, + "update_not_needed": { + "message": "확장 프로그램 및 필터가 최신 상태입니다." + }, + "update_success_text": { + "message": "확장 프로그램 및 필터가 업데이트되었습니다." + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lt/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lt/messages.json new file mode 100644 index 0000000..e327bda --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lt/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% buvo aktyvuotas automatiškai" + }, + "alert_popup_filter_enabled_title": { + "message": "Automatinis filtrų aktyvinimas" + }, + "background_tab_title": { + "message": "Foninis skirtukas" + }, + "blocking_pages_advanced_button": { + "message": "Išplėstiniai" + }, + "blocking_pages_btn_go_back": { + "message": "Grįžti" + }, + "blocking_pages_btn_proceed": { + "message": "Tęsti vis tiek" + }, + "blocking_pages_malware": { + "message": "Apie šį tinklalapį \u003Cstrong>%host%\u003C/strong> pranešta kaip apie kenkėjiškų programų puslapį ir jis buvo užblokuotas, atsižvelgiant į Jūsų saugos nuostatas." + }, + "blocking_pages_more_info_button": { + "message": "Daugiau informacijos" + }, + "blocking_pages_page_title": { + "message": "Prieiga neleidžiama" + }, + "blocking_pages_phishing": { + "message": "Pranešta, kad šis tinklalapis \u003Cstrong>%host%\u003C/strong> yra sukčiavimo puslapis ir buvo užblokuotas atsižvelgiant į jūsų saugos nuostatas." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard neleido įkelti šio puslapio dėl šios filtravimo taisyklės" + }, + "blocking_pages_rule_header_title": { + "message": "Užblokavo AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard užblokavo prieigą prie šio puslapio" + }, + "clear_button_title": { + "message": "Valyti" + }, + "close_button_title": { + "message": "Uždaryti" + }, + "context_block_site_ads": { + "message": "Blokuoti reklamas rankiniu būdu" + }, + "context_complaint_website": { + "message": "Pranešti apie problemą" + }, + "context_disable_protection": { + "message": "Pristabdyti AdGuard apsaugą" + }, + "context_enable_protection": { + "message": "Atnaujinti AdGuard apsaugą" + }, + "context_open_log": { + "message": "Filtravimo logas" + }, + "context_open_settings": { + "message": "AdGuard nustatymai" + }, + "context_security_report": { + "message": "Patikrinti svetainės saugumą" + }, + "context_site_exception": { + "message": "Ši svetainė yra išimtyse" + }, + "context_site_filtering_disabled": { + "message": "AdGuard negali filtruoti šio puslapio" + }, + "context_site_filtering_off": { + "message": "Išjungti filtravimą šioje svetainėje" + }, + "context_site_filtering_on": { + "message": "Įjungti filtravimą šioje svetainėje" + }, + "context_site_protection_disabled": { + "message": "AdGuard apsauga laikinai sustabdyta" + }, + "context_update_antibanner_filters": { + "message": "Patikrinti filtro atnaujinimus" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Nepralenkiama apsauga nuo reklamų ir iškylančių langų. Blokuoja skelbimus Facebook, YouTube ir visose kitose svetainėse." + }, + "filtering_clear_log_events": { + "message": "Išvalyti žurnalą" + }, + "filtering_log_actions_menu": { + "message": "Filtravimo žurnalo veiksmai" + }, + "filtering_log_assumed_rule_description": { + "message": "Tai yra laikina taisyklė. Daugiau informacijos rasite mūsų \u003Ca>Žinių bazėje\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP užklausos metodas" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP būsenos kodas" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Trečiųjų šalių prašymait" + }, + "filtering_log_details_modal_back_button": { + "message": "Atgal į užklausą" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Gražinti" + }, + "filtering_log_details_modal_try_again": { + "message": "Pabandyti iš naujo" + }, + "filtering_log_filter_allowed": { + "message": "Baltajame sąraše" + }, + "filtering_log_filter_blocked": { + "message": "Užblokuota" + }, + "filtering_log_filter_modified": { + "message": "Modifikuota" + }, + "filtering_log_filter_regular": { + "message": "Įprastas" + }, + "filtering_log_filter_user_rules": { + "message": "Naudotojo taisyklės" + }, + "filtering_log_hide_referrer": { + "message": "„Referer“ paslėptas nuo trečiųjų šalių" + }, + "filtering_log_hide_search_queries": { + "message": "Jūsų paieškos užklausos paslėptos" + }, + "filtering_log_in_allowlist": { + "message": "Svetainė yra baltajame sąraše" + }, + "filtering_log_modified_rules": { + "message": "Pakeistos taisyklės: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Taip, saugoti" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ši parinktis gali žymiai padidinti atminties naudojimą" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Išsaugoti logą?" + }, + "filtering_log_preserve_log_off": { + "message": "Nesaugoti žurnalo" + }, + "filtering_log_preserve_log_on": { + "message": "Išsaugoti logą" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Daugiau nerodyti" + }, + "filtering_log_privacy_applied_rules": { + "message": "Taikoma sekimo apsauga" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data antraštė pašalinta" + }, + "filtering_log_search_string": { + "message": "Paieška" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Ieškoti skirtukuose" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track antraštė išsiųsta" + }, + "filtering_log_status_allowed": { + "message": "Baltajame sąraše" + }, + "filtering_log_status_blocked": { + "message": "Užblokuota" + }, + "filtering_log_status_modified": { + "message": "Modifikuoti" + }, + "filtering_log_status_processed": { + "message": "Apdorota" + }, + "filtering_log_stealth_rules": { + "message": "Sekimo apsaugos taisyklės: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Užklausos šaltinis" + }, + "filtering_log_tag_request_status": { + "message": "Filtravimo būsena" + }, + "filtering_log_tag_request_type": { + "message": "Užklausos tipas" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Leidžiamos ir atblokuotos užklausos" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Užblokuotos užklausos" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stilių lapai" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Pirmosios šalies užklausos" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumentai ir subdokumentai" + }, + "filtering_log_tag_tooltip_img": { + "message": "Vaizdai" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scenarijai" + }, + "filtering_log_tag_tooltip_media": { + "message": "Žiniasklaida" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Pakeistos užklausos" + }, + "filtering_log_tag_tooltip_other": { + "message": "Šriftai, pingai, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Užklausos, apdorotos be filtravimo" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Trečiųjų šalių užklausos" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Užklausos, kurioms įtakos turi naudotojo taisyklės" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests ir gauti užklausas" + }, + "filtering_log_title": { + "message": "Filtravimo logas" + }, + "filtering_menu_open_filters": { + "message": "Nustatyti" + }, + "filtering_modal_add_rule": { + "message": "PRIDĖTI" + }, + "filtering_modal_allow_title": { + "message": "Pridėti leidimo taisyklę" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Taikoma taisyklė | Taikomos taisyklės | Taikomos taisyklės" + }, + "filtering_modal_apply_domains": { + "message": "Taikyti visoms svetainėms" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Priklausoma taisyklė: | Priklausomos taisyklės: | Priklausomos taisyklės:" + }, + "filtering_modal_block": { + "message": "Užblokuoti" + }, + "filtering_modal_block_again": { + "message": "Blokuoti dar kartą" + }, + "filtering_modal_block_title": { + "message": "Pridėti blokavimo taisyklę" + }, + "filtering_modal_converted_to": { + "message": "Konvertuota į:" + }, + "filtering_modal_cookie": { + "message": "Slapukas:" + }, + "filtering_modal_copied": { + "message": "Nukopijuota" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopijuoti Į Iškarpinę" + }, + "filtering_modal_declarative_rule": { + "message": "DNR taisyklė:" + }, + "filtering_modal_element": { + "message": "Elementas:" + }, + "filtering_modal_exception_title": { + "message": "Pridėti išimtį" + }, + "filtering_modal_filter": { + "message": "Filtras" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtravimo būsena" + }, + "filtering_modal_hide_full_element": { + "message": "Slėpti visą elementą" + }, + "filtering_modal_hide_full_rule": { + "message": "Slėpti visą taisyklę" + }, + "filtering_modal_hide_full_url": { + "message": "Paslėpti pilną URL" + }, + "filtering_modal_important": { + "message": "Padidinti prioritetą taisyklei" + }, + "filtering_modal_info_title": { + "message": "Užklausos detalės" + }, + "filtering_modal_open_in_new_tab": { + "message": "Atidaryti naujame skirtuke" + }, + "filtering_modal_options_desc": { + "message": "Parinktys" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Pradinė taisyklė: | Pradinės taisyklės: | Pradinės taisyklės:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Ką reikia leisti" + }, + "filtering_modal_patterns_desc_block": { + "message": "Ką reikia blokuoti" + }, + "filtering_modal_preview_request_button": { + "message": "Peržiūra" + }, + "filtering_modal_preview_title": { + "message": "Peržiūra" + }, + "filtering_modal_privacy": { + "message": "Sekimo apsauga" + }, + "filtering_modal_remove_allowlist": { + "message": "Pašalinti iš baltojo sąrašo" + }, + "filtering_modal_remove_param": { + "message": "Ištrinti užklausos parametrus" + }, + "filtering_modal_remove_user": { + "message": "Pašalinti iš naudotojo filtrų" + }, + "filtering_modal_rule": { + "message": "Taisyklė:" + }, + "filtering_modal_rule_text_desc": { + "message": "Taisyklė" + }, + "filtering_modal_rules": { + "message": "Taisyklės:" + }, + "filtering_modal_show_full_element": { + "message": "Rodyti visą elementą" + }, + "filtering_modal_show_full_rule": { + "message": "Rodyti visą taisyklę" + }, + "filtering_modal_show_full_url": { + "message": "Parodyti pilną URL" + }, + "filtering_modal_source": { + "message": "Šaltinis" + }, + "filtering_modal_status_text_desc": { + "message": "Būsena" + }, + "filtering_modal_status_text_error": { + "message": "Nepavyko įkelti peržiūros. Prašome bandyti dar kartą" + }, + "filtering_modal_status_text_loading": { + "message": "Įkeliama..." + }, + "filtering_modal_third_party": { + "message": "Taikyti tik trečiųjų šalių užklausoms" + }, + "filtering_modal_type": { + "message": "Tipas" + }, + "filtering_modal_unblock": { + "message": "Atblokuoti" + }, + "filtering_refresh_tab_short": { + "message": "Atnaujinti" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Atnaujinti puslapį" + }, + "filtering_table_action": { + "message": "Veiksmas" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nieko nerasta. \u003Creset>Išjungti filtrus\u003C/reset> arba \u003Crefresh>iš naujo įkelti puslapį\u003C/refresh>, kad peržiūrėtumėte žurnalo įrašus" + }, + "filtering_table_filter": { + "message": "Filtras" + }, + "filtering_table_open_details": { + "message": "Atverti išsamią informaciją" + }, + "filtering_table_rule": { + "message": "Filtravimo taisyklė" + }, + "filtering_table_source": { + "message": "Šaltinis" + }, + "filtering_table_status": { + "message": "Būsena" + }, + "filtering_table_type": { + "message": "Tipas" + }, + "filtering_type_all": { + "message": "Visi" + }, + "filtering_type_other": { + "message": "Kitkas" + }, + "filters_download_loading": { + "message": "Palaukite, vyksta filtrų duomenų bazės įkėlimas..." + }, + "filters_download_title": { + "message": "Įkeliama filtrų duomenų bazė..." + }, + "fullscreen_user_rules_title": { + "message": "Vartotojo taisyklės" + }, + "group_description_adblocking": { + "message": "Čia sukonfigūruokite skelbimų blokavimą, kad galėtumėte susidoroti su erzinančiomis reklamjuostėmis, iškylančiais langais, vaizdo įrašų skelbimais ir panašiai, vieną ir visiems laikams" + }, + "group_description_annoyances": { + "message": "Pašalinti iššokančius langus ir kitus erzinančius pranešimus, pvz., įspėjimus apie slapukus" + }, + "group_description_custom": { + "message": "Sukurkite savo filtrus, kad patikslintumėte žiniatinklio filtravimą pagal savo pageidavimus." + }, + "group_description_lang": { + "message": "Neribokite savęs – užblokuokite skelbimus svetainėse, bet kuria kalba" + }, + "group_description_miscellaneous": { + "message": "Daugiau nustatymų, kad galėtumėte dar labiau konfigūruoti naršymą internete su AdGuard" + }, + "group_description_security": { + "message": "Apsaugokite save nuo kenkėjiškų programų, sukčiavimo ir kitų internetinių grėsmių" + }, + "group_description_social": { + "message": "Slėpti nepageidaujamus \"Patinka\"/\"Bendrinti\" mygtukus ir kitus socialinės žiniasklaidos valdiklius" + }, + "group_description_stealth": { + "message": "Apsaugokite savo tapatybę ir jautrią asmeninę informaciją nuo tūkstančių internetinių seklių, blokuodami visus žinomus populiarius stebėjimo metodus" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Daugiau nerodyti" + }, + "opera_search_permission_go_to_settings": { + "message": "Eiti į nustatymus" + }, + "opera_search_permission_warning": { + "message": "Norint blokuoti paieškos reklamas, leisti prieigą prie paieškos rezultatų puslapio naršyklės nustatymuose" + }, + "options_about": { + "message": "Apie" + }, + "options_about_libs": { + "message": "Naudojamos bibliotekos" + }, + "options_about_title": { + "message": "AdGuard naršyklės plėtinys" + }, + "options_about_update_available": { + "message": "Versija %version% yra prieinama. Ji bus automatiškai parsisiųsta ir įdiegta." + }, + "options_about_version": { + "message": "Versija" + }, + "options_acknowledgment": { + "message": "Padėkos" + }, + "options_add_custom_filter": { + "message": "Pridėti naudotojo filtrą" + }, + "options_add_custom_filter_modal_add_button": { + "message": "PRIDĖTI" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Filtro patikra..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL grąžino tinklalapį vietoje filtrų sąrašo. Pateikite tiesioginę nuorodą į filtrų failą." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Prašome bandyti dar kartą arba susisiekti su palaikymo tarnyba." + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nepavyko pridėti pasirinktino filtro" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filtro pavadinimas:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Patikimas" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Kai kurios filtravimo taisyklės gali ženkliai pakeisti jūsų naršymo patirtį ir pažeisti jūsų privatumo. Įsitikinkite, kad naudojate tik filtrus iš patikimų kūrėjų" + }, + "options_add_custom_filter_modal_title": { + "message": "Pridėti pasirinktinį filtrą" + }, + "options_all_limits_exceeded_warning": { + "message": "Pasiekėte aktyvių integruotų filtrų limitą. Jūsų naršyklė pakeitė aktyvių integruotų filtrų sąrašą. Įjungtų filtrų skaičius pasikeitė nuo %expected% iki %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Pasiekėte savo naršyklės aktyvių integruotų taisyklių limitą. Jūsų naršyklė sumažino aktyvių integruotų filtrų sąrašą nuo %expected% iki %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Jūsų naršyklė riboja \u003Cexternal-link>kai kurių tipų taisykles\u003C/external-link>. Norėdami taikyti visas taisykles, įjunkite \u003Cb>Leisti naudotojo scenarijus\u003C/b> naršyklės \u003Csettings-link>plėtinio nustatymuose\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Baltasis sąrašas" + }, + "options_allowlist_alert_invert": { + "message": "Leidimų sąrašas yra apverstas. Reklamos blokuojamos tik į jį įtrauktose svetainėse." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Nutraukti apvertimą\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard neblokuoja reklamų ir seklių svetainėse iš sąrašo" + }, + "options_allowlist_invalid_entries": { + "message": "Norint Įrašyti, palikite tik domenus arba URL. Šiuos reikia pataisyti: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertuoti baltąjį sąrašą" + }, + "options_allowlist_invert_desc": { + "message": "Blokuoja reklamas ir seklius tik sąraše esančiose svetainėse" + }, + "options_allowlist_leave_subtitle": { + "message": "Jūsų pakeitimai į Leidimų sąrašą bus prarasti" + }, + "options_allowlist_menu": { + "message": "Leidimų sąrašo veiksmai" + }, + "options_anonymized_usage_data_description": { + "message": "Siunčia anoniminius duomenis apie plėtinio naudojimą AdGuard. \u003Cbutton>Išsamiau\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Supratau" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Šie duomenys apima:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Paspaustų mygtukų pavadinimai" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Ekranų, su kuriais bendraujate, pavadinimai" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sesijų identifikatoriai" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Šie duomenys yra anoniminiai ir naudojami tik įmonės viduje. Niekada nesidalijame jais su trečiosiomis šalimis" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Mes reikia šios informacijos, kad galėtume analizuoti ir tobulinti AdGuard funkcionalumą" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Plėtinių naudojimo duomenys" + }, + "options_anonymized_usage_data_title": { + "message": "Siųsti anonimizuotus plėtinių naudojimo duomenis" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Šis pasirinktinis filtras jau pridėtas" + }, + "options_antibanner_custom_group": { + "message": "Nuosavi" + }, + "options_antibanner_custom_group_description": { + "message": "Leidžia pridėti filtrus iš failo arba URL" + }, + "options_antibanner_rules_count": { + "message": "Taisyklės: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Atnaujinta: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokuoti paieškos reklamų ir svetainių savireklamą" + }, + "options_block_acceptable_ads_desc": { + "message": "Paieškos rezultatuose rodomos reklamos ir svetainių savireklama. \u003Ca>Išsamiau\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Norėdami blokuoti slapukus, nustatykite trukmę 0" + }, + "options_block_known_trackers_description": { + "message": "Blokuoja seklius ir svetainės analizę naudodamas AdGuard sekimo apsaugos filtrą" + }, + "options_block_known_trackers_title": { + "message": "Blokuoti stebėjimo priemones" + }, + "options_check_update_progress": { + "message": "Tikrinama..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Išvalyti" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Visa duomenų naudojimo statistika bus visam laikui ištrinta" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Išvalyti statistika?" + }, + "options_clipboard_permission_warning": { + "message": "Norėdami nukopijuoti ir įklijuoti taisykles, leiskite „AdGuard“ pasiekti iškarpinę. \u003Ca>Leisti\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Siunčia anoniminius duomenis apie reklamos filtrų naudojimą AdGuard. \u003Ca>Išsamiau\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Padėkite tobulinti „AdGuard“ filtrus" + }, + "options_coming_soon": { + "message": "Ateina netrukus" + }, + "options_confirm_modal_cancel_button": { + "message": "Atšaukti" + }, + "options_copyright": { + "message": "Visos teisės saugomos." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Norėdami naudoti pasirinktinius filtrus, įjunkite \u003Cb>Leisti naudotojo scenarijus\u003C/b> savo naršyklės \u003Csettings-link>plėtinio nustatymuose\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Norėdami naudoti pasirinktinius filtrus, įjunkite \u003Cb>Programuotojo režimą\u003C/b> savo naršyklės \u003Csettings-link>plėtinio nustatymuose\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Gaukite AdGuard for Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Gaukite AdGuard for Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Gaukite AdGuard for Windows" + }, + "options_desktop_app_promo_description": { + "message": "Programėlės, tokios kaip Spotify, Discord ar Zoom, vis dar gali rodyti reklamas ir sekti jūsų veiklą" + }, + "options_desktop_app_promo_subdescription": { + "message": "Mūsų darbalaukio programa gali jus apsaugoti nuo jų" + }, + "options_desktop_app_promo_title": { + "message": "Plėtinys saugo tik naršyklę" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Jūsų naršyklė riboja \u003Cexternal-link>kai kurių rūšių taisykles\u003C/external-link>. Norėdami taikyti visas taisykles, įjunkite \u003Cb>Kūrėjo režimą\u003C/b> naršyklės \u003Csettings-link>plėtinio nustatymuose\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokuoja WebRTC, kuris gali nutekinti jūsų tikrąjį IP adresą net jei naudojate tarpinį serverį arba VPN. Kai kurios susirašinėjimo programos, transliavimo platformos ar žaidimai gali nustoti veikti tinkamai" + }, + "options_disable_webrtc_title": { + "message": "Blokuoti WebRTC" + }, + "options_discuss": { + "message": "Aptarti AdGuard" + }, + "options_do_you_like_question": { + "message": "Ar jums patinka AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Išeikite iš lango režimo" + }, + "options_editor_indicator_saved": { + "message": "Išsaugota" + }, + "options_editor_indicator_saving": { + "message": "Išsaugojimas..." + }, + "options_editor_leave_cancel": { + "message": "Atgal į redagavimą" + }, + "options_editor_leave_confirm": { + "message": "Taip, išeiti" + }, + "options_editor_leave_title": { + "message": "Ar išeiti nesaugant?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Atidarykite redaktorių naujame lange" + }, + "options_editor_save": { + "message": "Išsaugoti" + }, + "options_editor_save_error": { + "message": "Nepavyko išsaugoti pakeitimų. Pabandykite dar kartą arba susisiekite su palaikymu" + }, + "options_empty_custom_filter": { + "message": "Dar neturite tinkintų filtrų" + }, + "options_enable_autodetect_filter": { + "message": "Aktyvuoti tinkamiausius filtrus automatiškai" + }, + "options_enable_autodetect_filter_desc": { + "message": "Nustato svetainės kalbą ir įjungia atitinkamus filtrus" + }, + "options_export_settings": { + "message": "Eksportuoti nustatymus" + }, + "options_filters": { + "message": "Filtrai" + }, + "options_filters_annoyances_consent_description": { + "message": "Jūs ketinate įjungti vieną ar daugiau susierzinimo filtrų. Jie blokuoja elementus, kurie nėra susiję su svetainės turiniu arba susiję, bet erzina jūsų naudotojo patirtį. Svetainių savininkai gali laikyti šiuos elementus privalomais: jei juos blokuosite, galbūt pažeisite jų sąlygas; kai kurios svetainių funkcijos gali būti nepasiekiamos arba neveikti tinkamai. Jūs suprantate ir sutinkate, kad esate vienintelis atsakingas už lankomų svetainių naudojimo sąlygų laikymąsi ir kad AdGuard nėra atsakingas už jūsų laikymąsi naudodami mūsų produktus." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Įjungti" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Pagrindinis puslapis" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Išsamios informacijos apie tai, ką blokuoja AdGuard susierzinimo filtrai, žr. \u003Ca>Filtrų politika\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Įjungti šiuos filtrus?" + }, + "options_filters_annoyances_consent_title": { + "message": "Prieš įjungdamas (-a) erzinančius filtrus atidžiai perskaityk" + }, + "options_filters_back_button": { + "message": "Grįžti" + }, + "options_filters_empty_title": { + "message": "Nieko nerasta" + }, + "options_filters_enabled": { + "message": "Įjungtas:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% ir %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% ir %more% daugiau" + }, + "options_filters_enabled_per_group": { + "message": "Įjungta: %current% iš %total%" + }, + "options_filters_filter_link": { + "message": "Eiti į pradinį puslapį" + }, + "options_filters_filter_tags": { + "message": "Filtruoti žymas" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Jūs nusprendėte pasitikėti šiuo filtru" + }, + "options_filters_filter_updated": { + "message": "atnaujinta:" + }, + "options_filters_filter_version": { + "message": "versija:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Iš viso taisyklių: %num%" + }, + "options_filters_last_checked": { + "message": "Paskutinį kartą tikrinta: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Visi Filtrai" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Išjungti" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Įjungti" + }, + "options_filters_no_enabled": { + "message": "Filtrai išjungti" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" grupės filtrai" + }, + "options_filters_search": { + "message": "Paieška" + }, + "options_filters_search_filter": { + "message": "Ieškoti filtruose" + }, + "options_first_party_block_cookies_warning": { + "message": "Užblokavus šiuos slapukus, kai kurios svetainės gali nustoti veikti arba neveikti tinkamai" + }, + "options_first_party_desc": { + "message": "Neleidžia svetainėms įsiminti jūsų duomenų, tokių kaip prisijungimo duomenys ir kalbos nuostatos, apribojant pirmosios šalies slapukų gyvavimo laikotarpį" + }, + "options_first_party_title": { + "message": "Šalinti trečiųjų šalių slapukus (nerekomenduojama)" + }, + "options_general_settings": { + "message": "Pagrindiniai" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Užkirsti kelią trečiosioms šalims žinoti, kokioje svetainėje lankotės" + }, + "options_hide_referrer_title": { + "message": "Slėpti Referrer nuo trečiųjų šalių" + }, + "options_hide_search_queries_desc": { + "message": "Paslepia jūsų paieškas nuo svetainių, kurias pasiekiate per paieškos variklį" + }, + "options_hide_search_queries_title": { + "message": "Paslėpti paieškos užklausas" + }, + "options_import_configuration_applying_subtitle": { + "message": "Pakeisti esamus nustatymus importuotais. Importo metu filtravimas išjungiamas" + }, + "options_import_configuration_applying_title": { + "message": "Importuojama..." + }, + "options_import_configuration_confirm_button": { + "message": "Importas" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Importuotos nustatymai pakeis dabartinius. Kiti nustatymai nebus keičiami" + }, + "options_import_configuration_confirm_title": { + "message": "Importo nustatymai" + }, + "options_import_configuration_error_button": { + "message": "Uždaryti" + }, + "options_import_configuration_error_subtitle": { + "message": "Patikrinkite importavimo nuorodą ir bandykite dar kartą. Jei nepadeda, kreipkitės į palaikymą" + }, + "options_import_configuration_error_title": { + "message": "Nepavyko importuoti nustatymų" + }, + "options_import_configuration_success_button": { + "message": "Uždaryti" + }, + "options_import_configuration_success_subtitle": { + "message": "Nustatymai sėkmingai importuoti" + }, + "options_import_configuration_success_title": { + "message": "Viskas padaryta" + }, + "options_import_settings": { + "message": "Importuoti nustatymus" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Apversti" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklamos ir seklys bus blokuojami tik svetainėse iš allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Apversti leidžiamųjų sąrašą?" + }, + "options_leave_feedback": { + "message": "Palikite atsiliepimą" + }, + "options_lifetime_minutes": { + "message": "Gyvavimo laikas, minutėmis" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Pasiekėte naudotojų pridėtų reguliariųjų reiškinių taisyklių limitą. %maximum% iš %current% reguliariųjų reiškinių taisyklių yra įjungtos." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Pasiekėte naudotojo pridėtų reguliariųjų reiškinių taisyklių ribą. %maximum% iš %current% taisyklių yra įjungtos. Norėdami pridėti naujų reguliariųjų reiškinių taisyklių, pašalinkite kai kurias esamas" + }, + "options_limits_warning_dynamic_rules": { + "message": "Pasiekėte naudotojų pridėtų taisyklių limitą. %maximum% iš %current% taisyklių yra įjungtos." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Pasiekėte vartotojo pridėtų taisyklių limitą. %maximum% iš %current% taisyklių yra įjungtos. Norėdami pridėti naujas taisykles, pašalinkite kai kurias esamas" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Pasiekėte naudotojo pridėtų nesaugių taisyklių limitą. %maximum% iš %current% nesaugių taisyklių yra įjungtos." + }, + "options_limits_warning_static_filters": { + "message": "Pasiekėte aktyvių integruotų filtrų limitą. %maximum% iš %current% filtrų yra įjungti. Norėdami suaktyvinti naujas taisykles, išjunkite kai kuriuos integruotus filtrus." + }, + "options_limits_warning_static_filters_browser": { + "message": "Pasiekėte savo naršyklės aktyvių integruotų filtrų limitą. %maximum% iš %current% filtrų yra įjungti. Norėdami aktyvuoti naujus filtrus, išjunkite kai kuriuos integruotus" + }, + "options_limits_warning_static_regex_rules": { + "message": "Pasiekėte aktyvių integruotų reguliariųjų reiškinių taisyklių ribą. %maximum% iš %current% reguliariųjų reiškinių taisyklių yra įjungtos. Norėdami suaktyvinti naujas taisykles, išjunkite kai kuriuos integruotus filtrus." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Pasiekėte aktyvių integruotų regex taisyklių limitą. Norėdami aktyvuoti naujas taisykles, išjunkite kai kuriuos integruotus filtrus" + }, + "options_limits_warning_static_rules": { + "message": "Pasiekėte aktyvių integruotų taisyklių limitą. %maximum% iš %current% taisyklių yra įjungtos. Norėdami suaktyvinti naujas taisykles, išjunkite kai kuriuos integruotus filtrus." + }, + "options_limits_warning_static_rules_browser": { + "message": "Pasiekėte savo naršyklės aktyvių integruotų taisyklių limitą. Norėdami aktyvuoti naujas taisykles, išjunkite kai kuriuos integruotus filtrus" + }, + "options_loader_applying_changes": { + "message": "Taikomi pakeitimai..." + }, + "options_miscellaneous_settings": { + "message": "Įvairūs" + }, + "options_modified_first_party_cookie": { + "message": "Nuosavas slapukas pakeistas" + }, + "options_modified_third_party_cookie": { + "message": "Trečiųjų šalių slapukas pakeistas" + }, + "options_nav_better_than_extension": { + "message": "Kodėl AdGuard programa yra geresnė nei plėtinys?" + }, + "options_nav_compare": { + "message": "Palyginti" + }, + "options_navigation": { + "message": "Navigacija" + }, + "options_open_changelog": { + "message": "Pakeitimų sąrašas" + }, + "options_open_log": { + "message": "Filtravimo žurnalas" + }, + "options_popup_call_to_action": { + "message": "Įveskite į laukelį, esantį aukščiau, galiojantį filtro URL arba failo kelią." + }, + "options_popup_check_false_description": { + "message": "Klaida pridedant naudotojo filtrą" + }, + "options_popup_check_false_title": { + "message": "Klaida" + }, + "options_popup_checking_filter": { + "message": "Filtro patikra" + }, + "options_popup_description": { + "message": "Jūs užsiprenumeruosite šį filtrą." + }, + "options_popup_filter_description": { + "message": "Aprašymas:" + }, + "options_popup_filter_homepage": { + "message": "Svetainė:" + }, + "options_popup_filter_rules_count": { + "message": "Taisyklių skaičius:" + }, + "options_popup_filter_title": { + "message": "Pavadinimas:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versija:" + }, + "options_popup_import_error_file_description": { + "message": "Kažkas negerai" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Kad importuotumėte šį nustatymų failą, leiskite AdGuard pakeisti Jūsų privatumo nustatymus." + }, + "options_popup_import_error_title": { + "message": "Nepavyko importuoti nustatymų" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Failo plėtinys turi būti %extension%" + }, + "options_popup_import_success_title": { + "message": "Nustatymai importuoti" + }, + "options_popup_next_button": { + "message": "Toliau" + }, + "options_popup_subscribe_button": { + "message": "Užsiprenumeruoti" + }, + "options_popup_title_placeholder": { + "message": "Įveskite filtro pavadinimą" + }, + "options_popup_trusted_filter_description": { + "message": "Filtrai, pažymėti kaip patikimi, gali naudoti galingus filtravimo taisyklių modifikatorius, kurie gali būti pavojingi netinkamose rankose. Žymėkite šį langelį, kai pilnai pasitikite filtru." + }, + "options_popup_trusted_filter_title": { + "message": "Patikimas" + }, + "options_popup_try_again_button": { + "message": "Pabandyti iš naujo" + }, + "options_popup_update_error": { + "message": "Nepavyko gauti naujinių. Pabandykite dar kartą vėliau." + }, + "options_popup_update_filter": { + "message": "buvo atnaujintas." + }, + "options_popup_update_filters": { + "message": "buvo atnaujinti." + }, + "options_popup_update_not_found": { + "message": "Jūsų filtrai yra atnaujinti" + }, + "options_popup_update_title_error": { + "message": "Klaida atnaujinant filtrus" + }, + "options_popup_updating_filters": { + "message": "Filtrų atnaujinimas..." + }, + "options_popup_url_placeholder": { + "message": "Įvesk URL arba failo kelią" + }, + "options_popup_url_title": { + "message": "Nauja filtro prenumerata" + }, + "options_popup_version_update_changelog_text": { + "message": "Kas naujo šioje versijoje?" + }, + "options_popup_version_update_description_major": { + "message": "Tai yra plėtinio pagrindinis atnaujinimas, suteiksiantis daug naujų funkcijų ir patobulinimų." + }, + "options_popup_version_update_description_minor": { + "message": "Šioje versijoje pagrinde yra klaidų ištaisymai bei nedideli patobulinimai." + }, + "options_popup_version_update_disable_notification": { + "message": "Išjungti pranešimus" + }, + "options_popup_version_update_offer": { + "message": "Ar žinote, kad AdGuard galimybės neapsiriboja šia naršykle?" + }, + "options_popup_version_update_offer_button_text": { + "message": "Sužinoti daugiau" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard plėtinys atnaujintas iki versijos %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Nustato, kad WebRTC naudotų griežtesnę IP adreso politiką, kad padėtų slėpti jūsų tikrąjį IP adresą, kai naudojate tarpinį serverį arba VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Užkirsti kelią IP adreso nutekėjimui per WebRTC" + }, + "options_privacy": { + "message": "Sekimo apsauga" + }, + "options_privacy_desc": { + "message": "Apsaugo jūsų internetinę veiklą ir asmens duomenis nuo tinklo sekiklių" + }, + "options_privacy_policy": { + "message": "Privatumo politika" + }, + "options_privacy_title": { + "message": "Sekimo apsauga" + }, + "options_rate_us_cta": { + "message": "Įvertinkite programėlę" + }, + "options_remove_client_data_desc": { + "message": "Blokuoti Google Chrome nuo informacijos apie versiją ir pakeitimus siuntimo Google domenams" + }, + "options_remove_client_data_title": { + "message": "Pašalinti X-Client-Data antraštę" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Pašalinti" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Pašalinti šį filtrą?" + }, + "options_report_bug": { + "message": "Pranešti apie klaidą" + }, + "options_reset_settings": { + "message": "Atstatyti nustatymus" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Atstatyti" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Visi nustatymai bus atkurti į numatytąsias reikšmes" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Atstatyti nustatymus?" + }, + "options_reset_settings_done": { + "message": "Nustatymai buvo nustatyti iš naujo" + }, + "options_reset_settings_error": { + "message": "Iš naujo nustatant nustatymus įvyko klaida" + }, + "options_reset_stats": { + "message": "Išvalyti statistiką" + }, + "options_reset_stats_done": { + "message": "Statistika sėkmingai pašalinta" + }, + "options_rule_limits": { + "message": "Taisyklių ribos" + }, + "options_rule_limits_description": { + "message": "Chrome riboja taikomų taisyklių skaičių" + }, + "options_rule_limits_dynamic": { + "message": "Dinaminės taisyklės" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex taisyklės – įtrauktos į naudotojo pridėtas taisykles" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nesaugios dinaminės taisyklės (naudojamos kai kuriems išplėstiniams modifikatoriams, pvz., $$redirect arba $$cookie) – įtraukta į naudotojo pridėtas taisykles" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Naudotojo pridėtos taisyklės, tokios kaip \u003Cuser_rules>naudotojo taisyklės\u003C/user_rules>, \u003Callowlist>leidžiamos svetainės\u003C/allowlist> ir \u003Ccustom_filters>pasirinktini filtrai\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Naudotojo pridėtos taisyklės, tokios kaip \u003Cuser_rules>naudotojo taisyklės\u003C/user_rules> ir \u003Callowlist>leidžiamos svetainės\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% iš %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statinės taisyklės" + }, + "options_rule_limits_static_rules_all": { + "message": "Taisyklės iš \u003Ca>integruotų filtrų\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Reguliariosios išraiškos taisyklės — įtrauktos į aukščiau" + }, + "options_rule_limits_static_rulesets": { + "message": "Statiniai taisyklių rinkiniai" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Integruoti filtrai\u003C/a>, tokie kaip erzinančių filtravimas arba kalbai būdingi filtrai" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "3 parinktis. Jei esate patenkinti šiuo metu įgalintais numatytaisiais filtrais, \u003Ca>uždarykite šį įspėjimą.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "3 parinktis. Jei esate patenkinti šiuo metu įgalintu numatytuoju filtru, \u003Ca>uždarykite šį įspėjimą.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "1 parinktis. Iš naršyklės ištrinkite nereikalingus reklamas blokuojančius plėtinius. Norėdami iš naujo suaktyvinti filtrus, nurodytus skiltyje \"Filtrai įjungti prieš naujinimą\", spustelėkite \u003Ca>iš naujo suaktyvinti filtrus.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "2 parinktis. Įdiekite „AdGuard“ skelbimų blokavimo programą: joje nėra jokių filtravimo taisyklių apribojimų. \u003Ca>Gaukite AdGuard programą\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Jūsų galimi veiksmai" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Po atnaujinimo arba pridėjus naują plėtinį buvo viršytas aktyvių integruotų taisyklių limitas. Pagal Manifest v3 jūsų „Chrome“ naršyklė sureagavo išjungdama visus plėtinio integruotus filtrus, išskyrus numatytuosius." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Kas nutiko?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Prieš atnaujinimą įjungti filtrai" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtrai dabar įjungti" + }, + "options_rule_limits_warning_title": { + "message": "Naršyklė pakeitė aktyvių filtrų sąrašą" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Pašalinkite taisyklių apribojimus ir gaukite išplėstinę apsaugą, kuri veikia visose naršyklėse" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Įdiegti darbalaukio programą" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Eiti į filtrus" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Valdyti plėtinius" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Naršyklės plėtiniai dalijasi tuo pačiu taisyklių limitu. Pašalinus kitas reklamos blokuokles gali atsirasti daugiau taisyklių AdGuard naršyklės plėtiniui" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Pašalinti kitas reklamos blokuokles" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Įjunkite jums reikalingus filtrus. Kalbai skirti ir privatumo filtrai gali naudoti daug taisyklių" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Peržiūrėti galimus filtrus" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Štai ką galite padaryti" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Pasiektas limitas — kai kurie filtrai buvo išjungti" + }, + "options_rule_syntax": { + "message": "Taisyklės sintaksė" + }, + "options_safebrowsing_enabled": { + "message": "Apsauga nuo sukčiavimo ir kenkėjiškų programų" + }, + "options_safebrowsing_enabled_desc": { + "message": "Įspėja apie kenkėjiškas ir sukčiavimo svetaines, naudojant AdGuard Saugų naršymą. \u003Ca>Išsamiau\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 val." + }, + "options_select_update_period_1h": { + "message": "1 val." + }, + "options_select_update_period_24h": { + "message": "24 val." + }, + "options_select_update_period_48h": { + "message": "48 val." + }, + "options_select_update_period_6h": { + "message": "6 val." + }, + "options_select_update_period_default": { + "message": "Pagal nutylėjimą" + }, + "options_select_update_period_disabled": { + "message": "Išjungta" + }, + "options_send_not_track_desc": { + "message": "Siųsti \u003Cgpc>Global Privacy Control\u003C/gpc> ir \u003Cdnt>Do Not Track\u003C/dnt> signalus į svetaines, kuriose lankotės" + }, + "options_send_not_track_title": { + "message": "Prašyti svetainių nesekti manęs" + }, + "options_set_update_interval": { + "message": "Filtrų atnaujinimo intervalas" + }, + "options_set_update_interval_desc": { + "message": "Filtrai nuolat atnaujinami, kad skelbimų blokavimas būtų veiksmingesnis" + }, + "options_settings": { + "message": "AdGuard nustatymai" + }, + "options_share_settings": { + "message": "Bendrinti nustatymus" + }, + "options_show_adguard_full_version_title": { + "message": "Rodyti informaciją AdGuard pilnoje versijoje" + }, + "options_show_app_updated_notification": { + "message": "Pranešti apie plėtinių naujinius" + }, + "options_show_blocked_ads_count_title": { + "message": "Rodyti blokuojamų reklamų skaičių ant AdGuard plėtinio piktogramos" + }, + "options_show_context_menu_title": { + "message": "Pridėti AdGuard elementą į naršyklės kontekstinį meniu" + }, + "options_site": { + "message": "Oficiali svetainė" + }, + "options_skip_to_main_content": { + "message": "Pereiti prie pagrindinio turinio" + }, + "options_stealth_general_title": { + "message": "Bendras" + }, + "options_stealth_miscellaneous_title": { + "message": "Įvairūs" + }, + "options_stealth_tracking_methods_title": { + "message": "Stebėjimo metodai" + }, + "options_strip_tracking_params_description": { + "message": "Pašalina sekimo parametrus iš puslapio URL naudodamas AdGuard URL sekimo filtrą" + }, + "options_strip_tracking_params_title": { + "message": "Pašalina sekimo parametrus iš URL" + }, + "options_stripped_tracking_parameters": { + "message": "Stebėjimo parametrai pašalinti" + }, + "options_theme_selector_dark": { + "message": "Tamsi tema" + }, + "options_theme_selector_light": { + "message": "Šviesi tema" + }, + "options_theme_selector_system": { + "message": "Sistemos" + }, + "options_third_party_block_cookies_warning": { + "message": "Jei užblokuosite šiuos slapukus, gali tekti iš naujo prisijungti kai kuriose svetainėse arba susidurti su kitomis slapukų problemomis" + }, + "options_third_party_desc": { + "message": "Užkerta kelią reklamuotojams sekti jūsų elgesį keliuose puslapiuose, ribodama trečiųjų šalių slapukų veikimo laiką" + }, + "options_third_party_title": { + "message": "Ištrinti trečiųjų šalių slapukus" + }, + "options_update_antibanner_filters": { + "message": "Patikrinti filtro atnaujinimus" + }, + "options_use_optimized_filters": { + "message": "Naudoti optimizuotus filtrus" + }, + "options_use_optimized_filters_desc": { + "message": "Filtrai, optimizuoti mobiliesiems įrenginiams" + }, + "options_user_rules_clear_search": { + "message": "Išvalyti paiešką" + }, + "options_user_rules_create_rule": { + "message": "Sukurti taisyklę" + }, + "options_user_rules_delete_all": { + "message": "Ištrinti viską" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Visos naudotojo taisyklės bus pašalintos visam laikui" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Ištrinti viską?" + }, + "options_user_rules_delete_all_success": { + "message": "Visos naudotojo taisyklės pašalintos" + }, + "options_user_rules_delete_rule": { + "message": "Pašalinti iš naudotojo filtrų" + }, + "options_user_rules_deleted_notification": { + "message": "Naudotojo taisyklė ištrinta:" + }, + "options_user_rules_description_key": { + "message": "Jūsų taisyklės dėl reklamų arba visų svetainių blokavimo ir atblokavimo" + }, + "options_user_rules_edit_rule": { + "message": "Redaguoti taisyklę" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Eikite į redaktorių" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Jūsų taisyklės čia pasirodys po to, kai uždarysite" + }, + "options_user_rules_editor_stub_title": { + "message": "Redaktorius atidarytas kitoje lango" + }, + "options_user_rules_empty_placeholder": { + "message": "Dar nėra taisyklių" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Paryškinamos taisyklės…" + }, + "options_user_rules_import_error": { + "message": "Nepavyko importuoti naudotojo taisyklių. Prašome bandyti dar kartą" + }, + "options_user_rules_import_success": { + "message": "Naudotojo taisyklės sėkmingai importuotos." + }, + "options_user_rules_menu": { + "message": "Naudotojo taisyklių veiksmai" + }, + "options_user_rules_no_match": { + "message": "Nieko nerasta" + }, + "options_user_rules_search_placeholder": { + "message": "Paieška" + }, + "options_user_rules_switch_to_editor": { + "message": "Perjungti į redaktoriaus rodinį" + }, + "options_user_rules_switch_to_list": { + "message": "Perjungti į sąrašo rodinį" + }, + "options_user_rules_undo": { + "message": "Anuliuoti" + }, + "options_userfilter": { + "message": "Naudotojo filtras" + }, + "options_userfilter_description_key": { + "message": "Čia galite įtraukti savo taisykles. Ši parinktis rekomenduojama patyrusiems vartotojams, susipažinusiems su HTML/CSS. Perskaitykite \u003Ca> filtravimo taisyklių pamoką \u003C/a>, kad sužinotumėte, kaip rašyti savo filtro taisykles." + }, + "options_userfilter_export": { + "message": "Eksportas" + }, + "options_userfilter_import": { + "message": "Importas" + }, + "options_userfilter_leave_subtitle": { + "message": "Jūsų pakeitimai taisyklėms bus prarasti" + }, + "options_userfilter_line_break": { + "message": "Eilutės lūžis" + }, + "options_userfilter_line_break_off": { + "message": "Eilutės lūžis: išjungta" + }, + "options_userfilter_line_break_on": { + "message": "Eilučių lūžis: įjungta" + }, + "options_userfilter_subtitle_key": { + "message": "Leidžia pridėti savo filtravimo taisykles" + }, + "popup_abuse_site": { + "message": "Pranešti apie problemą" + }, + "popup_adguard_footer_title": { + "message": "Apsaugoti savo mobilųjį įrenginį" + }, + "popup_adguard_for_android": { + "message": "AdGuard skirtas Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard skirtas iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokuoti reklamas rankiniu būdu" + }, + "popup_get_system_wide_protection": { + "message": "Gaukite visos sistemos apsaugą" + }, + "popup_header_cta_link": { + "message": "Kaip sustiprinti apsaugą" + }, + "popup_header_update_filters": { + "message": "Patikrinti filtro atnaujinimus" + }, + "popup_limits_exceeded_warning": { + "message": "Naršyklė pakeitė aktyvių filtrų sąrašą" + }, + "popup_open_filtering_log": { + "message": "Atidaryti filtravimo logą" + }, + "popup_open_settings": { + "message": "Atverti AdGuard nustatymus" + }, + "popup_protection_button": { + "message": "AdGuard apsauga" + }, + "popup_reset_page_user_rules": { + "message": "Pašalinti naudotojo taisykles šioje svetainėje" + }, + "popup_resume_protection_button": { + "message": "Tęsti" + }, + "popup_security_report": { + "message": "Patikrinti svetainės saugumą" + }, + "popup_site_exception_information": { + "message": "Filtravimas yra išjungtas, nes jis gali trukdyti šios svetainės veikimui." + }, + "popup_site_filtering_state_disabled": { + "message": "Apsauga išjungta" + }, + "popup_site_filtering_state_disabling": { + "message": "Išjungti apsaugą..." + }, + "popup_site_filtering_state_enabled": { + "message": "Apsauga įjungta" + }, + "popup_site_filtering_state_enabling": { + "message": "Įjungiama apsauga..." + }, + "popup_site_filtering_state_loading": { + "message": "Įkeliama..." + }, + "popup_site_filtering_state_paused": { + "message": "Apsauga laikinai sustabdyta" + }, + "popup_site_filtering_state_pausing": { + "message": "Apsaugos laikinas sustabdymas..." + }, + "popup_site_filtering_state_resuming": { + "message": "Apsaugos atkūrimas..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Saugus puslapis" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "visoms svetainėms" + }, + "popup_statistics_all_categories": { + "message": "Visi" + }, + "popup_statistics_category_advertising": { + "message": "Skelbimai" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistikos kategorija" + }, + "popup_statistics_category_other": { + "message": "Kiti" + }, + "popup_statistics_category_social_media": { + "message": "Socialiniai tinklai" + }, + "popup_statistics_category_trackers": { + "message": "Sekimo priemonių" + }, + "popup_statistics_months_apr": { + "message": "Bal" + }, + "popup_statistics_months_aug": { + "message": "Rgp" + }, + "popup_statistics_months_dec": { + "message": "Grd" + }, + "popup_statistics_months_feb": { + "message": "Vas" + }, + "popup_statistics_months_jan": { + "message": "Sau" + }, + "popup_statistics_months_jul": { + "message": "Lie" + }, + "popup_statistics_months_jun": { + "message": "Bir" + }, + "popup_statistics_months_mar": { + "message": "Kov" + }, + "popup_statistics_months_may": { + "message": "Geg" + }, + "popup_statistics_months_nov": { + "message": "Lap" + }, + "popup_statistics_months_oct": { + "message": "Spa" + }, + "popup_statistics_months_sep": { + "message": "Rgs" + }, + "popup_statistics_time_day": { + "message": "24 val." + }, + "popup_statistics_time_label": { + "message": "Statistikos laikotarpis" + }, + "popup_statistics_time_month": { + "message": "30 dienų" + }, + "popup_statistics_time_week": { + "message": "7 dienos" + }, + "popup_statistics_time_year": { + "message": "1 metai" + }, + "popup_statistics_total": { + "message": "Iš viso" + }, + "popup_statistics_week_days_fri": { + "message": "Pn" + }, + "popup_statistics_week_days_mon": { + "message": "Pr" + }, + "popup_statistics_week_days_sat": { + "message": "Št" + }, + "popup_statistics_week_days_sun": { + "message": "Sk" + }, + "popup_statistics_week_days_thu": { + "message": "Kt" + }, + "popup_statistics_week_days_tue": { + "message": "An" + }, + "popup_statistics_week_days_wed": { + "message": "Tr" + }, + "popup_switch_button": { + "message": "Apsauga šiai svetainei" + }, + "popup_tab_actions": { + "message": "Veiksmai" + }, + "popup_tab_blocked_all_count": { + "message": "Iš viso užblokuota: %num%" + }, + "popup_tab_blocked_count": { + "message": "Užblokuota: %num%" + }, + "popup_tab_current_website": { + "message": "Dabartinė svetainė" + }, + "popup_tab_statistics": { + "message": "Statistika" + }, + "popup_tabs": { + "message": "Skirtukai" + }, + "popup_tooltip_loading": { + "message": "Įkeliama..." + }, + "popup_tooltip_protection_disabled": { + "message": "Apsauga yra išjungta" + }, + "popup_tooltip_protection_enabled": { + "message": "Apsauga įjungta" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Kai kurios taisyklės netaikomos" + }, + "popup_tooltip_update_available": { + "message": "Galimas atnaujinimas" + }, + "post_install_loading": { + "message": "Kraunamas plėtinys..." + }, + "short_name": { + "message": "AdGuard AdBlocker" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Taisyklių limitas viršytas „AdGuard“ naršyklės plėtinyje. Prašome patikrinti savo filtrus ir išjungti tuos, kurių jums nereikia" + }, + "text_collapser_hide_default": { + "message": "Slėpti visą tekstą" + }, + "text_collapser_show_default": { + "message": "Rodyti visą tekstą" + }, + "update_available_desc": { + "message": "Efektyviam reklamų blokavimui, palaikyte plėtinį ir filtrus atnaujintais" + }, + "update_available_title": { + "message": "Yra atnaujinimų" + }, + "update_available_update_btn": { + "message": "Atnaujinti" + }, + "update_check": { + "message": "Tikrinti atnaujinimus" + }, + "update_checking_in_progress": { + "message": "Tikriname, ar yra atnaujinimų..." + }, + "update_failed_text": { + "message": "Nepavyko užbaigti atnaujinimo" + }, + "update_failed_try_again_btn": { + "message": "Pabandyti iš naujo" + }, + "update_installing_in_progress_desc": { + "message": "Plėtinys persikraus po atnaujinimo" + }, + "update_installing_in_progress_title": { + "message": "Atnaujinamas plėtinys ir filtrai..." + }, + "update_not_needed": { + "message": "Jūsų plėtinys ir filtrai yra atnaujinti" + }, + "update_success_text": { + "message": "Plėtinys ir filtrai atnaujinti" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lv/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lv/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/lv/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk-MK/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk-MK/messages.json new file mode 100644 index 0000000..b1577dc --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk-MK/messages.json @@ -0,0 +1,11 @@ +{ + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + }, + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + } +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk/messages.json new file mode 100644 index 0000000..d1851ed --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/mk/messages.json @@ -0,0 +1,1686 @@ +{ + "options_clipboard_permission_warning": { + "message": "За копирање и залепување правила, дозволете AdGuard да пристапи до таблата со исечоци. Дозволете" + }, + "options_popup_title_placeholder": { + "message": "Внесете име на филтерот" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Сите филтри" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Овозможено" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Оневозможено" + }, + "options_filters_empty_title": { + "message": "Ништо не е пронајдено" + }, + "options_filters_of_group": { + "message": "Филтри на групата \"%groupName%\"" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Овој приспособен филтер веќе е додаден" + }, + "options_filters_annoyances_consent_title": { + "message": "Ве молиме прочитајте внимателно пред да ги овозможите филтрите за вознемиреност" + }, + "options_filters_annoyances_consent_description": { + "message": "Сакате да овозможите еден или повеќе филтрирања за вознемирувања. Тие блокираат елементи кои или немаат врска со содржината на веб-страницата или се поврзани, но се вознемирувачки за вашето корисничко искуство. Сопствениците на веб-страници можат да ги сметаат овие елементи за задолжителни: ако ги блокирате, можеби ги прекршувате нивните услови; некои функционалности на веб-страниците може да не бидат достапни или да не функционираат правилно. Вие разбирате и се согласувате дека единствено вие сте одговорни да ги почитувате условите за користење на веб-страниците што ги посетувате и дека AdGuard не е одговорен за тоа дали ги почитувате тие услови при користење на нашите производи." + }, + "options_filters_annoyances_consent_question": { + "message": "Да се овозможат филтри?" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "За подетални информации околу тоа што ги блокираат филтрите за вознемирување на AdGuard, видете ја Политиката за филтрирање" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Овозможи" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Почетна страница" + }, + "popup_header_cta_link": { + "message": "Како да се подобри заштитата" + }, + "popup_get_system_wide_protection": { + "message": "Добијте заштита за целиот систем" + }, + "popup_header_update_filters": { + "message": "Провери за ажурирања на филтрите" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Наставката на датотеката мора да биде %extension%" + }, + "popup_resume_protection_button": { + "message": "Продолжи" + }, + "popup_adguard_for_ios": { + "message": "AdGuard за iOS" + }, + "popup_adguard_for_android": { + "message": "AdGuard за Android" + }, + "options_filters_filter_version": { + "message": "верзија:" + }, + "options_filters_filter_link": { + "message": "Одете на почетната страница" + }, + "options_filters_filter_updated": { + "message": "ажурирано:" + }, + "options_filters_filter_tags": { + "message": "Тагови на филтер" + }, + "options_filters_back_button": { + "message": "Врати се назад" + }, + "options_popup_version_update_disable_notification": { + "message": "Оневозможи известувања" + }, + "popup_adguard_footer_title": { + "message": "Заштитете го вашиот мобилен уред" + }, + "options_popup_call_to_action": { + "message": "Внесете важечка URL адреса или патеката на датотеката на филтерот во полето погоре." + }, + "options_popup_description": { + "message": "Ќе бидете претплатени на тој филтер." + }, + "options_popup_url_title": { + "message": "Нова претплата за филтер" + }, + "options_popup_url_placeholder": { + "message": "Внесете URL или патека на датотека" + }, + "options_popup_next_button": { + "message": "Следно" + }, + "options_popup_checking_filter": { + "message": "Проверка на вашиот филтер" + }, + "options_popup_check_false_title": { + "message": "Грешка" + }, + "options_popup_check_false_description": { + "message": "Грешка при додавање на вашиот прилагоден филтер." + }, + "options_add_custom_filter_modal_title": { + "message": "Додадете прилагоден филтер" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Проверка на вашиот филтер..." + }, + "options_add_custom_filter_modal_error_title": { + "message": "Неуспешно додавање на прилагоден филтер" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Обидете се повторно или контактирајте со поддршката" + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL врати веб-страница наместо листа на филтри. Ве молиме наведете директен линк до филтер датотеката." + }, + "options_add_custom_filter_modal_add_button": { + "message": "Додади" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Име на филтерот:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Доверливо" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Некои правила за филтрирање може значително да го променат вашето искуство при сурфањето и да ја загрозат вашата приватност. Погрижете се да користите само филтри од програмери на кои им верувате" + }, + "options_popup_try_again_button": { + "message": "Обиди се повторно" + }, + "options_popup_filter_title": { + "message": "Наслов:" + }, + "options_popup_filter_description": { + "message": "Опис:" + }, + "options_popup_filter_version": { + "message": "Верзија:" + }, + "options_popup_filter_rules_count": { + "message": "Број на правила:" + }, + "options_popup_filter_homepage": { + "message": "Почетна страница:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_subscribe_button": { + "message": "Претплатување" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "description": { + "message": "Неспоредлива екстензија за блокирање на реклами и скокачки прозорци. Блокира реклами на Facebook, YouTube и сите други веб-локации.", + "description": "TEXT MAX LENGTH: 132" + }, + "popup_tooltip_protection_enabled": { + "message": "Заштитата е овозможена" + }, + "popup_tooltip_protection_disabled": { + "message": "Заштитата е оневозможена" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Некои правила не се применуваат" + }, + "popup_tooltip_update_available": { + "message": "Достапно е ажурирање" + }, + "popup_tooltip_loading": { + "message": "Вчитување..." + }, + "background_tab_title": { + "message": "Позадинска картичка" + }, + "options_allowlist": { + "message": "Листа на дозволени" + }, + "options_allowlist_desc": { + "message": "AdGuard не блокира реклами и тракери на веб-страници од списокот" + }, + "options_allowlist_invert": { + "message": "Превртете ја листата на дозволени" + }, + "options_allowlist_invert_desc": { + "message": "Блокира реклами и тракери само на веб-страниците од дозволениот список" + }, + "options_allowlist_alert_invert": { + "message": "Листата на дозволени е инвертирана. Рекламите се блокираат само на веб-страниците додадени во неа." + }, + "options_allowlist_alert_invert_stop": { + "message": "Престани да инвертираш" + }, + "options_allowlist_leave_subtitle": { + "message": "Вашите промени во спискот со дозволи ќе бидат изгубени" + }, + "options_allowlist_invalid_entries": { + "message": "За да зачувај, задржете само домени или URL. Овие треба да се поправат: %entries%" + }, + "options_userfilter": { + "message": "Правила на корисникот" + }, + "filtering_log_modified_rules": { + "message": "Изменети правила: %rules_count%" + }, + "filtering_log_stealth_rules": { + "message": "Правила за заштита од следење: %rules_count%" + }, + "filtering_log_privacy_applied_rules": { + "message": "Применета заштита од следење" + }, + "filtering_log_in_allowlist": { + "message": "Дозволено место" + }, + "filtering_log_hide_referrer": { + "message": "Упатувањата се скриени од трети страни" + }, + "filtering_log_hide_search_queries": { + "message": "Вашите пребарувања се скриени" + }, + "filtering_log_remove_client_data": { + "message": "Заглавието на X-Client-Data е отстрането" + }, + "filtering_log_send_not_track": { + "message": "Испратено е заглавјето „Не-следи“" + }, + "options_select_update_period_default": { + "message": "Стандардно" + }, + "options_select_update_period_48h": { + "message": "48 часа" + }, + "options_select_update_period_24h": { + "message": "24 часа" + }, + "options_select_update_period_12h": { + "message": "12 часа" + }, + "options_select_update_period_6h": { + "message": "6 часа" + }, + "options_select_update_period_1h": { + "message": "1 час" + }, + "options_select_update_period_disabled": { + "message": "Оневозможено" + }, + "options_filters": { + "message": "Филтри" + }, + "options_antibanner_rules_count": { + "message": "Правила: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Ажурирано: %date%" + }, + "options_filters_last_checked": { + "message": "Последна проверка: %date%" + }, + "options_antibanner_custom_group": { + "message": "Прилагодено" + }, + "options_antibanner_custom_group_description": { + "message": "Овозможува да додавате филтри од досие или URL" + }, + "options_filters_enabled_per_group": { + "message": "Овозможено: %current% од %total%" + }, + "options_filters_enabled": { + "message": "Овозможено:" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% и уште %more% други" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% и %last%" + }, + "options_filters_no_enabled": { + "message": "Нема овозможени филтри" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Избравте да му верувате на овој филтер." + }, + "options_filters_info_mv3_total_rules": { + "message": "Вкупно правила: %num%" + }, + "options_add_custom_filter": { + "message": "Додадете прилагоден филтер" + }, + "options_empty_custom_filter": { + "message": "Сè уште немате приспособени филтри" + }, + "options_loader_applying_changes": { + "message": "Примена на промени..." + }, + "options_editor_indicator_saving": { + "message": "Зачувување..." + }, + "options_editor_indicator_saved": { + "message": "Зачувано" + }, + "options_editor_save_error": { + "message": "Не успеа да се зачуваат промените. Обидете се повторно или контактирајте со поддршката" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "За да ја увезете оваа датотека со поставки, дозволете AdGuard да ги промени вашите поставки поврзани со приватноста." + }, + "options_popup_import_success_title": { + "message": "Поставките се увезени" + }, + "options_popup_import_error_title": { + "message": "Не успеа да се увезат поставките" + }, + "options_popup_import_error_file_description": { + "message": "Нешто тргна наопаку." + }, + "options_popup_trusted_filter_title": { + "message": "Доверливо" + }, + "options_popup_trusted_filter_description": { + "message": "Доверливите филтри можат да користат моќни модификатори на правилата за филтрирање кои можат да бидат опасни во погрешни раце. Не штиклирајте го ова поле освен ако целосно не му верувате." + }, + "popup_site_filtering_state_secure_page": { + "message": "Безбедна страница" + }, + "popup_site_filtering_state_loading": { + "message": "Вчитување..." + }, + "popup_site_filtering_state_enabling": { + "message": "Овозможување заштита..." + }, + "popup_site_filtering_state_enabled": { + "message": "Заштитата е овозможена" + }, + "popup_site_filtering_state_disabling": { + "message": "Оневозможување заштита..." + }, + "popup_site_filtering_state_disabled": { + "message": "Заштитата е оневозможена" + }, + "popup_site_filtering_state_pausing": { + "message": "Паузирање на заштитата..." + }, + "popup_site_filtering_state_paused": { + "message": "Заштитата е паузирана" + }, + "popup_site_filtering_state_resuming": { + "message": "Продолжување на заштитата..." + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "за сите веб-локации" + }, + "popup_site_exception_information": { + "message": "Филтрирањето е оневозможено бидејќи може да се меша со работата на оваа веб-локација." + }, + "popup_tab_current_website": { + "message": "Тековна веб-страница" + }, + "popup_tab_blocked_count": { + "message": "Блокирани: %num%" + }, + "popup_tab_blocked_all_count": { + "message": "Вкупно блокирано: %num%" + }, + "popup_statistics_total": { + "message": "Вкупно" + }, + "popup_statistics_category_label": { + "message": "Категорија за статистики" + }, + "popup_statistics_all_categories": { + "message": "Сите" + }, + "popup_statistics_category_advertising": { + "message": "Реклами" + }, + "popup_statistics_category_trackers": { + "message": "Тракери" + }, + "popup_statistics_category_social_media": { + "message": "Социјални медиуми" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_other": { + "message": "Друго" + }, + "popup_statistics_week_days_mon": { + "message": "пон" + }, + "popup_statistics_week_days_tue": { + "message": "вто" + }, + "popup_statistics_week_days_wed": { + "message": "сре" + }, + "popup_statistics_week_days_thu": { + "message": "чет" + }, + "popup_statistics_week_days_fri": { + "message": "пет" + }, + "popup_statistics_week_days_sat": { + "message": "саб" + }, + "popup_statistics_week_days_sun": { + "message": "нед" + }, + "popup_statistics_months_jan": { + "message": "Јан" + }, + "popup_statistics_months_feb": { + "message": "Фев" + }, + "popup_statistics_months_mar": { + "message": "Мар" + }, + "popup_statistics_months_apr": { + "message": "Апр" + }, + "popup_statistics_months_may": { + "message": "Мај" + }, + "popup_statistics_months_jun": { + "message": "Јун" + }, + "popup_statistics_months_jul": { + "message": "Јул" + }, + "popup_statistics_months_aug": { + "message": "Авг" + }, + "popup_statistics_months_sep": { + "message": "Сеп" + }, + "popup_statistics_months_oct": { + "message": "Окт" + }, + "popup_statistics_months_nov": { + "message": "Ное" + }, + "popup_statistics_months_dec": { + "message": "Дек" + }, + "options_popup_updating_filters": { + "message": "Ажурирање на филтри..." + }, + "options_popup_update_title_error": { + "message": "Грешка при ажурирањето на филтрите" + }, + "options_popup_update_not_found": { + "message": "Вашите филтри се ажурирани" + }, + "options_popup_update_error": { + "message": "Не успеа да се добијат ажурирања. Обидете се повторно подоцна." + }, + "options_popup_update_filter": { + "message": "беше ажуриран." + }, + "options_popup_update_filters": { + "message": "беа ажурирани." + }, + "options_popup_version_update_title_text": { + "message": "Екстензијата AdGuard е ажурирана на верзијата %current_version%" + }, + "options_popup_version_update_description_minor": { + "message": "Оваа верзија содржи главно поправени грешки и мали подобрувања." + }, + "options_popup_version_update_description_major": { + "message": "Ова е голема надградба на екстензијата која носи многу нови функции и подобрувања." + }, + "options_popup_version_update_changelog_text": { + "message": "Што има ново во оваа верзија?" + }, + "options_popup_version_update_offer": { + "message": "Дали знаевте дека можностите на AdGuard не се ограничени на овој прелистувач?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ДОЗНАЈ ПОВЕЌЕ" + }, + "popup_block_site_ads_option": { + "message": "Блокирајте го рачно" + }, + "popup_security_report": { + "message": "Проверете ја безбедноста на веб-страницата" + }, + "popup_reset_page_user_rules": { + "message": "Избриши Кориснички правила за оваа веб-страница" + }, + "popup_open_settings": { + "message": "Отворете поставките на AdGuard" + }, + "popup_protection_button": { + "message": "Заштита на AdGuard" + }, + "context_block_site_ads": { + "message": "Блокирајте го рачно" + }, + "context_security_report": { + "message": "Проверете ја безбедноста на веб-страницата" + }, + "context_complaint_website": { + "message": "Пријавете проблем" + }, + "context_site_filtering_disabled": { + "message": "AdGuard не може да филтрира оваа страница" + }, + "context_disable_protection": { + "message": "Паузирајте ја заштитата на AdGuard" + }, + "context_enable_protection": { + "message": "Продолжете со заштитата на AdGuard" + }, + "context_site_protection_disabled": { + "message": "Заштитата на AdGuard е паузирана" + }, + "context_open_settings": { + "message": "Поставки на AdGuard" + }, + "context_open_log": { + "message": "Дневник за филтрирање" + }, + "context_site_exception": { + "message": "Оваа веб-локација е во исклучоците" + }, + "context_site_filtering_on": { + "message": "Овозможете филтрирање на оваа веб-локација" + }, + "context_site_filtering_off": { + "message": "Оневозможи филтрирање на оваа веб-локација" + }, + "context_update_antibanner_filters": { + "message": "Проверете дали има ажурирања на филтерот" + }, + "alert_popup_filter_enabled_title": { + "message": "Автоматско активирање на филтрите" + }, + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% е активиран автоматски." + }, + "filters_download_title": { + "message": "Базата на податоци за филтри се вчитува..." + }, + "filters_download_loading": { + "message": "Ве молиме почекајте додека се вчитува базата на податоци за филтри..." + }, + "post_install_loading": { + "message": "Вчитување на екстензијата..." + }, + "filtering_modal_element": { + "message": "Елемент:" + }, + "filtering_modal_cookie": { + "message": "Колаче:" + }, + "filtering_modal_important": { + "message": "Дајте му поголем приоритет на правилото" + }, + "filtering_log_title": { + "message": "Дневник за филтрирање" + }, + "filtering_log_search_string": { + "message": "Пребарување" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Пребарување низ картичките" + }, + "filtering_log_preserve_log_off": { + "message": "Не зачувај дневник" + }, + "filtering_log_preserve_log_on": { + "message": "Зачувај дневник" + }, + "filtering_refresh_tab_short": { + "message": "Освежи" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Освежи страница" + }, + "filtering_menu_open_filters": { + "message": "Прилагоди" + }, + "filtering_clear_log_events": { + "message": "Исчисти дневник" + }, + "filtering_log_actions_menu": { + "message": "Филтрирање на лог акции" + }, + "filtering_type_all": { + "message": "Сите" + }, + "filtering_type_other": { + "message": "Друго" + }, + "filtering_table_status": { + "message": "Статус" + }, + "filtering_table_type": { + "message": "Тип" + }, + "filtering_table_rule": { + "message": "Правила за филтрирање" + }, + "filtering_table_source": { + "message": "Извор" + }, + "filtering_table_filter": { + "message": "Филтер" + }, + "filtering_table_action": { + "message": "Дејство" + }, + "filtering_table_open_details": { + "message": "Отворени детали" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ништо не е пронајдено. Оневозможи филтри или повторно вчитај ја страницата за да ги видите записите во дневник" + }, + "filtering_modal_info_title": { + "message": "Побарајте детали" + }, + "filtering_modal_preview_title": { + "message": "Преглед" + }, + "filtering_modal_type": { + "message": "Тип" + }, + "filtering_modal_source": { + "message": "Извор" + }, + "filtering_modal_rule": { + "message": "Правило:" + }, + "filtering_modal_rules": { + "message": "Правила:" + }, + "filtering_modal_privacy": { + "message": "Заштита од следење" + }, + "filtering_modal_filter": { + "message": "Филтер" + }, + "filtering_modal_block": { + "message": "Блокирај" + }, + "filtering_modal_block_again": { + "message": "Повторно блокирајте" + }, + "filtering_modal_unblock": { + "message": "Деблокирајте" + }, + "filtering_modal_remove_user": { + "message": "Избриши правило" + }, + "filtering_modal_preview_request_button": { + "message": "Преглед" + }, + "filtering_modal_remove_allowlist": { + "message": "Отстрани од списокот на дозволени" + }, + "filtering_modal_block_title": { + "message": "Додадете правило за блокирање" + }, + "filtering_modal_allow_title": { + "message": "Додајте правило за дозволување" + }, + "filtering_modal_status_text_desc": { + "message": "Статус" + }, + "filtering_modal_status_text_error": { + "message": "Не успеа да се вчита прегледот. Ве молиме обидете се повторно" + }, + "filtering_modal_status_text_loading": { + "message": "Вчитување..." + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Статус на филтрирање" + }, + "filtering_modal_rule_text_desc": { + "message": "Правило" + }, + "filtering_modal_patterns_desc_block": { + "message": "Што треба да се блокира" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Што треба да се дозволи" + }, + "filtering_modal_options_desc": { + "message": "Опции" + }, + "filtering_modal_apply_domains": { + "message": "Примени на сите веб-локации" + }, + "filtering_modal_third_party": { + "message": "Примени само за барања од трети страни" + }, + "filtering_modal_remove_param": { + "message": "Отстранете ги параметрите за барање" + }, + "filtering_modal_add_rule": { + "message": "Додај" + }, + "filtering_modal_exception_title": { + "message": "Додадете исклучок" + }, + "filtering_modal_open_in_new_tab": { + "message": "Отворете во нова картичка" + }, + "filtering_modal_show_full_url": { + "message": "Прикажи целосна URL-адреса" + }, + "filtering_modal_hide_full_url": { + "message": "Сокриј го целосниот URL" + }, + "filtering_modal_show_full_rule": { + "message": "Прикажи го целосно правилото" + }, + "filtering_modal_hide_full_rule": { + "message": "Сокриј го целосното правило" + }, + "filtering_modal_show_full_element": { + "message": "Прикажи го целиот елемент" + }, + "filtering_modal_hide_full_element": { + "message": "Сокриј го целиот елемент" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Копирај во таблата со исечоци" + }, + "filtering_modal_copied": { + "message": "Копирано" + }, + "filtering_modal_converted_to": { + "message": "Претворено во:" + }, + "filtering_log_filter_regular": { + "message": "Регуларно" + }, + "filtering_log_filter_allowed": { + "message": "Дозволено" + }, + "filtering_log_filter_blocked": { + "message": "Блокирано" + }, + "filtering_log_filter_modified": { + "message": "Изменето" + }, + "filtering_log_filter_user_rules": { + "message": "Кор. правила" + }, + "filtering_log_status_processed": { + "message": "Обработени" + }, + "filtering_log_status_allowed": { + "message": "Дозволено" + }, + "filtering_log_status_blocked": { + "message": "Блокирано" + }, + "filtering_log_status_modified": { + "message": "Изменето" + }, + "options_skip_to_main_content": { + "message": "Прескокни до главната содржина" + }, + "options_navigation": { + "message": "Навигација" + }, + "options_settings": { + "message": "Поставки на AdGuard" + }, + "options_general_settings": { + "message": "Општо" + }, + "options_block_acceptable_ads": { + "message": "Блокирај реклами за пребарување и самопромоција на веб-страници" + }, + "options_block_acceptable_ads_desc": { + "message": "Блокира реклами во резултатите од пребарувањето и самопромоција на веб-страници. Дознај повеќе" + }, + "options_show_blocked_ads_count_title": { + "message": "Наведете го бројот на блокирани реклами на иконата за проширување на AdGuard" + }, + "options_enable_autodetect_filter": { + "message": "Автоматски активирајте ги најсоодветните филтри" + }, + "options_enable_autodetect_filter_desc": { + "message": "Го детектира јазикот на веб-сајтот и активира соодветни филтри" + }, + "options_select_theme": { + "message": "Тема" + }, + "options_theme_selector_system": { + "message": "Стандардно на системот" + }, + "options_theme_selector_light": { + "message": "Светла" + }, + "options_theme_selector_dark": { + "message": "Темна" + }, + "options_export_settings": { + "message": "Извези поставки" + }, + "options_share_settings": { + "message": "Сподели поставки" + }, + "options_import_settings": { + "message": "Увезете поставки" + }, + "options_report_bug": { + "message": "Пријавете грешка" + }, + "options_leave_feedback": { + "message": "Оставете повратни информации" + }, + "options_privacy": { + "message": "Заштита од следење" + }, + "options_update_antibanner_filters": { + "message": "Проверете дали има ажурирања на филтерот" + }, + "options_check_update_progress": { + "message": "Се проверува..." + }, + "options_set_update_interval": { + "message": "Автоматско ажурирање филтри" + }, + "options_set_update_interval_desc": { + "message": "Ги одржува филтрите ажурирани за поефикасно блокирање реклами" + }, + "options_userfilter_export": { + "message": "Извези" + }, + "options_editor_save": { + "message": "Зачувај" + }, + "options_editor_leave_title": { + "message": "Се откажувате без да зачувате?" + }, + "options_editor_leave_confirm": { + "message": "Да, откажи" + }, + "options_editor_leave_cancel": { + "message": "Назад на уредување" + }, + "options_userfilter_import": { + "message": "Увези" + }, + "options_user_rules_delete_all": { + "message": "Избриши сѐ" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Избриши сѐ?" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Сите кориснички правила ќе бидат трајно избришани" + }, + "options_user_rules_delete_all_success": { + "message": "Сите кориснички правила избришани" + }, + "options_user_rules_import_success": { + "message": "Корисничките правила успешно се увезени" + }, + "options_user_rules_import_error": { + "message": "Не успеа увозот на корисничките правила. Обидете се повторно" + }, + "options_user_rules_menu": { + "message": "Дејства за правила на корисници" + }, + "options_allowlist_menu": { + "message": "Дејства на списокот на дозволени" + }, + "options_userfilter_description_key": { + "message": "Можете да додадете свои правила овде. Оваа опција се препорачува за напредни корисници запознаени со HTML/CSS. Прочитајте го упатството за правилата за филтри за да научите како да пишувате сопствени правила филтер." + }, + "options_userfilter_subtitle_key": { + "message": "Овозможува да додадете свои правила за филтрирање" + }, + "options_user_rules_description_key": { + "message": "Вашите правила за блокирање и одблокирање реклами или цели веб-страници" + }, + "options_user_rules_empty_placeholder": { + "message": "Сè уште нема правила" + }, + "options_user_rules_search_placeholder": { + "message": "Пребарување" + }, + "options_user_rules_clear_search": { + "message": "Исчисти пребарување" + }, + "options_user_rules_create_rule": { + "message": "Создај правило" + }, + "options_user_rules_edit_rule": { + "message": "Уреди правило" + }, + "options_user_rules_delete_rule": { + "message": "Избриши правило" + }, + "options_user_rules_deleted_notification": { + "message": "Корисничко правило е избришано:" + }, + "options_user_rules_undo": { + "message": "Врати" + }, + "options_user_rules_no_match": { + "message": "Ништо не е пронајдено" + }, + "options_user_rules_switch_to_editor": { + "message": "Префрли на уредувачки приказ" + }, + "options_user_rules_switch_to_list": { + "message": "Префрли на приказ со листа" + }, + "options_user_rules_highlight_loading": { + "message": "Истакнување правила…", + "description": "Shown in the user rules list while syntax highlighting initializes." + }, + "options_userfilter_line_break": { + "message": "Прекин на линија" + }, + "options_userfilter_line_break_off": { + "message": "Прекин на линија: оневозможено" + }, + "options_userfilter_line_break_on": { + "message": "Прекин на линија: овозможено" + }, + "options_userfilter_leave_subtitle": { + "message": "Вашите промени во правилата ќе бидат изгубени" + }, + "options_open_changelog": { + "message": "Промени" + }, + "options_safebrowsing_enabled": { + "message": "Заштита од фишинг и малициозен софтвер" + }, + "options_safebrowsing_enabled_desc": { + "message": "Ве предупредува за злонамерни и фишинг веб-страници користејќи го модулот AdGuard Безбедност при прелистување. Прочитај повеќе" + }, + "options_site": { + "message": "Официјална веб страна" + }, + "options_discuss": { + "message": "Дискутирајте за AdGuard" + }, + "options_do_you_like_question": { + "message": "Дали ви се допаѓа AdGuard?" + }, + "options_rate_us_cta": { + "message": "Оцени го" + }, + "options_miscellaneous_settings": { + "message": "Дополнителни поставки" + }, + "options_rule_syntax": { + "message": "Синтакса" + }, + "options_rule_limits": { + "message": "Ограничувања на правилата" + }, + "options_rule_limits_description": { + "message": "Chrome ги ограничува правилата што можат да се применат" + }, + "options_rule_limits_dynamic": { + "message": "Динамични правила" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Правила додадени од корисникот, како кориснички правила, веб-страници од списокот со дозволи и прилагодени филтри" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Правила додадени од корисникот, како кориснички правила и веб-страници од списокот со дозволи" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Небезбедни динамички правила (се користат за некои напредни модификатори, како $$redirect или $$cookie) — вклучени во правилата додадени од корисникот" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex правила — вклучени во правилата додадени од корисникот" + }, + "options_rule_limits_static_rulesets": { + "message": "Статични правила" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "Вградени филтри, како што се блокирање на вознежувања или филтри специфични за јазик" + }, + "options_rule_limits_static_rules": { + "message": "Статични правила" + }, + "options_rule_limits_static_rules_all": { + "message": "Правила од вградени филтри" + }, + "options_rule_limits_static_rules_regex": { + "message": "Регекс правила — вклучени во горните" + }, + "options_rule_limits_numbers": { + "message": "%current% од %maximum%" + }, + "options_rule_limits_warning_title": { + "message": "Прелистувачот ја измени листата на активни филтри" + }, + "options_rule_limits_warning_explanation_title": { + "message": "Што се случи?" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Границата на активни вградени правила беше надмината по ажурирање или додавање нова екстензија. Според Manifest V3, вашиот прелистувач Chrome реагираше со оневозможување на сите вградени филтри на екстензијата освен стандардните." + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Филтрите се овозможени пред ажурирањето" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Филтрите се овозможени сега" + }, + "options_rule_limits_warning_actions_title": { + "message": "Вашите можни дејства" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Опција 1. Избришете ги непотребните екстензии за блокирање реклами од вашиот прелистувач. За повторно да ги активирате филтрите споменати во делот \"Филтри овозможени пред ажурирањето\", кликнете повторно активирајте ги филтрите." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Опција 2. Инсталирајте ја апликацијата AdGuard блокатор на реклами: таа нема ограничувања за правилата за филтрирање. Преземете го AdGuard блокатор на реклами" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Опција 3. Ако сте задоволни со моментално овозможениот стандарден филтер, затворете го ова предупредување." + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Опција 3. Ако сте задоволни со моментално овозможените стандардни филтри, затворете го ова предупредување." + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Достигнат е лимитот — некои филтри беа оневозможени" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Еве што можете да направите" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Отстранете други блокатори на реклами" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Екстензиите за прелистувач го делат истото ограничување на правила. Отстранувањето на други блокатори на реклами може да ослободи повеќе правила за AdGuard екстензијата за прелистувач" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Управувај со екстензии" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Преглед на достапни филтри" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Овозможете ги филтрите што ви се потребни. Филтрите специфични за јазик и приватност може да користат многу правила" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Одете во филтри" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Инсталирајте ја апликацијата за десктоп" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Отстранете ги ограничувањата на правилата и добијте проширена заштита што работи во сите прелистувачи" + }, + "options_all_limits_exceeded_warning": { + "message": "Го достигнавте лимитот на активни вградени филтри. Вашиот прелистувач ја измени листата на активни вградени филтри. Бројот на овозможени филтри се промени од %expected% на %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Го достигнавте лимитот за активни вградени правила во вашиот прелистувач. Вашиот прелистувач го намали списокот на активни вградени филтри од %expected% на %current%" + }, + "options_limits_warning_static_filters": { + "message": "Го достигнавте лимитот на активни вградени филтри. %maximum% од %current% филтри се овозможени. За да активирате нови правила, оневозможете некои вградени филтри." + }, + "options_limits_warning_static_filters_browser": { + "message": "Го достигнавте лимитот на вашиот прелистувач за активни вградени филтри. %maximum% од %current% филтри се овозможени. За да активирате нови филтри, оневозможете некои вградени" + }, + "options_limits_warning_static_rules": { + "message": "Го достигнавте лимитот на активни вградени правила. %maximum% од %current% правила се овозможени. За да активирате нови правила, оневозможете некои вградени филтри." + }, + "options_limits_warning_static_rules_browser": { + "message": "Го достигнавте лимитот на вашиот прелистувач за активни вградени правила. За да активирате нови правила, оневозможете некои вградени филтри" + }, + "options_limits_warning_static_regex_rules": { + "message": "Го достигнавте лимитот на активни вградени регуларни изрази. %maximum% од %current% регуларни изрази се овозможени. За да активирате нови правила, оневозможете некои вградени филтри." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Го достигнавте лимитот на активни вградени регуларни изрази правила. За да активирате нови правила, оневозможете некои вградени филтри" + }, + "options_limits_warning_dynamic_rules": { + "message": "Го достигнавте лимитот на правила додадени од корисникот. %maximum% од %current% правила се овозможени." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Го достигнавте лимитот на правила додадени од корисникот. %maximum% од %current% правила се овозможени. За да додадете нови правила, отстранете некои од постоечките" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Ја достигнавте границата на небезбедни правила додадени од корисникот. %maximum% од %current% Небезбедните правила се овозможени." + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Го достигнавте лимитот на регуларни изрази додадени од корисникот. %maximum% од %current% регуларни изрази се овозможени." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Го достигнавте лимитот на регуларни изрази додадени од корисникот. %maximum% од %current% правила се овозможени. За да додадете нови регуларни изрази, отстранете некои од постојните" + }, + "options_developer_mode_required": { + "message": "Вашиот прелистувач ограничува некои типови на правила. За да ги примените сите правила, овозможете Режим за програмери во поставките за екстензијата на вашиот прелистувач", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_allow_user_scripts_required": { + "message": "Вашиот прелистувач ограничува некои типови на правила. За да ги примените сите правила, овозможете Дозволи кориснички скрипти во поставките за екстензијата на вашиот прелистувач", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_developer_mode_required": { + "message": "За да користите прилагодени филтри, овозможете Режим за развивачи во поставките за екстензии на вашиот прелистувач", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_custom_group_allow_user_scripts_required": { + "message": "За да користите прилагодени филтри, овозможете ја опцијата Дозволи кориснички скрипти во поставките на екстензијата на вашиот прелистувач", + "description": "Note: and are just tags, so it would be rendered as a link." + }, + "options_show_adguard_full_version_title": { + "message": "Прикажи информации за целосната верзија на AdGuard" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Сите статистики за употреба на податоци ќе бидат трајно избришани" + }, + "options_show_app_updated_notification": { + "message": "Известете за ажурирања на екстензии" + }, + "options_open_log": { + "message": "Отворете го дневникот за филтрирање" + }, + "options_reset_stats": { + "message": "Избришете ги статистиките" + }, + "options_reset_stats_done": { + "message": "Статистиката е ресетирана" + }, + "options_reset_settings": { + "message": "Ресетирајте ги поставките" + }, + "options_reset_settings_done": { + "message": "Поставките се ресетирани" + }, + "options_reset_settings_error": { + "message": "Грешка при ресетирање на поставките" + }, + "options_collect_hit_stats_title": { + "message": "Помогнете за развој на филтрите на AdGuard" + }, + "options_collect_hit_stats_desc": { + "message": "Испраќа анонимни статистики за користење на филтрите за реклами до AdGuard. Дознај повеќе" + }, + "options_show_context_menu_title": { + "message": "Додајте ставка AdGuard во контекстното мени на прелистувачот" + }, + "options_use_optimized_filters": { + "message": "Користете оптимизирани филтри" + }, + "options_use_optimized_filters_desc": { + "message": "Користи пократки верзии на филтри со само најпопуларните правила за да заштеди сообраќај. Подобро одговара на мобилните прелистувачи" + }, + "options_privacy_title": { + "message": "Заштита од следење" + }, + "options_privacy_desc": { + "message": "Ја заштитува вашата онлајн активност и личните податоци од веб-тракери" + }, + "options_hide_referrer_title": { + "message": "Сокриј го упатувачот од трети страни" + }, + "options_hide_referrer_desc": { + "message": "Спречете трети лица да знаат која веб-страница ја посетувате" + }, + "options_hide_search_queries_title": { + "message": "Сокриј ги вашите пребарувања" + }, + "options_hide_search_queries_desc": { + "message": "Ги крие вашите пребарувања од веб-страници посетени преку резултати од пребарувач" + }, + "options_send_not_track_title": { + "message": "Побарајте од веб-страниците да не ве следат" + }, + "options_send_not_track_desc": { + "message": "Испратете ги сигналите за Глобална контрола на приватноста и Не следи на веб-локациите што ги посетувате" + }, + "options_stripped_tracking_parameters": { + "message": "Параметрите за следење се отстранети" + }, + "options_modified_first_party_cookie": { + "message": "Колачето од прва страна е изменето" + }, + "options_modified_third_party_cookie": { + "message": "Колачето од трета страна е изменето" + }, + "options_remove_client_data_title": { + "message": "Отстранете го заглавието на X-Client-Data" + }, + "options_remove_client_data_desc": { + "message": "Блокирајте го Google Chrome да испраќа информации за неговата верзија и модификации до Google домени" + }, + "options_disable_webrtc_title": { + "message": "Блокирај WebRTC" + }, + "options_disable_webrtc_desc": { + "message": "Блокира WebRTC што може да ја открие вашата вистинска IP адреса дури и ако користите прокси или VPN. Некои месенџери, платформи за стримување или игри може да не работат правилно" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Спречи протекување на IP адреса преку WebRTC" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Го прави WebRTC да користи построга политика за IP адреса за да помогне да се сокрие вашата вистинска IP адреса кога користите прокси или VPN" + }, + "options_strip_tracking_params_title": { + "message": "Отстранете ги параметрите за следење од URL-адресите" + }, + "options_strip_tracking_params_description": { + "message": "Ги отстранува параметрите за следење од URL-адресите на страницата со помош на филтерот за следење URL на AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Блокирајте тракери" + }, + "options_block_known_trackers_description": { + "message": "Ги блокира тракерите и веб-аналитиката со помош на филтерот за заштита од следење на AdGuard" + }, + "options_third_party_title": { + "message": "Избриши колачиња од трета страна" + }, + "options_third_party_desc": { + "message": "Ги спречува рекламодавачите да го следат вашето однесување на повеќе страници преку ограничување на живеењето на колачињата од трета страна" + }, + "options_block_cookies_lifetime": { + "message": "За да ги блокирате колачињата, поставете го времето на живеење на 0" + }, + "options_third_party_block_cookies_warning": { + "message": "Ако ги блокирате овие колачиња, можеби ќе треба повторно да се најавите на некои веб-страници или да се соочите со други проблеми поврзани со колачињата" + }, + "options_lifetime_minutes": { + "message": "Време на живеење, во минути" + }, + "options_first_party_title": { + "message": "Избриши колачиња од прва страна (не се препорачува)" + }, + "options_first_party_desc": { + "message": "Ги спречува веб-страниците да ги паметат вашите детали, како што се акредитиви за најава и јазични преференции, со ограничување на живеењето на колачињата од прва страна" + }, + "options_first_party_block_cookies_warning": { + "message": "Ако ги блокирате овие колачиња, некои веб-страници може да престанат да работат или да не работат правилно" + }, + "options_anonymized_usage_data_title": { + "message": "Испрати анонимизирани податоци за користење на екстензија" + }, + "options_anonymized_usage_data_description": { + "message": "Испраќа анонимна статистика за користењето на екстензии до AdGuard. " + }, + "options_anonymized_usage_data_modal_title": { + "message": "Податоци за користење на екстензија" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Овие податоци вклучуваат:" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Имиња на екраните со кои комуницирате" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Имиња на копчињата што ги кликнувате" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Идентификатори на сесии" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Ни требаат овие информации за да го анализираме и подобриме функционалноста на AdGuard" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Овие податоци се анонимни и се користат само внатрешно. Никогаш не го споделуваме со трети страни" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Добро" + }, + "popup_abuse_site": { + "message": "Пријавете проблем" + }, + "popup_open_filtering_log": { + "message": "Отворете го дневникот за филтрирање" + }, + "popup_tabs": { + "message": "Картички" + }, + "popup_tab_actions": { + "message": "Дејства" + }, + "popup_tab_statistics": { + "message": "Статистика" + }, + "popup_statistics_time_label": { + "message": "Временски период на статистика" + }, + "popup_statistics_time_day": { + "message": "24 часа" + }, + "popup_statistics_time_week": { + "message": "7 дена" + }, + "popup_statistics_time_month": { + "message": "30 дена" + }, + "popup_statistics_time_year": { + "message": "1 година" + }, + "popup_switch_button": { + "message": "Заштита за тековната веб-страница" + }, + "popup_limits_exceeded_warning": { + "message": "Прелистувачот го измени списокот со активни вградени филтри" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Лимитот на правила е надминат во AdGuard екстензијата за прелистувач. Ве молиме проверете ги вашите филтри и оневозможете ги оние што не ви се потребни" + }, + "short_name": { + "message": "AdGuard" + }, + "options_about": { + "message": "За" + }, + "options_privacy_policy": { + "message": "Политика за приватност" + }, + "options_acknowledgment": { + "message": "Признанија" + }, + "options_github": { + "message": "GitHub" + }, + "options_about_version": { + "message": "Верзија" + }, + "options_about_update_available": { + "message": "Верзијата %version% е достапна. Ќе се преземе и инсталира автоматски." + }, + "options_about_libs": { + "message": "Користени библиотеки" + }, + "options_copyright": { + "message": "Сите права се задржани." + }, + "options_remove_filter_confirm_modal_title": { + "message": "Да се отстрани овој филтер?" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Отстрани" + }, + "options_nav_better_than_extension": { + "message": "Зошто апликацијата AdGuard е подобра од екстензијата?" + }, + "options_nav_compare": { + "message": "Споредете" + }, + "options_desktop_app_promo_title": { + "message": "Екстензијата го штити само прелистувачот" + }, + "options_desktop_app_promo_description": { + "message": "Апликации како Spotify, Discord или Zoom сè уште можат да прикажуваат реклами и да ја следат вашата активност" + }, + "options_desktop_app_promo_subdescription": { + "message": "Нашата десктоп апликација може да ве заштити од нив" + }, + "options_desktop_app_promo_button_windows": { + "message": "Преземи AdGuard за Windows" + }, + "options_desktop_app_promo_button_mac": { + "message": "Преземи AdGuard за Mac" + }, + "options_desktop_app_promo_button_linux": { + "message": "Преземи AdGuard за Linux" + }, + "options_filters_search": { + "message": "Пребарување" + }, + "options_filters_search_filter": { + "message": "Пребарување на филтри" + }, + "options_about_title": { + "message": "Екстензија на прелистувачот AdGuard" + }, + "group_description_adblocking": { + "message": "Конфигурирајте го блокирањето реклами овде за да се справите со досадни банери, скокачки прозорци, видео реклами и слично, еднаш засекогаш" + }, + "group_description_stealth": { + "message": "Заштитете го вашиот идентитет и чувствителните лични информации од илјадници онлајн тракери со блокирање на сите познати популарни методи за следење" + }, + "group_description_social": { + "message": "Скријте ги несаканите копчиња \"Ми се допаѓа\"/\"Сподели\" и други виџети за социјални медиуми" + }, + "group_description_annoyances": { + "message": "Отстранете ги скокачките прозорци и другите досадни известувања како известувања за колачиња" + }, + "group_description_security": { + "message": "Заштитете се од злонамерен софтвер, фишинг и други онлајн закани" + }, + "group_description_miscellaneous": { + "message": "Повеќе поставки за дополнително да го конфигурирате сурфањето на веб со AdGuard" + }, + "group_description_custom": { + "message": "Создадете ваши сопствени филтри за да го прилагодите филтрирањето на веб по ваша желба." + }, + "group_description_lang": { + "message": "Не се ограничувајте — блокирајте ги рекламите на веб-локациите на кој било јазик" + }, + "fullscreen_user_rules_title": { + "message": "Кориснички правила" + }, + "options_user_rules_editor_stub_title": { + "message": "Уредникот отворен во друго прозорец" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Вашите правила ќе се појават овде откако ќе го затворите" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Одете до уредникот" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Отворете го Уредувачот во нов прозорец" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Излезете од режимот на прозорец" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Избришете ги статистиките?" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Бришење" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Да се ресетираат поставките?" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Сите поставки ќе бидат ресетирани на нивните стандардни вредности" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Ресетирање" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Инвертирај листа на дозволени?" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Рекламите и тракерите ќе бидат блокирани само на веб-страниците од листата на дозволени" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Инвертирај" + }, + "options_confirm_modal_cancel_button": { + "message": "Откажи" + }, + "options_import_configuration_confirm_title": { + "message": "Поставки за увезување" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Импортираните поставки ќе ги заменат вашите сегашни. Другите поставувања нема да бидат засегнати" + }, + "options_import_configuration_confirm_button": { + "message": "Увези" + }, + "options_import_configuration_applying_title": { + "message": "Увезување..." + }, + "options_import_configuration_applying_subtitle": { + "message": "Замена на вашите тековни поставки со увезените. Филтрирањето е оневозможено при увозот" + }, + "options_import_configuration_success_title": { + "message": "Готово" + }, + "options_import_configuration_success_subtitle": { + "message": "Поставките беа успешно увезени" + }, + "options_import_configuration_success_button": { + "message": "Затвори" + }, + "options_import_configuration_error_title": { + "message": "Не успеа да се увезат поставките" + }, + "options_import_configuration_error_subtitle": { + "message": "Проверете го линкот за увоз и обидете се повторно. Ако не помогне, контактирајте ја поддршката" + }, + "options_import_configuration_error_button": { + "message": "Затвори" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Разубавете" + }, + "filtering_log_details_modal_back_button": { + "message": "Назад на барањето" + }, + "filtering_log_details_modal_try_again": { + "message": "Обиди се повторно" + }, + "filtering_log_tag_request_source": { + "message": "Потекло на барањето" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Барања од прва страна" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Барања од трета страна" + }, + "filtering_log_tag_request_status": { + "message": "Статус на филтрирање" + }, + "filtering_log_tag_tooltip_regular": { + "message": "Барањата се обработуваат без филтрирање" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Дозволени и деблокирани барања" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Блокирани барања" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Изменети барања" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Барања погодени од кориснички правила" + }, + "filtering_log_tag_request_type": { + "message": "Тип на барање" + }, + "filtering_log_tag_tooltip_html": { + "message": "Документи и поддокументи" + }, + "filtering_log_tag_tooltip_css": { + "message": "Листови со стилови" + }, + "filtering_log_tag_tooltip_js": { + "message": "Скрипти" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpБарања и барања за преземање" + }, + "filtering_log_tag_tooltip_img": { + "message": "Слики" + }, + "filtering_log_tag_tooltip_media": { + "message": "Мултимедија" + }, + "filtering_log_tag_tooltip_other": { + "message": "Фонтови, пингови, WebRTC, WebSocket..." + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Барање од трета страна" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Метод на барање HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP статусен код" + }, + "filtering_log_assumed_rule_description": { + "message": "Ова е предпоставено правило. За повеќе детали, видете ја нашата База на знаење" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Да се зачува дневникот?" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Оваа опција може значително да го зголеми користењето на меморијата" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Не покажувај повторно" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Да, зачувај" + }, + "options_stealth_general_title": { + "message": "Општо" + }, + "options_stealth_tracking_methods_title": { + "message": "Методи на следење" + }, + "options_stealth_miscellaneous_title": { + "message": "Разно" + }, + "options_coming_soon": { + "message": "Наскоро" + }, + "blocking_pages_malware": { + "message": "Оваа веб-страница на %host% е пријавена како страница со малициозен софтвер и е блокирана врз основа на вашите безбедносни параметри." + }, + "blocking_pages_phishing": { + "message": "Оваа веб-страница на %host% е пријавена како страница за фишинг и е блокирана врз основа на вашите безбедносни параметри." + }, + "blocking_pages_advanced_button": { + "message": "Напредно" + }, + "blocking_pages_more_info_button": { + "message": "Повеќе информации" + }, + "blocking_pages_page_title": { + "message": "Пристапот е одбиен" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard го блокираше пристапот до оваа страница" + }, + "blocking_pages_rule_header_title": { + "message": "Блокиран од AdGuard" + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard го спречи вчитувањето на оваа страница поради следново правило за филтер" + }, + "blocking_pages_btn_go_back": { + "message": "Врати се назад" + }, + "blocking_pages_btn_proceed": { + "message": "Продолжете сепак" + }, + "text_collapser_show_default": { + "message": "Прикажи го целиот текст" + }, + "text_collapser_hide_default": { + "message": "Сокриј го целиот текст" + }, + "close_button_title": { + "message": "Затвори" + }, + "clear_button_title": { + "message": "Избриши" + }, + "update_check": { + "message": "Проверка за ажурирања" + }, + "update_checking_in_progress": { + "message": "Проверка за ажурирања..." + }, + "update_available_title": { + "message": "Достапни се ажурирања" + }, + "update_available_desc": { + "message": "За ефикасно блокирање на рекламите, ажурирајте ја вашата екстензија и филтри" + }, + "update_available_update_btn": { + "message": "Ажурирај" + }, + "update_installing_in_progress_title": { + "message": "Се ажурираат екстензијата и филтрите..." + }, + "update_installing_in_progress_desc": { + "message": "Екстензијата ќе се рестартира по ажурирањето" + }, + "update_not_needed": { + "message": "Вашата екстензија и филтри се ажурирани" + }, + "update_failed_text": { + "message": "Не успеа да се заврши ажурирањето" + }, + "update_success_text": { + "message": "Екстензијата и филтрите се ажурирани" + }, + "update_failed_try_again_btn": { + "message": "Обиди се повторно" + }, + "filtering_modal_applied_rules": { + "message": "| Применето правило | Применети правила", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_assumed_rules": { + "message": "| Предпоставено правило: | Предпоставени правила:", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_original_rules": { + "message": "| Оригинално правило: | Оригинални правила:", + "description": "WARNING: correct number of plural forms is required" + }, + "filtering_modal_declarative_rule": { + "message": "DNR правило:" + }, + "opera_search_permission_warning": { + "message": "За да блокираш реклами од пребарување, дозволи пристап до резултатите од страницата за пребарување во поставките на прелистувачот" + }, + "opera_search_permission_go_to_settings": { + "message": "Оди во поставки" + }, + "opera_search_permission_dont_show": { + "message": "Не прикажувај повторно" + } +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ms/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ms/messages.json new file mode 100644 index 0000000..1fb6999 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ms/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% telah dihidupkan secara automatik." + }, + "alert_popup_filter_enabled_title": { + "message": "Auto-aktifkan penyaring" + }, + "background_tab_title": { + "message": "Tab latar belakang" + }, + "blocking_pages_advanced_button": { + "message": "Lanjutan" + }, + "blocking_pages_btn_go_back": { + "message": "Pulang" + }, + "blocking_pages_btn_proceed": { + "message": "Teruskan sahaja" + }, + "blocking_pages_malware": { + "message": "Laman web ini di \u003Cstrong>%host%\u003C/strong> telah dilaporkan sebagai laman malware dan telah disekat berdasarkan pilihan keselamatan anda." + }, + "blocking_pages_more_info_button": { + "message": "Lebih maklumat" + }, + "blocking_pages_page_title": { + "message": "Capaian dinafikan" + }, + "blocking_pages_phishing": { + "message": "Laman web ini di \u003Cstrong>%host%\u003C/strong> telah dilaporkan sebagai laman pancingan data dan telah disekat berdasarkan pilihan keselamatan anda." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard telah menghalang halaman ini daripada dimuatkan disebabkan oleh peraturan penapis berikut" + }, + "blocking_pages_rule_header_title": { + "message": "Disekat oleh AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard telah menghalang capaian ke laman ini" + }, + "clear_button_title": { + "message": "Padam" + }, + "close_button_title": { + "message": "Tutup" + }, + "context_block_site_ads": { + "message": "Sekat iklan secara manual" + }, + "context_complaint_website": { + "message": "Laporkan masalah" + }, + "context_disable_protection": { + "message": "Henti sebentar perlindungan AdGuard" + }, + "context_enable_protection": { + "message": "Mula kembali perlindungan AdGuard" + }, + "context_open_log": { + "message": "Log penapisan" + }, + "context_open_settings": { + "message": "Tetapan AdGuard" + }, + "context_security_report": { + "message": "Laporan keselamatan laman web" + }, + "context_site_exception": { + "message": "Laman web ini dalam pengecualian" + }, + "context_site_filtering_disabled": { + "message": "AdGuard tidak dapat menyaring halaman ini" + }, + "context_site_filtering_off": { + "message": "Nyahktifkan penyaringan di laman web ini" + }, + "context_site_filtering_on": { + "message": "Aktifkan penyaringan di laman web ini" + }, + "context_site_protection_disabled": { + "message": "Perlindungan AdGuard dihentikan sebentar" + }, + "context_update_antibanner_filters": { + "message": "Semak kemaskini penyaring" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Penyambung terbaik untuk halang iklan pop-keluar di Facebook, YouTube dan semua laman web." + }, + "filtering_clear_log_events": { + "message": "Padam log" + }, + "filtering_log_actions_menu": { + "message": "Tindakan log penapisan" + }, + "filtering_log_assumed_rule_description": { + "message": "Ini adalah peraturan yang diandaikan. Untuk maklumat lanjut, lihat \u003Ca>Pangkalan Pengetahuan\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Kaedah permintaan HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Kod status HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Permintaan pihak ketiga" + }, + "filtering_log_details_modal_back_button": { + "message": "Kembali ke permintaan" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Perindah" + }, + "filtering_log_details_modal_try_again": { + "message": "Cuba lagi" + }, + "filtering_log_filter_allowed": { + "message": "Dibenarkan" + }, + "filtering_log_filter_blocked": { + "message": "Dihalang" + }, + "filtering_log_filter_modified": { + "message": "Diubah suai" + }, + "filtering_log_filter_regular": { + "message": "Biasa" + }, + "filtering_log_filter_user_rules": { + "message": "Peraturan pengguna" + }, + "filtering_log_hide_referrer": { + "message": "Perujuk tersembunyi daripada pihak ketiga" + }, + "filtering_log_hide_search_queries": { + "message": "Permintaan carian anda tersembunyi" + }, + "filtering_log_in_allowlist": { + "message": "Laman ini telah dibenarkan" + }, + "filtering_log_modified_rules": { + "message": "Peraturan diubah suai: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ya, simpan" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Pilihan ini mungkin akan meningkatkan penggunaan memori dengan ketara" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Simpan log?" + }, + "filtering_log_preserve_log_off": { + "message": "Jangan simpan log" + }, + "filtering_log_preserve_log_on": { + "message": "Simpan log" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Jangan tunjuk lagi" + }, + "filtering_log_privacy_applied_rules": { + "message": "Perlindungan jejak diterapkan" + }, + "filtering_log_remove_client_data": { + "message": "Pengepala X-Client-Data disingkirkan" + }, + "filtering_log_search_string": { + "message": "Carian" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Cari dalam tab" + }, + "filtering_log_send_not_track": { + "message": "Pengepala Do-Not-Track dihantar" + }, + "filtering_log_status_allowed": { + "message": "Dibenarkan" + }, + "filtering_log_status_blocked": { + "message": "Disekat" + }, + "filtering_log_status_modified": { + "message": "Diubah suai" + }, + "filtering_log_status_processed": { + "message": "Diproses" + }, + "filtering_log_stealth_rules": { + "message": "Peraturan perlindungan jejak: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "permintaan asal" + }, + "filtering_log_tag_request_status": { + "message": "Status penapisan" + }, + "filtering_log_tag_request_type": { + "message": "Jenis permintaan" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Permintaan yang dibenarkan dan tidak disekat" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Permintaan yang disekat" + }, + "filtering_log_tag_tooltip_css": { + "message": "Lembaran gaya" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Permintaan pihak pertama" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumen dan subdokumen" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imej" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skrip" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Permintaan yang diubahsuai" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fon, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Permintaan yang diproses tanpa penyaringan" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Permintaan pihak ketiga" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Permintaan yang terjejas oleh peraturan pengguna" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Permintaan XMLHttpRequests dan permintaan fetch" + }, + "filtering_log_title": { + "message": "Log penyaringan" + }, + "filtering_menu_open_filters": { + "message": "Sesuaikan" + }, + "filtering_modal_add_rule": { + "message": "TAMBAH" + }, + "filtering_modal_allow_title": { + "message": "Tambah peraturan membenarkan" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Peraturan diterapkan | Peraturan diterapkan" + }, + "filtering_modal_apply_domains": { + "message": "Terapkan pada semua laman web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Peraturan yang diandaikan: | Peraturan yang diandaikan:" + }, + "filtering_modal_block": { + "message": "Halang" + }, + "filtering_modal_block_again": { + "message": "Sekat semula" + }, + "filtering_modal_block_title": { + "message": "Tambah peraturan pemblokiran" + }, + "filtering_modal_converted_to": { + "message": "Dipindahkan ke:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Disalin" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Salin ke papan klip" + }, + "filtering_modal_declarative_rule": { + "message": "Peraturan DNR:" + }, + "filtering_modal_element": { + "message": "Unsur:" + }, + "filtering_modal_exception_title": { + "message": "Tambah pengecualian" + }, + "filtering_modal_filter": { + "message": "Penapis" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Status penapisan" + }, + "filtering_modal_hide_full_element": { + "message": "Sembunyikan elemen penuh" + }, + "filtering_modal_hide_full_rule": { + "message": "Sembunyikan peraturan penuh" + }, + "filtering_modal_hide_full_url": { + "message": "Sembunyikan URL penuh" + }, + "filtering_modal_important": { + "message": "Beri keutamaan lebih tinggi kepada peraturan" + }, + "filtering_modal_info_title": { + "message": "Butiran permintaan" + }, + "filtering_modal_open_in_new_tab": { + "message": "Buka di tab baru" + }, + "filtering_modal_options_desc": { + "message": "Pilihan" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Peraturan asal: | Peraturan asal:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Apa yang harus dibenarkan" + }, + "filtering_modal_patterns_desc_block": { + "message": "Apa yang patut diblokir" + }, + "filtering_modal_preview_request_button": { + "message": "Pratonton" + }, + "filtering_modal_preview_title": { + "message": "Pratonton" + }, + "filtering_modal_privacy": { + "message": "Perlindungan penjejakan" + }, + "filtering_modal_remove_allowlist": { + "message": "Keluarkan dari Senarai Putih" + }, + "filtering_modal_remove_param": { + "message": "Singkir parameter carian" + }, + "filtering_modal_remove_user": { + "message": "Padamkan peraturan" + }, + "filtering_modal_rule": { + "message": "Peraturan:" + }, + "filtering_modal_rule_text_desc": { + "message": "Peraturan" + }, + "filtering_modal_rules": { + "message": "Peraturan:" + }, + "filtering_modal_show_full_element": { + "message": "Tunjukkan elemen penuh" + }, + "filtering_modal_show_full_rule": { + "message": "Tunjukkan peraturan penuh" + }, + "filtering_modal_show_full_url": { + "message": "Tunjukkan URL penuh" + }, + "filtering_modal_source": { + "message": "Sumber" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Gagal untuk memuatkan pratonton. Sila cuba lagi" + }, + "filtering_modal_status_text_loading": { + "message": "Memuatkan..." + }, + "filtering_modal_third_party": { + "message": "Tetapkan kepada permintaan pihak ketiga sahaja" + }, + "filtering_modal_type": { + "message": "Jenis" + }, + "filtering_modal_unblock": { + "message": "Nyahhalang" + }, + "filtering_refresh_tab_short": { + "message": "Menyegar semula" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Muat semula halaman" + }, + "filtering_table_action": { + "message": "Tindakan" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Tiada apa ditemui. \u003Creset>Nyahdayakan penapis\u003C/reset> atau \u003Crefresh>muat semula halaman\u003C/refresh> untuk melihat rekod log" + }, + "filtering_table_filter": { + "message": "Penapis" + }, + "filtering_table_open_details": { + "message": "Butiran terbuka" + }, + "filtering_table_rule": { + "message": "Peraturan penyaringan" + }, + "filtering_table_source": { + "message": "Sumber" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Jenis" + }, + "filtering_type_all": { + "message": "Semua" + }, + "filtering_type_other": { + "message": "Lain-lain" + }, + "filters_download_loading": { + "message": "Sila tunggu sebentar sementara pangkalan data penyaring dimuatkan..." + }, + "filters_download_title": { + "message": "Pangkalan data penyaring sedang dimuatkan..." + }, + "fullscreen_user_rules_title": { + "message": "Peraturan pengguna" + }, + "group_description_adblocking": { + "message": "Konfigurasikan penyekatan iklan di sini untuk menangani sepanduk, pop-up, iklan video dan sebagainya yang menjengkelkan, sekali dan untuk selamanya" + }, + "group_description_annoyances": { + "message": "Padamkan tetingkap timbul dan pemberitahuan menjengkelkan lain seperti pemberitahuan kuki" + }, + "group_description_custom": { + "message": "Buat penyaring anda sendiri untuk menyesuaikan penyaring web mengikut pilihan anda." + }, + "group_description_lang": { + "message": "Jangan hadkan diri anda — sekat iklan di laman web dalam mana-mana bahasa" + }, + "group_description_miscellaneous": { + "message": "Lebih banyak tetapan untuk menyesuaikan pengalaman melayari web anda dengan AdGuard dengan lebih jauh" + }, + "group_description_security": { + "message": "Lindungi diri anda daripada malware, pancingan data dan ancaman dalam talian yang lain" + }, + "group_description_social": { + "message": "Sembunyikan butang \"Like\"/\"Share\" yang tidak diingini dan widget media sosial yang lain" + }, + "group_description_stealth": { + "message": "Lindungi identiti dan maklumat peribadi sensitif anda dari ribuan penjejak atas talian dengan menyekat semua cara penjejakan yang diketahui" + }, + "name": { + "message": "Penghalang Iklan AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "Jangan tunjuk lagi" + }, + "opera_search_permission_go_to_settings": { + "message": "Pergi ke tetapan" + }, + "opera_search_permission_warning": { + "message": "Untuk menyekat iklan carian, benarkan akses kepada hasil halaman carian dalam tetapan pelayar" + }, + "options_about": { + "message": "Perihal" + }, + "options_about_libs": { + "message": "Perpustakaan terpakai" + }, + "options_about_title": { + "message": "Penyambung Pelayar AdGuard" + }, + "options_about_update_available": { + "message": "Versi %version% tersedia. Ia akan dimuat turun dan dipasang secara automatik." + }, + "options_about_version": { + "message": "Versi" + }, + "options_acknowledgment": { + "message": "Pemakluman" + }, + "options_add_custom_filter": { + "message": "Tambah penapis tersuai" + }, + "options_add_custom_filter_modal_add_button": { + "message": "TAMBAH" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Menyemak penapis anda..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL mengembalikan laman web dan bukannya senarai penapis. Sila berikan pautan terus ke fail penapis." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Sila cuba lagi atau hubungi sokongan" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Gagal untuk menambah penapis khusus" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nama penapis:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Dipercayai" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Beberapa peraturan penapis boleh mengubah pengalaman pelayaran anda dengan ketara dan menjejaskan privasi anda. Pastikan untuk hanya menggunakan penapis dari pemaju yang anda percayai" + }, + "options_add_custom_filter_modal_title": { + "message": "Tambah penapis tersuai" + }, + "options_all_limits_exceeded_warning": { + "message": "Anda telah mencapai had peraturan terbina dalam aktif. Penyaring aktif telah diubah dari %expected% kepada %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Anda telah mencapai had peraturan terbina dalam aktif pelayar anda. Pelayar anda telah mengurangkan senarai penyaring aktif daripada %expected% kepada %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Penyemak imbas anda menyekat \u003Cexternal-link>Beberapa jenis peraturan\u003C/external-link>. Untuk menggunakan semua peraturan, dayakan \u003Cb>Benarkan skrip pengguna\u003C/b> dalam penyemak imbas anda \u003Csettings-link>Tetapan sambungan\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Senarai Putih" + }, + "options_allowlist_alert_invert": { + "message": "Senarai dibenarkan telah disongsangkan. Iklan hanya disekat pada laman web yang ditambah ke dalamnya." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Hentikan penyongsangan\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard tidak menyekat iklan dan pengesan pada laman web daripada senarai" + }, + "options_allowlist_invalid_entries": { + "message": "Untuk Simpan, kekalkan hanya domain atau URL. Ini perlu diperbaiki: %entries%" + }, + "options_allowlist_invert": { + "message": "Songsangkan Senarai Putih" + }, + "options_allowlist_invert_desc": { + "message": "Menyekat iklan dan pengesan hanya pada laman web yang dibenarkan" + }, + "options_allowlist_leave_subtitle": { + "message": "Perubahan anda kepada Senarai Putih akan hilang" + }, + "options_allowlist_menu": { + "message": "Tindakan senarai dibenarkan" + }, + "options_anonymized_usage_data_description": { + "message": "Menghantar statistik tanpa nama mengenai penggunaan penyambung kepada AdGuard. \u003Cbutton>Ketahui lebih lanjut\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Baiklah" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Data ini termasuk:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nama butang yang anda klik" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nama skrin yang anda interak dengan" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Pengenal sesi" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Data ini adalah tanpa nama dan hanya digunakan dalam organisasi. Kami tidak pernah berkongsi dengan pihak ketiga" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Kami memerlukan maklumat ini untuk menganalisis dan meningkatkan fungsi AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Data penggunaan penyambung" + }, + "options_anonymized_usage_data_title": { + "message": "Hantar data penggunaan penyambung tanpa nama" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Penapis tersendiri ini telah pun ditambahkan" + }, + "options_antibanner_custom_group": { + "message": "Tersuai" + }, + "options_antibanner_custom_group_description": { + "message": "Membenarkan anda menambah penapis dari fail atau URL" + }, + "options_antibanner_rules_count": { + "message": "Peraturan: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Dikemas kini: %date%" + }, + "options_block_acceptable_ads": { + "message": "Sekat iklan carian dan promosi sendiri laman web" + }, + "options_block_acceptable_ads_desc": { + "message": "Menyekat iklan dalam hasil carian dan promosi sendiri laman web. \u003Ca>Ketahui lebih lanjut\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Untuk menyekat kuki, tetapkan tempoh hidup kepada 0" + }, + "options_block_known_trackers_description": { + "message": "Sekat pengesan dan analitik web menggunakan penapis Perlindungan Penjejakan AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Sekat penjejak" + }, + "options_check_update_progress": { + "message": "Menyemak..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Padam" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Semua statistik mengenai penggunaan data akan dipadam secara kekal" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Padam statistik?" + }, + "options_clipboard_permission_warning": { + "message": "Untuk menyalin dan menampal peraturan, benarkan AdGuard mengakses papan klip. \u003Ca>Benarkan\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Menghantar statistik tanpa nama mengenai penggunaan penapis iklan kepada AdGuard. \u003Ca>Ketahui lebih lanjut\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Bantu membangunkan penapis AdGuard" + }, + "options_coming_soon": { + "message": "Akan datang" + }, + "options_confirm_modal_cancel_button": { + "message": "Batal" + }, + "options_copyright": { + "message": "Semua hakcipta terpelihara." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Untuk menggunakan penapis khusus, hidupkan \u003Cb>Benarkan skrip pengguna\u003C/b> dalam \u003Csettings-link>tetapan penyambung\u003C/settings-link> pelayar anda" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Untuk menggunakan penapis tersuai, hidupkan \u003Cb>Mod Pembangun\u003C/b> dalam \u003Csettings-link>tetapan penyambung\u003C/settings-link> pelayar anda" + }, + "options_desktop_app_promo_button_linux": { + "message": "Dapatkan AdGuard untuk Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Dapatkan AdGuard untuk Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Dapatkan AdGuard untuk Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikasi seperti Spotify, Discord, atau Zoom masih boleh memaparkan iklan dan menjejak aktiviti anda" + }, + "options_desktop_app_promo_subdescription": { + "message": "Aplikasi desktop kami boleh melindungi anda daripada mereka" + }, + "options_desktop_app_promo_title": { + "message": "Penyambung melindungi pelayar sahaja" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Pelayar anda mengehadkan \u003Cexternal-link>beberapa jenis peraturan\u003C/external-link>. Untuk mohon semua peraturan, hidupkan \u003Cb>Mod Pembangun\u003C/b> dalam \u003Csettings-link>tetapan penyambung\u003C/settings-link> pelayar anda" + }, + "options_disable_webrtc_desc": { + "message": "Menyekat WebRTC yang boleh mendedahkan Alamat IP sebenar anda walaupun anda menggunakan proksi atau VPN. Sesetengah penghantar mesej, platform penstriman, atau permainan mungkin berhenti berfungsi dengan betul" + }, + "options_disable_webrtc_title": { + "message": "Sekat WebRTC" + }, + "options_discuss": { + "message": "Bincangkan AdGuard" + }, + "options_do_you_like_question": { + "message": "Anda suka AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Keluar dari mod tetingkap" + }, + "options_editor_indicator_saved": { + "message": "Disimpan" + }, + "options_editor_indicator_saving": { + "message": "Menyimpan..." + }, + "options_editor_leave_cancel": { + "message": "Kembali ke pengeditan" + }, + "options_editor_leave_confirm": { + "message": "Ya, tinggalkan" + }, + "options_editor_leave_title": { + "message": "Tinggalkan tanpa menyimpan?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Buka Editor dalam tetingkap baru" + }, + "options_editor_save": { + "message": "Simpan" + }, + "options_editor_save_error": { + "message": "Gagal menyimpan perubahan. Cuba lagi atau hubungi sokongan" + }, + "options_empty_custom_filter": { + "message": "Maaf, anda tiada sebarang penapis tersuai lagi" + }, + "options_enable_autodetect_filter": { + "message": "Aktifkan penyaring yang paling sesuai secara automatik" + }, + "options_enable_autodetect_filter_desc": { + "message": "Mengesan bahasa laman web dan mengaktifkan penapis yang sesuai" + }, + "options_export_settings": { + "message": "Eksport tetapan" + }, + "options_filters": { + "message": "Penapis" + }, + "options_filters_annoyances_consent_description": { + "message": "Anda sedang menghidupkan satu atau lebih penapis gangguan. Mereka menyekat unsur yang sama ada tidak berkaitan dengan kandungan laman web atau berkaitan tetapi mengganggu pengalaman pengguna anda. Pemilik laman web mungkin menganggap unsur ini wajib: jika anda menyekat mereka, anda mungkin melanggar terma mereka; beberapa fungsi laman web mungkin tidak tersedia atau mungkin tidak berfungsi dengan baik. Anda memahami dan bersetuju bahawa anda bertanggungjawab sepenuhnya untuk mematuhi terma penggunaan laman web yang anda lawati dan bahawa AdGuard tidak bertanggungjawab atas kepatuhan anda terhadap terma penggunaan laman web yang anda lawati menggunakan produk kami." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Dayakan" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Laman utama" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Untuk maklumat lanjut tentang apa yang disekat oleh penapis gangguan AdGuard, lihat \u003Ca>Dasar penapis\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Hidupkan penapis ini?" + }, + "options_filters_annoyances_consent_title": { + "message": "Sila baca dengan teliti sebelum menghidupkan penapis gangguan" + }, + "options_filters_back_button": { + "message": "Pulang" + }, + "options_filters_empty_title": { + "message": "Tiada yang ditemui" + }, + "options_filters_enabled": { + "message": "Didayakan:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% dan %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% dan %more% lagi" + }, + "options_filters_enabled_per_group": { + "message": "Didayakan: %current% daripada %total%" + }, + "options_filters_filter_link": { + "message": "Pergi ke halaman utama" + }, + "options_filters_filter_tags": { + "message": "Tag penapis" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Anda memilih untuk mempercayai penyaring ini." + }, + "options_filters_filter_updated": { + "message": "dikemas kini:" + }, + "options_filters_filter_version": { + "message": "versi:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Jumlah peraturan: %num%" + }, + "options_filters_last_checked": { + "message": "Semakan terakhir: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Semua penyaring" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Dinyahaktifkan" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Diaktifkan" + }, + "options_filters_no_enabled": { + "message": "Tiada penapis didayakan" + }, + "options_filters_of_group": { + "message": "Penyaringan kumpulan \"%groupName%\"" + }, + "options_filters_search": { + "message": "Carian" + }, + "options_filters_search_filter": { + "message": "Penapis carian" + }, + "options_first_party_block_cookies_warning": { + "message": "Jika anda menyekat kuki ini, beberapa laman web mungkin rosak atau berhenti berfungsi" + }, + "options_first_party_desc": { + "message": "Menghalang laman web daripada mengingati maklumat anda, seperti kelayakan log masuk dan pilihan bahasa anda, dengan mengehadkan jangka hayat kuki pihak pertama" + }, + "options_first_party_title": { + "message": "Padam kuki pihak pertama (tidak disyorkan)" + }, + "options_general_settings": { + "message": "Tetapan Umum" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Halang pihak ketiga daripada mengetahui laman web yang anda lawati" + }, + "options_hide_referrer_title": { + "message": "Sembunyi Referer daripada pihak-ketiga" + }, + "options_hide_search_queries_desc": { + "message": "Menyembunyikan carian anda daripada laman web yang dilawati melalui hasil enjin carian" + }, + "options_hide_search_queries_title": { + "message": "Sembunyikan kata carian" + }, + "options_import_configuration_applying_subtitle": { + "message": "Menggantikan tetapan semasa anda dengan yang diimport. Penyaringan dinyahdayakan semasa import" + }, + "options_import_configuration_applying_title": { + "message": "Mengimport..." + }, + "options_import_configuration_confirm_button": { + "message": "Import" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Tetapan yang diimport akan menggantikan tetapan semasa anda. Tetapan lain tidak akan terjejas" + }, + "options_import_configuration_confirm_title": { + "message": "Import tetapan" + }, + "options_import_configuration_error_button": { + "message": "Tutup" + }, + "options_import_configuration_error_subtitle": { + "message": "Sila semak pautan import dan cuba lagi. Jika tidak membantu, hubungi sokongan" + }, + "options_import_configuration_error_title": { + "message": "Gagal untuk mengimport tetapan" + }, + "options_import_configuration_success_button": { + "message": "Tutup" + }, + "options_import_configuration_success_subtitle": { + "message": "Tetapan berjaya diimport" + }, + "options_import_configuration_success_title": { + "message": "Selesai" + }, + "options_import_settings": { + "message": "Import tetapan" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Songsangkan" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Iklan dan pengesan hanya akan disekat pada laman web daripada senarai dibenarkan" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Songsangkan senarai dibenarkan?" + }, + "options_leave_feedback": { + "message": "Tinggalkan maklum balas" + }, + "options_lifetime_minutes": { + "message": "Masa hidup, minit" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Anda telah mencapai had peraturan regex yang ditambah pengguna. %maximum% daripada %current% peraturan regex telah dihidupkan." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Anda telah mencapai had peraturan regex yang ditambah pengguna. %maximum% daripada %current% peraturan regex telah dihidupkan. Untuk menambah peraturan regex baharu, padam beberapa peraturan yang sedia ada" + }, + "options_limits_warning_dynamic_rules": { + "message": "Anda telah mencapai had peraturan yang ditambah pengguna. %maximum% daripada %current% peraturan telah dihidupkan." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Anda telah mencapai had peraturan yang ditambah oleh pengguna. %maximum% daripada %current% peraturan telah dihidupkan. Untuk menambah peraturan baru, padam beberapa peraturan sedia ada" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Anda telah mencapai had peraturan tidak selamat yang ditambah pengguna. %maximum% daripada %current% peraturan tidak selamat telah dihidupkan." + }, + "options_limits_warning_static_filters": { + "message": "Anda telah mencapai had penyaring terbina dalam aktif. %maximum% daripada %current% penyaring telah dihidupkan. Untuk mengaktifkan peraturan baru, nyahaktifkan beberapa penyaring terbina dalam." + }, + "options_limits_warning_static_filters_browser": { + "message": "Anda telah mencapai had pelayar anda untuk penapis terbina dalam yang aktif. %maximum% daripada %current% penapis telah dihidupkan. Untuk aktifkan penapis baru, nyahaktifkan beberapa penapis terbina dalam" + }, + "options_limits_warning_static_regex_rules": { + "message": "Anda telah mencapai had peraturan regex yang ditambah pengguna. %maximum% daripada %current% peraturan regex telah dihidupkan." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Anda telah mencapai had peraturan regex terbina dalam yang aktif. Untuk aktifkan peraturan baru, nyahaktifkan beberapa penapis terbina dalam" + }, + "options_limits_warning_static_rules": { + "message": "Anda telah mencapai had peraturan terbina dalam aktif. %maximum% daripada %current% peraturan telah dihidupkan. Untuk mengaktifkan peraturan baru, nyahaktifkan beberapa penyaring terbina dalam." + }, + "options_limits_warning_static_rules_browser": { + "message": "Anda telah mencapai had pelayar anda untuk peraturan terbina dalam aktif. Untuk aktifkan peraturan baru, nyahaktifkan beberapa penapis terbina dalam" + }, + "options_loader_applying_changes": { + "message": "Menerapkan perubahan..." + }, + "options_miscellaneous_settings": { + "message": "Tetapan tambahan" + }, + "options_modified_first_party_cookie": { + "message": "Cookie pihak-pertama diubah suai" + }, + "options_modified_third_party_cookie": { + "message": "Cookie pihak-ketiga diubah suai" + }, + "options_nav_better_than_extension": { + "message": "Kenapa AdGuard lebih bagus daripada aplikasi lain?" + }, + "options_nav_compare": { + "message": "Bandingkan" + }, + "options_navigation": { + "message": "Navigasi" + }, + "options_open_changelog": { + "message": "Log perubahan" + }, + "options_open_log": { + "message": "Buka log penapisan" + }, + "options_popup_call_to_action": { + "message": "Masukkan URL yang sah atau laluan fail penapis ke dalam medan di atas." + }, + "options_popup_check_false_description": { + "message": "Ralat ketika menambah penapis tersuai anda" + }, + "options_popup_check_false_title": { + "message": "Ralat" + }, + "options_popup_checking_filter": { + "message": "Memeriksa penapis anda" + }, + "options_popup_description": { + "message": "Anda akan melanggan penapis itu." + }, + "options_popup_filter_description": { + "message": "Huraian:" + }, + "options_popup_filter_homepage": { + "message": "Laman rumah:" + }, + "options_popup_filter_rules_count": { + "message": "Kiraan peraturan:" + }, + "options_popup_filter_title": { + "message": "Tajuk:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versi:" + }, + "options_popup_import_error_file_description": { + "message": "Sesuatu tidak kena." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Untuk mengimport fail tetapan ini, benarkan AdGuard untuk mengubah tetapan berkaitan privasi anda." + }, + "options_popup_import_error_title": { + "message": "Gagal untuk mengimport tetapan" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Sambungan fail mestilah %extension%" + }, + "options_popup_import_success_title": { + "message": "Tetapan diimport" + }, + "options_popup_next_button": { + "message": "Seterusnya" + }, + "options_popup_subscribe_button": { + "message": "Langgan" + }, + "options_popup_title_placeholder": { + "message": "Masukkan nama penapis" + }, + "options_popup_trusted_filter_description": { + "message": "Penapis dipercayai boleh mengguna pengubah suai peraturan penapisan berkuasa yang boleh menjadi berbahaya dalam tangan yang salah. Jangan tanda kotak ini melainkan anda percaya ia sepenuhnya." + }, + "options_popup_trusted_filter_title": { + "message": "Dipercayai" + }, + "options_popup_try_again_button": { + "message": "Cuba lagi" + }, + "options_popup_update_error": { + "message": "Gagal untuk mendapatkan kemaskini. Sila cuba lagi nanti." + }, + "options_popup_update_filter": { + "message": "telah dikemas kini." + }, + "options_popup_update_filters": { + "message": "telah dikemas kini." + }, + "options_popup_update_not_found": { + "message": "Penapis anda adalah terkini" + }, + "options_popup_update_title_error": { + "message": "Ralat mengemas kini penapis" + }, + "options_popup_updating_filters": { + "message": "Mengemas kini penapis..." + }, + "options_popup_url_placeholder": { + "message": "Masukkan URL atau laluan" + }, + "options_popup_url_title": { + "message": "Langganan penapis baru" + }, + "options_popup_version_update_changelog_text": { + "message": "Apa yang baru dalam versi ini?" + }, + "options_popup_version_update_description_major": { + "message": "Ini adalah naik taraf sambungan besar yang membawa banyak ciri baru dan penambahbaikan." + }, + "options_popup_version_update_description_minor": { + "message": "Versi ini mengandungi kebanyakannya pembaikan pepijat dan hal kecil." + }, + "options_popup_version_update_disable_notification": { + "message": "Nyahdayakan pemberitahuan" + }, + "options_popup_version_update_offer": { + "message": "Tahukah anda bahawa kemampuan AdGuard tidak terbatas kepada pelayar ini?" + }, + "options_popup_version_update_offer_button_text": { + "message": "BELAJAR LEBIH" + }, + "options_popup_version_update_title_text": { + "message": "Sambungan AdGuard telah dikemas kini kepada versi %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Menjadikan WebRTC menggunakan dasar alamat IP yang lebih ketat untuk membantu memastikan alamat IP sebenar anda kekal tersembunyi apabila anda menggunakan proksi atau VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Cegah kebocoran alamat IP melalui WebRTC" + }, + "options_privacy": { + "message": "Perlindungan Penjejakan" + }, + "options_privacy_desc": { + "message": "Melindungi aktiviti dalam talian anda dan data peribadi daripada penjejak web" + }, + "options_privacy_policy": { + "message": "Dasar privasi" + }, + "options_privacy_title": { + "message": "Perlindungan Penjejakan" + }, + "options_rate_us_cta": { + "message": "Nilaikan kami" + }, + "options_remove_client_data_desc": { + "message": "Sekat Google Chrome daripada menghantar maklumat versi dan pengubahsuaiannya kepada lingkungan Google" + }, + "options_remove_client_data_title": { + "message": "Singkirkan pengepala X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Buang" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Padam penapis ini?" + }, + "options_report_bug": { + "message": "Laporkan pepijat" + }, + "options_reset_settings": { + "message": "Tetap semula tetapan" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Tetapkan semula" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Semua tetapan akan direset kepada nilai default mereka" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Tetap semula tetapan?" + }, + "options_reset_settings_done": { + "message": "Tetapan telah diset semula" + }, + "options_reset_settings_error": { + "message": "Ralat mengimport tetapan" + }, + "options_reset_stats": { + "message": "Padam statistik" + }, + "options_reset_stats_done": { + "message": "Statistik telah dipadam" + }, + "options_rule_limits": { + "message": "Had peraturan" + }, + "options_rule_limits_description": { + "message": "Chrome menghadkan jumlah peraturan yang boleh diterapkan" + }, + "options_rule_limits_dynamic": { + "message": "Peraturan dinamik" + }, + "options_rule_limits_dynamic_regex": { + "message": "Peraturan regex — termasuk dalam peraturan yang ditambah oleh pengguna" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Peraturan dinamik tidak selamat (digunakan untuk beberapa pengubah suai lanjutan, seperti $$redirect atau $$cookie) — termasuk dalam peraturan tambah pengguna" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Peraturan yang ditambah pengguna, seperti \u003Cuser_rules>peraturan pengguna\u003C/user_rules>, \u003Callowlist>laman web yang disenaraikan putih\u003C/allowlist>, dan \u003Ccustom_filters>penapis tersuai\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Peraturan tambah pengguna, seperti \u003Cuser_rules>peraturan pengguna\u003C/user_rules> dan \u003Callowlist>tapak web tersenarai dibenarkan\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% daripada %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Peraturan statik" + }, + "options_rule_limits_static_rules_all": { + "message": "Peraturan dari \u003Ca>penapis terbina dalam\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Peraturan regex — termasuk di atas" + }, + "options_rule_limits_static_rulesets": { + "message": "Set peraturan statik" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Penapis terbina dalam\u003C/a>, seperti Sekat gangguan atau Penapis bahasa yang khusus" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Pilihan 3. Jika anda berpuas hati dengan penyaring lalai yang sedang diaktifkan pada masa ini, \u003Ca>tutup amaran ini.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Pilihan 3. Jika anda berpuas hati dengan penyaring lalai yang sedang diaktifkan pada masa ini, \u003Ca>tutup amaran ini.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Pilihan 1. Padam penyambung penyekat iklan yang tidak perlu dari pelayar anda. Untuk mengaktifkan semula penyaring yang dinyatakan dalam seksyen “Penyaring dihidupkan sebelum kemas kini”, klik \u003Ca>aktifkan semula penyaring.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Pilihan 2. Pasang aplikasi Penghalang Iklan AdGuard: ia tidak mempunyai sekatan pada peraturan penyaringan. \u003Ca>Dapatkan aplikasi AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Tindakan anda yang mungkin" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Had peraturan terbina dalam yang aktif telah melepasi selepas kemas kini atau menambah penyambung baru. Mengikut Manifest V3, pelayar Chrome anda bertindak dengan menyahtandakan semua penapis terbina dalam penyambung kecuali yang lalai." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Apa yang terjadi?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Penapis yang dihidupkan sebelum kemas kini" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Penapis yang dihidupkan sekarang" + }, + "options_rule_limits_warning_title": { + "message": "Pelayar telah mengubah senarai penapis yang aktif" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Alih keluar had Peraturan dan dapatkan perlindungan lanjutan yang berfungsi merentas semua pelayar" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Pasang aplikasi desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Pergi ke penapis" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Urus penyambung" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Penyambung pelayar berkongsi had Peraturan yang sama. Mengalih keluar penyekat iklan lain mungkin membebaskan lebih banyak Peraturan untuk AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Alih keluar penyekat iklan lain" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Dayakan penapis yang anda perlukan. Penapis khusus bahasa dan privasi boleh menggunakan banyak Peraturan" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Semak penapis yang tersedia" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Inilah yang boleh anda lakukan" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Had dicapai — beberapa penapis telah dinyahdayakan" + }, + "options_rule_syntax": { + "message": "Sintaks" + }, + "options_safebrowsing_enabled": { + "message": "Perlindungan dari malware dan phishing" + }, + "options_safebrowsing_enabled_desc": { + "message": "Memberi amaran mengenai laman web berniat jahat dan pancingan data menggunakan modul Keselamatan Pelayaran AdGuard. \u003Ca>Baca lebih lanjut\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 jam" + }, + "options_select_update_period_1h": { + "message": "1 jam" + }, + "options_select_update_period_24h": { + "message": "24 jam" + }, + "options_select_update_period_48h": { + "message": "48 jam" + }, + "options_select_update_period_6h": { + "message": "6 jam" + }, + "options_select_update_period_default": { + "message": "Lalai" + }, + "options_select_update_period_disabled": { + "message": "Dinyahdayakan" + }, + "options_send_not_track_desc": { + "message": "Hantar isyarat \u003Cgpc>Kawalan Privasi Global\u003C/gpc> dan \u003Cdnt>Jangan Kesan\u003C/dnt> kepada laman web yang anda lawati" + }, + "options_send_not_track_title": { + "message": "Minta laman web supaya tidak menjejaki saya" + }, + "options_set_update_interval": { + "message": "Selang kemas kini penapis" + }, + "options_set_update_interval_desc": { + "message": "Menjamin penapis sentiasa dikemas kini untuk penyekatan iklan yang lebih berkesan" + }, + "options_settings": { + "message": "Tetapan AdGuard" + }, + "options_share_settings": { + "message": "Tetapan perkongsian" + }, + "options_show_adguard_full_version_title": { + "message": "Papar maklumat tentang versi penuh AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Beritahu tentang kemas kini sambungan" + }, + "options_show_blocked_ads_count_title": { + "message": "Paparkan jumlah iklan dihalang pada ikon sambungan AdGuard" + }, + "options_show_context_menu_title": { + "message": "Tambah item AdGuard ke menu konteks pelayar web" + }, + "options_site": { + "message": "Laman web rasmi" + }, + "options_skip_to_main_content": { + "message": "Langkau ke kandungan utama" + }, + "options_stealth_general_title": { + "message": "Umum" + }, + "options_stealth_miscellaneous_title": { + "message": "Lain-lain" + }, + "options_stealth_tracking_methods_title": { + "message": "Kaedah penjejakan" + }, + "options_strip_tracking_params_description": { + "message": "Singkir parameter penjejakan dari URL halaman menggunakan penapis Penjejakan URL AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Singkir parameter penjejakan dari URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parameter penjejakan disingkirkan" + }, + "options_theme_selector_dark": { + "message": "Gelap" + }, + "options_theme_selector_light": { + "message": "Cerah" + }, + "options_theme_selector_system": { + "message": "Sistem" + }, + "options_third_party_block_cookies_warning": { + "message": "Jika anda menyekat kuki ini, anda mungkin perlu log masuk semula ke beberapa laman web atau menghadapi isu lain yang berkaitan dengan kuki" + }, + "options_third_party_desc": { + "message": "Mencegah pengiklan daripada mengesan tingkah laku anda merentasi beberapa laman web dengan mengehadkan tempoh hidup kuki pihak ketiga" + }, + "options_third_party_title": { + "message": "Padam kuki pihak ketiga" + }, + "options_update_antibanner_filters": { + "message": "Semak kemaskini penyaring" + }, + "options_use_optimized_filters": { + "message": "Guna penyaring dioptimum" + }, + "options_use_optimized_filters_desc": { + "message": "Menggunakan versi penapis yang lebih pendek dengan hanya peraturan yang paling popular untuk menjimatkan trafik. Lebih sesuai untuk penyemak imbas mudah alih" + }, + "options_user_rules_clear_search": { + "message": "Kosongkan carian" + }, + "options_user_rules_create_rule": { + "message": "Cipta peraturan" + }, + "options_user_rules_delete_all": { + "message": "Padamkan semua" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Semua peraturan pengguna akan dipadamkan secara kekal" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Padam semua?" + }, + "options_user_rules_delete_all_success": { + "message": "Semua peraturan pengguna telah dipadamkan" + }, + "options_user_rules_delete_rule": { + "message": "Padamkan peraturan" + }, + "options_user_rules_deleted_notification": { + "message": "Peraturan pengguna telah dipadamkan:" + }, + "options_user_rules_description_key": { + "message": "Peraturan anda untuk penyekatan dan nyahsekat iklan atau keseluruhan laman web" + }, + "options_user_rules_edit_rule": { + "message": "Edit peraturan" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Pergi ke editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Peraturan anda akan muncul di sini selepas anda menutupnya" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor dibuka dalam tetingkap lain" + }, + "options_user_rules_empty_placeholder": { + "message": "Tiada peraturan lagi" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Menyerlahkan peraturan…" + }, + "options_user_rules_import_error": { + "message": "Gagal untuk mengimport peraturan pengguna. Sila cuba lagi" + }, + "options_user_rules_import_success": { + "message": "Peraturan pengguna berjaya diimport" + }, + "options_user_rules_menu": { + "message": "Tindakan peraturan pengguna" + }, + "options_user_rules_no_match": { + "message": "Tiada yang ditemui" + }, + "options_user_rules_search_placeholder": { + "message": "Carian" + }, + "options_user_rules_switch_to_editor": { + "message": "Tukar ke paparan editor" + }, + "options_user_rules_switch_to_list": { + "message": "Tukar ke paparan senarai" + }, + "options_user_rules_undo": { + "message": "Batalkan" + }, + "options_userfilter": { + "message": "Penyaring pengguna" + }, + "options_userfilter_description_key": { + "message": "Anda boleh menambah peraturan anda sendiri di sini. Pilihan ini disyorkan untuk pengguna lanjutan yang biasa dengan HTML/CSS. Baca \u003Ca>tutorial peraturan penapis\u003C/a> untuk mengetahui cara menulis peraturan penapis anda sendiri." + }, + "options_userfilter_export": { + "message": "Eksport" + }, + "options_userfilter_import": { + "message": "Import" + }, + "options_userfilter_leave_subtitle": { + "message": "Perubahan anda kepada peraturan akan hilang" + }, + "options_userfilter_line_break": { + "message": "Pemisah baris" + }, + "options_userfilter_line_break_off": { + "message": "Jarak baris: Dimatikan" + }, + "options_userfilter_line_break_on": { + "message": "Jarak baris: Diaktifkan" + }, + "options_userfilter_subtitle_key": { + "message": "Membolehkan anda menambah peraturan penapisan anda sendiri" + }, + "popup_abuse_site": { + "message": "Laporkan isu" + }, + "popup_adguard_footer_title": { + "message": "Lindungi peranti mudah alih anda" + }, + "popup_adguard_for_android": { + "message": "AdGuard untuk Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard untuk iOS" + }, + "popup_block_site_ads_option": { + "message": "Sekat iklan secara manual" + }, + "popup_get_system_wide_protection": { + "message": "Dapatkan perlindungan seluruh sistem" + }, + "popup_header_cta_link": { + "message": "Bagaimana untuk meningkatkan perlindungan" + }, + "popup_header_update_filters": { + "message": "Semak kemaskini penyaring" + }, + "popup_limits_exceeded_warning": { + "message": "Pelayar anda telah mengubah senarai penyaring terbina dalam aktif" + }, + "popup_open_filtering_log": { + "message": "Buka log penapisan" + }, + "popup_open_settings": { + "message": "Buka tetapan AdGuard" + }, + "popup_protection_button": { + "message": "Perlindungan AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Padam peraturan pengguna untuk laman web ini" + }, + "popup_resume_protection_button": { + "message": "Sambung semula" + }, + "popup_security_report": { + "message": "Laporan keselamatan laman web" + }, + "popup_site_exception_information": { + "message": "Penyaring dinyahaktif kerana ia mampu menganggu kelancaran laman sesawang ini." + }, + "popup_site_filtering_state_disabled": { + "message": "Perlindungan dinyahdayakan" + }, + "popup_site_filtering_state_disabling": { + "message": "Nyahhidupkan perlindungan..." + }, + "popup_site_filtering_state_enabled": { + "message": "Perlindungan didayakan" + }, + "popup_site_filtering_state_enabling": { + "message": "Menghidupkan perlindungan..." + }, + "popup_site_filtering_state_loading": { + "message": "Memuatkan..." + }, + "popup_site_filtering_state_paused": { + "message": "Perlindungan dijeda" + }, + "popup_site_filtering_state_pausing": { + "message": "Menghentikan perlindungan..." + }, + "popup_site_filtering_state_resuming": { + "message": "Menghidupkan semula perlindungan..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Halaman selamat" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "untuk semua laman web" + }, + "popup_statistics_all_categories": { + "message": "Semua" + }, + "popup_statistics_category_advertising": { + "message": "Iklan" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategori statistik" + }, + "popup_statistics_category_other": { + "message": "Lain-lain" + }, + "popup_statistics_category_social_media": { + "message": "Media sosial" + }, + "popup_statistics_category_trackers": { + "message": "Pengesan" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Ogo" + }, + "popup_statistics_months_dec": { + "message": "Dis" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mac" + }, + "popup_statistics_months_may": { + "message": "Mei" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 jam" + }, + "popup_statistics_time_label": { + "message": "Tempoh masa statistik" + }, + "popup_statistics_time_month": { + "message": "30 hari" + }, + "popup_statistics_time_week": { + "message": "7 hari" + }, + "popup_statistics_time_year": { + "message": "1 tahun" + }, + "popup_statistics_total": { + "message": "Jumlah" + }, + "popup_statistics_week_days_fri": { + "message": "Jum" + }, + "popup_statistics_week_days_mon": { + "message": "Isn" + }, + "popup_statistics_week_days_sat": { + "message": "Sab" + }, + "popup_statistics_week_days_sun": { + "message": "Ahd" + }, + "popup_statistics_week_days_thu": { + "message": "Kha" + }, + "popup_statistics_week_days_tue": { + "message": "Sel" + }, + "popup_statistics_week_days_wed": { + "message": "Rab" + }, + "popup_switch_button": { + "message": "Perlindungan untuk laman web semasa" + }, + "popup_tab_actions": { + "message": "Tindakan" + }, + "popup_tab_blocked_all_count": { + "message": "Jumlah disekat: %num%" + }, + "popup_tab_blocked_count": { + "message": "Disekat: %num%" + }, + "popup_tab_current_website": { + "message": "Laman web semasa" + }, + "popup_tab_statistics": { + "message": "Statistik" + }, + "popup_tabs": { + "message": "Tab" + }, + "popup_tooltip_loading": { + "message": "Memuatkan..." + }, + "popup_tooltip_protection_disabled": { + "message": "Tiada perlindungan" + }, + "popup_tooltip_protection_enabled": { + "message": "Perlindungan didayakan" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Beberapa peraturan tidak digunakan" + }, + "popup_tooltip_update_available": { + "message": "Kemaskini tersedia" + }, + "post_install_loading": { + "message": "Memuatkan sambungan..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Had peraturan telah melebihi dalam Penyambung Pelayar AdGuard. Sila semak penyaring anda dan nyahdayakan yang anda tidak perlukan" + }, + "text_collapser_hide_default": { + "message": "Sembunyikan teks penuh" + }, + "text_collapser_show_default": { + "message": "Tunjukkan teks penuh" + }, + "update_available_desc": { + "message": "Untuk menyekat iklan dengan berkesan, pastikan sambungan dan penapis anda dikemas kini" + }, + "update_available_title": { + "message": "Kemaskini tersedia" + }, + "update_available_update_btn": { + "message": "Kemaskini" + }, + "update_check": { + "message": "Menyemak kemas kini" + }, + "update_checking_in_progress": { + "message": "Memeriksa kemaskini..." + }, + "update_failed_text": { + "message": "Gagal melengkapkan kemas kini" + }, + "update_failed_try_again_btn": { + "message": "Cuba lagi" + }, + "update_installing_in_progress_desc": { + "message": "Sambungan akan dimulakan semula selepas kemas kini" + }, + "update_installing_in_progress_title": { + "message": "Mengemas kini sambungan dan penapis..." + }, + "update_not_needed": { + "message": "Sambungan dan penapis anda adalah terkini" + }, + "update_success_text": { + "message": "Sambungan dan penapis dikemas kini" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nb/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nb/messages.json new file mode 100644 index 0000000..8cfb63a --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nb/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% har blitt aktivert automatisk." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatisk aktivering av filtrene" + }, + "background_tab_title": { + "message": "Bakgrunnsfane" + }, + "blocking_pages_advanced_button": { + "message": "Avansert" + }, + "blocking_pages_btn_go_back": { + "message": "Gå tilbake" + }, + "blocking_pages_btn_proceed": { + "message": "Fortsett likevel" + }, + "blocking_pages_malware": { + "message": "Denne nettsiden på \u003Cstrong>%host%\u003C/strong> har blitt rapportert som en side med skadelig programvare og har blitt blokkert basert på dine sikkerhetsinnstillinger." + }, + "blocking_pages_more_info_button": { + "message": "Mere informasjon" + }, + "blocking_pages_page_title": { + "message": "Tilgang avslått" + }, + "blocking_pages_phishing": { + "message": "Denne nettsiden på \u003Cstrong>%host%\u003C/strong> har blitt rapportert som en phishingside og har blitt blokkert basert på dine sikkerhetsinnstillinger." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard har hindret denne siden fra å bli lastet inn, på grunn av denne filteroppføringen" + }, + "blocking_pages_rule_header_title": { + "message": "Blokkert av AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard har blokkert tilgangen til denne siden" + }, + "clear_button_title": { + "message": "Tøm" + }, + "close_button_title": { + "message": "Lukk" + }, + "context_block_site_ads": { + "message": "Blokker annonser manuelt" + }, + "context_complaint_website": { + "message": "Send inn feilrapport" + }, + "context_disable_protection": { + "message": "Pause AdGuard-beskyttelse" + }, + "context_enable_protection": { + "message": "Fortsett AdGuard-beskyttelse" + }, + "context_open_log": { + "message": "Åpne filtreringslogg" + }, + "context_open_settings": { + "message": "AdGuard-innstillinger" + }, + "context_security_report": { + "message": "Nettsidens sikkerhetsrapport" + }, + "context_site_exception": { + "message": "Denne nettsiden er i unntakene" + }, + "context_site_filtering_disabled": { + "message": "AdGuard kan ikke filtrere denne siden" + }, + "context_site_filtering_off": { + "message": "Deaktiver filtrering på denne nettsiden" + }, + "context_site_filtering_on": { + "message": "Aktiver filtrering på denne nettsiden" + }, + "context_site_protection_disabled": { + "message": "AdGuard-beskyttelse har blitt pauset" + }, + "context_update_antibanner_filters": { + "message": "Se etter filteroppdateringer" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Uovertruffen adblock-udvidelse mod annoncering og pop-ups. Blokerer annoncer på Facebook, YouTube og alle andre websteder." + }, + "filtering_clear_log_events": { + "message": "Tøm logg" + }, + "filtering_log_actions_menu": { + "message": "Handlinger i filtreringsloggen" + }, + "filtering_log_assumed_rule_description": { + "message": "Dette er en antatt regel. For detaljer, se vår \u003Ca>kunskapsbase\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-forespørselsmetode" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-statuskode" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Tredjepartsforespørsel" + }, + "filtering_log_details_modal_back_button": { + "message": "Tilbake til forespørselen" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Forbedre" + }, + "filtering_log_details_modal_try_again": { + "message": "Prøv igjen" + }, + "filtering_log_filter_allowed": { + "message": "Unntak" + }, + "filtering_log_filter_blocked": { + "message": "Blokkért" + }, + "filtering_log_filter_modified": { + "message": "Modified" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Brukerfilter" + }, + "filtering_log_hide_referrer": { + "message": "Henvisning skjult fra tredjeparter" + }, + "filtering_log_hide_search_queries": { + "message": "Dine skjulte søkekriterier" + }, + "filtering_log_in_allowlist": { + "message": "Siden er tilladt" + }, + "filtering_log_modified_rules": { + "message": "Modifiserte regler: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ja, preserver" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Dette valget kan øke minnebruken betydelig" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Preserver logg?" + }, + "filtering_log_preserve_log_off": { + "message": "Ikke preserver logg" + }, + "filtering_log_preserve_log_on": { + "message": "Preserver logg" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ikke vis igjen" + }, + "filtering_log_privacy_applied_rules": { + "message": "Sporingsbeskyttelse påført" + }, + "filtering_log_remove_client_data": { + "message": "«X-Client-Data»-stempel fjernet" + }, + "filtering_log_search_string": { + "message": "Søk" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Søk i faner" + }, + "filtering_log_send_not_track": { + "message": "«Do Not Track»-overskrift ble sendt" + }, + "filtering_log_status_allowed": { + "message": "Unntak" + }, + "filtering_log_status_blocked": { + "message": "Blokkert" + }, + "filtering_log_status_modified": { + "message": "Endret" + }, + "filtering_log_status_processed": { + "message": "Behandlet" + }, + "filtering_log_stealth_rules": { + "message": "Sporingsbeskyttelsesregler: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Forespørselsopprinnelse" + }, + "filtering_log_tag_request_status": { + "message": "Filtreringsstatus" + }, + "filtering_log_tag_request_type": { + "message": "Forespørselstype" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Tillatte og ublokkede forespørsel" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokkerte forespørsler" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stilark" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Førstepartsforespørsel" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenter og underdokumenter" + }, + "filtering_log_tag_tooltip_img": { + "message": "Bilder" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripter" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Endrede forespørsel" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonter, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Forespørsel behandlet uten filtrering" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Tredjepartsforespørsel" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Forespørslene påvirket av brukerregler" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests og fetch-forespørsel" + }, + "filtering_log_title": { + "message": "Filtreringslogg" + }, + "filtering_menu_open_filters": { + "message": "Tilpass" + }, + "filtering_modal_add_rule": { + "message": "LEGG TIL" + }, + "filtering_modal_allow_title": { + "message": "Legg til tillatelsesregel" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Anvendt regel | Anvendte regler" + }, + "filtering_modal_apply_domains": { + "message": "Benytt på alle nettsteder" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Antatt regel: | Antatte regler:" + }, + "filtering_modal_block": { + "message": "Blokker" + }, + "filtering_modal_block_again": { + "message": "Blokkér igjen" + }, + "filtering_modal_block_title": { + "message": "Legg til blokkeringsregel" + }, + "filtering_modal_converted_to": { + "message": "Konvertert til:" + }, + "filtering_modal_cookie": { + "message": "Infokapsel:" + }, + "filtering_modal_copied": { + "message": "Kopiert" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopier til utklippstavlen" + }, + "filtering_modal_declarative_rule": { + "message": "DNR-regel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Legg til et unntak" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtreringsstatus" + }, + "filtering_modal_hide_full_element": { + "message": "Skjul hele elementet" + }, + "filtering_modal_hide_full_rule": { + "message": "Skjul hele regelen" + }, + "filtering_modal_hide_full_url": { + "message": "Skjul fuld URL" + }, + "filtering_modal_important": { + "message": "Gi regelen høyere prioritet" + }, + "filtering_modal_info_title": { + "message": "Detaljer over forespørsel" + }, + "filtering_modal_open_in_new_tab": { + "message": "Åpne i ny fane" + }, + "filtering_modal_options_desc": { + "message": "Alternativer" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Original regel: | Originale regler:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Hva burde tillates" + }, + "filtering_modal_patterns_desc_block": { + "message": "Hva burde blokkeres" + }, + "filtering_modal_preview_request_button": { + "message": "Forhåndsvisning" + }, + "filtering_modal_preview_title": { + "message": "Forhåndsvisning" + }, + "filtering_modal_privacy": { + "message": "Sporingsbeskyttelse" + }, + "filtering_modal_remove_allowlist": { + "message": "Fjern fra hvitelisten" + }, + "filtering_modal_remove_param": { + "message": "Fjern forespørgselsparametre" + }, + "filtering_modal_remove_user": { + "message": "Slett regel" + }, + "filtering_modal_rule": { + "message": "Regel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regel" + }, + "filtering_modal_rules": { + "message": "Regler:" + }, + "filtering_modal_show_full_element": { + "message": "Vis hele elementet" + }, + "filtering_modal_show_full_rule": { + "message": "Vis hele regelen" + }, + "filtering_modal_show_full_url": { + "message": "Vis fuld URL" + }, + "filtering_modal_source": { + "message": "Kilde" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Kunne ikke laste forhåndsvisning. Vennligst prøv igjen" + }, + "filtering_modal_status_text_loading": { + "message": "Laster..." + }, + "filtering_modal_third_party": { + "message": "Bruk kun på tredjepartsforespørsler" + }, + "filtering_modal_type": { + "message": "Type" + }, + "filtering_modal_unblock": { + "message": "Fjern blokkering" + }, + "filtering_refresh_tab_short": { + "message": "Oppdater" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Oppdater side" + }, + "filtering_table_action": { + "message": "Handling" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ingenting funnet. \u003Creset>Deaktiver filtre\u003C/reset> eller \u003Crefresh>last siden på nytt\u003C/refresh> for å se loggoppføringer" + }, + "filtering_table_filter": { + "message": "Filtrer" + }, + "filtering_table_open_details": { + "message": "Åpne detaljer" + }, + "filtering_table_rule": { + "message": "Filtreringsregel" + }, + "filtering_table_source": { + "message": "Kilde" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Type" + }, + "filtering_type_all": { + "message": "Alle" + }, + "filtering_type_other": { + "message": "Annet" + }, + "filters_download_loading": { + "message": "Vent mens filterdatabasen lastes inn …" + }, + "filters_download_title": { + "message": "Filterdatabasen lastes inn …" + }, + "fullscreen_user_rules_title": { + "message": "Brukerfilter" + }, + "group_description_adblocking": { + "message": "Konfigurer annonseblokkeringsinnstillingen her for å håndtere irriterende bannere, popup-vinduer, videoannonser og lignende, en gang for alle" + }, + "group_description_annoyances": { + "message": "Fjern popup-vinduer og andre irriterende varsler som informasjonskapsler" + }, + "group_description_custom": { + "message": "Lag dine egne filtre for å finjustere nettfiltreringen etter dine preferanser." + }, + "group_description_lang": { + "message": "Ikke begrens deg selv — blokkér annonser på nettsteder på alle språk" + }, + "group_description_miscellaneous": { + "message": "Flere innstillinger for å konfigurere nettstedbesøkene dine med AdGuard enda mer" + }, + "group_description_security": { + "message": "Beskytt deg selv mot skadelig programvare, phishing og andre netttrusler" + }, + "group_description_social": { + "message": "Skjul uønskede \"Liker\"/\"Del\"-knapper og andre sosiale medie-widgeter" + }, + "group_description_stealth": { + "message": "Beskytt identiteten din og sensitiv personlig informasjon fra tusenvis av nettverks-tracker ved å blokkere alle kjente populære sporingsmetoder" + }, + "name": { + "message": "AdGuard-annonseblokkerer" + }, + "opera_search_permission_dont_show": { + "message": "Ikke vis igjen" + }, + "opera_search_permission_go_to_settings": { + "message": "Gå til Innstillinger" + }, + "opera_search_permission_warning": { + "message": "For å blokkere søkeannonser, tillat tilgang til søkeresultatsider i nettleserens innstillinger" + }, + "options_about": { + "message": "Om" + }, + "options_about_libs": { + "message": "Brukte biblioteker" + }, + "options_about_title": { + "message": "AdGuard-nettleserutvidelse" + }, + "options_about_update_available": { + "message": "Versjon %version% er tilgjengelig. Den vil bli lastet ned og installert automatisk." + }, + "options_about_version": { + "message": "Versjon" + }, + "options_acknowledgment": { + "message": "Anerkjennelser" + }, + "options_add_custom_filter": { + "message": "Legg til et egendefinert filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "LEGG TIL" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Sjekker filteret ditt..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL-en returnerte en nettside i stedet for en filterliste. Vennligst oppgi en direkte lenke til filterfilen." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Vennligst prøv igjen eller kontakt kundestøtte" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Kunne ikke legge til egendefinert filter" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filtreringsnavn:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Betrodd" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Klarerte filtre kan bruke kraftige regelmodifikatorer – pass på at du bruker et filter fra pålitelige utviklere" + }, + "options_add_custom_filter_modal_title": { + "message": "Legg til egendefinert filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Du har nådd grensen for aktive innebygde regler. Nettleseren din har endret listen over aktive innebygde filtre. Antall aktiverte filtre har endret seg fra %expected% til %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Du har nådd nettleserens grense for aktive innebygde regler. Nettleseren din har redusert listen over aktive innebygde filtre fra %expected% til %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Nettleseren din begrenser \u003Cexternal-link>enkelte typer regler\u003C/external-link>. For å bruke alle regler, aktiver \u003Cb>Tillat brukerskript\u003C/b> i nettleserens \u003Csettings-link>utvidelsesinnstillinger\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Hvitelistet" + }, + "options_allowlist_alert_invert": { + "message": "Hvitelisten er invertert. Annonser blokkeres bare på nettsteder som er lagt til den." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Slutt å invertere\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard blokkerer ikke annonser og sporere på nettsteder fra listen" + }, + "options_allowlist_invalid_entries": { + "message": "For å lagre, behold kun domener eller URL-er. Disse må rettes: %entries%" + }, + "options_allowlist_invert": { + "message": "Inverter hvitelisten" + }, + "options_allowlist_invert_desc": { + "message": "Blokkerer annonser og sporere kun på nettsteder som er på tillatelseslisten" + }, + "options_allowlist_leave_subtitle": { + "message": "Endringene dine til hvitelisten vil bli tapt" + }, + "options_allowlist_menu": { + "message": "Handlinger for hviteliste" + }, + "options_anonymized_usage_data_description": { + "message": "Sender anonym statistikk om bruk av utvidelser til AdGuard. \u003Cbutton>Finn ut mer\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Skjønner" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Disse dataene inkluderer:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Navn på knappene du klikker på" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Navn på skjermene du samhandler med" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sesjonsidentifikatorer" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Disse dataene er anonyme og brukes kun internt. Vi deler det aldri med tredjeparter" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Vi trenger denne informasjonen for å analysere og forbedre funksjonaliteten til AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Bruksdata for utvidelser" + }, + "options_anonymized_usage_data_title": { + "message": "Send anonymiserte bruksdata for utvidelsen" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Dette selvvalgte filteret har allerede blitt lagt til" + }, + "options_antibanner_custom_group": { + "message": "Egendefinert" + }, + "options_antibanner_custom_group_description": { + "message": "Lar deg legge til filtre fra en fil eller URL" + }, + "options_antibanner_rules_count": { + "message": "Regler: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Oppdatert: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokker søkeannonser og nettsteders egenreklame" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokkerer annonser i søkeresultater og selvpromotering av nettsteder. \u003Ca>Lær mer\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "For å blokkere informasjonskapslene, sett levetiden til 0" + }, + "options_block_known_trackers_description": { + "message": "Blokkerer sporere og nettanalyser ved hjelp av filteret AdGuards sporingsbeskyttelse" + }, + "options_block_known_trackers_title": { + "message": "Blokker sporere" + }, + "options_check_update_progress": { + "message": "Sjekker..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Tøm" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "All statistikk om databruk vil bli permanent slettet" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Vil du tømme statistikkene?" + }, + "options_clipboard_permission_warning": { + "message": "For å kopiere og lime inn regler, tillat at AdGuard får tilgang til utklippstavlen. \u003Ca>Tillat\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Sender anonym statistikk om bruk av annonsefiltre til AdGuard. \u003Ca>Lær mer\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Hjelp til å forbedre AdGuard-filtrene" + }, + "options_coming_soon": { + "message": "Kommer snart" + }, + "options_confirm_modal_cancel_button": { + "message": "Lukk" + }, + "options_copyright": { + "message": "Alle rettigheter reservert." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "For å bruke egendefinerte filtre, aktiver \u003Cb>Tillat brukerskript\u003C/b> i nettleserens \u003Csettings-link>utvidelsesinnstillinger\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "For å bruke egendefinerte filtre, aktiver \u003Cb>Utviklermodus\u003C/b> i nettleserens \u003Csettings-link>utvidelsesinnstillinger\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Få AdGuard for Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Få AdGuard for Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Få AdGuard for Windows" + }, + "options_desktop_app_promo_description": { + "message": "Apper som Spotify, Discord eller Zoom kan fortsatt vise annonser og spore aktiviteten din" + }, + "options_desktop_app_promo_subdescription": { + "message": "Vår desktop-app kan beskytte deg mot dem" + }, + "options_desktop_app_promo_title": { + "message": "Utvidelsen beskytter kun nettleseren" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Nettleseren din begrenser \u003Cexternal-link>enkelte typer regler\u003C/external-link>. For å bruke alle reglene, aktiver \u003Cb>Utviklermodus\u003C/b> i nettleserens \u003Csettings-link>utvidelsesinnstillinger\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokkerer WebRTC som kan lekke din virkelige IP-adresse, selv om du bruker proxy eller VPN. Noen meldingsapper, strømmeplattformer eller spill kan slutte å fungere som de skal" + }, + "options_disable_webrtc_title": { + "message": "Blokker WebRTC" + }, + "options_discuss": { + "message": "Diskuter AdGuard" + }, + "options_do_you_like_question": { + "message": "Liker du AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Avslutt vindumodus" + }, + "options_editor_indicator_saved": { + "message": "Lagret" + }, + "options_editor_indicator_saving": { + "message": "Lagrer..." + }, + "options_editor_leave_cancel": { + "message": "Tilbake til redigering" + }, + "options_editor_leave_confirm": { + "message": "Ja, forlat" + }, + "options_editor_leave_title": { + "message": "Lasse uten å lagre?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Åpne redigerer i et nytt vindu" + }, + "options_editor_save": { + "message": "Save" + }, + "options_editor_save_error": { + "message": "Feil ved lagring av endringer. Prøv igjen eller kontakt support" + }, + "options_empty_custom_filter": { + "message": "Du har ikke noen selvvalgte filtre ennå" + }, + "options_enable_autodetect_filter": { + "message": "Aktiver de mest passende filtrene automatisk" + }, + "options_enable_autodetect_filter_desc": { + "message": "Registrerer språket på nettsiden og aktiverer passende filtre" + }, + "options_export_settings": { + "message": "Eksporter innstillinger" + }, + "options_filters": { + "message": "Filtre" + }, + "options_filters_annoyances_consent_description": { + "message": "Du er i ferd med å aktivere ett eller flere irritasjonsfiltre. De blokkerer elementer som enten ikke er relatert til innholdet på nettstedet eller som er relatert, men irriterende for brukeropplevelsen din. Nettstedeiere kan vurdere disse elementene som obligatoriske: hvis du blokkerer dem, kan du bryte vilkårene deres; noe funksjonalitet på nettsteder kan være utilgjengelig eller fungere feil. Du forstår og godtar at du alene er ansvarlig for å overholde vilkårene for bruk av nettsteder du besøker, og at AdGuard ikke er ansvarlig for din overholdelse av vilkårene for bruk av nettsteder du besøker ved bruk av våre produkter." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Aktivere" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Hjemmeside" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "For detaljer om hva AdGuards irritasjonsfiltre blokkerer, se \u003Ca>Filterpolicy\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Aktivere filtrene?" + }, + "options_filters_annoyances_consent_title": { + "message": "Les nøye før du aktiverer irritasjonsfiltre" + }, + "options_filters_back_button": { + "message": "Gå tilbake" + }, + "options_filters_empty_title": { + "message": "Ingenting ble funnet" + }, + "options_filters_enabled": { + "message": "Aktivert:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% og %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% og %more% til" + }, + "options_filters_enabled_per_group": { + "message": "Skrudd på: %current% av %total%" + }, + "options_filters_filter_link": { + "message": "Gå til hjemmesiden" + }, + "options_filters_filter_tags": { + "message": "Filtrer tagger" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Du valgte å stole på dette filteret" + }, + "options_filters_filter_updated": { + "message": "oppdatert:" + }, + "options_filters_filter_version": { + "message": "versjon:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Totale regler: %num%" + }, + "options_filters_last_checked": { + "message": "Sist sjekket: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Alle filtre" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Avslått" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Skrudd på" + }, + "options_filters_no_enabled": { + "message": "Ingen filtre er skrudd på" + }, + "options_filters_of_group": { + "message": "Filtre av gruppen «%groupName%»" + }, + "options_filters_search": { + "message": "Søk" + }, + "options_filters_search_filter": { + "message": "Søk etter filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Hvis du blokkerer disse informasjonskapslene, kan enkelte nettsteder gå i stykker eller slutte å fungere" + }, + "options_first_party_desc": { + "message": "Forhindrer nettsteder fra å huske detaljene dine, som påloggingsinformasjon og språkvalg, ved å begrense levetiden til førsteparts informasjonskapsler" + }, + "options_first_party_title": { + "message": "Slett førsteparts-informasjonskapsler (ikke anbefalt)" + }, + "options_general_settings": { + "message": "Generelle innstillinger" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Forhindre tredjepart fra å vite hvilket nettsted du besøker" + }, + "options_hide_referrer_title": { + "message": "Skjul Referer fra tredjeparter" + }, + "options_hide_search_queries_desc": { + "message": "Skjuler søkene dine for nettsteder du besøker via søkeresultater" + }, + "options_hide_search_queries_title": { + "message": "Skjul søkeforespørslene dine" + }, + "options_import_configuration_applying_subtitle": { + "message": "Erstatter de nåværende innstillingene med de importerte. Filtrering er deaktivert under importen" + }, + "options_import_configuration_applying_title": { + "message": "Importerer..." + }, + "options_import_configuration_confirm_button": { + "message": "Importer" + }, + "options_import_configuration_confirm_subtitle": { + "message": "De importerte innstillingene vil erstatte de nåværende. Andre innstillinger vil ikke bli påvirket" + }, + "options_import_configuration_confirm_title": { + "message": "Importer innstillinger" + }, + "options_import_configuration_error_button": { + "message": "Lukk" + }, + "options_import_configuration_error_subtitle": { + "message": "Sjekk importlenken og prøv igjen. Hvis det ikke hjelper, kontakt support" + }, + "options_import_configuration_error_title": { + "message": "Mislyktes i å importere innstillinger" + }, + "options_import_configuration_success_button": { + "message": "Lukk" + }, + "options_import_configuration_success_subtitle": { + "message": "Innstillingene ble importert" + }, + "options_import_configuration_success_title": { + "message": "Ferdig" + }, + "options_import_settings": { + "message": "Importer innstillinger" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverter" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Annonser og sporere vil kun bli blokkert på nettsteder fra tillatelseslisten" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inverter tillatelseslisten?" + }, + "options_leave_feedback": { + "message": "Gi tilbakemelding" + }, + "options_lifetime_minutes": { + "message": "Levetid, minutter" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Du har nådd grensen for brukerlagte regex-regler. %maximum% av %current% regex-regler er aktivert." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Du har nådd grensen for regex-regler lagt til av brukere. %maximum% av %current% regler er aktivert. For å legge til nye regex-regler, fjern noen eksisterende" + }, + "options_limits_warning_dynamic_rules": { + "message": "Du har nådd grensen for brukerlagte regler. %maximum% av %current% regler er aktivert." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Du har nådd grensen for regler lagt til av brukere. %maximum% av %current% regler er aktivert. For å legge til nye regler, fjern noen eksisterende" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Du har nådd grensen for brukerlagte usikre regler. %maximum% av %current% usikre regler er aktivert." + }, + "options_limits_warning_static_filters": { + "message": "Du har nådd grensen for aktive innebygde filtre. %maximum% av %current% filtre er aktivert. For å aktivere nye regler, deaktivere noen innebygde filtre." + }, + "options_limits_warning_static_filters_browser": { + "message": "Du har nådd nettleserens grense for aktive innebygde filtre. %maximum% av %current% filtre er aktivert. For å aktivere nye filtre, deaktiver noen innebygde" + }, + "options_limits_warning_static_regex_rules": { + "message": "Du har nådd grensen for aktive innebygde regex-regler. %maximum% av %current% regex-regler er aktivert. For å aktivere nye regler, deaktivere noen innebygde filtre." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Du har nådd grensen for aktive innebygde regex-regler. For å aktivere nye regler, deaktiver noen innebygde filtre" + }, + "options_limits_warning_static_rules": { + "message": "Du har nådd grensen for aktive innebygde regler. %maximum% av %current% regler er aktivert. For å aktivere nye regler, deaktivere noen innebygde filtre." + }, + "options_limits_warning_static_rules_browser": { + "message": "Du har nådd nettleserens grense for aktive innebygde regler. For å aktivere nye regler, deaktiver noen innebygde filtre" + }, + "options_loader_applying_changes": { + "message": "Benytter endringene …" + }, + "options_miscellaneous_settings": { + "message": "Ytterligere innstillinger" + }, + "options_modified_first_party_cookie": { + "message": "Førstepartsinfokapsel modifisert" + }, + "options_modified_third_party_cookie": { + "message": "Tredjepartsinfokapsel modifisert" + }, + "options_nav_better_than_extension": { + "message": "Hvorfor er AdGuard-appen bedre enn utvidelsen?" + }, + "options_nav_compare": { + "message": "Sammenligne" + }, + "options_navigation": { + "message": "Navigasjon" + }, + "options_open_changelog": { + "message": "Endringslogg" + }, + "options_open_log": { + "message": "Åpne filtreringsloggen" + }, + "options_popup_call_to_action": { + "message": "Skriv inn en gyldig URL eller filbane til filteret i feltet ovenfor." + }, + "options_popup_check_false_description": { + "message": "Feil under tillegging av ditt selvvalgte filter." + }, + "options_popup_check_false_title": { + "message": "Feil" + }, + "options_popup_checking_filter": { + "message": "Sjekker filteret ditt" + }, + "options_popup_description": { + "message": "Du vil abonnere på det filteret." + }, + "options_popup_filter_description": { + "message": "Beskrivelse:" + }, + "options_popup_filter_homepage": { + "message": "Hjemmeside:" + }, + "options_popup_filter_rules_count": { + "message": "Antall oppføringer:" + }, + "options_popup_filter_title": { + "message": "Tittel:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versjon:" + }, + "options_popup_import_error_file_description": { + "message": "Noe gikk galt" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "For å importere denne innstillingsfilen, tillat AdGuard å endre innstillingene dine relatert til personvern." + }, + "options_popup_import_error_title": { + "message": "Mislyktes i å importere innstillinger" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Filtypen må være %extension%" + }, + "options_popup_import_success_title": { + "message": "Innstillinger importert" + }, + "options_popup_next_button": { + "message": "Neste" + }, + "options_popup_subscribe_button": { + "message": "Abonner" + }, + "options_popup_title_placeholder": { + "message": "Skriv inn et filternavn" + }, + "options_popup_trusted_filter_description": { + "message": "Betrodde filtre kan bruke mektige filtreringsoppføringsmodifikatorer som kan være farlige i feil hender. Ikke huk denne boksen hvis du ikke stoler på den." + }, + "options_popup_trusted_filter_title": { + "message": "Betrodd" + }, + "options_popup_try_again_button": { + "message": "Prøv på nytt" + }, + "options_popup_update_error": { + "message": "Kunne ikke laste ned oppdateringer. Prøv igjen senere." + }, + "options_popup_update_filter": { + "message": "ble oppdatert." + }, + "options_popup_update_filters": { + "message": "ble oppdatert." + }, + "options_popup_update_not_found": { + "message": "Filtrene dine er oppdaterte" + }, + "options_popup_update_title_error": { + "message": "Feil under oppdatering av filtre" + }, + "options_popup_updating_filters": { + "message": "Oppdaterer filtre..." + }, + "options_popup_url_placeholder": { + "message": "Skriv inn URL eller filbane" + }, + "options_popup_url_title": { + "message": "Nytt filterabonnement" + }, + "options_popup_version_update_changelog_text": { + "message": "Hva er nytt i denne versjonen?" + }, + "options_popup_version_update_description_major": { + "message": "Dette er en stor utvidelsesoppgradering som har med seg mange nye funksjoner og forbedringer." + }, + "options_popup_version_update_description_minor": { + "message": "Denne versjonen inneholder stort sett fiksinger av feil og små forbedringer." + }, + "options_popup_version_update_disable_notification": { + "message": "Skru av varsler" + }, + "options_popup_version_update_offer": { + "message": "Visste du at AdGuard-funksjonene ikke er begrenset til denne nettleseren?" + }, + "options_popup_version_update_offer_button_text": { + "message": "LÆR MER" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard-utvidelsen har blitt oppdatert til versjon %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Får WebRTC til å bruke en strengere policy for IP-adresser for å bidra til å holde din virkelige IP-adresse skjult når du bruker en proxy eller VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Forhindre at IP-adressen lekker via WebRTC" + }, + "options_privacy": { + "message": "Sporingsbeskyttelse" + }, + "options_privacy_desc": { + "message": "Beskytter nettaktiviteten din og personopplysningene dine mot nettsporere" + }, + "options_privacy_policy": { + "message": "Personvernretningslinjer" + }, + "options_privacy_title": { + "message": "Sporingsbeskyttelse" + }, + "options_rate_us_cta": { + "message": "Ranger det" + }, + "options_remove_client_data_desc": { + "message": "Blokker Google Chrome fra å sende sin versjon og modifikasjonsinformasjon til Google-domener" + }, + "options_remove_client_data_title": { + "message": "Fjern «X-Client-Data»-overskrift" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Fjern" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Fjern filter?" + }, + "options_report_bug": { + "message": "Meld inn en feil" + }, + "options_reset_settings": { + "message": "Tilbakestill innstillinger" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Tilbakestill" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Alle innstillinger vil bli tilbakestilt til standardverdiene" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Vil du tilbakestille innstillingene?" + }, + "options_reset_settings_done": { + "message": "Innstillingene ble tilbakestilt" + }, + "options_reset_settings_error": { + "message": "Feil under tilbakestilling av innstillinger" + }, + "options_reset_stats": { + "message": "Tilbakestill statistikker" + }, + "options_reset_stats_done": { + "message": "Statistikkene har blitt tilbakestilt" + }, + "options_rule_limits": { + "message": "Regelgrenser" + }, + "options_rule_limits_description": { + "message": "Nettleseren begrenser antall regler som kan brukes" + }, + "options_rule_limits_dynamic": { + "message": "Dynamiske regler" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-regler — inkludert i brukerlagde regler" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Usikre dynamiske regler (brukes for noen avanserte modifikatorer, som $$redirect eller $$cookie) — inkludert i brukerlagde regler" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Brukerlagte regler, som \u003Cuser_rules>brukerregler\u003C/user_rules>, \u003Callowlist>hvitelisted nettsteder\u003C/allowlist> og \u003Ccustom_filters>egendefinerte filtre\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Brukerlagte regler, for eksempel \u003Cuser_rules>brukerregler\u003C/user_rules> og \u003Callowlist>nettsteder på tillatelseslisten\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% av %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statiske regler" + }, + "options_rule_limits_static_rules_all": { + "message": "Regler fra \u003Ca>innebygde filtre\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-regler — inkludert i ovennevnte" + }, + "options_rule_limits_static_rulesets": { + "message": "Statisk regelsyn" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Innebygde filtre\u003C/a>, som blokkerer irriterende annonser eller språkspesifikke filtre" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Alternativ 3. Hvis du er fornøyd med de for øyeblikket aktiverte standardfiltrene, \u003Ca>lukk denne advarselen.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Alternativ 3. Hvis du er fornøyd med det for øyeblikket aktiverte standardfilteret, \u003Ca>lukk denne advarselen.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Alternativ 1. Slett unødvendige annonseblokkering-utvidelser fra nettleseren din. For å reaktivere filtrene nevnt i \"Filtre aktivert før oppdatering\", klikk \u003Ca>reaktiver filtre.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Alternativ 2. Installer AdGuard Ad Blocker-appen: den har ingen restriksjoner på filtreringsregler. \u003Ca>Få AdGuard-appen\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Dine mulige handlinger" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Grensen for aktive innebygde regler ble overskredet etter en oppdatering eller ved å legge til en ny utvidelse. I henhold til Manifest V3 reagerte Chrome-nettleseren din ved å deaktivere alle utvidelsens innebygde filtre, unntatt de standardene." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Hva skjedde?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtre aktivert før oppdateringen" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtre aktivert nå" + }, + "options_rule_limits_warning_title": { + "message": "Nettleseren har modifisert listen over aktive filtre" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Fjern regelgrensene og få utvidet beskyttelse som fungerer på tvers av alle nettlesere" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installer desktop-appen" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Gå til filtrene" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Administrer utvidelser" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Nettleserutvidelser deler samme regelgrense. Å fjerne andre Ad Blockers kan frigjøre flere regler for AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Fjern andre Ad Blockers" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktiver filtrene du trenger. Språkspesifikke og personvernfiltre kan bruke mange regler" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Se gjennom tilgjengelige filtre" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Her er hva du kan gjøre" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Grense nådd — noen filtre ble deaktivert" + }, + "options_rule_syntax": { + "message": "Regel syntaks" + }, + "options_safebrowsing_enabled": { + "message": "Beskyttelse mot nettfisking og skadelig programvare" + }, + "options_safebrowsing_enabled_desc": { + "message": "Advarer om ondsinnede og phishing-nettsteder ved bruk av AdGuard-modulen Nettlesingssikkerhet. \u003Ca>Les mer\u003C/a>" + }, + "options_select_theme": { + "message": "Theme" + }, + "options_select_update_period_12h": { + "message": "12 timer" + }, + "options_select_update_period_1h": { + "message": "1 time" + }, + "options_select_update_period_24h": { + "message": "24 timer" + }, + "options_select_update_period_48h": { + "message": "48 timer" + }, + "options_select_update_period_6h": { + "message": "6 timer" + }, + "options_select_update_period_default": { + "message": "Standard" + }, + "options_select_update_period_disabled": { + "message": "Avslått" + }, + "options_send_not_track_desc": { + "message": "Send \u003Cgpc>Global Privacy Control\u003C/gpc> og \u003Cdnt>Do Not Track\u003C/dnt> signaler til nettstedene du besøker" + }, + "options_send_not_track_title": { + "message": "Be nettsteder om å ikke spore meg" + }, + "options_set_update_interval": { + "message": "Filteroppdateringsvanlighet" + }, + "options_set_update_interval_desc": { + "message": "Holder filtrene oppdaterte for mer effektiv blokkering av annonser" + }, + "options_settings": { + "message": "AdGuard-innstillinger" + }, + "options_share_settings": { + "message": "Del innstillingene" + }, + "options_show_adguard_full_version_title": { + "message": "Vis informasjon om fullversjonen av AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Bli varslet om utvidelsesoppdateringer" + }, + "options_show_blocked_ads_count_title": { + "message": "Indiker antall blokkerte annonser på ikonet til AdGuard-utvidelsen" + }, + "options_show_context_menu_title": { + "message": "Legg til AdGuard-element i nettleserens meny" + }, + "options_site": { + "message": "Offisielt nettsted" + }, + "options_skip_to_main_content": { + "message": "Hopp til hovedinnhold" + }, + "options_stealth_general_title": { + "message": "Generelle innstillinger" + }, + "options_stealth_miscellaneous_title": { + "message": "Diverse" + }, + "options_stealth_tracking_methods_title": { + "message": "Sporingsmetoder" + }, + "options_strip_tracking_params_description": { + "message": "Fjerner sporingsparametere fra sidens URL-er ved hjelp av AdGuard URL-sporingsfilter" + }, + "options_strip_tracking_params_title": { + "message": "Fjern sporingsparametere fra nettadresser" + }, + "options_stripped_tracking_parameters": { + "message": "Sporingsparametre fjernet" + }, + "options_theme_selector_dark": { + "message": "Mørk" + }, + "options_theme_selector_light": { + "message": "Lyst" + }, + "options_theme_selector_system": { + "message": "System" + }, + "options_third_party_block_cookies_warning": { + "message": "Hvis du blokkerer disse informasjonskapslene, må du kanskje logge inn på nytt på noen nettsteder eller opplever andre problemer knyttet til informasjonskapsler" + }, + "options_third_party_desc": { + "message": "Forhindrer annonsører fra å spore oppførselen din på tvers av flere sider ved å begrense levetiden til tredjepartscookies" + }, + "options_third_party_title": { + "message": "Slett tredjeparts-informasjonskapsler" + }, + "options_update_antibanner_filters": { + "message": "Se etter filteroppdateringer" + }, + "options_use_optimized_filters": { + "message": "Bruk optimaliserte filtre" + }, + "options_use_optimized_filters_desc": { + "message": "Bruker kortere versjoner av filtre med bare de mest populære reglene for å spare trafikk. Bedre egnet for mobilnettlesere" + }, + "options_user_rules_clear_search": { + "message": "Tøm søk" + }, + "options_user_rules_create_rule": { + "message": "Opprett regel" + }, + "options_user_rules_delete_all": { + "message": "Slett alle" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Alle brukerregler vil bli slettet permanent" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Vil du slette alle?" + }, + "options_user_rules_delete_all_success": { + "message": "Alle brukerregler slettet" + }, + "options_user_rules_delete_rule": { + "message": "Slett regel" + }, + "options_user_rules_deleted_notification": { + "message": "Brukerregel slettet:" + }, + "options_user_rules_description_key": { + "message": "Dine regler for å blokkere og oppheve blokkering av annonser eller hele nettsteder" + }, + "options_user_rules_edit_rule": { + "message": "Rediger brukerregler" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Gå til redigereren" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Reglene dine vil vises her etter at du har lukket den" + }, + "options_user_rules_editor_stub_title": { + "message": "Redigerer åpnet i et annet vindu" + }, + "options_user_rules_empty_placeholder": { + "message": "Ingen regler ennå" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Fremhever regler…" + }, + "options_user_rules_import_error": { + "message": "Kunne ikke importere brukerregler. Vennligst prøv igjen" + }, + "options_user_rules_import_success": { + "message": "Brukerregler importert med suksess" + }, + "options_user_rules_menu": { + "message": "Handlinger for brukerregler" + }, + "options_user_rules_no_match": { + "message": "Ingenting ble funnet" + }, + "options_user_rules_search_placeholder": { + "message": "Søk" + }, + "options_user_rules_switch_to_editor": { + "message": "Bytt til redigeringsvisning" + }, + "options_user_rules_switch_to_list": { + "message": "Bytt til listevisning" + }, + "options_user_rules_undo": { + "message": "Angre" + }, + "options_userfilter": { + "message": "Brukerfilter" + }, + "options_userfilter_description_key": { + "message": "Du kan legge til dine egne regler her. Dette alternativet anbefales for avanserte brukere som er kjent med HTML/CSS. Les \u003Ca>filterregleropplæringen\u003C/a> for å lære hvordan du skriver dine egne filterregler." + }, + "options_userfilter_export": { + "message": "Eksporter" + }, + "options_userfilter_import": { + "message": "Importer" + }, + "options_userfilter_leave_subtitle": { + "message": "Endringene dine til reglene vil bli tapt" + }, + "options_userfilter_line_break": { + "message": "Linjeskift" + }, + "options_userfilter_line_break_off": { + "message": "Linjeskift: Deaktivert" + }, + "options_userfilter_line_break_on": { + "message": "Linjeskift: Aktivert" + }, + "options_userfilter_subtitle_key": { + "message": "Lar deg legge til dine egne filtreringsregler" + }, + "popup_abuse_site": { + "message": "Send inn en klage på denne nettsiden" + }, + "popup_adguard_footer_title": { + "message": "Beskytt din mobile enhet" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokker annonser manuelt" + }, + "popup_get_system_wide_protection": { + "message": "Få systemomfattende beskyttelse" + }, + "popup_header_cta_link": { + "message": "Hvordan forbedre beskyttelsen" + }, + "popup_header_update_filters": { + "message": "Se etter filteroppdateringer" + }, + "popup_limits_exceeded_warning": { + "message": "Nettleseren din har endret listen over aktive innebygde filtre" + }, + "popup_open_filtering_log": { + "message": "Åpne filtreringsloggen" + }, + "popup_open_settings": { + "message": "Åpne AdGuard-innstillinger" + }, + "popup_protection_button": { + "message": "Aktivert beskyttelse" + }, + "popup_reset_page_user_rules": { + "message": "Slett brukerregler for dette nettstedet" + }, + "popup_resume_protection_button": { + "message": "Gjenoppta" + }, + "popup_security_report": { + "message": "Nettsidens sikkerhetsrapport" + }, + "popup_site_exception_information": { + "message": "Filtrering er deaktivert fordi den kan forstyrre nettsidens arbeid." + }, + "popup_site_filtering_state_disabled": { + "message": "Beskyttelse er skrudd av" + }, + "popup_site_filtering_state_disabling": { + "message": "Skrur av beskyttelse..." + }, + "popup_site_filtering_state_enabled": { + "message": "Beskyttelse er skrudd på" + }, + "popup_site_filtering_state_enabling": { + "message": "Skrur på beskyttelse..." + }, + "popup_site_filtering_state_loading": { + "message": "Laster..." + }, + "popup_site_filtering_state_paused": { + "message": "Beskyttelsen er satt på pause" + }, + "popup_site_filtering_state_pausing": { + "message": "Setter beskyttelse på vent..." + }, + "popup_site_filtering_state_resuming": { + "message": "Gjenopptar beskyttelse..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Sikker side" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "for alle nettsteder" + }, + "popup_statistics_all_categories": { + "message": "Alle" + }, + "popup_statistics_category_advertising": { + "message": "Annonser" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistikkategori" + }, + "popup_statistics_category_other": { + "message": "Andre" + }, + "popup_statistics_category_social_media": { + "message": "Sosiale medier" + }, + "popup_statistics_category_trackers": { + "message": "Sporere" + }, + "popup_statistics_months_apr": { + "message": "apr" + }, + "popup_statistics_months_aug": { + "message": "aug" + }, + "popup_statistics_months_dec": { + "message": "des" + }, + "popup_statistics_months_feb": { + "message": "feb" + }, + "popup_statistics_months_jan": { + "message": "jan" + }, + "popup_statistics_months_jul": { + "message": "jul" + }, + "popup_statistics_months_jun": { + "message": "jun" + }, + "popup_statistics_months_mar": { + "message": "mar" + }, + "popup_statistics_months_may": { + "message": "mai" + }, + "popup_statistics_months_nov": { + "message": "nov" + }, + "popup_statistics_months_oct": { + "message": "okt" + }, + "popup_statistics_months_sep": { + "message": "sep" + }, + "popup_statistics_time_day": { + "message": "24 timer" + }, + "popup_statistics_time_label": { + "message": "Statistikktidperiode" + }, + "popup_statistics_time_month": { + "message": "30 dager" + }, + "popup_statistics_time_week": { + "message": "7 dager" + }, + "popup_statistics_time_year": { + "message": "1 år" + }, + "popup_statistics_total": { + "message": "Totalt" + }, + "popup_statistics_week_days_fri": { + "message": "fre" + }, + "popup_statistics_week_days_mon": { + "message": "man" + }, + "popup_statistics_week_days_sat": { + "message": "lør" + }, + "popup_statistics_week_days_sun": { + "message": "søn" + }, + "popup_statistics_week_days_thu": { + "message": "tor" + }, + "popup_statistics_week_days_tue": { + "message": "tir" + }, + "popup_statistics_week_days_wed": { + "message": "ons" + }, + "popup_switch_button": { + "message": "Beskyttelse for gjeldende nettside" + }, + "popup_tab_actions": { + "message": "Handlinger" + }, + "popup_tab_blocked_all_count": { + "message": "Totalt blokkert: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokkert: %num%" + }, + "popup_tab_current_website": { + "message": "Nåværende nettsted" + }, + "popup_tab_statistics": { + "message": "Statistikk" + }, + "popup_tabs": { + "message": "Faner" + }, + "popup_tooltip_loading": { + "message": "Laster..." + }, + "popup_tooltip_protection_disabled": { + "message": "Beskyttelse er deaktivert" + }, + "popup_tooltip_protection_enabled": { + "message": "Beskyttelse er skrudd på" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Noen regler gjelder ikke" + }, + "popup_tooltip_update_available": { + "message": "Oppdatering tilgjengelig" + }, + "post_install_loading": { + "message": "Laster inn utvidelse..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Regelgrensen er overskredet i AdGuard Browser Extension. Vennligst sjekk filtrene dine og deaktiver de du ikke trenger." + }, + "text_collapser_hide_default": { + "message": "Skjul den fulle teksten" + }, + "text_collapser_show_default": { + "message": "Vis hele teksten" + }, + "update_available_desc": { + "message": "For å blokkere annonser effektivt, hold utvidelsen og filtrene dine oppdaterte" + }, + "update_available_title": { + "message": "Oppdateringer tilgjengelig" + }, + "update_available_update_btn": { + "message": "Oppdater" + }, + "update_check": { + "message": "Se etter oppdateringer" + }, + "update_checking_in_progress": { + "message": "Ser etter oppdateringer..." + }, + "update_failed_text": { + "message": "Kunne ikke fullføre oppdateringen" + }, + "update_failed_try_again_btn": { + "message": "Prøv på nytt" + }, + "update_installing_in_progress_desc": { + "message": "Utvidelsen vil starte på nytt etter oppdateringen" + }, + "update_installing_in_progress_title": { + "message": "Oppdaterer utvidelse og filtre ..." + }, + "update_not_needed": { + "message": "Utvidelsen og filtrene dine er oppdaterte" + }, + "update_success_text": { + "message": "Utvidelse og filtre oppdatert" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nl/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nl/messages.json new file mode 100644 index 0000000..a8b28e2 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/nl/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% is automatisch geactiveerd." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatische filterinschakeling" + }, + "background_tab_title": { + "message": "Achtergrond tabblad" + }, + "blocking_pages_advanced_button": { + "message": "Geavanceerd" + }, + "blocking_pages_btn_go_back": { + "message": "Teruggaan" + }, + "blocking_pages_btn_proceed": { + "message": "Toch doorgaan" + }, + "blocking_pages_malware": { + "message": "Deze pagina op \u003Cstrong>%host%\u003C/strong> is gerapporteerd als een malware-pagina en is geblokkeerd op basis van je beveiligingsinstellingen." + }, + "blocking_pages_more_info_button": { + "message": "Meer informatie" + }, + "blocking_pages_page_title": { + "message": "Toegang geweigerd" + }, + "blocking_pages_phishing": { + "message": "Deze pagina op \u003Cstrong>%host%\u003C/strong> is gerapporteerd als een phishing-pagina en is geblokkeerd op basis van je beveiligingsinstellingen." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard heeft voorkomen dat deze pagina wordt geladen vanwege de volgende filterregel" + }, + "blocking_pages_rule_header_title": { + "message": "Geblokkeerd door AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard heeft de toegang tot deze pagina geblokkeerd" + }, + "clear_button_title": { + "message": "Wissen" + }, + "close_button_title": { + "message": "Sluiten" + }, + "context_block_site_ads": { + "message": "Advertenties handmatig blokkeren" + }, + "context_complaint_website": { + "message": "Een probleem melden" + }, + "context_disable_protection": { + "message": "AdGuard-bescherming pauzeren" + }, + "context_enable_protection": { + "message": "AdGuard-bescherming hervatten" + }, + "context_open_log": { + "message": "Filterlogboek" + }, + "context_open_settings": { + "message": "AdGuard-instellingen" + }, + "context_security_report": { + "message": "Beveiliging van website controleren" + }, + "context_site_exception": { + "message": "Deze website staat op de uitzonderingenlijst" + }, + "context_site_filtering_disabled": { + "message": "AdGuard kan deze pagina niet filteren" + }, + "context_site_filtering_off": { + "message": "Filters uitschakelen op deze website" + }, + "context_site_filtering_on": { + "message": "Filters inschakelen op deze website" + }, + "context_site_protection_disabled": { + "message": "AdGuard-bescherming is gepauzeerd" + }, + "context_update_antibanner_filters": { + "message": "Controleren op filterupdates" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ongeëvenaarde adblocker tegen advertenties en pop-ups. Blokkeert advertenties op Facebook, YouTube en andere websites." + }, + "filtering_clear_log_events": { + "message": "Logboek wissen" + }, + "filtering_log_actions_menu": { + "message": "Logboekacties filteren" + }, + "filtering_log_assumed_rule_description": { + "message": "Dit is een veronderstelde regel. Raadpleeg onze \u003Ca>Kennisbank\u003C/a> voor meer informatie" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-request methode" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-statuscode" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Derde lijns verzoek" + }, + "filtering_log_details_modal_back_button": { + "message": "Terug naar aanvraag" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Verfraaien" + }, + "filtering_log_details_modal_try_again": { + "message": "Opnieuw proberen" + }, + "filtering_log_filter_allowed": { + "message": "Toegestaan" + }, + "filtering_log_filter_blocked": { + "message": "Geblokkeerd" + }, + "filtering_log_filter_modified": { + "message": "Aangepast" + }, + "filtering_log_filter_regular": { + "message": "Standaard" + }, + "filtering_log_filter_user_rules": { + "message": "Gebruikersregels" + }, + "filtering_log_hide_referrer": { + "message": "Verwijzing verborgen voor derde partijen" + }, + "filtering_log_hide_search_queries": { + "message": "Je zoekopdrachten verborgen" + }, + "filtering_log_in_allowlist": { + "message": "De website staat op de toelatingslijst" + }, + "filtering_log_modified_rules": { + "message": "Aangepaste regels: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ja, behouden" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Deze optie kan het geheugengebruik aanzienlijk verhogen" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Logboekregistratie behouden?" + }, + "filtering_log_preserve_log_off": { + "message": "Geen logboekregistratie behouden" + }, + "filtering_log_preserve_log_on": { + "message": "Logboekregistratie behouden" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Niet opnieuw weergeven" + }, + "filtering_log_privacy_applied_rules": { + "message": "Volgersbescherming toegepast" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data header verwijderd" + }, + "filtering_log_search_string": { + "message": "Zoeken" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Zoeken in tabbladen" + }, + "filtering_log_send_not_track": { + "message": "Niet-volgen-header verstuurd" + }, + "filtering_log_status_allowed": { + "message": "Toegestaan" + }, + "filtering_log_status_blocked": { + "message": "Geblokkeerd" + }, + "filtering_log_status_modified": { + "message": "Aangepast" + }, + "filtering_log_status_processed": { + "message": "Verwerkt" + }, + "filtering_log_stealth_rules": { + "message": "Volgers beschermingsregels: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Oorsprong aanvragen" + }, + "filtering_log_tag_request_status": { + "message": "Filteringstatus" + }, + "filtering_log_tag_request_type": { + "message": "Verzoektype" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Toegestane en gedeblokkeerde verzoeken" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Geblokkeerde verzoeken" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stylesheets" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Eerste lijns verzoeken" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documenten en subdocumenten" + }, + "filtering_log_tag_tooltip_img": { + "message": "Afbeeldingen" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Gewijzigde verzoeken" + }, + "filtering_log_tag_tooltip_other": { + "message": "Lettertypen, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Verwerkte verzoeken zonder filtering" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Verzoeken van derden" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Verzoeken beïnvloed door gebruikersregels" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests- en ophaalverzoeken" + }, + "filtering_log_title": { + "message": "Filterlogboek" + }, + "filtering_menu_open_filters": { + "message": "Aanpassen" + }, + "filtering_modal_add_rule": { + "message": "Toevoegen" + }, + "filtering_modal_allow_title": { + "message": "Toelatingsregel toevoegen" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Toegepaste regel | Toegepaste regels" + }, + "filtering_modal_apply_domains": { + "message": "Van toepassing op alle websites" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Veronderstelde regel: | Veronderstelde regels:" + }, + "filtering_modal_block": { + "message": "Blokkeren" + }, + "filtering_modal_block_again": { + "message": "Opnieuw blokkeren" + }, + "filtering_modal_block_title": { + "message": "Blokkeringsregel toevoegen" + }, + "filtering_modal_converted_to": { + "message": "Geconverteerd naar:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Gekopieerd" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiëren naar klembord" + }, + "filtering_modal_declarative_rule": { + "message": "DNR-regel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Een uitzondering toevoegen" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filteringstatus" + }, + "filtering_modal_hide_full_element": { + "message": "Volledig element verbergen" + }, + "filtering_modal_hide_full_rule": { + "message": "Volledige regel verbergen" + }, + "filtering_modal_hide_full_url": { + "message": "Volledige URL verbergen" + }, + "filtering_modal_important": { + "message": "De regel een hogere prioriteit geven" + }, + "filtering_modal_info_title": { + "message": "Details opvragen" + }, + "filtering_modal_open_in_new_tab": { + "message": "Openen in nieuw tabblad" + }, + "filtering_modal_options_desc": { + "message": "Opties" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Oorspronkelijke regel: | Oorspronkelijke regels:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Wat moet worden toegestaan" + }, + "filtering_modal_patterns_desc_block": { + "message": "Wat moet worden geblokkeerd" + }, + "filtering_modal_preview_request_button": { + "message": "Voorbeeldweergave" + }, + "filtering_modal_preview_title": { + "message": "Voorbeeldweergave" + }, + "filtering_modal_privacy": { + "message": "Bescherming tegen volgen" + }, + "filtering_modal_remove_allowlist": { + "message": "Verwijderen van de toelatingslijst" + }, + "filtering_modal_remove_param": { + "message": "Wachtrijparameters verwijderen" + }, + "filtering_modal_remove_user": { + "message": "Regel verwijderen" + }, + "filtering_modal_rule": { + "message": "Regel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regel" + }, + "filtering_modal_rules": { + "message": "Regels:" + }, + "filtering_modal_show_full_element": { + "message": "Volledig element weergeven" + }, + "filtering_modal_show_full_rule": { + "message": "Volledige regel weergeven" + }, + "filtering_modal_show_full_url": { + "message": "Volledige URL weergeven" + }, + "filtering_modal_source": { + "message": "Bron" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Laden van voorbeeld mislukt. Probeer het opnieuw" + }, + "filtering_modal_status_text_loading": { + "message": "Laden..." + }, + "filtering_modal_third_party": { + "message": "Alleen toepassen op verzoeken van derden " + }, + "filtering_modal_type": { + "message": "Type" + }, + "filtering_modal_unblock": { + "message": "Deblokkeren" + }, + "filtering_refresh_tab_short": { + "message": "Verversen" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Pagina vernieuwen" + }, + "filtering_table_action": { + "message": "Actie" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Niets gevonden. \u003Creset>Filters uitschakelen\u003C/reset> of \u003Crefresh>de pagina opnieuw laden\u003C/refresh> om logboekgegevens weer te geven" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Details openen" + }, + "filtering_table_rule": { + "message": "Filterregel" + }, + "filtering_table_source": { + "message": "Bron" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Soort" + }, + "filtering_type_all": { + "message": "Alles" + }, + "filtering_type_other": { + "message": "Overige" + }, + "filters_download_loading": { + "message": "De filterdatabase wordt geladen; een moment geduld..." + }, + "filters_download_title": { + "message": "De filterdatabase wordt geladen..." + }, + "fullscreen_user_rules_title": { + "message": "Gebruikersregels" + }, + "group_description_adblocking": { + "message": "Hier advertentieblokkering configureren om voor eens en voor altijd vervelende banners, pop-ups, videoadvertenties en dergelijke aan te pakken" + }, + "group_description_annoyances": { + "message": "Pop-upvensters en andere vervelende meldingen zoals cookiemeldingen verwijderen" + }, + "group_description_custom": { + "message": "Je eigen filters maken om webfiltering naar je voorkeur af te stemmen." + }, + "group_description_lang": { + "message": "Beperk jezelf niet - advertenties op websites in elke taal blokkeren" + }, + "group_description_miscellaneous": { + "message": "Meer instellingen om je websurfen met AdGuard nog verder te configureren" + }, + "group_description_security": { + "message": "Jezelf beschermen tegen malware, phishing en andere online bedreigingen" + }, + "group_description_social": { + "message": "Ongewenste \"Vind ik leuk\"/\"Delen\"-knoppen en andere sociale media widgets verbergen" + }, + "group_description_stealth": { + "message": "Je identiteit en gevoelige persoonlijke informatie beschermen tegen duizenden online volgers door alle bekende populaire volgmethodes te blokkeren" + }, + "name": { + "message": "AdGuard Advertentieblokker" + }, + "opera_search_permission_dont_show": { + "message": "Niet opnieuw weergeven" + }, + "opera_search_permission_go_to_settings": { + "message": "Ga naar Instellingen" + }, + "opera_search_permission_warning": { + "message": "Om zoekadvertenties te blokkeren, moet je in de browserinstellingen toegang tot zoekresultaten toestaan" + }, + "options_about": { + "message": "Over" + }, + "options_about_libs": { + "message": "Gebruikte bibliotheken" + }, + "options_about_title": { + "message": "AdGuard Browser uitbreiding" + }, + "options_about_update_available": { + "message": "Versie %version% is beschikbaar. Deze wordt automatisch gedownload en geïnstalleerd." + }, + "options_about_version": { + "message": "Versie" + }, + "options_acknowledgment": { + "message": "Dankbetuigingen" + }, + "options_add_custom_filter": { + "message": "Aangepast filter toevoegen" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Toevoegen" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Je filter controleren..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "De URL gaf een webpagina terug in plaats van een filterlijst. Geef een directe link naar het filterbestand." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Probeer het opnieuw of neem contact op met de ondersteuning" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Aangepast filter toevoegen mislukt" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filternaam:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Vertrouwd" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Sommige filterregels kunnen je browse-ervaring aanzienlijk veranderen en jouw privacy in gevaar brengen. Zorg ervoor dat je alleen filters gebruikt van ontwikkelaars die je vertrouwt" + }, + "options_add_custom_filter_modal_title": { + "message": "Aangepast filter toevoegen" + }, + "options_all_limits_exceeded_warning": { + "message": "Je hebt de limiet van actieve ingebouwde regels bereikt. Je browser heeft de lijst met actieve ingebouwde filters gewijzigd. Het aantal ingeschakelde filters is gewijzigd van %expected% in %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Je hebt de limiet van je browser voor actieve ingebouwde regels bereikt. Je browser heeft de lijst met actieve ingebouwde filters teruggebracht van %expected% naar %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Je browser beperkt \u003Cexternal-link>sommige soorten regels\u003C/external-link>. Om alle regels toe te passen, schakel \u003Cb>Gebruikersscripts toestaan\u003C/b> in de \u003Csettings-link>Uitbreiding instellingen\u003C/settings-link> van je browser in" + }, + "options_allowlist": { + "message": "Toelatingslijst" + }, + "options_allowlist_alert_invert": { + "message": "De toelatingslijst is omgekeerd. Advertenties worden alleen geblokkeerd op websites die eraan zijn toegevoegd." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Omkeren stoppen\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard blokkeert geen advertenties en volgers op websites van de lijst" + }, + "options_allowlist_invalid_entries": { + "message": "Om op te slaan, behoud alleen domeinen of URL's. Deze moeten worden aangepast: %entries%" + }, + "options_allowlist_invert": { + "message": "Toelatingslijst omkeren" + }, + "options_allowlist_invert_desc": { + "message": "Blokkeert advertenties en volgers alleen op toegestane websites" + }, + "options_allowlist_leave_subtitle": { + "message": "Je wijzigingen in de Toelatingslijst gaan verloren" + }, + "options_allowlist_menu": { + "message": "Toelatingslijst acties" + }, + "options_anonymized_usage_data_description": { + "message": "Stuurt anonieme statistieken over het gebruik van uitbreidingen naar AdGuard. \u003Cbutton>Meer informatie\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Begrepen" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Deze gegevens omvatten:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Namen van knoppen waarop je klikt" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Namen van schermen waarmee je interactie hebt" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sessie-ID's" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Deze gegevens zijn anoniem en worden alleen intern gebruikt. We delen het nooit met derden" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "We hebben deze informatie nodig om de functionaliteit van AdGuard te analyseren en te verbeteren" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Gebruiksgegevens van uitbreidingen" + }, + "options_anonymized_usage_data_title": { + "message": "Geanonimiseerde gebruiksgegevens van uitbreidingen verzenden" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Aangepaste filter reeds toegevoegd" + }, + "options_antibanner_custom_group": { + "message": "Aangepast" + }, + "options_antibanner_custom_group_description": { + "message": "Hiermee kun je filters toevoegen vanuit een bestand of URL" + }, + "options_antibanner_rules_count": { + "message": "Regels: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Bijgewerkt: %date%" + }, + "options_block_acceptable_ads": { + "message": "Zoekadvertenties en zelfpromotie van websites blokkeren" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokkeert advertenties in zoekresultaten en zelfpromotie van websites. \u003Ca>Meer informatie\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Om de cookies te blokkeren, stel de levensduur in op 0" + }, + "options_block_known_trackers_description": { + "message": "Blokkeert volgers en webanalyses met behulp van AdGuard Tracking Protection filter" + }, + "options_block_known_trackers_title": { + "message": "Volgers blokkeren" + }, + "options_check_update_progress": { + "message": "Controleren..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Wissen" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Alle statistieken over gegevensgebruik worden permanent verwijderd" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Statistieken wissen?" + }, + "options_clipboard_permission_warning": { + "message": "Om regels te kopiëren en te plakken, moet je AdGuard toegang geven tot het klembord. \u003Ca>Toestaan\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Stuurt anonieme statistieken over het gebruik van advertentiefilters naar AdGuard. \u003Ca>Meer informatie\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuard-filters helpen ontwikkelen" + }, + "options_coming_soon": { + "message": "Binnenkort beschikbaar" + }, + "options_confirm_modal_cancel_button": { + "message": "Annuleren" + }, + "options_copyright": { + "message": "Alle rechten voorbehouden." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Om aangepaste filters te gebruiken, schakel \u003Cb>Gebruikersscripts toestaan\u003C/b> in bij de \u003Csettings-link>Uitbreiding instellingen\u003C/settings-link> van je browser" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Om aangepaste filters te gebruiken, schakel \u003Cb>Ontwikkelaarsmodus\u003C/b> in via de \u003Csettings-link>uitbreidingsinstellingen\u003C/settings-link> van je browser" + }, + "options_desktop_app_promo_button_linux": { + "message": "AdGuard voor Linux downloaden" + }, + "options_desktop_app_promo_button_mac": { + "message": "AdGuard voor Mac downloaden" + }, + "options_desktop_app_promo_button_windows": { + "message": "AdGuard voor Windows downloaden" + }, + "options_desktop_app_promo_description": { + "message": "Apps zoals Spotify, Discord of Zoom kunnen nog steeds advertenties weergeven en je activiteiten volgen" + }, + "options_desktop_app_promo_subdescription": { + "message": "Onze desktop-app kan je hiertegen beschermen" + }, + "options_desktop_app_promo_title": { + "message": "Uitbreiding beschermt alleen de browser" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Je browser beperkt \u003Cexternal-link>sommige soorten regels\u003C/external-link>. Om alle regels toe te passen, schakel \u003Cb>Ontwikkelaarsmodus\u003C/b> in bij de \u003Csettings-link>uitbreiding instellingen\u003C/settings-link> van je browser" + }, + "options_disable_webrtc_desc": { + "message": "Blokkeert WebRTC, dat je echte IP-adres kan lekken, zelfs als je een proxy of VPN gebruikt.\nSommige messenger-apps, streamplatforms of spellen werken mogelijk niet goed meer" + }, + "options_disable_webrtc_title": { + "message": "WebRTC blokkeren" + }, + "options_discuss": { + "message": "AdGuard discussie" + }, + "options_do_you_like_question": { + "message": "Vind je AdGuard goed?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Modus voor volledig scherm van de editor sluiten" + }, + "options_editor_indicator_saved": { + "message": "Opgeslagen" + }, + "options_editor_indicator_saving": { + "message": "Bewaren..." + }, + "options_editor_leave_cancel": { + "message": "Terug naar bewerken" + }, + "options_editor_leave_confirm": { + "message": "Ja, verlaten" + }, + "options_editor_leave_title": { + "message": "Verlaten zonder op te slaan?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Editor openen in nieuw venster" + }, + "options_editor_save": { + "message": "Bewaren" + }, + "options_editor_save_error": { + "message": "Wijzigingen opslaan mislukt. Probeer het opnieuw of neem contact op met ondersteuning" + }, + "options_empty_custom_filter": { + "message": "Je hebt nog geen aangepaste filters" + }, + "options_enable_autodetect_filter": { + "message": "De meest geschikte filters automatisch activeren" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecteert de taal van de website en activeert de juiste filters" + }, + "options_export_settings": { + "message": "Instellingen exporteren" + }, + "options_filters": { + "message": "Filters" + }, + "options_filters_annoyances_consent_description": { + "message": "Je staat op het punt een of meer ergernisfilters in te schakelen. Ze blokkeren elementen die geen verband houden met de inhoud van de website, of die er wel gerelateerd aan zijn, maar hinderlijk zijn voor jouw gebruikerservaring. Website-eigenaren kunnen deze elementen als verplicht beschouwen: als je ze blokkeert, schend je mogelijk hun voorwaarden; Sommige functionaliteiten van websites zijn mogelijk niet beschikbaar of werken mogelijk niet correct. Je begrijpt en gaat ermee akkoord dat jij als enige verantwoordelijk bent voor het naleven van de gebruiksvoorwaarden van websites die je bezoekt en dat AdGuard niet verantwoordelijk is voor jouw naleving van de gebruiksvoorwaarden van websites die jij bezoekt met onze producten." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Inschakelen" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Startpagina" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Voor meer informatie over wat de ergernisfilters van AdGuard blokkeren, zie \u003Ca>Filterbeleid\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Deze filters inschakelen?" + }, + "options_filters_annoyances_consent_title": { + "message": "Lees dit aandachtig door voordat je de filters voor ergernissen inschakelt" + }, + "options_filters_back_button": { + "message": "Ga terug" + }, + "options_filters_empty_title": { + "message": "Niets gevonden" + }, + "options_filters_enabled": { + "message": "Ingeschakeld:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% en %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% en %more% meer" + }, + "options_filters_enabled_per_group": { + "message": "Ingeschakeld: %current% van %total%" + }, + "options_filters_filter_link": { + "message": "Ga naar de startpagina" + }, + "options_filters_filter_tags": { + "message": "Tags filteren" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Je kiest ervoor dit filter te vertrouwen." + }, + "options_filters_filter_updated": { + "message": "bijgewerkt:" + }, + "options_filters_filter_version": { + "message": "versie:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Totaal aantal regels: %num%" + }, + "options_filters_last_checked": { + "message": "Laatst gecontroleerd: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Alle filters" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Uitgeschakeld" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Ingeschakeld" + }, + "options_filters_no_enabled": { + "message": "Geen filters ingeschakeld" + }, + "options_filters_of_group": { + "message": "Filters van groep \"%groupName%\"" + }, + "options_filters_search": { + "message": "Zoeken" + }, + "options_filters_search_filter": { + "message": "Filter zoeken" + }, + "options_first_party_block_cookies_warning": { + "message": "Als je deze cookies blokkeert, kunnen sommige websites kapot gaan of niet meer werken" + }, + "options_first_party_desc": { + "message": "Voorkomt dat websites je gegevens onthouden, zoals je aanmeldreferenties en taalvoorkeuren, door de levensduur van directe cookies te beperken" + }, + "options_first_party_title": { + "message": "Directe cookies verwijderen (niet aanbevolen)" + }, + "options_general_settings": { + "message": "Algemene instellingen" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Voorkomen dat derden weten welke website je bezoekt" + }, + "options_hide_referrer_title": { + "message": " Verwijzing verbergen voor derde partijen" + }, + "options_hide_search_queries_desc": { + "message": "Verbergt jouw zoekopdrachten op websites die worden bezocht via de resultaten van zoekmachines" + }, + "options_hide_search_queries_title": { + "message": "Zoekopdrachten verbergen" + }, + "options_import_configuration_applying_subtitle": { + "message": "Je huidige instellingen worden vervangen door de geïmporteerde instellingen. Filteren is uitgeschakeld tijdens het importeren" + }, + "options_import_configuration_applying_title": { + "message": "Importeren..." + }, + "options_import_configuration_confirm_button": { + "message": "Importeren" + }, + "options_import_configuration_confirm_subtitle": { + "message": "De geïmporteerde instellingen vervangen je huidige instellingen. Andere instellingen worden niet beïnvloed" + }, + "options_import_configuration_confirm_title": { + "message": "Instellingen importeren" + }, + "options_import_configuration_error_button": { + "message": "Sluiten" + }, + "options_import_configuration_error_subtitle": { + "message": "Controleer de importlink en probeer het opnieuw. Als dit niet helpt, neem dan contact op met ondersteuning" + }, + "options_import_configuration_error_title": { + "message": "Importeren van instellingen mislukt" + }, + "options_import_configuration_success_button": { + "message": "Sluiten" + }, + "options_import_configuration_success_subtitle": { + "message": "Instellingen zijn succesvol geïmporteerd" + }, + "options_import_configuration_success_title": { + "message": "Voltooid" + }, + "options_import_settings": { + "message": "Instellingen importeren" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Omkeren" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Advertenties en volgers worden alleen geblokkeerd op websites van de toestemmingslijst" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Toelatingslijst omkeren?" + }, + "options_leave_feedback": { + "message": "Feedback geven" + }, + "options_lifetime_minutes": { + "message": "Levensduur, minuten" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Je hebt de limiet van door de gebruiker toegevoegde RegEx-regels bereikt. %maximum% van %current% RegEx-regels zijn ingeschakeld." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Je hebt de limiet van door de gebruiker toegevoegde regex-regels bereikt. %maximum% van %current% regels zijn ingeschakeld. Om nieuwe regex-regels toe te voegen, verwijder je enkele bestaande" + }, + "options_limits_warning_dynamic_rules": { + "message": "Je hebt de limiet van door de gebruiker toegevoegde regels bereikt. %maximum% van %current% regels zijn ingeschakeld." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Je hebt de limiet van door de gebruiker toegevoegde regels bereikt. %maximum% van %current% regels zijn ingeschakeld. Om nieuwe regels toe te voegen, verwijder je enkele bestaande" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Je hebt de limiet van door de gebruiker toegevoegde onveilige regels bereikt. %maximum% van %current% onveilige regels zijn ingeschakeld." + }, + "options_limits_warning_static_filters": { + "message": "Je hebt de limiet van actieve ingebouwde filters bereikt. %maximum% van %current% filters zijn ingeschakeld. Schakel enkele ingebouwde filters uit om nieuwe regels te activeren." + }, + "options_limits_warning_static_filters_browser": { + "message": "Je hebt de limiet van actieve ingebouwde filters van je browser bereikt. %maximum% van %current% filters zijn ingeschakeld. Om nieuwe filters te activeren, schakel je enkele ingebouwde filters uit" + }, + "options_limits_warning_static_regex_rules": { + "message": "Je hebt de limiet van actieve ingebouwde RegEx-regels bereikt. %maximum% van %current% RegEx-regels zijn ingeschakeld. Schakel enkele ingebouwde filters uit om nieuwe regels te activeren." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Je hebt de limiet van actieve ingebouwde regex-regels bereikt. Om nieuwe regels te activeren, schakel je enkele ingebouwde filters uit" + }, + "options_limits_warning_static_rules": { + "message": "Je hebt de limiet van actieve ingebouwde regels bereikt. %maximum% van %current% regels zijn ingeschakeld. Schakel enkele ingebouwde filters uit om nieuwe regels te activeren." + }, + "options_limits_warning_static_rules_browser": { + "message": "Je hebt de limiet van actieve ingebouwde regels van je browser bereikt. Om nieuwe regels te activeren, schakel je enkele ingebouwde filters uit" + }, + "options_loader_applying_changes": { + "message": "Wijzigingen toepassen..." + }, + "options_miscellaneous_settings": { + "message": "Overig" + }, + "options_modified_first_party_cookie": { + "message": "Directe cookie aangepast" + }, + "options_modified_third_party_cookie": { + "message": "Derde cookie aangepast" + }, + "options_nav_better_than_extension": { + "message": "Waarom is de AdGuard-app beter dan de uitbreiding?" + }, + "options_nav_compare": { + "message": "Vergelijken" + }, + "options_navigation": { + "message": "Navigatie" + }, + "options_open_changelog": { + "message": "Wijzigingslog" + }, + "options_open_log": { + "message": "Filterlogboek openen" + }, + "options_popup_call_to_action": { + "message": "Vul een geldig URL of bestandspad van de filter in het vak hierboven." + }, + "options_popup_check_false_description": { + "message": "Fout bij het toevoegen van je aangepaste filter." + }, + "options_popup_check_false_title": { + "message": "Fout" + }, + "options_popup_checking_filter": { + "message": "Filter controleren" + }, + "options_popup_description": { + "message": "Je wordt geabonneerd op deze filter." + }, + "options_popup_filter_description": { + "message": "Beschrijving:" + }, + "options_popup_filter_homepage": { + "message": "Startpagina:" + }, + "options_popup_filter_rules_count": { + "message": "Aantal regels:" + }, + "options_popup_filter_title": { + "message": "Titel:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versie:" + }, + "options_popup_import_error_file_description": { + "message": "Er is iets fout gegaan." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Om dit instellingenbestand te importeren, moet je AdGuard toestaan om jouw privacy-gerelateerde instellingen te wijzigen." + }, + "options_popup_import_error_title": { + "message": "Importeren instellingen mislukt" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "De bestandsextensie moet %extension% zijn" + }, + "options_popup_import_success_title": { + "message": "Instellingen geïmporteerd" + }, + "options_popup_next_button": { + "message": "Volgende" + }, + "options_popup_subscribe_button": { + "message": "Abonneer" + }, + "options_popup_title_placeholder": { + "message": "Filter naam invoeren" + }, + "options_popup_trusted_filter_description": { + "message": "Vertrouwde filters kunnen sterke filterregels aanpassen wat gevaarlijk kan zijn in malafide handen. Check dit vakje niet, tenzij je dit volledig vertrouwt." + }, + "options_popup_trusted_filter_title": { + "message": "Vertrouwd" + }, + "options_popup_try_again_button": { + "message": "Probeer opnieuw" + }, + "options_popup_update_error": { + "message": "Het verkrijgen van nieuwe versie is mislukt. Probeer het later opnieuw." + }, + "options_popup_update_filter": { + "message": "is bijgewerkt." + }, + "options_popup_update_filters": { + "message": "zijn bijgewerkt." + }, + "options_popup_update_not_found": { + "message": "Je filters zijn actueel" + }, + "options_popup_update_title_error": { + "message": "Fout tijdens bijwerken filters" + }, + "options_popup_updating_filters": { + "message": "Filters bijwerken..." + }, + "options_popup_url_placeholder": { + "message": "Voer URL of pad in" + }, + "options_popup_url_title": { + "message": "Nieuw filterabonnement" + }, + "options_popup_version_update_changelog_text": { + "message": "Wat is er nieuw in deze versie?" + }, + "options_popup_version_update_description_major": { + "message": "Dit is een belangrijke update van de uitbreiding met heel wat nieuwe functies en optimalisaties." + }, + "options_popup_version_update_description_minor": { + "message": "Deze versie bevat hoofdzakelijk bugfixes en kleine verbeteringen." + }, + "options_popup_version_update_disable_notification": { + "message": "Meldingen uitschakelen" + }, + "options_popup_version_update_offer": { + "message": "Wist je dat de functionaliteiten van AdGuard niet beperkt zijn tot deze browser?" + }, + "options_popup_version_update_offer_button_text": { + "message": "MEER INFORMATIE" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard uitbreiding is succesvol bijgewerkt naar versie %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Zorgt ervoor dat WebRTC een strenger IP-adresbeleid gebruikt om je echte IP-adres verborgen te houden wanneer je een proxy of VPN gebruikt" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Lekken IP-adres via WebRTC voorkomen" + }, + "options_privacy": { + "message": "Bescherming tegen volgen" + }, + "options_privacy_desc": { + "message": "Beschermt je online activiteiten en persoonlijke gegevens tegen webvolgers" + }, + "options_privacy_policy": { + "message": "Privacybeleid" + }, + "options_privacy_title": { + "message": "Bescherming tegen volgen" + }, + "options_rate_us_cta": { + "message": "Beoordelen" + }, + "options_remove_client_data_desc": { + "message": "Google Chrome blokkeren om versie- en modificatie-informatie te verzenden naar Google domeinen" + }, + "options_remove_client_data_title": { + "message": "X-Client-Data header verwijderen" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Verwijderen" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Dit filter verwijderen?" + }, + "options_report_bug": { + "message": "Een fout rapporteren" + }, + "options_reset_settings": { + "message": "Instellingen herstellen" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Herstellen" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Alle instellingen worden teruggezet naar hun standaardwaarden" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Instellingen herstellen?" + }, + "options_reset_settings_done": { + "message": "Instellingen zijn hersteld" + }, + "options_reset_settings_error": { + "message": "Fout bij het herstellen van instellingen" + }, + "options_reset_stats": { + "message": "Statistieken wissen" + }, + "options_reset_stats_done": { + "message": "De statistieken zijn opnieuw ingesteld" + }, + "options_rule_limits": { + "message": "Regellimieten" + }, + "options_rule_limits_description": { + "message": "Chrome beperkt het aantal regels dat kan worden toegepast" + }, + "options_rule_limits_dynamic": { + "message": "Dynamische regels" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-regels — opgenomen in door de gebruiker toegevoegde regels" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Onveilige dynamische regels (gebruikt voor sommige geavanceerde modificatoren, zoals $$redirect ofwel $$cookie) — opgenomen in door de gebruiker toegevoegde regels" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Door de gebruiker toegevoegde regels, zoals \u003Cuser_rules>Gebruikersregels\u003C/user_rules>, \u003Callowlist>Websites op de toelatingslijst\u003C/allowlist>en \u003Ccustom_filters>Aangepaste filters\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Door de gebruiker toegevoegde regels, zoals \u003Cuser_rules>Gebruikersregels\u003C/user_rules> en \u003Callowlist>Websites op de toelatingslijst\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% van %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statische regels" + }, + "options_rule_limits_static_rules_all": { + "message": "Regels van \u003Ca>Ingebouwde filters\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-regels — inbegrepen in het bovenstaande" + }, + "options_rule_limits_static_rulesets": { + "message": "Statische regelsets" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Ingebouwde filters\u003C/a>, zoals Ergernissen blokkeren of Taalspecifieke filters" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Optie 3. Als je tevreden bent met de momenteel ingeschakelde standaardfilters, sluit dan \u003Ca>deze waarschuwing.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Optie 3. Als je tevreden bent met het momenteel ingeschakelde standaardfilter, sluit dan \u003Ca>deze waarschuwing.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Optie 1. Verwijder onnodige advertentieblokkerende uitbreidingen uit je browser. Om de filters die worden genoemd in het gedeelte 'Filters ingeschakeld vóór de update' opnieuw te activeren, klik je op \u003Ca>filters opnieuw activeren.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Optie 2. Installeer de AdGuard Advertentieblokker-app: deze heeft geen beperkingen op filterregels. \u003Ca>de AdGuard-app downloaden\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Je mogelijke acties" + }, + "options_rule_limits_warning_explanation_description": { + "message": "De limiet van actieve ingebouwde regels is overschreden na een update of het toevoegen van een nieuwe uitbreiding. Volgens Manifest V3 reageerde je Chrome-browser door alle ingebouwde filters van de uitbreiding uit te schakelen, behalve de standaardfilters." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Wat is er gebeurd?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Ingeschakelde filters vóór de update" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filters nu ingeschakeld" + }, + "options_rule_limits_warning_title": { + "message": "De browser heeft de lijst met actieve filters gewijzigd" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Verwijder de regellimieten en krijg uitgebreide bescherming die in alle browsers werkt" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installeer de desktop-app" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ga naar filters" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Uitbreidingen beheren" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Browseruitbreidingen delen dezelfde regellimiet. Het verwijderen van andere advertentieblokkers kan meer regels vrijmaken voor de AdGuard Browseruitbreiding" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Verwijder andere advertentieblokkers" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Schakel de filters in die je nodig hebt. Taalspecifieke en privacyfilters kunnen veel regels gebruiken" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Beschikbare filters bekijken" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Dit is wat je kunt doen" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limiet bereikt — sommige filters zijn uitgeschakeld" + }, + "options_rule_syntax": { + "message": "Regel syntaxis" + }, + "options_safebrowsing_enabled": { + "message": "Phishing- en malware-bescherming" + }, + "options_safebrowsing_enabled_desc": { + "message": "Waarschuwt voor kwaadaardige en phishingwebsites met behulp van de AdGuard Browserbeveiliging-module. \u003Ca>Meer informatie\u003C/a>" + }, + "options_select_theme": { + "message": "Thema" + }, + "options_select_update_period_12h": { + "message": "12 uren" + }, + "options_select_update_period_1h": { + "message": "1 uur" + }, + "options_select_update_period_24h": { + "message": "24 uren" + }, + "options_select_update_period_48h": { + "message": "48 uren" + }, + "options_select_update_period_6h": { + "message": "6 uren" + }, + "options_select_update_period_default": { + "message": "Standaard" + }, + "options_select_update_period_disabled": { + "message": "Uitgeschakeld" + }, + "options_send_not_track_desc": { + "message": "De \u003Cgpc>Global Privacy Control\u003C/gpc> en \u003Cdnt>Do Not Track\u003C/dnt>-signalen verzenden naar de websites die je bezoekt" + }, + "options_send_not_track_title": { + "message": "Websites vragen om mij niet te volgen" + }, + "options_set_update_interval": { + "message": "Filters automatisch bijwerken" + }, + "options_set_update_interval_desc": { + "message": "Zorgt ervoor dat de filters up-to-date blijven voor effectievere advertentieblokkering" + }, + "options_settings": { + "message": "AdGuard-instellingen" + }, + "options_share_settings": { + "message": "Instellingen delen" + }, + "options_show_adguard_full_version_title": { + "message": "Informatie weergeven over de volledige versie van AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Updates melden" + }, + "options_show_blocked_ads_count_title": { + "message": "Aantal geblokkeerde advertenties weergeven op het AdGuard uitbreidingspictogram" + }, + "options_show_context_menu_title": { + "message": "AdGuard item toevoegen aan het contextmenu van de webbrowser" + }, + "options_site": { + "message": "Officiële website" + }, + "options_skip_to_main_content": { + "message": "Overslaan en naar hoofdinhoud gaan" + }, + "options_stealth_general_title": { + "message": "Algemeen" + }, + "options_stealth_miscellaneous_title": { + "message": "Diversen" + }, + "options_stealth_tracking_methods_title": { + "message": "Volgmethoden" + }, + "options_strip_tracking_params_description": { + "message": "Verwijdert parameters voor volgen uit pagina-URL's met behulp van AdGuard URL Tracking filter" + }, + "options_strip_tracking_params_title": { + "message": "Parameters voor volgen uit URL's verwijderen" + }, + "options_stripped_tracking_parameters": { + "message": "Parameters voor volgen verwijderd" + }, + "options_theme_selector_dark": { + "message": "Donker" + }, + "options_theme_selector_light": { + "message": "Licht" + }, + "options_theme_selector_system": { + "message": "Systeem standaard" + }, + "options_third_party_block_cookies_warning": { + "message": "Als je deze cookies blokkeert, moet je je mogelijk opnieuw aanmelden op sommige websites of krijg je te maken met andere cookie-gerelateerde problemen" + }, + "options_third_party_desc": { + "message": "Voorkomt dat adverteerders jouw gedrag op meerdere pagina's kunnen volgen door de levensduur van cookies van derden te beperken" + }, + "options_third_party_title": { + "message": "Cookies van derden verwijderen" + }, + "options_update_antibanner_filters": { + "message": "Controleren op filter-updates" + }, + "options_use_optimized_filters": { + "message": "Geoptimaliseerde filters gebruiken" + }, + "options_use_optimized_filters_desc": { + "message": "Gebruikt kortere versies van filters met alleen de meest populaire regels om verkeer te besparen. Beter geschikt voor mobiele browsers" + }, + "options_user_rules_clear_search": { + "message": "Zoekopdracht wissen" + }, + "options_user_rules_create_rule": { + "message": "Regel aanmaken" + }, + "options_user_rules_delete_all": { + "message": "Alles verwijderen" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Alle gebruikersregels worden permanent verwijderd" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Alles verwijderen?" + }, + "options_user_rules_delete_all_success": { + "message": "Alle gebruikersregels verwijderd" + }, + "options_user_rules_delete_rule": { + "message": "Regel verwijderen" + }, + "options_user_rules_deleted_notification": { + "message": "Gebruikersregel verwijderd:" + }, + "options_user_rules_description_key": { + "message": "Jouw regels voor het blokkeren en deblokkeren van advertenties of volledige websites" + }, + "options_user_rules_edit_rule": { + "message": "Regel bewerken" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Ga naar editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Je regels verschijnen hier nadat je ze hebt gesloten" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor geopend in een ander venster" + }, + "options_user_rules_empty_placeholder": { + "message": "Nog geen regels" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Regels markeren…" + }, + "options_user_rules_import_error": { + "message": "Importeren van gebruikersregels mislukt. Probeer het opnieuw" + }, + "options_user_rules_import_success": { + "message": "Gebruikersregels succesvol geïmporteerd" + }, + "options_user_rules_menu": { + "message": "Gebruikersregels acties" + }, + "options_user_rules_no_match": { + "message": "Niets gevonden" + }, + "options_user_rules_search_placeholder": { + "message": "Zoeken" + }, + "options_user_rules_switch_to_editor": { + "message": "Overschakelen naar bewerkingsweergave" + }, + "options_user_rules_switch_to_list": { + "message": "Overschakelen naar lijstweergave" + }, + "options_user_rules_undo": { + "message": "Ongedaan maken" + }, + "options_userfilter": { + "message": "Gebruikersregels" + }, + "options_userfilter_description_key": { + "message": "Je kan je eigen regels hier toevoegen. Deze optie is aangeraden voor ervaren gebruikers die vertrouwd zijn met HTML/CSS. Lees de \u003Ca>filterregels handleiding\u003C/a> om meer te weten te komen over het aanmaken van je eigen filterregels." + }, + "options_userfilter_export": { + "message": "Exporteren" + }, + "options_userfilter_import": { + "message": "Importeren" + }, + "options_userfilter_leave_subtitle": { + "message": "Je wijzigingen in de regels zullen verloren gaan" + }, + "options_userfilter_line_break": { + "message": "Regeleinde" + }, + "options_userfilter_line_break_off": { + "message": "Regeleinde: uitgeschakeld" + }, + "options_userfilter_line_break_on": { + "message": "Regeleinde: ingeschakeld" + }, + "options_userfilter_subtitle_key": { + "message": "Stelt je in staat om je eigen filterregels toe te voegen" + }, + "popup_abuse_site": { + "message": "Een probleem rapporteren" + }, + "popup_adguard_footer_title": { + "message": "Jouw mobiele apparaat beschermen" + }, + "popup_adguard_for_android": { + "message": "AdGuard voor Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard voor iOS" + }, + "popup_block_site_ads_option": { + "message": "Advertenties handmatig blokkeren" + }, + "popup_get_system_wide_protection": { + "message": "Bescherming voor het hele systeem krijgen" + }, + "popup_header_cta_link": { + "message": "Hoe de bescherming te verbeteren" + }, + "popup_header_update_filters": { + "message": "Controleren op filterupdates" + }, + "popup_limits_exceeded_warning": { + "message": "Je browser heeft de lijst met actieve ingebouwde filters gewijzigd" + }, + "popup_open_filtering_log": { + "message": "Filterlogboek openen" + }, + "popup_open_settings": { + "message": "AdGuard-instellingen openen" + }, + "popup_protection_button": { + "message": "AdGuard-bescherming" + }, + "popup_reset_page_user_rules": { + "message": "Gebruikersregels voor deze website verwijderen" + }, + "popup_resume_protection_button": { + "message": "Hervatten" + }, + "popup_security_report": { + "message": "Beveiliging van website controleren" + }, + "popup_site_exception_information": { + "message": "Het filteren is uitgeschakeld omdat het de werking van deze website kan verstoren." + }, + "popup_site_filtering_state_disabled": { + "message": "Bescherming is uitgeschakeld" + }, + "popup_site_filtering_state_disabling": { + "message": "Bescherming uitschakelen..." + }, + "popup_site_filtering_state_enabled": { + "message": "Bescherming is ingeschakeld" + }, + "popup_site_filtering_state_enabling": { + "message": "Bescherming inschakelen..." + }, + "popup_site_filtering_state_loading": { + "message": "Laden..." + }, + "popup_site_filtering_state_paused": { + "message": "Bescherming is gepauzeerd" + }, + "popup_site_filtering_state_pausing": { + "message": "Bescherming pauzeren..." + }, + "popup_site_filtering_state_resuming": { + "message": "Bescherming hervatten..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Beveiligde pagina" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "voor alle websites" + }, + "popup_statistics_all_categories": { + "message": "Alle" + }, + "popup_statistics_category_advertising": { + "message": "Advertenties" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistiekencategorie" + }, + "popup_statistics_category_other": { + "message": "Overige" + }, + "popup_statistics_category_social_media": { + "message": "Sociale media" + }, + "popup_statistics_category_trackers": { + "message": "Volgers" + }, + "popup_statistics_months_apr": { + "message": "April" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Juli" + }, + "popup_statistics_months_jun": { + "message": "Juni" + }, + "popup_statistics_months_mar": { + "message": "Maart" + }, + "popup_statistics_months_may": { + "message": "Mei" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 uren" + }, + "popup_statistics_time_label": { + "message": "Statistieken tijdsperiode" + }, + "popup_statistics_time_month": { + "message": "30 dagen" + }, + "popup_statistics_time_week": { + "message": "7 dagen" + }, + "popup_statistics_time_year": { + "message": "1 jaar" + }, + "popup_statistics_total": { + "message": "Totaal" + }, + "popup_statistics_week_days_fri": { + "message": "Vrij" + }, + "popup_statistics_week_days_mon": { + "message": "Maan" + }, + "popup_statistics_week_days_sat": { + "message": "Zater" + }, + "popup_statistics_week_days_sun": { + "message": "Zon" + }, + "popup_statistics_week_days_thu": { + "message": "Donder" + }, + "popup_statistics_week_days_tue": { + "message": "Dins" + }, + "popup_statistics_week_days_wed": { + "message": "Woens" + }, + "popup_switch_button": { + "message": "Bescherming voor huidige website" + }, + "popup_tab_actions": { + "message": "Acties" + }, + "popup_tab_blocked_all_count": { + "message": "Totaal geblokkeerd: %num%" + }, + "popup_tab_blocked_count": { + "message": "Geblokkeerd: %num%" + }, + "popup_tab_current_website": { + "message": "Huidige website" + }, + "popup_tab_statistics": { + "message": "Statistieken" + }, + "popup_tabs": { + "message": "Tabbladen" + }, + "popup_tooltip_loading": { + "message": "Laden..." + }, + "popup_tooltip_protection_disabled": { + "message": "Bescherming uitgeschakeld" + }, + "popup_tooltip_protection_enabled": { + "message": "Bescherming ingeschakeld" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Sommige regels niet toegepast" + }, + "popup_tooltip_update_available": { + "message": "Update beschikbaar" + }, + "post_install_loading": { + "message": "Uitbreiding laden..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Regellimiet overschreden in AdGuard-browseruitbreiding. Controleer je filters en schakel de filters uit die je niet nodig hebt" + }, + "text_collapser_hide_default": { + "message": "Volledige tekst verbergen" + }, + "text_collapser_show_default": { + "message": "Volledige tekst weergeven" + }, + "update_available_desc": { + "message": "Om advertenties effectief te blokkeren, houd je uitbreiding en filters up-to-date" + }, + "update_available_title": { + "message": "Updates beschikbaar" + }, + "update_available_update_btn": { + "message": "Bijwerken" + }, + "update_check": { + "message": "Controleren op updates" + }, + "update_checking_in_progress": { + "message": "Controleren op updates..." + }, + "update_failed_text": { + "message": "Voltooien van het bijwerken is mislukt" + }, + "update_failed_try_again_btn": { + "message": "Opnieuw proberen" + }, + "update_installing_in_progress_desc": { + "message": "De uitbreiding wordt na het bijwerken opnieuw gestart" + }, + "update_installing_in_progress_title": { + "message": "Uitbreiding en filters bijwerken..." + }, + "update_not_needed": { + "message": "Je uitbreiding en filters zijn up-to-date" + }, + "update_success_text": { + "message": "Uitbreiding en filters bijgewerkt" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pl/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pl/messages.json new file mode 100644 index 0000000..e4e64c7 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pl/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% został aktywowany automatycznie." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatyczna aktywacja filtrów" + }, + "background_tab_title": { + "message": "Zakładka w tle" + }, + "blocking_pages_advanced_button": { + "message": "Zaawansowane" + }, + "blocking_pages_btn_go_back": { + "message": "Wróć" + }, + "blocking_pages_btn_proceed": { + "message": "Kontynuuj mimo to" + }, + "blocking_pages_malware": { + "message": "Ta strona internetowa pod adresem \u003Cstrong>%host%\u003C/strong> została zgłoszona jako strona zawierająca złośliwe oprogramowanie i została zablokowana zgodnie z Twoimi preferencjami bezpieczeństwa." + }, + "blocking_pages_more_info_button": { + "message": "Więcej informacji" + }, + "blocking_pages_page_title": { + "message": "Odmowa dostępu" + }, + "blocking_pages_phishing": { + "message": "Ta strona internetowa pod adresem \u003Cstrong>%host%\u003C/strong> została zgłoszona jako strona phishingowa i została zablokowana zgodnie z Twoimi preferencjami bezpieczeństwa." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard uniemożliwił załadowanie tej strony z powodu następującej reguły filtrowania" + }, + "blocking_pages_rule_header_title": { + "message": "Zablokowana przez AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard zablokował dostęp do tej strony" + }, + "clear_button_title": { + "message": "Wyczyść" + }, + "close_button_title": { + "message": "Zamknij" + }, + "context_block_site_ads": { + "message": "Ręcznie zablokuj reklamę" + }, + "context_complaint_website": { + "message": "Zgłoś problem" + }, + "context_disable_protection": { + "message": "Wstrzymaj ochronę AdGuard" + }, + "context_enable_protection": { + "message": "Wznów ochronę AdGuard" + }, + "context_open_log": { + "message": "Dziennik filtrowania" + }, + "context_open_settings": { + "message": "Ustawienia AdGuard" + }, + "context_security_report": { + "message": "Sprawdź bezpieczeństwo witryny" + }, + "context_site_exception": { + "message": "Ta strona jest na liście wyjątków" + }, + "context_site_filtering_disabled": { + "message": "AdGuard nie może przefiltrować tej strony" + }, + "context_site_filtering_off": { + "message": "Wyłącz filtrowanie na tej stronie" + }, + "context_site_filtering_on": { + "message": "Włącz filtrowanie na tej stronie" + }, + "context_site_protection_disabled": { + "message": "Ochrona AdGuard jest wstrzymana" + }, + "context_update_antibanner_filters": { + "message": "Sprawdź, czy są aktualizacje filtrów" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Rozszerzenie blokujące reklamy i wyskakujące okienka. Blokuje reklamy na Facebooku, YouTube i innych stronach internetowych." + }, + "filtering_clear_log_events": { + "message": "Wyczyść dziennik" + }, + "filtering_log_actions_menu": { + "message": "Działania logu filtrowania" + }, + "filtering_log_assumed_rule_description": { + "message": "Jest to domniemana reguła. Szczegóły znajdziesz w naszej \u003Ca>Bazie wiedzy\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metoda żądania HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Kod statusu HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Żądanie stron trzecich" + }, + "filtering_log_details_modal_back_button": { + "message": "Powrót do żądania" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Upiększ" + }, + "filtering_log_details_modal_try_again": { + "message": "Spróbuj ponownie" + }, + "filtering_log_filter_allowed": { + "message": "Dozwolone" + }, + "filtering_log_filter_blocked": { + "message": "Zablokowany" + }, + "filtering_log_filter_modified": { + "message": "Zmodyfikowany" + }, + "filtering_log_filter_regular": { + "message": "Regularny" + }, + "filtering_log_filter_user_rules": { + "message": "Reguły użytkownika" + }, + "filtering_log_hide_referrer": { + "message": "Referer ukryty przed firmami trzecimi" + }, + "filtering_log_hide_search_queries": { + "message": "Twoje żądania wyszukiwania są ukryte" + }, + "filtering_log_in_allowlist": { + "message": "Strona jest dozwolona" + }, + "filtering_log_modified_rules": { + "message": "Zmodyfikowane reguły: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Tak, zachowaj" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ta opcja może znacznie zwiększyć zużycie pamięci" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Zachować log?" + }, + "filtering_log_preserve_log_off": { + "message": "Nie zachowuj logów" + }, + "filtering_log_preserve_log_on": { + "message": "Zachowaj logi" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Nie pokazuj ponownie" + }, + "filtering_log_privacy_applied_rules": { + "message": "Zastosowano ochronę przed śledzeniem" + }, + "filtering_log_remove_client_data": { + "message": "Usunięto nagłówek X-Client-Data" + }, + "filtering_log_search_string": { + "message": "Wyszukaj" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Szukaj w zakładkach" + }, + "filtering_log_send_not_track": { + "message": "Wysyłaj nagłówek Do-Not-Track" + }, + "filtering_log_status_allowed": { + "message": "Dozwolone" + }, + "filtering_log_status_blocked": { + "message": "Zablokowane" + }, + "filtering_log_status_modified": { + "message": "Zmodyfikowane" + }, + "filtering_log_status_processed": { + "message": "Przetworzone" + }, + "filtering_log_stealth_rules": { + "message": "Reguły ochrony przed śledzeniem: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Źródło żądania" + }, + "filtering_log_tag_request_status": { + "message": "Stan filtrowania" + }, + "filtering_log_tag_request_type": { + "message": "Typ żądania" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Dozwolone i odblokowane żądania" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Zablokowane żądania" + }, + "filtering_log_tag_tooltip_css": { + "message": "Arkusze stylów" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Żądania stron pierwszych" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenty i poddokumenty" + }, + "filtering_log_tag_tooltip_img": { + "message": "Obrazy" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skrypty" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Zmodyfikowane żądania" + }, + "filtering_log_tag_tooltip_other": { + "message": "Czcionki, pingi, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Żądania przetwarzane bez filtrowania" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Żądania stron trzecich" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Żądania zmienione przez reguły użytkownika" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Żądania XMLHttpRequests i żądania pobierania" + }, + "filtering_log_title": { + "message": "Raport filtrowania" + }, + "filtering_menu_open_filters": { + "message": "Dostosuj" + }, + "filtering_modal_add_rule": { + "message": "Dodaj" + }, + "filtering_modal_allow_title": { + "message": "Dodaj regułę zezwalającą" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Zastosowana reguła | Zastosowane reguły | Zastosowanych reguł" + }, + "filtering_modal_apply_domains": { + "message": "Dotyczy wszystkich stron internetowych" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Domniemana reguła: | Domniemane reguły: | Domniemanych reguł:" + }, + "filtering_modal_block": { + "message": "Blokuj" + }, + "filtering_modal_block_again": { + "message": "Zablokuj ponownie" + }, + "filtering_modal_block_title": { + "message": "Dodaj regułę blokującą" + }, + "filtering_modal_converted_to": { + "message": "Zamienione na:" + }, + "filtering_modal_cookie": { + "message": "Ciasteczka:" + }, + "filtering_modal_copied": { + "message": "Skopiowano" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiuj do schowka" + }, + "filtering_modal_declarative_rule": { + "message": "Reguła DNR:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Dodaj wyjątek" + }, + "filtering_modal_filter": { + "message": "Filtr" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Stan filtrowania" + }, + "filtering_modal_hide_full_element": { + "message": "Ukryj pełny element" + }, + "filtering_modal_hide_full_rule": { + "message": "Ukryj pełną regułę" + }, + "filtering_modal_hide_full_url": { + "message": "Ukryj pełny adres URL" + }, + "filtering_modal_important": { + "message": "Nadaj regule wyższy priorytet" + }, + "filtering_modal_info_title": { + "message": "Szczegóły żądania" + }, + "filtering_modal_open_in_new_tab": { + "message": "Otwórz w nowej karcie" + }, + "filtering_modal_options_desc": { + "message": "Opcje" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Oryginalna reguła: | Oryginalne reguły: | Oryginalnych reguł:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Co powinno być dozwolone" + }, + "filtering_modal_patterns_desc_block": { + "message": "Co powinno być blokowane" + }, + "filtering_modal_preview_request_button": { + "message": "Podgląd" + }, + "filtering_modal_preview_title": { + "message": "Podgląd" + }, + "filtering_modal_privacy": { + "message": "Ochrona przed śledzeniem" + }, + "filtering_modal_remove_allowlist": { + "message": "Usuń z listy dozwolonych" + }, + "filtering_modal_remove_param": { + "message": "Usuń parametry zapytań" + }, + "filtering_modal_remove_user": { + "message": "Usuń regułę" + }, + "filtering_modal_rule": { + "message": "Reguła:" + }, + "filtering_modal_rule_text_desc": { + "message": "Reguła" + }, + "filtering_modal_rules": { + "message": "Reguły:" + }, + "filtering_modal_show_full_element": { + "message": "Pokaż pełny element" + }, + "filtering_modal_show_full_rule": { + "message": "Pokaż pełną regułę" + }, + "filtering_modal_show_full_url": { + "message": "Pokaż pełny adres URL" + }, + "filtering_modal_source": { + "message": "Źródło" + }, + "filtering_modal_status_text_desc": { + "message": "Stan" + }, + "filtering_modal_status_text_error": { + "message": "Nie udało się załadować podglądu. Spróbuj ponownie" + }, + "filtering_modal_status_text_loading": { + "message": "Ładowanie..." + }, + "filtering_modal_third_party": { + "message": "Zastosuj tylko dla żądań firm trzecich" + }, + "filtering_modal_type": { + "message": "Typ" + }, + "filtering_modal_unblock": { + "message": "Odblokuj" + }, + "filtering_refresh_tab_short": { + "message": "Odśwież" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Odśwież stronę" + }, + "filtering_table_action": { + "message": "Działanie" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nic nie znaleziono. \u003Creset>resetuj filtry\u003C/reset> lub \u003Crefresh>odśwież stronę\u003C/refresh>, aby pogląd nagrywać logi" + }, + "filtering_table_filter": { + "message": "Filtr" + }, + "filtering_table_open_details": { + "message": "Zobacz szczegóły" + }, + "filtering_table_rule": { + "message": "Reguła filtrowania" + }, + "filtering_table_source": { + "message": "Źródło" + }, + "filtering_table_status": { + "message": "Stan" + }, + "filtering_table_type": { + "message": "Typ" + }, + "filtering_type_all": { + "message": "Wszystko" + }, + "filtering_type_other": { + "message": "Inne" + }, + "filters_download_loading": { + "message": "Proszę czekać, trwa ładowanie bazy danych filtrów..." + }, + "filters_download_title": { + "message": "Trwa ładowanie bazy danych filtrów..." + }, + "fullscreen_user_rules_title": { + "message": "Reguły użytkownika" + }, + "group_description_adblocking": { + "message": "Skonfiguruj tutaj blokowanie reklam, aby raz na zawsze rozprawić się z irytującymi banerami, wyskakującymi okienkami, reklamami wideo itp." + }, + "group_description_annoyances": { + "message": "Usuń wyskakujące okienka i inne irytujące powiadomienia, takie jak pliki cookie" + }, + "group_description_custom": { + "message": "Twórz własne filtry, aby dostosować filtrowanie stron internetowych do swoich preferencji." + }, + "group_description_lang": { + "message": "Nie ograniczaj się — blokuj reklamy w witrynach w dowolnym języku" + }, + "group_description_miscellaneous": { + "message": "Więcej ustawień, aby jeszcze lepiej skonfigurować surfowanie po Internecie z AdGuard" + }, + "group_description_security": { + "message": "Chroń się przed złośliwym oprogramowaniem, phishingiem i innymi zagrożeniami w sieci" + }, + "group_description_social": { + "message": "Ukryj niechciane przyciski „Lubię to”/„Udostępnij” i inne widżety" + }, + "group_description_stealth": { + "message": "Chroń swoją tożsamość i wrażliwe dane osobowe przed tysiącami trackerów online, blokując najpopularniejsze metody śledzenia" + }, + "name": { + "message": "Bloker reklam AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "Nie pokazuj więcej" + }, + "opera_search_permission_go_to_settings": { + "message": "Przejdź do Ustawień" + }, + "opera_search_permission_warning": { + "message": "Aby blokować reklamy w wynikach wyszukiwania, pozwól na dostęp do wyników strony wyszukiwania w ustawienia przeglądarki" + }, + "options_about": { + "message": "O rozszerzeniu" + }, + "options_about_libs": { + "message": "Użyte biblioteki" + }, + "options_about_title": { + "message": "Rozszerzenie przeglądarki AdGuard" + }, + "options_about_update_available": { + "message": "Wersja %version% jest dostępna. Zostanie pobrana i zainstalowana automatycznie." + }, + "options_about_version": { + "message": "Wersja" + }, + "options_acknowledgment": { + "message": "Podziękowania" + }, + "options_add_custom_filter": { + "message": "Dodaj niestandardowy filtr" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Dodaj" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Sprawdzanie filtra..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL zwrócił stronę internetową zamiast listy filtrów. Podaj bezpośredni link do pliku filtra." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Spróbuj ponownie lub skontaktuj się z pomocą techniczną" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nie udało się dodać niestandardowego filtru" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nazwa filtra:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Zaufany" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Zaufane filtry mogą używać potężnych modyfikatorów reguł — upewnij się, że używasz filtra od zaufanych twórców" + }, + "options_add_custom_filter_modal_title": { + "message": "Dodaj niestandardowy filtr" + }, + "options_all_limits_exceeded_warning": { + "message": "Osiągnięto limit aktywnych wbudowanych reguł. Przeglądarka zmodyfikowała listę aktywnych wbudowanych filtrów. Zmieniono aktywne filtry z %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Osiągnąłeś limit aktywnych wbudowanych reguł przeglądarki. Twoja przeglądarka zmniejszyła listę aktywnych wbudowanych filtrów z %expected% do %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Przeglądarka ogranicza \u003Cexternal-link>niektóre typy reguł\u003C/external-link>. Aby zastosować wszystkie reguły, włącz opcję \u003Cb>Zezwalaj na skrypty użytkownika\u003C/b> w \u003Csettings-link>ustawieniach rozszerzeń\u003C/settings-link> przeglądarki" + }, + "options_allowlist": { + "message": "Lista dozwolonych" + }, + "options_allowlist_alert_invert": { + "message": "Lista dozwolonych jest odwrócona. Reklamy są Zablokowane tylko na stronach internetowych dodanych do niej." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Zatrzymaj odwracanie\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard nie blokuje reklamy i trackery na stronach internetowych z listy" + }, + "options_allowlist_invalid_entries": { + "message": "Aby zapisać, pozostaw tylko domeny lub URL. Te wymagają poprawy: %entries%" + }, + "options_allowlist_invert": { + "message": "Odwróć listę dozwolonych" + }, + "options_allowlist_invert_desc": { + "message": "Blokuje reklamy i trackery tylko na dozwolonych stronach" + }, + "options_allowlist_leave_subtitle": { + "message": "Wprowadzone zmiany w liście dozwolonych zostaną utracone" + }, + "options_allowlist_menu": { + "message": "Działania listy dozwolonych" + }, + "options_anonymized_usage_data_description": { + "message": "Wysyła anonimowe statystyki dotyczące korzystania z rozszerzeń do AdGuard. \u003Cbutton>Dowiedz się więcej\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Rozumiem" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Dane te obejmują:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nazwy przycisków, które klikasz" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nazwy ekranów, z którymi wchodzisz w interakcję" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identyfikatory sesji" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Dane te są anonimowe i wykorzystywane wyłącznie wewnętrznie. Nigdy nie udostępniamy ich firmom trzecim" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Potrzebujemy tych informacji, aby analizować i ulepszać funkcjonalność AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dane o użyciu rozszerzenia" + }, + "options_anonymized_usage_data_title": { + "message": "Wysyłanie zanonimizowane dane o użyciu rozszerzenia" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Filtr niestandardowy filtr został już dodany" + }, + "options_antibanner_custom_group": { + "message": "Niestandardowy" + }, + "options_antibanner_custom_group_description": { + "message": "Pozwala dodać filtry z pliku lub URL" + }, + "options_antibanner_rules_count": { + "message": "Reguły: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Zaktualizowano: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokuj reklamy w wyszukiwarce i autopromocję stron" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokuje reklamy w wynikach wyszukiwania i autopromocję stron. \u003Ca>Dowiedz się więcej\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Aby blokować pliki cookie, ustaw czas życia na 0" + }, + "options_block_known_trackers_description": { + "message": "Blokuje moduły śledzące i analitykę internetową za pomocą filtra AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Blokuj moduły śledzące" + }, + "options_check_update_progress": { + "message": "Sprawdzanie..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Wyczyść" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Wszystkie statystyki dotyczące użycia dane zostaną trwale usunięte" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Wyczyść statystyki?" + }, + "options_clipboard_permission_warning": { + "message": "Aby kopiować i wklejać reguły, pozwól AdGuard uzyskać dostęp do schowka. \u003Ca>Pozwól\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Wysyła anonimowe statystyki użycia filtrów reklam do AdGuard. \u003Ca>Dowiedz się więcej\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomóż rozwijać filtry AdGuard" + }, + "options_coming_soon": { + "message": "Wkrótce" + }, + "options_confirm_modal_cancel_button": { + "message": "Anuluj" + }, + "options_copyright": { + "message": "Wszelkie prawa zastrzeżone." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Aby używać niestandardowych filtrów, włącz opcję \u003Cb>Zezwalaj na skrypty użytkownika\u003C/b> w ustawieniach rozszerzenia \u003Csettings-link>przeglądarki\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Aby korzystać z niestandardowych filtrów, włącz \u003Cb>tryb programisty\u003C/b> w \u003Csettings-link>ustawieniach rozszerzeń\u003C/settings-link> przeglądarki" + }, + "options_desktop_app_promo_button_linux": { + "message": "Pobierz AdGuard dla Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Pobierz AdGuard dla Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Pobierz AdGuard dla Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikacje takie jak Spotify, Discord lub Zoom mogą nadal pokaż reklamy i śledzić twoją aktywność" + }, + "options_desktop_app_promo_subdescription": { + "message": "Nasza aplikacja desktop może cię chronić przed nimi" + }, + "options_desktop_app_promo_title": { + "message": "Rozszerzenie chroni tylko przeglądarkę" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Przeglądarka ogranicza \u003Cexternal-link>niektóre typy reguł\u003C/external-link>. Aby zastosować wszystkie reguły, włącz \u003Cb>tryb programisty\u003C/b> w \u003Csettings-link>ustawieniach rozszerzeń\u003C/settings-link> przeglądarki" + }, + "options_disable_webrtc_desc": { + "message": "Blokuje WebRTC, które może wyciekać Twój prawdziwy adres IP nawet jeśli używasz proxy lub VPN. Niektóre komunikatory, platformy streamingowe lub gry mogą przestać działać poprawnie" + }, + "options_disable_webrtc_title": { + "message": "Blokuj WebRTC" + }, + "options_discuss": { + "message": "Dyskusja AdGuard" + }, + "options_do_you_like_question": { + "message": "Lubisz AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Wyjście z trybu okna" + }, + "options_editor_indicator_saved": { + "message": "Zapisano" + }, + "options_editor_indicator_saving": { + "message": "Zapisuję..." + }, + "options_editor_leave_cancel": { + "message": "Wróć do edycji" + }, + "options_editor_leave_confirm": { + "message": "Tak, opuść" + }, + "options_editor_leave_title": { + "message": "Opuścić bez zapisywania?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Otwórz Edytor w nowym oknie" + }, + "options_editor_save": { + "message": "Zapisz" + }, + "options_editor_save_error": { + "message": "Nie udało się zapisać zmian. Spróbuj ponownie lub skontaktuj się z pomocą techniczną" + }, + "options_empty_custom_filter": { + "message": "Nie masz jeszcze żadnych niestandardowych filtrów" + }, + "options_enable_autodetect_filter": { + "message": "Automatycznie aktywuj najbardziej odpowiednie filtry" + }, + "options_enable_autodetect_filter_desc": { + "message": "Wykrywa język strony i aktywuje odpowiednie filtry" + }, + "options_export_settings": { + "message": "Eksportowanie ustawień" + }, + "options_filters": { + "message": "Filtry" + }, + "options_filters_annoyances_consent_description": { + "message": "Zamierzasz aktywować jeden lub więcej filtrów elementów irytujących. Blokują one elementy, które są niezwiązane z treścią strony internetowej lub powiązane, ale denerwujące dla Twojego doświadczenia użytkownika. Właściciele stron internetowych mogą uznać te elementy za obowiązkowe: jeśli je zablokujesz, możesz naruszyć ich warunki; niektóre funkcjonalności stron internetowych mogą być niedostępne lub nie działać prawidłowo. Rozumiesz i zgadzasz się, że ponosisz wyłączną odpowiedzialność za zgodność z warunkami korzystania z odwiedzanych stron internetowych i że AdGuard nie ponosi odpowiedzialności za Twoje przestrzeganie warunków korzystania z tych stron internetowych przy użyciu naszych produktów." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Włącz" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Strona internetowa" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Aby uzyskać szczegółowe informacje na temat tego, co blokują filtry elementów irytujących AdGuard, zobacz \u003Ca>Polityka filtrów\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Włączyć filtry?" + }, + "options_filters_annoyances_consent_title": { + "message": "Przeczytaj uważnie przed włączeniem filtrów elementów irytujących" + }, + "options_filters_back_button": { + "message": "Wróć" + }, + "options_filters_empty_title": { + "message": "Nic nie znaleziono" + }, + "options_filters_enabled": { + "message": "Włączony:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% i %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% i %more% więcej" + }, + "options_filters_enabled_per_group": { + "message": "Włączone: %current% of %total%" + }, + "options_filters_filter_link": { + "message": "Wróć do strony głównej" + }, + "options_filters_filter_tags": { + "message": "Tagi filtrów" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Zdecydowano się zaufać temu filtrowi." + }, + "options_filters_filter_updated": { + "message": "zaktualizowano:" + }, + "options_filters_filter_version": { + "message": "wersja:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Łącznie reguł: %num%" + }, + "options_filters_last_checked": { + "message": "Ostatnie sprawdzenie: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Wszystkie filtry" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Wyłączone" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Włączone" + }, + "options_filters_no_enabled": { + "message": "Brak włączonych filtrów" + }, + "options_filters_of_group": { + "message": "Filtry grupy \"%groupName%\"" + }, + "options_filters_search": { + "message": "Wyszukaj" + }, + "options_filters_search_filter": { + "message": "Wyszukaj filtr" + }, + "options_first_party_block_cookies_warning": { + "message": "Jeśli zablokujesz te ciasteczka, niektóre strony internetowe mogą się zepsuć lub przestać działać." + }, + "options_first_party_desc": { + "message": "Zapobiega stronom internetowym w poznaniu Twoich danych logowania lub preferowanego języka poprzez ograniczenie czasu życia plików cookie własnych" + }, + "options_first_party_title": { + "message": "Usuń ciasteczka pierwszych stron (niezalecane)" + }, + "options_general_settings": { + "message": "Ustawienia podstawowe" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Uniemożliwia firmom trzecim uzyskanie informacji o odwiedzanej stronie" + }, + "options_hide_referrer_title": { + "message": "Ukryj Referer przed osobami trzecimi" + }, + "options_hide_search_queries_desc": { + "message": "Ukrywa Twoje wyszukiwania przed stronami internetowymi odwiedzanymi poprzez wyniki wyszukiwania" + }, + "options_hide_search_queries_title": { + "message": "Ukrywanie wyszukiwanych haseł" + }, + "options_import_configuration_applying_subtitle": { + "message": "Zastąpienie bieżących ustawień zaimportowanymi. Podczas importu filtrowanie jest wyłączone" + }, + "options_import_configuration_applying_title": { + "message": "Importowanie..." + }, + "options_import_configuration_confirm_button": { + "message": "Importuj" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Zaimportowane ustawienia zastąpią Twoje bieżące. Inne ustawienia nie zostaną naruszone" + }, + "options_import_configuration_confirm_title": { + "message": "Importowanie ustawień" + }, + "options_import_configuration_error_button": { + "message": "Zamknij" + }, + "options_import_configuration_error_subtitle": { + "message": "Sprawdź link importu i spróbuj ponownie. Jeśli to nie pomoże, skontaktuj się ze wsparciem" + }, + "options_import_configuration_error_title": { + "message": "Nie udało się zaimportować ustawień" + }, + "options_import_configuration_success_button": { + "message": "Zamknij" + }, + "options_import_configuration_success_subtitle": { + "message": "Ustawienia zostały pomyślnie zaimportowane" + }, + "options_import_configuration_success_title": { + "message": "Wszystko gotowe" + }, + "options_import_settings": { + "message": "Importowanie ustawień" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Odwróć" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklamy i trackery będą tylko Zablokowane na stronach internetowych z allowlisty" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Odwróć listę dozwolonych?" + }, + "options_leave_feedback": { + "message": "Zostaw opinię" + }, + "options_lifetime_minutes": { + "message": "Czas życia, minuty" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Osiągnięto limit reguł wyrażeń regularnych dodanych przez użytkownika. Włączonych jest %maximum% z %current% reguł wyrażeń regularnych." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Osiągnąłeś limit reguł regex dodanych przez użytkownika. %maximum% z %current% reguł jest włączonych. Aby dodać nowe reguły regex, usuń niektóre istniejące" + }, + "options_limits_warning_dynamic_rules": { + "message": "Osiągnięto limit reguł dodanych przez użytkownika. Włączonych jest %maximum% z %current% reguł." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Osiągnąłeś limit reguł dodanych przez użytkownika. %maximum% z %current% reguł jest włączonych. Aby dodać nowe reguły, usuń niektóre istniejące" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Osiągnięto limit niebezpiecznych reguł dodanych przez użytkownika. Włączono %maximum% z %current% niebezpiecznych reguł." + }, + "options_limits_warning_static_filters": { + "message": "Osiągnięto limit aktywnych wbudowanych filtrów. Włączonych jest %maximum% z %current% filtrów. Wyłącz kilka wbudowanych filtrów, aby aktywować nowe reguły." + }, + "options_limits_warning_static_filters_browser": { + "message": "Osiągnąłeś limit aktywnych wbudowanych filtrów przeglądarki. %maximum% z %current% filtrów jest włączonych. Aby aktywować nowe filtry, wyłącz niektóre wbudowane" + }, + "options_limits_warning_static_regex_rules": { + "message": "Osiągnięto limit aktywnych wbudowanych reguł wyrażeń regularnych. Włączonych jest %maximum% z %current% reguł wyrażeń regularnych. Wyłącz kilka wbudowanych filtrów, aby aktywować nowe reguły." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Osiągnięto limit aktywnych wbudowanych reguł regex. Aby aktywować nowe reguły, wyłącz niektóre wbudowane filtry" + }, + "options_limits_warning_static_rules": { + "message": "Osiągnięto limit aktywnych wbudowanych reguł. Włączonych jest %maximum% z %current% reguł. Wyłącz kilka wbudowanych filtrów, aby aktywować nowe reguły." + }, + "options_limits_warning_static_rules_browser": { + "message": "Osiągnąłeś limit aktywnych wbudowanych reguł przeglądarki. Aby aktywować nowe reguły, wyłącz niektóre wbudowane filtry" + }, + "options_loader_applying_changes": { + "message": "Stosowanie zmian..." + }, + "options_miscellaneous_settings": { + "message": "Dodatkowe ustawienia" + }, + "options_modified_first_party_cookie": { + "message": "Zmodyfikowany własny plik cookie" + }, + "options_modified_third_party_cookie": { + "message": "Zmodyfikowany plik cookie firm trzecich" + }, + "options_nav_better_than_extension": { + "message": "Dlaczego aplikacja AdGuard jest lepsza niż rozszerzenie?" + }, + "options_nav_compare": { + "message": "Porównaj" + }, + "options_navigation": { + "message": "Nawigacja" + }, + "options_open_changelog": { + "message": "Historia zmian" + }, + "options_open_log": { + "message": "Otwórz dziennik filtrowania" + }, + "options_popup_call_to_action": { + "message": "Wprowadź poprawny adres URL lub ścieżkę do pliku filtra w powyższym polu." + }, + "options_popup_check_false_description": { + "message": "Błąd podczas dodawania niestandardowego filtra." + }, + "options_popup_check_false_title": { + "message": "Błąd" + }, + "options_popup_checking_filter": { + "message": "Sprawdzanie filtra" + }, + "options_popup_description": { + "message": "Zasubskrybujesz ten filtr." + }, + "options_popup_filter_description": { + "message": "Opis:" + }, + "options_popup_filter_homepage": { + "message": "Strona domowa:" + }, + "options_popup_filter_rules_count": { + "message": "Licznik reguł:" + }, + "options_popup_filter_title": { + "message": "Tytuł:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Wersja:" + }, + "options_popup_import_error_file_description": { + "message": "Coś poszło nie tak." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Aby zaimportować ten plik ustawień, zezwól AdGuard na zmianę ustawień związanych z prywatnością." + }, + "options_popup_import_error_title": { + "message": "Nie udało się zaimportować ustawień" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Plik musi mieć rozszerzenie %extension%" + }, + "options_popup_import_success_title": { + "message": "Zaimportowano ustawienia" + }, + "options_popup_next_button": { + "message": "Dalej" + }, + "options_popup_subscribe_button": { + "message": "Subskrybuj" + }, + "options_popup_title_placeholder": { + "message": "Wprowadź nazwę filtra" + }, + "options_popup_trusted_filter_description": { + "message": "Filtry zaufane mogą korzystać z zaawansowanych filtrów reguł filtrowania, które mogą być niebezpieczne w niepowołanych rękach. Nie zaznaczaj tego pola, chyba że w pełni mu ufasz." + }, + "options_popup_trusted_filter_title": { + "message": "Zaufany" + }, + "options_popup_try_again_button": { + "message": "Spróbuj ponownie" + }, + "options_popup_update_error": { + "message": "Nie udało się pobrać aktualizacji. Proszę spróbować ponownie później." + }, + "options_popup_update_filter": { + "message": "został zaktualizowany." + }, + "options_popup_update_filters": { + "message": "zostały zaktualizowane." + }, + "options_popup_update_not_found": { + "message": "Twoje filtry są aktualne" + }, + "options_popup_update_title_error": { + "message": "Błąd podczas aktualizacji filtrów" + }, + "options_popup_updating_filters": { + "message": "Aktualizowanie filtrów..." + }, + "options_popup_url_placeholder": { + "message": "Wpisz adres URL lub ścieżkę" + }, + "options_popup_url_title": { + "message": "Nowa subskrypcja filtra" + }, + "options_popup_version_update_changelog_text": { + "message": "Kliknij tutaj, aby wyświetlić pełną listę zmian." + }, + "options_popup_version_update_description_major": { + "message": "Jest to ważna aktualizacja rozszerzenia, która oferuje wiele nowych funkcji i ulepszeń." + }, + "options_popup_version_update_description_minor": { + "message": "Ta wersja zawiera głównie poprawki błędów i drobne poprawki." + }, + "options_popup_version_update_disable_notification": { + "message": "Wyłącz powiadomienia" + }, + "options_popup_version_update_offer": { + "message": "Jeśli masz obsesję na punkcie prywatności tak jak my, wypróbuj produkty premium AdGuard dla systemów Windows, Mac, iOS lub Android, aby znaleźć jeszcze więcej funkcji." + }, + "options_popup_version_update_offer_button_text": { + "message": "WYPRÓBUJ PREMIUM" + }, + "options_popup_version_update_title_text": { + "message": "Rozszerzenie przeglądarki AdGuard zostało właśnie zaktualizowane do wersji %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Powoduje, że WebRTC używa bardziej restrykcyjnej polityki adresu IP, aby pomóc ukryć Twój rzeczywisty Adres IP, gdy korzystasz z proxy lub VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Zapobiegaj wyciekom adresu IP przez WebRTC" + }, + "options_privacy": { + "message": "Ochrona przed śledzeniem" + }, + "options_privacy_desc": { + "message": "Chroni Twoją aktywność online i dane osobowe przed modułami śledzącymi w sieci" + }, + "options_privacy_policy": { + "message": "Polityka prywatności" + }, + "options_privacy_title": { + "message": "Ochrona przed śledzeniem" + }, + "options_rate_us_cta": { + "message": "Oceń nas" + }, + "options_remove_client_data_desc": { + "message": "Blokuje Google Chrome przed wysłaniem informacji o wersji i modyfikacjach do domen Google" + }, + "options_remove_client_data_title": { + "message": "Usuń nagłówek X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Usuń" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Usunąć ten filtr?" + }, + "options_report_bug": { + "message": "Zgłoś błąd" + }, + "options_reset_settings": { + "message": "Resetuj ustawienia" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Zresetuj" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Wszystkie ustawienia zostaną resetuj do swoich wartości domyślnych" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Zresetować ustawienia?" + }, + "options_reset_settings_done": { + "message": "Ustawienia zostały zresetowane" + }, + "options_reset_settings_error": { + "message": "Błąd podczas resetowania ustawień" + }, + "options_reset_stats": { + "message": "Wyczyść statystyki" + }, + "options_reset_stats_done": { + "message": "Statystyki zostały opróżnione" + }, + "options_rule_limits": { + "message": "Limity reguł" + }, + "options_rule_limits_description": { + "message": "Chrome ogranicza liczbę reguł, które można zastosować" + }, + "options_rule_limits_dynamic": { + "message": "Reguły dynamiczne" + }, + "options_rule_limits_dynamic_regex": { + "message": "Reguły wyrażeń regularnych — zawarte w regułach dodawanych przez użytkownika" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Niebezpieczne reguły dynamiczne (używane dla niektórych zaawansowanych modyfikatorów, takich jak $$redirect lub $$cookie) — zawarte w regułach dodawanych przez użytkownika" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Reguły dodane przez użytkownika, takie jak \u003Cuser_rules>reguły użytkownika\u003C/user_rules>, \u003Callowlist>listy witryn dozwolonych\u003C/allowlist> i \u003Ccustom_filters>filtry niestandardowe\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Reguły dodane przez użytkownika, takie jak \u003Cuser_rules>reguły użytkownika\u003C/user_rules> i \u003Callowlist>dozwolone strony internetowe\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% z %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Reguły statyczne" + }, + "options_rule_limits_static_rules_all": { + "message": "Reguły z \u003Ca>wbudownych filtrów\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Reguły wyrażeń regularnych — zawarte w powyższym" + }, + "options_rule_limits_static_rulesets": { + "message": "Statyczne zestawy reguł" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Wbudowane filtry\u003C/a>, takie jak blokowanie elementów irytujących i filtry specyficzne dla języka" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opcja 3. Jeśli odpowiadają Ci obecnie włączone filtry, \u003Ca>zamknij to ostrzeżenie.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opcja 3. Jeśli odpowiadają Ci obecnie włączony filtr, \u003Ca>zamknij to ostrzeżenie.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opcja 1. Usuń niepotrzebne rozszerzenia blokujące reklamy z przeglądarki. Aby ponownie aktywować filtry wymienione w sekcji „Filtry włączone przed aktualizacją”, kliknij \u003Ca>reaktywuj filtry.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opcja 2. Zainstaluj aplikację AdGuard Ad Blocker: nie ma ona ograniczeń pod względem reguł filtrowania. \u003Ca>Pobierz aplikację AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Twoje możliwe działania" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Limit aktywnych reguł wbudowanych został przekroczony po aktualizacji lub dodaniu nowego rozszerzenia. Zgodnie z Manifest V3 Twoja przeglądarka Chrome zareagowała, wyłączając wszystkie wbudowane filtry rozszerzenia oprócz domyślnych." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Co się stało?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtry włączone przed aktualizacją" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtry są teraz włączone" + }, + "options_rule_limits_warning_title": { + "message": "Przeglądarka zmodyfikowała listę aktywnych filtrów" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Usuń ograniczenia reguł i uzyskaj rozszerzoną ochronę, która działa we wszystkich przeglądarkach" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Zainstaluj aplikację desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Przejdź do filtrów" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Zarządzaj rozszerzeniami" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Rozszerzenia przeglądarki udostępniają ten sam limit reguł. Usunięcie innych blokerów reklam może zwolnić więcej reguł dla AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Usuń inne blokery reklam" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Włącz filtry, których potrzebujesz. Filtry specyficzne dla języka i prywatności mogą używać wielu reguł" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Przejrzyj dostępne filtry" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Oto, co możesz zrobić" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Osiągnięto limit — niektóre filtry zostały wyłączone" + }, + "options_rule_syntax": { + "message": "Składnia reguły" + }, + "options_safebrowsing_enabled": { + "message": "Ochrona przed phishingiem i malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Ostrzega przed złośliwymi i phishingowymi stronami internetowymi korzystając z modułu Bezpieczne przeglądanie AdGuard. \u003Ca>Dowiedz się więcej\u003C/a>" + }, + "options_select_theme": { + "message": "Motyw" + }, + "options_select_update_period_12h": { + "message": "12 godzin" + }, + "options_select_update_period_1h": { + "message": "1 godzina" + }, + "options_select_update_period_24h": { + "message": "24 godziny" + }, + "options_select_update_period_48h": { + "message": "48 godzin" + }, + "options_select_update_period_6h": { + "message": "6 godzin" + }, + "options_select_update_period_default": { + "message": "Domyślny" + }, + "options_select_update_period_disabled": { + "message": "Wyłączony" + }, + "options_send_not_track_desc": { + "message": "Wysyłaj sygnały \u003Cgpc>Global Privacy Control\u003C/gpc> i \u003Cdnt>Do Not Track\u003C/dnt> do odwiedzanych stron" + }, + "options_send_not_track_title": { + "message": "Poproś strony internetowe, aby mnie nie śledziły" + }, + "options_set_update_interval": { + "message": "Automatycznie aktualizuj filtry" + }, + "options_set_update_interval_desc": { + "message": "Utrzymuje filtry w aktualności dla skuteczniejszego blokowania reklam" + }, + "options_settings": { + "message": "Ustawienia AdGuard" + }, + "options_share_settings": { + "message": "Udostępnić ustawienia" + }, + "options_show_adguard_full_version_title": { + "message": "Pokaż informacje o pełnej wersji AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Powiadamiaj o aktualizacjach rozszerzenia" + }, + "options_show_blocked_ads_count_title": { + "message": "Pokazuj liczbę zablokowanych reklam na ikonie rozszerzenia AdGuard" + }, + "options_show_context_menu_title": { + "message": "Dodaj element AdGuard do menu kontekstowego przeglądarki" + }, + "options_site": { + "message": "Oficjalna strona" + }, + "options_skip_to_main_content": { + "message": "Przejdź do głównej treści" + }, + "options_stealth_general_title": { + "message": "Ogólne" + }, + "options_stealth_miscellaneous_title": { + "message": "Różne" + }, + "options_stealth_tracking_methods_title": { + "message": "Metody śledzenia" + }, + "options_strip_tracking_params_description": { + "message": "Usuwa parametry śledzenia z adresów URL stron za pomocą filtra AdGuard URL Tracking" + }, + "options_strip_tracking_params_title": { + "message": "Usuwanie parametrów śledzenia z adresów URL" + }, + "options_stripped_tracking_parameters": { + "message": "Usunięto parametry śledzenia" + }, + "options_theme_selector_dark": { + "message": "Ciemny" + }, + "options_theme_selector_light": { + "message": "Jasny" + }, + "options_theme_selector_system": { + "message": "Domyślny systemowy" + }, + "options_third_party_block_cookies_warning": { + "message": "Jeśli zablokujesz te ciasteczka, może być konieczne ponowne zalogowanie się na niektórych stronach internetowych lub napotkanie innych problemów związanych z ciasteczkami." + }, + "options_third_party_desc": { + "message": "Uniemożliwia reklamodawcom śledzenie Twojego zachowania na wielu stronach, ograniczając czas życia plików cookie stron trzecich" + }, + "options_third_party_title": { + "message": "Usuń pliki cookie stron trzecich" + }, + "options_update_antibanner_filters": { + "message": "Sprawdź aktualizacje filtrów" + }, + "options_use_optimized_filters": { + "message": "Użyj filtrów zoptymalizowanych" + }, + "options_use_optimized_filters_desc": { + "message": "Używa krótszej listy filtrów z najbardziej popularnymi regułami w celu zaoszczędzenia ruchu. Lepiej pasuje do przeglądarek mobilnych" + }, + "options_user_rules_clear_search": { + "message": "Wyczyść wyszukiwanie" + }, + "options_user_rules_create_rule": { + "message": "Utwórz regułę" + }, + "options_user_rules_delete_all": { + "message": "Usuń wszystko" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Wszystkie reguły użytkownika zostaną trwale usunięte" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Usuń wszystko?" + }, + "options_user_rules_delete_all_success": { + "message": "Wszystkie reguły użytkownika zostały usunięte" + }, + "options_user_rules_delete_rule": { + "message": "Usuń regułę" + }, + "options_user_rules_deleted_notification": { + "message": "Reguła użytkownika usunięta:" + }, + "options_user_rules_description_key": { + "message": "Twoje reguły do blokowania i odblokowywania reklam lub całych stron internetowych" + }, + "options_user_rules_edit_rule": { + "message": "Edytuj regułę" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Przejdź do edytora" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Twoje reguły pojawią się tutaj po zamknięciu" + }, + "options_user_rules_editor_stub_title": { + "message": "Edytor otwarty w innym oknie" + }, + "options_user_rules_empty_placeholder": { + "message": "Brak reguł" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Wyróżnianie reguł…" + }, + "options_user_rules_import_error": { + "message": "Nie udało się zaimportować reguł użytkownika. Spróbuj ponownie" + }, + "options_user_rules_import_success": { + "message": "Reguły użytkownika zaimportowane pomyślnie" + }, + "options_user_rules_menu": { + "message": "Działania reguł użytkownika" + }, + "options_user_rules_no_match": { + "message": "Nic nie znaleziono" + }, + "options_user_rules_search_placeholder": { + "message": "Wyszukaj" + }, + "options_user_rules_switch_to_editor": { + "message": "Przełącz do poglądu edytora" + }, + "options_user_rules_switch_to_list": { + "message": "Przełącz do poglądu listy" + }, + "options_user_rules_undo": { + "message": "Cofnij" + }, + "options_userfilter": { + "message": "Reguły użytkownika" + }, + "options_userfilter_description_key": { + "message": "Tutaj możesz dodać własne reguły. Ta opcja jest zalecana dla zaawansowanych użytkowników znających HTML/CSS. Przeczytaj \u003Ca>samouczek dotyczący reguł filtrowania\u003C/a>, aby dowiedzieć się, jak napisać własne reguły filtrowania." + }, + "options_userfilter_export": { + "message": "Eksportuj" + }, + "options_userfilter_import": { + "message": "Importuj" + }, + "options_userfilter_leave_subtitle": { + "message": "Wprowadzone zmiany w regułach zostaną utracone" + }, + "options_userfilter_line_break": { + "message": "Podział wiersza" + }, + "options_userfilter_line_break_off": { + "message": "Podział wiersza: Wyłączony" + }, + "options_userfilter_line_break_on": { + "message": "Podział wiersza: Włączony" + }, + "options_userfilter_subtitle_key": { + "message": "Pozwala na dodawanie własnych reguł filtrowania" + }, + "popup_abuse_site": { + "message": "Zgłoś problem" + }, + "popup_adguard_footer_title": { + "message": "Chroń swoje urządzenie mobilne" + }, + "popup_adguard_for_android": { + "message": "AdGuard dla Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard dla iOS" + }, + "popup_block_site_ads_option": { + "message": "Ręcznie zablokuj reklamę" + }, + "popup_get_system_wide_protection": { + "message": "Uzyskaj ochronę całego systemu" + }, + "popup_header_cta_link": { + "message": "Jak wzmocnić ochronę" + }, + "popup_header_update_filters": { + "message": "Sprawdź, czy są aktualizacje filtrów" + }, + "popup_limits_exceeded_warning": { + "message": "Przeglądarka zmodyfikowała listę aktywnych wbudowanych filtrów" + }, + "popup_open_filtering_log": { + "message": "Otwórz dziennik filtrowania" + }, + "popup_open_settings": { + "message": "Otwórz ustawienia AdGuard" + }, + "popup_protection_button": { + "message": "Ochrona AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Usuń reguły użytkownika dla tej witryny" + }, + "popup_resume_protection_button": { + "message": "Wznów" + }, + "popup_security_report": { + "message": "Sprawdź bezpieczeństwo witryny" + }, + "popup_site_exception_information": { + "message": "Filtrowanie jest wyłączone, ponieważ może zakłócać działanie tej strony." + }, + "popup_site_filtering_state_disabled": { + "message": "Ochrona jest wyłączona" + }, + "popup_site_filtering_state_disabling": { + "message": "Wyłączanie ochrony..." + }, + "popup_site_filtering_state_enabled": { + "message": "Ochrona jest włączona" + }, + "popup_site_filtering_state_enabling": { + "message": "Włączanie ochrony..." + }, + "popup_site_filtering_state_loading": { + "message": "Wczytywanie..." + }, + "popup_site_filtering_state_paused": { + "message": "Ochrona jest wstrzymana" + }, + "popup_site_filtering_state_pausing": { + "message": "Wstrzymywanie ochrony..." + }, + "popup_site_filtering_state_resuming": { + "message": "Wznawianie ochrony..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Bezpieczna strona" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "dla wszystkich stron internetowych" + }, + "popup_statistics_all_categories": { + "message": "Wszystko" + }, + "popup_statistics_category_advertising": { + "message": "Reklamy" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategoria statystyki" + }, + "popup_statistics_category_other": { + "message": "Inne" + }, + "popup_statistics_category_social_media": { + "message": "Media społecznościowe" + }, + "popup_statistics_category_trackers": { + "message": "Trackery" + }, + "popup_statistics_months_apr": { + "message": "Kwi" + }, + "popup_statistics_months_aug": { + "message": "Sie" + }, + "popup_statistics_months_dec": { + "message": "Gru" + }, + "popup_statistics_months_feb": { + "message": "Lut" + }, + "popup_statistics_months_jan": { + "message": "Sty" + }, + "popup_statistics_months_jul": { + "message": "Lip" + }, + "popup_statistics_months_jun": { + "message": "Czw" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "Lis" + }, + "popup_statistics_months_oct": { + "message": "Paź " + }, + "popup_statistics_months_sep": { + "message": "Wrz" + }, + "popup_statistics_time_day": { + "message": "24 godziny" + }, + "popup_statistics_time_label": { + "message": "Okres czasu statystyk" + }, + "popup_statistics_time_month": { + "message": "30 dni" + }, + "popup_statistics_time_week": { + "message": "7 dni" + }, + "popup_statistics_time_year": { + "message": "1 rok" + }, + "popup_statistics_total": { + "message": "Całkowity" + }, + "popup_statistics_week_days_fri": { + "message": "Pt" + }, + "popup_statistics_week_days_mon": { + "message": "Pon" + }, + "popup_statistics_week_days_sat": { + "message": "Sob" + }, + "popup_statistics_week_days_sun": { + "message": "Ndz" + }, + "popup_statistics_week_days_thu": { + "message": "Czw" + }, + "popup_statistics_week_days_tue": { + "message": "Wt" + }, + "popup_statistics_week_days_wed": { + "message": "Śro" + }, + "popup_switch_button": { + "message": "Ochrona bieżącej strony" + }, + "popup_tab_actions": { + "message": "Akcje" + }, + "popup_tab_blocked_all_count": { + "message": "Łącznie zablokowano: %num%" + }, + "popup_tab_blocked_count": { + "message": "Zablokowano: %num%" + }, + "popup_tab_current_website": { + "message": "Aktualna strona" + }, + "popup_tab_statistics": { + "message": "Statystyki" + }, + "popup_tabs": { + "message": "Karty" + }, + "popup_tooltip_loading": { + "message": "Wczytywanie..." + }, + "popup_tooltip_protection_disabled": { + "message": "Ochrona jest wyłączona" + }, + "popup_tooltip_protection_enabled": { + "message": "Ochrona włączona" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Niektóre zasady nie są stosowane" + }, + "popup_tooltip_update_available": { + "message": "Dostępna aktualizacja" + }, + "post_install_loading": { + "message": "Ładowanie rozszerzenia..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Przekroczono limit reguł w rozszerzeniu przeglądarki AdGuard. Sprawdź swoje filtry i wyłącz niepotrzebne" + }, + "text_collapser_hide_default": { + "message": "Ukryj pełny tekst" + }, + "text_collapser_show_default": { + "message": "Pokaż pełny tekst" + }, + "update_available_desc": { + "message": "Aby skutecznie blokować reklamy, aktualizuj rozszerzenia i filtry" + }, + "update_available_title": { + "message": "Dostępne aktualizacje" + }, + "update_available_update_btn": { + "message": "Aktualizuj" + }, + "update_check": { + "message": "Sprawdź aktualizacje" + }, + "update_checking_in_progress": { + "message": "Sprawdzanie aktualizacji..." + }, + "update_failed_text": { + "message": "Nie udało się ukończyć aktualizacji" + }, + "update_failed_try_again_btn": { + "message": "Spróbuj ponownie" + }, + "update_installing_in_progress_desc": { + "message": "Rozszerzenie uruchomi się ponownie po aktualizacji" + }, + "update_installing_in_progress_title": { + "message": "Aktualizowanie rozszerzeń i filtrów..." + }, + "update_not_needed": { + "message": "Rozszerzenie i filtry są aktualne" + }, + "update_success_text": { + "message": "Zaktualizowano rozszerzenie i filtry" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_BR/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_BR/messages.json new file mode 100644 index 0000000..c5d3856 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_BR/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% foi ativado com sucesso." + }, + "alert_popup_filter_enabled_title": { + "message": "Ativação automática de filtros" + }, + "background_tab_title": { + "message": "Guia em segundo plano" + }, + "blocking_pages_advanced_button": { + "message": "Avançado" + }, + "blocking_pages_btn_go_back": { + "message": "Voltar" + }, + "blocking_pages_btn_proceed": { + "message": "Continuar mesmo assim" + }, + "blocking_pages_malware": { + "message": "Este site \u003Cstrong>%host%\u003C/strong> foi classificado como uma página de malware e foi bloqueada com base em suas preferências de segurança." + }, + "blocking_pages_more_info_button": { + "message": "Mais informação" + }, + "blocking_pages_page_title": { + "message": "Acesso negado" + }, + "blocking_pages_phishing": { + "message": "Este site \u003Cstrong>%host%\u003C/strong> foi classificado como uma página de phishing e foi bloqueada com base em suas preferências de segurança." + }, + "blocking_pages_rule_content_title": { + "message": "O AdGuard impediu o carregamento dessa página devido à seguinte regra de filtro" + }, + "blocking_pages_rule_header_title": { + "message": "Bloqueado pelo AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard bloqueou o acesso a esta página" + }, + "clear_button_title": { + "message": "Limpar" + }, + "close_button_title": { + "message": "Fechar" + }, + "context_block_site_ads": { + "message": "Bloquear anúncios manualmente" + }, + "context_complaint_website": { + "message": "Reportar um problema" + }, + "context_disable_protection": { + "message": "Pausar proteção do AdGuard" + }, + "context_enable_protection": { + "message": "Retomar proteção do AdGuard" + }, + "context_open_log": { + "message": "Registro de filtragem" + }, + "context_open_settings": { + "message": "Configurações do AdGuard" + }, + "context_security_report": { + "message": "Verificar a segurança do site" + }, + "context_site_exception": { + "message": "Este site está na lista de exceções" + }, + "context_site_filtering_disabled": { + "message": "O AdGuard não pode filtrar esta página" + }, + "context_site_filtering_off": { + "message": "Desativar filtragem neste site" + }, + "context_site_filtering_on": { + "message": "Ativar filtragem neste site" + }, + "context_site_protection_disabled": { + "message": "Proteção do AdGuard está pausada" + }, + "context_update_antibanner_filters": { + "message": "Verificar atualizações de filtros" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Uma extensão de bloqueio incomparável contra anúncios e pop-ups. Bloqueia os anúncios do Facebook, YouTube e todos outros sites." + }, + "filtering_clear_log_events": { + "message": "Limpar registro" + }, + "filtering_log_actions_menu": { + "message": "Filtrando ações de log" + }, + "filtering_log_assumed_rule_description": { + "message": "Esta é uma regra assumida. Para detalhes, veja nossa \u003Ca>Base de conhecimento\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Método de solicitação de HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Código de status de HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Solicitação de terceiros" + }, + "filtering_log_details_modal_back_button": { + "message": "Voltar para a solicitação" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Bonito" + }, + "filtering_log_details_modal_try_again": { + "message": "Tente novamente" + }, + "filtering_log_filter_allowed": { + "message": "Permitido" + }, + "filtering_log_filter_blocked": { + "message": "Bloqueado" + }, + "filtering_log_filter_modified": { + "message": "Modificado" + }, + "filtering_log_filter_regular": { + "message": "Normal" + }, + "filtering_log_filter_user_rules": { + "message": "Regras de usuário" + }, + "filtering_log_hide_referrer": { + "message": "Referenciador oculto de terceiros" + }, + "filtering_log_hide_search_queries": { + "message": "Suas pesquisas estão ocultas" + }, + "filtering_log_in_allowlist": { + "message": "O site está permitido" + }, + "filtering_log_modified_rules": { + "message": "Regras modificas: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sim, preservar" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Esta opção pode aumentar significativamente o uso de memória" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Preservar registro?" + }, + "filtering_log_preserve_log_off": { + "message": "Não preservar registro" + }, + "filtering_log_preserve_log_on": { + "message": "Preservar registro" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Não mostrar novamente" + }, + "filtering_log_privacy_applied_rules": { + "message": "Proteção contra rastreamento aplicada" + }, + "filtering_log_remove_client_data": { + "message": "Cabeçalho Do-Not-Track removido" + }, + "filtering_log_search_string": { + "message": "Procurar" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Pesquisar nas guias" + }, + "filtering_log_send_not_track": { + "message": "Cabeçalho Do-Not-Track enviado" + }, + "filtering_log_status_allowed": { + "message": "Permitido" + }, + "filtering_log_status_blocked": { + "message": "Bloqueado" + }, + "filtering_log_status_modified": { + "message": "Modificado" + }, + "filtering_log_status_processed": { + "message": "Processado" + }, + "filtering_log_stealth_rules": { + "message": "Regras de proteção contra rastreamento: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origem da solicitação" + }, + "filtering_log_tag_request_status": { + "message": "Status da filtragem" + }, + "filtering_log_tag_request_type": { + "message": "Tipo de solicitação" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Solicitações permitidas e desbloqueadas" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Solicitações bloqueadas" + }, + "filtering_log_tag_tooltip_css": { + "message": "Folhas de estilo" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Solicitações primárias" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documentos e subdocumentos" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imagens" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Mídia" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Solicitações modificadas" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fontes, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Solicitações processadas sem filtragem" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Solicitações de terceiros" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Solicitações afetadas pelas regras do usuário" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Solicitações XML Http e solicitações de busca" + }, + "filtering_log_title": { + "message": "Registro de filtragem" + }, + "filtering_menu_open_filters": { + "message": "Personalizar" + }, + "filtering_modal_add_rule": { + "message": "Adicionar" + }, + "filtering_modal_allow_title": { + "message": "Adicionar regra de permissão" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra aplicada | Regras aplicadas" + }, + "filtering_modal_apply_domains": { + "message": "Aplicar para todos os sites" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra presumida: | Regras presumidas:" + }, + "filtering_modal_block": { + "message": "Bloquear" + }, + "filtering_modal_block_again": { + "message": "Bloquear novamente" + }, + "filtering_modal_block_title": { + "message": "Adicionar regra de bloqueio" + }, + "filtering_modal_converted_to": { + "message": "Convertido para:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiado" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiar para área de transferência" + }, + "filtering_modal_declarative_rule": { + "message": "Regra DNR:" + }, + "filtering_modal_element": { + "message": "Elemento:" + }, + "filtering_modal_exception_title": { + "message": "Adicionando uma exceção" + }, + "filtering_modal_filter": { + "message": "Filtro" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Status da filtragem" + }, + "filtering_modal_hide_full_element": { + "message": "Ocultar elemento completo" + }, + "filtering_modal_hide_full_rule": { + "message": "Ocultar regra completa" + }, + "filtering_modal_hide_full_url": { + "message": "Ocultar URL completa" + }, + "filtering_modal_important": { + "message": "Dê maior prioridade à regra" + }, + "filtering_modal_info_title": { + "message": "Detalhes da solicitação" + }, + "filtering_modal_open_in_new_tab": { + "message": "Abrir em uma nova aba" + }, + "filtering_modal_options_desc": { + "message": "Opções..." + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra original: | Regras originais:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "O que deve ser permitido" + }, + "filtering_modal_patterns_desc_block": { + "message": "O que deve ser bloqueado" + }, + "filtering_modal_preview_request_button": { + "message": "Pré-visualização" + }, + "filtering_modal_preview_title": { + "message": "Pré-visualização" + }, + "filtering_modal_privacy": { + "message": "Proteção contra rastreamento" + }, + "filtering_modal_remove_allowlist": { + "message": "Remover da lista de permissões" + }, + "filtering_modal_remove_param": { + "message": "Remover parâmetros de consulta" + }, + "filtering_modal_remove_user": { + "message": "Excluir regra" + }, + "filtering_modal_rule": { + "message": "Regra:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regra" + }, + "filtering_modal_rules": { + "message": "Regras:" + }, + "filtering_modal_show_full_element": { + "message": "Mostrar elemento completo" + }, + "filtering_modal_show_full_rule": { + "message": "Mostrar regra completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostrar URL completa" + }, + "filtering_modal_source": { + "message": "Fonte" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Falha ao carregar a pré-visualização. Tente novamente" + }, + "filtering_modal_status_text_loading": { + "message": "Carregando..." + }, + "filtering_modal_third_party": { + "message": "Aplicar apenas a solicitações de terceiros" + }, + "filtering_modal_type": { + "message": "Tipo" + }, + "filtering_modal_unblock": { + "message": "Desbloquear" + }, + "filtering_refresh_tab_short": { + "message": "Atualizar" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Atualizar página" + }, + "filtering_table_action": { + "message": "Ação" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nada encontrado. \u003Creset>Desabilite os filtros\u003C/reset> ou \u003Crefresh>recarregue a página\u003C/refresh> para visualizar os registros de log" + }, + "filtering_table_filter": { + "message": "Filtro" + }, + "filtering_table_open_details": { + "message": "Abrir detalhes" + }, + "filtering_table_rule": { + "message": "Regra de filtragem" + }, + "filtering_table_source": { + "message": "Fonte" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Tipo" + }, + "filtering_type_all": { + "message": "Todos" + }, + "filtering_type_other": { + "message": "Outros" + }, + "filters_download_loading": { + "message": "Por favor, aguarde enquanto o banco de dados dos filtros está carregando..." + }, + "filters_download_title": { + "message": "O banco de dados de filtros está carregando..." + }, + "fullscreen_user_rules_title": { + "message": "Regras de usuário" + }, + "group_description_adblocking": { + "message": "Configure o bloqueio de anúncios aqui para lidar com banners irritantes, pop-ups, anúncios em vídeo e outros, de uma vez por todas" + }, + "group_description_annoyances": { + "message": "Remover janelas pop-up e outras notificações irritantes, como avisos de cookies" + }, + "group_description_custom": { + "message": "Crie seus próprios filtros para um ajuste fino de filtragem da web de acordo com sua preferência." + }, + "group_description_lang": { + "message": "Não tenha limites: bloqueie anúncios em sites em qualquer idioma" + }, + "group_description_miscellaneous": { + "message": "Mais opções para configurar sua navegação na web com o AdGuard ainda mais" + }, + "group_description_security": { + "message": "Proteja-se contra malware, phishing e outras ameaças online" + }, + "group_description_social": { + "message": "Ocultar botões \"Curtir\"/\"Compartilhar\" indesejados e outros widgets de mídia social" + }, + "group_description_stealth": { + "message": "Proteja sua identidade e informações pessoais confidenciais de milhares de rastreadores online, bloqueando todos os métodos de rastreamento populares conhecidos" + }, + "name": { + "message": "Bloqueador AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "Não mostrar novamente" + }, + "opera_search_permission_go_to_settings": { + "message": "Ir para Configurações" + }, + "opera_search_permission_warning": { + "message": "Para bloquear anúncios de pesquisa, permita o acesso aos resultados da página de pesquisa nas configurações do navegador" + }, + "options_about": { + "message": "Sobre" + }, + "options_about_libs": { + "message": "Bibliotecas usadas" + }, + "options_about_title": { + "message": "Extensão do AdGuard para navegador" + }, + "options_about_update_available": { + "message": "A versão %version% está disponível. Ela será baixada e instalada automaticamente." + }, + "options_about_version": { + "message": "Versão" + }, + "options_acknowledgment": { + "message": "Agradecimentos" + }, + "options_add_custom_filter": { + "message": "Adicionar filtro personalizado" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Adicionar" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Verificando seu filtro..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "A URL retornou uma página da web em vez de uma lista de filtros. Forneça um link direto para o arquivo de filtros." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Por favor, tente novamente ou entre em contato com o suporte" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Falha ao adicionar filtro personalizado" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nome do filtro:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Confiável" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Algumas regras de filtro podem alterar significativamente a sua experiência de navegação e comprometer a sua privacidade. Certifique-se de usar apenas filtros de desenvolvedores em quem você confia" + }, + "options_add_custom_filter_modal_title": { + "message": "Adicionar personalizado" + }, + "options_all_limits_exceeded_warning": { + "message": "Você atingiu o limite de regras internas ativas. Seu navegador modificou a lista de filtros internos ativos. O número de filtros ativados foi alterado de %expected% para %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Você atingiu o limite do seu navegador para regras internas ativas. Seu navegador reduziu a lista de filtros internos ativos de %expected% para %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Seu navegador restringe \u003Cexternal-link>alguns tipos de regras\u003C/external-link>. Para aplicar todas as regras, ative \u003Cb>Permitir scripts de usuário\u003C/b> nas \u003Csettings-link>configurações da extensão\u003C/settings-link> do seu navegador" + }, + "options_allowlist": { + "message": "Lista de permissões" + }, + "options_allowlist_alert_invert": { + "message": "A lista de permissões está invertida. Os anúncios são bloqueados apenas nos sites adicionados a ela." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Parar de inverter\u003C/a>" + }, + "options_allowlist_desc": { + "message": "O AdGuard não bloqueia anúncios e rastreadores em sites da lista" + }, + "options_allowlist_invalid_entries": { + "message": "Para economizar, mantenha apenas domínios ou URLs. Estes precisam ser corrigidos: %entries%" + }, + "options_allowlist_invert": { + "message": "Inverter a lista de permissões" + }, + "options_allowlist_invert_desc": { + "message": "Bloqueia anúncios e rastreadores apenas em sites permitidos" + }, + "options_allowlist_leave_subtitle": { + "message": "Suas alterações na lista de permissões serão perdidas" + }, + "options_allowlist_menu": { + "message": "Ações da lista de permissões" + }, + "options_anonymized_usage_data_description": { + "message": "Envia estatísticas anônimas sobre o uso da extensão para AdGuard. \u003Cbutton>Saiba mais\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Entendi" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Esses dados incluem:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nomes dos botões em que você clica" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nomes das telas com as quais você interage" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificadores de sessão" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Esses dados são anônimos e usados apenas internamente. Nunca os compartilhamos com terceiros" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Precisamos dessa informação para analisar e melhorar a funcionalidade do AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dados de uso da extensão" + }, + "options_anonymized_usage_data_title": { + "message": "Enviar dados de uso da extensão anonimizados" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Este filtro personalizado já foi adicionado" + }, + "options_antibanner_custom_group": { + "message": "Personalizado" + }, + "options_antibanner_custom_group_description": { + "message": "Permite que você adicione filtros de um arquivo ou URL" + }, + "options_antibanner_rules_count": { + "message": "Regras: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Atualizado: %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloqueia anúncios da rede de pesquisa e autopromoção de sites" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloqueia anúncios nos resultados de pesquisa e autopromoção de sites. \u003Ca>Saiba mais\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Para bloquear esses cookies, defina o tempo de vida deles como 0" + }, + "options_block_known_trackers_description": { + "message": "Bloqueia rastreadores e análises da web usando o filtro de proteção contra rastreamento do AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Bloquear rastreadores" + }, + "options_check_update_progress": { + "message": "Verificando..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Limpar" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Todas as estatísticas de uso de dados serão excluídas permanentemente" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Limpar estatísticas?" + }, + "options_clipboard_permission_warning": { + "message": "Para copiar e colar regras, permita que o AdGuard acesse a área de transferência. \u003Ca>Permitir\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envia estatísticas anônimas sobre o uso do filtro de anúncios para AdGuard. \u003Ca>Saiba mais\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ajude-nos a desenvolver os filtros do AdGuard" + }, + "options_coming_soon": { + "message": "Em breve" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancelar" + }, + "options_copyright": { + "message": "Todos os direitos reservados" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para usar filtros personalizados, ative \u003Cb>Permitir scripts de usuário\u003C/b> nas \u003Csettings-link>configurações da extensão\u003C/settings-link> do seu navegador" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para usar filtros personalizados, ative o \u003Cb>Modo de desenvolvedor\u003C/b> nas \u003Csettings-link>configurações da extensão\u003C/settings-link> do seu navegador" + }, + "options_desktop_app_promo_button_linux": { + "message": "Baixe o AdGuard para Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtenha o AdGuard para Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtenha o AdGuard para Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicativos como Spotify, Discord ou Zoom ainda podem exibir anúncios e rastrear sua atividade" + }, + "options_desktop_app_promo_subdescription": { + "message": "Nosso aplicativo para desktop pode protegê-lo" + }, + "options_desktop_app_promo_title": { + "message": "A extensão protege apenas o navegador" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Seu navegador restringe \u003Cexternal-link>alguns tipos de regras\u003C/external-link>. Para aplicar todas as regras, ative o \u003Cb>Modo desenvolvedor\u003C/b> nas \u003Csettings-link>configurações da extensão\u003C/settings-link> do seu navegador" + }, + "options_disable_webrtc_desc": { + "message": "Bloqueia o WebRTC, uma vulnerabilidade conhecida que pode vazar seu endereço IP real, mesmo que você use um proxy ou VPN.\nAlguns messengers, plataformas de streaming ou jogos podem não funcionar" + }, + "options_disable_webrtc_title": { + "message": "Bloquear WebRTC" + }, + "options_discuss": { + "message": "Discussão do AdGuard" + }, + "options_do_you_like_question": { + "message": "Você gostou do AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Sair do modo janela" + }, + "options_editor_indicator_saved": { + "message": "Salvo" + }, + "options_editor_indicator_saving": { + "message": "Salvando..." + }, + "options_editor_leave_cancel": { + "message": "Voltar à edição" + }, + "options_editor_leave_confirm": { + "message": "Sim, sair" + }, + "options_editor_leave_title": { + "message": "Sair sem salvar?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Abrir editor em uma nova janela" + }, + "options_editor_save": { + "message": "Salvar" + }, + "options_editor_save_error": { + "message": "Falha ao salvar as alterações. Tente novamente ou entre em contato com o suporte" + }, + "options_empty_custom_filter": { + "message": "Você ainda não tem filtros personalizados" + }, + "options_enable_autodetect_filter": { + "message": "Ativar os filtros mais apropriados automaticamente" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecta o idioma do site e ativa os filtros apropriados" + }, + "options_export_settings": { + "message": "Exportar configurações" + }, + "options_filters": { + "message": "Filtros" + }, + "options_filters_annoyances_consent_description": { + "message": "Você está prestes a ativar um ou mais filtros de elementos irritantes. Eles bloqueiam elementos que não estão relacionados ao conteúdo do site ou relacionados, mas que são incômodos para a sua experiência de usuário. Os proprietários de sites podem considerar esses elementos obrigatórios: se você os bloquear, pode estar violando seus termos; algumas funcionalidades dos sites podem não ficar disponíveis ou não funcionarem corretamente. Você entende e concorda que é o único responsável por cumprir os termos de uso dos sites que visita e que o AdGuard não é responsável pela sua conformidade com os termos de uso dos sites que você visita usando nossos produtos." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Ativar" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Página inicial" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Para obter detalhes sobre o que os filtros de elementos irritantes do AdGuard bloqueiam, consulte a \u003Ca>Política de filtros\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Ativar estes filtros?" + }, + "options_filters_annoyances_consent_title": { + "message": "Leia atentamente antes de ativar os filtros anti-incômodo" + }, + "options_filters_back_button": { + "message": "Voltar" + }, + "options_filters_empty_title": { + "message": "Nada encontrado" + }, + "options_filters_enabled": { + "message": "Ativado:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% e %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% e mais %more%" + }, + "options_filters_enabled_per_group": { + "message": "Ativado: %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Vá para a página inicial" + }, + "options_filters_filter_tags": { + "message": "Tags de filtro" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Você escolheu confiar neste filtro." + }, + "options_filters_filter_updated": { + "message": "atualizado:" + }, + "options_filters_filter_version": { + "message": "versão:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Regras totais: %num%" + }, + "options_filters_last_checked": { + "message": "Última verificação: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Todos os filtros" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Desativado" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Ativado" + }, + "options_filters_no_enabled": { + "message": "Nenhum filtro ativado" + }, + "options_filters_of_group": { + "message": "Filtros do grupo \"%groupName%\"" + }, + "options_filters_search": { + "message": "Procurar" + }, + "options_filters_search_filter": { + "message": "Procurar filtro" + }, + "options_first_party_block_cookies_warning": { + "message": "Se você bloquear esses cookies, alguns sites podem apresentar falhas ou parar de funcionar" + }, + "options_first_party_desc": { + "message": "Impede que sites se lembrem dos seus dados, como suas credenciais de login e preferências de idioma, limitando o tempo de vida dos cookies primários" + }, + "options_first_party_title": { + "message": "Autodestruição de cookies primários (não recomendados)" + }, + "options_general_settings": { + "message": "Geral" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Impedir que terceiros saibam qual site você está visitando" + }, + "options_hide_referrer_title": { + "message": "Ocultar referenciador de terceiros" + }, + "options_hide_search_queries_desc": { + "message": "Oculta suas buscas de sites visitados por meio de resultados do mecanismo de pesquisa" + }, + "options_hide_search_queries_title": { + "message": "Ocultar consultas de pesquisa" + }, + "options_import_configuration_applying_subtitle": { + "message": "Substituindo suas configurações atuais pelas importadas. A filtragem está desativada durante a importação" + }, + "options_import_configuration_applying_title": { + "message": "Importando..." + }, + "options_import_configuration_confirm_button": { + "message": "Importar" + }, + "options_import_configuration_confirm_subtitle": { + "message": "As configurações importadas substituirão as atuais. Outras configurações não serão afetadas" + }, + "options_import_configuration_confirm_title": { + "message": "Importar configurações" + }, + "options_import_configuration_error_button": { + "message": "Fechar" + }, + "options_import_configuration_error_subtitle": { + "message": "Por favor, verifique o link de importação e tente novamente. Se não ajudar, entre em contato com o suporte" + }, + "options_import_configuration_error_title": { + "message": "Ocorreu um erro ao importar as configurações" + }, + "options_import_configuration_success_button": { + "message": "Fechar" + }, + "options_import_configuration_success_subtitle": { + "message": "As configurações foram importadas com sucesso" + }, + "options_import_configuration_success_title": { + "message": "Tudo feito" + }, + "options_import_settings": { + "message": "Importar configurações" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverter" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Anúncios e rastreadores só serão bloqueados em sites da lista de permissões" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inverter a lista de permissões?" + }, + "options_leave_feedback": { + "message": "Deixar feedback" + }, + "options_lifetime_minutes": { + "message": "Tempo de vida, em minutos" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Você atingiu o limite de regras regex adicionadas pelo usuário. %maximum% de %current% regras regex estão ativadas." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Você atingiu o limite de regras regex adicionadas pelo usuário. %maximum% de %current% regras estão ativadas. Para adicionar novas regras regex, remova algumas existentes" + }, + "options_limits_warning_dynamic_rules": { + "message": "Você atingiu o limite de regras adicionadas pelo usuário. %maximum% de %current% regras estão ativadas." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Você atingiu o limite de regras adicionadas pelo usuário. %maximum% de %current% regras estão ativadas. Para adicionar novas regras, remova algumas existentes" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Você atingiu o limite de regras não seguras adicionadas pelo usuário. %maximum% de %current% regras não seguras estão ativas." + }, + "options_limits_warning_static_filters": { + "message": "Você atingiu o limite de filtros internos ativos. %maximum% de %current% filtros estão ativados. Para ativar novas regras, desative alguns filtros internos." + }, + "options_limits_warning_static_filters_browser": { + "message": "Você atingiu o limite do seu navegador para filtros internos ativos. %maximum% de %current% filtros estão ativados. Para ativar novos filtros, desative alguns filtros internos" + }, + "options_limits_warning_static_regex_rules": { + "message": "Você atingiu o limite de regras regex internas ativas. %maximum% de %current% regras regex estão ativadas. Para ativar novas regras, desative alguns filtros internos." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Você atingiu o limite de regras regex integradas ativas. Para ativar novas regras, desative alguns filtros integrados" + }, + "options_limits_warning_static_rules": { + "message": "Você atingiu o limite de regras internas ativas. %maximum% de %current% regras estão ativadas. Para ativar novas regras, desative alguns filtros internos." + }, + "options_limits_warning_static_rules_browser": { + "message": "Você atingiu o limite do seu navegador para regras internas ativas. Para ativar novas regras, desative alguns filtros integrados" + }, + "options_loader_applying_changes": { + "message": "Aplicando alterações..." + }, + "options_miscellaneous_settings": { + "message": "Configurações adicionais" + }, + "options_modified_first_party_cookie": { + "message": "Cookie primário modificado" + }, + "options_modified_third_party_cookie": { + "message": "Cookie de terceiro modificado" + }, + "options_nav_better_than_extension": { + "message": "Porque o aplicativo do AdGuard é melhor que a extensão?" + }, + "options_nav_compare": { + "message": "Comparar" + }, + "options_navigation": { + "message": "Navegação" + }, + "options_open_changelog": { + "message": "Registro de alterações" + }, + "options_open_log": { + "message": "Abrir registro de filtragem" + }, + "options_popup_call_to_action": { + "message": "Digite a URL ou o caminho válido do filtro no campo de texto abaixo. " + }, + "options_popup_check_false_description": { + "message": "Erro ao adicionar o filtro personalizado." + }, + "options_popup_check_false_title": { + "message": "Erro" + }, + "options_popup_checking_filter": { + "message": "Verificação do filtro" + }, + "options_popup_description": { + "message": "Você será inscrito nesse filtro." + }, + "options_popup_filter_description": { + "message": "Descrição:" + }, + "options_popup_filter_homepage": { + "message": "Página Inicial:" + }, + "options_popup_filter_rules_count": { + "message": "Quantidade de regras: " + }, + "options_popup_filter_title": { + "message": "Título" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versão:" + }, + "options_popup_import_error_file_description": { + "message": "Algo deu errado." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Para importar este arquivo de configuração, permita que o AdGuard altere as configurações relacionadas à privacidade." + }, + "options_popup_import_error_title": { + "message": "Ocorreu um erro ao importar as configurações" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Extensão de arquivo deve ser %extension%" + }, + "options_popup_import_success_title": { + "message": "Configurações importadas" + }, + "options_popup_next_button": { + "message": "Próximo" + }, + "options_popup_subscribe_button": { + "message": "Inscrever-se" + }, + "options_popup_title_placeholder": { + "message": "Digite o nome do filtro" + }, + "options_popup_trusted_filter_description": { + "message": "Filtros confiáveis podem usar modificadores poderosos nas regras de filtragem, o que pode ser perigoso em mãos erradas. Não marque esta caixa a menos que você confie totalmente nela." + }, + "options_popup_trusted_filter_title": { + "message": "Confiável" + }, + "options_popup_try_again_button": { + "message": "Tente novamente" + }, + "options_popup_update_error": { + "message": "Falha ao obter atualizações. Por favor, tente novamente mais tarde." + }, + "options_popup_update_filter": { + "message": "foi atualizado." + }, + "options_popup_update_filters": { + "message": "foram atualizados." + }, + "options_popup_update_not_found": { + "message": "Seus filtros estão atualizados" + }, + "options_popup_update_title_error": { + "message": "Erro ao atualizar os filtros" + }, + "options_popup_updating_filters": { + "message": "Atualizando filtros..." + }, + "options_popup_url_placeholder": { + "message": "Digite a URL ou caminho:" + }, + "options_popup_url_title": { + "message": "Nova Inscrição de Filtro" + }, + "options_popup_version_update_changelog_text": { + "message": "O que há de novo nesta versão?" + }, + "options_popup_version_update_description_major": { + "message": "Esta é uma grande atualização que traz muitos novos recursos e melhorias." + }, + "options_popup_version_update_description_minor": { + "message": "Esta versão contém correções de bugs e pequenas melhorias." + }, + "options_popup_version_update_disable_notification": { + "message": "Desativar notificações" + }, + "options_popup_version_update_offer": { + "message": "Você sabia que os recursos do AdGuard não estão limitados apenas ao navegador?" + }, + "options_popup_version_update_offer_button_text": { + "message": "SAIBA MAIS" + }, + "options_popup_version_update_title_text": { + "message": "A extensão do AdGuard para navegador foi atualizado para a versão %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Faz o WebRTC usar uma política de endereço de IP mais rigorosa para ajudar a manter seu endereço de IP real oculto quando você usa um proxy ou VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Evite vazamentos de endereços IP por meio do WebRTC" + }, + "options_privacy": { + "message": "Proteção contra rastreamento" + }, + "options_privacy_desc": { + "message": "Protege sua atividade online e dados pessoais de rastreadores da web" + }, + "options_privacy_policy": { + "message": "Política de privacidade" + }, + "options_privacy_title": { + "message": "Proteção contra rastreamento" + }, + "options_rate_us_cta": { + "message": "Avalie" + }, + "options_remove_client_data_desc": { + "message": "Não permita que o Google Chrome de enviar sua versão e informações de modificação para os domínios do Google" + }, + "options_remove_client_data_title": { + "message": "Remover cabeçalho X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Remover" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Remover este filtro?" + }, + "options_report_bug": { + "message": "Reportar um problema" + }, + "options_reset_settings": { + "message": "Redefinir configurações" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Redefinir" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Todas as configurações serão redefinidas para seus valores padrão" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Redefinir configurações?" + }, + "options_reset_settings_done": { + "message": "As configurações foram redefinidas" + }, + "options_reset_settings_error": { + "message": "Erro ao redefinir as configurações" + }, + "options_reset_stats": { + "message": "Limpar estatísticas" + }, + "options_reset_stats_done": { + "message": "As estatísticas foram redefinidas" + }, + "options_rule_limits": { + "message": "Limites de regra" + }, + "options_rule_limits_description": { + "message": "O Chrome limita o número de regras que podem ser aplicadas" + }, + "options_rule_limits_dynamic": { + "message": "Regras dinâmicas" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regras de regex — incluídas em regras adicionadas pelo usuário" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Regras dinâmicas não seguras (usadas para alguns modificadores avançados, como $$redirect ou $$cookie) — incluídas nas regras adicionadas pelo usuário" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Regras adicionadas pelo usuário, como \u003Cuser_rules>regras de usuário\u003C/user_rules>, \u003Callowlist>sites da lista de permissões\u003C/allowlist> e \u003Ccustom_filters>filtros personalizados\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Regras adicionadas pelo usuário, como \u003Cuser_rules>regras de usuário\u003C/user_rules> e \u003Callowlist>sites da lista de permissões\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Regras estáticas" + }, + "options_rule_limits_static_rules_all": { + "message": "Regras de \u003Ca>filtros integrados\u003C/a>," + }, + "options_rule_limits_static_rules_regex": { + "message": "Regras Regex incluídas acima" + }, + "options_rule_limits_static_rulesets": { + "message": "Conjuntos de regras estáticas" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtros integrados\u003C/a>, como Bloqueio de elementos incômodos ou Filtros específicos de idioma" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opção 3. Se você estiver satisfeito com os filtros padrão ativados atualmente, \u003Ca>feche este aviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opção 3. Se você estiver satisfeito com o filtro padrão ativado no momento, \u003Ca>feche esse aviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opção 1. Exclua extensões de bloqueio de anúncios desnecessárias do seu navegador. Para reativar os filtros mencionados na seção \"Filtros ativados antes da atualização\", clique em \u003Ca>Reativar filtros.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opção 2. Instale o aplicativo Bloqueador de anúncios AdGuard: ele não tem restrições nas regras de filtragem. \u003Ca>Obter o aplicativo AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Suas possíveis ações" + }, + "options_rule_limits_warning_explanation_description": { + "message": "O limite de regras internas ativas foi excedido após uma atualização ou adição de uma nova extensão. De acordo com o Manifest V3, seu navegador Chrome reagiu desativando todos os filtros internos da extensão, exceto os padrões." + }, + "options_rule_limits_warning_explanation_title": { + "message": "O que aconteceu?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtros ativados antes da atualização" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtros ativados agora" + }, + "options_rule_limits_warning_title": { + "message": "O navegador modificou a lista de filtros ativos" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Remova os limites de regras e obtenha proteção estendida que funciona em todos os navegadores" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instale o aplicativo para desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ir para filtros" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gerenciar extensões" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "As extensões do navegador compartilham o mesmo limite de regras. Remover outros bloqueadores de anúncios pode liberar mais regras para a Extensão de Navegador do AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Remover outros bloqueadores de anúncios" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Ative os filtros de que você precisa. Filtros específicos de idioma e de privacidade podem usar muitas regras" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Revisar filtros disponíveis" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Veja o que você pode fazer" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limite atingido — alguns filtros foram desativados" + }, + "options_rule_syntax": { + "message": "Sintaxe de regras" + }, + "options_safebrowsing_enabled": { + "message": "Proteção contra phishing e malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Alerta sobre sites maliciosos e de phishing que utilizam o módulo de segurança de navegação do AdGuard. \u003Ca>Leia mais\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 horas" + }, + "options_select_update_period_1h": { + "message": "1 hora" + }, + "options_select_update_period_24h": { + "message": "24 horas" + }, + "options_select_update_period_48h": { + "message": "48 horas" + }, + "options_select_update_period_6h": { + "message": "6 horas" + }, + "options_select_update_period_default": { + "message": "Padrão" + }, + "options_select_update_period_disabled": { + "message": "Desativado" + }, + "options_send_not_track_desc": { + "message": "Enviar os sinais \u003Cgpc>Controle de privacidade global\u003C/gpc> e \u003Cdnt>Não rastrear\u003C/dnt> para os sites que você visita" + }, + "options_send_not_track_title": { + "message": "Pedir aos sites que não me rastreiem" + }, + "options_set_update_interval": { + "message": "Atualização automática de filtros" + }, + "options_set_update_interval_desc": { + "message": "Mantém os filtros atualizados para um bloqueio de anúncios mais eficaz" + }, + "options_settings": { + "message": "Configurações do AdGuard" + }, + "options_share_settings": { + "message": "Compartilhar configurações" + }, + "options_show_adguard_full_version_title": { + "message": "Mostrar informação da versão completa do AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notificar sobre atualizações na extensão" + }, + "options_show_blocked_ads_count_title": { + "message": "Mostrar o número de anúncios bloqueados no ícone na extensão do AdGuard" + }, + "options_show_context_menu_title": { + "message": "Adicionar o AdGuard ao menu de contexto do navegador" + }, + "options_site": { + "message": "Site oficial" + }, + "options_skip_to_main_content": { + "message": "Ir para o conteúdo principal" + }, + "options_stealth_general_title": { + "message": "Geral" + }, + "options_stealth_miscellaneous_title": { + "message": "Diversos" + }, + "options_stealth_tracking_methods_title": { + "message": "Métodos de rastreamento" + }, + "options_strip_tracking_params_description": { + "message": "Remove os parâmetros de rastreamento dos URLs da página usando o filtro de rastreamento de URL do AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Remover parâmetros de rastreamento de URLs" + }, + "options_stripped_tracking_parameters": { + "message": "Parâmetros de rastreamento removidos" + }, + "options_theme_selector_dark": { + "message": "Escuro" + }, + "options_theme_selector_light": { + "message": "Claro" + }, + "options_theme_selector_system": { + "message": "Padrão do sistema" + }, + "options_third_party_block_cookies_warning": { + "message": "Se você bloquear esses cookies, pode ter que entrar novamente em alguns sites ou enfrentar outros problemas relacionados a cookies" + }, + "options_third_party_desc": { + "message": "Impede que os anunciantes rastreiem seu comportamento em várias páginas, limitando a vida útil dos cookies de terceiros" + }, + "options_third_party_title": { + "message": "Excluir cookies de terceiros" + }, + "options_update_antibanner_filters": { + "message": "Verificar atualizações de filtros" + }, + "options_use_optimized_filters": { + "message": "Usar filtros otimizados" + }, + "options_use_optimized_filters_desc": { + "message": "Usa versões mais curtas de filtros apenas com as regras mais populares para economizar tráfego. Mais adequado para navegadores móveis" + }, + "options_user_rules_clear_search": { + "message": "Limpar pesquisa" + }, + "options_user_rules_create_rule": { + "message": "Criar regra" + }, + "options_user_rules_delete_all": { + "message": "Excluir tudo" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Todas as regras de usuário serão excluídas permanentemente" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Excluir tudo?" + }, + "options_user_rules_delete_all_success": { + "message": "Todas as regras do usuário foram excluídas" + }, + "options_user_rules_delete_rule": { + "message": "Excluir regra" + }, + "options_user_rules_deleted_notification": { + "message": "Regra do usuário excluída:" + }, + "options_user_rules_description_key": { + "message": "Suas regras para bloquear e desbloquear anúncios ou sites inteiros" + }, + "options_user_rules_edit_rule": { + "message": "Editar regra" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Vá para o editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Suas regras aparecerão aqui depois de fechá-las" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor aberto em outra janela" + }, + "options_user_rules_empty_placeholder": { + "message": "Ainda não há regras" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Regras de destaque…" + }, + "options_user_rules_import_error": { + "message": "Falha ao importar as regras do usuário. Tente novamente" + }, + "options_user_rules_import_success": { + "message": "Regras de usuário importadas com sucesso" + }, + "options_user_rules_menu": { + "message": "Ações de regras do usuário" + }, + "options_user_rules_no_match": { + "message": "Nada encontrado" + }, + "options_user_rules_search_placeholder": { + "message": "Procurar" + }, + "options_user_rules_switch_to_editor": { + "message": "Alternar para a visualização do editor" + }, + "options_user_rules_switch_to_list": { + "message": "Alternar para visualização em lista" + }, + "options_user_rules_undo": { + "message": "Desfazer" + }, + "options_userfilter": { + "message": "Regras de usuário" + }, + "options_userfilter_description_key": { + "message": "Você pode adicionar suas próprias regras aqui. Esta opção é recomendada para usuários avançados familiarizados com HTML/CSS. Leia o \u003Ca>tutorial de regras de filtro\u003C/a> para aprender como escrever suas próprias regras de filtro." + }, + "options_userfilter_export": { + "message": "Exportar" + }, + "options_userfilter_import": { + "message": "Importar" + }, + "options_userfilter_leave_subtitle": { + "message": "Suas alterações nas regras serão perdidas" + }, + "options_userfilter_line_break": { + "message": "Quebra de linha" + }, + "options_userfilter_line_break_off": { + "message": "Quebra de linha: Desativada" + }, + "options_userfilter_line_break_on": { + "message": "Quebra de linha: Ativada" + }, + "options_userfilter_subtitle_key": { + "message": "Permite que você adicione suas próprias regras de filtragem" + }, + "popup_abuse_site": { + "message": "Reportar este site" + }, + "popup_adguard_footer_title": { + "message": "Proteja seu dispositivo móvel" + }, + "popup_adguard_for_android": { + "message": "AdGuard para Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard para iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquear anúncios manualmente" + }, + "popup_get_system_wide_protection": { + "message": "Obtenha proteção para todo o sistema" + }, + "popup_header_cta_link": { + "message": "Como aumentar a proteção" + }, + "popup_header_update_filters": { + "message": "Verificar atualizações de filtros" + }, + "popup_limits_exceeded_warning": { + "message": "O navegador modificou a lista de filtros ativos" + }, + "popup_open_filtering_log": { + "message": "Abrir registro de filtragem" + }, + "popup_open_settings": { + "message": "Abre as configurações do AdGuard" + }, + "popup_protection_button": { + "message": "Proteção do AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Excluir regras de usuário deste site" + }, + "popup_resume_protection_button": { + "message": "Retomar" + }, + "popup_security_report": { + "message": "Verificar a segurança do site" + }, + "popup_site_exception_information": { + "message": "A filtragem está desativada porque pode interferir na operação deste site." + }, + "popup_site_filtering_state_disabled": { + "message": "A proteção está desativada" + }, + "popup_site_filtering_state_disabling": { + "message": "Desativando a proteção..." + }, + "popup_site_filtering_state_enabled": { + "message": "A proteção está ativada" + }, + "popup_site_filtering_state_enabling": { + "message": "Ativando a proteção..." + }, + "popup_site_filtering_state_loading": { + "message": "Carregando..." + }, + "popup_site_filtering_state_paused": { + "message": "Proteção está pausada" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausando a proteção..." + }, + "popup_site_filtering_state_resuming": { + "message": "Retomando a proteção..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Página segura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "para todos os sites" + }, + "popup_statistics_all_categories": { + "message": "Todos" + }, + "popup_statistics_category_advertising": { + "message": "Anúncios" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoria de estatísticas" + }, + "popup_statistics_category_other": { + "message": "Outros" + }, + "popup_statistics_category_social_media": { + "message": "Rede social" + }, + "popup_statistics_category_trackers": { + "message": "Rastreadores" + }, + "popup_statistics_months_apr": { + "message": "Abr" + }, + "popup_statistics_months_aug": { + "message": "Ago" + }, + "popup_statistics_months_dec": { + "message": "Dez" + }, + "popup_statistics_months_feb": { + "message": "Fev" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Mai" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Out" + }, + "popup_statistics_months_sep": { + "message": "Set" + }, + "popup_statistics_time_day": { + "message": "24 horas" + }, + "popup_statistics_time_label": { + "message": "Período de tempo das estatísticas" + }, + "popup_statistics_time_month": { + "message": "30 dias" + }, + "popup_statistics_time_week": { + "message": "7 dias" + }, + "popup_statistics_time_year": { + "message": "1 ano" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Sex" + }, + "popup_statistics_week_days_mon": { + "message": "Seg" + }, + "popup_statistics_week_days_sat": { + "message": "Sab" + }, + "popup_statistics_week_days_sun": { + "message": "Dom" + }, + "popup_statistics_week_days_thu": { + "message": "Qui" + }, + "popup_statistics_week_days_tue": { + "message": "Ter" + }, + "popup_statistics_week_days_wed": { + "message": "Quar" + }, + "popup_switch_button": { + "message": "Proteção para o site atual" + }, + "popup_tab_actions": { + "message": "Ações" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloqueado: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloqueado: %num%" + }, + "popup_tab_current_website": { + "message": "Site atual" + }, + "popup_tab_statistics": { + "message": "Estatísticas" + }, + "popup_tabs": { + "message": "Abas" + }, + "popup_tooltip_loading": { + "message": "Carregando..." + }, + "popup_tooltip_protection_disabled": { + "message": "Proteção desativada" + }, + "popup_tooltip_protection_enabled": { + "message": "Proteção habilitada para {0}" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Algumas regras não foram aplicadas" + }, + "popup_tooltip_update_available": { + "message": "Atualização disponível" + }, + "post_install_loading": { + "message": "Carregando extensão..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Limite de regras excedido na extensão de navegador AdGuard. Verifique seus filtros e desative os que você não precisa" + }, + "text_collapser_hide_default": { + "message": "Ocultar texto completo" + }, + "text_collapser_show_default": { + "message": "Mostrar texto completo" + }, + "update_available_desc": { + "message": "Para bloquear anúncios de forma eficaz, mantenha sua extensão e a filtragem atualizadas" + }, + "update_available_title": { + "message": "Atualizações disponíveis" + }, + "update_available_update_btn": { + "message": "Atualizar" + }, + "update_check": { + "message": "Verificar atualizações" + }, + "update_checking_in_progress": { + "message": "Verificando atualizações..." + }, + "update_failed_text": { + "message": "Falha ao concluir a atualização" + }, + "update_failed_try_again_btn": { + "message": "Tente novamente" + }, + "update_installing_in_progress_desc": { + "message": "A extensão será reiniciada após a atualização" + }, + "update_installing_in_progress_title": { + "message": "Atualizando a extensão e os filtros..." + }, + "update_not_needed": { + "message": "Sua extensão e os filtros estão atualizados" + }, + "update_success_text": { + "message": "Extensão e filtros atualizados" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_PT/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_PT/messages.json new file mode 100644 index 0000000..ca53302 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/pt_PT/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% foi ativado automaticamente." + }, + "alert_popup_filter_enabled_title": { + "message": "Ativação automática de filtros" + }, + "background_tab_title": { + "message": "Separador de fundo" + }, + "blocking_pages_advanced_button": { + "message": "Avançado" + }, + "blocking_pages_btn_go_back": { + "message": "Voltar" + }, + "blocking_pages_btn_proceed": { + "message": "Prosseguir mesmo assim" + }, + "blocking_pages_malware": { + "message": "Este sítio \u003Cstrong>%host%\u003C/strong> foi classificado como uma página de malware e foi bloqueada com base em suas preferências de segurança." + }, + "blocking_pages_more_info_button": { + "message": "Mais informação" + }, + "blocking_pages_page_title": { + "message": "Acesso negado" + }, + "blocking_pages_phishing": { + "message": "Este sítio \u003Cstrong>%host%\u003C/strong> foi classificado como uma página de phishing e foi bloqueada com base em suas preferências de segurança." + }, + "blocking_pages_rule_content_title": { + "message": "O AdGuard impediu o carregamento dessa página devido à seguinte regra de filtro" + }, + "blocking_pages_rule_header_title": { + "message": "Bloqueado pelo AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard bloqueou o acesso a esta página" + }, + "clear_button_title": { + "message": "Limpar" + }, + "close_button_title": { + "message": "Fechar" + }, + "context_block_site_ads": { + "message": "Bloquear anúncios manualmente" + }, + "context_complaint_website": { + "message": "Comunicar um problema" + }, + "context_disable_protection": { + "message": "Pausar a proteção do AdGuard" + }, + "context_enable_protection": { + "message": "Retomar a proteção do AdGuard" + }, + "context_open_log": { + "message": "Registo de filtros" + }, + "context_open_settings": { + "message": "Definições do AdGuard" + }, + "context_security_report": { + "message": "Verificar a segurança do sítio" + }, + "context_site_exception": { + "message": "Este sítio está nas excepções" + }, + "context_site_filtering_disabled": { + "message": "O AdGuard não consegue filtrar esta página" + }, + "context_site_filtering_off": { + "message": "Desativar filtragem neste sítio" + }, + "context_site_filtering_on": { + "message": "Ativar filtragem neste sítio" + }, + "context_site_protection_disabled": { + "message": "A proteção AdGuard está em pausa" + }, + "context_update_antibanner_filters": { + "message": "Verificar atualizações de filtros" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Extensão de bloqueio de anúncios eficaz contra publicidade e popups. Bloqueia anúncios no Facebook, no YouTube e outros sítios." + }, + "filtering_clear_log_events": { + "message": "Limpar registo" + }, + "filtering_log_actions_menu": { + "message": "Filtragem de ações de log" + }, + "filtering_log_assumed_rule_description": { + "message": "Esta é uma regra assumida. Para mais informações, consulte a nossa \u003Ca>Base de conhecimento\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Método de solicitação de HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Código de estado de HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Solicitação de terceiros" + }, + "filtering_log_details_modal_back_button": { + "message": "Voltar para a solicitação" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Bonito" + }, + "filtering_log_details_modal_try_again": { + "message": "Tente novamente" + }, + "filtering_log_filter_allowed": { + "message": "Permitido" + }, + "filtering_log_filter_blocked": { + "message": "Bloqueado" + }, + "filtering_log_filter_modified": { + "message": "Modificado" + }, + "filtering_log_filter_regular": { + "message": "Normal" + }, + "filtering_log_filter_user_rules": { + "message": "Regras do utilizador" + }, + "filtering_log_hide_referrer": { + "message": "Referenciador oculto de terceiros" + }, + "filtering_log_hide_search_queries": { + "message": "As suas consultas de pesquisa ocultas" + }, + "filtering_log_in_allowlist": { + "message": "O sítio está permitido" + }, + "filtering_log_modified_rules": { + "message": "Regras modificadas: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Sim, preservar" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Esta opção pode aumentar significativamente o uso de memória" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Manter registo?" + }, + "filtering_log_preserve_log_off": { + "message": "Não manter o registo" + }, + "filtering_log_preserve_log_on": { + "message": "Manter registo" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Não mostrar novamente" + }, + "filtering_log_privacy_applied_rules": { + "message": "Aplicada proteção de rastreio" + }, + "filtering_log_remove_client_data": { + "message": "Cabeçalho de Dados X-Cliente removido" + }, + "filtering_log_search_string": { + "message": "Pesquisar" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Pesquisar nos separadores" + }, + "filtering_log_send_not_track": { + "message": "Cabeçalho Não-Monitorizar enviado" + }, + "filtering_log_status_allowed": { + "message": "Permitido" + }, + "filtering_log_status_blocked": { + "message": "Bloqueado" + }, + "filtering_log_status_modified": { + "message": "Modificado" + }, + "filtering_log_status_processed": { + "message": "Processado" + }, + "filtering_log_stealth_rules": { + "message": "Regras de proteção do rastreio: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origem da solicitação" + }, + "filtering_log_tag_request_status": { + "message": "Estado da filtragem" + }, + "filtering_log_tag_request_type": { + "message": "Tipo de solicitação" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Solicitações permitidas e desbloqueadas" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Solicitações bloqueadas" + }, + "filtering_log_tag_tooltip_css": { + "message": "Folhas de estilo" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Solicitações primárias" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documentos e subdocumentos" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imagens" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Mídia" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Solicitações modificadas" + }, + "filtering_log_tag_tooltip_other": { + "message": "Tipos de letra, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Solicitações processadas sem filtragem" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Solicitações de terceiros" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Solicitações afetadas pelas regras do utilizador" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Solicitações XML Http e solicitações de busca" + }, + "filtering_log_title": { + "message": "Registo de Filtragem" + }, + "filtering_menu_open_filters": { + "message": "Personalizar" + }, + "filtering_modal_add_rule": { + "message": "Adicionar" + }, + "filtering_modal_allow_title": { + "message": "Adicionar regra de permissão" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra aplicada | Regras aplicadas" + }, + "filtering_modal_apply_domains": { + "message": "Aplicar a todos os sítios Web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra assumida: | Regras assumidas:" + }, + "filtering_modal_block": { + "message": "Bloquear" + }, + "filtering_modal_block_again": { + "message": "Bloquear novamente" + }, + "filtering_modal_block_title": { + "message": "Adicionar regra de bloqueio" + }, + "filtering_modal_converted_to": { + "message": "Convertido para:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiado" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiar para a área de transferência" + }, + "filtering_modal_declarative_rule": { + "message": "Regra DNR:" + }, + "filtering_modal_element": { + "message": "Elemento:" + }, + "filtering_modal_exception_title": { + "message": "Adicione uma excepção" + }, + "filtering_modal_filter": { + "message": "Filtro" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Estado da filtragem" + }, + "filtering_modal_hide_full_element": { + "message": "Esconder elemento completo" + }, + "filtering_modal_hide_full_rule": { + "message": "Esconder regra completa" + }, + "filtering_modal_hide_full_url": { + "message": "Esconder URL completa" + }, + "filtering_modal_important": { + "message": "Conceda à regra uma alta prioridade" + }, + "filtering_modal_info_title": { + "message": "Solicitar detalhes" + }, + "filtering_modal_open_in_new_tab": { + "message": "Abrir num novo separador" + }, + "filtering_modal_options_desc": { + "message": "Opções" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regra original: | Regras originais:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "O que deve ser permitido" + }, + "filtering_modal_patterns_desc_block": { + "message": "O que deve ser bloqueado" + }, + "filtering_modal_preview_request_button": { + "message": "Pré-visualização" + }, + "filtering_modal_preview_title": { + "message": "Pré-visualização" + }, + "filtering_modal_privacy": { + "message": "Proteção contra monitorização" + }, + "filtering_modal_remove_allowlist": { + "message": "Remover da lista de permissões" + }, + "filtering_modal_remove_param": { + "message": "Remover parâmetros de consulta" + }, + "filtering_modal_remove_user": { + "message": "Apagar regra" + }, + "filtering_modal_rule": { + "message": "Regra:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regra" + }, + "filtering_modal_rules": { + "message": "Regras:" + }, + "filtering_modal_show_full_element": { + "message": "Mostrar elemento completo" + }, + "filtering_modal_show_full_rule": { + "message": "Mostrar regra completa" + }, + "filtering_modal_show_full_url": { + "message": "Mostrar URL completa" + }, + "filtering_modal_source": { + "message": "Fonte" + }, + "filtering_modal_status_text_desc": { + "message": "Estado" + }, + "filtering_modal_status_text_error": { + "message": "Falha ao carregar a pré-visualização. Por favor, tente novamente" + }, + "filtering_modal_status_text_loading": { + "message": "A carregar..." + }, + "filtering_modal_third_party": { + "message": "Aplicar somente a solicitações de terceiros" + }, + "filtering_modal_type": { + "message": "Tipo" + }, + "filtering_modal_unblock": { + "message": "Desbloquear" + }, + "filtering_refresh_tab_short": { + "message": "Atualizar" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Atualizar página" + }, + "filtering_table_action": { + "message": "Acção" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Não foi encontrado nada. \u003Creset>Desative os filtros\u003C/reset> ou \u003Crefresh>recarregue a página\u003C/refresh> para ver os registos de logs" + }, + "filtering_table_filter": { + "message": "Filtro" + }, + "filtering_table_open_details": { + "message": "Abrir detalhes" + }, + "filtering_table_rule": { + "message": "A filtrar regra" + }, + "filtering_table_source": { + "message": "Fonte" + }, + "filtering_table_status": { + "message": "Estado" + }, + "filtering_table_type": { + "message": "Tipo" + }, + "filtering_type_all": { + "message": "Todos" + }, + "filtering_type_other": { + "message": "Noutros" + }, + "filters_download_loading": { + "message": "Por favor aguarde, enquanto a base de dados dos filtros está a carregar..." + }, + "filters_download_title": { + "message": "A base de dados dos filtros está a carregar..." + }, + "fullscreen_user_rules_title": { + "message": "Regras do utilizador" + }, + "group_description_adblocking": { + "message": "Configure o bloqueio de anúncios aqui para lidar com banners irritantes, pop-ups, anúncios em vídeo e outros, de uma vez por todas" + }, + "group_description_annoyances": { + "message": "Remover janelas pop-up e outras notificações irritantes, como avisos de cookies" + }, + "group_description_custom": { + "message": "Crie seus próprios filtros para um ajuste fino de filtragem da web de acordo com sua preferência." + }, + "group_description_lang": { + "message": "Não se limite, bloqueie anúncios em sítios em qualquer idioma" + }, + "group_description_miscellaneous": { + "message": "Mais opções para configurar sua navegação na web com o AdGuard ainda mais" + }, + "group_description_security": { + "message": "Proteja-se contra malware, phishing e outras ameaças online" + }, + "group_description_social": { + "message": "Ocultar botões \"Gosto\"/\"Partilhar\" indesejados e outros widgets de mídia social" + }, + "group_description_stealth": { + "message": "Proteja sua identidade e informações pessoais confidenciais de milhares de monitorizadores online, bloqueando todos os métodos de monitorizadores populares conhecidos" + }, + "name": { + "message": "Bloqueador de publicidade do AdGuard" + }, + "opera_search_permission_dont_show": { + "message": "Não mostrar novamente" + }, + "opera_search_permission_go_to_settings": { + "message": "Vá para as Definições" + }, + "opera_search_permission_warning": { + "message": "Para bloquear anúncios de pesquisa, permita o acesso aos resultados da página de pesquisa nas definições do navegador" + }, + "options_about": { + "message": "Acerca de" + }, + "options_about_libs": { + "message": "Bibliotecas usadas" + }, + "options_about_title": { + "message": "Extensão do AdGuard para navegador" + }, + "options_about_update_available": { + "message": "A versão %version% está disponível. Será baixada e instalada automaticamente." + }, + "options_about_version": { + "message": "Versão" + }, + "options_acknowledgment": { + "message": "Agradecimentos" + }, + "options_add_custom_filter": { + "message": "Adicionar filtro personalizado" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Adicionar" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "A verificar o seu filtro..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "O URL devolveu uma página web em vez de uma lista de filtros. Forneça um link direto para o ficheiro de filtros." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Por favor, tente novamente ou entre em contacto com o suporte" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Falha ao adicionar filtro personalizado" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Nome do filtro:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Confiável" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Algumas regras de filtro podem alterar significativamente a sua experiência de navegação e comprometer a sua privacidade. Certifique-se de usar apenas filtros de programadores em quem você confia" + }, + "options_add_custom_filter_modal_title": { + "message": "Adicionar filtro personalizado" + }, + "options_all_limits_exceeded_warning": { + "message": "Atingiu o limite de regras incorporadas ativas. O seu navegador modificou a lista de filtros incorporados ativos. O número de filtros ativados foi alterado de %expected% para %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Atingiu o limite do seu browser para regras incorporadas activas. O seu browser reduziu a lista de filtros incorporados activos de %expected% para %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "O seu browser restringe \u003Cexternal-link>alguns tipos de regras\u003C/external-link>. Para aplicar todas as regras, active a opção \u003Cb>Permitir scripts do utilizador\u003C/b> nas \u003Csettings-link>definições de extensão\u003C/settings-link> do seu browser" + }, + "options_allowlist": { + "message": "Lista de permissões" + }, + "options_allowlist_alert_invert": { + "message": "A lista de permissões está invertida. Os anúncios só são bloqueados nos sites adicionados a ela." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Parar de inverter\u003C/a>" + }, + "options_allowlist_desc": { + "message": "O AdGuard não bloqueia anúncios e monitorizadores em sítios Web da lista" + }, + "options_allowlist_invalid_entries": { + "message": "Para guardar, mantenha apenas os domínios ou URLs. Estes precisam de ser corrigidos: %entries%" + }, + "options_allowlist_invert": { + "message": "Inverter lista de permissões" + }, + "options_allowlist_invert_desc": { + "message": "Bloqueia anúncios e monitorizadores apenas em sítios Web permitidos" + }, + "options_allowlist_leave_subtitle": { + "message": "Suas alterações à lista de permissões serão perdidas" + }, + "options_allowlist_menu": { + "message": "Ações da lista de permissões" + }, + "options_anonymized_usage_data_description": { + "message": "Envia estatísticas anónimas sobre o uso da extensão para o AdGuard. \u003Cbutton>Saiba mais\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Entendi" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Esses dados incluem:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Nomes dos botões em que você clica" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nomes das telas com as quais você interage" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificadores de sessão" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Esses dados são anónimos e usados apenas internamente. Nunca o compartilhamos com terceiros" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Precisamos dessa informação para analisar e melhorar a funcionalidade do AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dados de utilização da extensão" + }, + "options_anonymized_usage_data_title": { + "message": "Enviar dados de uso de extensão anonimizados" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Este filtro personalizado já foi adicionado" + }, + "options_antibanner_custom_group": { + "message": "Personalizado" + }, + "options_antibanner_custom_group_description": { + "message": "Permite-lhe adicionar filtros a partir de um ficheiro ou URL" + }, + "options_antibanner_rules_count": { + "message": "Regras: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Atualizado: %date%" + }, + "options_block_acceptable_ads": { + "message": "Bloqueia anúncios da rede de pesquisa e autopromoção de sítios" + }, + "options_block_acceptable_ads_desc": { + "message": "Bloqueia anúncios nos resultados de pesquisa e autopromoção de sítios Web. \u003Ca>Saiba mais\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Para bloquear os Cookies, defina a vida útil para 0" + }, + "options_block_known_trackers_description": { + "message": "Bloqueia rastreadores e análises da web usando o filtro de proteção de monitorização do AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Bloquear monitorizadores" + }, + "options_check_update_progress": { + "message": "A verificar..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Limpar" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Todas as estatísticas sobre a utilização de dados serão permanentemente eliminadas" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Limpar estatísticas?" + }, + "options_clipboard_permission_warning": { + "message": "Para copiar e colar regras, permita que o AdGuard aceda à área de transferência. \u003Ca>Permitir\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Envia estatísticas anónimas sobre o uso do filtro de anúncios para AdGuard. \u003Ca>Saiba mais\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ajude a desenvolver os filtros do AdGuard" + }, + "options_coming_soon": { + "message": "Em breve" + }, + "options_confirm_modal_cancel_button": { + "message": "Cancelar" + }, + "options_copyright": { + "message": "Todos os direitos reservados." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para utilizar filtros personalizados, active a opção \u003Cb>Permitir scripts do utilizador\u003C/b> nas \u003Csettings-link>definições de extensão\u003C/settings-link> do seu navegador" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Para usar filtros personalizados, habilite \u003Cb>Modo de desenvolvedor\u003C/b> nas \u003Csettings-link>Configurações de extensão\u003C/settings-link> do seu navegador" + }, + "options_desktop_app_promo_button_linux": { + "message": "Obter o AdGuard para Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obtenha o AdGuard para Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obtenha o AdGuard para Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicações como o Spotify, Discord ou Zoom ainda podem exibir anúncios e acompanhar a sua atividade" + }, + "options_desktop_app_promo_subdescription": { + "message": "A nossa aplicação para desktop pode protegê-lo deles" + }, + "options_desktop_app_promo_title": { + "message": "A extensão apenas protege o browser" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "O seu navegador restringe \u003Cexternal-link>alguns tipos de regras\u003C/external-link>. Para aplicar todas as regras, ative o \u003Cb>Modo de programador\u003C/b> nas \u003Csettings-link>definições da extensão\u003C/settings-link> do seu navegador" + }, + "options_disable_webrtc_desc": { + "message": "Bloqueia o WebRTC que pode revelar o seu endereço de IP real, mesmo se usar um proxy ou VPN. Alguns mensageiros, plataformas de streaming ou jogos podem parar de funcionar corretamente" + }, + "options_disable_webrtc_title": { + "message": "Bloquear WebRTC" + }, + "options_discuss": { + "message": "Discutir AdGuard" + }, + "options_do_you_like_question": { + "message": "Tu gostastes do AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Sair do modo janela" + }, + "options_editor_indicator_saved": { + "message": "Guardado" + }, + "options_editor_indicator_saving": { + "message": "A guardar..." + }, + "options_editor_leave_cancel": { + "message": "Voltar à edição" + }, + "options_editor_leave_confirm": { + "message": "Sim, sair" + }, + "options_editor_leave_title": { + "message": "Sair sem salvar?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Abrir editor em uma nova janela" + }, + "options_editor_save": { + "message": "Guardar" + }, + "options_editor_save_error": { + "message": "Falha ao guardar as alterações. Tente novamente ou entre em contacto com a assistência" + }, + "options_empty_custom_filter": { + "message": "Tu ainda não tens filtros personalizados" + }, + "options_enable_autodetect_filter": { + "message": "Ativar automaticamente os filtros mais apropriados" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detecta o idioma do sítio Web e ativa os filtros adequados" + }, + "options_export_settings": { + "message": "Exportar definições" + }, + "options_filters": { + "message": "Filtros" + }, + "options_filters_annoyances_consent_description": { + "message": "Está prestes a ativar um ou mais filtros de aborrecimento. Estes bloqueiam elementos que são irrelevantes para o conteúdo do website ou que, sendo relacionados, são considerados intrusivos para a sua experiência de utilizador. Os proprietários dos websites podem considerar estes elementos obrigatórios: se os bloquear, poderá estar a violar os seus termos de utilização, algumas funcionalidades dos websites podem não estar disponíveis ou podem não funcionar corretamente. Você compreende e concorda que é o único responsável por cumprir os termos de utilização dos websites que visita e que a AdGuard não é responsável pelo seu cumprimento dos termos de utilização dos websites que visita ao usar os nossos produtos." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Ativar" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Página inicial" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Para obter detalhes sobre o que os filtros de elementos incómodos do AdGuard bloqueiam, consulte a nossa \u003Ca>Política de filtros\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Ativar estes filtros?" + }, + "options_filters_annoyances_consent_title": { + "message": "Leia com atenção antes de ativar os Filtros de elementos incómodos" + }, + "options_filters_back_button": { + "message": "Voltar" + }, + "options_filters_empty_title": { + "message": "Nada encontrado" + }, + "options_filters_enabled": { + "message": "Ativado:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% e %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% e %more% mais" + }, + "options_filters_enabled_per_group": { + "message": "Ativado: %current% de %total%" + }, + "options_filters_filter_link": { + "message": "Vá para a página inicial" + }, + "options_filters_filter_tags": { + "message": "Tags de filtro" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Escolheu confiar neste filtro." + }, + "options_filters_filter_updated": { + "message": "atualizado:" + }, + "options_filters_filter_version": { + "message": "versão:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Regras totais: %num%" + }, + "options_filters_last_checked": { + "message": "Última verificação: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Todos os filtros" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Desativados" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Ativado" + }, + "options_filters_no_enabled": { + "message": "Nenhum filtro ativado" + }, + "options_filters_of_group": { + "message": "Filtros do grupo \"%groupName%\"" + }, + "options_filters_search": { + "message": "Pesquisar" + }, + "options_filters_search_filter": { + "message": "Pesquisar filtro" + }, + "options_first_party_block_cookies_warning": { + "message": "Se bloquear estes cookies, alguns sítios poderão quebrar ou parar de funcionar" + }, + "options_first_party_desc": { + "message": "Impede que sítios se lembrem dos seus dados, como as suas credenciais de login e preferências de idioma, limitando o tempo de vida dos Cookie primários" + }, + "options_first_party_title": { + "message": "Elimina “cookies” originais (não recomendado)" + }, + "options_general_settings": { + "message": "Geral" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Impede que terceiros saibam que sítio está a visitar" + }, + "options_hide_referrer_title": { + "message": "Ocultar referenciador de terceiros" + }, + "options_hide_search_queries_desc": { + "message": "Oculta as suas pesquisas dos sítios web visitados através dos resultados dos motores de busca" + }, + "options_hide_search_queries_title": { + "message": "Ocultar consultas de pesquisa" + }, + "options_import_configuration_applying_subtitle": { + "message": "A substituir as suas definições atuais pelas importadas. A filtragem é desativada durante a importação" + }, + "options_import_configuration_applying_title": { + "message": "A importar..." + }, + "options_import_configuration_confirm_button": { + "message": "Importar" + }, + "options_import_configuration_confirm_subtitle": { + "message": "As definições importadas substituirão as atuais. As outras definições não serão afetadas" + }, + "options_import_configuration_confirm_title": { + "message": "Importar definições" + }, + "options_import_configuration_error_button": { + "message": "Fechar" + }, + "options_import_configuration_error_subtitle": { + "message": "Verifique a ligação de importação e tente novamente. Se não ajudar, contacte o suporte" + }, + "options_import_configuration_error_title": { + "message": "Falha ao importar as definições" + }, + "options_import_configuration_success_button": { + "message": "Fechar" + }, + "options_import_configuration_success_subtitle": { + "message": "As definições foram importadas com sucesso" + }, + "options_import_configuration_success_title": { + "message": "Concluído" + }, + "options_import_settings": { + "message": "Importar definições" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inverter" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Os anúncios e rastreadores só serão bloqueados nos sites da lista de permissões" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inverter a lista de permissões?" + }, + "options_leave_feedback": { + "message": "Deixar feedback" + }, + "options_lifetime_minutes": { + "message": "Vida útil, em minutos" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Atingiu o limite de regras regex adicionadas pelo utilizador. %maximum% de %current% regras regex estão ativadas." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Atingiu o limite de regras regex adicionadas pelo usuário. %maximum% de %current% regras estão ativadas. Para adicionar novas regras regex, remova algumas existentes" + }, + "options_limits_warning_dynamic_rules": { + "message": "Atingiu o limite de regras adicionadas pelo utilizador. %maximum% de %current% regras estão ativadas." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Atingiu o limite de regras adicionadas pelo usuário. %maximum% de %current% regras estão ativadas. Para adicionar novas regras, remova algumas existentes" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Atingiu o limite de regras inseguras adicionadas pelo utilizador. %maximum% de %current% regras não seguras estão ativas." + }, + "options_limits_warning_static_filters": { + "message": "Atingiu o limite de filtros incorporados ativos. %maximum% de %current% filtros estão ativados. Para ativar novas regras, desative alguns filtros incorporados." + }, + "options_limits_warning_static_filters_browser": { + "message": "Atingiu o limite do seu browser para filtros incorporados activos. %maximum% de %current% filtros estão activados. Para ativar novos filtros, desactive alguns filtros incorporados" + }, + "options_limits_warning_static_regex_rules": { + "message": "Atingiu o limite de regras regex incorporadas ativas. %maximum% de %current% regras regex estão ativadas. Para ativar novas regras, desative alguns filtros incorporados." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Atingiu o limite de regras regex incorporadas activas. Para ativar novas regras, desactive alguns filtros incorporados" + }, + "options_limits_warning_static_rules": { + "message": "Atingiu o limite de regras incorporadas ativas. %maximum% de %current% regras estão ativadas. Para ativar novas regras, desative alguns filtros incorporados." + }, + "options_limits_warning_static_rules_browser": { + "message": "Você atingiu o limite do seu navegador para regras internas ativas. Para ativar novas regras, desative alguns filtros internos" + }, + "options_loader_applying_changes": { + "message": "Aplicar alterações..." + }, + "options_miscellaneous_settings": { + "message": "Definições adicionais" + }, + "options_modified_first_party_cookie": { + "message": "Cookies primários modificados" + }, + "options_modified_third_party_cookie": { + "message": "Cookies de terceiros modificados" + }, + "options_nav_better_than_extension": { + "message": "Porque a aplicação do AdGuard é melhor que a extensão?" + }, + "options_nav_compare": { + "message": "Comparar" + }, + "options_navigation": { + "message": "Navegação" + }, + "options_open_changelog": { + "message": "Lista de Alterações" + }, + "options_open_log": { + "message": "Abrir registo de filtragem" + }, + "options_popup_call_to_action": { + "message": "Insira a URL ou o caminho do ficheiro do filtro na caixa de entrada abaixo." + }, + "options_popup_check_false_description": { + "message": "Erro ao adicionar o filtro personalizado." + }, + "options_popup_check_false_title": { + "message": "Erro" + }, + "options_popup_checking_filter": { + "message": "A verificar o seu filtro" + }, + "options_popup_description": { + "message": "Estará subscrito a esse filtro." + }, + "options_popup_filter_description": { + "message": "Descrição:" + }, + "options_popup_filter_homepage": { + "message": "Página Principal" + }, + "options_popup_filter_rules_count": { + "message": "Total de Regras:" + }, + "options_popup_filter_title": { + "message": "Título:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versão:" + }, + "options_popup_import_error_file_description": { + "message": "Algo correu mal." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Para importar este ficheiro de configuração, permita que o AdGuard altere as suas definições relacionadas com a privacidade." + }, + "options_popup_import_error_title": { + "message": "Falha ao importar as definições" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "A extensão do ficheiro deve ser %extension%" + }, + "options_popup_import_success_title": { + "message": "Definições importadas" + }, + "options_popup_next_button": { + "message": "Próximo" + }, + "options_popup_subscribe_button": { + "message": "Subscrever" + }, + "options_popup_title_placeholder": { + "message": "Insira um nome do filtro" + }, + "options_popup_trusted_filter_description": { + "message": "Filtros confiáveis ​​podem usar modificadores poderosos de regras de filtragem, que podem ser perigosos nas mãos erradas. Não marque esta caixa a menos que confie totalmente nela." + }, + "options_popup_trusted_filter_title": { + "message": "Confiável" + }, + "options_popup_try_again_button": { + "message": "Tente novamente" + }, + "options_popup_update_error": { + "message": "Erro ao atualizar. Por favor, tente mais tarde." + }, + "options_popup_update_filter": { + "message": "foi atualizado." + }, + "options_popup_update_filters": { + "message": "foram atualizados." + }, + "options_popup_update_not_found": { + "message": "Os seus filtros estão actualizados" + }, + "options_popup_update_title_error": { + "message": "Erro ao atualizar filtros" + }, + "options_popup_updating_filters": { + "message": "A atualizar filtros..." + }, + "options_popup_url_placeholder": { + "message": "Insira a URL ou caminho:" + }, + "options_popup_url_title": { + "message": "Nova Assinatura de Filtro" + }, + "options_popup_version_update_changelog_text": { + "message": "O que há de novo nesta versão?" + }, + "options_popup_version_update_description_major": { + "message": "Esta é uma grande atualização de extensão que traz muitos recursos novos e melhorias." + }, + "options_popup_version_update_description_minor": { + "message": "Esta versão contém principalmente correcções de bugs e pequenas melhorias." + }, + "options_popup_version_update_disable_notification": { + "message": "Desativar notificações" + }, + "options_popup_version_update_offer": { + "message": "Sabia que os recursos do AdGuard não estão limitados a este navegador?" + }, + "options_popup_version_update_offer_button_text": { + "message": "SAIBA MAIS" + }, + "options_popup_version_update_title_text": { + "message": "A extensão do AdGuard acabou de ser atualizada para a versão %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Faz com que o WebRTC utilize uma política de endereçamento IP mais rigorosa para ajudar a manter o seu endereço IP real oculto quando utiliza um proxy ou VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Evite fugas de endereços IP através do WebRTC" + }, + "options_privacy": { + "message": "Proteção contra monitorização" + }, + "options_privacy_desc": { + "message": "Protege sua atividade online e dados pessoais de monitorizadores da web" + }, + "options_privacy_policy": { + "message": "Política de privacidade" + }, + "options_privacy_title": { + "message": "Proteção contra monitorização" + }, + "options_rate_us_cta": { + "message": "Avalie" + }, + "options_remove_client_data_desc": { + "message": "Bloqueia o Google Chrome de enviar a sua versão e modificação de informações para os domínios do Google" + }, + "options_remove_client_data_title": { + "message": "Remover o cabeçalho X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Remover" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Remover este filtro?" + }, + "options_report_bug": { + "message": "Comunicar um problema" + }, + "options_reset_settings": { + "message": "Repor definições" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Repor" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Todas as configurações serão repostas para seus valores predefinidos" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Repor definições?" + }, + "options_reset_settings_done": { + "message": "Definições foram repostas" + }, + "options_reset_settings_error": { + "message": "Erro ao redefinir as definições" + }, + "options_reset_stats": { + "message": "Limpar estatísticas" + }, + "options_reset_stats_done": { + "message": "Estatísticas foram repostas" + }, + "options_rule_limits": { + "message": "Limites de regra" + }, + "options_rule_limits_description": { + "message": "O Chrome limita o número de regras que podem ser aplicadas" + }, + "options_rule_limits_dynamic": { + "message": "Regras dinâmicas" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regras Regex — incluídas nas regras adicionadas pelo utilizador" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Regras dinâmicas não seguras (utilizadas para alguns modificadores avançados, como $$redirect ou $$cookie) — incluídas nas regras adicionadas pelo utilizador" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Regras adicionadas pelo utilizador, tais como \u003Cuser_rules>regras de utilizador\u003C/user_rules>, \u003Callowlist>websites de listas de permissões\u003C/allowlist> e \u003Ccustom_filters>filtros personalizados\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Regras adicionadas pelo utilizador, tais como \u003Cuser_rules>regras do utilizador\u003C/user_rules> e \u003Callowlist>sítios em lista de permissões\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% de %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Regras estáticas" + }, + "options_rule_limits_static_rules_all": { + "message": "Regras dos \u003Ca>filtros incorporados\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regras Regex — incluídas acima" + }, + "options_rule_limits_static_rulesets": { + "message": "Conjuntos de regras estáticas" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtros incorporados\u003C/a>, tais como Bloqueio de elementos incómodos ou Filtros específicos de idioma" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opção 3. Se estiver satisfeito com os filtros predefinidos ativos atualmente, \u003Ca>feche este aviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opção 3. Se estiver satisfeito com o filtro predefinidos ativo atualmente, \u003Ca>feche este aviso.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opção 1. Elimine as extensões de bloqueio de anúncios desnecessárias do seu navegador. Para reativar os filtros mencionados na secção \"Filtros ativados antes da atualização\", clique em \u003Ca>reativar filtros.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opção 2. Instalar a aplicação AdGuard Bloqueador de publicidade: não tem restrições quanto às regras de filtragem. \u003Ca>Obter a aplicação AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Suas possíveis ações" + }, + "options_rule_limits_warning_explanation_description": { + "message": "O limite de regras internas ativas foi excedido após uma atualização ou adição de uma nova extensão. De acordo com o Manifest V3, seu navegador Chrome reagiu a desativar todos os filtros internos da extensão, exceto os padrões." + }, + "options_rule_limits_warning_explanation_title": { + "message": "O que aconteceu?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtros ativados antes da atualização" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtros ativados agora" + }, + "options_rule_limits_warning_title": { + "message": "O navegador modificou a lista de filtros ativos" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Remova os limites de regras e obtenha proteção estendida que funciona em todos os navegadores" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalar o aplicativo para desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ir para os filtros" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gerenciar extensões" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "As extensões do navegador compartilham o mesmo limite de regras. Remover outros bloqueadores de anúncios pode liberar mais regras para a Extensão de Navegador AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Remova outros bloqueadores de anúncios" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Ative os filtros de que você precisa. Filtros específicos de idioma e de privacidade podem usar muitas regras" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Rever filtros disponíveis" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Aqui está o que você pode fazer" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limite atingido — alguns filtros foram desativados" + }, + "options_rule_syntax": { + "message": "Sintaxe de regras" + }, + "options_safebrowsing_enabled": { + "message": "Proteção contra phishing e malware" + }, + "options_safebrowsing_enabled_desc": { + "message": "Adverte sobre sítios Web maliciosos e de phishing usando o módulo de segurança de navegação do AdGuard. \u003Ca>Ler mais\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 horas" + }, + "options_select_update_period_1h": { + "message": "1 hora" + }, + "options_select_update_period_24h": { + "message": "24 horas" + }, + "options_select_update_period_48h": { + "message": "48 horas" + }, + "options_select_update_period_6h": { + "message": "6 horas" + }, + "options_select_update_period_default": { + "message": "Predefinido" + }, + "options_select_update_period_disabled": { + "message": "Desativado" + }, + "options_send_not_track_desc": { + "message": "Enviar os sinais \u003Cgpc>Controle de privacidade global\u003C/gpc> e \u003Cdnt>Não monitorar\u003C/dnt> para os sítios que visita" + }, + "options_send_not_track_title": { + "message": "Pedir aos sítios Web para não me localizarem" + }, + "options_set_update_interval": { + "message": "Atualização automática dos filtros" + }, + "options_set_update_interval_desc": { + "message": "Mantém as filtragens atualizadas para um bloqueio de anúncios mais eficaz" + }, + "options_settings": { + "message": "Definições do AdGuard" + }, + "options_share_settings": { + "message": "Partilhar definições" + }, + "options_show_adguard_full_version_title": { + "message": "Mostrar informação da versão completa do AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notificar atualização das extensões" + }, + "options_show_blocked_ads_count_title": { + "message": "Mostrar o número de anúncios bloqueados na extensão do AdGuard" + }, + "options_show_context_menu_title": { + "message": "Adicionar o AdGuard ao menu de contexto do navegador" + }, + "options_site": { + "message": "Sítio oficial" + }, + "options_skip_to_main_content": { + "message": "Saltar para o conteúdo principal" + }, + "options_stealth_general_title": { + "message": "Geral" + }, + "options_stealth_miscellaneous_title": { + "message": "Diversos" + }, + "options_stealth_tracking_methods_title": { + "message": "Métodos de monitorização" + }, + "options_strip_tracking_params_description": { + "message": "Remove os parâmetros de monitorizamento dos URLs da página usando o filtro de monitorizamento de URL do AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Remover parâmetros de monitorizamento de URLs" + }, + "options_stripped_tracking_parameters": { + "message": "Parâmetros de monitorização excluídos" + }, + "options_theme_selector_dark": { + "message": "Escuro" + }, + "options_theme_selector_light": { + "message": "Claro" + }, + "options_theme_selector_system": { + "message": "Sistema predefinido" + }, + "options_third_party_block_cookies_warning": { + "message": "Se bloquear estes cookies, poderá ter que entrar novamente em alguns sítios ou enfrentar outros problemas relacionados a cookies" + }, + "options_third_party_desc": { + "message": "Evita que os anunciantes acompanhem o seu comportamento em várias páginas, limitando o tempo de vida dos cookies de terceiros" + }, + "options_third_party_title": { + "message": "Eliminar cookies de terceiros" + }, + "options_update_antibanner_filters": { + "message": "Verificar atualizações de filtros" + }, + "options_use_optimized_filters": { + "message": "Usar filtros optimizados" + }, + "options_use_optimized_filters_desc": { + "message": "Usa versões mais curtas de filtros apenas com as regras mais populares para economizar tráfego. Mais adequado para navegadores móveis" + }, + "options_user_rules_clear_search": { + "message": "Limpar pesquisa" + }, + "options_user_rules_create_rule": { + "message": "Criar regra" + }, + "options_user_rules_delete_all": { + "message": "Apagar tudos" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Todas as regras do usuário serão excluídas permanentemente" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Apagar tudos?" + }, + "options_user_rules_delete_all_success": { + "message": "Todas as regras do utilizador foram excluídas" + }, + "options_user_rules_delete_rule": { + "message": "Apagar regra" + }, + "options_user_rules_deleted_notification": { + "message": "Regra do usuário excluída:" + }, + "options_user_rules_description_key": { + "message": "As suas regras para bloquear e desbloquear anúncios ou sítios Web inteiros" + }, + "options_user_rules_edit_rule": { + "message": "Editar regra" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Vá para o editor" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Suas regras aparecerão aqui depois de fechá-las" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor aberto noutra janela" + }, + "options_user_rules_empty_placeholder": { + "message": "Nenhuma regra ainda" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Aplicando destaque de sintaxe…" + }, + "options_user_rules_import_error": { + "message": "Falha ao importar as regras do usuário. Por favor, tente novamente" + }, + "options_user_rules_import_success": { + "message": "Regras do utilizador importadas com sucesso" + }, + "options_user_rules_menu": { + "message": "Ações de regras do usuário" + }, + "options_user_rules_no_match": { + "message": "Nada encontrado" + }, + "options_user_rules_search_placeholder": { + "message": "Pesquisar" + }, + "options_user_rules_switch_to_editor": { + "message": "Alternar para a visualização do editor" + }, + "options_user_rules_switch_to_list": { + "message": "Alternar para visualização em lista" + }, + "options_user_rules_undo": { + "message": "Anular" + }, + "options_userfilter": { + "message": "Regras do Utilizador" + }, + "options_userfilter_description_key": { + "message": "Tu podes adicionar tuas próprias regras aqui. Esta opção é recomendada para utilizadores avançados familiarizados com HTML/CSS. Leia o \u003Ca>tutorial de regras de filtro\u003C/a> para aprender como escrever tuas próprias regras de filtro." + }, + "options_userfilter_export": { + "message": "Exportar" + }, + "options_userfilter_import": { + "message": "Importar" + }, + "options_userfilter_leave_subtitle": { + "message": "Suas alterações nas regras serão perdidas" + }, + "options_userfilter_line_break": { + "message": "Quebra de linha" + }, + "options_userfilter_line_break_off": { + "message": "Quebra de linha: Desativada" + }, + "options_userfilter_line_break_on": { + "message": "Quebra de linha: Ativada" + }, + "options_userfilter_subtitle_key": { + "message": "Permite adicionar as suas próprias regras de filtragem" + }, + "popup_abuse_site": { + "message": "Comunicar um problema" + }, + "popup_adguard_footer_title": { + "message": "Protege o seu dispositivo móvel" + }, + "popup_adguard_for_android": { + "message": "AdGuard para Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard para iOS" + }, + "popup_block_site_ads_option": { + "message": "Bloquear anúncios manualmente" + }, + "popup_get_system_wide_protection": { + "message": "Obtenha proteção para todo o sistema" + }, + "popup_header_cta_link": { + "message": "Como melhorar a proteção" + }, + "popup_header_update_filters": { + "message": "Verificar atualizações de filtros" + }, + "popup_limits_exceeded_warning": { + "message": "O seu navegador modificou a lista de filtros incorporados ativos" + }, + "popup_open_filtering_log": { + "message": "Abrir registo de filtragem" + }, + "popup_open_settings": { + "message": "Abrir definições do AdGuard" + }, + "popup_protection_button": { + "message": "Proteção do AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Apagar regras do utilizador para esta página" + }, + "popup_resume_protection_button": { + "message": "Resumo" + }, + "popup_security_report": { + "message": "Verificar a segurança do sítio" + }, + "popup_site_exception_information": { + "message": "A filtragem está desativada porque pode interferir na operação deste sítio." + }, + "popup_site_filtering_state_disabled": { + "message": "A proteção está desativada" + }, + "popup_site_filtering_state_disabling": { + "message": "A desativar a proteção..." + }, + "popup_site_filtering_state_enabled": { + "message": "A proteção está ativada" + }, + "popup_site_filtering_state_enabling": { + "message": "A ativar a proteção..." + }, + "popup_site_filtering_state_loading": { + "message": "A carregar..." + }, + "popup_site_filtering_state_paused": { + "message": "Proteção em pausa" + }, + "popup_site_filtering_state_pausing": { + "message": "A pausar a proteção..." + }, + "popup_site_filtering_state_resuming": { + "message": "A retomar a proteção..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Página segura" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "para todos os sítios" + }, + "popup_statistics_all_categories": { + "message": "Todos" + }, + "popup_statistics_category_advertising": { + "message": "Anúncios" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categoria Estatísticas" + }, + "popup_statistics_category_other": { + "message": "Noutro" + }, + "popup_statistics_category_social_media": { + "message": "Rede social" + }, + "popup_statistics_category_trackers": { + "message": "Monitorizadores" + }, + "popup_statistics_months_apr": { + "message": "Abr" + }, + "popup_statistics_months_aug": { + "message": "Ago" + }, + "popup_statistics_months_dec": { + "message": "Dez" + }, + "popup_statistics_months_feb": { + "message": "Fev" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Mai" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Out" + }, + "popup_statistics_months_sep": { + "message": "Set" + }, + "popup_statistics_time_day": { + "message": "24 horas" + }, + "popup_statistics_time_label": { + "message": "Período de tempo das Estatísticas" + }, + "popup_statistics_time_month": { + "message": "30 dias" + }, + "popup_statistics_time_week": { + "message": "7 dias" + }, + "popup_statistics_time_year": { + "message": "1 ano" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "Sexta" + }, + "popup_statistics_week_days_mon": { + "message": "Seg" + }, + "popup_statistics_week_days_sat": { + "message": "Sábado" + }, + "popup_statistics_week_days_sun": { + "message": "Domingo" + }, + "popup_statistics_week_days_thu": { + "message": "Quinta" + }, + "popup_statistics_week_days_tue": { + "message": "Terça" + }, + "popup_statistics_week_days_wed": { + "message": "Quarta" + }, + "popup_switch_button": { + "message": "Proteção para o sítio atual" + }, + "popup_tab_actions": { + "message": "Acções" + }, + "popup_tab_blocked_all_count": { + "message": "Total bloqueado: %num%" + }, + "popup_tab_blocked_count": { + "message": "Bloqueado: %num%" + }, + "popup_tab_current_website": { + "message": "Sítio atual" + }, + "popup_tab_statistics": { + "message": "Estatísticas" + }, + "popup_tabs": { + "message": "Separadores" + }, + "popup_tooltip_loading": { + "message": "A carregar..." + }, + "popup_tooltip_protection_disabled": { + "message": "A proteção está desativada" + }, + "popup_tooltip_protection_enabled": { + "message": "Proteção ativada" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Algumas regras não foram aplicadas" + }, + "popup_tooltip_update_available": { + "message": "Atualização disponível" + }, + "post_install_loading": { + "message": "A carregar extensão..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Limite de regras excedido na extensão de navegador AdGuard. Verifique os seus filtros e desactive os que não são necessários" + }, + "text_collapser_hide_default": { + "message": "Esconder texto completo" + }, + "text_collapser_show_default": { + "message": "Mostrar texto completo" + }, + "update_available_desc": { + "message": "Para bloquear eficazmente anúncios, mantenha a sua extensão e os filtros atualizados" + }, + "update_available_title": { + "message": "Atualizações disponíveis" + }, + "update_available_update_btn": { + "message": "Atualizar" + }, + "update_check": { + "message": "Verificar atualizações" + }, + "update_checking_in_progress": { + "message": "A procurar atualizações..." + }, + "update_failed_text": { + "message": "Falha ao concluir a atualização" + }, + "update_failed_try_again_btn": { + "message": "Tente novamente" + }, + "update_installing_in_progress_desc": { + "message": "A extensão será reiniciada após a atualização" + }, + "update_installing_in_progress_title": { + "message": "A atualizar a extensão e os filtros..." + }, + "update_not_needed": { + "message": "A sua extensão e os filtros estão atualizados" + }, + "update_success_text": { + "message": "Extensão e filtros atualizados" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ro/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ro/messages.json new file mode 100644 index 0000000..5ebac3f --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ro/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% a fost activat automat" + }, + "alert_popup_filter_enabled_title": { + "message": "Auto-activarea filtrelor" + }, + "background_tab_title": { + "message": "Filă inactivă" + }, + "blocking_pages_advanced_button": { + "message": "Avansat" + }, + "blocking_pages_btn_go_back": { + "message": "Înapoi" + }, + "blocking_pages_btn_proceed": { + "message": "Continuați oricum" + }, + "blocking_pages_malware": { + "message": "Această pagină web la \u003Cstrong>%host%\u003C/strong> a fost raportată ca pagină malware și a fost blocată pe baza preferințelor dvs. de securitate." + }, + "blocking_pages_more_info_button": { + "message": "Mai multe informații" + }, + "blocking_pages_page_title": { + "message": "Acces refuzat" + }, + "blocking_pages_phishing": { + "message": "Această pagină web la \u003Cstrong>%host%\u003C/strong> a fost raportată ca pagină phishing și a fost blocată pe baza preferințelor dvs. de securitate." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard a oprit încărcarea acestei pagini datorită următoarei reguli de filtrare" + }, + "blocking_pages_rule_header_title": { + "message": "Blocat de AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard a blocat accesul la această pagină" + }, + "clear_button_title": { + "message": "Șterge" + }, + "close_button_title": { + "message": "Închideți" + }, + "context_block_site_ads": { + "message": "Blochează reclame manual" + }, + "context_complaint_website": { + "message": "Raportați o problemă" + }, + "context_disable_protection": { + "message": "Întrerupeți protecția AdGuard" + }, + "context_enable_protection": { + "message": "Reporniți protecția AdGuard" + }, + "context_open_log": { + "message": "Jurnal de filtrare" + }, + "context_open_settings": { + "message": "Setări AdGuard" + }, + "context_security_report": { + "message": "Verificați securitatea site-ului" + }, + "context_site_exception": { + "message": "Această pagină web este în excepții" + }, + "context_site_filtering_disabled": { + "message": "AdGuard nu poate filtra această pagină" + }, + "context_site_filtering_off": { + "message": "Dezactivați filtrarea pe acest site" + }, + "context_site_filtering_on": { + "message": "Activați filtrarea pe acest site" + }, + "context_site_protection_disabled": { + "message": "Protecția AdGuard este în pauză" + }, + "context_update_antibanner_filters": { + "message": "Verificați pentru actualizări de filtre" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Extensie fără egal de blocare reclame și pop-up-uri. Blochează reclame pe Facebook, YouTube și toate celelalte site-uri." + }, + "filtering_clear_log_events": { + "message": "Resetați raportul" + }, + "filtering_log_actions_menu": { + "message": "Acțiuni jurnal de filtrare" + }, + "filtering_log_assumed_rule_description": { + "message": "Aceasta este o regulă presupusă. Pentru detalii, consultați \u003Ca>baza noastră de cunoștințe\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metoda de solicitare HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Codul de stare HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Solicitare de parte-terță" + }, + "filtering_log_details_modal_back_button": { + "message": "Înapoi la solicitare" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Înfrumusețare" + }, + "filtering_log_details_modal_try_again": { + "message": "Încercați din nou" + }, + "filtering_log_filter_allowed": { + "message": "Permis" + }, + "filtering_log_filter_blocked": { + "message": "Blocat" + }, + "filtering_log_filter_modified": { + "message": "Modificat" + }, + "filtering_log_filter_regular": { + "message": "Obișnuit" + }, + "filtering_log_filter_user_rules": { + "message": "Reguli utilizator" + }, + "filtering_log_hide_referrer": { + "message": "Referer ascuns de părți-terțe" + }, + "filtering_log_hide_search_queries": { + "message": "Interogări de căutare ascunse" + }, + "filtering_log_in_allowlist": { + "message": "Site-ul este autorizat" + }, + "filtering_log_modified_rules": { + "message": "Reguli modificate: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Da, păstrați" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Această opțiune poate crește semnificativ utilizarea memoriei" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Păstrați jurnalul?" + }, + "filtering_log_preserve_log_off": { + "message": "Nu păstrați jurnalul" + }, + "filtering_log_preserve_log_on": { + "message": "Păstrați jurnalul" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Nu mai arăta" + }, + "filtering_log_privacy_applied_rules": { + "message": "Protecție împotriva urmăririi pe site-uri aplicată" + }, + "filtering_log_remove_client_data": { + "message": "Antet X-Client-Data eliminat" + }, + "filtering_log_search_string": { + "message": "Caută" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Căutare în file" + }, + "filtering_log_send_not_track": { + "message": "Antet Do-Not-Track trimis" + }, + "filtering_log_status_allowed": { + "message": "Permis" + }, + "filtering_log_status_blocked": { + "message": "Blocat" + }, + "filtering_log_status_modified": { + "message": "Modificat" + }, + "filtering_log_status_processed": { + "message": "Procesat" + }, + "filtering_log_stealth_rules": { + "message": "Reguli de protecție împotriva urmăririi site-urilor: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Origine solicitare" + }, + "filtering_log_tag_request_status": { + "message": "Statut filtrare" + }, + "filtering_log_tag_request_type": { + "message": "Tipul de solicitare" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Cereri permise și deblocate" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Solicitări blocate" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stiluri de pagină" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Solicitare primară" + }, + "filtering_log_tag_tooltip_html": { + "message": "Documente și subdocumente" + }, + "filtering_log_tag_tooltip_img": { + "message": "Imagini" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripturi" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Cereri modificate" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonturi, ping-uri, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Cereri procesate fără filtrare" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Solicitare terță" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Cereri afectate de regulile utilizatorului" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Solicitări XMLHttp și solicitări de preluare" + }, + "filtering_log_title": { + "message": "Jurnal de filtrare" + }, + "filtering_menu_open_filters": { + "message": "Personalizați" + }, + "filtering_modal_add_rule": { + "message": "Adaugă" + }, + "filtering_modal_allow_title": { + "message": "Adăugați o regulă de autorizare" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regulă aplicată | Reguli aplicate | Reguli aplicate" + }, + "filtering_modal_apply_domains": { + "message": "Aplicați la toate site-urile web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regula presupuse: | Reguli presupuse: | Reguli presupuse:" + }, + "filtering_modal_block": { + "message": "Blocați" + }, + "filtering_modal_block_again": { + "message": "Blocare din nou" + }, + "filtering_modal_block_title": { + "message": "Adăugați o regulă de blocare" + }, + "filtering_modal_converted_to": { + "message": "Convertit în:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Copiat" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Copiază în clipboard" + }, + "filtering_modal_declarative_rule": { + "message": "Regula DNR:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Adăugați o excepție" + }, + "filtering_modal_filter": { + "message": "Filtru" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Statut filtrare" + }, + "filtering_modal_hide_full_element": { + "message": "Ascundeți elementul complet" + }, + "filtering_modal_hide_full_rule": { + "message": "Ascundeți regula completă" + }, + "filtering_modal_hide_full_url": { + "message": "Ascunde tot URL-ul" + }, + "filtering_modal_important": { + "message": "Acordă o prioritate sporită regulii" + }, + "filtering_modal_info_title": { + "message": "Cereți detalii" + }, + "filtering_modal_open_in_new_tab": { + "message": "Deschideți într-o filă nouă" + }, + "filtering_modal_options_desc": { + "message": "Opțiuni" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Regula originală: | Reguli originale: | Reguli originale:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Ce ar trebui permis" + }, + "filtering_modal_patterns_desc_block": { + "message": "Ce ar trebui blocat" + }, + "filtering_modal_preview_request_button": { + "message": "Previzualizare" + }, + "filtering_modal_preview_title": { + "message": "Previzualizare" + }, + "filtering_modal_privacy": { + "message": "Protecție de urmărire" + }, + "filtering_modal_remove_allowlist": { + "message": "Eliminați din lista de autorizări" + }, + "filtering_modal_remove_param": { + "message": "Eliminați parametrii de interogare" + }, + "filtering_modal_remove_user": { + "message": "Ștergeți regula" + }, + "filtering_modal_rule": { + "message": "Regula:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regulă" + }, + "filtering_modal_rules": { + "message": "Reguli:" + }, + "filtering_modal_show_full_element": { + "message": "Afișați elementul complet" + }, + "filtering_modal_show_full_rule": { + "message": "Afișați regula completă" + }, + "filtering_modal_show_full_url": { + "message": "Arată tot URL-ul" + }, + "filtering_modal_source": { + "message": "Sursă" + }, + "filtering_modal_status_text_desc": { + "message": "Statut" + }, + "filtering_modal_status_text_error": { + "message": "Previzualizarea nu a putut fi încărcată. Vă rugăm să încercați din nou" + }, + "filtering_modal_status_text_loading": { + "message": "Se încarcă..." + }, + "filtering_modal_third_party": { + "message": "Aplicați numai cererilor venite de la părți terțe" + }, + "filtering_modal_type": { + "message": "Tip" + }, + "filtering_modal_unblock": { + "message": "Deblocați" + }, + "filtering_refresh_tab_short": { + "message": "Actualizare" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Reîmprospătați pagina" + }, + "filtering_table_action": { + "message": "Acțiune" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nu s-a găsit nimic. \u003Creset>Dezactivați filtrele\u003C/reset> sau \u003Crefresh>reîncărcați pagina\u003C/refresh> pentru a vedea înregistrările din jurnal" + }, + "filtering_table_filter": { + "message": "Filtru" + }, + "filtering_table_open_details": { + "message": "Deschideți detaliile" + }, + "filtering_table_rule": { + "message": "Regula de filtrare" + }, + "filtering_table_source": { + "message": "Sursa" + }, + "filtering_table_status": { + "message": "Statut" + }, + "filtering_table_type": { + "message": "Tip" + }, + "filtering_type_all": { + "message": "Toate" + }, + "filtering_type_other": { + "message": "Altul" + }, + "filters_download_loading": { + "message": "Vă rugăm să așteptați în timp ce baza de date se încarcă..." + }, + "filters_download_title": { + "message": "Baza de date a filtrelor se încarcă..." + }, + "fullscreen_user_rules_title": { + "message": "Reguli utilizator" + }, + "group_description_adblocking": { + "message": "Configurați aici blocarea anunțurilor pentru a vă ocupa o dată pentru totdeauna de bannerele enervante, ferestrele pop-up, anunțurile video și altele asemenea" + }, + "group_description_annoyances": { + "message": "Ștergeți ferestrele pop-up și alte notificări enervante ca notificări cookie" + }, + "group_description_custom": { + "message": "Creați-vă propriile filtre pentru a ajusta filtrarea web după preferințele dumneavoastră" + }, + "group_description_lang": { + "message": "Nu vă limitați — blocați reclamele de pe site-urile web în orice limbă" + }, + "group_description_miscellaneous": { + "message": "Mai multe setări pentru configurarea navigarea web cu AdGuard chiar mai departe" + }, + "group_description_security": { + "message": "Protejează-te de malware, phishing si alte amenințări online" + }, + "group_description_social": { + "message": "Ascunde butoane „Îmi Place”/„Distribuie” nedorite și alte widget-uri ale rețelelor de socializare" + }, + "group_description_stealth": { + "message": "Protejează-ți identitatea și datele personale sensibile de mii de trackere online blocând toate metodele populare de trackere știute" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Nu mai arăta" + }, + "opera_search_permission_go_to_settings": { + "message": "Mergeți la Setări" + }, + "opera_search_permission_warning": { + "message": "Pentru a bloca reclamele din căutare, permiteți accesul la rezultatele paginii de căutare în setările browserului" + }, + "options_about": { + "message": "Despre" + }, + "options_about_libs": { + "message": "Biblioteci utilizate" + }, + "options_about_title": { + "message": "Extensie de browser AdGuard" + }, + "options_about_update_available": { + "message": "Versiunea %version% este disponibilă. Va fi descărcată și instalată automat." + }, + "options_about_version": { + "message": "Versiune" + }, + "options_acknowledgment": { + "message": "Mulțumiri" + }, + "options_add_custom_filter": { + "message": "Nou filtru personalizat" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Adaugă" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Se verifică filtrul..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL a returnat o pagina web în loc de o listă de filtre. Vă rugăm să furnizați un link direct către fișierul filtrului." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Vă rugăm să încercați din nou sau contactați asistența" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Adăugarea filtrului personalizat eșuată" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Numele filtrulu:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "De încredere" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Filtrele de încredere pot folosi modificatori de reguli puternici – asigurați-vă că utilizați un filtru de la dezvoltatori de încredere" + }, + "options_add_custom_filter_modal_title": { + "message": "Nou filtru personalizat" + }, + "options_all_limits_exceeded_warning": { + "message": "Ați atins limita regulilor încorporate active. Browserul dvs. a modificat lista de filtre active încorporate. Numărul de filtre activate s-a modificat de la %expected% la %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Ați atins limita browserului pentru regulile încorporate active. Browserul a redus lista de filtre încorporate active de la %expected% la %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Browserul dvs. restricționează \u003Cexternal-link>anumite tipuri de reguli\u003C/external-link>. Pentru a aplica toate regulile, activați \u003Cb>Permiterea scripturilor utilizatorului\u003C/b> în \u003Csettings-link>setările extensiei\u003C/settings-link> browserului dvs." + }, + "options_allowlist": { + "message": "Listă autorizări" + }, + "options_allowlist_alert_invert": { + "message": "Lista de autorizări este inversată. Reclamele sunt Blocat numai pe site-urile web adăugate la aceasta." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Opriți inversarea\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard nu blochează reclame și trackere pe site-uri web din listă" + }, + "options_allowlist_invalid_entries": { + "message": "Pentru a salva, păstrați doar domenii sau URL-uri. Acestea trebuie corectate: %entries%" + }, + "options_allowlist_invert": { + "message": "Listă de autorizări inversată" + }, + "options_allowlist_invert_desc": { + "message": "Blochează reclamele și trackerele numai pe site-urile web permise" + }, + "options_allowlist_leave_subtitle": { + "message": "Modificările dvs. la lista permisă se vor pierde" + }, + "options_allowlist_menu": { + "message": "Acțiuni listă de autorizări" + }, + "options_anonymized_usage_data_description": { + "message": "Trimite statistici anonime despre utilizarea extensiilor către AdGuard. \u003Cbutton>Află mai multe\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Am înțeles." + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Aceste date includ:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Numele butoanelor pe care faceți clic" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Numele ecranelor cu care interacționezi" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identificatori de sesiune" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Aceste date sunt anonime și sunt folosite doar intern. Nu îl împărtășim niciodată cu alte site-uri" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Avem nevoie de aceste informații pentru a analiza și îmbunătăți funcționalitatea AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Date de utilizare a extensiei" + }, + "options_anonymized_usage_data_title": { + "message": "Trimite date anonimizate despre utilizarea extensiei" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Acest filtru personalizat a fost deja adăugat" + }, + "options_antibanner_custom_group": { + "message": "Personalizat" + }, + "options_antibanner_custom_group_description": { + "message": "Permite să adăugați filtrare dintr-un fișier sau URL" + }, + "options_antibanner_rules_count": { + "message": "Reguli: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Actualizat: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blocați reclamele de căutare și auto-promovarea site-urilor web" + }, + "options_block_acceptable_ads_desc": { + "message": "Blochează reclamele în rezultatele căutării și auto-promovarea site-urilor web. \u003Ca>Aflați mai multe\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Pentru a bloca cookie-urile, setați durata de viață la 0" + }, + "options_block_known_trackers_description": { + "message": "Blochează instrumentele de urmărire și analizele web folosind filtrul AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Blocați trackerele" + }, + "options_check_update_progress": { + "message": "Se verifică..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Șterge" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Toate statisticile privind utilizarea datelor vor fi șterse permanent" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Ștergeți statisticile?" + }, + "options_clipboard_permission_warning": { + "message": "Pentru a copia și lipi regulile, permiteți AdGuard să acceseze clipboard-ul. \u003Ca>Permite\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Trimite statistici anonime despre utilizarea filtrelor de reclame către AdGuard. \u003Ca>Aflați mai multe\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Ajută la dezvoltarea filtrelor AdGuard" + }, + "options_coming_soon": { + "message": "În curând" + }, + "options_confirm_modal_cancel_button": { + "message": "Anulare" + }, + "options_copyright": { + "message": "Toate drepturile rezervate." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Pentru a utiliza filtre personalizate, activați \u003Cb>Permiteți scripturi utilizator\u003C/b> în \u003Csettings-link>setările extensiei\u003C/settings-link> browserului dvs." + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Pentru a utiliza filtre personalizate, activați \u003Cb>modul Dezvoltator\u003C/b> în \u003Csettings-link>setările extensiei\u003C/settings-link> browserului dvs." + }, + "options_desktop_app_promo_button_linux": { + "message": "Obțineți AdGuard pentru Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Obțineți AdGuard pentru Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Obțineți AdGuard pentru Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplicații precum Spotify, Discord sau Zoom pot încă să afișeze reclame și să vă urmărească activitatea" + }, + "options_desktop_app_promo_subdescription": { + "message": "Aplicația desktop vă poate proteja de acestea" + }, + "options_desktop_app_promo_title": { + "message": "Extensia protejează doar browserul" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Browserul dvs. restricționează \u003Cexternal-link>anumite tipuri de reguli\u003C/external-link>. Pentru a aplică toate regulile, activați \u003Cb>Modul pentru dezvoltatori\u003C/b> în \u003Csettings-link>setările extensiei\u003C/settings-link> din browserul dvs." + }, + "options_disable_webrtc_desc": { + "message": "Blochează WebRTC care poate divulga adresa ta reală IP chiar dacă folosești un proxy sau VPN. Unele aplicații de mesagerie, platforme de streaming sau jocuri pot să nu mai funcționeze corect" + }, + "options_disable_webrtc_title": { + "message": "Blocați WebRTC" + }, + "options_discuss": { + "message": "Discutați AdGuard" + }, + "options_do_you_like_question": { + "message": "Vă place AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Ieșire din modul fereastră" + }, + "options_editor_indicator_saved": { + "message": "Salvat" + }, + "options_editor_indicator_saving": { + "message": "Se salvează..." + }, + "options_editor_leave_cancel": { + "message": "Înapoi la editare" + }, + "options_editor_leave_confirm": { + "message": "Da, părăsește" + }, + "options_editor_leave_title": { + "message": "Ieși fără a salva?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Deschide editorul într-o fereastră nouă" + }, + "options_editor_save": { + "message": "Salvați" + }, + "options_editor_save_error": { + "message": "Nu s-au putut salva modificările. Încercați din nou sau contactați suportul" + }, + "options_empty_custom_filter": { + "message": "Încă nu aveți filtre personalizate" + }, + "options_enable_autodetect_filter": { + "message": "Activează cele mai adecvate filtre în mod automat" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detectează limba site-ului web și activează filtrele corespunzătoare" + }, + "options_export_settings": { + "message": "Export de setări" + }, + "options_filters": { + "message": "Filtre" + }, + "options_filters_annoyances_consent_description": { + "message": "Veți să permiteți unul sau mai multe filtre de deranjare. Acestea blochează elemente care fie nu au legătură cu conținutul site-ului web, fie au legătură, dar deranjează experiența utilizatorului. Proprietarii site-urilor web pot considera aceste elemente obligatorii: dacă le blocați, puteți încălca termenii lor; unele funcționalități ale site-urilor web pot fi indisponibile sau pot funcționa incorect. Înțelegeți și sunteți de acord că sunteți singurul responsabil să respectați termenii de utilizare ai site-urilor web pe care le vizitați și că AdGuard nu este responsabil pentru respectarea de către dvs. a termenilor de utilizare ai site-urilor web pe care le vizitați folosind produsele noastre." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Activare" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Pagina de start" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Pentru detalii despre ce blochează filtrele de deranjare AdGuard, consultați \u003Ca>Politica de filtrare\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Activați aceste filtre?" + }, + "options_filters_annoyances_consent_title": { + "message": "Vă rugăm să citiți cu atenție înainte de a activa filtrele deranjare" + }, + "options_filters_back_button": { + "message": "Înapoi" + }, + "options_filters_empty_title": { + "message": "Nu s-a găsit nimic" + }, + "options_filters_enabled": { + "message": "Activat:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% și %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% și %more% mai multe" + }, + "options_filters_enabled_per_group": { + "message": "Activat: %current% din %total%" + }, + "options_filters_filter_link": { + "message": "Mergeți la pagina principală" + }, + "options_filters_filter_tags": { + "message": "Etichete filtru" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Ați ales să aveți încredere în acest filtru" + }, + "options_filters_filter_updated": { + "message": "actualizat:" + }, + "options_filters_filter_version": { + "message": "versiune:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Număr total de reguli: %num%" + }, + "options_filters_last_checked": { + "message": "Ultima verificare: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Toate filtrele" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Oprit" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Pornit" + }, + "options_filters_no_enabled": { + "message": "Niciun filtru activat" + }, + "options_filters_of_group": { + "message": "Filtre din grupul \"%groupName%\"" + }, + "options_filters_search": { + "message": "Caută" + }, + "options_filters_search_filter": { + "message": "Caută filtrul" + }, + "options_first_party_block_cookies_warning": { + "message": "Dacă blocați aceste Cookie, unele site-uri web se pot rupe sau nu mai funcționează." + }, + "options_first_party_desc": { + "message": "Împiedică site-urile web să vă rețină detaliile, cum ar fi datele de conectare și preferințele de limbă, prin limitarea duratei de viață a Cookie-urilor parte-primară" + }, + "options_first_party_title": { + "message": "Șterge cookie-urile primare (nerecomandat)" + }, + "options_general_settings": { + "message": "Setări Generale" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Preveniți terții din a știi ce website-uri vizitați" + }, + "options_hide_referrer_title": { + "message": "Ascundeți referer-ul de terțe-părți" + }, + "options_hide_search_queries_desc": { + "message": "Ascunde căutările dvs. de site-urile vizitate prin rezultatele motoarelor de căutare" + }, + "options_hide_search_queries_title": { + "message": "Ascunderea interogărilor de căutare" + }, + "options_import_configuration_applying_subtitle": { + "message": "Înlocuirea setărilor actuale cu cele importate. Filtrarea este dezactivată în timpul importului" + }, + "options_import_configuration_applying_title": { + "message": "Se importă..." + }, + "options_import_configuration_confirm_button": { + "message": "Import" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Setările importate le vor înlocui pe cele actuale. Alte setări nu vor fi afectate" + }, + "options_import_configuration_confirm_title": { + "message": "Import de setări" + }, + "options_import_configuration_error_button": { + "message": "Închideți" + }, + "options_import_configuration_error_subtitle": { + "message": "Vă rugăm să verificați linkul de import și să încercați din nou. Dacă nu ajută, contactați suportul" + }, + "options_import_configuration_error_title": { + "message": "Setările nu s-au putut salva" + }, + "options_import_configuration_success_button": { + "message": "Închideți" + }, + "options_import_configuration_success_subtitle": { + "message": "Setările au fost importate cu succes" + }, + "options_import_configuration_success_title": { + "message": "Totul este gata" + }, + "options_import_settings": { + "message": "Import de setări" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Inversează" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reclamele și trackerele vor fi blocate doar pe site-urile web din allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Inversați lista de permisiuni?" + }, + "options_leave_feedback": { + "message": "Lasă-ți un feedback" + }, + "options_lifetime_minutes": { + "message": "Durata de viață, minute" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Ați atins limita de reguli regex adăugate de un utilizator. %maximum% de %current% reguli regex sunt activate." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Ați atins limita regulilor regex adăugate de utilizatori. %maximum% din %current% reguli sunt activate. Pentru a adăuga reguli noi regex, ștergeți unele existente" + }, + "options_limits_warning_dynamic_rules": { + "message": "Ați atins limita de reguli adăugate de un utilizator. %maximum% de %current% reguli sunt activate." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Ați atins limita regulilor adăugate de utilizatori. %maximum% din %current% reguli sunt activatê. Pentru a adăuga reguli noi, ștergeți unele existente" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Ați atins limita de reguli adăugate de un utilizator nesigure. %maximum% de %current% reguli nesigure sunt activate." + }, + "options_limits_warning_static_filters": { + "message": "Ați atins limita filtrelor active încorporate. %maximum% din %current% filtre sunt activate. Pentru a activa reguli noi, dezactivați unele filtre încorporate." + }, + "options_limits_warning_static_filters_browser": { + "message": "Ați atins limita browserului pentru filtrele încorporate active. %maximum% din %current% filtre sunt activate. Pentru a activa filtre noi, dezactivați unele filtre încorporate" + }, + "options_limits_warning_static_regex_rules": { + "message": "Ați atins limita de reguli regex active incorporate. %maximum% de %current% reguli regex sunt activate. Pentru a activa reguli noi, dezactivați câteva filtre incorporate." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Ați atins limita regulilor regex încorporate active. Pentru a activa reguli noi, dezactivați unele filtre încorporate" + }, + "options_limits_warning_static_rules": { + "message": "Ați atins limita de reguli active incorporate. %maximum% de %current% reguli sunt activate. Pentru a activa reguli noi, dezactivați câteva filtre incorporate." + }, + "options_limits_warning_static_rules_browser": { + "message": "Ați atins limita browserului pentru regulile încorporate active. Pentru a activa reguli noi, dezactivați unele filtre încorporate" + }, + "options_loader_applying_changes": { + "message": "Aplicăm schimbări..." + }, + "options_miscellaneous_settings": { + "message": "Setări suplimentare" + }, + "options_modified_first_party_cookie": { + "message": "Cookie-uri primare modificate" + }, + "options_modified_third_party_cookie": { + "message": "Cookie-uri terțe modificate" + }, + "options_nav_better_than_extension": { + "message": "De ce este aplicația AdGuard mai bună decât extensia?" + }, + "options_nav_compare": { + "message": "Comparați" + }, + "options_navigation": { + "message": "Navigație" + }, + "options_open_changelog": { + "message": "Jurnal de modificări" + }, + "options_open_log": { + "message": "Deschideți jurnalul filtrărilor" + }, + "options_popup_call_to_action": { + "message": "Introduceți un URL valid sau calea către filtru în câmpul de mai jos." + }, + "options_popup_check_false_description": { + "message": "Eroare la adăugarea filtrului personalizat" + }, + "options_popup_check_false_title": { + "message": "Eroare" + }, + "options_popup_checking_filter": { + "message": "Verificare filtre" + }, + "options_popup_description": { + "message": "Veți fi abonat la acel filtru." + }, + "options_popup_filter_description": { + "message": "Descriere:" + }, + "options_popup_filter_homepage": { + "message": "Pagină principală:" + }, + "options_popup_filter_rules_count": { + "message": "Număr reguli:" + }, + "options_popup_filter_title": { + "message": "Titlu:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Versiune:" + }, + "options_popup_import_error_file_description": { + "message": "Ceva nu a mers bine" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Pentru a importa acest fișier de setări, permiteți-i lui AdGuard să vă modifice setările legate de confidențialitate." + }, + "options_popup_import_error_title": { + "message": "Setările nu s-au putut salva" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Extensia fișierului trebuie să fie %extension%" + }, + "options_popup_import_success_title": { + "message": "Setări importate" + }, + "options_popup_next_button": { + "message": "Următorul" + }, + "options_popup_subscribe_button": { + "message": "Abonează-te" + }, + "options_popup_title_placeholder": { + "message": "Introduceți numele filtrului" + }, + "options_popup_trusted_filter_description": { + "message": "Aceste filtre pot folosi modificatori puternici de reguli de filtrare, periculoși pe mâini greșite. Bifați casetă DOAR DACĂ vă încredeți total în ele." + }, + "options_popup_trusted_filter_title": { + "message": "De încredere" + }, + "options_popup_try_again_button": { + "message": "Încercați din nou" + }, + "options_popup_update_error": { + "message": "Eroare de obținere actualizări. Vă rugăm să încercați mai târziu." + }, + "options_popup_update_filter": { + "message": "s-a actualizat." + }, + "options_popup_update_filters": { + "message": "s-au actualizat." + }, + "options_popup_update_not_found": { + "message": "Filtrele sunt actualizate" + }, + "options_popup_update_title_error": { + "message": "Eroare de actualizare filtre" + }, + "options_popup_updating_filters": { + "message": "Se actualizează filtrele..." + }, + "options_popup_url_placeholder": { + "message": "Introduceți URL-ul sau cale" + }, + "options_popup_url_title": { + "message": "Abonare la un filtru nou" + }, + "options_popup_version_update_changelog_text": { + "message": "Ce este nou în această versiune?" + }, + "options_popup_version_update_description_major": { + "message": "Aceasta este o actualizare majoră a extensiei ce aduce multe funcții noi și îmbunătățiri." + }, + "options_popup_version_update_description_minor": { + "message": "Această versiune conține corecții de erori și îmbunătățiri minore." + }, + "options_popup_version_update_disable_notification": { + "message": "Oprește notificări" + }, + "options_popup_version_update_offer": { + "message": "Știați că funcțiile AdGuard nu sunt limitate numai la acest navigator?" + }, + "options_popup_version_update_offer_button_text": { + "message": "AFLAȚI MAI MULT" + }, + "options_popup_version_update_title_text": { + "message": "Extensia AdGuard a fost actualizată la versiunea %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Face ca WebRTC să folosească o politică mai strictă privind Adresa IP pentru a ajuta la ascunderea Adresei IP reale atunci când utilizați un proxy sau VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Previne scurgerile de Adresă IP prin WebRTC" + }, + "options_privacy": { + "message": "Protecție de urmărire" + }, + "options_privacy_desc": { + "message": "Îți protejează activitatea online și datele personale de dispozitivele de urmărire web" + }, + "options_privacy_policy": { + "message": "Politică Intimitate" + }, + "options_privacy_title": { + "message": "Protecție de urmărire" + }, + "options_rate_us_cta": { + "message": "Cotați-ne" + }, + "options_remove_client_data_desc": { + "message": "Blocați Google Chrome să trimită informații despre versiunea și modificările sale către domeniile Google" + }, + "options_remove_client_data_title": { + "message": "Eliminați antetul X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Elimină" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Ștergeți acest filtru?" + }, + "options_report_bug": { + "message": "Raportați o eroare" + }, + "options_reset_settings": { + "message": "Resetare setări" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Resetare" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Toate setările vor fi resetate la valorile implicite" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Resetați setările?" + }, + "options_reset_settings_done": { + "message": "Setările au fost resetate" + }, + "options_reset_settings_error": { + "message": "Eroare la resetarea setărilor" + }, + "options_reset_stats": { + "message": "Ștergere statistici" + }, + "options_reset_stats_done": { + "message": "Statisticile au fost resetate" + }, + "options_rule_limits": { + "message": "Limitele regulilor" + }, + "options_rule_limits_description": { + "message": "Chrome limitează numărul de reguli care pot fi aplicate" + }, + "options_rule_limits_dynamic": { + "message": "Reguli dinamice" + }, + "options_rule_limits_dynamic_regex": { + "message": "Reguli regex — incluse în regulile adăugate de utilizator" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Reguli dinamice nesigure (folosite pentru anumiți modificatori avansați, cum ar fi $$redirect sau $$cookie) — incluse în regulile adăugate de utilizator" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Reguli adăugate de utilizator, cum ar fi \u003Cuser_rules>reguli utilizator\u003C/user_rules>, \u003Callowlist>site-uri web permise\u003C/allowlist> și \u003Ccustom_filters>filtre personalizate\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Reguli adăugate de utilizator, cum ar fi \u003Cuser_rules>reguli de utilizator\u003C/user_rules> și \u003Callowlist>site-uri web permise\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% din %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Reguli statice" + }, + "options_rule_limits_static_rules_all": { + "message": "Reguli de la \u003Ca>filtre încorporate\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Reguli Regex — incluse în cele de mai sus" + }, + "options_rule_limits_static_rulesets": { + "message": "Seturi de reguli statice" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Filtre încorporate\u003C/a>, cum ar fi blocarea deranjamentelor sau filtrele specifice limbii" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opțiunea 3. Dacă sunteți mulțumit de filtrele implicite activate curent, \u003Ca>închideți acest avertisment\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opțiunea 3. Dacă sunteți mulțumit de filtrul implicit activat curent, \u003Ca>închideți acest avertisment\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opțiunea 1. Ștergeți extensiile în plus de blocare a reclamelor din browser. Pentru a reactiva filtrele menționate în secțiunea „Filtre activate înainte de actualizare”, faceți clic pe \u003Ca>reactivați filtrele\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opțiunea 2. Instalați aplicația AdGuard Ad Blocker: aceasta nu are restricții în ceea ce privește regulile de filtrare. \u003Ca>Obțineți AdGuard Ad Blocker\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Acțiuni posibile" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Limita de reguli încorporate active a fost depășită după o actualizare sau după adăugarea unei noi extensii. Potrivit Manifest V3, browserul Chrome a reacționat prin dezactivarea tuturor filtrelor încorporate ale extensiei, cu excepția celor implicite." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Ce s-a întâmplat?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtrele activate înainte de actualizare" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtre activate acum" + }, + "options_rule_limits_warning_title": { + "message": "Browserul a modificat lista de filtre active" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Eliminați limitele regulilor și obțineți protecție extinsă care funcționează în toate browserele" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalați aplicația desktop" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Mergi la filtre" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Gestiona extensiile" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Extensiile de browser partajează aceeași limită de reguli. Eliminarea altor blocante de reclame poate elibera mai multe reguli pentru AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Eliminați alte blocante de reclame" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Activați filtrele de care aveți nevoie. Filtrele specifice limbii și de confidențialitate pot utiliza multe reguli" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Revizuiți filtrele disponibile" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Iată ce puteți face" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Limita a fost atinsă — unele filtre au fost dezactivate" + }, + "options_rule_syntax": { + "message": "Sintaxa regulilor" + }, + "options_safebrowsing_enabled": { + "message": "Protecția împotriva phishing-ului și a malware-ului" + }, + "options_safebrowsing_enabled_desc": { + "message": "Avertizează despre site-uri web dăunătoare și de phishing folosind modulul Securitate la navigare AdGuard. \u003Ca>Aflați mai multe\u003C/a>" + }, + "options_select_theme": { + "message": "Temă" + }, + "options_select_update_period_12h": { + "message": "12 ore" + }, + "options_select_update_period_1h": { + "message": "1 oră" + }, + "options_select_update_period_24h": { + "message": "24 de ore" + }, + "options_select_update_period_48h": { + "message": "48 de ore" + }, + "options_select_update_period_6h": { + "message": "6 ore" + }, + "options_select_update_period_default": { + "message": "Implicit" + }, + "options_select_update_period_disabled": { + "message": "Dezactivat" + }, + "options_send_not_track_desc": { + "message": "Trimiteți semnalele \u003Cgpc>Global Privacy Control\u003C/gpc> și \u003Cdnt>Do Not Track\u003C/dnt> către website-ul pe care îl vizitați" + }, + "options_send_not_track_title": { + "message": "Cereți site-urilor web să nu mă urmărească" + }, + "options_set_update_interval": { + "message": "Auto-actualizare filtre" + }, + "options_set_update_interval_desc": { + "message": "Menține filtrele actualizate pentru un blocaj mai eficient al reclamelor" + }, + "options_settings": { + "message": "Setări AdGuard" + }, + "options_share_settings": { + "message": "Partajați setările" + }, + "options_show_adguard_full_version_title": { + "message": "Afișați informații despre versiunea completă AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Notifică despre actualizări extensie" + }, + "options_show_blocked_ads_count_title": { + "message": "Indicați numărul de reclame blocate pe iconul extensia AdGuard" + }, + "options_show_context_menu_title": { + "message": "Adăugați AdGuard în meniul contextual al browserului" + }, + "options_site": { + "message": "Pagină oficială" + }, + "options_skip_to_main_content": { + "message": "Sari la conținutul principal" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Diverse" + }, + "options_stealth_tracking_methods_title": { + "message": "Metode de urmărire" + }, + "options_strip_tracking_params_description": { + "message": "Elimină parametrii de urmărire din adresele URL ale paginilor utilizând filtrul de urmărire URL AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Eliminați parametrii de urmărire din adresele URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parametrii de urmărire eliminați" + }, + "options_theme_selector_dark": { + "message": "Sombră" + }, + "options_theme_selector_light": { + "message": "Luminoasă" + }, + "options_theme_selector_system": { + "message": "Implicită de sistem" + }, + "options_third_party_block_cookies_warning": { + "message": "Dacă blocați aceste Cookie, poate fi necesar să vă reconectați la unele site-uri web sau să vă confruntați cu alte probleme legate de Cookie." + }, + "options_third_party_desc": { + "message": "Împiedică agenții de publicitate să urmărească comportamentul tău pe mai multe pagini, limitând durata de viață a cookie-urilor ale terților" + }, + "options_third_party_title": { + "message": "Ștergeți cookie-urile de la terți" + }, + "options_update_antibanner_filters": { + "message": "Verifică actualizări de filtre" + }, + "options_use_optimized_filters": { + "message": "Folosiți filtre optimizate" + }, + "options_use_optimized_filters_desc": { + "message": "Folosește versiuni mai scurte ale filtrelor cu doar cele mai populare reguli pentru a economisi trafic. Mai potrivită pentru browserele mobile" + }, + "options_user_rules_clear_search": { + "message": "Goliți căutarea" + }, + "options_user_rules_create_rule": { + "message": "Creează regulă" + }, + "options_user_rules_delete_all": { + "message": "Elimină toate" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Toate regulile utilizatorului vor fi șterse definitiv" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Ștergeți totul?" + }, + "options_user_rules_delete_all_success": { + "message": "Toate regulile utilizatorului au fost șterse" + }, + "options_user_rules_delete_rule": { + "message": "Ștergeți regula" + }, + "options_user_rules_deleted_notification": { + "message": "Regulă utilizator ștearsă:" + }, + "options_user_rules_description_key": { + "message": "Regulile dvs. pentru blocarea și deblocarea reclamelor sau a întregilor site-uri web" + }, + "options_user_rules_edit_rule": { + "message": "Editați regula" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Accesați editorul" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Regulile dvs. vor apărea aici după ce îl închideți" + }, + "options_user_rules_editor_stub_title": { + "message": "Editorul s-a deschis într-o altă fereastră" + }, + "options_user_rules_empty_placeholder": { + "message": "Încă nu există reguli" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Se evidențiază regulile…" + }, + "options_user_rules_import_error": { + "message": "Importul regulilor utilizatorului a eșuat. Vă rugăm să încercați din nou" + }, + "options_user_rules_import_success": { + "message": "Regulile utilizatorului au fost importate cu succes" + }, + "options_user_rules_menu": { + "message": "Acțiuni reguli utilizator" + }, + "options_user_rules_no_match": { + "message": "Nimic găsit" + }, + "options_user_rules_search_placeholder": { + "message": "Caută" + }, + "options_user_rules_switch_to_editor": { + "message": "Comutați la vizualizarea editor" + }, + "options_user_rules_switch_to_list": { + "message": "Comutați la vizualizarea listă" + }, + "options_user_rules_undo": { + "message": "Anulare" + }, + "options_userfilter": { + "message": "Folosiți filtrul" + }, + "options_userfilter_description_key": { + "message": "Puteți adăuga propriile reguli aici. Această opțiune este recomandată pentru utilizatorii avansați, familiarizați cu HTML/CSS. Citiți tutorialul \u003Ca>Tutorial de reguli de filtrare\u003C/a> pentru a afla cum să scrieți propriile reguli de filtrare." + }, + "options_userfilter_export": { + "message": "Exportați" + }, + "options_userfilter_import": { + "message": "Import" + }, + "options_userfilter_leave_subtitle": { + "message": "Modificările dvs. la reguli se vor pierde" + }, + "options_userfilter_line_break": { + "message": "Sfârșit de linie" + }, + "options_userfilter_line_break_off": { + "message": "Sfârșit de linie: Dezactivat" + }, + "options_userfilter_line_break_on": { + "message": "Sfârșit de linie: Activat" + }, + "options_userfilter_subtitle_key": { + "message": "Vă permite să adăugați propriile reguli de filtrare" + }, + "popup_abuse_site": { + "message": "Raportați o problemă" + }, + "popup_adguard_footer_title": { + "message": "Protejează-ți dispozitivul mobil" + }, + "popup_adguard_for_android": { + "message": "AdGuard pentru Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard pentru iOS" + }, + "popup_block_site_ads_option": { + "message": "Blochează reclame manual" + }, + "popup_get_system_wide_protection": { + "message": "Obțineți Protecție la nivel de sistem" + }, + "popup_header_cta_link": { + "message": "Cum să îmbunătățești protecția" + }, + "popup_header_update_filters": { + "message": "Verificați pentru actualizări de filtre" + }, + "popup_limits_exceeded_warning": { + "message": "Browserul a modificat lista de filtre încorporate active" + }, + "popup_open_filtering_log": { + "message": "Deschide jurnal filtrare" + }, + "popup_open_settings": { + "message": "Deschideți setările AdGuard" + }, + "popup_protection_button": { + "message": "Protecție AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Șterge regulile utilizatorului pe acest site" + }, + "popup_resume_protection_button": { + "message": "Reluați" + }, + "popup_security_report": { + "message": "Verificați securitatea site-ului" + }, + "popup_site_exception_information": { + "message": "Filtrarea este dezactivată deoarece poate interfera cu funcționarea acestui site." + }, + "popup_site_filtering_state_disabled": { + "message": "Protecția este dezactivată" + }, + "popup_site_filtering_state_disabling": { + "message": "Dezactivarea protecției..." + }, + "popup_site_filtering_state_enabled": { + "message": "Protecția este activată" + }, + "popup_site_filtering_state_enabling": { + "message": "Activarea protecției..." + }, + "popup_site_filtering_state_loading": { + "message": "Se încarcă..." + }, + "popup_site_filtering_state_paused": { + "message": "Protecția este în pauză" + }, + "popup_site_filtering_state_pausing": { + "message": "Pauza protecției..." + }, + "popup_site_filtering_state_resuming": { + "message": "Reluarea protecției..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Pagină sigură" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "pentru toate site-urile web" + }, + "popup_statistics_all_categories": { + "message": "Toate" + }, + "popup_statistics_category_advertising": { + "message": "Reclame" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Categorie de statistici" + }, + "popup_statistics_category_other": { + "message": "Altele" + }, + "popup_statistics_category_social_media": { + "message": "Media socială" + }, + "popup_statistics_category_trackers": { + "message": "Trackere" + }, + "popup_statistics_months_apr": { + "message": "apr" + }, + "popup_statistics_months_aug": { + "message": "aug" + }, + "popup_statistics_months_dec": { + "message": "dec" + }, + "popup_statistics_months_feb": { + "message": "feb" + }, + "popup_statistics_months_jan": { + "message": "ian" + }, + "popup_statistics_months_jul": { + "message": "iul" + }, + "popup_statistics_months_jun": { + "message": "iun" + }, + "popup_statistics_months_mar": { + "message": "mar" + }, + "popup_statistics_months_may": { + "message": "mai" + }, + "popup_statistics_months_nov": { + "message": "nov" + }, + "popup_statistics_months_oct": { + "message": "oct" + }, + "popup_statistics_months_sep": { + "message": "sep" + }, + "popup_statistics_time_day": { + "message": "24 de ore" + }, + "popup_statistics_time_label": { + "message": "Perioada de timp a statisticilor" + }, + "popup_statistics_time_month": { + "message": "30 de zile" + }, + "popup_statistics_time_week": { + "message": "7 zile" + }, + "popup_statistics_time_year": { + "message": "1 an" + }, + "popup_statistics_total": { + "message": "Total" + }, + "popup_statistics_week_days_fri": { + "message": "vi" + }, + "popup_statistics_week_days_mon": { + "message": "lu" + }, + "popup_statistics_week_days_sat": { + "message": "sa" + }, + "popup_statistics_week_days_sun": { + "message": "du" + }, + "popup_statistics_week_days_thu": { + "message": "jo" + }, + "popup_statistics_week_days_tue": { + "message": "ma" + }, + "popup_statistics_week_days_wed": { + "message": "mi" + }, + "popup_switch_button": { + "message": "Protecție pentru site-ul web actual" + }, + "popup_tab_actions": { + "message": "Acțiuni" + }, + "popup_tab_blocked_all_count": { + "message": "Total blocate: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blocate: %num%" + }, + "popup_tab_current_website": { + "message": "Site-ul actual" + }, + "popup_tab_statistics": { + "message": "Statistici" + }, + "popup_tabs": { + "message": "File" + }, + "popup_tooltip_loading": { + "message": "Se încarcă..." + }, + "popup_tooltip_protection_disabled": { + "message": "Protecție dezactivată" + }, + "popup_tooltip_protection_enabled": { + "message": "Protecția este activată" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Unele reguli nu se aplică" + }, + "popup_tooltip_update_available": { + "message": "Actualizare disponibilă" + }, + "post_install_loading": { + "message": "Încărcarea extensiei..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Limita regulei întrecută în Extensie de browser AdGuard. Vă rugăm să vă verificați filtrele și să le dezactivați pe cele de care nu aveți nevoie" + }, + "text_collapser_hide_default": { + "message": "Ascundeți textul complet" + }, + "text_collapser_show_default": { + "message": "Afișați textul complet" + }, + "update_available_desc": { + "message": "Pentru a bloca eficient reclamele, mențineți extensia și filtrele actualizate" + }, + "update_available_title": { + "message": "Actualizări disponibile" + }, + "update_available_update_btn": { + "message": "Actualizează" + }, + "update_check": { + "message": "Caută actualizări" + }, + "update_checking_in_progress": { + "message": "Se caută actualizări..." + }, + "update_failed_text": { + "message": "Nu s-a finalizat actualizarea" + }, + "update_failed_try_again_btn": { + "message": "Încercați din nou" + }, + "update_installing_in_progress_desc": { + "message": "Extensia va reporni după actualizare" + }, + "update_installing_in_progress_title": { + "message": "Se actualizează extensia și filtrele..." + }, + "update_not_needed": { + "message": "Extensia și filtrele sunt actualizate" + }, + "update_success_text": { + "message": "Extensie și filtre actualizate" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ru/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ru/messages.json new file mode 100644 index 0000000..9a3a505 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ru/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% был автоматически включен." + }, + "alert_popup_filter_enabled_title": { + "message": "Автоматическая активация фильтров" + }, + "background_tab_title": { + "message": "Фоновая вкладка" + }, + "blocking_pages_advanced_button": { + "message": "Дополнительно" + }, + "blocking_pages_btn_go_back": { + "message": "Назад" + }, + "blocking_pages_btn_proceed": { + "message": "Всё равно продолжить" + }, + "blocking_pages_malware": { + "message": "Данная веб-страница \u003Cstrong>%host%\u003C/strong> может содержать вредоносное ПО. Она была заблокирована в соответствии с вашими настройками безопасности." + }, + "blocking_pages_more_info_button": { + "message": "Подробная информация" + }, + "blocking_pages_page_title": { + "message": "Доступ заблокирован" + }, + "blocking_pages_phishing": { + "message": "Данная веб-страница \u003Cstrong>%host%\u003C/strong> может являться фишинговой. Она была заблокирована в соответствии с вашими настройками безопасности." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard предотвратил загрузку этой страницы в соответствии со следующим правилом фильтрации" + }, + "blocking_pages_rule_header_title": { + "message": "Заблокировано AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard заблокировал доступ к этой странице" + }, + "clear_button_title": { + "message": "Очистить" + }, + "close_button_title": { + "message": "Закрыть" + }, + "context_block_site_ads": { + "message": "Блокировать рекламу вручную" + }, + "context_complaint_website": { + "message": "Сообщить о проблеме" + }, + "context_disable_protection": { + "message": "Приостановить защиту AdGuard" + }, + "context_enable_protection": { + "message": "Возобновить защиту AdGuard" + }, + "context_open_log": { + "message": "Журнал фильтрации" + }, + "context_open_settings": { + "message": "Настройки AdGuard" + }, + "context_security_report": { + "message": "Проверить безопасность сайта" + }, + "context_site_exception": { + "message": "Сайт находится в исключениях" + }, + "context_site_filtering_disabled": { + "message": "AdGuard не может фильтровать эту страницу" + }, + "context_site_filtering_off": { + "message": "Отключить фильтрацию на этом сайте" + }, + "context_site_filtering_on": { + "message": "Включить фильтрацию на этом сайте" + }, + "context_site_protection_disabled": { + "message": "Защита AdGuard остановлена" + }, + "context_update_antibanner_filters": { + "message": "Проверить обновления фильтров" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Эффективное расширение для блокировки рекламы и всплывающих окон. Блокирует рекламу в VK, Одноклассниках, YouTube и других сайтах." + }, + "filtering_clear_log_events": { + "message": "Очистить журнал" + }, + "filtering_log_actions_menu": { + "message": "Действия в Журнале фильтрации" + }, + "filtering_log_assumed_rule_description": { + "message": "Это предполагаемое правило. Подробности см. в нашей \u003Ca>Базе знаний\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Метод HTTP-запроса" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Код состояния HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Сторонний запрос" + }, + "filtering_log_details_modal_back_button": { + "message": "Назад к запросу" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Оптимизировать" + }, + "filtering_log_details_modal_try_again": { + "message": "Попробовать снова" + }, + "filtering_log_filter_allowed": { + "message": "Разрешённые" + }, + "filtering_log_filter_blocked": { + "message": "Заблокированные" + }, + "filtering_log_filter_modified": { + "message": "Изменённые" + }, + "filtering_log_filter_regular": { + "message": "Обычные" + }, + "filtering_log_filter_user_rules": { + "message": "Пользовательские правила" + }, + "filtering_log_hide_referrer": { + "message": "Referer скрыт от сторонних ресурсов" + }, + "filtering_log_hide_search_queries": { + "message": "Ваши поисковые запросы скрыты" + }, + "filtering_log_in_allowlist": { + "message": "Этот сайт в белом списке" + }, + "filtering_log_modified_rules": { + "message": "Изменённые правила: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Да, сохранить" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Эта опция может значительно увеличить использование памяти" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Сохранить журнал?" + }, + "filtering_log_preserve_log_off": { + "message": "Не сохранять лог" + }, + "filtering_log_preserve_log_on": { + "message": "Сохранять журнал" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Не показывать снова" + }, + "filtering_log_privacy_applied_rules": { + "message": "Использовалась Защита от трекинга" + }, + "filtering_log_remove_client_data": { + "message": "Заголовок X-Client-Data удалён" + }, + "filtering_log_search_string": { + "message": "Поиск" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Поиск по вкладкам" + }, + "filtering_log_send_not_track": { + "message": "Заголовок Do-Not-Track отправлен" + }, + "filtering_log_status_allowed": { + "message": "Разрешён" + }, + "filtering_log_status_blocked": { + "message": "Заблокирован" + }, + "filtering_log_status_modified": { + "message": "Изменён" + }, + "filtering_log_status_processed": { + "message": "Обработан" + }, + "filtering_log_stealth_rules": { + "message": "Правила защиты от трекинга: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Источник запроса" + }, + "filtering_log_tag_request_status": { + "message": "Статус фильтрации" + }, + "filtering_log_tag_request_type": { + "message": "Тип запроса" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Разрешённые и разблокированные запросы" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Заблокированные запросы" + }, + "filtering_log_tag_tooltip_css": { + "message": "Таблицы стилей" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Внутренние запросы" + }, + "filtering_log_tag_tooltip_html": { + "message": "Документы и поддокументы" + }, + "filtering_log_tag_tooltip_img": { + "message": "Изображения" + }, + "filtering_log_tag_tooltip_js": { + "message": "Скрипты" + }, + "filtering_log_tag_tooltip_media": { + "message": "Медиа" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Изменённые запросы" + }, + "filtering_log_tag_tooltip_other": { + "message": "Шрифты, пинги, WebRTC, WebSocket и т.д." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Запросы, обработанные без фильтрации" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Сторонние запросы" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Запросы, на которые влияют пользовательские правила" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Запросы XMLHttpRequests и fetch" + }, + "filtering_log_title": { + "message": "Журнал фильтрации" + }, + "filtering_menu_open_filters": { + "message": "Настроить" + }, + "filtering_modal_add_rule": { + "message": "Добавить" + }, + "filtering_modal_allow_title": { + "message": "Добавить в белый список" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Применённое правило | Применённые правила | Применённые правила" + }, + "filtering_modal_apply_domains": { + "message": "Применить ко всем сайтам" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Предполагаемое правило: | Предполагаемые правила: | Предполагаемые правила:" + }, + "filtering_modal_block": { + "message": "Заблокировать" + }, + "filtering_modal_block_again": { + "message": "Заблокировать снова" + }, + "filtering_modal_block_title": { + "message": "Заблокировать" + }, + "filtering_modal_converted_to": { + "message": "Преобразовано в:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Скопировано" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Копировать" + }, + "filtering_modal_declarative_rule": { + "message": "Правило DNR:" + }, + "filtering_modal_element": { + "message": "Элемент:" + }, + "filtering_modal_exception_title": { + "message": "Добавление исключения" + }, + "filtering_modal_filter": { + "message": "Фильтр" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Статус фильтрации" + }, + "filtering_modal_hide_full_element": { + "message": "Скрыть подробности элемента" + }, + "filtering_modal_hide_full_rule": { + "message": "Скрыть полное правило" + }, + "filtering_modal_hide_full_url": { + "message": "Скрыть полный URL" + }, + "filtering_modal_important": { + "message": "Повысить приоритет правила" + }, + "filtering_modal_info_title": { + "message": "Информация о запросе" + }, + "filtering_modal_open_in_new_tab": { + "message": "Открыть в новой вкладке" + }, + "filtering_modal_options_desc": { + "message": "Опции" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Оригинальное правило: | Оригинальные правила: | Оригинальные правила:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Что стоит разблокировать" + }, + "filtering_modal_patterns_desc_block": { + "message": "Что стоит заблокировать" + }, + "filtering_modal_preview_request_button": { + "message": "Предпросмотр" + }, + "filtering_modal_preview_title": { + "message": "Предпросмотр" + }, + "filtering_modal_privacy": { + "message": "Защита от трекинга" + }, + "filtering_modal_remove_allowlist": { + "message": "Удалить из белого списка" + }, + "filtering_modal_remove_param": { + "message": "Удалить параметры запроса" + }, + "filtering_modal_remove_user": { + "message": "Удалить правило" + }, + "filtering_modal_rule": { + "message": "Правило:" + }, + "filtering_modal_rule_text_desc": { + "message": "Правило" + }, + "filtering_modal_rules": { + "message": "Правила:" + }, + "filtering_modal_show_full_element": { + "message": "Показать элемент полностью" + }, + "filtering_modal_show_full_rule": { + "message": "Показать правило целиком" + }, + "filtering_modal_show_full_url": { + "message": "Показать полный URL" + }, + "filtering_modal_source": { + "message": "Источник" + }, + "filtering_modal_status_text_desc": { + "message": "Статус" + }, + "filtering_modal_status_text_error": { + "message": "Не удалось загрузить предварительный просмотр. Попробуйте ещё раз" + }, + "filtering_modal_status_text_loading": { + "message": "Загрузка..." + }, + "filtering_modal_third_party": { + "message": "Применять только к запросам на сторонние ресурсы" + }, + "filtering_modal_type": { + "message": "Тип" + }, + "filtering_modal_unblock": { + "message": "Разблокировать" + }, + "filtering_refresh_tab_short": { + "message": "Обновить" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Обновить страницу" + }, + "filtering_table_action": { + "message": "Действие" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ничего не найдено. \u003Creset>Отключите фильтры\u003C/reset> или \u003Crefresh>перезагрузите страницу\u003C/refresh>, чтобы просмотреть записи журнала" + }, + "filtering_table_filter": { + "message": "Фильтр" + }, + "filtering_table_open_details": { + "message": "Подробнее" + }, + "filtering_table_rule": { + "message": "Правило фильтрации" + }, + "filtering_table_source": { + "message": "Источник" + }, + "filtering_table_status": { + "message": "Статус" + }, + "filtering_table_type": { + "message": "Тип" + }, + "filtering_type_all": { + "message": "Все" + }, + "filtering_type_other": { + "message": "Прочее" + }, + "filters_download_loading": { + "message": "Пожалуйста, подождите. Идёт загрузка базы данных фильтров..." + }, + "filters_download_title": { + "message": "Загрузка базы фильтров..." + }, + "fullscreen_user_rules_title": { + "message": "Пользовательские правила" + }, + "group_description_adblocking": { + "message": "Настройте блокировку рекламы, чтобы раз и навсегда избавиться от надоедливых баннеров, всплывающих окон, видеорекламы и прочих раздражителей" + }, + "group_description_annoyances": { + "message": "Уберите всплывающие окна и другие раздражающие уведомления, например уведомления о файлах cookie" + }, + "group_description_custom": { + "message": "Создавайте свои фильтры, чтобы ещё более детально настроить веб-фильтрацию под себя." + }, + "group_description_lang": { + "message": "Не ограничивайте себя — блокируйте рекламу на сайтах на любых языках" + }, + "group_description_miscellaneous": { + "message": "Дополнительные настройки, чтобы сделать веб-сёрфинг ещё более удобным с помощью AdGuard" + }, + "group_description_security": { + "message": "Защитите себя от вредоносных программ, фишинга и других онлайн-угроз" + }, + "group_description_social": { + "message": "Скройте ненужные кнопки «Нравится», «Поделиться» и другие виджеты социальных сетей" + }, + "group_description_stealth": { + "message": "Защитите личные данные от онлайн-трекеров, заблокировав все известные популярные методы отслеживания" + }, + "name": { + "message": "AdGuard Антибаннер" + }, + "opera_search_permission_dont_show": { + "message": "Не показывать снова" + }, + "opera_search_permission_go_to_settings": { + "message": "Перейти в Настройки" + }, + "opera_search_permission_warning": { + "message": "Чтобы заблокировать рекламу в результатах поиска, разрешите доступ к результатам поиска в настройках браузера" + }, + "options_about": { + "message": "О программе" + }, + "options_about_libs": { + "message": "Используемые библиотеки" + }, + "options_about_title": { + "message": "Браузерное расширение AdGuard" + }, + "options_about_update_available": { + "message": "Доступна версия %version%. Она будет загружена и установлена автоматически." + }, + "options_about_version": { + "message": "Версия" + }, + "options_acknowledgment": { + "message": "Благодарности" + }, + "options_add_custom_filter": { + "message": "Добавить фильтр" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Добавить" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Проверка фильтра..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL-адрес вернул веб-страницу вместо фильтра. Пожалуйста, укажите прямую ссылку на файл фильтра." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Попробуйте ещё раз или напишите в поддержку" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Не удалось добавить пользовательский фильтр" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Название фильтра:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Доверенный" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Доверенные фильтры могут использовать мощные модификаторы правил — убедитесь, что вы используете фильтр от надёжных разработчиков" + }, + "options_add_custom_filter_modal_title": { + "message": "Добавить свой" + }, + "options_all_limits_exceeded_warning": { + "message": "Достигнут лимит активных встроенных правил. Браузер изменил список включённых фильтров. Количество фильтров изменено с %expected% на %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Достигнут лимит активных встроенных правил. Браузер сократил список активных встроенных фильтров с %expected% до %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Браузер ограничивает \u003Cexternal-link>некоторые типы правил\u003C/external-link>. Чтобы все правила применялись, включите \u003Cb>Разрешить пользовательские скрипты\u003C/b> \u003Csettings-link>в настройках расширений\u003C/settings-link> браузера" + }, + "options_allowlist": { + "message": "Белый список" + }, + "options_allowlist_alert_invert": { + "message": "Белый список инвертирован. Реклама блокируется только на сайтах, добавленных в него." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Убрать инвертирование\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard не блокирует рекламу и трекеры на сайтах из списка" + }, + "options_allowlist_invalid_entries": { + "message": "Чтобы сохранить изменения, оставьте только домены или URL-адреса. Эти нужно исправить: %entries%" + }, + "options_allowlist_invert": { + "message": "Инвертировать белый список" + }, + "options_allowlist_invert_desc": { + "message": "Блокирует рекламу и трекеры только на разрешённых сайтах" + }, + "options_allowlist_leave_subtitle": { + "message": "Ваши изменения в белом списке не сохранятся" + }, + "options_allowlist_menu": { + "message": "Действия с Белым списком" + }, + "options_anonymized_usage_data_description": { + "message": "Отправляет в AdGuard анонимную статистику об использования расширения. \u003Cbutton>Узнать больше\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Хорошо" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Эти данные включают:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Названия кнопок, на которые вы нажимаете" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Названия экранов, с которыми вы взаимодействуете" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Идентификаторы сеансов" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Эти данные анонимны и используются только внутри компании. Мы никогда не передаём их третьим лицам" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Нам нужна эта информация, чтобы проанализировать и улучшить функциональность AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Данные об использовании расширения" + }, + "options_anonymized_usage_data_title": { + "message": "Отправлять анонимные данные об использовании расширения" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Этот пользовательский фильтр уже добавлен" + }, + "options_antibanner_custom_group": { + "message": "Собственные" + }, + "options_antibanner_custom_group_description": { + "message": "Позволяет добавить фильтры из файла или URL-адреса" + }, + "options_antibanner_rules_count": { + "message": "Правил: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Обновлён: %date%" + }, + "options_block_acceptable_ads": { + "message": "Блокировать поисковую рекламу и саморекламу сайтов" + }, + "options_block_acceptable_ads_desc": { + "message": "Блокирует рекламу в результатах поиска и саморекламу сайтов. \u003Ca>Подробнее\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Установите значение «0», чтобы заблокировать их полностью" + }, + "options_block_known_trackers_description": { + "message": "Блокирует трекеры и веб-аналитику с помощью Фильтра счётчиков и систем аналитики" + }, + "options_block_known_trackers_title": { + "message": "Блокировать трекеры" + }, + "options_check_update_progress": { + "message": "Проверка..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Очистить" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Вся статистика использования данных будет безвозвратно удалена" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Очистить статистику?" + }, + "options_clipboard_permission_warning": { + "message": "Чтобы копировать и вставлять правила, разрешите AdGuard доступ к буферу обмена. \u003Ca>Разрешить\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Отправляет в AdGuard анонимную статистику об использовании рекламных фильтров. \u003Ca>Подробнее\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Помогать в разработке фильтров AdGuard" + }, + "options_coming_soon": { + "message": "Скоро" + }, + "options_confirm_modal_cancel_button": { + "message": "Отмена" + }, + "options_copyright": { + "message": "Все права защищены." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Включите \u003Cb>Разрешить пользовательские скрипты\u003C/b> \u003Csettings-link>в настройках расширений\u003C/settings-link> браузера" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Чтобы использовать пользовательские фильтры, включите \u003Cb>Режим разработчика\u003C/b> \u003Csettings-link>в настройках расширений\u003C/settings-link> браузера" + }, + "options_desktop_app_promo_button_linux": { + "message": "Установить AdGuard для Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Скачать AdGuard для Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Скачать AdGuard для Windows" + }, + "options_desktop_app_promo_description": { + "message": "Spotify, Discord или Zoom всё ещё могут показывать рекламу или отслеживать вас" + }, + "options_desktop_app_promo_subdescription": { + "message": "От них защитит наше приложение" + }, + "options_desktop_app_promo_title": { + "message": "Расширение защищает только браузер" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Браузер ограничивает \u003Cexternal-link>некоторые типы правил\u003C/external-link>. Чтобы все правила применялись, включите \u003Cb>Режим разработчика\u003C/b> \u003Csettings-link>в настройках расширений\u003C/settings-link> браузера" + }, + "options_disable_webrtc_desc": { + "message": "Блокирует WebRTC — уязвимость, которая может привести к утечке вашего реального IP-адреса, даже если вы используете прокси или VPN. Некоторые мессенджеры, стриминговые платформы или игры могут перестать работать корректно" + }, + "options_disable_webrtc_title": { + "message": "Блокировать WebRTC" + }, + "options_discuss": { + "message": "Обсудить AdGuard" + }, + "options_do_you_like_question": { + "message": "Вам нравится AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Выйти из полноэкранного режима" + }, + "options_editor_indicator_saved": { + "message": "Сохранено" + }, + "options_editor_indicator_saving": { + "message": "Сохранение..." + }, + "options_editor_leave_cancel": { + "message": "К редактированию" + }, + "options_editor_leave_confirm": { + "message": "Да, выйти" + }, + "options_editor_leave_title": { + "message": "Выйти без сохранения?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Открыть в новом окне" + }, + "options_editor_save": { + "message": "Сохранить" + }, + "options_editor_save_error": { + "message": "Не удалось сохранить изменения. Попробуйте ещё раз или напишите в поддержку" + }, + "options_empty_custom_filter": { + "message": "У вас пока нет пользовательских фильтров" + }, + "options_enable_autodetect_filter": { + "message": "Автоматически подключать наиболее подходящие фильтры" + }, + "options_enable_autodetect_filter_desc": { + "message": "Определяет язык сайта и активирует соответствующие фильтры" + }, + "options_export_settings": { + "message": "Экспорт настроек" + }, + "options_filters": { + "message": "Фильтры" + }, + "options_filters_annoyances_consent_description": { + "message": "Вы собираетесь включить один или несколько фильтров раздражителей. Они блокируют элементы, которые либо не имеют отношения к содержимому сайта, либо имеют, но раздражают пользователя. Владельцы сайтов могут считать эти элементы обязательными: если вы блокируете их, вы можете нарушить их условия; некоторая функциональность сайтов может быть недоступна или работать некорректно. Включая фильтры, вы понимаете и соглашаетесь с тем, что несёте полную ответственность за соблюдение условий использования посещаемых вами сайтов и что AdGuard не несёт ответственности за соблюдение вами условий использования сайтов, которые вы посещаете, используя наши продукты." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Включить" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Сайт" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Подробнее о том, что блокируют раздражающие фильтры AdGuard, читайте \u003Ca>в Политике фильтрации\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Включить фильтры?" + }, + "options_filters_annoyances_consent_title": { + "message": "Пожалуйста, внимательно прочитайте текст ниже, прежде чем включать фильтры раздражителей" + }, + "options_filters_back_button": { + "message": "Назад" + }, + "options_filters_empty_title": { + "message": "Ничего не найдено" + }, + "options_filters_enabled": { + "message": "Включено:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% и %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% и ещё %more%" + }, + "options_filters_enabled_per_group": { + "message": "Включено: %current% из %total%" + }, + "options_filters_filter_link": { + "message": "Перейти на сайт" + }, + "options_filters_filter_tags": { + "message": "Теги фильтров" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Вы решили доверять этому фильтру." + }, + "options_filters_filter_updated": { + "message": "Обновлён:" + }, + "options_filters_filter_version": { + "message": "Версия:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Всего правил: %num%" + }, + "options_filters_last_checked": { + "message": "Последняя проверка: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Все фильтры" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Отключённые" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Включённые" + }, + "options_filters_no_enabled": { + "message": "Фильтры выключены" + }, + "options_filters_of_group": { + "message": "Фильтры группы «%groupName%»" + }, + "options_filters_search": { + "message": "Поиск" + }, + "options_filters_search_filter": { + "message": "Поиск по фильтрам" + }, + "options_first_party_block_cookies_warning": { + "message": "Если вы заблокируете эти куки, некоторые сайты могут сломаться или перестать работать" + }, + "options_first_party_desc": { + "message": "Не позволяет сайтам запоминать ваши данные, такие как учётные данные и языковые настройки, ограничивая срок действия основных файлов куки" + }, + "options_first_party_title": { + "message": "Удалять куки сайта (не рекомендуется)" + }, + "options_general_settings": { + "message": "Основные" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Не позволять сторонним ресурсам узнать, какой сайт вы посещаете" + }, + "options_hide_referrer_title": { + "message": "Скрыть Referer от сторонних ресурсов" + }, + "options_hide_search_queries_desc": { + "message": "Скрывает ваши поисковые запросы от сайтов, посещённых через результаты поисковых систем" + }, + "options_hide_search_queries_title": { + "message": "Скрывать поисковые запросы" + }, + "options_import_configuration_applying_subtitle": { + "message": "Замена текущих настроек на импортированные. Фильтрация отключена во время импорта" + }, + "options_import_configuration_applying_title": { + "message": "Импортируем..." + }, + "options_import_configuration_confirm_button": { + "message": "Импорт" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Импортированные настройки заменят ваши текущие. Другие настройки не будут затронуты" + }, + "options_import_configuration_confirm_title": { + "message": "Импорт настроек" + }, + "options_import_configuration_error_button": { + "message": "Закрыть" + }, + "options_import_configuration_error_subtitle": { + "message": "Пожалуйста, проверьте ссылку для импорта и попробуйте снова. Если это не поможет, напишите в поддержку" + }, + "options_import_configuration_error_title": { + "message": "Не удалось импортировать настройки" + }, + "options_import_configuration_success_button": { + "message": "Закрыть" + }, + "options_import_configuration_success_subtitle": { + "message": "Настройки были успешно импортированы" + }, + "options_import_configuration_success_title": { + "message": "Готово" + }, + "options_import_settings": { + "message": "Импорт настроек" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Инвертировать" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Реклама и трекеры будут заблокированы только на сайтах из белого списка" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Инвертировать белый список?" + }, + "options_leave_feedback": { + "message": "Оставить отзыв" + }, + "options_lifetime_minutes": { + "message": "Время жизни в минутах" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Достигнут лимит активных правил регулярных выражений. Включено %maximum% из %current%." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Достигнут лимит пользовательских правил regex. Включено %maximum% из %current% правил. Чтобы добавить новые правила regex, удалите некоторые существующие" + }, + "options_limits_warning_dynamic_rules": { + "message": "Достигнут лимит активных пользовательских правил. Включено %maximum% из %current%." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Достигнут лимит пользовательских правил. Включено %maximum% из %current% правил. Чтобы добавить новые правила, удалите некоторые существующие" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Достигнут лимит активных небезопасных пользовательских правил. Включено %maximum% из %current%." + }, + "options_limits_warning_static_filters": { + "message": "Достигнут лимит активных встроенных фильтров. Включено %maximum% из %current%. Чтобы новые правила применялись, отключите некоторые фильтры." + }, + "options_limits_warning_static_filters_browser": { + "message": "Достигнут лимит активных встроенных фильтров браузера. Включено %maximum% из %current%. Чтобы новые фильтры применялись, отключите некоторые встроенные" + }, + "options_limits_warning_static_regex_rules": { + "message": "Достигнут лимит активных встроенных правил регулярных выражений. Включено %maximum% из %current%. Чтобы новые правила применялись, отключите некоторые фильтры." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Достигнут лимит активных встроенных правил regex. Чтобы новые правила применялись, отключите некоторые встроенные фильтры" + }, + "options_limits_warning_static_rules": { + "message": "Достигнут лимит активных встроенных правил. Включено %maximum% из %current%. Чтобы новые правила применялись, отключите некоторые фильтры." + }, + "options_limits_warning_static_rules_browser": { + "message": "Достигнут лимит активных встроенных правил браузера. Чтобы новые правила применялись, отключите некоторые встроенные фильтры" + }, + "options_loader_applying_changes": { + "message": "Сохранение изменений..." + }, + "options_miscellaneous_settings": { + "message": "Дополнительные настройки" + }, + "options_modified_first_party_cookie": { + "message": "Основные файлы cookie изменены" + }, + "options_modified_third_party_cookie": { + "message": "Сторонние файлы cookie изменены" + }, + "options_nav_better_than_extension": { + "message": "Почему приложение AdGuard лучше расширения?" + }, + "options_nav_compare": { + "message": "Сравнить" + }, + "options_navigation": { + "message": "Навигация" + }, + "options_open_changelog": { + "message": "Список изменений" + }, + "options_open_log": { + "message": "Открыть журнал фильтрации" + }, + "options_popup_call_to_action": { + "message": "Введите корректный URL фильтра или путь к локальному файлу в строку выше." + }, + "options_popup_check_false_description": { + "message": "Ошибка при добавлении фильтра." + }, + "options_popup_check_false_title": { + "message": "Ошибка" + }, + "options_popup_checking_filter": { + "message": "Проверка фильтра" + }, + "options_popup_description": { + "message": "Вы будете подписаны на этот фильтр." + }, + "options_popup_filter_description": { + "message": "Описание:" + }, + "options_popup_filter_homepage": { + "message": "Сайт:" + }, + "options_popup_filter_rules_count": { + "message": "Количество правил:" + }, + "options_popup_filter_title": { + "message": "Название:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Версия:" + }, + "options_popup_import_error_file_description": { + "message": "Что-то пошло не так" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Чтобы импортировать этот файл, разрешите AdGuard изменить ваши настройки конфиденциальности." + }, + "options_popup_import_error_title": { + "message": "Не удалось импортировать настройки" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Расширение файла должно быть %extension%" + }, + "options_popup_import_success_title": { + "message": "Настройки импортированы" + }, + "options_popup_next_button": { + "message": "Далее" + }, + "options_popup_subscribe_button": { + "message": "Подписаться" + }, + "options_popup_title_placeholder": { + "message": "Введите название фильтра" + }, + "options_popup_trusted_filter_description": { + "message": "Доверенные фильтры могут использовать мощные модификаторы правил фильтрации, которые, в свою очередь, могут представлять опасность, находясь в ненадёжных руках. Не устанавливайте этот флажок, если полностью не доверяете фильтру." + }, + "options_popup_trusted_filter_title": { + "message": "Доверенный" + }, + "options_popup_try_again_button": { + "message": "Попробовать снова" + }, + "options_popup_update_error": { + "message": "Не удалось получить обновления. Пожалуйста, попробуйте ещё раз позже." + }, + "options_popup_update_filter": { + "message": "обновлён." + }, + "options_popup_update_filters": { + "message": "обновлены." + }, + "options_popup_update_not_found": { + "message": "Фильтры обновлены" + }, + "options_popup_update_title_error": { + "message": "Ошибка обновления фильтров" + }, + "options_popup_updating_filters": { + "message": "Обновление фильтров..." + }, + "options_popup_url_placeholder": { + "message": "Путь или ссылка:" + }, + "options_popup_url_title": { + "message": "Добавление нового фильтра" + }, + "options_popup_version_update_changelog_text": { + "message": "Что нового в этой версии?" + }, + "options_popup_version_update_description_major": { + "message": "Это масштабное обновление расширения, содержащее множество новых функций и улучшений." + }, + "options_popup_version_update_description_minor": { + "message": "Эта версия содержит в основном исправления ошибок и незначительные улучшения." + }, + "options_popup_version_update_disable_notification": { + "message": "Отключить уведомления" + }, + "options_popup_version_update_offer": { + "message": "Вы знали, что возможности AdGuard не ограничиваются только блокировкой в этом браузере?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ПОДРОБНЕЕ" + }, + "options_popup_version_update_title_text": { + "message": "Расширение AdGuard было обновлено до версии %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Заставляет WebRTC использовать более строгую политику IP-адресов, чтобы скрыть ваш реальный IP при использовании прокси или VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Предотвращать утечки IP-адреса через WebRTC" + }, + "options_privacy": { + "message": "Защита от трекинга" + }, + "options_privacy_desc": { + "message": "Не даёт отследить вас и защищает ваши данные" + }, + "options_privacy_policy": { + "message": "Политика конфиденциальности" + }, + "options_privacy_title": { + "message": "Защита от трекинга" + }, + "options_rate_us_cta": { + "message": "Оценить" + }, + "options_remove_client_data_desc": { + "message": "Блокировать отправку Google Chrome информации о версии и изменениях доменам Google" + }, + "options_remove_client_data_title": { + "message": "Удалять заголовок X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Удалить" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Удалить этот фильтр?" + }, + "options_report_bug": { + "message": "Сообщить об ошибке" + }, + "options_reset_settings": { + "message": "Сбросить настройки" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Сбросить" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Все настройки будут сброшены до значений по умолчанию" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Сбросить настройки?" + }, + "options_reset_settings_done": { + "message": "Настройки сброшены" + }, + "options_reset_settings_error": { + "message": "Ошибка при сбросе настроек" + }, + "options_reset_stats": { + "message": "Сбросить статистику" + }, + "options_reset_stats_done": { + "message": "Статистика сброшена" + }, + "options_rule_limits": { + "message": "Лимит правил" + }, + "options_rule_limits_description": { + "message": "Chrome ограничивает количество правил, которые можно применять" + }, + "options_rule_limits_dynamic": { + "message": "Динамические правила" + }, + "options_rule_limits_dynamic_regex": { + "message": "Правила регулярных выражений. Входят в пользовательские правила" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Небезопасные динамические правила (используются для некоторых расширенных модификаторов, таких как $$redirect или $$cookie) — включены в пользовательские правила" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Пользовательские правила, такие как \u003Cuser_rules>пользовательские правила\u003C/user_rules>, \u003Callowlist>сайты из белого списка\u003C/allowlist> и \u003Ccustom_filters>пользовательские фильтры\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Добавляемые пользователем правила, такие как \u003Cuser_rules>пользовательские правила\u003C/user_rules> и \u003Callowlist>сайты из белого списка\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% из %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Статические правила" + }, + "options_rule_limits_static_rules_all": { + "message": "Правила из \u003Ca>встроенных фильтров\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Правила регулярных выражений. Входят в лимит динамических правил" + }, + "options_rule_limits_static_rulesets": { + "message": "Статические наборы правил" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Встроенные фильтры\u003C/a>, например, Блокировка раздражителей или Языковые" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Вариант 3. Если текущие фильтры вас устраивают, \u003Ca>закройте это предупреждение\u003C/a>." + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Вариант 3. Если текущие фильтры вас устраивают, \u003Ca>закройте это предупреждение\u003C/a>." + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Вариант 1. Удалите ненужные расширения, блокирующие рекламу. Чтобы заново включить фильтры из раздела «Фильтры до обновления», нажмите \u003Ca>включить\u003C/a>." + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Вариант 2. Установите приложение AdGuard: у него нет ограничений по правилам фильтрации. \u003Ca>Скачать AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Что можно сделать" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Лимит активных встроенных правил был превышен: возможно, обновилось расширение AdGuard или вы установили новое расширение. Согласно Manifest V3 Chrome отключил все фильтры, кроме фильтров по умолчанию." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Что произошло?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Фильтры до обновления" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Фильтры сейчас" + }, + "options_rule_limits_warning_title": { + "message": "Браузер изменил список активных фильтров" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Снимите ограничения правил и получите расширенную защиту, которая работает во всех браузерах" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Установите десктопное приложение" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Перейти к фильтрам" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Управляйте расширениями" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "У браузерных расширений общий лимит правил. Удаление других блокировщиков рекламы может освободить больше правил для Браузерного расширения AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Удалите другие блокировщики рекламы" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Включите только те фильтры, которые вам нужны. Языковые фильтры и фильтры конфиденциальности могут использовать множество правил" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Посмотрите доступные фильтры" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Рассказываем, что можно сделать" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Достигнут лимит — некоторые фильтры отключены" + }, + "options_rule_syntax": { + "message": "Синтаксис" + }, + "options_safebrowsing_enabled": { + "message": "Защита от фишинговых и вредоносных сайтов" + }, + "options_safebrowsing_enabled_desc": { + "message": "Предупреждает о вредоносных и фишинговых сайтах с использованием модуля AdGuard *Защита от фишинга*. \u003Ca>Подробнее\u003C/a>" + }, + "options_select_theme": { + "message": "Тема" + }, + "options_select_update_period_12h": { + "message": "12 часов" + }, + "options_select_update_period_1h": { + "message": "1 час" + }, + "options_select_update_period_24h": { + "message": "24 часа" + }, + "options_select_update_period_48h": { + "message": "48 часов" + }, + "options_select_update_period_6h": { + "message": "6 часов" + }, + "options_select_update_period_default": { + "message": "По умолчанию" + }, + "options_select_update_period_disabled": { + "message": "Отключено" + }, + "options_send_not_track_desc": { + "message": "Отправлять сигналы \u003Cgpc>Global Privacy Control\u003C/gpc> и \u003Cdnt>Do Not Track\u003C/dnt> сайтам, которые вы посещаете" + }, + "options_send_not_track_title": { + "message": "Просить сайты не отслеживать меня" + }, + "options_set_update_interval": { + "message": "Автообновление фильтров" + }, + "options_set_update_interval_desc": { + "message": "Поддерживает актуальность фильтров для более эффективной блокировки рекламы" + }, + "options_settings": { + "message": "Настройки AdGuard" + }, + "options_share_settings": { + "message": "Поделиться настройками" + }, + "options_show_adguard_full_version_title": { + "message": "Показывать информацию о полной версии AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Уведомлять об обновлениях расширения" + }, + "options_show_blocked_ads_count_title": { + "message": "Показывать количество заблокированной рекламы на иконке расширения AdGuard" + }, + "options_show_context_menu_title": { + "message": "Добавить AdGuard в контекстное меню браузера" + }, + "options_site": { + "message": "Официальный сайт" + }, + "options_skip_to_main_content": { + "message": "Перейти к основному содержанию" + }, + "options_stealth_general_title": { + "message": "Общие" + }, + "options_stealth_miscellaneous_title": { + "message": "Разное" + }, + "options_stealth_tracking_methods_title": { + "message": "Методы отслеживания" + }, + "options_strip_tracking_params_description": { + "message": "Удаляет трекинговые параметры из URL-адресов с помощью Фильтра отслеживания по URL" + }, + "options_strip_tracking_params_title": { + "message": "Удалять параметры отслеживания из URL-адресов" + }, + "options_stripped_tracking_parameters": { + "message": "Параметры отслеживания удалены" + }, + "options_theme_selector_dark": { + "message": "Тёмная" + }, + "options_theme_selector_light": { + "message": "Светлая" + }, + "options_theme_selector_system": { + "message": "Системная" + }, + "options_third_party_block_cookies_warning": { + "message": "Если вы заблокируете эти куки, придётся время от времени заново входить на некоторые сайты или сталкиваться с другими проблемами, связанными с куки" + }, + "options_third_party_desc": { + "message": "Не позволяет рекламодателям отслеживать ваше поведение на нескольких страницах, ограничивая срок действия сторонних куки" + }, + "options_third_party_title": { + "message": "Удалять сторонние файлы куки" + }, + "options_update_antibanner_filters": { + "message": "Проверить обновления фильтров" + }, + "options_use_optimized_filters": { + "message": "Использовать оптимизированные фильтры" + }, + "options_use_optimized_filters_desc": { + "message": "Для экономии трафика использует сокращённые версии фильтров, включающие только самые популярные правила. Лучше подходит для мобильных браузеров" + }, + "options_user_rules_clear_search": { + "message": "Очистить поиск" + }, + "options_user_rules_create_rule": { + "message": "Создать правило" + }, + "options_user_rules_delete_all": { + "message": "Удалить все" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Все пользовательские правила будут удалены" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Удалить все?" + }, + "options_user_rules_delete_all_success": { + "message": "Все правила удалены" + }, + "options_user_rules_delete_rule": { + "message": "Удалить правило" + }, + "options_user_rules_deleted_notification": { + "message": "Пользовательское правило удалено:" + }, + "options_user_rules_description_key": { + "message": "Ваши правила для блокировки и разблокировки рекламы или целых сайтов" + }, + "options_user_rules_edit_rule": { + "message": "Редактировать правило" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Перейти в редактор" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Ваши правила появятся здесь после того, как вы его закроете" + }, + "options_user_rules_editor_stub_title": { + "message": "Редактор открыт в другом окне" + }, + "options_user_rules_empty_placeholder": { + "message": "Правил пока нет" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Выделяем правила…" + }, + "options_user_rules_import_error": { + "message": "Не удалось импортировать пользовательские правила. Попробуйте ещё раз" + }, + "options_user_rules_import_success": { + "message": "Пользовательские правила импортированы" + }, + "options_user_rules_menu": { + "message": "Действия с Пользовательскими правилами" + }, + "options_user_rules_no_match": { + "message": "Ничего не найдено" + }, + "options_user_rules_search_placeholder": { + "message": "Поиск" + }, + "options_user_rules_switch_to_editor": { + "message": "Переключиться в режим редактирования" + }, + "options_user_rules_switch_to_list": { + "message": "Переключиться в режим списка" + }, + "options_user_rules_undo": { + "message": "Отменить" + }, + "options_userfilter": { + "message": "Пользовательские правила" + }, + "options_userfilter_description_key": { + "message": "Здесь вы можете добавлять свои правила. Эта опция рекомендована для продвинутых пользователей, знакомых с HTML/CSS. Прочитайте \u003Ca>руководство\u003C/a>, чтобы научиться составлять свои правила фильтрации." + }, + "options_userfilter_export": { + "message": "Экспорт" + }, + "options_userfilter_import": { + "message": "Импорт" + }, + "options_userfilter_leave_subtitle": { + "message": "Ваши изменения в правилах не сохранятся" + }, + "options_userfilter_line_break": { + "message": "Перенос строки" + }, + "options_userfilter_line_break_off": { + "message": "Разрыв строки отключён" + }, + "options_userfilter_line_break_on": { + "message": "Разрыв строки включён" + }, + "options_userfilter_subtitle_key": { + "message": "Позволяет добавлять собственные правила фильтрации" + }, + "popup_abuse_site": { + "message": "Сообщить о проблеме" + }, + "popup_adguard_footer_title": { + "message": "AdGuard для iOS и Android" + }, + "popup_adguard_for_android": { + "message": "AdGuard для Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard для iOS" + }, + "popup_block_site_ads_option": { + "message": "Блокировать рекламу вручную" + }, + "popup_get_system_wide_protection": { + "message": "Защита для всего устройства" + }, + "popup_header_cta_link": { + "message": "Как усилить защиту" + }, + "popup_header_update_filters": { + "message": "Проверить обновления фильтров" + }, + "popup_limits_exceeded_warning": { + "message": "Браузер изменил список активных встроенных фильтров" + }, + "popup_open_filtering_log": { + "message": "Открыть журнал фильтрации" + }, + "popup_open_settings": { + "message": "Открыть настройки AdGuard" + }, + "popup_protection_button": { + "message": "Защита AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Удалить правила для этого сайта" + }, + "popup_resume_protection_button": { + "message": "Возобновить" + }, + "popup_security_report": { + "message": "Проверить безопасность сайта" + }, + "popup_site_exception_information": { + "message": "На этом сайте фильтрация отключена, так как она может мешать его работе." + }, + "popup_site_filtering_state_disabled": { + "message": "Защита отключена" + }, + "popup_site_filtering_state_disabling": { + "message": "Отключение защиты..." + }, + "popup_site_filtering_state_enabled": { + "message": "Защита включена" + }, + "popup_site_filtering_state_enabling": { + "message": "Включение защиты..." + }, + "popup_site_filtering_state_loading": { + "message": "Загрузка..." + }, + "popup_site_filtering_state_paused": { + "message": "Защита остановлена" + }, + "popup_site_filtering_state_pausing": { + "message": "Приостановка защиты..." + }, + "popup_site_filtering_state_resuming": { + "message": "Возобновляем защиту..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Защищённая страница" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "для всех сайтов" + }, + "popup_statistics_all_categories": { + "message": "Все" + }, + "popup_statistics_category_advertising": { + "message": "Реклама" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Категория статистики" + }, + "popup_statistics_category_other": { + "message": "Прочее" + }, + "popup_statistics_category_social_media": { + "message": "Социальные сети" + }, + "popup_statistics_category_trackers": { + "message": "Трекеры" + }, + "popup_statistics_months_apr": { + "message": "Апр" + }, + "popup_statistics_months_aug": { + "message": "Авг" + }, + "popup_statistics_months_dec": { + "message": "Дек" + }, + "popup_statistics_months_feb": { + "message": "Фев" + }, + "popup_statistics_months_jan": { + "message": "Янв" + }, + "popup_statistics_months_jul": { + "message": "Июль" + }, + "popup_statistics_months_jun": { + "message": "Июнь" + }, + "popup_statistics_months_mar": { + "message": "Март" + }, + "popup_statistics_months_may": { + "message": "Май" + }, + "popup_statistics_months_nov": { + "message": "Ноя" + }, + "popup_statistics_months_oct": { + "message": "Окт" + }, + "popup_statistics_months_sep": { + "message": "Сент" + }, + "popup_statistics_time_day": { + "message": "24 часа" + }, + "popup_statistics_time_label": { + "message": "Временной период статистики" + }, + "popup_statistics_time_month": { + "message": "30 дней" + }, + "popup_statistics_time_week": { + "message": "7 дней" + }, + "popup_statistics_time_year": { + "message": "1 год" + }, + "popup_statistics_total": { + "message": "Всего" + }, + "popup_statistics_week_days_fri": { + "message": "Пт" + }, + "popup_statistics_week_days_mon": { + "message": "Пн" + }, + "popup_statistics_week_days_sat": { + "message": "Сб" + }, + "popup_statistics_week_days_sun": { + "message": "Вс" + }, + "popup_statistics_week_days_thu": { + "message": "Чт" + }, + "popup_statistics_week_days_tue": { + "message": "Вт" + }, + "popup_statistics_week_days_wed": { + "message": "Ср" + }, + "popup_switch_button": { + "message": "Фильтрация на текущем сайте" + }, + "popup_tab_actions": { + "message": "Действия" + }, + "popup_tab_blocked_all_count": { + "message": "Всего: %num%" + }, + "popup_tab_blocked_count": { + "message": "Заблокировано: %num%" + }, + "popup_tab_current_website": { + "message": "Текущий сайт" + }, + "popup_tab_statistics": { + "message": "Статистика" + }, + "popup_tabs": { + "message": "Вкладки" + }, + "popup_tooltip_loading": { + "message": "Загрузка..." + }, + "popup_tooltip_protection_disabled": { + "message": "Защита выключена" + }, + "popup_tooltip_protection_enabled": { + "message": "Защита включена" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Некоторые правила не применены" + }, + "popup_tooltip_update_available": { + "message": "Доступно обновление" + }, + "post_install_loading": { + "message": "Загрузка расширения..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Превышен лимит правил в Браузерном расширении AdGuard. Проверьте фильтры и отключите те, которые вам не нужны" + }, + "text_collapser_hide_default": { + "message": "Скрыть полный текст" + }, + "text_collapser_show_default": { + "message": "Показать полный текст" + }, + "update_available_desc": { + "message": "Регулярные обновления нужны, чтобы эффективно блокировать рекламу" + }, + "update_available_title": { + "message": "Доступны обновления" + }, + "update_available_update_btn": { + "message": "Обновить" + }, + "update_check": { + "message": "Проверить обновления" + }, + "update_checking_in_progress": { + "message": "Проверка обновлений..." + }, + "update_failed_text": { + "message": "Не удалось завершить обновление" + }, + "update_failed_try_again_btn": { + "message": "Попробовать снова" + }, + "update_installing_in_progress_desc": { + "message": "После обновления расширение перезапустится" + }, + "update_installing_in_progress_title": { + "message": "Обновляем расширение и фильтры..." + }, + "update_not_needed": { + "message": "Ваши расширение и фильтры — самые свежие" + }, + "update_success_text": { + "message": "Расширение и фильтры обновлены" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sk/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sk/messages.json new file mode 100644 index 0000000..e0ef7e6 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sk/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name%\" bol aktivovaný automaticky." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatická aktivácia filtrov" + }, + "background_tab_title": { + "message": "Karta na pozadí" + }, + "blocking_pages_advanced_button": { + "message": "Pokročilé" + }, + "blocking_pages_btn_go_back": { + "message": "Naspäť" + }, + "blocking_pages_btn_proceed": { + "message": "Aj tak pokračovať" + }, + "blocking_pages_malware": { + "message": "Stránka \u003Cstrong>%host%\u003C/strong> bola nahlásená ako stránka so škodlivým kódom a bola zablokovaná na základe Vašich bezpečnostných nastavení." + }, + "blocking_pages_more_info_button": { + "message": "Viac informácií" + }, + "blocking_pages_page_title": { + "message": "Prístup bol zamietnutý" + }, + "blocking_pages_phishing": { + "message": "Stránka \u003Cstrong>%host%\u003C/strong> bola nahlásená ako podvodná a bola zablokovaná na základe Vašich bezpečnostných nastavení." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard zabránil načítaniu tejto stránky kvôli nasledujúcemu filtračnému pravidlu" + }, + "blocking_pages_rule_header_title": { + "message": "Zablokované AdGuardom" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard zablokoval prístup k tejto stránke" + }, + "clear_button_title": { + "message": "Vyčistiť" + }, + "close_button_title": { + "message": "Zavrieť" + }, + "context_block_site_ads": { + "message": "Blokujte reklamy manuálne" + }, + "context_complaint_website": { + "message": "Nahlásiť problém" + }, + "context_disable_protection": { + "message": "Pozastaviť ochranu AdGuard" + }, + "context_enable_protection": { + "message": "Opätovne zapnúť ochranu AdGuard" + }, + "context_open_log": { + "message": "Denník filtrácie" + }, + "context_open_settings": { + "message": "Nastavenia AdGuard" + }, + "context_security_report": { + "message": "Kontrola bezpečnosti stránky" + }, + "context_site_exception": { + "message": "Táto stránka má výnimku" + }, + "context_site_filtering_disabled": { + "message": "AdGuard nemôže filtrovať túto stránku" + }, + "context_site_filtering_off": { + "message": "Vypnúť filtráciu na tejto stránke" + }, + "context_site_filtering_on": { + "message": "Zapnúť filtráciu na tejto stránke" + }, + "context_site_protection_disabled": { + "message": "Ochrana AdGuard je pozastavená" + }, + "context_update_antibanner_filters": { + "message": "Skontrolovať aktualizácie filtrov" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Neprekonané rozšírenie proti reklamám a vyskakovacím oknám. Blokuje reklamy na Facebooku, YouTube a na ostatných webových stránkach." + }, + "filtering_clear_log_events": { + "message": "Vymazať denník" + }, + "filtering_log_actions_menu": { + "message": "Filtrácia akcií denníka" + }, + "filtering_log_assumed_rule_description": { + "message": "Toto je predpokladané pravidlo. Podrobnosti nájdete v našej znalostnej báze \u003Ca>\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metóda HTTP dopytu" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Kód HTTP stavu" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Dopyty tretích strán" + }, + "filtering_log_details_modal_back_button": { + "message": "Naspäť k dopytu" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Skrášliť" + }, + "filtering_log_details_modal_try_again": { + "message": "Skúste znova" + }, + "filtering_log_filter_allowed": { + "message": "Povolené" + }, + "filtering_log_filter_blocked": { + "message": "Zablokované" + }, + "filtering_log_filter_modified": { + "message": "Modifikované" + }, + "filtering_log_filter_regular": { + "message": "Štandardný" + }, + "filtering_log_filter_user_rules": { + "message": "Používateľské pravidlá" + }, + "filtering_log_hide_referrer": { + "message": "Referer skrytý pred tretími stranami" + }, + "filtering_log_hide_search_queries": { + "message": "Vaše požiadavky vyhľadávania skryté" + }, + "filtering_log_in_allowlist": { + "message": "Stránka je povolená" + }, + "filtering_log_modified_rules": { + "message": "Modifikované pravidlá: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Áno, zachovať" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Táto voľba môže výrazne zvýšiť využitie pamäte" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Zachovať denník?" + }, + "filtering_log_preserve_log_off": { + "message": "Nevytvárať denník" + }, + "filtering_log_preserve_log_on": { + "message": "Zachovať denník" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Už viac nezobrazovať" + }, + "filtering_log_privacy_applied_rules": { + "message": "Ochrana pred sledovaním zapnutá" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data hlavička odstránená" + }, + "filtering_log_search_string": { + "message": "Hľadať" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Hľadať v kartách" + }, + "filtering_log_send_not_track": { + "message": "Žiadosť Nesledovať odoslaná" + }, + "filtering_log_status_allowed": { + "message": "Povolené" + }, + "filtering_log_status_blocked": { + "message": "Zablokované" + }, + "filtering_log_status_modified": { + "message": "Modifikované" + }, + "filtering_log_status_processed": { + "message": "Spracované" + }, + "filtering_log_stealth_rules": { + "message": "Pravidlá ochrany pred sledovaním: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Pôvod dopytu" + }, + "filtering_log_tag_request_status": { + "message": "Stav filtrácie" + }, + "filtering_log_tag_request_type": { + "message": "Typ dopytu" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Povolené a odblokované dopyty" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Zablokované dopyty" + }, + "filtering_log_tag_tooltip_css": { + "message": "Štýly" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Vlastné dopyty" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenty a subdokumenty" + }, + "filtering_log_tag_tooltip_img": { + "message": "Obrázky" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripty" + }, + "filtering_log_tag_tooltip_media": { + "message": "Médiá" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Upravené dopyty" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonty, pingy, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Dopyty spracované bez filtrácie" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Dopyty tretích strán" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Dopyty ovplyvnené používateľskými pravidlami" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttp dopyty a vyvolané dopyty" + }, + "filtering_log_title": { + "message": "Denník filtrácie" + }, + "filtering_menu_open_filters": { + "message": "Prispôsobiť..." + }, + "filtering_modal_add_rule": { + "message": "Pridať" + }, + "filtering_modal_allow_title": { + "message": "Pridajte povoľovacie pravidlo" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Aplikované pravidlo | Aplikované pravidlá | Aplikované pravidlá" + }, + "filtering_modal_apply_domains": { + "message": "Použiť na všetky webové stránky" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Predpokladané pravidlo: | Predpokladané pravidlá: | Predpokladané pravidlá:" + }, + "filtering_modal_block": { + "message": "Blokovať" + }, + "filtering_modal_block_again": { + "message": "Znova blokovať" + }, + "filtering_modal_block_title": { + "message": "Pridanie pravidla blokovania" + }, + "filtering_modal_converted_to": { + "message": "Konvertované na:" + }, + "filtering_modal_cookie": { + "message": "Súbor cookie:" + }, + "filtering_modal_copied": { + "message": "Skopírované" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Skopírovať do pamäťovej schránky" + }, + "filtering_modal_declarative_rule": { + "message": "DNR pravidlo:" + }, + "filtering_modal_element": { + "message": "Prvok:" + }, + "filtering_modal_exception_title": { + "message": "Pridať výnimku" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Stav filtrácie" + }, + "filtering_modal_hide_full_element": { + "message": "Skryť celý prvok" + }, + "filtering_modal_hide_full_rule": { + "message": "Skryť celé pravidlo" + }, + "filtering_modal_hide_full_url": { + "message": "Skryť úplnú URL adresu" + }, + "filtering_modal_important": { + "message": "Dať vyššiu prioritu pravidlu" + }, + "filtering_modal_info_title": { + "message": "Podrobnosti dopytu" + }, + "filtering_modal_open_in_new_tab": { + "message": "Otvoriť na novej karte" + }, + "filtering_modal_options_desc": { + "message": "Voľby" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Pôvodné pravidlo: | Pôvodné pravidlá: | Pôvodné pravidlá:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Čo by malo byť povolené" + }, + "filtering_modal_patterns_desc_block": { + "message": "Čo by malo byť blokované" + }, + "filtering_modal_preview_request_button": { + "message": "Náhľad" + }, + "filtering_modal_preview_title": { + "message": "Náhľad" + }, + "filtering_modal_privacy": { + "message": "Ochrana pred sledovaním" + }, + "filtering_modal_remove_allowlist": { + "message": "Odstrániť zo zoznamu povolení" + }, + "filtering_modal_remove_param": { + "message": "Odstrániť parametre dopytu" + }, + "filtering_modal_remove_user": { + "message": "Odstrániť pravidlo" + }, + "filtering_modal_rule": { + "message": "Pravidlo:" + }, + "filtering_modal_rule_text_desc": { + "message": "Pravidlo" + }, + "filtering_modal_rules": { + "message": "Pravidlá:" + }, + "filtering_modal_show_full_element": { + "message": "Ukázať celý prvok" + }, + "filtering_modal_show_full_rule": { + "message": "Zobraziť celé pravidlo" + }, + "filtering_modal_show_full_url": { + "message": "Ukázať úplnú URL adresu" + }, + "filtering_modal_source": { + "message": "Zdroj" + }, + "filtering_modal_status_text_desc": { + "message": "Stav" + }, + "filtering_modal_status_text_error": { + "message": "Nepodarilo sa načítať ukážku. Skúste to znova" + }, + "filtering_modal_status_text_loading": { + "message": "Načítavam..." + }, + "filtering_modal_third_party": { + "message": "Použiť len na dopyty tretích strán" + }, + "filtering_modal_type": { + "message": "Typ" + }, + "filtering_modal_unblock": { + "message": "Odblokovať" + }, + "filtering_refresh_tab_short": { + "message": "Obnoviť" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Obnoviť stránku" + }, + "filtering_table_action": { + "message": "Akcia" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nič sa nenašlo. \u003Creset>Vypnite filtre\u003C/reset> alebo \u003Crefresh>znova načítajte stránku\u003C/refresh> pre zobrazenie záznamov protokolu" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Otvoriť podrobnosti" + }, + "filtering_table_rule": { + "message": "Filtračné pravidlo" + }, + "filtering_table_source": { + "message": "Zdroj" + }, + "filtering_table_status": { + "message": "Stav" + }, + "filtering_table_type": { + "message": "Typ" + }, + "filtering_type_all": { + "message": "Všetko" + }, + "filtering_type_other": { + "message": "Iné" + }, + "filters_download_loading": { + "message": "Počkajte prosím pokým sa zavedie databáza filtrov..." + }, + "filters_download_title": { + "message": "Zavádza sa databáza filtrov..." + }, + "fullscreen_user_rules_title": { + "message": "Používateľské pravidlá" + }, + "group_description_adblocking": { + "message": "Tu si nakonfigurujte blokovanie reklám, aby ste sa raz a navždy vysporiadali s nepríjemnými bannermi, kontextovými oknami, videoreklamami a podobne" + }, + "group_description_annoyances": { + "message": "Odstráňte vyskakovacie okná a iné nepríjemné upozornenia, ako sú napríklad upozornenia na súbory cookie" + }, + "group_description_custom": { + "message": "Vytvorte si vlastné filtre, ktoré doladia filtráciu webu podľa Vašich preferencií." + }, + "group_description_lang": { + "message": "Neobmedzujte sa – blokujte reklamy na webových stránkach v akomkoľvek jazyku" + }, + "group_description_miscellaneous": { + "message": "Ďalšie nastavenia na ešte lepšiu konfiguráciu surfovania na webe pomocou AdGuard" + }, + "group_description_security": { + "message": "Chráňte sa pred malvérom, phishingom a inými online hrozbami" + }, + "group_description_social": { + "message": "Skryte nechcené tlačidlá „Páči sa mi to“/„Zdieľať“ a ďalšie miniaplikácie sociálnych médií" + }, + "group_description_stealth": { + "message": "Chráňte svoju identitu a citlivé osobné informácie pred tisíckami online sledovačov blokovaním všetkých známych populárnych metód sledovania" + }, + "name": { + "message": "AdGuard blokovač reklamy" + }, + "opera_search_permission_dont_show": { + "message": "Už viac nezobrazovať" + }, + "opera_search_permission_go_to_settings": { + "message": "Prejdite do nastavení" + }, + "opera_search_permission_warning": { + "message": "Ak chcete blokovať reklamy vo vyhľadávaní, povoľte prístup k výsledkom vyhľadávania v nastaveniach prehliadača" + }, + "options_about": { + "message": "O" + }, + "options_about_libs": { + "message": "Používané knižnice" + }, + "options_about_title": { + "message": "AdGuard rozšírenie prehliadača" + }, + "options_about_update_available": { + "message": "Je k dispozícii verzia %version%. Stiahne sa a nainštaluje automaticky." + }, + "options_about_version": { + "message": "Verzia" + }, + "options_acknowledgment": { + "message": "Poďakovanie" + }, + "options_add_custom_filter": { + "message": "Pridať vlastný filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Pridať" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Kontroluje sa Váš filter..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL adresa vrátila webovú stránku namiesto zoznamu filtrov. Uveďte priamy odkaz na súbor filtra." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Skúste to znova alebo kontaktujte podporu" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nepodarilo sa pridať vlastný filter" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Názov filtra:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Dôveryhodný" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Niektoré pravidlá filtrácie môžu výrazne zmeniť Váš zážitok z prehliadania a ohroziť Vaše súkromie. Uistite sa, že používate iba filtre od vývojárov, ktorým dôverujete" + }, + "options_add_custom_filter_modal_title": { + "message": "Pridať vlastný filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Dosiahli ste limit aktívnych vstavaných pravidiel. Váš prehliadač upravil zoznam aktívnych vstavaných filtrov. Počet povolených filtrov sa zmenil z %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Dosiahli ste limit aktívnych vstavaných pravidiel vo vašom prehliadači. Váš prehliadač znížil zoznam aktívnych vstavaných filtrov z %expected% na %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Váš prehliadač obmedzuje \u003Cexternal-link>niektoré typy pravidiel\u003C/external-link>. Ak chcete použiť všetky pravidlá, aktivujte \u003Cb>Povoliť používateľské skripty\u003C/b> v nastaveniach rozšírenia \u003Csettings-link>Vášho prehliadača\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Zoznam povolení" + }, + "options_allowlist_alert_invert": { + "message": "Zoznam povolených položiek je invertovaný. Reklamy sú blokované iba na webových stránkach, ktoré boli doň pridané." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Zastaviť invertovanie\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard neblokuje reklamy a sledovače na webových stránkach zo zoznamu" + }, + "options_allowlist_invalid_entries": { + "message": "Pre uloženie ponechajte iba domény alebo URL adresy. Tieto je potrebné opraviť: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertovať zoznam povolení" + }, + "options_allowlist_invert_desc": { + "message": "Blokuje reklamy a sledovače iba na webových stránkach zo zoznamu povolených" + }, + "options_allowlist_leave_subtitle": { + "message": "Vaše zmeny v zozname povolených sa stratia" + }, + "options_allowlist_menu": { + "message": "Akcie zoznamu povolených" + }, + "options_anonymized_usage_data_description": { + "message": "Odosiela anonymné štatistiky o používaní rozšírenia AdGuard. \u003Cbutton>Zistite viac\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Chápem" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Tieto údaje zahŕňajú:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Názvy tlačidiel, na ktoré kliknete" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Názvy obrazoviek, s ktorými interagujete" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifikátory relácie" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Tieto údaje sú anonymné a používajú sa iba interne. Nikdy ich nezdieľame s tretími stranami" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Tieto informácie potrebujeme na analýzu a zlepšenie funkčnosti AdGuardu" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Údaje o používaní rozšírenia" + }, + "options_anonymized_usage_data_title": { + "message": "Odosielať anonymizované údaje o používaní rozšírení" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Vlastný filter už bol pridaný" + }, + "options_antibanner_custom_group": { + "message": "Vlastný" + }, + "options_antibanner_custom_group_description": { + "message": "Umožňuje pridať filtre zo súboru alebo URL adresy" + }, + "options_antibanner_rules_count": { + "message": "Pravidlá: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Aktualizované: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokovať vyhľadávacie reklamy a vlastnú propagáciu webovej stránky" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokuje reklamy vo výsledkoch vyhľadávania a vlastnú propagáciu webových stránok. \u003Ca>Dozvedieť sa viac\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Ak chcete cookies zablokovať, nastavyte životnosť na 0" + }, + "options_block_known_trackers_description": { + "message": "Blokuje sledovače a webové analýzy pomocou filtra AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Blokuje známe sledovače" + }, + "options_check_update_progress": { + "message": "Kontrolujem..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Vynulovať" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Všetky štatistiky o spotrebe dát budú natrvalo odstránené" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Vynulovať štatistiku?" + }, + "options_clipboard_permission_warning": { + "message": "Ak chcete kopírovať a vkladať pravidlá, povoľte AdGuardu prístup k pamäťovej schránke. \u003Ca>Povoliť\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Odosiela anonymné štatistiky o používaní filtrov reklám do AdGuardu. \u003Ca>Dozvedieť sa viac\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomôžte vyvíjať filtre AdGuard" + }, + "options_coming_soon": { + "message": "Už čoskoro" + }, + "options_confirm_modal_cancel_button": { + "message": "Zrušiť" + }, + "options_copyright": { + "message": "Všetky práva vyhradené." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ak chcete použiť vlastné filtre, aktivujte \u003Cb>Povoliť používateľské skripty\u003C/b> v nastaveniach rozšírenia \u003Csettings-link>Vášho prehliadača\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ak chcete použiť vlastné filtre, zapnite \u003Cb>Režim pre vývojárov\u003C/b> v nastaveniach rozšírenia \u003Csettings-link>Vášho prehliadača\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Získajte AdGuard pre Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Získajte AdGuard pre Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Získajte AdGuard pre Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikácie ako Spotify, Discord alebo Zoom môžu stále zobrazovať reklamy a sledovať Vašu aktivitu" + }, + "options_desktop_app_promo_subdescription": { + "message": "Naša desktopová aplikácia Vás pred nimi môže ochrániť" + }, + "options_desktop_app_promo_title": { + "message": "Rozšírenie chráni iba prehliadač" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Váš prehliadač obmedzuje \u003Cexternal-link>niektoré typy pravidiel\u003C/external-link>. Ak chcete použiť všetky pravidlá, zapnite \u003Cb>Režim pre vývojárov\u003C/b> v nastaveniach rozšírení \u003Csettings-link>Vášho prehliadača\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokuje WebRTC, ktorý môže odhaliť vašu skutočnú IP adresu, aj keď používate proxy alebo VPN. Niektoré messengery, streamovacie platformy alebo hry môžu prestať správne fungovať" + }, + "options_disable_webrtc_title": { + "message": "Blokovať WebRTC" + }, + "options_discuss": { + "message": "Prediskutovať s AdGuard" + }, + "options_do_you_like_question": { + "message": "Páči sa Vám AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Ukončiť prácu v celoobrazovkovom režime" + }, + "options_editor_indicator_saved": { + "message": "Uložené" + }, + "options_editor_indicator_saving": { + "message": "Ukladanie..." + }, + "options_editor_leave_cancel": { + "message": "Späť k úpravám" + }, + "options_editor_leave_confirm": { + "message": "Áno, odísť" + }, + "options_editor_leave_title": { + "message": "Odísť bez uloženia?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Otvoriť editor v novom okne" + }, + "options_editor_save": { + "message": "Uložiť" + }, + "options_editor_save_error": { + "message": "Zmeny sa nepodarilo uložiť. Skúste to znova alebo kontaktujte podporu" + }, + "options_empty_custom_filter": { + "message": "Zatiaľ nemáte žiadne vlastné filtre" + }, + "options_enable_autodetect_filter": { + "message": "Zapnúť najvhodnejšie filtre automaticky" + }, + "options_enable_autodetect_filter_desc": { + "message": "Zistí jazyk webovej stránky a aktivuje príslušné filtre" + }, + "options_export_settings": { + "message": "Export nastavení" + }, + "options_filters": { + "message": "Filtre" + }, + "options_filters_annoyances_consent_description": { + "message": "Chystáte sa povoliť jeden alebo viac filtrov obťažujúcich prvkov. Blokujú prvky, ktoré buď nesúvisia s obsahom webovej stránky, alebo súvisia s obsahom webovej stránky, ale obťažujú Vašu používateľskú skúsenosť. Vlastníci webových stránok môžu tieto prvky považovať za povinné: ak ich zablokujete, môžete porušiť ich podmienky; niektoré funkcie webových stránok nemusia byť dostupné alebo nemusia fungovať správne. Beriete na vedomie a súhlasíte s tým, že ste výlučne zodpovedný za dodržiavanie podmienok používania webových stránok, ktoré navštevujete, a že AdGuard nezodpovedá za Vaše dodržiavanie podmienok používania webových stránok, ktoré navštevujete pomocou našich produktov." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Zapnúť" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Domovská stránka" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Podrobnosti o tom, čo blokujú filtre obťažovania AdGuard, nájdete v časti \u003Ca>Politika filtrácie\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Zapnúť tieto filtre?" + }, + "options_filters_annoyances_consent_title": { + "message": "Pred povolením filtrov obťažovania si pozorne prečítajte" + }, + "options_filters_back_button": { + "message": "Návrat späť" + }, + "options_filters_empty_title": { + "message": "Nič sa nenašlo" + }, + "options_filters_enabled": { + "message": "Zapnuté:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% a %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% a ešte %more%" + }, + "options_filters_enabled_per_group": { + "message": "Zapnuté: %current% z %total%" + }, + "options_filters_filter_link": { + "message": "Prejsť na domovskú stránku" + }, + "options_filters_filter_tags": { + "message": "Značky filtra" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Zvolili ste si dôverovať tomuto filtru" + }, + "options_filters_filter_updated": { + "message": "aktualizované:" + }, + "options_filters_filter_version": { + "message": "verzia:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Celkové pravidlá: %num%" + }, + "options_filters_last_checked": { + "message": "Naposledy skontrolované: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Všetky filtre" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Vypnuté" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Zapnuté" + }, + "options_filters_no_enabled": { + "message": "Nie sú zapnuté žiadne filtre" + }, + "options_filters_of_group": { + "message": "Filtre skupiny „%groupName%“" + }, + "options_filters_search": { + "message": "Hľadať" + }, + "options_filters_search_filter": { + "message": "Hľadať filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Ak zablokujete tieto súbory cookie, niektoré webové stránky môžu zlyhať alebo prestať fungovať" + }, + "options_first_party_desc": { + "message": "Zabraňuje webovým stránkam zapamätať si Vaše údaje, ako sú Vaše prihlasovacie údaje a jazykové preferencie, obmedzením životnosti vlastných súborov cookie" + }, + "options_first_party_title": { + "message": "Odstrániť vlastné súbory cookie (neodporúča sa)" + }, + "options_general_settings": { + "message": "Všeobecné" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Zabráňte tretím stranám, aby vedeli, akú webovú stránku navštevujete" + }, + "options_hide_referrer_title": { + "message": "Skryť odkazovač pred tretími stranami" + }, + "options_hide_search_queries_desc": { + "message": "Skryje Vaše vyhľadávania z webových stránok navštívených prostredníctvom výsledkov vyhľadávania" + }, + "options_hide_search_queries_title": { + "message": "Skryť vyhľadávacie dopyty" + }, + "options_import_configuration_applying_subtitle": { + "message": "Nahradenie aktuálnych nastavení importovanými nastaveniami. Filtrácia je počas importu zakázaná" + }, + "options_import_configuration_applying_title": { + "message": "Import..." + }, + "options_import_configuration_confirm_button": { + "message": "Import" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Importované nastavenia nahradia Vaše aktuálne nastavenia. Ostatné nastavenia nebudú ovplyvnené" + }, + "options_import_configuration_confirm_title": { + "message": "Import nastavení" + }, + "options_import_configuration_error_button": { + "message": "Zavrieť" + }, + "options_import_configuration_error_subtitle": { + "message": "Skontrolujte odkaz na import a skúste to znova. Ak to nepomôže, kontaktujte podporu" + }, + "options_import_configuration_error_title": { + "message": "Nepodarilo sa importovať nastavenia" + }, + "options_import_configuration_success_button": { + "message": "Zavrieť" + }, + "options_import_configuration_success_subtitle": { + "message": "Nastavenia boli úspešne importované" + }, + "options_import_configuration_success_title": { + "message": "Všetko hotové" + }, + "options_import_settings": { + "message": "Import nastavení" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertovať" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklamy a sledovače budú blokované iba na webových stránkach zo zoznamu povolených" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invertovať zoznam povolení?" + }, + "options_leave_feedback": { + "message": "Zanechať spätnú väzbu" + }, + "options_lifetime_minutes": { + "message": "Životnosť, minúty" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Dosiahli ste limit regex pravidiel pridaných používateľom. %maximum% z %current% regex pravidiel sú povolené." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Dosiahli ste limit používateľom pridaných regulárnych výrazov. Z %current% pravidiel je povolených %maximum%. Ak chcete pridať nové pravidlá regulárnych výrazov, odstraňte niektoré existujúce" + }, + "options_limits_warning_dynamic_rules": { + "message": "Dosiahli ste limit pravidiel pridaných používateľom. %maximum% pravidiel %current% sú povolené." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Dosiahli ste limit používateľom pridaných pravidiel. Z %current% pravidiel je povolených %maximum%. Ak chcete pridať nové pravidlá, odstraňte niektoré existujúce" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Dosiahli ste limit nebezpečných pravidiel pridaných používateľom. Sú povolené %maximum% z %current% nebezpečných pravidiel." + }, + "options_limits_warning_static_filters": { + "message": "Dosiahli ste limit aktívnych zabudovaných filtrov. %maximum% z %current% filtre sú povolené. Ak chcete aktivovať nové pravidlá, vypnite niektoré zabudované filtre." + }, + "options_limits_warning_static_filters_browser": { + "message": "Dosiahli ste limit aktívnych vstavaných filtrov vo vašom prehliadači. Z %current% filtrov je povolených %maximum%. Ak chcete aktivovať nové filtre, vypnite niektoré vstavané filtre" + }, + "options_limits_warning_static_regex_rules": { + "message": "Dosiahli ste limit aktívnych zabudovaných regex pravidiel. %maximum% z %current% regex pravidiel sú povolené. Ak chcete aktivovať nové pravidlá, vypnite niektoré zabudované filtre." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Dosiahli ste limit aktívnych vstavaných regulárnych výrazov. Ak chcete aktivovať nové pravidlá, vypnite niektoré vstavané filtre" + }, + "options_limits_warning_static_rules": { + "message": "Dosiahli ste limit aktívnych zabudovaných pravidiel. %maximum% z %current% pravidlá sú povolené. Ak chcete aktivovať nové pravidlá, vypnite niektoré zabudované filtre." + }, + "options_limits_warning_static_rules_browser": { + "message": "Dosiahli ste limit aktívnych vstavaných pravidiel vo vašom prehliadači. Ak chcete aktivovať nové pravidlá, vypnite niektoré vstavané filtre" + }, + "options_loader_applying_changes": { + "message": "Uplatnenie zmien..." + }, + "options_miscellaneous_settings": { + "message": "Ďalšie nastavenia" + }, + "options_modified_first_party_cookie": { + "message": "Vlastné cookie modifikované" + }, + "options_modified_third_party_cookie": { + "message": "Cookie tretích strán modifikované" + }, + "options_nav_better_than_extension": { + "message": "Prečo je aplikácia AdGuard lepšia ako rozšírenie?" + }, + "options_nav_compare": { + "message": "Porovnanie" + }, + "options_navigation": { + "message": "Navigácia" + }, + "options_open_changelog": { + "message": "Zoznam zmien" + }, + "options_open_log": { + "message": "Otvoriť denník filtrácie" + }, + "options_popup_call_to_action": { + "message": "Zadajte platnú URL adresu alebo umiestnenie súboru s filtrom do poľa vyššie." + }, + "options_popup_check_false_description": { + "message": "Chyba pri pridávaní Vášho vlastného filtra" + }, + "options_popup_check_false_title": { + "message": "Chyba" + }, + "options_popup_checking_filter": { + "message": "Kontroluje sa Váš filter" + }, + "options_popup_description": { + "message": "Budete odoberať tento filter." + }, + "options_popup_filter_description": { + "message": "Popis:" + }, + "options_popup_filter_homepage": { + "message": "Domovská stránka:" + }, + "options_popup_filter_rules_count": { + "message": "Počet pravidiel:" + }, + "options_popup_filter_title": { + "message": "Meno:" + }, + "options_popup_filter_url": { + "message": "URL adresa" + }, + "options_popup_filter_version": { + "message": "Verzia:" + }, + "options_popup_import_error_file_description": { + "message": "Niečo sa pokazilo." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Ak chcete importovať tento súbor nastavení, povoľte AdGuardu zmeniť Vaše nastavenia týkajúce sa ochrany osobných údajov." + }, + "options_popup_import_error_title": { + "message": "Nepodarilo sa importovať nastavenia" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Rozšírenie súboru musí byť %extension%" + }, + "options_popup_import_success_title": { + "message": "Nastavenia boli importované" + }, + "options_popup_next_button": { + "message": "Ďalej" + }, + "options_popup_subscribe_button": { + "message": "Odoberať" + }, + "options_popup_title_placeholder": { + "message": "Zadajte meno filtra" + }, + "options_popup_trusted_filter_description": { + "message": "Dôveryhodné filtre môžu používať silné modifikátory pravidiel filtrácie, ktoré môžu byť nebezpečné v nesprávnych rukách. Toto políčko nezačiarknite, ak mu nedôverujete." + }, + "options_popup_trusted_filter_title": { + "message": "Dôveryhodný" + }, + "options_popup_try_again_button": { + "message": "Skúste znova" + }, + "options_popup_update_error": { + "message": "Zlyhanie pri preberaní aktualizácií. Skúste prosím zopakovať neskôr." + }, + "options_popup_update_filter": { + "message": "bol aktualizovaný." + }, + "options_popup_update_filters": { + "message": "boli aktualizované." + }, + "options_popup_update_not_found": { + "message": "Vaše filtre sú aktuálne" + }, + "options_popup_update_title_error": { + "message": "Chyba pri aktualizácii filtrov" + }, + "options_popup_updating_filters": { + "message": "Aktualizácia filtrov..." + }, + "options_popup_url_placeholder": { + "message": "Zadajte URL adresu alebo cestu" + }, + "options_popup_url_title": { + "message": "Odber nového filtra" + }, + "options_popup_version_update_changelog_text": { + "message": "Kliknutím sem zobrazíte úplný zoznam zmien." + }, + "options_popup_version_update_description_major": { + "message": "Toto je veľká inovácia rozšírenia, ktorá prináša množstvo nových funkcií a vylepšení." + }, + "options_popup_version_update_description_minor": { + "message": "Táto verzia obsahuje prevažne opravy a drobné vylepšenia." + }, + "options_popup_version_update_disable_notification": { + "message": "Vypnúť oznámenia" + }, + "options_popup_version_update_offer": { + "message": "Ak ste posadnutý súkromím ako my, vyskúšajte produkty Premium AdGuard pre systémy Windows, Mac, iOS alebo Android a vyhľadajte ešte viac funkcií." + }, + "options_popup_version_update_offer_button_text": { + "message": "VIAC INFORMÁCIÍ" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard rozšírenie prehliadača bolo aktualizované na verziu %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Pri používaní proxy alebo VPN prinúti WebRTC používať prísnejšiu politiku IP adries, aby sa Vaša skutočná IP adresa skryla" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Zabránenie úniku IP adresy prostredníctvom WebRTC" + }, + "options_privacy": { + "message": "Ochrana pred sledovaním" + }, + "options_privacy_desc": { + "message": "Chráni vašu online aktivitu a osobné údaje pred webovými sledovačmi" + }, + "options_privacy_policy": { + "message": "Pravidlá ochrany súkromia" + }, + "options_privacy_title": { + "message": "Ochrana pred sledovaním" + }, + "options_rate_us_cta": { + "message": "Ohodnoťte to" + }, + "options_remove_client_data_desc": { + "message": "Zablokujte prehliadaču Google Chrome odosielanie informácií o jeho verzii a úpravách do domén Google" + }, + "options_remove_client_data_title": { + "message": "Odstrániť X-Client-Data hlavičku" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Odstrániť" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Odstrániť tento filter?" + }, + "options_report_bug": { + "message": "Nahlásiť chybu" + }, + "options_reset_settings": { + "message": "Obnoviť nastavenia" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Obnoviť" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Všetky nastavenia sa obnovia na predvolené hodnoty" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Obnoviť nastavenia?" + }, + "options_reset_settings_done": { + "message": "Nastavenia boli obnovené" + }, + "options_reset_settings_error": { + "message": "Chyba pri obnove nastavení" + }, + "options_reset_stats": { + "message": "Vynulovať štatistiku" + }, + "options_reset_stats_done": { + "message": "Štatistika bola vynulovaná" + }, + "options_rule_limits": { + "message": "Limity počtu pravidiel" + }, + "options_rule_limits_description": { + "message": "Chrome obmedzuje počet pravidiel, ktoré je možné použiť" + }, + "options_rule_limits_dynamic": { + "message": "Dynamické pravidlá" + }, + "options_rule_limits_dynamic_regex": { + "message": "Pravidlá na báze regulárnych výrazov – zahrnuté v pravidlách pridaných používateľom" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nebezpečné dynamické pravidlá (používané pre niektoré pokročilé modifikátory, ako napríklad $$redirect alebo $$cookie) – zahrnuté v pravidlách pridaných používateľom" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Pravidlá pridané používateľom, ako napríklad \u003Cuser_rules>pravidlá pre používateľov\u003C/user_rules>, \u003Callowlist>webové stránky na zozname povolených\u003C/allowlist>a \u003Ccustom_filters>vlastné filtre\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Pravidlá pridané používateľom, ako napríklad \u003Cuser_rules>používateľské pravidlá\u003C/user_rules> a \u003Callowlist>webové stránky v zozname povolených\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% z %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statické pravidlá" + }, + "options_rule_limits_static_rules_all": { + "message": "Pravidlá zo \u003Ca>vstavaných filtrov\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Pravidlá regulárneho výrazu – zahrnuté vyššie" + }, + "options_rule_limits_static_rulesets": { + "message": "Statické sady pravidiel" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Vstavané filtre\u003C/a>, ako napr. blokovanie nepríjemností alebo jazykovo špecifické filtre" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Možnosť 3. Ak ste spokojní s aktuálne povolenými predvolenými filtrami, \u003Ca>zatvorte toto upozornenie.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Možnosť 3. Ak ste spokojní s aktuálne povoleným predvoleným filtrom, \u003Ca>zatvorte toto upozornenie.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Možnosť 1. Odstráňte z prehliadača nepotrebné rozšírenia na blokovanie reklamy. Ak chcete opätovne aktivovať filtre uvedené v časti \"Filtre povolené pred aktualizáciou\", kliknite na tlačidlo \u003Ca>opätovne aktivovať filtre.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Možnosť 2. Nainštalujte si aplikáciu AdGuard: nemá žiadne obmedzenia pravidiel filtrácie. \u003Ca>Získajte aplikáciu AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vaše možné akcie" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Po aktualizácii alebo pridaní nového rozšírenia bol prekročený limit počtu aktívnych vstavaných pravidiel. Podľa Manifestu V3 Váš prehliadač Chrome reagoval vypnutím všetkých vstavaných filtrov rozšírenia okrem predvolených." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Čo sa stalo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtre zapnuté pred aktualizáciou" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtre zapnuté teraz" + }, + "options_rule_limits_warning_title": { + "message": "Prehliadač upravil zoznam aktívnych filtrov" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Odstráňte obmedzenia na počet pravidiel a získajte rozšírenú ochranu, ktorá funguje vo všetkých prehliadačoch" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Nainštalujte si aplikáciu pre počítač" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Ísť do sekcie filtrov" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Spravovať rozšírenia" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Rozšírenia prehliadača zdieľajú rovnaký limit pravidiel. Odstránenie iných blokovačov reklám môže uvoľniť viac pravidiel pre rozšírenie prehliadača AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Odstráňte iné blokovače reklám" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktivujte filtre, ktoré potrebujete. Jazykové a súkromné filtre môžu využívať množstvo pravidiel" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Skontrolujte dostupné filtre" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Tu je, čo môžete urobiť" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Dosiahol sa limit — niektoré filtre boli deaktivované" + }, + "options_rule_syntax": { + "message": "Syntax pravidiel" + }, + "options_safebrowsing_enabled": { + "message": "Ochrana proti podvodným a škodlivým stránkam" + }, + "options_safebrowsing_enabled_desc": { + "message": "Varuje pred nebezpečnými a phishingovými webovými stránkami pomocou modulu AdGuard Bezpečnosť prehliadania. \u003Ca>Prečítať si viac\u003C/a>" + }, + "options_select_theme": { + "message": "Téma" + }, + "options_select_update_period_12h": { + "message": "12 hodín" + }, + "options_select_update_period_1h": { + "message": "1 hodina" + }, + "options_select_update_period_24h": { + "message": "24 hodín" + }, + "options_select_update_period_48h": { + "message": "48 hodín" + }, + "options_select_update_period_6h": { + "message": "6 hodín" + }, + "options_select_update_period_default": { + "message": "Predvolené" + }, + "options_select_update_period_disabled": { + "message": "Vypnuté" + }, + "options_send_not_track_desc": { + "message": "Posielať na webové stránky, ktoré navštívite, signály \u003Cgpc>Global Privacy Control\u003C/gpc> a \u003Cdnt>Nesledovať\u003C/dnt>" + }, + "options_send_not_track_title": { + "message": "Požiadať webové stránky, aby ma nesledovali" + }, + "options_set_update_interval": { + "message": "Automatická aktualizácia filtrov" + }, + "options_set_update_interval_desc": { + "message": "Udržiava filtre aktuálne pre účinnejšie blokovanie reklám" + }, + "options_settings": { + "message": "Nastavenia AdGuard" + }, + "options_share_settings": { + "message": "Zdieľať nastavenia" + }, + "options_show_adguard_full_version_title": { + "message": "Zobraziť informáciu o plnej verzii AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Upozorniť na na aktualizácie rozšírenia." + }, + "options_show_blocked_ads_count_title": { + "message": "Zobrazovať počet zablokovaných reklám na ikone AdGuard rozšírenia" + }, + "options_show_context_menu_title": { + "message": "Pridať položku AdGuard do kontextovej ponuky prehliadača" + }, + "options_site": { + "message": "Oficiálna stránka" + }, + "options_skip_to_main_content": { + "message": "Preskočiť na hlavný obsah" + }, + "options_stealth_general_title": { + "message": "Všeobecné" + }, + "options_stealth_miscellaneous_title": { + "message": "Rôzne" + }, + "options_stealth_tracking_methods_title": { + "message": "Metódy sledovania" + }, + "options_strip_tracking_params_description": { + "message": "Odstráni parametre sledovania z adries URL stránok pomocou filtra sledovania adries URL AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Odstráňte parametre sledovania z adries URL" + }, + "options_stripped_tracking_parameters": { + "message": "Parametre sledovania boli odstránené" + }, + "options_theme_selector_dark": { + "message": "Tmavá" + }, + "options_theme_selector_light": { + "message": "Svetlá" + }, + "options_theme_selector_system": { + "message": "Systémom predvolené" + }, + "options_third_party_block_cookies_warning": { + "message": "Ak tieto súbory cookie zablokujete, možno sa budete musieť znova prihlásiť na niektoré webové stránky alebo čeliť iným problémom súvisiacim so súbormi cookie" + }, + "options_third_party_desc": { + "message": "Zabraňuje inzerentom sledovať vaše správanie na viacerých stránkach obmedzením životnosti cookies tretích strán" + }, + "options_third_party_title": { + "message": "Odstraňovať súbory cookie tretích strán" + }, + "options_update_antibanner_filters": { + "message": "Skontrolovať aktualizácie filtrov" + }, + "options_use_optimized_filters": { + "message": "Použiť optimalizované filtre" + }, + "options_use_optimized_filters_desc": { + "message": "Používa kratšie verzie filtrov iba s najpopulárnejšími pravidlami na obmedzenie komunikácie. Vhodnejšie pre mobilné prehliadače" + }, + "options_user_rules_clear_search": { + "message": "Vyčistiť vyhľadávanie" + }, + "options_user_rules_create_rule": { + "message": "Vytvoriť pravidlo" + }, + "options_user_rules_delete_all": { + "message": "Vymazať všetko" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Všetky pravidlá používateľov budú natrvalo odstránené" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Vymazať všetko?" + }, + "options_user_rules_delete_all_success": { + "message": "Všetky používateľské pravidlá boli odstránené" + }, + "options_user_rules_delete_rule": { + "message": "Odstrániť pravidlo" + }, + "options_user_rules_deleted_notification": { + "message": "Používateľské pravidlo bolo vymazané:" + }, + "options_user_rules_description_key": { + "message": "Vaše pravidlá pre blokovanie a odblokovanie reklám alebo celých webových stránok" + }, + "options_user_rules_edit_rule": { + "message": "Upraviť pravidlo" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Prejsť do editora" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Po zatvorení sa tu zobrazia Vaše pravidlá" + }, + "options_user_rules_editor_stub_title": { + "message": "Editor sa otvoril v inom okne" + }, + "options_user_rules_empty_placeholder": { + "message": "Zatiaľ žiadne pravidlá" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Zvýraznenie pravidiel…" + }, + "options_user_rules_import_error": { + "message": "Nepodarilo sa importovať pravidlá pre používateľov. Skúste to znova" + }, + "options_user_rules_import_success": { + "message": "Používateľské pravidlá boli úspešne importované" + }, + "options_user_rules_menu": { + "message": "Akcie pravidiel pre používateľov" + }, + "options_user_rules_no_match": { + "message": "Nič sa nenašlo" + }, + "options_user_rules_search_placeholder": { + "message": "Hľadať" + }, + "options_user_rules_switch_to_editor": { + "message": "Prejsť do zobrazenia v editore" + }, + "options_user_rules_switch_to_list": { + "message": "Prepnúť na zobrazenie zoznamu" + }, + "options_user_rules_undo": { + "message": "Vrátiť" + }, + "options_userfilter": { + "message": "Používateľský filter" + }, + "options_userfilter_description_key": { + "message": "Tu môžete pridať svoje vlastné pravidlá. Táto možnosť sa odporúča pre pokročilých používateľov, ktorí poznajú HTML/CSS. Prečítajte si \u003Ca>príručku pravidiel filtrácie\u003C/a>, kde sa dozviete, ako vytvoriť vlastné filtračné pravidlá." + }, + "options_userfilter_export": { + "message": "Export" + }, + "options_userfilter_import": { + "message": "Import" + }, + "options_userfilter_leave_subtitle": { + "message": "Vaše zmeny pravidiel sa stratia" + }, + "options_userfilter_line_break": { + "message": "Zalomenie riadku" + }, + "options_userfilter_line_break_off": { + "message": "Zalamovanie riadkov: Vypnuté" + }, + "options_userfilter_line_break_on": { + "message": "Zalamovanie riadkov: Zapnuté" + }, + "options_userfilter_subtitle_key": { + "message": "Umožňuje pridať vlastné filtračné pravidlá" + }, + "popup_abuse_site": { + "message": "Nahlásiť problém" + }, + "popup_adguard_footer_title": { + "message": "Chráňte svoje mobilné zariadenie" + }, + "popup_adguard_for_android": { + "message": "AdGuard pre Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard pre iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokujte reklamy manuálne" + }, + "popup_get_system_wide_protection": { + "message": "Získajte ochranu celého systému" + }, + "popup_header_cta_link": { + "message": "Ako zvýšiť ochranu" + }, + "popup_header_update_filters": { + "message": "Skontrolovať aktualizácie filtrov" + }, + "popup_limits_exceeded_warning": { + "message": "Váš prehliadač upravil zoznam aktívnych zabudovaných filtrov" + }, + "popup_open_filtering_log": { + "message": "Otvoriť denník filtrácie" + }, + "popup_open_settings": { + "message": "Otvoriť nastavenia AdGuardu" + }, + "popup_protection_button": { + "message": "Ochrana AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Odstrániť používateľské pravidlá pre túto webovú stránku" + }, + "popup_resume_protection_button": { + "message": "Pokračovať" + }, + "popup_security_report": { + "message": "Kontrola bezpečnosti stránky" + }, + "popup_site_exception_information": { + "message": "Filtrácia je vypnutá, pretože môže interferovať s funkciami webovej stránky." + }, + "popup_site_filtering_state_disabled": { + "message": "Ochrana je vypnutá" + }, + "popup_site_filtering_state_disabling": { + "message": "Vypnutie ochrany ..." + }, + "popup_site_filtering_state_enabled": { + "message": "Ochrana je zapnutá" + }, + "popup_site_filtering_state_enabling": { + "message": "Zapnutie ochrany ..." + }, + "popup_site_filtering_state_loading": { + "message": "Načítavam..." + }, + "popup_site_filtering_state_paused": { + "message": "Ochrana je pozastavená" + }, + "popup_site_filtering_state_pausing": { + "message": "Pozastavenie ochrany ..." + }, + "popup_site_filtering_state_resuming": { + "message": "Obnovenie ochrany ..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Bezpečná stránka" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "pre všetky webové stránky" + }, + "popup_statistics_all_categories": { + "message": "Všetko" + }, + "popup_statistics_category_advertising": { + "message": "Reklamy" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategória štatistiky" + }, + "popup_statistics_category_other": { + "message": "Iné" + }, + "popup_statistics_category_social_media": { + "message": "Sociálne médiá" + }, + "popup_statistics_category_trackers": { + "message": "Sledovače" + }, + "popup_statistics_months_apr": { + "message": "Apríl" + }, + "popup_statistics_months_aug": { + "message": "August" + }, + "popup_statistics_months_dec": { + "message": "December" + }, + "popup_statistics_months_feb": { + "message": "Február" + }, + "popup_statistics_months_jan": { + "message": "Január" + }, + "popup_statistics_months_jul": { + "message": "Júl" + }, + "popup_statistics_months_jun": { + "message": "Jún" + }, + "popup_statistics_months_mar": { + "message": "Marec" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "November" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "September" + }, + "popup_statistics_time_day": { + "message": "24 hodín" + }, + "popup_statistics_time_label": { + "message": "Časové obdobie štatistiky" + }, + "popup_statistics_time_month": { + "message": "30 dní" + }, + "popup_statistics_time_week": { + "message": "7 dní" + }, + "popup_statistics_time_year": { + "message": "1 rok" + }, + "popup_statistics_total": { + "message": "Spolu" + }, + "popup_statistics_week_days_fri": { + "message": "Pia" + }, + "popup_statistics_week_days_mon": { + "message": "Pon" + }, + "popup_statistics_week_days_sat": { + "message": "Sob" + }, + "popup_statistics_week_days_sun": { + "message": "Ned" + }, + "popup_statistics_week_days_thu": { + "message": "Štr" + }, + "popup_statistics_week_days_tue": { + "message": "Uto" + }, + "popup_statistics_week_days_wed": { + "message": "Str" + }, + "popup_switch_button": { + "message": "Ochrana aktuálnej webovej stránky" + }, + "popup_tab_actions": { + "message": "Akcie" + }, + "popup_tab_blocked_all_count": { + "message": "Celkom zablokovaných: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokovaných: %num%" + }, + "popup_tab_current_website": { + "message": "Aktuálna webová stránka" + }, + "popup_tab_statistics": { + "message": "Štatistika" + }, + "popup_tabs": { + "message": "Karty" + }, + "popup_tooltip_loading": { + "message": "Načítavam..." + }, + "popup_tooltip_protection_disabled": { + "message": "Ochrana je vypnutá" + }, + "popup_tooltip_protection_enabled": { + "message": "Ochrana je zapnutá" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Niektoré pravidlá sa neuplatňujú" + }, + "popup_tooltip_update_available": { + "message": "Aktualizácia je k dispozícii" + }, + "post_install_loading": { + "message": "Načítava sa rozšírenie..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "V rozšírení prehliadača AdGuard bol prekročený limit na počet pravidiel. Skontrolujte svoje filtre a deaktivujte tie, ktoré nepotrebujete" + }, + "text_collapser_hide_default": { + "message": "Skryť celý text" + }, + "text_collapser_show_default": { + "message": "Zobraziť celý text" + }, + "update_available_desc": { + "message": "Ak chcete efektívne blokovať reklamy, udržiavajte svoje rozšírenie a filtre aktuálne" + }, + "update_available_title": { + "message": "Sú k dispozícii aktualizácie" + }, + "update_available_update_btn": { + "message": "Aktualizovať" + }, + "update_check": { + "message": "Skontrolovať aktualizácie" + }, + "update_checking_in_progress": { + "message": "Kontrolujem aktualizácie..." + }, + "update_failed_text": { + "message": "Aktualizáciu sa nepodarilo dokončiť" + }, + "update_failed_try_again_btn": { + "message": "Skúste znova" + }, + "update_installing_in_progress_desc": { + "message": "Rozšírenie sa po aktualizácii reštartuje" + }, + "update_installing_in_progress_title": { + "message": "Aktualizácia rozšírenia a filtrov..." + }, + "update_not_needed": { + "message": "Vaše rozšírenie a filtre sú aktuálne" + }, + "update_success_text": { + "message": "Rozšírenie a filtre boli aktualizované" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sl/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sl/messages.json new file mode 100644 index 0000000..585d068 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sl/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% je bil smodejno aktiviran." + }, + "alert_popup_filter_enabled_title": { + "message": "Samodejno aktiviranje filtrov" + }, + "background_tab_title": { + "message": "Zavihek v ozadju" + }, + "blocking_pages_advanced_button": { + "message": "Napredno" + }, + "blocking_pages_btn_go_back": { + "message": "Pojdi nazaj" + }, + "blocking_pages_btn_proceed": { + "message": "Vseeno nadaljuj" + }, + "blocking_pages_malware": { + "message": "Ta spletna stran v \u003Cstrong>%host%\u003C/strong> je bila prijavljena kot stran z zlonamernimi programi in je bila onemogočena glede na vaše varnostne nastavitve." + }, + "blocking_pages_more_info_button": { + "message": "Več podatkov" + }, + "blocking_pages_page_title": { + "message": "Dostop zavrnjen" + }, + "blocking_pages_phishing": { + "message": "Ta spletna stran v \u003Cstrong>%host%\u003C/strong> je bila prijavljena kot lažna stran in je bila onemogočena glede na vaše varnostne nastavitve." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard je preprečil nalaganje te strani zaradi naslednjega pravila filtriranja" + }, + "blocking_pages_rule_header_title": { + "message": "Onemogočeno z AdGuardom" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard je onemogočil dostop do te strani" + }, + "clear_button_title": { + "message": "Počisti" + }, + "close_button_title": { + "message": "Zapri" + }, + "context_block_site_ads": { + "message": "Blokiraj oglase ročno" + }, + "context_complaint_website": { + "message": "Prijavi težavo" + }, + "context_disable_protection": { + "message": "Začasno zaustavi AdGuardovo zaščito" + }, + "context_enable_protection": { + "message": "Nadaljuj z AdGuardovo zaščito" + }, + "context_open_log": { + "message": "Dnevnik filtriranja" + }, + "context_open_settings": { + "message": "Nastavitve AdGuarda" + }, + "context_security_report": { + "message": "Preveri varnost spletne strani" + }, + "context_site_exception": { + "message": "Ta spletna stran je med izjemami" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ne more filtrirati te strani" + }, + "context_site_filtering_off": { + "message": "Onemogoči filtriranje na tej spletni strani" + }, + "context_site_filtering_on": { + "message": "Omogoči filtriranje na tej spletni strani" + }, + "context_site_protection_disabled": { + "message": "AdGuardova zaščita je začasno zaustavljena" + }, + "context_update_antibanner_filters": { + "message": "Preveri obstoj posodobitev filtra" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Neujemajoča se razširitev za zaviranje oglasov. Zavira oglase na Facebooku, YouTubeu in vseh drugih spletnih straneh." + }, + "filtering_clear_log_events": { + "message": "Počisti dnevnik" + }, + "filtering_log_actions_menu": { + "message": "Dejanja dnevnika filtriranja" + }, + "filtering_log_assumed_rule_description": { + "message": "To je predpostavljeno pravilo. Za podrobnosti si oglejte našo \u003Ca>bazo znanja\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Metoda zahteve HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Koda stanja HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Zahteve druge stranke" + }, + "filtering_log_details_modal_back_button": { + "message": "Nazaj na zahtevo" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Polepšaj" + }, + "filtering_log_details_modal_try_again": { + "message": "Poskusi znova" + }, + "filtering_log_filter_allowed": { + "message": "Dovoljeno" + }, + "filtering_log_filter_blocked": { + "message": "Onemogočeno" + }, + "filtering_log_filter_modified": { + "message": "Spremenjeno" + }, + "filtering_log_filter_regular": { + "message": "Redno" + }, + "filtering_log_filter_user_rules": { + "message": "Uporabniška pravila" + }, + "filtering_log_hide_referrer": { + "message": "Napotitelj skrit pred tretjim istranmi" + }, + "filtering_log_hide_search_queries": { + "message": "Vaše iskalne poizvedbe so skrite" + }, + "filtering_log_in_allowlist": { + "message": "Stran je dovoljena" + }, + "filtering_log_modified_rules": { + "message": "Spremenjena pravila: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Da, ohrani" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ta možnost lahko znatno poveča porabo pomnilnika" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Ohrani dnevnik?" + }, + "filtering_log_preserve_log_off": { + "message": "Ne ohrani dnevnika" + }, + "filtering_log_preserve_log_on": { + "message": "Ohrani dnevnik" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ne prikaži znova" + }, + "filtering_log_privacy_applied_rules": { + "message": "Zaščita proti sledenju uporabljena" + }, + "filtering_log_remove_client_data": { + "message": "Glava X-Client-Podatki je skrita" + }, + "filtering_log_search_string": { + "message": "Poišči" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Poišči v zavihkih" + }, + "filtering_log_send_not_track": { + "message": "Glava Do-Not-Track je skrita" + }, + "filtering_log_status_allowed": { + "message": "Dovoljeno" + }, + "filtering_log_status_blocked": { + "message": "Onemogočeno" + }, + "filtering_log_status_modified": { + "message": "Spremenjeno" + }, + "filtering_log_status_processed": { + "message": "Obdelano" + }, + "filtering_log_stealth_rules": { + "message": "Pravila za zaščito proti sledenju: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Zahtevaj izvor" + }, + "filtering_log_tag_request_status": { + "message": "Stanje filtriranja" + }, + "filtering_log_tag_request_type": { + "message": "Vrsta zahteve" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Samo dovoljene in znova omogočene zahteve" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokirane zahteve" + }, + "filtering_log_tag_tooltip_css": { + "message": "Slogi listov" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Zahteve prve stranke" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenti in poddokumenti" + }, + "filtering_log_tag_tooltip_img": { + "message": "Slike" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripti" + }, + "filtering_log_tag_tooltip_media": { + "message": "Medij" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Samo spremenjene zahteve" + }, + "filtering_log_tag_tooltip_other": { + "message": "Pisave, pingi, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Samo zahteve, obdelane brez filtriranja" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Zahteve druge stranke" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Zahteve, ki jih vplivajo uporabniška pravila" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XML Http zahteve in pridobivanje zahtev" + }, + "filtering_log_title": { + "message": "Dnevnik filtriranja" + }, + "filtering_menu_open_filters": { + "message": "Prilagodi" + }, + "filtering_modal_add_rule": { + "message": "Dodaj" + }, + "filtering_modal_allow_title": { + "message": "Dodaj dovoljeno pravilo" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Uporabljeno pravilo | Uporabljeni pravili | Uporabljena pravila | Uporabljenih pravil" + }, + "filtering_modal_apply_domains": { + "message": "Uporabi za vse spletne strani" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Predpostavljeno pravilo: | Predpostavljena pravila: | Predpostavljena pravila: | Predpostavljena pravila:" + }, + "filtering_modal_block": { + "message": "Onemogoči" + }, + "filtering_modal_block_again": { + "message": "Onemogoči znova" + }, + "filtering_modal_block_title": { + "message": "Dodaj pravilo za zaviranje" + }, + "filtering_modal_converted_to": { + "message": "Pretvorjeno v:" + }, + "filtering_modal_cookie": { + "message": "Piškotek:" + }, + "filtering_modal_copied": { + "message": "Kopirano" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiraj v odložišče" + }, + "filtering_modal_declarative_rule": { + "message": "Pravilo DNR:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Dodaj izjemo" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Stanje filtriranja" + }, + "filtering_modal_hide_full_element": { + "message": "Skrij celoten element" + }, + "filtering_modal_hide_full_rule": { + "message": "Skrij celotno pravilo" + }, + "filtering_modal_hide_full_url": { + "message": "Skrij celoten URL" + }, + "filtering_modal_important": { + "message": "Dodeli pravilu višjo prioriteto" + }, + "filtering_modal_info_title": { + "message": "Podrobnosti o zahtevi" + }, + "filtering_modal_open_in_new_tab": { + "message": "Odpri v novem zavihku" + }, + "filtering_modal_options_desc": { + "message": "Možnosti" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Izvirno pravilo: | Izvirna pravila: | Izvirna pravila: | Izvirna pravila:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Kaj bi moralo biti dovoljeno" + }, + "filtering_modal_patterns_desc_block": { + "message": "Kaj je treba blokirati" + }, + "filtering_modal_preview_request_button": { + "message": "Predogled" + }, + "filtering_modal_preview_title": { + "message": "Predogled" + }, + "filtering_modal_privacy": { + "message": "Zaščita pred sledenjem" + }, + "filtering_modal_remove_allowlist": { + "message": "Odstrani s seznama dovoljenih" + }, + "filtering_modal_remove_param": { + "message": "Odstrani parametre poizvedbe" + }, + "filtering_modal_remove_user": { + "message": "Izbriši pravilo" + }, + "filtering_modal_rule": { + "message": "Pravilo:" + }, + "filtering_modal_rule_text_desc": { + "message": "Pravilo" + }, + "filtering_modal_rules": { + "message": "Pravila:" + }, + "filtering_modal_show_full_element": { + "message": "Prikaži celoten element" + }, + "filtering_modal_show_full_rule": { + "message": "Prikaži celotno pravilo" + }, + "filtering_modal_show_full_url": { + "message": "Prikaži celoten URL" + }, + "filtering_modal_source": { + "message": "Vir" + }, + "filtering_modal_status_text_desc": { + "message": "Stanje" + }, + "filtering_modal_status_text_error": { + "message": "Nalaganje predogleda ni uspelo. Prosimo, poskusite znova" + }, + "filtering_modal_status_text_loading": { + "message": "Nalaganje..." + }, + "filtering_modal_third_party": { + "message": "Uporabi samo za zahteve tretjih strani" + }, + "filtering_modal_type": { + "message": "Vrsta" + }, + "filtering_modal_unblock": { + "message": "Omogoči" + }, + "filtering_refresh_tab_short": { + "message": "Osveži" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Osveži stran" + }, + "filtering_table_action": { + "message": "Dejanje" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Nič ni bilo najdeno. \u003Creset>Onemogoči filtre\u003C/reset> ali \u003Crefresh>znova naloži stran\u003C/refresh>, da si ogledate zapise dnevnika" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Odpri podrobnosti" + }, + "filtering_table_rule": { + "message": "Pravilo filtriranja" + }, + "filtering_table_source": { + "message": "Vir" + }, + "filtering_table_status": { + "message": "Stanje" + }, + "filtering_table_type": { + "message": "Vrsta" + }, + "filtering_type_all": { + "message": "Vse" + }, + "filtering_type_other": { + "message": "Drugo" + }, + "filters_download_loading": { + "message": "Počakajte, da se naloži zbirka podatkov filtrov..." + }, + "filters_download_title": { + "message": "Nalaganje zbirke podatkov filtrov..." + }, + "fullscreen_user_rules_title": { + "message": "Uporabniška pravila" + }, + "group_description_adblocking": { + "message": "Tukaj nastavite zaviranje oglasov, da boste enkrat za vselej odpravili nadležne pasice, pojavna okna, video oglase in podobno" + }, + "group_description_annoyances": { + "message": "Odstranite pojavna okna in druga nadležna obvestila, kot so obvestila o piškotkih" + }, + "group_description_custom": { + "message": "Ustvarite lastne filtre za fino nastavitev spletnega filtriranja po svojih željah." + }, + "group_description_lang": { + "message": "Ne omejajte se — onemogočite oglase na spletnih straneh v vseh jezikih" + }, + "group_description_miscellaneous": { + "message": "Več nastavitev za nadaljnje nastavljanje spletnega brskanja z AdGuard" + }, + "group_description_security": { + "message": "Obvarujte se pred zlonamernimi programi, lažnim predstavljanjem in drugimi spletnimi grožnjami" + }, + "group_description_social": { + "message": "Skrijte neželene gumbe 'Všeč mi je'/'Deli' in druge pripomočke na družbenih omrežjih" + }, + "group_description_stealth": { + "message": "Obvarujte svojo identiteto in občutljive osebne podatke iz tisočih spletnih sledilnikov z zaviranjem vseh znanih priljubljenih metod sledenja" + }, + "name": { + "message": "AdGuard Zaviralec oglasov" + }, + "opera_search_permission_dont_show": { + "message": "Ne prikazuj več" + }, + "opera_search_permission_go_to_settings": { + "message": "Pojdi v Nastavitve" + }, + "opera_search_permission_warning": { + "message": "Za blokiranje iskalnih oglasov dovolite dostop do rezultatov iskanja v nastavitvah brskalnika" + }, + "options_about": { + "message": "Vizitka" + }, + "options_about_libs": { + "message": "Uporabljene knjižnice" + }, + "options_about_title": { + "message": "AdGuard Razširitev brskalnika" + }, + "options_about_update_available": { + "message": "Različica %version% je na voljo. Samodejno bo prenesena in nameščena." + }, + "options_about_version": { + "message": "Različica" + }, + "options_acknowledgment": { + "message": "Zahvale" + }, + "options_add_custom_filter": { + "message": "Dodaj filter po meri" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Dodaj" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Preverjanje vašega filtra..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL naslov je vrnil spletno stran namesto seznama filtrov. Prosimo, navedite neposredno povezavo do datoteke filtra." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Poskusite znova ali se obrnite na podporo" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Ni uspelo dodati filtra po meri" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Ime filtra:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Zaupanja vreden" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Zaupanja vredni filtri lahko uporabljajo zmogljive spreminjevalce pravil – poskrbite, da boste uporabili filter zaupanja vrednih razvijalcev" + }, + "options_add_custom_filter_modal_title": { + "message": "Dodaj filter po meri" + }, + "options_all_limits_exceeded_warning": { + "message": "Dosegli ste omejitev aktivnih vgrajenih filtrov. Brskalnik je spremenil seznam aktivnih vgrajenih filtrov. Število omogočenih filtrov se je spremenilo iz %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Dosegli ste omejitev aktivnih vgrajenih pravil vašega brskalnika. Vaš brskalnik je zmanjšal seznam aktivnih vgrajenih filtrov s %expected% na %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš brskalnik omejuje \u003Cexternal-link>nekatere vrste pravil\u003C/external-link>. Če želite uporabiti vsa pravila, omogočite \u003Cb>Dovoli uporabniške skripte\u003C/b> v nastavitvah razširitve \u003Csettings-link>vašega brskalnika\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Seznam dovoljenih" + }, + "options_allowlist_alert_invert": { + "message": "Seznam dovoljenih je obrnjen. Oglasi so blokirani samo na spletnih straneh, ki so dodane nanj." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Ustavi obračanje\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ne blokira oglasov in sledilcev na spletnih straneh s seznama" + }, + "options_allowlist_invalid_entries": { + "message": "Za shranjevanje obdržite samo domene ali URL naslove. Te je treba popraviti: %entries%" + }, + "options_allowlist_invert": { + "message": "Obrni seznam dovoljenih" + }, + "options_allowlist_invert_desc": { + "message": "Blokira oglase in sledilce samo na spletnih straneh s seznama dovoljenih" + }, + "options_allowlist_leave_subtitle": { + "message": "Vaše spremembe na seznamu dovoljenih bodo izgubljene" + }, + "options_allowlist_menu": { + "message": "Dejanja seznama dovoljenih" + }, + "options_anonymized_usage_data_description": { + "message": "Pošlje anonimno statistiko o uporabi razširitve AdGuardu. \u003Cbutton>Več o tem\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Razumem" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Ti podatki vključujejo:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Imena gumbov, ki jih kliknete" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Imena zaslonov, s katerimi komunicirate" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifikatorji sej" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ti podatki so anonimni in se uporabljajo samo interno. Nikoli jih ne delimo s tretjimi osebami" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Te informacije potrebujemo, da analiziramo in izboljšamo funkcionalnost AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Podatki o uporabi razširitve" + }, + "options_anonymized_usage_data_title": { + "message": "Pošlji anonimizirane podatke o uporabi razširitve" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Ta filter po meri je že bil dodan" + }, + "options_antibanner_custom_group": { + "message": "Po meri" + }, + "options_antibanner_custom_group_description": { + "message": "Omogoča dodajanje filtrov iz datoteke ali URL naslova" + }, + "options_antibanner_rules_count": { + "message": "Pravila: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Posodobljeno: %date%" + }, + "options_block_acceptable_ads": { + "message": "Onemogoči iskalne oglase in samopromocijo spletnih strani" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokira oglase v rezultatih iskanja in samopromocijo spletnih mest. \u003Ca>Več o tem\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Za blokiranje piškotkov nastavite življenjsko dobo na 0" + }, + "options_block_known_trackers_description": { + "message": "Onemogoča sledilnike in spletno analitiko z uporabo filtra AdGuard Zaščita pred sledenjem" + }, + "options_block_known_trackers_title": { + "message": "Onemogoči sledilce" + }, + "options_check_update_progress": { + "message": "Preverjanje..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Počisti" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Vsi statistični podatki o uporabi podatkov bodo trajno izbrisani" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Počistim statistiko?" + }, + "options_clipboard_permission_warning": { + "message": "Za kopiranje in lepljenje pravil dovolite AdGuardu dostop do odložišča. \u003Ca>Dovoli\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Pošlje anonimne statistike o uporabi filtrov oglasov AdGuardu. \u003Ca>Več o tem\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomagajte razvijati filtre AdGuard" + }, + "options_coming_soon": { + "message": "Prihaja kmalu" + }, + "options_confirm_modal_cancel_button": { + "message": "Prekliči" + }, + "options_copyright": { + "message": "Vse pravice so pridržane." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Če želite uporabljati filtre po meri, omogočite \u003Cb>Dovoli uporabniške skripte\u003C/b> v nastavitvah razširitve \u003Csettings-link>vašega brskalnika\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Če želite uporabljati filtre po meri, omogočite \u003Cb>Način za razvijalce\u003C/b> v nastavitvah razširitve \u003Csettings-link>vašega brskalnika\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Pridobite AdGuard za Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Pridobite AdGuard za Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Pridobite AdGuard za Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikacije, kot so Spotify, Discord ali Zoom, lahko še vedno prikazujejo oglase in sledijo vaši dejavnosti" + }, + "options_desktop_app_promo_subdescription": { + "message": "Naša namizna aplikacija vas lahko zaščiti pred njimi" + }, + "options_desktop_app_promo_title": { + "message": "Razširitev ščiti samo brskalnik" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš brskalnik omejuje \u003Cexternal-link>nekatere vrste pravil\u003C/external-link>. Če želite uporabiti vsa pravila, omogočite \u003Cb>Način za razvijalce\u003C/b> v nastavitvah razširitve \u003Csettings-link>vašega brskalnika\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokira WebRTC, ki lahko razkrije vaš pravi naslov IP, tudi če uporabljate namestniški trežnik ali VPN. Nekateri sporočilniki, pretočne platforme ali igre morda ne bodo delovali pravilno" + }, + "options_disable_webrtc_title": { + "message": "Onemogoči WebRTC" + }, + "options_discuss": { + "message": "Pogovor z AdGuardom" + }, + "options_do_you_like_question": { + "message": "Ali vam je všeč AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Zapri način okna" + }, + "options_editor_indicator_saved": { + "message": "Shranjeno" + }, + "options_editor_indicator_saving": { + "message": "Shranjevanje..." + }, + "options_editor_leave_cancel": { + "message": "Nazaj k urejanju" + }, + "options_editor_leave_confirm": { + "message": "Da, odidi" + }, + "options_editor_leave_title": { + "message": "Odidi brez shranjevanja?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Odpri urejevalnik v novem oknu" + }, + "options_editor_save": { + "message": "Shrani" + }, + "options_editor_save_error": { + "message": "Neuspešno shranjevanje sprememb. Poskusite znova ali se obrnite na podporo" + }, + "options_empty_custom_filter": { + "message": "Nimate še nobenih filtrov po meri" + }, + "options_enable_autodetect_filter": { + "message": "Samodejno aktiviraj najprimernejše filtre" + }, + "options_enable_autodetect_filter_desc": { + "message": "Zazna jezik spletnega mesta in aktivira ustrezne filtre" + }, + "options_export_settings": { + "message": "Izvozi nastavitve" + }, + "options_filters": { + "message": "Filtri" + }, + "options_filters_annoyances_consent_description": { + "message": "Omogočili boste enega ali več filtrov motenj. Blokirajo elemente, ki niso povezani z vsebino spletne strani ali so povezani, vendar so moteči za vašo uporabniško izkušnjo. Lastniki spletnih strani lahko te elemente obravnavajo kot obvezne: če jih blokirate, morda kršite njihove pogoje; nekatere funkcionalnosti spletnih strani morda ne bodo na voljo ali ne bodo pravilno delovale. Razumete in se strinjate, da ste sami odgovorni za upoštevanje pogojev uporabe spletnih strani, ki jih obiščete, in da AdGuard ni odgovoren za vaše upoštevanje pogojev uporabe spletnih strani, ki jih obiščete z uporabo naših izdelkov." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Omogoči" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Domača stran" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Za podrobnosti o tem, kaj AdGuardovi filtri motenj blokirajo, glejte \u003Ca>Politika filtra\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Želite omogočiti ta filter?" + }, + "options_filters_annoyances_consent_title": { + "message": "Pozorno preberite, preden omogočite filtre za motnje" + }, + "options_filters_back_button": { + "message": "Pojdi nazaj" + }, + "options_filters_empty_title": { + "message": "Nič ni bilo najdeno" + }, + "options_filters_enabled": { + "message": "Omogočeno:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% in %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% in %more% več" + }, + "options_filters_enabled_per_group": { + "message": "Omogočeno: %current% od %total%" + }, + "options_filters_filter_link": { + "message": "Pojdi na domačo stran" + }, + "options_filters_filter_tags": { + "message": "Oznake filtra" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Izbrali ste, da zaupate temu filtru." + }, + "options_filters_filter_updated": { + "message": "posodobljen:" + }, + "options_filters_filter_version": { + "message": "različica:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Vsa pravila: %num%" + }, + "options_filters_last_checked": { + "message": "Zadnje preverjanje: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Vsi filtri" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Onemogočeno" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Omogočeno" + }, + "options_filters_no_enabled": { + "message": "Noben filter ni omogočen" + }, + "options_filters_of_group": { + "message": "Filtri skupine »%groupName%«" + }, + "options_filters_search": { + "message": "Poišči" + }, + "options_filters_search_filter": { + "message": "Poišči filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Če te Piškotek popolnoma onemogočite, se lahko nekatere spletne strani pokvarijo ali prenehajo delovati" + }, + "options_first_party_desc": { + "message": "Spletnim stranem preprečuje, da bi si zapomnile vaše podatke, kot so vaši prijavni podatki in jezikovne nastavitve, tako da omeji življenjsko dobo piškotkov prva stranka" + }, + "options_first_party_title": { + "message": "Izbriši first-party piškotke (ni priporočeno)" + }, + "options_general_settings": { + "message": "Splošno" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Preprečite tretjim osebam, da vedo, katero spletno stran obiskujete" + }, + "options_hide_referrer_title": { + "message": " Skrij napotitelja iz tretjih straneh" + }, + "options_hide_search_queries_desc": { + "message": "Skrije vaša iskanja pred spletnimi stranmi, ki jih obiščete prek rezultatov iskalnika" + }, + "options_hide_search_queries_title": { + "message": "Skriti iskalne poizvedbe" + }, + "options_import_configuration_applying_subtitle": { + "message": "Zamenjava trenutnih nastavitev z uvoženimi. Filtriranje je med uvozom onemogočeno" + }, + "options_import_configuration_applying_title": { + "message": "Uvoz" + }, + "options_import_configuration_confirm_button": { + "message": "Uvozi" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Uvožene nastavitve bodo nadomestile trenutne. Na druge nastavitve to ne bo vplivalo" + }, + "options_import_configuration_confirm_title": { + "message": "Uvozi nastavitve" + }, + "options_import_configuration_error_button": { + "message": "Zapri" + }, + "options_import_configuration_error_subtitle": { + "message": "Preverite uvozno povezavo in poskusite znova. Če ne pomaga, se obrnite na podporo" + }, + "options_import_configuration_error_title": { + "message": "Izvoz nastavitev ni uspel" + }, + "options_import_configuration_success_button": { + "message": "Zapri" + }, + "options_import_configuration_success_subtitle": { + "message": "Nastavitve so bile uspešno uvožene" + }, + "options_import_configuration_success_title": { + "message": "Vse je končano" + }, + "options_import_settings": { + "message": "Uvozi nastavitve" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Obrni" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Oglasi in sledilci bodo blokirani samo na spletnih straneh s seznama dovoljenih" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Obrni seznam dovoljenih?" + }, + "options_leave_feedback": { + "message": "Pošlji povratne informacije" + }, + "options_lifetime_minutes": { + "message": "Življenjska doba, minute" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Dosegli ste omejitev uporabniško dodanih pravil regularnega izraza. %maximum% od %current% pravil regularnih izrazov je omogočenih." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Dosegli ste omejitev regex pravil, dodanih s strani uporabnika. Omogočenih je %maximum% od %current% pravil. Za dodajanje novih regex pravil odstranite nekaj obstoječih" + }, + "options_limits_warning_dynamic_rules": { + "message": "Dosegli ste omejitev uporabniško dodanih pravil. %maximum% od %current% pravil je omogočenih." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Dosegli ste omejitev pravil, dodanih s strani uporabnika. Omogočenih je %maximum% od %current% pravil. Za dodajanje novih pravil odstranite nekaj obstoječih" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Dosegli ste limit uporabniško dodanih nenačrtovanih pravil. %maximum% od %current% nenačrtovanih pravil je omogočenih." + }, + "options_limits_warning_static_filters": { + "message": "Dosegli ste omejitev aktivnih vgrajenih filtrov. %maximum% od %current% filtrov je omogočenih. Za aktiviranje novih pravil onemogočite nekatere vgrajene filtre." + }, + "options_limits_warning_static_filters_browser": { + "message": "Dosegli ste omejitev aktivnih vgrajenih filtrov vašega brskalnika. Omogočenih je %maximum% od %current% filtrov. Za aktiviranje novih filtrov onemogočite nekatere vgrajene" + }, + "options_limits_warning_static_regex_rules": { + "message": "Dosegli ste omejitev aktivnih vgrajenih pravil regularnega izraza. %maximum% od %current% pravil regularnega izraza je omogočenih. Za aktiviranje novih pravil onemogočite nekatere vgrajene filtre." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Dosegli ste omejitev aktivnih vgrajenih regex pravil. Za aktiviranje novih pravil onemogočite nekatere vgrajene filtre" + }, + "options_limits_warning_static_rules": { + "message": "Dosegli ste omejitev aktivnih vgrajenih pravil. %maximum% od %current% pravil je omogočenih. Za aktiviranje novih pravil onemogočite nekatere vgrajene filtre." + }, + "options_limits_warning_static_rules_browser": { + "message": "Dosegli ste omejitev aktivnih vgrajenih pravil vašega brskalnika. Za aktiviranje novih pravil onemogočite nekatere vgrajene filtre" + }, + "options_loader_applying_changes": { + "message": "Uveljavitev sprememb..." + }, + "options_miscellaneous_settings": { + "message": "Razno" + }, + "options_modified_first_party_cookie": { + "message": "Piškotek za prvo stran je spremenjen" + }, + "options_modified_third_party_cookie": { + "message": "Piškotek za tretjo stran je spremenjen" + }, + "options_nav_better_than_extension": { + "message": "Zakaj je aplikacija AdGuard boljša od razširitve?" + }, + "options_nav_compare": { + "message": "Primerjaj" + }, + "options_navigation": { + "message": "Navigacija" + }, + "options_open_changelog": { + "message": "Dnevnik sprememb" + }, + "options_open_log": { + "message": "Dnevnik filtriranja" + }, + "options_popup_call_to_action": { + "message": "V zgornje polje vnesite veljaven URL ali pot datoteke v filter." + }, + "options_popup_check_false_description": { + "message": "Napaka pri dodajanju vašega filtra po meri." + }, + "options_popup_check_false_title": { + "message": "Napaka" + }, + "options_popup_checking_filter": { + "message": "Preverjanje vašega filtra" + }, + "options_popup_description": { + "message": "Na ta filter boste naročeni." + }, + "options_popup_filter_description": { + "message": "Opis:" + }, + "options_popup_filter_homepage": { + "message": "Domača stran:" + }, + "options_popup_filter_rules_count": { + "message": "Število pravil:" + }, + "options_popup_filter_title": { + "message": "Naslov:" + }, + "options_popup_filter_url": { + "message": "URL naslov" + }, + "options_popup_filter_version": { + "message": "Različica:" + }, + "options_popup_import_error_file_description": { + "message": "Nekaj je šlo narobe." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Če želite uvoziti to datoteko z nastavitvami, dovolite AdGuardu, da spremeni vaše nastavitve, povezane z zasebnostjo." + }, + "options_popup_import_error_title": { + "message": "Izvoz nastavitev ni uspel" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Končnica datoteke mora biti %extension%" + }, + "options_popup_import_success_title": { + "message": "Nastavitve uvožene" + }, + "options_popup_next_button": { + "message": "Naprej" + }, + "options_popup_subscribe_button": { + "message": "Naroči se" + }, + "options_popup_title_placeholder": { + "message": "Vnesite ime filtra" + }, + "options_popup_trusted_filter_description": { + "message": "Pri zaupanja vrednim filtrom lahko uporabite modifikatorje pravil filtriranja, ki so lahko nevarni v napačnih rokah. Ne označujte tega polja, razen če mu popolnoma zaupate." + }, + "options_popup_trusted_filter_title": { + "message": "Zaupanja vreden" + }, + "options_popup_try_again_button": { + "message": "Poskusi znova" + }, + "options_popup_update_error": { + "message": "Posodobitev ni uspela. Prosimo poskusite kasneje." + }, + "options_popup_update_filter": { + "message": "je bilo posodobljeno." + }, + "options_popup_update_filters": { + "message": "so bili posodobljeni." + }, + "options_popup_update_not_found": { + "message": "Vaši filtri so posodobljeni" + }, + "options_popup_update_title_error": { + "message": "Napaka pri posodabljanju filtrov" + }, + "options_popup_updating_filters": { + "message": "Posodabljanje filtrov..." + }, + "options_popup_url_placeholder": { + "message": "Vnesite URL ali pot" + }, + "options_popup_url_title": { + "message": "Nova naročnina filtra" + }, + "options_popup_version_update_changelog_text": { + "message": "Kaj je novega v tej različici?" + }, + "options_popup_version_update_description_major": { + "message": "To je velika nadgradnja razširitve, ki prinaša veliko novih funkcij in izboljšav." + }, + "options_popup_version_update_description_minor": { + "message": "Ta različica večinoma vsebuje popravke napak in manjše izboljšave." + }, + "options_popup_version_update_disable_notification": { + "message": "Onemogočite obvestila" + }, + "options_popup_version_update_offer": { + "message": "Ali ste vedeli, da zmogljivosti AdGuarda niso omejene na ta brskalnik?" + }, + "options_popup_version_update_offer_button_text": { + "message": "VEČ O TEM" + }, + "options_popup_version_update_title_text": { + "message": "Razširitev AdGuard je bila posodobljena na različico %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Omogoči, da WebRTC uporablja strožjo politiko Naslov IP, da pomaga ohraniti vaš pravi Naslov IP skrit, ko uporabljate namestniški trežnik ali VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Prepreči uhajanje naslova IP prek WebRTC" + }, + "options_privacy": { + "message": "Zaščita pred sledenjem" + }, + "options_privacy_desc": { + "message": "Ščiti vašo spletno dejavnost in osebne podatke pred spletnimi sledilci" + }, + "options_privacy_policy": { + "message": "Politika zasebnosti" + }, + "options_privacy_title": { + "message": "Zaščita pred sledenjem" + }, + "options_rate_us_cta": { + "message": "Ocenite ga" + }, + "options_remove_client_data_desc": { + "message": "Preprečite Google Chromu pošiljanje podatkov o različicah in spremembah Googlovim domenam" + }, + "options_remove_client_data_title": { + "message": "Odstrani glavo X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Odstrani" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Odstranim ta filter?" + }, + "options_report_bug": { + "message": "Prijavi napako" + }, + "options_reset_settings": { + "message": "Ponastavi nastavitve" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Ponastavi" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Vse nastavitve bodo ponastavljene na privzete vrednosti" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Ponastavim nastavitve?" + }, + "options_reset_settings_done": { + "message": "Nastavitve so bile ponastavljene" + }, + "options_reset_settings_error": { + "message": "Napaka pri ponastavitvi nastavitev" + }, + "options_reset_stats": { + "message": "Počisti statistiko" + }, + "options_reset_stats_done": { + "message": "Statistika je bila ponastavljena" + }, + "options_rule_limits": { + "message": "Omejitve pravil" + }, + "options_rule_limits_description": { + "message": "Chrome omejuje število pravil, ki jih je mogoče uporabiti" + }, + "options_rule_limits_dynamic": { + "message": "Dinamična pravila" + }, + "options_rule_limits_dynamic_regex": { + "message": "Pravila regex - vključena v pravila, ki jih je dodal uporabnik" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nevarna dinamična pravila (uporabljajo se za nekatere napredne modifikatorje, kot je $$redirect ali $$cookie) — vključena v pravila, ki jih doda uporabnik" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Uporabniško dodana pravila, kot so \u003Cuser_rules>Uporabniška pravila\u003C/user_rules>, \u003Callowlist>spletne strani na seznamu dovoljenih\u003C/allowlist> in \u003Ccustom_filters>filtri po meri\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Pravila, ki jih dodajo uporabniki, kot so uporabniška pravila \u003Cuser_rules>\u003C/user_rules> in \u003Callowlist>dovoljena spletna mesta\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% od %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statična pravila" + }, + "options_rule_limits_static_rules_all": { + "message": "Pravila iz \u003Ca>vgrajenih filtrov\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex pravila - vključena zgoraj" + }, + "options_rule_limits_static_rulesets": { + "message": "Statični nizi pravil" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Vgrajeni filtri\u003C/a>, kot so blokiranje nadlegovanja ali filtri, specifični za jezik" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Možnost 3. Če ste zadovoljni s trenutno omogočenimi privzetimi filtri, \u003Ca>zaprite to opozorilo.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Možnost 3. Če ste zadovoljni s trenutno omogočenimi privzetimi filtri, \u003Ca>zaprite to opozorilo.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Možnost 1. Iz brskalnika izbrišite nepotrebne razširitve zaviralcev oglasov. Za ponovno aktiviranje filtrov, omenjene v razdelku 'Filtri, omogočeni pred posodobitvijo', kliknite \u003Ca>znova aktiviraj filtre.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Možnost 2. Namestite aplikacijo AdGuard Zaviralec oglasov: ta nima omejitev glede pravil filtriranja. \u003Ca>Prenesi AdGuard Zaviralec oglasov\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vaša možna dejanja" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Omejitev aktivnih vgrajenih pravil je bila presežena po posodobitvi ali dodajanju nove razširitve. Glede na Manifest V3 se je vaš brskalnik Chrome odzval tako, da je onemogočil vse vgrajene filtre razširitve, razen privzetih." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Kaj se je zgodilo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filtri omogočeni pred posodobitvijo" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtri so zdaj omogočeni" + }, + "options_rule_limits_warning_title": { + "message": "Brskalnik je spremenil seznam aktivnih filtrov" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Odstranite omejitve pravil in pridobite razširjeno zaščito, ki deluje v vseh brskalnikih" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Namestite aplikacijo za namizje" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Pojdi na filtre" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Upravljaj razširitve" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Razširitve brskalnika delijo isto omejitev pravil. Odstranitev drugih zaviralcev oglasov lahko sprosti več pravil za AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Odstrani druge zaviralce oglasov" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Omogoči filtre, ki jih potrebuješ. Jezikovno specifični in filtri zasebnosti lahko uporabljajo veliko pravil" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Preglej razpoložljive filtre" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Tukaj je tisto, kar lahko storite" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Dosežena omejitev — nekateri filtri so bili onemogočeni" + }, + "options_rule_syntax": { + "message": "Sintaksa pravila" + }, + "options_safebrowsing_enabled": { + "message": "Varstvo pred lažnim predstavljanjem in škodljivimi programi" + }, + "options_safebrowsing_enabled_desc": { + "message": "Opozarja na zlonamerne in lažno predstavljanje spletne strani z uporabo modula AdGuard Varnost brskanja. \u003Ca>Preberi več\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 ur" + }, + "options_select_update_period_1h": { + "message": "1 ura" + }, + "options_select_update_period_24h": { + "message": "24 ur" + }, + "options_select_update_period_48h": { + "message": "48 ur" + }, + "options_select_update_period_6h": { + "message": "6 ur" + }, + "options_select_update_period_default": { + "message": "Privzeto" + }, + "options_select_update_period_disabled": { + "message": "Onemogočeno" + }, + "options_send_not_track_desc": { + "message": "Pošljite zahtevi \u003Cgpc>Globalni nadzor zasebnosti\u003C/gpc> in \u003Cdnt>Ne sledi\u003C/dnt> spletnim stranem, ki jih obiščete" + }, + "options_send_not_track_title": { + "message": "Prosite spletna mesta, naj me ne sledijo" + }, + "options_set_update_interval": { + "message": "Samodejno posodobi filtre" + }, + "options_set_update_interval_desc": { + "message": "Ohranja filtre posodobljene za učinkovitejše blokiranje oglasov" + }, + "options_settings": { + "message": "Nastavitve AdGuarda" + }, + "options_share_settings": { + "message": "Deliti nastavitve" + }, + "options_show_adguard_full_version_title": { + "message": "Prikaži podatke o polni različici AdGuarda" + }, + "options_show_app_updated_notification": { + "message": "Obvesti o posodobitvah razširitve" + }, + "options_show_blocked_ads_count_title": { + "message": "Nakaži število onemogočenih oglasov na ikoni AdGuard razširitve" + }, + "options_show_context_menu_title": { + "message": "Dodaj vnos AdGuarda vpriročni meni brskalnika" + }, + "options_site": { + "message": "Uradna spletna stran" + }, + "options_skip_to_main_content": { + "message": "Preskoči na glavno vsebino" + }, + "options_stealth_general_title": { + "message": "Splošno" + }, + "options_stealth_miscellaneous_title": { + "message": "Razno" + }, + "options_stealth_tracking_methods_title": { + "message": "Metode sledenja" + }, + "options_strip_tracking_params_description": { + "message": "Odstrani parametre sledenja iz URL-jev strani z uporabo filtra za sledenje URL-jem AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Odstrani parametre sledenja iz URL-jev" + }, + "options_stripped_tracking_parameters": { + "message": "Odstranjeni so parametri sledenja" + }, + "options_theme_selector_dark": { + "message": "Temna" + }, + "options_theme_selector_light": { + "message": "Svetla" + }, + "options_theme_selector_system": { + "message": "Sistemska privzeta" + }, + "options_third_party_block_cookies_warning": { + "message": "Če te Piškotek popolnoma onemogočite, se boste morda morali znova prijaviti na nekaterih spletnih straneh ali se soočiti z drugimi težavami, povezanimi s Piškotek" + }, + "options_third_party_desc": { + "message": "Preprečuje oglaševalcem sledenje vašemu vedenju na več spletnih straneh z omejevanjem življenjske dobe piškotkov tretjih oseb" + }, + "options_third_party_title": { + "message": "Izbrisati piškotke tretjih strani" + }, + "options_update_antibanner_filters": { + "message": "Preveri obstoj posodobitev filtrov" + }, + "options_use_optimized_filters": { + "message": "Uporabi optimizirane filtre" + }, + "options_use_optimized_filters_desc": { + "message": "Uporablja krajše različice filtrov z najbolj priljubljenimi pravili za prihranek prometa. Bolj primeren za mobilne brskalnike" + }, + "options_user_rules_clear_search": { + "message": "Počisti iskanje" + }, + "options_user_rules_create_rule": { + "message": "Ustvari pravilo" + }, + "options_user_rules_delete_all": { + "message": "Izbriši vse" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Vsa uporabniška pravila bodo trajno izbrisana" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Želite vse izbrisati?" + }, + "options_user_rules_delete_all_success": { + "message": "Vsa uporabniška pravila so izbrisana" + }, + "options_user_rules_delete_rule": { + "message": "Izbriši pravilo" + }, + "options_user_rules_deleted_notification": { + "message": "Uporabniško pravilo izbrisano:" + }, + "options_user_rules_description_key": { + "message": "Vaša pravila za blokiranje in odblokiranje oglasov ali celotnih spletnih strani" + }, + "options_user_rules_edit_rule": { + "message": "Uredi pravilo" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Pojdi v urejevalnik" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Vaša pravila se bodo pojavila tukaj, ko ga zaprete" + }, + "options_user_rules_editor_stub_title": { + "message": "Urejevalnik je odprt v drugem oknu" + }, + "options_user_rules_empty_placeholder": { + "message": "Filtrir še ni" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Označevanje pravil…" + }, + "options_user_rules_import_error": { + "message": "Uvoz uporabniških pravil ni uspel. Poskusite znova" + }, + "options_user_rules_import_success": { + "message": "Pravila uporabnikov so bila uspešno uvožena" + }, + "options_user_rules_menu": { + "message": "Dejanja uporabniških pravil" + }, + "options_user_rules_no_match": { + "message": "Nič ni bilo najdeno" + }, + "options_user_rules_search_placeholder": { + "message": "Poišči" + }, + "options_user_rules_switch_to_editor": { + "message": "Preklopi na pogled urejevalnika" + }, + "options_user_rules_switch_to_list": { + "message": "Preklopi na pogled seznama" + }, + "options_user_rules_undo": { + "message": "Razveljavi" + }, + "options_userfilter": { + "message": "Uporabniška pravila" + }, + "options_userfilter_description_key": { + "message": "Tu lahko dodate svoja pravila. Ta možnost je priporočljiva za napredne uporabnike, ki poznajo HTML/CSS. Preberite \u003Ca>vadnico pravil o filtriranju\u003C/a>, če želite izvedeti, kako napisati lastna pravila filtriranja." + }, + "options_userfilter_export": { + "message": "Izvozi" + }, + "options_userfilter_import": { + "message": "Uvozi" + }, + "options_userfilter_leave_subtitle": { + "message": "Vaše spremembe pravil bodo izgubljene" + }, + "options_userfilter_line_break": { + "message": "Prelom vrstice" + }, + "options_userfilter_line_break_off": { + "message": "Prelom vrstic: Onemogočen" + }, + "options_userfilter_line_break_on": { + "message": "Prelom vrstice: Omogočen" + }, + "options_userfilter_subtitle_key": { + "message": "Omogoča dodajanje lastnih pravil za filtriranje" + }, + "popup_abuse_site": { + "message": "Prijavi težavo" + }, + "popup_adguard_footer_title": { + "message": "Zaščitite vašo mobilno napravo" + }, + "popup_adguard_for_android": { + "message": "AdGuard za Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard za iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokiraj oglase ročno" + }, + "popup_get_system_wide_protection": { + "message": "Pridobite zaščito celotnega sistema" + }, + "popup_header_cta_link": { + "message": "Kako izboljšati zaščito" + }, + "popup_header_update_filters": { + "message": "Preveri obstoj posodobitev filtra" + }, + "popup_limits_exceeded_warning": { + "message": "Brskalnik je spremenil seznam aktivnih vgrajenih filtrov" + }, + "popup_open_filtering_log": { + "message": "Odpri dnevnik filtriranja" + }, + "popup_open_settings": { + "message": "Odpri nastavitve AdGuard" + }, + "popup_protection_button": { + "message": "AdGuardova zaščita" + }, + "popup_reset_page_user_rules": { + "message": "Zbriši uporabniška pravila za to spletno stran" + }, + "popup_resume_protection_button": { + "message": "Nadaljuj" + }, + "popup_security_report": { + "message": "Preveri varnost spletne strani" + }, + "popup_site_exception_information": { + "message": "Filtriranje je onemogočeno, ker lahko moti operacijo s to spletno stranjo." + }, + "popup_site_filtering_state_disabled": { + "message": "Zaščita je onemogočena" + }, + "popup_site_filtering_state_disabling": { + "message": "Onemogočanje zaščite..." + }, + "popup_site_filtering_state_enabled": { + "message": "Zaščita je omogočena" + }, + "popup_site_filtering_state_enabling": { + "message": "Omogočanje zaščite..." + }, + "popup_site_filtering_state_loading": { + "message": "Nalaganje..." + }, + "popup_site_filtering_state_paused": { + "message": "Zaščita je začasno zaustavljena" + }, + "popup_site_filtering_state_pausing": { + "message": "Začasno ustavljanje zaščite..." + }, + "popup_site_filtering_state_resuming": { + "message": "Nadaljevanje zaščite..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Zaščitena stran" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "za vse spletne strani" + }, + "popup_statistics_all_categories": { + "message": "Vse" + }, + "popup_statistics_category_advertising": { + "message": "Oglasi" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategorija statistike" + }, + "popup_statistics_category_other": { + "message": "Ostalo" + }, + "popup_statistics_category_social_media": { + "message": "Družbeni mediji" + }, + "popup_statistics_category_trackers": { + "message": "Sledilci" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Avg" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 ur" + }, + "popup_statistics_time_label": { + "message": "Statistično obdobje" + }, + "popup_statistics_time_month": { + "message": "30 dni" + }, + "popup_statistics_time_week": { + "message": "7 dni" + }, + "popup_statistics_time_year": { + "message": "1 leto" + }, + "popup_statistics_total": { + "message": "Skupaj" + }, + "popup_statistics_week_days_fri": { + "message": "Pet" + }, + "popup_statistics_week_days_mon": { + "message": "Pon" + }, + "popup_statistics_week_days_sat": { + "message": "Sob" + }, + "popup_statistics_week_days_sun": { + "message": "Ned" + }, + "popup_statistics_week_days_thu": { + "message": "Čet" + }, + "popup_statistics_week_days_tue": { + "message": "Tor" + }, + "popup_statistics_week_days_wed": { + "message": "Sre" + }, + "popup_switch_button": { + "message": "Zaščita za trenutno spletno stran" + }, + "popup_tab_actions": { + "message": "Akcije" + }, + "popup_tab_blocked_all_count": { + "message": "Vse skupaj blokirano: %num%" + }, + "popup_tab_blocked_count": { + "message": "Onemogočeno: %num%" + }, + "popup_tab_current_website": { + "message": "Trenutna spletna stran" + }, + "popup_tab_statistics": { + "message": "Statistika" + }, + "popup_tabs": { + "message": "Zavihki" + }, + "popup_tooltip_loading": { + "message": "Nalaganje..." + }, + "popup_tooltip_protection_disabled": { + "message": "Zaščita je onemogočena" + }, + "popup_tooltip_protection_enabled": { + "message": "Zaščita je omogočena" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Nekatera pravila se ne uporabljajo" + }, + "popup_tooltip_update_available": { + "message": "Posodobitev je na voljo" + }, + "post_install_loading": { + "message": "Nalagam razširitev..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Omejitev pravil je bila prekoračena v razširitvi brskalnika AdGuard. Preverite svoje filtre in onemogočite tiste, ki jih ne potrebujete" + }, + "text_collapser_hide_default": { + "message": "Skrij celotno besedilo" + }, + "text_collapser_show_default": { + "message": "Prikaži celotno besedilo" + }, + "update_available_desc": { + "message": "Za učinkovito blokiranje oglasov posodabljajte razširitev in filtre" + }, + "update_available_title": { + "message": "Posodobitev je na voljo" + }, + "update_available_update_btn": { + "message": "Posodobi" + }, + "update_check": { + "message": "Preveri obstoj posodobitev" + }, + "update_checking_in_progress": { + "message": "Preverjanje obstoja posodobitev..." + }, + "update_failed_text": { + "message": "Posodobitve ni bilo mogoče dokončati" + }, + "update_failed_try_again_btn": { + "message": "Poskusi znova" + }, + "update_installing_in_progress_desc": { + "message": "Razširitev se bo po posodobitvi znova zagnala" + }, + "update_installing_in_progress_title": { + "message": "Posodabljanje razširitve in filtrov..." + }, + "update_not_needed": { + "message": "Vaša razširitev in filtri so posodobljeni" + }, + "update_success_text": { + "message": "Posodobljena razširitev in filtri" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sr/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sr/messages.json new file mode 100644 index 0000000..04e5c24 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sr/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% je automatski aktiviran." + }, + "alert_popup_filter_enabled_title": { + "message": "Automatsko uključivanje filtera" + }, + "background_tab_title": { + "message": "Pozadinska kartica" + }, + "blocking_pages_advanced_button": { + "message": "Više opcija" + }, + "blocking_pages_btn_go_back": { + "message": "Vrati se" + }, + "blocking_pages_btn_proceed": { + "message": "Svakako nastavi" + }, + "blocking_pages_malware": { + "message": "Ova stranica na \u003Cstrong>%host%\u003C/strong> je prijavljena kao štetna pa je na osnovu vaših bezbednosnih postavki blokirana." + }, + "blocking_pages_more_info_button": { + "message": "Više informacija" + }, + "blocking_pages_page_title": { + "message": "Pristup odbijen" + }, + "blocking_pages_phishing": { + "message": "Ova web stranica na \u003Cstrong>%host%\u003C/strong> je prijavljena kao fišing te je s toga blokirana na osnovu vaših bezbednosnih postavki." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard je sprečio učitavanje ove stranice zbog sledećeg pravila filtera" + }, + "blocking_pages_rule_header_title": { + "message": "Blokirao AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard je blokirao pristup ovoj stranici" + }, + "clear_button_title": { + "message": "Očisti" + }, + "close_button_title": { + "message": "Zatvori" + }, + "context_block_site_ads": { + "message": "Blokirajte oglase ručno" + }, + "context_complaint_website": { + "message": "Prijavi poteškoću" + }, + "context_disable_protection": { + "message": "Pauziraj AdGuard zaštitu" + }, + "context_enable_protection": { + "message": "Nastavi AdGuard zaštitu" + }, + "context_open_log": { + "message": "Dnevnik filtriranja" + }, + "context_open_settings": { + "message": "AdGuard postavke" + }, + "context_security_report": { + "message": "Izveštaj o bezbednosti stranice" + }, + "context_site_exception": { + "message": "Ova stranica se nalazi u izuzecima." + }, + "context_site_filtering_disabled": { + "message": "AdGuard ne može filtrirati ovu stranicu" + }, + "context_site_filtering_off": { + "message": "Isključi filterisanje na ovoj stranici" + }, + "context_site_filtering_on": { + "message": "uključi filterisanje na ovoj stranici" + }, + "context_site_protection_disabled": { + "message": "AdGuard zaštita je pauzirana." + }, + "context_update_antibanner_filters": { + "message": "Proveri da li postoje ažuriranja filtera" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Neuporedivo proširenje protiv reklama i iskačućih prozora. Blokira reklame na Facebook, YouTube i svim drugim veb lokacijama." + }, + "filtering_clear_log_events": { + "message": "Očisti dnevnik" + }, + "filtering_log_actions_menu": { + "message": "Radnje u dnevniku filtriranja" + }, + "filtering_log_assumed_rule_description": { + "message": "Ovo je pretpostavljeno pravilo. Za detalje pogledajte našu \u003Ca>bazu znanja\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP način zahteva" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP kod statusa" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Zahteve treće strane" + }, + "filtering_log_details_modal_back_button": { + "message": "Vrati se na zahtev" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Ulepšaj" + }, + "filtering_log_details_modal_try_again": { + "message": "Pokušaj ponovo" + }, + "filtering_log_filter_allowed": { + "message": "Stavljeno na belu listu." + }, + "filtering_log_filter_blocked": { + "message": "Blokirano" + }, + "filtering_log_filter_modified": { + "message": "Izmenjeno" + }, + "filtering_log_filter_regular": { + "message": "Regular" + }, + "filtering_log_filter_user_rules": { + "message": "Korisnički filter" + }, + "filtering_log_hide_referrer": { + "message": "Referer sakriven od trećih strana" + }, + "filtering_log_hide_search_queries": { + "message": "Vaši upiti za pretragu su skriveni" + }, + "filtering_log_in_allowlist": { + "message": "Sajt je dozvoljen" + }, + "filtering_log_modified_rules": { + "message": "Modifikovana pravila: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Da, sačuvaj" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ova opcija može značajno povećati upotrebu memorije" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Sačuvati log?" + }, + "filtering_log_preserve_log_off": { + "message": "Ne čuvaj log" + }, + "filtering_log_preserve_log_on": { + "message": "Čuvaj log" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Ne pokazuj ponovo" + }, + "filtering_log_privacy_applied_rules": { + "message": "Zaštita od praćenja primenjena" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data zaglavlje otklonjeno" + }, + "filtering_log_search_string": { + "message": "Traži" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Pretraga u karticama" + }, + "filtering_log_send_not_track": { + "message": "Ne-prati zaglavlje poslato" + }, + "filtering_log_status_allowed": { + "message": "Stavljeno na belu listu." + }, + "filtering_log_status_blocked": { + "message": "Blokirano" + }, + "filtering_log_status_modified": { + "message": "Izmenjeno" + }, + "filtering_log_status_processed": { + "message": "Obrađeno" + }, + "filtering_log_stealth_rules": { + "message": "Pravila za zaštitu od praćenja: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Izvor zahteva" + }, + "filtering_log_tag_request_status": { + "message": "Status filtriranja" + }, + "filtering_log_tag_request_type": { + "message": "Vrsta zahteva" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Dozvoljeni i odblokirani zahtevi" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blokirani zahtevi" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stylesheets" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Zahtevi prve strane" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokumenti i poddokumenti" + }, + "filtering_log_tag_tooltip_img": { + "message": "Slike" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skripte" + }, + "filtering_log_tag_tooltip_media": { + "message": "Medijum" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Izmenjeni zahtevi" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fontovi, pingovi, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Zahtevi obrađeni bez filtriranja" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Zahtevi treće strane" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Zahtevi na koje utiču korisnička pravila" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpZahtevi i prikupljeni zahtevi" + }, + "filtering_log_title": { + "message": "Dnevnik prećišćavanja" + }, + "filtering_menu_open_filters": { + "message": "Prilagodi" + }, + "filtering_modal_add_rule": { + "message": "Dodaj" + }, + "filtering_modal_allow_title": { + "message": "Dodavanje dozvoljenog pravila" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Primenjeno pravilo | Primenjena pravila | Primenjenih pravila" + }, + "filtering_modal_apply_domains": { + "message": "Primeni na sve Veb lokacije" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Pretpostavljeno pravilo: | Pretpostavljena pravila: | Pretpostavljena pravila:" + }, + "filtering_modal_block": { + "message": "Blokiraj" + }, + "filtering_modal_block_again": { + "message": "Blokiraj ponovo" + }, + "filtering_modal_block_title": { + "message": "Dodavanje pravila blokiranja" + }, + "filtering_modal_converted_to": { + "message": "Pretvoreno u:" + }, + "filtering_modal_cookie": { + "message": "Kolačić:" + }, + "filtering_modal_copied": { + "message": "Kopirano" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiraj u ostavu" + }, + "filtering_modal_declarative_rule": { + "message": "DNR pravilo:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Dodavanje izuzetka" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Status filtriranja" + }, + "filtering_modal_hide_full_element": { + "message": "Sakrij pun element" + }, + "filtering_modal_hide_full_rule": { + "message": "Sakrij puno pravilo" + }, + "filtering_modal_hide_full_url": { + "message": "Sakrij pun URL" + }, + "filtering_modal_important": { + "message": "Daj viši prioritet pravilu" + }, + "filtering_modal_info_title": { + "message": "Zahtevaj detalje" + }, + "filtering_modal_open_in_new_tab": { + "message": "Otvorite u novoj kartici" + }, + "filtering_modal_options_desc": { + "message": "Opcije" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Originalno pravilo: | Originalna pravila: | Originalna pravila:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Šta bi trebalo dozvoliti" + }, + "filtering_modal_patterns_desc_block": { + "message": "Šta bi trebalo blokirati" + }, + "filtering_modal_preview_request_button": { + "message": "Preview" + }, + "filtering_modal_preview_title": { + "message": "Preview" + }, + "filtering_modal_privacy": { + "message": "Zaštita od praćenja" + }, + "filtering_modal_remove_allowlist": { + "message": "Ukloni sa bele liste" + }, + "filtering_modal_remove_param": { + "message": "Ukloni parametar zahteva" + }, + "filtering_modal_remove_user": { + "message": "ukloni iz korisničkog filtera" + }, + "filtering_modal_rule": { + "message": "Pravilo:" + }, + "filtering_modal_rule_text_desc": { + "message": "Pravilo" + }, + "filtering_modal_rules": { + "message": "Pravila:" + }, + "filtering_modal_show_full_element": { + "message": "Prikaži pun element" + }, + "filtering_modal_show_full_rule": { + "message": "Prikaži puno pravilo" + }, + "filtering_modal_show_full_url": { + "message": "Prikaži pun URL" + }, + "filtering_modal_source": { + "message": "Izvor" + }, + "filtering_modal_status_text_desc": { + "message": "Stanje" + }, + "filtering_modal_status_text_error": { + "message": "Nije uspelo učitavanje pregleda. Pokušajte ponovo" + }, + "filtering_modal_status_text_loading": { + "message": "Učitavam..." + }, + "filtering_modal_third_party": { + "message": "Primeni samo na zahteve treće strane" + }, + "filtering_modal_type": { + "message": "Vrsta" + }, + "filtering_modal_unblock": { + "message": "Odblokiraj" + }, + "filtering_refresh_tab_short": { + "message": "Osveži" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Osveži stranicu" + }, + "filtering_table_action": { + "message": "Radnja" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Ništa nije pronađeno. \u003Creset>Onemogući filtere\u003C/reset> ili \u003Crefresh>ponovo učitaj stranicu\u003C/refresh> da biste videli zapise loga" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Otvoreni detalji" + }, + "filtering_table_rule": { + "message": "Pravilo filterisanja" + }, + "filtering_table_source": { + "message": "Izvor" + }, + "filtering_table_status": { + "message": "Stanje" + }, + "filtering_table_type": { + "message": "Vrsta" + }, + "filtering_type_all": { + "message": "Sve" + }, + "filtering_type_other": { + "message": "Ostalo" + }, + "filters_download_loading": { + "message": "Molimo Vas da sačekate dok se baza filtera učitava..." + }, + "filters_download_title": { + "message": "Baza filtera se učitava..." + }, + "fullscreen_user_rules_title": { + "message": "Korisnički filter" + }, + "group_description_adblocking": { + "message": "Konfigurišite blokiranje oglasa ovde kako biste se nosili sa dosadnim banerima, iskačućim prozorima, video reklamama i slično, jednom zauvek" + }, + "group_description_annoyances": { + "message": "Uklonite iskačuće prozore i druga dosadna obaveštenja kao što su obaveštenja o kolačićima" + }, + "group_description_custom": { + "message": "Stvorite vaše filtere i fino filtrirajte veb kako vam se sviđa." + }, + "group_description_lang": { + "message": "Ne ograničavajte sebe — blokirajte oglase na veb sajtovima na svim jezicima" + }, + "group_description_miscellaneous": { + "message": "Više postavki za još jaču kontrolu vašeg surfovanja sa AdGuard-om" + }, + "group_description_security": { + "message": "Zaštitite se od zlonamernog softvera, fišinga i drugih pretnji na mreži" + }, + "group_description_social": { + "message": "Sakrijte neželjene dugmiće \"Sviđa mi se\"/\"Podeli\" i druge vidžete društvenih mreža" + }, + "group_description_stealth": { + "message": "Zaštitite svoj identitet i osetljive lične informacije od hiljada mrežnih praćenja blokiranjem svih poznatih popularnih metoda praćenja" + }, + "name": { + "message": "AdGuard blokator reklama" + }, + "opera_search_permission_dont_show": { + "message": "Ne pojavjuj se više" + }, + "opera_search_permission_go_to_settings": { + "message": "Idi na Podešavanja" + }, + "opera_search_permission_warning": { + "message": "Da biste blokirali reklame u pretrazi, omogućite pristup rezultatima stranice pretrage u podešavanjima browser-a" + }, + "options_about": { + "message": "O programu" + }, + "options_about_libs": { + "message": "Korišćene biblioteke" + }, + "options_about_title": { + "message": "AdGuard proširenje za preglednike" + }, + "options_about_update_available": { + "message": "Verzija %version% je dostupna. Biće preuzeta i instalirana automatski." + }, + "options_about_version": { + "message": "Verzija" + }, + "options_acknowledgment": { + "message": "Priznanja" + }, + "options_add_custom_filter": { + "message": "Dodaj prilagođeni filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Dodaj" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Provera vaših filtera..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL je vratio web stranicu umesto liste filtera. Molimo navedite direktan link do fajla filtera." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Pokušajte ponovo ili obratite se podršci" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Nije uspelo dodavanje prilagođenog filtera" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Ime filtera:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Pouzdano" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Neke filter pravila mogu značajno promeniti vaše iskustvo pregledanja i ugroziti vašu privatnost. Obavezno koristite filtere samo od pouzdanih razvijatelja" + }, + "options_add_custom_filter_modal_title": { + "message": "Dodaj prilagođeni filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Dostigli ste granicu aktivnih ugrađenih pravila. Vaš preglednik je izmenio listu aktivnih ugrađenih filtera. Broj omogućених filtera je promenjen sa %expected% na %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Dostigli ste ograničenje pregledača za aktivna ugrađena pravila. Pregledač je smanjio listu aktivnih ugrađenih filtera sa %expected% na %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš pretraživač ograničava \u003Cexternal-link>Neke vrste pravila\u003C/external-link>. Da biste primenili sva pravila, omogućite \u003Cb>Dozvoli korisničke skripte\u003C/b> u vašem pretraživaču \u003Csettings-link>Podešavanja proširenja\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Lista dozvoljenih" + }, + "options_allowlist_alert_invert": { + "message": "Lista dozvoljenih je okrenuta. Reklame su blokirane samo na sajtovima koji dodati na listu." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Zaustavi invertovanje\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ne blokira reklame i trakere na\nveb-sajtovima sa liste" + }, + "options_allowlist_invalid_entries": { + "message": "Da biste sačuvali, zadržite samo domene ili URL-ove. Ovo treba ispraviti: %entries%" + }, + "options_allowlist_invert": { + "message": "Okreni listu dozvoljenih" + }, + "options_allowlist_invert_desc": { + "message": "Blokira oglase i tragače samo na vebsajtovima sa liste" + }, + "options_allowlist_leave_subtitle": { + "message": "Vaše promene u dozvoljenoj listi će biti izgubljene" + }, + "options_allowlist_menu": { + "message": "Radnje liste dozvoljenih" + }, + "options_anonymized_usage_data_description": { + "message": "Šalje anonimne podatke o korišćenju ekstenzije AdGuard-u. \u003Cbutton>Saznaj više\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Shvatam" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Ovi podaci uključuju:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Imena dugmadi na koje kliknete" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Nazivi ekrana s kojima se interagirate" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Identifikatori sesije" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ovi podaci su anonimni i koriste se samo interno. Nikada ih ne delimo sa trećim licima" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Potrebni su nam ovi podaci da bismo analizirali i poboljšali funkcionalnost AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Podaci o korištenju proširenja" + }, + "options_anonymized_usage_data_title": { + "message": "Pošaljite anonimizirane podatke o korištenju proširenja" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Prilagođen filter je već dodat" + }, + "options_antibanner_custom_group": { + "message": "Prilagođeno" + }, + "options_antibanner_custom_group_description": { + "message": "Omogućava da dodate filtere iz fajla ili URL-a" + }, + "options_antibanner_rules_count": { + "message": "Pravila: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Ažurirano: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blokiraj pretraživačke oglase i samopromociju vebsajtova" + }, + "options_block_acceptable_ads_desc": { + "message": "Blokira oglase u rezultatima pretrage i samopromociju vebsajtova. \u003Ca>Saznaj više\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Da biste blokirali kolačiće, postavite životni vek na 0" + }, + "options_block_known_trackers_description": { + "message": "Blokira tragače i veb analitiku pomoću filtera AdGuard zaštita od praćenja" + }, + "options_block_known_trackers_title": { + "message": "Blokiraj praćenja" + }, + "options_check_update_progress": { + "message": "Proveravam..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Očisti" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Sva statistika o korišćenju podataka biće trajno obrisana" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Očisti statistiku?" + }, + "options_clipboard_permission_warning": { + "message": "Da biste kopirali i zalepili pravila, dozvolite AdGuard-u pristup clipboard-u. \u003Ca>Dozvoli\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Šalje anonimne statistike o korišćenju filtera za oglase AdGuard-u. \u003Ca>Saznaj više\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Pomoći u razvoju AdGuard filtera" + }, + "options_coming_soon": { + "message": "Stiže uskoro" + }, + "options_confirm_modal_cancel_button": { + "message": "Otkaži" + }, + "options_copyright": { + "message": "Sva prava zadržana." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Da biste koristili prilagođene filtere, omogućite \u003Cb>Dozvoli korisničke skripte\u003C/b> u vašem pretraživaču \u003Csettings-link>Podešavanja proširenja\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Da biste koristili prilagođene filtere, omogućite \u003Cb>Režim za programere\u003C/b> u vašem pretraživaču \u003Csettings-link>Podešavanja proširenja\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Preuzmite AdGuard za Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Preuzmite AdGuard za Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Preuzmite AdGuard za Windows" + }, + "options_desktop_app_promo_description": { + "message": "Aplikacije kao što su Spotify, Discord ili Zoom i dalje mogu prikazivati reklame i\npratiti vašu\naktivnost" + }, + "options_desktop_app_promo_subdescription": { + "message": "Naša desktop aplikacija može vas zaštititi od\nnjih" + }, + "options_desktop_app_promo_title": { + "message": "Ekstenzija štiti samo\npregledač" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Vaš pretraživač ograničava \u003Cexternal-link>Neke vrste pravila\u003C/external-link>. Da biste primenili sva pravila, omogućite \u003Cb>Režim za programere\u003C/b> u vašem pretraživaču \u003Csettings-link>Podešavanja proširenja\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blokira WebRTC koji može otkriti vašu pravu IP adresu čak i ako koristite proxy ili VPN. Neki mesindžeri, platforme za striming ili igrice mogu prestati pravilno da rade" + }, + "options_disable_webrtc_title": { + "message": "Blokiraj WebRTC" + }, + "options_discuss": { + "message": "Raspravljaj o AdGuard-u" + }, + "options_do_you_like_question": { + "message": "Dali volite AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Napusti način rada sa prozorima" + }, + "options_editor_indicator_saved": { + "message": "Sačuvano" + }, + "options_editor_indicator_saving": { + "message": "Čuvam..." + }, + "options_editor_leave_cancel": { + "message": "Nazad na uređivanje" + }, + "options_editor_leave_confirm": { + "message": "Da, napusti" + }, + "options_editor_leave_title": { + "message": "Napustiti bez čuvanja?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Otvori uređivač u novom prozoru" + }, + "options_editor_save": { + "message": "Sačuvaj" + }, + "options_editor_save_error": { + "message": "Nije uspelo da se sačuvaju promene. Pokušajte ponovo ili kontaktirajte podršku" + }, + "options_empty_custom_filter": { + "message": "Još uvek nemate nijedan prilagođeni filter" + }, + "options_enable_autodetect_filter": { + "message": "Automatski uključi najpogodnije filtere" + }, + "options_enable_autodetect_filter_desc": { + "message": "Detektuje jezik veb sajta i aktivira odgovarajuće filtere" + }, + "options_export_settings": { + "message": "Izvezi postavke" + }, + "options_filters": { + "message": "Filteri" + }, + "options_filters_annoyances_consent_description": { + "message": "Ako želite da omogućite jedan ili više filtera za nerviranje, oni blokiraju elemente koji nisu povezani sa sadržajem website-a ili su povezani, ali su iritantni za vaše korisničko iskustvo. Vlasnici website-a mogu smatrati ove elemente obaveznim: ukoliko ih blokirate, možda kršite njihove uslove; neka funkcionalnost website-a možda neće biti dostupna ili neće ispravno raditi. Razumete i slažete se da ste isključivo odgovorni za poštovanje uslova korišćenja website-a koje posećujete i da AdGuard nije odgovoran za vaše pridržavanje uslova korišćenja website-a koje posećujete koristeći naše proizvode." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Omogući" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Početna stranica" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Za detalje o tome šta AdGuardovi filteri za nerviranje blokiraju, pogledajte \u003Ca>Politiku filtera\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Omogućite filtere?" + }, + "options_filters_annoyances_consent_title": { + "message": "Pažljivo pročitajte pre nego što omogućite filtere za nerviranje" + }, + "options_filters_back_button": { + "message": "Vrati se" + }, + "options_filters_empty_title": { + "message": "Ništa nije pronađeno" + }, + "options_filters_enabled": { + "message": "Uključeno:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% i %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% i %more% još" + }, + "options_filters_enabled_per_group": { + "message": "Omogućen: %current% od %total%" + }, + "options_filters_filter_link": { + "message": "Idi na početnu stranicu" + }, + "options_filters_filter_tags": { + "message": "Filter oznake" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Označili ste ovaj filter kao pouzdan." + }, + "options_filters_filter_updated": { + "message": "ažurirano:" + }, + "options_filters_filter_version": { + "message": "verzija:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Ukupno pravila: %num%" + }, + "options_filters_last_checked": { + "message": "Poslednja provera: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Svi filteri" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Isključeno" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Uključeno" + }, + "options_filters_no_enabled": { + "message": "Nema uključenih filtera" + }, + "options_filters_of_group": { + "message": "Filteri grupe \"%groupName%\"" + }, + "options_filters_search": { + "message": "Traži" + }, + "options_filters_search_filter": { + "message": "Traži filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Ako potpuno blokirate ove kolačiće, neke web stranice mogu da se pokvare ili prestanu da rade" + }, + "options_first_party_desc": { + "message": "Sprečava sajtove da pamte vaše podatke, kao što su akreditive za prijavljivanje i jezičke preferencije, ograničavanjem životnog veka kolačića prvog lica" + }, + "options_first_party_title": { + "message": "Obriši kolačiće prvog lica (ne preporučuje se)" + }, + "options_general_settings": { + "message": "Opšta podešavanja" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Sprečite treće strane da znaju koje veb sajtove posećujete" + }, + "options_hide_referrer_title": { + "message": "Sakrij Referer od trećih lica" + }, + "options_hide_search_queries_desc": { + "message": "Skriva vaše pretrage sa veb lokacija koje posećujete putem rezultata pretraživača" + }, + "options_hide_search_queries_title": { + "message": "Sakriti unose pretrage" + }, + "options_import_configuration_applying_subtitle": { + "message": "Zamena trenutnih postavki sa uvezenim. Filtriranje je onemogućeno tokom uvoza" + }, + "options_import_configuration_applying_title": { + "message": "Uvozim..." + }, + "options_import_configuration_confirm_button": { + "message": "Uvezi" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Uvezena podešavanja će zameniti trenutne. Ostala podešavanja neće biti pogođena" + }, + "options_import_configuration_confirm_title": { + "message": "Uvezi postavke" + }, + "options_import_configuration_error_button": { + "message": "Zatvori" + }, + "options_import_configuration_error_subtitle": { + "message": "Molimo Vas da proverite vezu za uvoz i pokušajte ponovo. Ako to ne pomogne, obratite se podršci" + }, + "options_import_configuration_error_title": { + "message": "Uvoz postavki nije uspeo" + }, + "options_import_configuration_success_button": { + "message": "Zatvori" + }, + "options_import_configuration_success_subtitle": { + "message": "Podešavanja su uspešno uvezena" + }, + "options_import_configuration_success_title": { + "message": "Spremno je" + }, + "options_import_settings": { + "message": "Uvezi postavke" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Obrni" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklame i trackeri će biti blokirani samo na web stranicama sa allowlist-e" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Obrnuti listu dozvoljenih?" + }, + "options_leave_feedback": { + "message": "Ostavite povratne informacije" + }, + "options_lifetime_minutes": { + "message": "Životni vek, u minutima" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Dostigli ste granicu regex pravila koja je dodao korisnik. %maximum% od %current% regex pravila je omogućeno." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Dostigli ste granicu korisnički dodatih regex pravila. %maximum% od %current% pravila je omogućeno. Da biste dodali nova regex pravila, uklonite neka postojeća" + }, + "options_limits_warning_dynamic_rules": { + "message": "Dostigli ste granicu pravila koja je dodao korisnik. %maximum% od %current% pravila je omogućeno." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Dostigli ste granicu korisnički dodatih pravila. %maximum% od %current% pravila je omogućeno. Da biste dodali nova pravila, uklonite neka postojeća" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Dostigli ste granicu nesigurnih pravila koja je dodao korisnik. %maximum% od %current% nesigurna pravila su omogućena." + }, + "options_limits_warning_static_filters": { + "message": "Dostigli ste granicu aktivnih ugrađenih filtera. %maximum% od %current% filtera je omogućeno. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtere." + }, + "options_limits_warning_static_filters_browser": { + "message": "Dostigli ste ograničenje pregledača za aktivne ugrađene filtere. %maximum% od %current% filtera je omogućeno. Da biste aktivirali nove filtere, onemogućite neke ugrađene" + }, + "options_limits_warning_static_regex_rules": { + "message": "Dostigli ste granicu aktivnih ugrađenih regex pravila. %maximum% od %current% regex pravila je omogućeno. Da biste aktivirali nova pravila, onemogućite neka ugrađena pravila." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Dostigli ste granicu aktivnih ugrađenih regula regex-a. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtere" + }, + "options_limits_warning_static_rules": { + "message": "Dostigli ste granicu aktivnih ugrađenih pravila. %maximum% od %current% pravila je omogućeno. Da biste aktivirali nova pravila, onemogućite neka ugrađena pravila." + }, + "options_limits_warning_static_rules_browser": { + "message": "Dostigli ste ograničenje pregledača za aktivna ugrađena pravila. Da biste aktivirali nova pravila, onemogućite neke ugrađene filtere" + }, + "options_loader_applying_changes": { + "message": "Primenjivanje promena..." + }, + "options_miscellaneous_settings": { + "message": "Dodatne postavke" + }, + "options_modified_first_party_cookie": { + "message": "Kolačići prvog lica su izmenjeni" + }, + "options_modified_third_party_cookie": { + "message": "Kolačići trećeg lica su izmenjeni" + }, + "options_nav_better_than_extension": { + "message": "Zašto je AdGuard pun program bolji od proširenja?" + }, + "options_nav_compare": { + "message": "Uporedi" + }, + "options_navigation": { + "message": "Navigacija" + }, + "options_open_changelog": { + "message": "Dnevnik promena" + }, + "options_open_log": { + "message": "Otvori dnevnik filtriranja" + }, + "options_popup_call_to_action": { + "message": "Unesi validan URL ili putanju do fajla filtera u polje iznad." + }, + "options_popup_check_false_description": { + "message": "Greška tokom dodavanja prilagođenih filtera." + }, + "options_popup_check_false_title": { + "message": "Greška" + }, + "options_popup_checking_filter": { + "message": "Provera vaših filtera" + }, + "options_popup_description": { + "message": "Bićete pretplaćeni na taj filter." + }, + "options_popup_filter_description": { + "message": "Opis:" + }, + "options_popup_filter_homepage": { + "message": "Početna:" + }, + "options_popup_filter_rules_count": { + "message": "Broj pravila:" + }, + "options_popup_filter_title": { + "message": "Naziv:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Verzija:" + }, + "options_popup_import_error_file_description": { + "message": "Nešto je pošlo naopako." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Da biste uvezli ovu datoteku sa postavkama, dozvolite AdGuard-u da promeni vaše postavke vezane za privatnost." + }, + "options_popup_import_error_title": { + "message": "Uvoz postavki nije uspeo" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Oznaka datoteke mora biti %extension%" + }, + "options_popup_import_success_title": { + "message": "Podešavanja su importovana" + }, + "options_popup_next_button": { + "message": "Sledeće" + }, + "options_popup_subscribe_button": { + "message": "Pretplati se" + }, + "options_popup_title_placeholder": { + "message": "Unesi ime filtera" + }, + "options_popup_trusted_filter_description": { + "message": "Pouzdani filteri mogu koristiti moćna pravila filtriranja što može biti opasno. Ne označavajte ovu kućicu osim ako potpuno niste sigurni u to." + }, + "options_popup_trusted_filter_title": { + "message": "Pouzdano" + }, + "options_popup_try_again_button": { + "message": "Pokušaj ponovo" + }, + "options_popup_update_error": { + "message": "Preuzimanje ažuriranja nije uspelo. Molimo vas da pokušate kasnije." + }, + "options_popup_update_filter": { + "message": "je ažuriran." + }, + "options_popup_update_filters": { + "message": "je ažurirano." + }, + "options_popup_update_not_found": { + "message": "Vaši filteri su ažurni" + }, + "options_popup_update_title_error": { + "message": "Greška prilikom ažuriranja filtera" + }, + "options_popup_updating_filters": { + "message": "Ažuriram filtere..." + }, + "options_popup_url_placeholder": { + "message": "Unesi URL ili putanju" + }, + "options_popup_url_title": { + "message": "Nova pretplata filtera" + }, + "options_popup_version_update_changelog_text": { + "message": "Šta je novo u ovoj verziji?" + }, + "options_popup_version_update_description_major": { + "message": "Ovo je veliko ažuriranje proširenja koje donosi mnogo novih mogućnosti kao i veliki broj unapređenja." + }, + "options_popup_version_update_description_minor": { + "message": "Ova verzija uglavnom sadrži ispravljanje grešaka i mala unapređenja." + }, + "options_popup_version_update_disable_notification": { + "message": "Isključi obaveštenja" + }, + "options_popup_version_update_offer": { + "message": "Jeste li znali da mogućnosti AdGuard-a nisu ograničene samo na ovaj preglednik?" + }, + "options_popup_version_update_offer_button_text": { + "message": "Saznajte više" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard je ažuriran na verziju %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Omogućava WebRTC-u da koristi strožu politiku IP adrese kako bi pomogao da vaša stvarna IP adresa ostane skrivena kada koristite proxy ili VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Sprečite curenje IP adrese putem WebRTC-a" + }, + "options_privacy": { + "message": "Zaštita od praćenja" + }, + "options_privacy_desc": { + "message": "Štiti vašu aktivnost na mreži i lične podatke od Web tragača" + }, + "options_privacy_policy": { + "message": "Politika privatnosti" + }, + "options_privacy_title": { + "message": "Zaštita od praćenja" + }, + "options_rate_us_cta": { + "message": "Ocenite nas" + }, + "options_remove_client_data_desc": { + "message": "Blokirajte Google Chrome da ne šalje informacije o svojoj verziji i izmenama na Google domene" + }, + "options_remove_client_data_title": { + "message": "Ukloni zaglavlje X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Ukloni" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Ukloni ovaj filter?" + }, + "options_report_bug": { + "message": "Prijavi grešku" + }, + "options_reset_settings": { + "message": "Vrati postavke na podrazumevano" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Resetuj" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Sva podešavanja biće vraćena na podrazumevane vrednosti" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Vrati postavke na podrazumevano?" + }, + "options_reset_settings_done": { + "message": "Postavke su vraćene na podrazumevano" + }, + "options_reset_settings_error": { + "message": "Greška prilikom vraćanja postavki na podrazumevane vrednosti" + }, + "options_reset_stats": { + "message": "Očisti statistiku" + }, + "options_reset_stats_done": { + "message": "Statistika je izbrisana." + }, + "options_rule_limits": { + "message": "Ograničenja pravila" + }, + "options_rule_limits_description": { + "message": "Chrome ograničava broj pravila koja mogu biti primenjena" + }, + "options_rule_limits_dynamic": { + "message": "Dinamička pravila" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex pravila — uključena u pravila dodata od strane korisnika" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Nebezbedna dinamička pravila (koriste se za neke napredne modifikatore, kao što su $$redirect ili $$cookie) — uključeno u pravila koja je dodao korisnik" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Pravila koja je dodao korisnik, kao što su \u003Cuser_rules>korisnička pravila\u003C/user_rules>, \u003Callowlist>sa liste dozvoljenih sajtova\u003C/allowlist> i \u003Ccustom_filters>prilagođeni filteri\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Pravila koja dodaju korisnici, kao što su \u003Cuser_rules>Pravila korišćenja\u003C/user_rules> I \u003Callowlist>Sajtovi na listi dozvoljenih\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% od %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statična pravila" + }, + "options_rule_limits_static_rules_all": { + "message": "Pravila iz \u003Ca>ugrađenih filtera\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex pravila — uključena u gore navedeno" + }, + "options_rule_limits_static_rulesets": { + "message": "Statička pravila" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Ugrađeni filteri\u003C/a>, kao što su blokiranje dosadnih oglasa ili filteri specifični za jezik" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Opcija 3. Ako ste zadovoljni trenutno omogućenim podrazumevnim filtrima, \u003Ca>zatvorite ovo upozorenje.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Opcija 3. Ako ste zadovoljni trenutno omogućenim podrazumevanim filterom, \u003Ca>zatvorite ovo upozorenje.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Opcija 1. Iz preglednika izbrišite nepotrebna proširenja za blokiranje oglasa. Da biste ponovo aktivirali filtere pomenute u odeljku \"Filteri omogućeni pre ažuriranja\", kliknite na \u003Ca>ponovo aktivirajte filtere.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Opcija 2. Instalirajte aplikaciju AdGuard Ad Blokator reklama: nema ograničenja za pravila filtriranja. \u003Ca>Nabavite AdGuard aplikaciju\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Vaši mogući postupci" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Ograničenje aktivnih ugrađenih pravila je prekoračeno nakon ažuriranja ili dodavanja novog proširenja. Po Manifestu V3, vaš Chrome preglednik je reagovao onemogućavanjem svih ugrađenih filtera proširenja osim podrazumevanih." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Šta se desilo?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filteri omogućeni pre ažuriranja" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filteri su sada omogućeni" + }, + "options_rule_limits_warning_title": { + "message": "Preglednik je izmenio listu aktivnih filtera" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Uklonite ograničenja pravila i dobijte proširenu zaštitu koja radi u svim pregledačima" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Instalirajte desktop aplikaciju" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Idi na filtere" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Upravljajte ekstenzijama" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Ekstenzije pregledača dele isti limit pravila. Uklanjanje drugih blokatora reklama može osloboditi više pravila za AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Uklonite druge blokatore reklama" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Omogućite filtere koji su vam potrebni. Filteri specifični za jezik i privatnost mogu koristiti mnogo pravila" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Pregledajte dostupne filtere" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Evo šta možete da uradite" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Dostignut je limit — neki filteri su onemogućeni" + }, + "options_rule_syntax": { + "message": "Sintaksa pravila" + }, + "options_safebrowsing_enabled": { + "message": "Zaštita od fišinga i štetnog softvera" + }, + "options_safebrowsing_enabled_desc": { + "message": "Upozorava na maliciozne i fišing vebsajtove koristeći AdGuard modul Sigurno pregledanje. \u003Ca>Pročitaj više\u003C/a>" + }, + "options_select_theme": { + "message": "Teme" + }, + "options_select_update_period_12h": { + "message": "12 sati" + }, + "options_select_update_period_1h": { + "message": "1 sat" + }, + "options_select_update_period_24h": { + "message": "24 sata" + }, + "options_select_update_period_48h": { + "message": "48 sati" + }, + "options_select_update_period_6h": { + "message": "6 sati" + }, + "options_select_update_period_default": { + "message": "Podrazumevano" + }, + "options_select_update_period_disabled": { + "message": "Onemogućeno" + }, + "options_send_not_track_desc": { + "message": "Pošaljite \u003Cgpc>Globalnu kontrolu privatnosti\u003C/gpc> i \u003Cdnt>Ne prati\u003C/dnt> signale na veb sajtovima koje posećujete" + }, + "options_send_not_track_title": { + "message": "Pitajte sajtove da me ne prate" + }, + "options_set_update_interval": { + "message": "Automatsko ažuriranje filtera" + }, + "options_set_update_interval_desc": { + "message": "Održava filtere ažurnim za efikasnije blokiranje oglasa" + }, + "options_settings": { + "message": "AdGuard postavke" + }, + "options_share_settings": { + "message": "Podeliti postavke" + }, + "options_show_adguard_full_version_title": { + "message": "Prikaži informacije naAdGuard punoj verziji" + }, + "options_show_app_updated_notification": { + "message": "Obavesti o ažuriranju proširenja" + }, + "options_show_blocked_ads_count_title": { + "message": "Prikaži brojblokiranih reklama na ikonici AdGuard dodatka" + }, + "options_show_context_menu_title": { + "message": "Dodaj AdGuard stavku u kontekstni meni preglednika" + }, + "options_site": { + "message": "Zvanična stranica" + }, + "options_skip_to_main_content": { + "message": "Pređi na glavni sadržaj" + }, + "options_stealth_general_title": { + "message": "General" + }, + "options_stealth_miscellaneous_title": { + "message": "Razno" + }, + "options_stealth_tracking_methods_title": { + "message": "Načini praćenja" + }, + "options_strip_tracking_params_description": { + "message": "Uklanja parametre praćenja iz URL adresa stranice pomoću AdGuard FILTERA ZA PRAĆENJE URL adrese" + }, + "options_strip_tracking_params_title": { + "message": "Uklanjanje parametara praćenja iz URL adresa" + }, + "options_stripped_tracking_parameters": { + "message": "Parametri praćenja uklonjeni" + }, + "options_theme_selector_dark": { + "message": "Tamna" + }, + "options_theme_selector_light": { + "message": "Svetla" + }, + "options_theme_selector_system": { + "message": "Sistemski podrazumevano" + }, + "options_third_party_block_cookies_warning": { + "message": "Ako potpuno blokirate ove kolačiće, možda ćete morati da se ponovo prijavite na neke web stranice ili da se suočite sa drugim problemima povezanim s kolačićima" + }, + "options_third_party_desc": { + "message": "Sprečava oglašivače da prate vaše ponašanje na više strana ograničavanjem životnog veka third-party cookies" + }, + "options_third_party_title": { + "message": "Obrisati kolačiće treće strane" + }, + "options_update_antibanner_filters": { + "message": "Proveri da li postoje nadogradnje filtera" + }, + "options_use_optimized_filters": { + "message": "Koristi optimizovane filtere" + }, + "options_use_optimized_filters_desc": { + "message": "Koristi kraće verzije filtera sa samo najpopularnijim pravilima za uštedu saobraćaja. Pogodniji za mobilne pretraživače" + }, + "options_user_rules_clear_search": { + "message": "Obriši pretragu" + }, + "options_user_rules_create_rule": { + "message": "Kreiraj pravilo" + }, + "options_user_rules_delete_all": { + "message": "Izbriši sve" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Sva korisnička pravila će biti trajno izbrisana" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Želite li da izbrišete sve?" + }, + "options_user_rules_delete_all_success": { + "message": "Sva korisnička pravila izbrisana" + }, + "options_user_rules_delete_rule": { + "message": "ukloni iz korisničkog filtera" + }, + "options_user_rules_deleted_notification": { + "message": "Pravilo korisnika obrisano:" + }, + "options_user_rules_description_key": { + "message": "Vaša pravila za blokiranje i deblokiranje oglasa ili celih veb sajtova" + }, + "options_user_rules_edit_rule": { + "message": "Uredi pravilo" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Idi na uređivač" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Vaša pravila će se ovde pojaviti nakon što ga zatvorite" + }, + "options_user_rules_editor_stub_title": { + "message": "Uređivač otvoren u drugom prozoru" + }, + "options_user_rules_empty_placeholder": { + "message": "Još nema pravila" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Isticanje pravila…" + }, + "options_user_rules_import_error": { + "message": "Nije uspelo uvoz korisničkih pravila. Pokušajte ponovo" + }, + "options_user_rules_import_success": { + "message": "Korisnička pravila uspešno uvezena" + }, + "options_user_rules_menu": { + "message": "Radnje korisničkih pravila" + }, + "options_user_rules_no_match": { + "message": "Ništa nije pronađeno" + }, + "options_user_rules_search_placeholder": { + "message": "Traži" + }, + "options_user_rules_switch_to_editor": { + "message": "Prebaci na prikaz editora" + }, + "options_user_rules_switch_to_list": { + "message": "Prebaci na prikaz liste" + }, + "options_user_rules_undo": { + "message": "Opozovi" + }, + "options_userfilter": { + "message": "Korisnički filter" + }, + "options_userfilter_description_key": { + "message": "Ovde možete dodati vaša pravila. OVo se preporučuje za napredne korisnike koji su upoznati sa HTML/CSS. pročitajte \u003Ca>uputstvo za pravila filtera\u003C/a> da saznate kako da napišete vaša pravila filtera." + }, + "options_userfilter_export": { + "message": "Izvezi" + }, + "options_userfilter_import": { + "message": "Uvezi" + }, + "options_userfilter_leave_subtitle": { + "message": "Vaše promene u pravilima će biti izgubljene" + }, + "options_userfilter_line_break": { + "message": "Prelom reda" + }, + "options_userfilter_line_break_off": { + "message": "Prelom reda: Onemogućen" + }, + "options_userfilter_line_break_on": { + "message": "Prelom reda: Uključen" + }, + "options_userfilter_subtitle_key": { + "message": "Omogućava dodavanje sopstvenih pravila filtriranja" + }, + "popup_abuse_site": { + "message": "Pošaljite žalbu u vezi ove stranice" + }, + "popup_adguard_footer_title": { + "message": "Zaštitite svoj mobilni uređaj" + }, + "popup_adguard_for_android": { + "message": "AdGuard za Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard za iOS" + }, + "popup_block_site_ads_option": { + "message": "Blokirajte oglase ručno" + }, + "popup_get_system_wide_protection": { + "message": "Nabavite zaštitu sistema" + }, + "popup_header_cta_link": { + "message": "Kako poboljšati zaštitu" + }, + "popup_header_update_filters": { + "message": "Proveri da li postoje ažuriranja filtera" + }, + "popup_limits_exceeded_warning": { + "message": "Vaš preglednik je izmenio listu aktivnih ugrađenih filtera" + }, + "popup_open_filtering_log": { + "message": "Otvori dnevnik filtriranja" + }, + "popup_open_settings": { + "message": "Otvoriti AdGuard postavke" + }, + "popup_protection_button": { + "message": "AdGuard zaštita" + }, + "popup_reset_page_user_rules": { + "message": "Izbriši korisnička pravila za ovu veb stranicu" + }, + "popup_resume_protection_button": { + "message": "Nastavi" + }, + "popup_security_report": { + "message": "Izveštaj o bezbednosti stranice" + }, + "popup_site_exception_information": { + "message": "Filtriranje je isključeno zato što može ometati rad ove stranice." + }, + "popup_site_filtering_state_disabled": { + "message": "Zaštita je isključena" + }, + "popup_site_filtering_state_disabling": { + "message": "Onemogućavanje zaštite..." + }, + "popup_site_filtering_state_enabled": { + "message": "Zaštita je uključena" + }, + "popup_site_filtering_state_enabling": { + "message": "Uključujem zaštitu..." + }, + "popup_site_filtering_state_loading": { + "message": "Učitavam..." + }, + "popup_site_filtering_state_paused": { + "message": "Zaštita je pauzirana" + }, + "popup_site_filtering_state_pausing": { + "message": "Pauziram zaštitu..." + }, + "popup_site_filtering_state_resuming": { + "message": "Nastavljam zaštitu..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Bezbedna stranica" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "za sve Web lokacije" + }, + "popup_statistics_all_categories": { + "message": "Sve" + }, + "popup_statistics_category_advertising": { + "message": "Oglasi" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Kategorija statistike" + }, + "popup_statistics_category_other": { + "message": "Ostalo" + }, + "popup_statistics_category_social_media": { + "message": "Društvene mreže" + }, + "popup_statistics_category_trackers": { + "message": "Praćenja" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Avg" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 sata" + }, + "popup_statistics_time_label": { + "message": "Statistički vremenski period" + }, + "popup_statistics_time_month": { + "message": "30 dana" + }, + "popup_statistics_time_week": { + "message": "7 dana" + }, + "popup_statistics_time_year": { + "message": "1 godina" + }, + "popup_statistics_total": { + "message": "Ukupno" + }, + "popup_statistics_week_days_fri": { + "message": "Pet" + }, + "popup_statistics_week_days_mon": { + "message": "Pon" + }, + "popup_statistics_week_days_sat": { + "message": "Sub" + }, + "popup_statistics_week_days_sun": { + "message": "Ned" + }, + "popup_statistics_week_days_thu": { + "message": "Čet" + }, + "popup_statistics_week_days_tue": { + "message": "Uto" + }, + "popup_statistics_week_days_wed": { + "message": "Sre" + }, + "popup_switch_button": { + "message": "Zaštita za trenutni sajt" + }, + "popup_tab_actions": { + "message": "Radnje" + }, + "popup_tab_blocked_all_count": { + "message": "Ukupno blokirano: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blokirano: %num%" + }, + "popup_tab_current_website": { + "message": "Trenutni sajt" + }, + "popup_tab_statistics": { + "message": "Statistike" + }, + "popup_tabs": { + "message": "Kartice" + }, + "popup_tooltip_loading": { + "message": "Učitavam..." + }, + "popup_tooltip_protection_disabled": { + "message": "Zaštita isključena." + }, + "popup_tooltip_protection_enabled": { + "message": "Zaštita je uključena" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Neka pravila se ne primenjuju" + }, + "popup_tooltip_update_available": { + "message": "Ažuriranje dostupno" + }, + "post_install_loading": { + "message": "Učitavanje proširenja..." + }, + "short_name": { + "message": "AdGuard blokator reklama" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Prekoračeno ograničenje pravila u AdGuard dodatku za pretraživač. Proverite svoje filtere i onemogućite one koji vam nisu potrebni" + }, + "text_collapser_hide_default": { + "message": "Sakrij pun tekst" + }, + "text_collapser_show_default": { + "message": "Prikaži pun tekst" + }, + "update_available_desc": { + "message": "Za efikasno blokiranje oglasa, držite svoje ekstenzije i filtere ažurnim" + }, + "update_available_title": { + "message": "Dostupna su ažuriranja" + }, + "update_available_update_btn": { + "message": "Ažuriraj" + }, + "update_check": { + "message": "Proveri ažuriranja" + }, + "update_checking_in_progress": { + "message": "Proveravam ažuriranja..." + }, + "update_failed_text": { + "message": "Nije moguće završiti ažuriranje" + }, + "update_failed_try_again_btn": { + "message": "Pokušaj ponovo" + }, + "update_installing_in_progress_desc": { + "message": "Ekstenzija će se ponovo pokrenuti nakon ažuriranja" + }, + "update_installing_in_progress_title": { + "message": "Ažuriranje ekstenzije i filtera..." + }, + "update_not_needed": { + "message": "Vaša ekstenzija i filteri su ažurirani" + }, + "update_success_text": { + "message": "Ekstenzija i filteri su ažurirani" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sv/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sv/messages.json new file mode 100644 index 0000000..182aefb --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/sv/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% har aktiverats automatiskt." + }, + "alert_popup_filter_enabled_title": { + "message": "Autoinkoppling av filter" + }, + "background_tab_title": { + "message": "Bakgrundsflik" + }, + "blocking_pages_advanced_button": { + "message": "Avancerad" + }, + "blocking_pages_btn_go_back": { + "message": "Återgå" + }, + "blocking_pages_btn_proceed": { + "message": "Fortsätt ändå" + }, + "blocking_pages_malware": { + "message": "Den här webbsidan, på \u003Cstrong>%host%\u003C/strong>, har rapporterats innehålla skadlig kod och har därför, i enlighet med dina säkerhetsinställningar, blockerats." + }, + "blocking_pages_more_info_button": { + "message": "Ytterligare information" + }, + "blocking_pages_page_title": { + "message": "Nekad åtkomst" + }, + "blocking_pages_phishing": { + "message": "Denna webbsida på \u003Cstrong>%host%\u003C/strong> har rapporterats som en nätfiskesida och har blockerats baserat på dina säkerhetsinställningar." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard har förhindrat inläsning av sidan till följd av följande filterregel:" + }, + "blocking_pages_rule_header_title": { + "message": "Blockerad av AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "Sidans åtkomst har blockerats av AdGuard" + }, + "clear_button_title": { + "message": "Rensa" + }, + "close_button_title": { + "message": "Stäng" + }, + "context_block_site_ads": { + "message": "Blockera annonser manuellt" + }, + "context_complaint_website": { + "message": "Rapportera ett problem" + }, + "context_disable_protection": { + "message": "Pausa AdGuardskyddet" + }, + "context_enable_protection": { + "message": "Återuppta AdGuard-skydd" + }, + "context_open_log": { + "message": "Filtreringslogg" + }, + "context_open_settings": { + "message": "AdGuard-inställningar" + }, + "context_security_report": { + "message": "Kontrollera webbplatsens säkerhet" + }, + "context_site_exception": { + "message": "Den här webbplatsen finns i Vita listan" + }, + "context_site_filtering_disabled": { + "message": "AdGuard kan inte filtrera denna sida" + }, + "context_site_filtering_off": { + "message": "Inaktivera filtrering på denna webbplats" + }, + "context_site_filtering_on": { + "message": "Aktivera filtrering på denna webbplats" + }, + "context_site_protection_disabled": { + "message": "AdGuardskyddet är pausat" + }, + "context_update_antibanner_filters": { + "message": "Kontrollera om det finns uppdateringar" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Oöverträffat tillägg för blockering av annonser och popups. Blockerar annonser på Facebook, YouTube och på alla andra webbplatser." + }, + "filtering_clear_log_events": { + "message": "Rensa loggen" + }, + "filtering_log_actions_menu": { + "message": "Filtreringsloggåtgärder" + }, + "filtering_log_assumed_rule_description": { + "message": "Detta är en antagen regel. För detaljer, se vår \u003Ca>Kunskapsbas\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP-förfrågningsmetod" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP-statuskod" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Begäran från tredje part" + }, + "filtering_log_details_modal_back_button": { + "message": "Tillbaka till förfrågan" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Förfina" + }, + "filtering_log_details_modal_try_again": { + "message": "Försök igen" + }, + "filtering_log_filter_allowed": { + "message": "Vitlistade" + }, + "filtering_log_filter_blocked": { + "message": "Blockerade" + }, + "filtering_log_filter_modified": { + "message": "Modified" + }, + "filtering_log_filter_regular": { + "message": "Standard" + }, + "filtering_log_filter_user_rules": { + "message": "Användarregler" + }, + "filtering_log_hide_referrer": { + "message": "Referer dold för tredjeparter" + }, + "filtering_log_hide_search_queries": { + "message": "Dina sökningar döljs" + }, + "filtering_log_in_allowlist": { + "message": "Hemsidan är tillåten" + }, + "filtering_log_modified_rules": { + "message": "Ändrade regler: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Ja, spara" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Detta val kan avsevärt öka minnesanvändningen" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Spara logg?" + }, + "filtering_log_preserve_log_off": { + "message": "Spara inte logg" + }, + "filtering_log_preserve_log_on": { + "message": "Spara logg" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Visa inte igen" + }, + "filtering_log_privacy_applied_rules": { + "message": "Spårningsskydd tillämpat" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data header borttagen" + }, + "filtering_log_search_string": { + "message": "Sök" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Sök i tabbar" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track header skickade" + }, + "filtering_log_status_allowed": { + "message": "Vitlistade" + }, + "filtering_log_status_blocked": { + "message": "Blockerade" + }, + "filtering_log_status_modified": { + "message": "Modified" + }, + "filtering_log_status_processed": { + "message": "Utförda" + }, + "filtering_log_stealth_rules": { + "message": "Spårningsskyddsregler: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Begär ursprung" + }, + "filtering_log_tag_request_status": { + "message": "Filtreringsstatus" + }, + "filtering_log_tag_request_type": { + "message": "Förfrågningstyp" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Endast tillåtna och oblockerade förfrågningar" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Blockerade förfrågningar" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stilmallar" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Förfrågningar från första part" + }, + "filtering_log_tag_tooltip_html": { + "message": "Dokument och underdokument" + }, + "filtering_log_tag_tooltip_img": { + "message": "Bilder" + }, + "filtering_log_tag_tooltip_js": { + "message": "Skript" + }, + "filtering_log_tag_tooltip_media": { + "message": "Media" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Endast modifierade förfrågningar" + }, + "filtering_log_tag_tooltip_other": { + "message": "Typsnitt, pingar, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Förfrågningar som behandlades utan filtrering" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Förfrågningar från tredje part" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Förfrågningar påverkade av användarregler" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests och hämtningsförfrågningar" + }, + "filtering_log_title": { + "message": "Filtreringslogg" + }, + "filtering_menu_open_filters": { + "message": "Anpassa" + }, + "filtering_modal_add_rule": { + "message": "Lägg till" + }, + "filtering_modal_allow_title": { + "message": "Lägg till tillståndsregel" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Tillämpad regel | Tillämpade regler" + }, + "filtering_modal_apply_domains": { + "message": "Ansök på alla webbplatser" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Antagen regel: | Antagna regler:" + }, + "filtering_modal_block": { + "message": "Blockera" + }, + "filtering_modal_block_again": { + "message": "Blockera igen" + }, + "filtering_modal_block_title": { + "message": "Lägg till blockeringsregel" + }, + "filtering_modal_converted_to": { + "message": "Konverterat till:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Kopierad" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Kopiera till urklipp" + }, + "filtering_modal_declarative_rule": { + "message": "DNR-regel:" + }, + "filtering_modal_element": { + "message": "Element:" + }, + "filtering_modal_exception_title": { + "message": "Lägg till ett undantag" + }, + "filtering_modal_filter": { + "message": "Filter" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtreringsstatus" + }, + "filtering_modal_hide_full_element": { + "message": "Dölj hela elementet" + }, + "filtering_modal_hide_full_rule": { + "message": "Dölj hela regeln" + }, + "filtering_modal_hide_full_url": { + "message": "Dölj fullständig URL" + }, + "filtering_modal_important": { + "message": "Öka prioriteten för regeln" + }, + "filtering_modal_info_title": { + "message": "Förfrågningsdetaljer" + }, + "filtering_modal_open_in_new_tab": { + "message": "Öppna i en ny flik" + }, + "filtering_modal_options_desc": { + "message": "Alternativ" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Original regel: | Original regler:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Vad bör tillåtas" + }, + "filtering_modal_patterns_desc_block": { + "message": "Vad bör blockeras" + }, + "filtering_modal_preview_request_button": { + "message": "Förhandsgranska" + }, + "filtering_modal_preview_title": { + "message": "Förhandsgranskning" + }, + "filtering_modal_privacy": { + "message": "Spårningsskydd" + }, + "filtering_modal_remove_allowlist": { + "message": "Ta bort från Vitlista" + }, + "filtering_modal_remove_param": { + "message": "Ta bort frågeparametrar" + }, + "filtering_modal_remove_user": { + "message": "Radera regel" + }, + "filtering_modal_rule": { + "message": "Filtreringsregel:" + }, + "filtering_modal_rule_text_desc": { + "message": "Regel" + }, + "filtering_modal_rules": { + "message": "Regler:" + }, + "filtering_modal_show_full_element": { + "message": "Visa hela elementet" + }, + "filtering_modal_show_full_rule": { + "message": "Visa hela regeln" + }, + "filtering_modal_show_full_url": { + "message": "Visa fullständig URL" + }, + "filtering_modal_source": { + "message": "Webbkälla" + }, + "filtering_modal_status_text_desc": { + "message": "Status" + }, + "filtering_modal_status_text_error": { + "message": "Det gick inte att ladda förhandsgranskning. Försök igen" + }, + "filtering_modal_status_text_loading": { + "message": "Läser in..." + }, + "filtering_modal_third_party": { + "message": "Tillämpa på endast tredjepartsförfrågningar" + }, + "filtering_modal_type": { + "message": "Typ" + }, + "filtering_modal_unblock": { + "message": "Avblockera" + }, + "filtering_refresh_tab_short": { + "message": "Uppdatera" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Uppdatera sidan" + }, + "filtering_table_action": { + "message": "Åtgärd" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Inget hittades. \u003Creset>Inaktivera filter\u003C/reset> eller \u003Crefresh>ladda om sidan\u003C/refresh> för att visa loggposter" + }, + "filtering_table_filter": { + "message": "Filter" + }, + "filtering_table_open_details": { + "message": "Öppna detaljer" + }, + "filtering_table_rule": { + "message": "Filtreringregel" + }, + "filtering_table_source": { + "message": "Webbkälla" + }, + "filtering_table_status": { + "message": "Status" + }, + "filtering_table_type": { + "message": "Kodtyp" + }, + "filtering_type_all": { + "message": "Allt" + }, + "filtering_type_other": { + "message": "Övrigt" + }, + "filters_download_loading": { + "message": "Var vänlig vänta medan filterdatabasen laddar..." + }, + "filters_download_title": { + "message": "Filterdatabasen laddar..." + }, + "fullscreen_user_rules_title": { + "message": "Användarregler" + }, + "group_description_adblocking": { + "message": "Konfigurera annonsblockering här för att hantera irriterande banners, popup-fönster, videoannonser och liknande, en gång för alla" + }, + "group_description_annoyances": { + "message": "Ta bort popup-fönster och andra irriterande meddelanden som cookie-notiser" + }, + "group_description_custom": { + "message": "Skapa dina egna filter för att finjustera webbfiltreringen efter dina önskemål." + }, + "group_description_lang": { + "message": "Begränsa inte dig själv – blockera annonser på webbplatser på alla språk" + }, + "group_description_miscellaneous": { + "message": "Fler inställningar för att konfigurera din webbsurfning med AdGuard ännu mer" + }, + "group_description_security": { + "message": "Skydda dig mot skadlig kod, nätfiske och andra hot på nätet" + }, + "group_description_social": { + "message": "Dölja oönskade \"Gilla\"/\"Dela\"-knappar och andra widgetar för sociala medier" + }, + "group_description_stealth": { + "message": "Skydda din identitet och känsliga personuppgifter från tusentals spårare på nätet genom att blockera alla kända populära spårningsmetoder" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Visa inte igen" + }, + "opera_search_permission_go_to_settings": { + "message": "Gå till Inställningar" + }, + "opera_search_permission_warning": { + "message": "För att blockera sökannonser, tillåt åtkomst till sökresultatsidor i webbläsarens inställningar" + }, + "options_about": { + "message": "Om" + }, + "options_about_libs": { + "message": "Använda bibliotek" + }, + "options_about_title": { + "message": "AdGuard Webbläsartillägg" + }, + "options_about_update_available": { + "message": "Version %version% är tillgänglig. Den kommer att laddas ner och installeras automatiskt." + }, + "options_about_version": { + "message": "Version" + }, + "options_acknowledgment": { + "message": "Erkännanden" + }, + "options_add_custom_filter": { + "message": "Lägg till eget filter" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Lägg till" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Kontrollerar ditt filter..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL:en returnerade en webbsida istället för en filterlista. Ange en direkt länk till filterfilen." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Försök igen eller kontakta support" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Det gick inte att lägga till anpassat filter" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filternamn:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Tillförlitliga" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Betrodda filter kan använda kraftfulla regelmodifierare – se till att du använder ett filter från betrodda utvecklare" + }, + "options_add_custom_filter_modal_title": { + "message": "Lägg till anpassat filter" + }, + "options_all_limits_exceeded_warning": { + "message": "Du har nått gränsen för aktiva inbyggda regler. Din webbläsare har ändrat listan över aktiva inbyggda filter. Antalet aktiverade filter har ändrats från %expected% till %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Du har nått din webbläsares gräns för aktiva inbyggda regler. Din webbläsare har minskat listan över aktiva inbyggda filter från %expected% till %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Din webbläsare begränsar \u003Cexternal-link>vissa typer av regler\u003C/external-link>. För att tillämpa alla regler, aktivera \u003Cb>Tillåt användarskript\u003C/b> i din webbläsares \u003Csettings-link>tilläggsinställningar\u003C/settings-link>" + }, + "options_allowlist": { + "message": "Vitlista" + }, + "options_allowlist_alert_invert": { + "message": "Tillåtelselistan är inverterad. Annonser blockeras bara på webbplatser som läggs till i den." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Sluta invertera\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard blockerar inte annonser och spårare på webbplatser från listan" + }, + "options_allowlist_invalid_entries": { + "message": "För att spara, behåll endast domäner eller URL:er. Dessa behöver åtgärdas: %entries%" + }, + "options_allowlist_invert": { + "message": "Invertera Vitlistan" + }, + "options_allowlist_invert_desc": { + "message": "Blockerar annonser och spårare endast på webbplatser i tillåtelselistan" + }, + "options_allowlist_leave_subtitle": { + "message": "Dina ändringar av vitlistan kommer att gå förlorade" + }, + "options_allowlist_menu": { + "message": "Åtgärder på tillåtelselistan" + }, + "options_anonymized_usage_data_description": { + "message": "Skickar anonym statistik om extension-användning till AdGuard. \u003Cbutton>Läs mer\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Uppfattat" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Dessa data omfattar:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Namnen på knapparna du klickar på" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Skärmmän namn du interagerar med" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Sessionsidentifierare" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Dessa uppgifter är anonyma och används endast internt. Vi delar det aldrig med tredje part" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Vi behöver denna information för att analysera och förbättra funktionaliteten hos AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Användningsdata för tillägg" + }, + "options_anonymized_usage_data_title": { + "message": "Skicka anonymiserad data för användning av tillägg" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Det här egna filtret har redan blivit tillagt" + }, + "options_antibanner_custom_group": { + "message": "Egna" + }, + "options_antibanner_custom_group_description": { + "message": "Låter dig lägga till filter från en fil eller URL" + }, + "options_antibanner_rules_count": { + "message": "Regler: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Uppdaterad: %date%" + }, + "options_block_acceptable_ads": { + "message": "Blockera sökannonser och webbplatsers egenreklam" + }, + "options_block_acceptable_ads_desc": { + "message": "Blockerar annonser i sökresultat och självreklam för webbplatser. \u003Ca>Läs mer\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "För att blockera cookies, sätt livslängden till 0" + }, + "options_block_known_trackers_description": { + "message": "Blockerar spårare och webbanalys med hjälp av AdGuards spårningsskyddsfilter" + }, + "options_block_known_trackers_title": { + "message": "Blockera spårare" + }, + "options_check_update_progress": { + "message": "Kontrollerar..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Rensa" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "All statistik om dataanvändning kommer att raderas permanent" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Rensa statistik?" + }, + "options_clipboard_permission_warning": { + "message": "För att kopiera och klistra in regler, tillåt AdGuard att komma åt urklippet. \u003Ca>Tillåt\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Skickar anonym statistik om användning av annonsfilter till AdGuard. \u003Ca>Läs mer\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Hjälp till att förbättra AdGuards filter" + }, + "options_coming_soon": { + "message": "Kommer snart" + }, + "options_confirm_modal_cancel_button": { + "message": "Avbryt" + }, + "options_copyright": { + "message": "Alla rättigheter förbehållna." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "För att använda anpassade filter, aktivera \u003Cb>Tillåt användarskript\u003C/b> i webbläsarens \u003Csettings-link>tilläggsinställningar\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "För att använda anpassade filter, aktivera \u003Cb>Utvecklarläge\u003C/b> i webbläsarens \u003Csettings-link>tilläggsinställningar\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "Hämta AdGuard för Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Hämta AdGuard för Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Hämta AdGuard för Windows" + }, + "options_desktop_app_promo_description": { + "message": "Appar som Spotify, Discord eller Zoom kan fortfarande visa annonser och spåra din aktivitet" + }, + "options_desktop_app_promo_subdescription": { + "message": "Vår desktop app kan skydda dig från dem" + }, + "options_desktop_app_promo_title": { + "message": "Tillägget skyddar endast webbläsaren" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Din webbläsare begränsar \u003Cexternal-link>vissa typer av regler\u003C/external-link>. För att tillämpa alla regler, aktivera \u003Cb>Utvecklarläge\u003C/b> i din webbläsares \u003Csettings-link>tilläggsinställningar\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "Blockerar WebRTC som kan läcka din riktiga IP-adress även om du använder en proxy eller VPN. Vissa meddelandeappar, streamingplattformar eller spel kan sluta fungera korrekt" + }, + "options_disable_webrtc_title": { + "message": "Blockera WebRTC" + }, + "options_discuss": { + "message": "Diskutera AdGuard" + }, + "options_do_you_like_question": { + "message": "Gillar du AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Avsluta fönsterläget" + }, + "options_editor_indicator_saved": { + "message": "Sparad" + }, + "options_editor_indicator_saving": { + "message": "Sparar..." + }, + "options_editor_leave_cancel": { + "message": "Tillbaka till redigering" + }, + "options_editor_leave_confirm": { + "message": "Ja, lämna" + }, + "options_editor_leave_title": { + "message": "Lämna utan att spara?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Öppna redigerare i ett nytt fönster" + }, + "options_editor_save": { + "message": "Spara" + }, + "options_editor_save_error": { + "message": "Misslyckades att spara ändringarna. Försök igen eller kontakta support." + }, + "options_empty_custom_filter": { + "message": "Du har inga anpassade filter än" + }, + "options_enable_autodetect_filter": { + "message": "Aktivera de mest lämpade filtren automatiskt" + }, + "options_enable_autodetect_filter_desc": { + "message": "Upptäcker språket på webbplatsen och aktiverar lämpliga filter" + }, + "options_export_settings": { + "message": "Exportera inställningar" + }, + "options_filters": { + "message": "Filter" + }, + "options_filters_annoyances_consent_description": { + "message": "Du är på väg att aktivera ett eller flera irritationsfilter. De blockerar element som antingen inte är relaterade till webbplatsinnehållet eller relaterade men irriterande för din användarupplevelse. Webbplatsägare kan betrakta dessa element som obligatoriska: om du blockerar dem kan du bryta mot deras villkor; viss funktionalitet på webbplatser kan vara otillgänglig eller kanske inte fungerar korrekt. Du förstår och samtycker till att du är ensam ansvarig för att följa användarvillkoren för de webbplatser du besöker och att AdGuard inte ansvarar för din efterlevnad av användarvillkoren för de webbplatser du besöker med våra produkter." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Aktivera" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Hemsida" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Mer information om vad AdGuards irritationsfilter blockerar finns i \u003Ca>Filterpolicy\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Aktivera filter?" + }, + "options_filters_annoyances_consent_title": { + "message": "Läs noga innan du aktiverar irritationsfilter" + }, + "options_filters_back_button": { + "message": "Återgå" + }, + "options_filters_empty_title": { + "message": "Inget hittades" + }, + "options_filters_enabled": { + "message": "Aktiverat:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% och %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% och %more% till" + }, + "options_filters_enabled_per_group": { + "message": "Aktiverad: %current% av %total%" + }, + "options_filters_filter_link": { + "message": "Gå till hemsidan" + }, + "options_filters_filter_tags": { + "message": "Filtrera taggar" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Du har valt att lita på det här filtret." + }, + "options_filters_filter_updated": { + "message": "updaterad:" + }, + "options_filters_filter_version": { + "message": "version:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Totalt antal regler: %num%" + }, + "options_filters_last_checked": { + "message": "Senast kontrollerad: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Alla filter" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Inaktiverad" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Inkopplat" + }, + "options_filters_no_enabled": { + "message": "Inget filter aktiverat" + }, + "options_filters_of_group": { + "message": "Filter från gruppen \"%groupName%\"" + }, + "options_filters_search": { + "message": "Sök" + }, + "options_filters_search_filter": { + "message": "Sök filter" + }, + "options_first_party_block_cookies_warning": { + "message": "Om du blockerar dessa cookies kan vissa webbplatser gå sönder eller sluta fungera" + }, + "options_first_party_desc": { + "message": "Förhindrar webbplatser från att komma ihåg dina uppgifter, såsom dina inloggningsuppgifter och språkinställningar, genom att begränsa livslängden för förstapartscookies" + }, + "options_first_party_title": { + "message": "Ta bort förstapartscookies (rekommenderas ej)" + }, + "options_general_settings": { + "message": "Allmänt" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Förhindra tredjeparter från att veta vilken webbplats du besöker" + }, + "options_hide_referrer_title": { + "message": "Dölj Referrer från tredjepart" + }, + "options_hide_search_queries_desc": { + "message": "Döljer dina sökningar från webbplatser som besöks via sökmotorresultat" + }, + "options_hide_search_queries_title": { + "message": "Dölj sökfrågor" + }, + "options_import_configuration_applying_subtitle": { + "message": "Ersätter dina nuvarande inställningar med de importerade. Filtreringen är inaktiverad under importen" + }, + "options_import_configuration_applying_title": { + "message": "Importerar..." + }, + "options_import_configuration_confirm_button": { + "message": "Importera" + }, + "options_import_configuration_confirm_subtitle": { + "message": "De importerade inställningarna kommer att ersätta dina nuvarande. Andra inställningar påverkas inte" + }, + "options_import_configuration_confirm_title": { + "message": "Importera inställningar" + }, + "options_import_configuration_error_button": { + "message": "Stäng" + }, + "options_import_configuration_error_subtitle": { + "message": "Kontrollera importlänken och försök igen. Om det inte hjälper, kontakta supporten" + }, + "options_import_configuration_error_title": { + "message": "Det gick inte att importera inställningar" + }, + "options_import_configuration_success_button": { + "message": "Stäng" + }, + "options_import_configuration_success_subtitle": { + "message": "Inställningarna har importerats" + }, + "options_import_configuration_success_title": { + "message": "Allt är klart" + }, + "options_import_settings": { + "message": "Importera inställningar" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Invertera" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Annonser och spårare kommer endast att blockeras på webbplatser från Vitlistan" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Invertera Vitlistan?" + }, + "options_leave_feedback": { + "message": "Lämna feedback" + }, + "options_lifetime_minutes": { + "message": "Livslängd, minuter" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Du har nått gränsen för användartillagda regex-regler. %maximum% av %current% regex-regler är aktiverade." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Du har nått gränsen för användartillagda regex-regler. %maximum% av %current% regler är aktiverade. För att lägga till nya regex-regler, ta bort några befintliga" + }, + "options_limits_warning_dynamic_rules": { + "message": "Du har nått gränsen för användartillagda regler. %maximum% av %current% regler är aktiverade." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Du har nått gränsen för användartillagda regler. %maximum% av %current% regler är aktiverade. För att lägga till nya regler, ta bort några befintliga" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Du har nått gränsen för användartillagda osäkra regler. %maximum% av %current% osäkra regler är aktiverade." + }, + "options_limits_warning_static_filters": { + "message": "Du har nått gränsen för aktiva inbyggda filter. %maximum% av %current% filter är aktiverade. För att aktivera nya regler, inaktivera några inbyggda filter." + }, + "options_limits_warning_static_filters_browser": { + "message": "Du har nått din webbläsares gräns för aktiva inbyggda filter. %maximum% av %current% filter är aktiverade. För att aktivera nya filter, inaktivera några inbyggda." + }, + "options_limits_warning_static_regex_rules": { + "message": "Du har nått gränsen för aktiva inbyggda regex-regler. %maximum% av %current% regex-regler är aktiverade. För att aktivera nya regler, inaktivera några inbyggda filter." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Du har nått gränsen för aktiva inbyggda regex-regler. För att aktivera nya regler, inaktivera några inbyggda filter" + }, + "options_limits_warning_static_rules": { + "message": "Du har nått gränsen för aktiva inbyggda regler. %maximum% av %current% regler är aktiverade. För att aktivera nya regler, inaktivera några inbyggda filter." + }, + "options_limits_warning_static_rules_browser": { + "message": "Du har nått din webbläsares gräns för aktiva inbyggda regler. För att aktivera nya regler, inaktivera några inbyggda filter" + }, + "options_loader_applying_changes": { + "message": "Tillämpar ändringar..." + }, + "options_miscellaneous_settings": { + "message": "Ytterligare inställningar" + }, + "options_modified_first_party_cookie": { + "message": "Tredjepartscookie modiferad" + }, + "options_modified_third_party_cookie": { + "message": "Tredjepartscookie modifierad" + }, + "options_nav_better_than_extension": { + "message": "Varför är AdGuard-appen bättre än tillägget?" + }, + "options_nav_compare": { + "message": "Jämför" + }, + "options_navigation": { + "message": "Navigering" + }, + "options_open_changelog": { + "message": "Ändringslogg" + }, + "options_open_log": { + "message": "Öppna filtreringslogg" + }, + "options_popup_call_to_action": { + "message": "Skriv in en giltig URL eller sökväg till filen i fältet ovan." + }, + "options_popup_check_false_description": { + "message": "Fel under tillförsel av ditt anpassade filter." + }, + "options_popup_check_false_title": { + "message": "Fel" + }, + "options_popup_checking_filter": { + "message": "Kontrollerar ditt filter" + }, + "options_popup_description": { + "message": "Du kommer att abonnera på det här filtret." + }, + "options_popup_filter_description": { + "message": "Beskrivning" + }, + "options_popup_filter_homepage": { + "message": "Hemsida:" + }, + "options_popup_filter_rules_count": { + "message": "Antal regler:" + }, + "options_popup_filter_title": { + "message": "Namn:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Version:" + }, + "options_popup_import_error_file_description": { + "message": "Någonting gick snett" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "För att importera denna inställningsfil, tillåt AdGuard att ändra dina sekretessrelaterade inställningar." + }, + "options_popup_import_error_title": { + "message": "Det gick inte att importera inställningar" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Filtillägget måste vara %extension%" + }, + "options_popup_import_success_title": { + "message": "Inställningar importerade" + }, + "options_popup_next_button": { + "message": "Nästa" + }, + "options_popup_subscribe_button": { + "message": "Prenumerera" + }, + "options_popup_title_placeholder": { + "message": "Skriv in ett namn på filtret" + }, + "options_popup_trusted_filter_description": { + "message": "Tillförlitliga filter kan använda starka ändringar i filtreringsregler som kan vara farliga i fel händer. Sätt in en bock i rutan om du inte är helt säker." + }, + "options_popup_trusted_filter_title": { + "message": "Tillförlitliga" + }, + "options_popup_try_again_button": { + "message": "Försök igen" + }, + "options_popup_update_error": { + "message": "Det gick inte att hämta uppdateringar. Vänligen försök igen senare." + }, + "options_popup_update_filter": { + "message": "uppdaterades." + }, + "options_popup_update_filters": { + "message": "uppdaterades." + }, + "options_popup_update_not_found": { + "message": "Dina filter är uppdaterade" + }, + "options_popup_update_title_error": { + "message": "Fel vi uppdatering av filter" + }, + "options_popup_updating_filters": { + "message": "Uppdaterar filter..." + }, + "options_popup_url_placeholder": { + "message": "Skriv in URL eller sökväg" + }, + "options_popup_url_title": { + "message": "Ny filterprenumeration" + }, + "options_popup_version_update_changelog_text": { + "message": "Klicka här för att se hela Ändringsloggen." + }, + "options_popup_version_update_description_major": { + "message": "Det här är en större uppdatering med flera nya funktioner och förbättringar." + }, + "options_popup_version_update_description_minor": { + "message": "Uppdateringen innehåller mestadels buggfixar och mindre förbättringar." + }, + "options_popup_version_update_disable_notification": { + "message": "Avaktivera aviseringar" + }, + "options_popup_version_update_offer": { + "message": "Om du är som vi, besatt av integritet, prova AdGuards premiumversioner för Windows, Mac, iOS eller Android för att hitta ännu fler funktioner." + }, + "options_popup_version_update_offer_button_text": { + "message": "LÄS MER" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard-tillägget har uppdaterats till version %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Gör att WebRTC använder en striktare IP-adresspolicy för att hålla din riktiga IP-adress dold när du använder en proxy eller VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Förhindra IP-adress läckor via WebRTC" + }, + "options_privacy": { + "message": "Spårningsskydd" + }, + "options_privacy_desc": { + "message": "Blockerar spårare och analyser" + }, + "options_privacy_policy": { + "message": "Integritetspolicy" + }, + "options_privacy_title": { + "message": "Spårningsskydd" + }, + "options_rate_us_cta": { + "message": "Betygsätt det" + }, + "options_remove_client_data_desc": { + "message": "Blockera Google Chrome från att skicka information om sin version och ändringar till Google-domäner" + }, + "options_remove_client_data_title": { + "message": "Ta bort X-Client-Data header" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Ta bort" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Ta bort detta filter?" + }, + "options_report_bug": { + "message": "Rapportera ett fel" + }, + "options_reset_settings": { + "message": "Återställ inställningar" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Återställ" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Alla inställningar återställs till sina standardvärden" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Återställ inställningar?" + }, + "options_reset_settings_done": { + "message": "Inställningarna har återställts" + }, + "options_reset_settings_error": { + "message": "Fel vid återställning av inställningar" + }, + "options_reset_stats": { + "message": "Rensa statistik" + }, + "options_reset_stats_done": { + "message": "Statistik har nollställts" + }, + "options_rule_limits": { + "message": "Regelgränser" + }, + "options_rule_limits_description": { + "message": "Chrome begränsar antalet regler som kan tillämpas" + }, + "options_rule_limits_dynamic": { + "message": "Dynamiska regler" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex-regler — ingår i användartillagda regler" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Osäkra dynamiska regler (används för vissa avancerade modifierare, t.ex. $$redirect eller $$cookie) — ingår i regler som lagts till av användare" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Användartillagda regler, såsom \u003Cuser_rules>användarregler\u003C/user_rules>, \u003Callowlist>vitlistade webbplatser\u003C/allowlist> och \u003Ccustom_filters>anpassade filter\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Användartillagda regler, såsom \u003Cuser_rules>användarregler\u003C/user_rules> och \u003Callowlist>tillåtna webbplatser\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% av %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Statiska regler" + }, + "options_rule_limits_static_rules_all": { + "message": "Regler från \u003Ca>inbyggda filter\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex-regler (ingår i ovanstående" + }, + "options_rule_limits_static_rulesets": { + "message": "Statiska regeluppsättningar" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Inbyggda filter\u003C/a>, som Blockera störande annonser eller Språkspecifika filter" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Alternativ 3. Om du är nöjd med de för närvarande aktiverade standardfiltren, \u003Ca>stäng denna varning.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Alternativ 3. Om du är nöjd med det för närvarande aktiverade standardfiltret, \u003Ca>stäng denna varning.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Alternativ 1. Ta bort onödiga annonsblockerande tillägg från din webbläsare. För att återaktivera filtren som nämns i avsnittet \"Filter aktiverade före uppdateringen\", klicka på \u003Ca>återaktivera filter.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Alternativ 2. Installera AdGuard Ad Blocker-appen: den har inga begränsningar för filtreringsregler. \u003Ca>Skaffa AdGuard app\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Dina möjliga åtgärder" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Gränsen för aktiva inbyggda regler överskreds efter en uppdatering eller efter att ett nytt tillägg lagts till. Enligt Manifest V3 reagerade din Chrome-webbläsare genom att inaktivera alla tilläggets inbyggda filter utom de som är standard." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Vad hände?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Filter aktiverade före uppdateringen" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filter aktiverade nu" + }, + "options_rule_limits_warning_title": { + "message": "Webbläsaren har ändrat listan över aktiva filter" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Ta bort regelbegränsningarna och få utökat skydd som fungerar i alla webbläsare" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Installera skrivbordsappen" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Gå till filter" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Hantera tillägg" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Webbläsartillägg delar samma regelgräns. Att ta bort andra annonsblockerare kan frigöra fler regler för AdGuard-webbläsartillägget" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Ta bort andra annonsblockerare" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Aktivera de filter du behöver. Språkspecifika filter och integritetsfilter kan använda många regler" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Granska tillgängliga filter" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Här är vad du kan göra" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Gränsen nådd — vissa filter har inaktiverats" + }, + "options_rule_syntax": { + "message": "Syntax" + }, + "options_safebrowsing_enabled": { + "message": "Phishing- och skadeprogramsskydd" + }, + "options_safebrowsing_enabled_desc": { + "message": "Varnar för skadliga och nätfiske-webbplatser med hjälp av AdGuard-modulen Surfsäkerhet. \u003Ca>Läs mer\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 timmar" + }, + "options_select_update_period_1h": { + "message": "1 timme" + }, + "options_select_update_period_24h": { + "message": "24 timmar" + }, + "options_select_update_period_48h": { + "message": "48 timmar" + }, + "options_select_update_period_6h": { + "message": "6 timmar" + }, + "options_select_update_period_default": { + "message": "Standard" + }, + "options_select_update_period_disabled": { + "message": "Frånkopplad" + }, + "options_send_not_track_desc": { + "message": "Skicka \u003Cgpc>Global Privacy Control\u003C/gpc> och \u003Cdnt>Do Not Track\u003C/dnt>-signaler till de webbplatser du besöker" + }, + "options_send_not_track_title": { + "message": "Be webbplatser att inte spåra mig" + }, + "options_set_update_interval": { + "message": "Uppdatera filter automatiskt" + }, + "options_set_update_interval_desc": { + "message": "Håller filtren uppdaterade för mer effektiv annonsblockering" + }, + "options_settings": { + "message": "AdGuard Inställningar" + }, + "options_share_settings": { + "message": "Dela inställningar" + }, + "options_show_adguard_full_version_title": { + "message": "Visa information om fullversionen av AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Avisera om tilläggsuppdateringar" + }, + "options_show_blocked_ads_count_title": { + "message": "Visa antalet blockerade annonser på ikonen för AdGuard-tillägget" + }, + "options_show_context_menu_title": { + "message": "Lägg till AdGuard-objekt i webbläsarens snabbmeny" + }, + "options_site": { + "message": "Officiell webbplats" + }, + "options_skip_to_main_content": { + "message": "Gå till huvudinnehåll" + }, + "options_stealth_general_title": { + "message": "Allmänt" + }, + "options_stealth_miscellaneous_title": { + "message": "Annat" + }, + "options_stealth_tracking_methods_title": { + "message": "Spårningsmetoder" + }, + "options_strip_tracking_params_description": { + "message": "Tar bort spårningsparametrar från sidors URL-adresser med AdGuards URL-spårningsfilter" + }, + "options_strip_tracking_params_title": { + "message": "Ta bort spårningsparametrar från webbadresser" + }, + "options_stripped_tracking_parameters": { + "message": "Spårningsparametrar borttagna" + }, + "options_theme_selector_dark": { + "message": "Mörkt" + }, + "options_theme_selector_light": { + "message": "Ljust" + }, + "options_theme_selector_system": { + "message": "Systemstandard" + }, + "options_third_party_block_cookies_warning": { + "message": "Om du blockerar dessa cookies kan du behöva logga in på vissa webbplatser igen eller stöta på andra cookie-relaterade problem" + }, + "options_third_party_desc": { + "message": "Förhindrar att annonsörer spårar ditt beteende på flera sidor genom att begränsa livslängden för tredjepartscookies" + }, + "options_third_party_title": { + "message": "Ta bort tredjepartscookies" + }, + "options_update_antibanner_filters": { + "message": "Kontrollera filteruppdateringar" + }, + "options_use_optimized_filters": { + "message": "Använd optimerade filter" + }, + "options_use_optimized_filters_desc": { + "message": "Använder kortare versioner av filter med endast de mest populära reglerna för att spara trafik. Bättre lämpad för mobila webbläsare" + }, + "options_user_rules_clear_search": { + "message": "Rensa sökningen" + }, + "options_user_rules_create_rule": { + "message": "Skapa regel" + }, + "options_user_rules_delete_all": { + "message": "Radera alla" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Alla användarregler kommer att raderas permanent" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Radera alla?" + }, + "options_user_rules_delete_all_success": { + "message": "Alla användarregler raderade" + }, + "options_user_rules_delete_rule": { + "message": "Radera regel" + }, + "options_user_rules_deleted_notification": { + "message": "Användarregel borttagen:" + }, + "options_user_rules_description_key": { + "message": "Dina regler för att blockera och avblockera annonser eller hela webbplatser" + }, + "options_user_rules_edit_rule": { + "message": "Redigera regel" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Gå till redigeraren" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Dina regler kommer att visas här efter att du har stängt den" + }, + "options_user_rules_editor_stub_title": { + "message": "Redigeraren öppnades i ett annat fönster" + }, + "options_user_rules_empty_placeholder": { + "message": "Inga regler ännu" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Markerar regler…" + }, + "options_user_rules_import_error": { + "message": "Det gick inte att importera användarregler. Försök igen" + }, + "options_user_rules_import_success": { + "message": "Användarregler importerades framgångsrikt" + }, + "options_user_rules_menu": { + "message": "Åtgärder för användarregler" + }, + "options_user_rules_no_match": { + "message": "Ingenting hittades" + }, + "options_user_rules_search_placeholder": { + "message": "Sök" + }, + "options_user_rules_switch_to_editor": { + "message": "Växla till redigeringsvyn" + }, + "options_user_rules_switch_to_list": { + "message": "Växla till listvy" + }, + "options_user_rules_undo": { + "message": "Ångra" + }, + "options_userfilter": { + "message": "Användarregler" + }, + "options_userfilter_description_key": { + "message": "Du kan lägga till dina egna regler här. Det här alternativet rekommenderas för avancerade användare som är bekanta med HTML/CSS. Läs självstudien \u003Ca>guide för filterregler\u003C/a> för att lära dig hur du skriver dina egna filterregler." + }, + "options_userfilter_export": { + "message": "Exportera" + }, + "options_userfilter_import": { + "message": "Importera" + }, + "options_userfilter_leave_subtitle": { + "message": "Dina ändringar av reglerna kommer att gå förlorade" + }, + "options_userfilter_line_break": { + "message": "Radbrytning" + }, + "options_userfilter_line_break_off": { + "message": "Radbrytning: Inaktiverad" + }, + "options_userfilter_line_break_on": { + "message": "Radbrytning: PÅ" + }, + "options_userfilter_subtitle_key": { + "message": "Tillåter dig att lägga till egna filtreringsregler" + }, + "popup_abuse_site": { + "message": "Rapportera ett problem" + }, + "popup_adguard_footer_title": { + "message": "Skydda din mobila enhet" + }, + "popup_adguard_for_android": { + "message": "AdGuard för Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard för iOS" + }, + "popup_block_site_ads_option": { + "message": "Blockera annonser manuellt" + }, + "popup_get_system_wide_protection": { + "message": "Få systemomfattande skydd" + }, + "popup_header_cta_link": { + "message": "Hur man förbättrar skyddet" + }, + "popup_header_update_filters": { + "message": "Kontrollera om det finns uppdateringar" + }, + "popup_limits_exceeded_warning": { + "message": "Din webbläsare har ändrat listan över aktiva inbyggda filter" + }, + "popup_open_filtering_log": { + "message": "Öppna filterlogg" + }, + "popup_open_settings": { + "message": "Öppna AdGuards-inställningar" + }, + "popup_protection_button": { + "message": "AdGuardskydd" + }, + "popup_reset_page_user_rules": { + "message": "Ta bort användarregler för denna webbplats" + }, + "popup_resume_protection_button": { + "message": "Återuppta" + }, + "popup_security_report": { + "message": "Kontrollera webbplatsens säkerhet" + }, + "popup_site_exception_information": { + "message": "Filtrering är inaktiverat eftersom det kan störa driften av denna webbplats." + }, + "popup_site_filtering_state_disabled": { + "message": "Skyddet är inaktiverat" + }, + "popup_site_filtering_state_disabling": { + "message": "Inaktivering av skydd..." + }, + "popup_site_filtering_state_enabled": { + "message": "Skyddet är inkopplat" + }, + "popup_site_filtering_state_enabling": { + "message": "Aktivering av skydd…" + }, + "popup_site_filtering_state_loading": { + "message": "Läser in..." + }, + "popup_site_filtering_state_paused": { + "message": "Skyddet är pausat" + }, + "popup_site_filtering_state_pausing": { + "message": "Pausar skydd..." + }, + "popup_site_filtering_state_resuming": { + "message": "Fortsätter skydd..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Säker sida" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "för alla webbplatser" + }, + "popup_statistics_all_categories": { + "message": "All" + }, + "popup_statistics_category_advertising": { + "message": "Annonser" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Statistikkategori" + }, + "popup_statistics_category_other": { + "message": "Övrigt" + }, + "popup_statistics_category_social_media": { + "message": "Sociala medier" + }, + "popup_statistics_category_trackers": { + "message": "Spårare" + }, + "popup_statistics_months_apr": { + "message": "Apr" + }, + "popup_statistics_months_aug": { + "message": "Aug" + }, + "popup_statistics_months_dec": { + "message": "Dec" + }, + "popup_statistics_months_feb": { + "message": "Feb" + }, + "popup_statistics_months_jan": { + "message": "Jan" + }, + "popup_statistics_months_jul": { + "message": "Jul" + }, + "popup_statistics_months_jun": { + "message": "Jun" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "Maj" + }, + "popup_statistics_months_nov": { + "message": "Nov" + }, + "popup_statistics_months_oct": { + "message": "Okt" + }, + "popup_statistics_months_sep": { + "message": "Sep" + }, + "popup_statistics_time_day": { + "message": "24 timmar" + }, + "popup_statistics_time_label": { + "message": "Statistik tidsperiod" + }, + "popup_statistics_time_month": { + "message": "30 dagar" + }, + "popup_statistics_time_week": { + "message": "7 dagar" + }, + "popup_statistics_time_year": { + "message": "1 år" + }, + "popup_statistics_total": { + "message": "Totalt" + }, + "popup_statistics_week_days_fri": { + "message": "Fre" + }, + "popup_statistics_week_days_mon": { + "message": "Mån" + }, + "popup_statistics_week_days_sat": { + "message": "Lör" + }, + "popup_statistics_week_days_sun": { + "message": "Sön" + }, + "popup_statistics_week_days_thu": { + "message": "Tor" + }, + "popup_statistics_week_days_tue": { + "message": "Tis" + }, + "popup_statistics_week_days_wed": { + "message": "Ons" + }, + "popup_switch_button": { + "message": "Skydd för nuvarande webbplats" + }, + "popup_tab_actions": { + "message": "Åtgärder" + }, + "popup_tab_blocked_all_count": { + "message": "Totalt blockerade: %num%" + }, + "popup_tab_blocked_count": { + "message": "Blockerade: %num%" + }, + "popup_tab_current_website": { + "message": "Aktuell webbplats" + }, + "popup_tab_statistics": { + "message": "Statistik" + }, + "popup_tabs": { + "message": "Flikar" + }, + "popup_tooltip_loading": { + "message": "Läser in..." + }, + "popup_tooltip_protection_disabled": { + "message": "Skyddet inaktiverat" + }, + "popup_tooltip_protection_enabled": { + "message": "Skyddet aktiverat" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Vissa regler tillämpas inte" + }, + "popup_tooltip_update_available": { + "message": "Uppdatering tillgänglig" + }, + "post_install_loading": { + "message": "Laddar tillägg..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Regelgränsen överskriden i AdGuard Webbläsartillägg. Kontrollera dina filter och inaktivera de som du inte behöver" + }, + "text_collapser_hide_default": { + "message": "Dölj hela texten" + }, + "text_collapser_show_default": { + "message": "Visa hela texten" + }, + "update_available_desc": { + "message": "För att effektivt blockera annonser bör du hålla dina tillägg och filter uppdaterade" + }, + "update_available_title": { + "message": "Uppdateringar tillgängliga" + }, + "update_available_update_btn": { + "message": "Uppdatera" + }, + "update_check": { + "message": "Sök efter uppdateringar" + }, + "update_checking_in_progress": { + "message": "Kontrollerar uppdateringar..." + }, + "update_failed_text": { + "message": "Det gick inte att slutföra uppdateringen" + }, + "update_failed_try_again_btn": { + "message": "Försök igen" + }, + "update_installing_in_progress_desc": { + "message": "Tillägget kommer att startas om efter uppdateringen" + }, + "update_installing_in_progress_title": { + "message": "Uppdaterar tillägg och filter..." + }, + "update_not_needed": { + "message": "Ditt tillägg och dina filter är uppdaterade" + }, + "update_success_text": { + "message": "Tillägg och filter uppdaterade" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ta/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ta/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/ta/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/te/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/te/messages.json new file mode 100644 index 0000000..cd2f6da --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/te/messages.json @@ -0,0 +1,11 @@ +{ + "description": { + "message": "Unmatched adblock extension against advertising and pop-ups. Blocks ads on Facebook, Youtube and all other websites." + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "short_name": { + "message": "AdGuard" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/th/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/th/messages.json new file mode 100644 index 0000000..b1be3c4 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/th/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% ถูกเปิดใช้งานโดยอัตโนมัติ." + }, + "alert_popup_filter_enabled_title": { + "message": "เปิดใช้งานตัวกรองอัตโนมัติ" + }, + "background_tab_title": { + "message": "แถบพื้นหลัง" + }, + "blocking_pages_advanced_button": { + "message": "ขั้นสูง" + }, + "blocking_pages_btn_go_back": { + "message": "กลับไป" + }, + "blocking_pages_btn_proceed": { + "message": "ดำเนินการต่อ" + }, + "blocking_pages_malware": { + "message": "หน้าเว็บนี้ที่ \u003Cstrong>%host%\u003C/strong> ได้รับการรายงานว่าเป็นหน้ามัลแวร์และถูกปิดกั้นตามการตั้งค่าความปลอดภัยของคุณ" + }, + "blocking_pages_more_info_button": { + "message": "ข้อมูลเพิ่มเติม" + }, + "blocking_pages_page_title": { + "message": "ปฏิเสธการเข้าใช้" + }, + "blocking_pages_phishing": { + "message": "หน้าเว็บนี้ที่ \u003Cstrong>%host%\u003C/strong> ได้รับการรายงานว่าเป็นหน้าฟิชชิงและถูกปิดกั้นตามการตั้งค่าความปลอดภัยของคุณ" + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard ป้องกันหน้านี้ไม่ให้โหลดเนื่องจากกฎตัวกรองต่อไปนี้" + }, + "blocking_pages_rule_header_title": { + "message": "ถูกปิดกั้นโดย AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard ได้ปิดกั้นการเข้าถึงหน้านี้" + }, + "clear_button_title": { + "message": "ล้าง" + }, + "close_button_title": { + "message": "ปิด" + }, + "context_block_site_ads": { + "message": "Block ads manually" + }, + "context_complaint_website": { + "message": "รายงานปัญหา" + }, + "context_disable_protection": { + "message": "หยุดการปกป้องจาก AdGuard ชั่วคราว" + }, + "context_enable_protection": { + "message": "ดำเนินการป้องกัน AdGuard ต่อ" + }, + "context_open_log": { + "message": "บันทึกการกรอง" + }, + "context_open_settings": { + "message": "การตั้งค่า AdGuard" + }, + "context_security_report": { + "message": "รายงานความปลอดภัยของเว็บไซต์" + }, + "context_site_exception": { + "message": "เว็บไซต์นี้อยู่ในข้อยกเว้น" + }, + "context_site_filtering_disabled": { + "message": "AdGuard ไม่สามารถกรองหน้านี้ได้" + }, + "context_site_filtering_off": { + "message": "ปิดใช้งานการกรองบนเว็บไซต์นี้" + }, + "context_site_filtering_on": { + "message": "เปิดใช้งานการกรองบนเว็บไซต์นี้" + }, + "context_site_protection_disabled": { + "message": "AdGuard หยุดการป้องกันชั่วคราว" + }, + "context_update_antibanner_filters": { + "message": "ตรวจสอบการอัปเดตตัวกรอง" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "ส่วนขยาย adblock ที่ไม่ตรงกันกับการโฆษณาและป๊อปอัป ปิดกั้นโฆษณาบน Facebook, YouTube และเว็บไซต์อื่น ๆ ทั้งหมด" + }, + "filtering_clear_log_events": { + "message": "ล้างบันทึก" + }, + "filtering_log_actions_menu": { + "message": "การดำเนินการบันทึกการกรอง" + }, + "filtering_log_assumed_rule_description": { + "message": "นี่คือกฎที่ใช้กันทั่วไป สำหรับรายละเอียดดูที่\u003Ca>ฐานข้อมูลความรู้\u003C/a>ของเรา" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "วิธีการขอ HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "โค้ดสถานะ HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "คำขอของบุคคลที่สาม" + }, + "filtering_log_details_modal_back_button": { + "message": "กลับไปร้องขอ" + }, + "filtering_log_details_modal_beautify_button": { + "message": "ทำให้สวยงาม" + }, + "filtering_log_details_modal_try_again": { + "message": "ลองอีกครั้ง" + }, + "filtering_log_filter_allowed": { + "message": "รายการที่อนุญาต" + }, + "filtering_log_filter_blocked": { + "message": "ปิดกั้นแล้ว" + }, + "filtering_log_filter_modified": { + "message": "ปรับเปลี่ยน" + }, + "filtering_log_filter_regular": { + "message": "ตามปกติ" + }, + "filtering_log_filter_user_rules": { + "message": "ตัวกรองผู้ใช้" + }, + "filtering_log_hide_referrer": { + "message": "การซ่อนข้อมูลผู้อ้างอิงจากบุคคลที่สาม" + }, + "filtering_log_hide_search_queries": { + "message": "คำค้นหาของคุณถูกซ่อน" + }, + "filtering_log_in_allowlist": { + "message": "ไซต์ได้รับอนุญาต" + }, + "filtering_log_modified_rules": { + "message": "กฎที่แก้ไข: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "ใช่, เก็บไว้" + }, + "filtering_log_preserve_log_modal_description": { + "message": "ตัวเลือกนี้อาจเพิ่มการใช้หน่วยความจำอย่างมีนัยสำคัญ" + }, + "filtering_log_preserve_log_modal_title": { + "message": "เก็บบันทึกหรือไม่?" + }, + "filtering_log_preserve_log_off": { + "message": "อย่าเก็บบันทึก" + }, + "filtering_log_preserve_log_on": { + "message": "เก็บบันทึกไว้" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "อย่าจอแสดงอีก" + }, + "filtering_log_privacy_applied_rules": { + "message": "ใช้การป้องกันการติดตาม" + }, + "filtering_log_remove_client_data": { + "message": "นำส่วนหัว X-Client-Data ออกแล้ว" + }, + "filtering_log_search_string": { + "message": "ค้นหา" + }, + "filtering_log_search_tabs_placeholder": { + "message": "ค้นหาในแท็บ" + }, + "filtering_log_send_not_track": { + "message": "ส่งส่วนหัว Do-Not-Track แล้ว" + }, + "filtering_log_status_allowed": { + "message": "รายการที่อนุญาต" + }, + "filtering_log_status_blocked": { + "message": "ปิดกั้นแล้ว" + }, + "filtering_log_status_modified": { + "message": "แก้ไขแล้ว" + }, + "filtering_log_status_processed": { + "message": "ประมวลผลแล้ว" + }, + "filtering_log_stealth_rules": { + "message": "กฎการป้องกันการติดตาม: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "ต้นทางคำขอ" + }, + "filtering_log_tag_request_status": { + "message": "สถานะการกรอง" + }, + "filtering_log_tag_request_type": { + "message": "ประเภทคำขอ" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "คำขอที่อนุญาตและยกเลิกการปิดกั้น" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "คำขอที่ถูกบล็อค" + }, + "filtering_log_tag_tooltip_css": { + "message": "สไตล์ชีต" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "คำขอของบุคคลที่หนึ่ง" + }, + "filtering_log_tag_tooltip_html": { + "message": "เอกสารและเอกสารย่อย" + }, + "filtering_log_tag_tooltip_img": { + "message": "ภาพ" + }, + "filtering_log_tag_tooltip_js": { + "message": "สคริปต์" + }, + "filtering_log_tag_tooltip_media": { + "message": "สื่อ" + }, + "filtering_log_tag_tooltip_modified": { + "message": "คำขอที่ถูกปรับเปลี่ยน" + }, + "filtering_log_tag_tooltip_other": { + "message": "Fonts, pings, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "คำขอที่ประมวลผลโดยไม่มีการกรอง" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "คำขอของบุคคลที่สาม" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "คำขอที่ถูกส่งผลกระทบโดยกฎของผู้ใช้" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests และดึงคำขอ" + }, + "filtering_log_title": { + "message": "บันทึกการกรอง" + }, + "filtering_menu_open_filters": { + "message": "ปรับแต่ง" + }, + "filtering_modal_add_rule": { + "message": "เพิ่ม" + }, + "filtering_modal_allow_title": { + "message": "เพิ่มกฎการอนุญาต" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "กฎที่ใช้ | กฎที่ใช้" + }, + "filtering_modal_apply_domains": { + "message": "ใช้กับเว็บไซต์ทั้งหมด" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "กฎที่สันนิษฐาน: | กฎที่สันนิษฐาน:" + }, + "filtering_modal_block": { + "message": "ปิดกั้น" + }, + "filtering_modal_block_again": { + "message": "ปิดกั้นอีกครั้ง" + }, + "filtering_modal_block_title": { + "message": "เพิ่มกฎการบล็อก" + }, + "filtering_modal_converted_to": { + "message": "แปลงเป็น:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "คัดลอกแล้ว" + }, + "filtering_modal_copy_to_clipboard": { + "message": "คัดลอกไปที่คลิปบอร์ด" + }, + "filtering_modal_declarative_rule": { + "message": "กฎ DNR:" + }, + "filtering_modal_element": { + "message": "องค์ประกอบ:" + }, + "filtering_modal_exception_title": { + "message": "เพิ่มข้อยกเว้น" + }, + "filtering_modal_filter": { + "message": "ตัวกรอง" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "สถานะการกรอง" + }, + "filtering_modal_hide_full_element": { + "message": "ซ่อนองค์ประกอบทั้งหมด" + }, + "filtering_modal_hide_full_rule": { + "message": "ซ่อนกฎทั้งหมด" + }, + "filtering_modal_hide_full_url": { + "message": "ซ่อน URL แบบเต็ม" + }, + "filtering_modal_important": { + "message": "ให้ความสำคัญกับกฎที่สูงกว่า" + }, + "filtering_modal_info_title": { + "message": "ขอรายละเอียด" + }, + "filtering_modal_open_in_new_tab": { + "message": "เปิดในแถบใหม่" + }, + "filtering_modal_options_desc": { + "message": "ตัวเลือก" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "กฎต้นฉบับ: | กฎต้นฉบับ:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "สิ่งที่ควรอนุญาต" + }, + "filtering_modal_patterns_desc_block": { + "message": "สิ่งที่ควรบล็อก" + }, + "filtering_modal_preview_request_button": { + "message": "ดูตัวอย่าง" + }, + "filtering_modal_preview_title": { + "message": "ดูตัวอย่าง" + }, + "filtering_modal_privacy": { + "message": "การป้องกันการติดตาม" + }, + "filtering_modal_remove_allowlist": { + "message": "ลบออกจากรายการที่อนุญาต" + }, + "filtering_modal_remove_param": { + "message": "ลบพารามิเตอร์แบบสอบถาม" + }, + "filtering_modal_remove_user": { + "message": "ลบออกจากตัวกรองผู้ใช้" + }, + "filtering_modal_rule": { + "message": "กฎ:" + }, + "filtering_modal_rule_text_desc": { + "message": "กฎ" + }, + "filtering_modal_rules": { + "message": "กฎ:" + }, + "filtering_modal_show_full_element": { + "message": "แสดงองค์ประกอบทั้งหมด" + }, + "filtering_modal_show_full_rule": { + "message": "แสดงกฎฉบับเต็ม" + }, + "filtering_modal_show_full_url": { + "message": "แสดง URL แบบเต็ม" + }, + "filtering_modal_source": { + "message": "ที่มา" + }, + "filtering_modal_status_text_desc": { + "message": "สถานะ" + }, + "filtering_modal_status_text_error": { + "message": "ไม่สามารถโหลดตัวอย่างได้ โปรดลองอีกครั้ง" + }, + "filtering_modal_status_text_loading": { + "message": "กำลังโหลด..." + }, + "filtering_modal_third_party": { + "message": "ใช้กับคำขอของบุคคลที่สามเท่านั้น" + }, + "filtering_modal_type": { + "message": "ประเภท" + }, + "filtering_modal_unblock": { + "message": "เลิกปิดกั้น" + }, + "filtering_refresh_tab_short": { + "message": "รีเฟรช" + }, + "filtering_refresh_tab_short_mobile": { + "message": "รีเฟรช page" + }, + "filtering_table_action": { + "message": "การกระทำ" + }, + "filtering_table_empty_reload_page_desc": { + "message": "ไม่พบข้อมูล \u003Creset>ปิดใช้งานตัวกรอง\u003C/reset> หรือ \u003Crefresh>โหลด page ใหม่\u003C/refresh> เพื่อดูบันทึก log" + }, + "filtering_table_filter": { + "message": "ตัวกรอง" + }, + "filtering_table_open_details": { + "message": "เปิดรายละเอียด" + }, + "filtering_table_rule": { + "message": "กฎการกรอง" + }, + "filtering_table_source": { + "message": "ที่มา" + }, + "filtering_table_status": { + "message": "สถานะ" + }, + "filtering_table_type": { + "message": "ประเภท" + }, + "filtering_type_all": { + "message": "ทั้งหมด" + }, + "filtering_type_other": { + "message": "อื่น ๆ" + }, + "filters_download_loading": { + "message": "โปรดรอขณะที่กำลังโหลดฐานข้อมูลตัวกรอง..." + }, + "filters_download_title": { + "message": "กำลังโหลดฐานข้อมูลตัวกรอง..." + }, + "fullscreen_user_rules_title": { + "message": "ตัวกรองผู้ใช้" + }, + "group_description_adblocking": { + "message": "กำหนดค่าการบล็อกโฆษณาที่นี่เพื่อจัดการกับแบนเนอร์ ป๊อปอัป โฆษณาวิดีโอ และอื่น ๆ อย่างเด็ดขาด" + }, + "group_description_annoyances": { + "message": "ลบหน้าต่างป๊อปอัปและการแจ้งเตือนที่น่ารำคาญอื่น ๆ เช่น การแจ้งเตือนเกี่ยวกับคุกกี้" + }, + "group_description_custom": { + "message": "สร้างตัวกรองของคุณเองเพื่อปรับแต่งการกรองเว็บตามที่คุณต้องการ." + }, + "group_description_lang": { + "message": "Don't limit yourself — block ads on websites in any languages" + }, + "group_description_miscellaneous": { + "message": "การตั้งค่าเพิ่มเติมเพื่อกำหนดค่าการท่องเว็บของคุณด้วย AdGuard ให้ดียิ่งขึ้น" + }, + "group_description_security": { + "message": "Protect yourself from malware, phishing and other online threats" + }, + "group_description_social": { + "message": "ซ่อนปุ่ม \"ถูกใจ\"/\"แชร์\" ที่ไม่ต้องการและวิดเจ็ตของโซเชียลมีเดียอื่นๆ" + }, + "group_description_stealth": { + "message": "ปกป้องตัวตนและข้อมูลส่วนบุคคลที่ละเอียดอ่อนของคุณจากผู้ติดตามออนไลน์หลายพันคนโดยการบล็อกวิธีการติดตามที่รู้จักทั้งหมด" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "อย่าจอแสดงอีก" + }, + "opera_search_permission_go_to_settings": { + "message": "ไปที่ การตั้งค่า" + }, + "opera_search_permission_warning": { + "message": "เพื่อบล็อกโฆษนาการค้นหา ให้อนุญาตการเข้าถึงผลลัพธ์หน้า search ในการตั้งค่า browser" + }, + "options_about": { + "message": "เกี่ยวกับ" + }, + "options_about_libs": { + "message": "ห้องสมุดที่ใช้" + }, + "options_about_title": { + "message": "ส่วนขยายเบราว์เซอร์ AdGuard" + }, + "options_about_update_available": { + "message": "เวอร์ชัน %version% พร้อมใช้งาน จะถูกดาวน์โหลดและติดตั้งโดยอัตโนมัติ" + }, + "options_about_version": { + "message": "รุ่น" + }, + "options_acknowledgment": { + "message": "การรับทราบ" + }, + "options_add_custom_filter": { + "message": "เพิ่มตัวกรองเอง" + }, + "options_add_custom_filter_modal_add_button": { + "message": "เพิ่ม" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "กำลังตรวจสอบตัวกรองของคุณ..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL ส่งคืนหน้าเว็บแทนที่จะเป็นรายการตัวกรอง โปรดระบุลิงก์โดยตรงไปยังไฟล์ตัวกรอง" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "กรุณาลองอีกครั้งหรือติดต่อฝ่ายสนับสนุน" + }, + "options_add_custom_filter_modal_error_title": { + "message": "ไม่สามารถเพิ่มตัวกรองได้" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "ชื่อตัวกรอง:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "เชื่อถือได้" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "กฎกรองบางข้ออาจเปลี่ยนแปลงประสบการณ์การท่องเว็บของคุณอย่างมีนัยสำคัญและเสี่ยงต่อความเป็นส่วนตัวของคุณ โปรดใช้กฎกรองจากนักพัฒนาที่คุณไว้วางใจเท่านั้น" + }, + "options_add_custom_filter_modal_title": { + "message": "เพิ่มตัวกรองกำหนดเอง" + }, + "options_all_limits_exceeded_warning": { + "message": "คุณถึงขีดจำกัดของกฎภายในที่ใช้งานอยู่แล้ว เบราว์เซอร์ของคุณได้แก้ไขรายการตัวกรองภายในที่ใช้งานอยู่ จำนวนตัวกรองที่เปิดใช้งานได้เปลี่ยนแปลงจาก %expected% เป็น %current%" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "คุณถึงขีดจำกัดของกฎในตัวที่ใช้งานอยู่ของเบราว์เซอร์ เบราว์เซอร์ของคุณได้ลดรายการตัวกรองในตัวที่ใช้งานอยู่จาก %expected% เหลือ %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "เบราว์เซอร์ของคุณจำกัด \u003Cexternal-link>กฎบางประเภท\u003C/external-link>หากต้องการใช้กฎทั้งหมด ให้เปิดใช้งาน \u003Cb>อนุญาตสคริปต์ผู้ใช้\u003C/b> ในการตั้งค่าส่วนขยาย \u003Csettings-link>ของเบราว์เซอร์\u003C/settings-link>" + }, + "options_allowlist": { + "message": "รายการที่อนุญาต" + }, + "options_allowlist_alert_invert": { + "message": "รายการที่อนุญาตถูกกลับด้าน โฆษนาจะถูกบล็อกเฉพาะในเว็บไซต์ที่เพิ่มเข้าไป" + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>หยุดการกลับด้าน\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard ไม่บล็อกโฆษนาและตัวติดตามบน เว็บไซต์จากรายการ" + }, + "options_allowlist_invalid_entries": { + "message": "เพื่อบันทึก ให้คงไว้เฉพาะโดเมนหรือ URL รายการต่อไปนี้ต้องแก้ไข: %entries%" + }, + "options_allowlist_invert": { + "message": "สลับรายการที่อนุญาต" + }, + "options_allowlist_invert_desc": { + "message": "บล็อกโฆษณาและตัวติดตามเฉพาะในเว็บไซต์ที่ได้รับอนุญาตเท่านั้น" + }, + "options_allowlist_leave_subtitle": { + "message": "การเปลี่ยนแปลงของคุณใน Allowlist จะหายไป" + }, + "options_allowlist_menu": { + "message": "การดำเนินการรายการที่อนุญาต" + }, + "options_anonymized_usage_data_description": { + "message": "ส่งสถิติการใช้งานส่วนขยายโดยไม่ระบุชื่อไปยัง AdGuard \u003Cbutton>เรียนรู้เพิ่มเติม\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "เข้าใจแล้ว" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "ข้อมูลนี้ประกอบด้วย:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "ชื่อของปุ่มที่คุณคลิก" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "ชื่อหน้าจอที่คุณโต้ตอบด้วย" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "ตัวระบุเซสชัน" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "ข้อมูลเหล่านี้เป็นนิรนามและใช้เฉพาะภายในองค์กรเท่านั้น เราไม่เคยแบ่งปันข้อมูลเหล่านี้กับบุคคลที่สามเลย" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "เราจำเป็นต้องมีข้อมูลนี้เพื่อวิเคราะห์และปรับปรุงการทำงานของ AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "ข้อมูลการใช้งานส่วนขยาย" + }, + "options_anonymized_usage_data_title": { + "message": "ส่งข้อมูลการใช้งานส่วนขยายแบบไม่ระบุตัวตน" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "ตัวกรองที่กำหนดเองนี้ได้รับการเพิ่มแล้ว" + }, + "options_antibanner_custom_group": { + "message": "กำหนดเอง" + }, + "options_antibanner_custom_group_description": { + "message": "อนุญาตให้คุณเพิ่มตัวกรองจากไฟล์หรือ URL" + }, + "options_antibanner_rules_count": { + "message": "กฎ: %rules_count%" + }, + "options_antibanner_updated": { + "message": "อัปเดตแล้ว: %date%" + }, + "options_block_acceptable_ads": { + "message": "บล็อกโฆษณาการค้นหาและการโปรโมตตนเองของเว็บไซต์" + }, + "options_block_acceptable_ads_desc": { + "message": "บล็อกโฆษณาในผลการค้นหาและการโปรโมตตนเองของเว็บไซต์ \u003Ca>เรียนรู้เพิ่มเติม\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "หากต้องการบล็อกคุกกี้ ให้ตั้งอายุการใช้งานเป็น 0" + }, + "options_block_known_trackers_description": { + "message": "บล็อกตัวติดตามและการวิเคราะห์เว็บโดยใช้ตัวกรองการป้องกันการติดตาม AdGuard" + }, + "options_block_known_trackers_title": { + "message": "ปิดกั้นตัวติดตามที่รู้จัก" + }, + "options_check_update_progress": { + "message": "กำลังตรวจสอบ..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "ล้าง" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "สถิติทั้งหมดเกี่ยวกับการใช้งาน data จะถูกลบอย่างถาวร" + }, + "options_clear_stats_confirm_modal_title": { + "message": "ล้างสถิติ?" + }, + "options_clipboard_permission_warning": { + "message": "เพื่อคัดลอกและวางกฎ ให้อนุญาต AdGuard เข้าถึงคลิปบอร์ด \u003Ca>อนุญาต\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "ส่งสถิติการใช้งานตัวกรองโฆษณาแบบนิรนามไปยัง AdGuard \u003Ca>เรียนรู้เพิ่มเติม\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "ช่วยพัฒนาตัวกรองของ AdGuard" + }, + "options_coming_soon": { + "message": "กำลังจะมา" + }, + "options_confirm_modal_cancel_button": { + "message": "ยกเลิก" + }, + "options_copyright": { + "message": "สงวนลิขสิทธิ์" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "หากต้องการใช้ตัวกรองแบบกําหนดเอง ให้เปิดใช้งาน \u003Cb>อนุญาตสคริปต์ผู้ใช้\u003C/b> ในเบราว์เซอร์ของคุณ \u003Csettings-link>การตั้งค่าส่วนขยาย\u003C/settings-link>" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "หากต้องการใช้ตัวกรองแบบกําหนดเอง ให้เปิดใช้งาน \u003Cb>อนุญาตสคริปต์ผู้ใช้\u003C/b> ในเบราว์เซอร์ของคุณ \u003Csettings-link>การตั้งค่าส่วนขยาย\u003C/settings-link>" + }, + "options_desktop_app_promo_button_linux": { + "message": "รับ AdGuard สำหรับ Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "รับ AdGuard สำหรับ Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "รับ AdGuard สำหรับ Windows" + }, + "options_desktop_app_promo_description": { + "message": "แอปอย่าง Spotify, Discord หรือ Zoom ยังสามารถแสดงโฆษนาและ ติดตาม กิจกรรมของคุณได้" + }, + "options_desktop_app_promo_subdescription": { + "message": "แอปเดสก์ท็อปของเราสามารถปกป้องคุณจาก สิ่งเหล่านั้นได้" + }, + "options_desktop_app_promo_title": { + "message": "ส่วนขยายปกป้องเฉพาะ เบราว์เซอร์เท่านั้น" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "เบราว์เซอร์ของคุณจำกัด \u003Cexternal-link>กฎบางประเภท\u003C/external-link>หากต้องการใช้กฎทั้งหมด ให้เปิดใช้งาน \u003Cb>อนุญาตสคริปต์ผู้ใช้\u003C/b> ในการตั้งค่าส่วนขยาย \u003Csettings-link>ของเบราว์เซอร์\u003C/settings-link>" + }, + "options_disable_webrtc_desc": { + "message": "บล็อก WebRTC ที่อาจรั่วไหลที่อยู่ IP จริงของคุณแม้ว่าคุณจะใช้พร็อกซีหรือ VPN ก็ตาม โปรดทราบว่าแอปส่งข้อความ แพลตฟอร์มสตรีมมิ่ง หรือเกมบางรายการอาจไม่ทำงานอย่างถูกต้อง" + }, + "options_disable_webrtc_title": { + "message": "ปิดกั้น WebRTC" + }, + "options_discuss": { + "message": "พูดคุย AdGuard" + }, + "options_do_you_like_question": { + "message": "คุณชอบ AdGuard หรือไม่?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "ออกจากโหมดหน้าต่าง" + }, + "options_editor_indicator_saved": { + "message": "บันทึกแล้ว" + }, + "options_editor_indicator_saving": { + "message": "กำลังบันทึก..." + }, + "options_editor_leave_cancel": { + "message": "Back to editing" + }, + "options_editor_leave_confirm": { + "message": "ใช่ ออก" + }, + "options_editor_leave_title": { + "message": "ออกโดยไม่บันทึกค่า?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "เปิดตัวแก้ไขในหน้าต่างใหม่" + }, + "options_editor_save": { + "message": "บันทึก" + }, + "options_editor_save_error": { + "message": "ไม่สามารถบันทึกการเปลี่ยนแปลงได้ โปรดลองอีกครั้งหรือติดต่อฝ่ายสนับสนุน" + }, + "options_empty_custom_filter": { + "message": "ขออภัย แต่คุณยังไม่ได้เลือกตัวกรองที่กำหนดเองเลย" + }, + "options_enable_autodetect_filter": { + "message": "เปิดใช้งานตัวกรองที่เหมาะสมที่สุดโดยอัตโนมัติ" + }, + "options_enable_autodetect_filter_desc": { + "message": "ตรวจจับภาษาของเว็บไซต์และเปิดใช้งานตัวกรองที่เหมาะสม" + }, + "options_export_settings": { + "message": "ส่งออกการตั้งค่า" + }, + "options_filters": { + "message": "ตัวกรอง" + }, + "options_filters_annoyances_consent_description": { + "message": "คุณกำลังจะเปิดใช้งานฟิลเตอร์รบกวนอย่างน้อยหนึ่งตัว พวกมันจะบล็อกองค์ประกอบที่ไม่เกี่ยวข้องกับเนื้อหาเว็บไซต์หรือเกี่ยวข้องแต่รบกวนประสบการณ์ผู้ใช้ของคุณ เจ้าของเว็บไซต์อาจพิจารณาว่าองค์ประกอบเหล่านี้จำเป็น หากคุณบล็อกพวกเขา คุณอาจละเมิดข้อกำหนดของพวกเขา ฟังก์ชันการทำงานบางอย่างของเว็บไซต์อาจไม่พร้อมใช้หรืออาจไม่ทำงานอย่างถูกต้อง คุณเข้าใจและยอมรับว่าคุณเป็นผู้รับผิดชอบแต่เพียงผู้เดียวในการปฏิบัติตามข้อกำหนดการใช้งานของเว็บไซต์ที่คุณเข้าชม และ AdGuard จะไม่รับผิดชอบต่อการปฏิบัติตามข้อกำหนดการใช้งานของเว็บไซต์ที่คุณเข้าชมโดยใช้ผลิตภัณฑ์ของเรา" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "เปิดใช้งาน" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "หน้าหลัก" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "สําหรับรายละเอียดเกี่ยวกับสิ่งที่ตัวกรองความรําคาญของ AdGuard บล็อกโปรดดูที่ \u003Ca>นโยบายการกรอง\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "เปิดใช้งานตัวกรองเหล่านี้หรือไม่" + }, + "options_filters_annoyances_consent_title": { + "message": "กรุณาอ่านอย่างละเอียดก่อนเปิดใช้งานตัวกรองความรำคาญ" + }, + "options_filters_back_button": { + "message": "กลับไป" + }, + "options_filters_empty_title": { + "message": "ไม่พบอะไร" + }, + "options_filters_enabled": { + "message": "เปิดใช้งาน:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% และ %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% และ %more% อื่น ๆ" + }, + "options_filters_enabled_per_group": { + "message": "เปิดใช้งาน: %current% จาก %total%" + }, + "options_filters_filter_link": { + "message": "ไปที่หน้าแรก" + }, + "options_filters_filter_tags": { + "message": "แท็กฟิลเตอร์" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "คุณเลือกที่จะเชื่อถือตัวกรองนี้." + }, + "options_filters_filter_updated": { + "message": "อัปเดต:" + }, + "options_filters_filter_version": { + "message": "รุ่น:" + }, + "options_filters_info_mv3_total_rules": { + "message": "กฎรวม: %num%" + }, + "options_filters_last_checked": { + "message": "ตรวจสอบล่าสุด: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "ตัวกรองทั้งหมด" + }, + "options_filters_list_search_display_option_disabled": { + "message": "ปิดใช้งาน" + }, + "options_filters_list_search_display_option_enabled": { + "message": "เปิดใช้งาน" + }, + "options_filters_no_enabled": { + "message": "ไม่มีตัวกรองที่เปิดใช้งาน" + }, + "options_filters_of_group": { + "message": "ตัวกรองของกลุ่ม \"%groupName%\"" + }, + "options_filters_search": { + "message": "ค้นหา" + }, + "options_filters_search_filter": { + "message": "ค้นหาตัวกรอง" + }, + "options_first_party_block_cookies_warning": { + "message": "หากคุณบล็อกคุกกี้เหล่านี้ เว็บไซต์บางแห่งอาจเสียหายหรือหยุดทำงาน" + }, + "options_first_party_desc": { + "message": "ป้องกันไม่ให้เว็บไซต์จดจำข้อมูลของคุณ เช่น ข้อมูลเข้าสู่ระบบ และการตั้งค่าภาษา โดยการจำกัดอายุของคุกกี้ประเภท first-party" + }, + "options_first_party_title": { + "message": "ลบคุกกี้ของฝ่ายแรก (ไม่แนะนำ)" + }, + "options_general_settings": { + "message": "ทั่วไป" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "ป้องกันไม่ให้บุคคลที่สามรู้ว่าคุณกำลังเยี่ยมชมเว็บไซต์ใด" + }, + "options_hide_referrer_title": { + "message": " ซ่อนผู้อ้างอิงจากบุคคลที่สาม" + }, + "options_hide_search_queries_desc": { + "message": "ซ่อนการค้นหาของคุณจากเว็บไซต์ที่เข้าชมผ่านผลการค้นหาของเครื่องมือค้นหา" + }, + "options_hide_search_queries_title": { + "message": "ซ่อนคำค้นหา" + }, + "options_import_configuration_applying_subtitle": { + "message": "การแทนที่การตั้งค่าปัจจุบันของคุณด้วยการตั้งค่าที่นำเข้ามา การกรองจะถูกปิดใช้งานในระหว่างการนำเข้า" + }, + "options_import_configuration_applying_title": { + "message": "กำลังนำเข้า..." + }, + "options_import_configuration_confirm_button": { + "message": "นำเข้า" + }, + "options_import_configuration_confirm_subtitle": { + "message": "การตั้งค่าที่นำเข้าจะถูกแทนที่การตั้งค่าปัจจุบันของคุณ ส่วนการตั้งค่าอื่น ๆ จะไม่ได้รับผลกระทบ" + }, + "options_import_configuration_confirm_title": { + "message": "นำเข้าการตั้งค่า" + }, + "options_import_configuration_error_button": { + "message": "ปิด" + }, + "options_import_configuration_error_subtitle": { + "message": "โปรดตรวจสอบลิงก์นำเข้าแล้วลองอีกครั้ง หากยังไม่ช่วย กรุณาติดต่อฝ่ายสนับสนุน" + }, + "options_import_configuration_error_title": { + "message": "นำเข้าการตั้งค่าล้มเหลว" + }, + "options_import_configuration_success_button": { + "message": "ปิด" + }, + "options_import_configuration_success_subtitle": { + "message": "นำเข้าการตั้งค่าสำเร็จแล้ว" + }, + "options_import_configuration_success_title": { + "message": "เสร็จสิ้นแล้ว" + }, + "options_import_settings": { + "message": "นำเข้าการตั้งค่า" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "สลับ" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "โฆษนาและตัวติดตามจะถูกบล็อกเฉพาะบนเว็บไซต์จาก allowlist เท่านั้น" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "สลับรายการที่อนุญาต?" + }, + "options_leave_feedback": { + "message": "แสดงความคิดเห็น" + }, + "options_lifetime_minutes": { + "message": "อายุการใช้งาน, นาที" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "คุณถึงขีดจำกัดของกฎ regex ที่ผู้ใช้เพิ่มแล้ว กฎ regex %maximum% จาก %current% ได้รับการเปิดใช้งาน" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "คุณถึงขีดจำกัดของกฎ regex ที่เพิ่มโดยผู้ใช้แล้ว กฎ %maximum% จาก %current% ได้รับการเปิดใช้งาน หากต้องการเพิ่มกฎ regex ใหม่ ให้ลบกฎที่มีอยู่บางส่วนออก" + }, + "options_limits_warning_dynamic_rules": { + "message": "คุณถึงขีดจำกัดของกฎที่ผู้ใช้เพิ่มแล้ว กฎ %maximum% จาก %current% ได้รับการเปิดใช้งาน" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "คุณถึงขีดจำกัดของกฎที่เพิ่มโดยผู้ใช้แล้ว กฎ %maximum% จาก %current% ได้รับการเปิดใช้งาน หากต้องการเพิ่มกฎใหม่ ให้ลบกฎที่มีอยู่บางส่วนออก" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "คุณถึงขีดจำกัดของกฎที่ผู้ใช้เพิ่มแล้ว กฎที่ไม่ปลอดภัย %maximum% จาก %current% ได้รับการเปิดใช้งาน।" + }, + "options_limits_warning_static_filters": { + "message": "คุณถึงขีดจำกัดของตัวกรองในตัวที่ใช้งานได้ ตัวกรอง %maximum% จาก %current% ได้รับการเปิดใช้งานแล้ว หากต้องการเปิดใช้งานกฎใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_limits_warning_static_filters_browser": { + "message": "คุณถึงขีดจำกัดของตัวกรองในตัวที่เปิดใช้งานในเบราว์เซอร์แล้ว ตัวกรอง %maximum% จาก %current% ได้รับการเปิดใช้งาน หากต้องการเปิดใช้งานตัวกรองใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_limits_warning_static_regex_rules": { + "message": "คุณถึงขีดจำกัดของกฎ regex ในตัวที่ใช้งานอยู่แล้ว กฎ regex %maximum% จาก %current% ได้รับการเปิดใช้งาน หากต้องการเปิดใช้งานกฎใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "คุณถึงขีดจำกัดของกฎ regex ในตัวที่ใช้งานอยู่แล้ว หากต้องการเปิดใช้งานกฎใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_limits_warning_static_rules": { + "message": "คุณถึงขีดจำกัดของกฎในตัวที่ใช้งานอยู่แล้ว กฎ %maximum% จาก %current% ได้รับการเปิดใช้งาน หากต้องการเปิดใช้งานกฎใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_limits_warning_static_rules_browser": { + "message": "คุณถึงขีดจำกัดของกฎในตัวที่ใช้งานอยู่ของเบราว์เซอร์แล้ว หากต้องการเปิดใช้งานกฎใหม่ ให้ปิดใช้งานตัวกรองในตัวบางตัว" + }, + "options_loader_applying_changes": { + "message": "กำลังใช้การเปลี่ยนแปลง..." + }, + "options_miscellaneous_settings": { + "message": "การตั้งค่าเพิ่มเติม" + }, + "options_modified_first_party_cookie": { + "message": "แก้ไขคุกกี้ของบุคคลที่หนึ่งแล้ว" + }, + "options_modified_third_party_cookie": { + "message": "แก้ไขคุกกี้ของบุคคลที่สามแล้ว" + }, + "options_nav_better_than_extension": { + "message": "เหตุใดโปรแกรม AdGuard ที่เต็มเปี่ยมจึงดีกว่าส่วนขยาย" + }, + "options_nav_compare": { + "message": "เปรียบเทียบ" + }, + "options_navigation": { + "message": "การนำทาง" + }, + "options_open_changelog": { + "message": "การเปลี่ยนแปลง" + }, + "options_open_log": { + "message": "บันทึกการกรอง" + }, + "options_popup_call_to_action": { + "message": "ป้อน URL หรือเส้นทางไฟล์ที่ถูกต้องของตัวกรองลงในช่องด้านบน" + }, + "options_popup_check_false_description": { + "message": "เกิดข้อผิดพลาดขณะเพิ่มตัวกรองที่กำหนดเองของคุณ." + }, + "options_popup_check_false_title": { + "message": "ข้อผิดพลาด" + }, + "options_popup_checking_filter": { + "message": "กำลังตรวจสอบตัวกรองของคุณ" + }, + "options_popup_description": { + "message": "คุณจะสมัครเป็นสมาชิกของตัวกรองนั้น" + }, + "options_popup_filter_description": { + "message": "คำอธิบาย:" + }, + "options_popup_filter_homepage": { + "message": "โฮมเพจ:" + }, + "options_popup_filter_rules_count": { + "message": "กฎการนับ:" + }, + "options_popup_filter_title": { + "message": "หัวข้อ:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "รุ่น:" + }, + "options_popup_import_error_file_description": { + "message": "บางอย่างผิดปกติ." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "หากต้องการนำเข้าไฟล์การตั้งค่านี้ ให้อนุญาตให้ AdGuard เปลี่ยนการตั้งค่าที่เกี่ยวข้องกับความเป็นส่วนตัวของคุณ" + }, + "options_popup_import_error_title": { + "message": "ไม่สามารถนำเข้าการตั้งค่าได้" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "นามสกุลไฟล์ต้องเป็น %extension%" + }, + "options_popup_import_success_title": { + "message": "นำเข้าการตั้งค่าแล้ว" + }, + "options_popup_next_button": { + "message": "ถัดไป" + }, + "options_popup_subscribe_button": { + "message": "สมัครสมาชิก" + }, + "options_popup_title_placeholder": { + "message": "ป้อนชื่อตัวกรอง" + }, + "options_popup_trusted_filter_description": { + "message": "ตัวกรองที่เชื่อถือได้สามารถใช้ตัวดัดแปลงกฎการกรองที่มีประสิทธิภาพซึ่งอาจเป็นอันตรายในการควบคุมที่ไม่ถูกต้อง อย่าทำเครื่องหมายที่ช่องนี้จนกว่าคุณจะเชื่อถือ" + }, + "options_popup_trusted_filter_title": { + "message": "เชื่อถือได้" + }, + "options_popup_try_again_button": { + "message": "ลองอีกครั้ง" + }, + "options_popup_update_error": { + "message": "การอัปเดตล้มเหลว โปรดลองอีกครั้งภายหลัง" + }, + "options_popup_update_filter": { + "message": "ถูกอัปเดตแล้ว" + }, + "options_popup_update_filters": { + "message": "ถูกอัปเดตแล้ว" + }, + "options_popup_update_not_found": { + "message": "ตัวกรองของคุณเป็นปัจจุบันแล้ว" + }, + "options_popup_update_title_error": { + "message": "การอัปเดตฟิลเตอร์มีข้อผิดพลาด" + }, + "options_popup_updating_filters": { + "message": "กำลังอัปเดตตัวกรอง..." + }, + "options_popup_url_placeholder": { + "message": "ใส่ URL หรือเส้นทาง" + }, + "options_popup_url_title": { + "message": "การสมัครสมาชิกตัวกรองใหม่" + }, + "options_popup_version_update_changelog_text": { + "message": "รุ่นนี้มีอะไรใหม่บ้าง" + }, + "options_popup_version_update_description_major": { + "message": "นี่คือการอัปเกรดส่วนขยายหลักที่นำคุณลักษณะและการปรับปรุงใหม่มามากมาย" + }, + "options_popup_version_update_description_minor": { + "message": "รุ่นนี้มีการแก้ไขข้อบกพร่องส่วนใหญ่และการปรับปรุงเล็กน้อย" + }, + "options_popup_version_update_disable_notification": { + "message": "ปิดการแจ้งเตือน" + }, + "options_popup_version_update_offer": { + "message": "คุณรู้หรือไม่ว่าความสามารถของ AdGuard ไม่ได้จำกัดอยู่ที่เบราว์เซอร์นี้?" + }, + "options_popup_version_update_offer_button_text": { + "message": "เรียนรู้เพิ่มเติม" + }, + "options_popup_version_update_title_text": { + "message": "ส่วนขยาย AdGuard ได้รับการอัปเดตเป็นเวอร์ชัน %current_version% แล้ว" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "ทำให้ WebRTC ใช้นโยบายที่อยู่ IP ที่เข้มงวดยิ่งขึ้น เพื่อช่วยซ่อนที่อยู่ IP จริงของคุณเมื่อคุณใช้พร็อกซีหรือ VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "ป้องกันการรั่วไหลของที่อยู่ IP ผ่าน WebRTC" + }, + "options_privacy": { + "message": "การป้องกันการติดตาม" + }, + "options_privacy_desc": { + "message": "ปกป้องกิจกรรมออนไลน์และข้อมูลส่วนบุคคลของคุณจากตัวติดตามเว็บ" + }, + "options_privacy_policy": { + "message": "นโยบายความเป็นส่วนตัว" + }, + "options_privacy_title": { + "message": "การป้องกันการติดตาม" + }, + "options_rate_us_cta": { + "message": "ให้คะแนนเรา" + }, + "options_remove_client_data_desc": { + "message": "บล็อก Google Chrome ไม่ให้ส่งข้อมูลรุ่นและการแก้ไขไปยังโดเมน Google" + }, + "options_remove_client_data_title": { + "message": "เอา X-Client-Data header ออก" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "เอาออก" + }, + "options_remove_filter_confirm_modal_title": { + "message": "นำตัวกรองนี้ออกไหม?" + }, + "options_report_bug": { + "message": "รายงานข้อผิดพลาด" + }, + "options_reset_settings": { + "message": "รีเซ็ตการตั้งค่า" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "รีเซ็ต" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "การตั้งค่าทั้งหมดจะถูกรีเซ็ตเป็นค่าเริ่มต้น" + }, + "options_reset_settings_confirm_modal_title": { + "message": "รีเซ็ตการตั้งค่า?" + }, + "options_reset_settings_done": { + "message": "รีเซ็ตการตั้งค่าแล้ว" + }, + "options_reset_settings_error": { + "message": "เกิดข้อผิดพลาดขณะรีเซ็ตการตั้งค่า" + }, + "options_reset_stats": { + "message": "ล้างสถิติ" + }, + "options_reset_stats_done": { + "message": "รีเซ็ตสถิติแล้ว" + }, + "options_rule_limits": { + "message": "ข้อจำกัดกฎ" + }, + "options_rule_limits_description": { + "message": "Chrome จำกัดจำนวนกฎที่สามารถใช้ได้" + }, + "options_rule_limits_dynamic": { + "message": "กฎไดนามิก" + }, + "options_rule_limits_dynamic_regex": { + "message": "กฎ Regex — รวมอยู่ในกฎที่ผู้ใช้เพิ่ม" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "กฎแบบไดนามิกที่ไม่ปลอดภัย (ใช้สำหรับการปรับเปลี่ยนขั้นสูงบางอย่าง เช่น $$redirect หรือ $$cookie) — รวมอยู่ในกฎที่ผู้ใช้เพิ่ม" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "กฎที่เพิ่มโดยผู้ใช้ เช่น \u003Cuser_rules>กฎของผู้ใช้\u003C/user_rules>, \u003Callowlist>เว็บไซต์ที่อนุญาต\u003C/allowlist>, \u003Ccustom_filters>ฟิลเตอร์กำหนดเอง\u003C/custom_filters>, และ ฟิลเตอร์แก้ไขด่วน" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "กฎที่ผู้ใช้เพิ่มเอง เช่น\u003Cuser_rules>กฎของผู้ใช้\u003C/user_rules>และ\u003Callowlist>เว็บไซต์ที่อนุญาต\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% ของ %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "กฎคงที่" + }, + "options_rule_limits_static_rules_all": { + "message": "กฎเกณฑ์จาก \u003Ca>ตัวกรองในตัว\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "กฎ Regex — รวมอยู่ในข้างต้น" + }, + "options_rule_limits_static_rulesets": { + "message": "กฎเกณฑ์คงที่" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>ตัวกรองในตัว\u003C/a>, เช่น การบล็อกความรำคาญหรือ ตัวกรองเฉพาะภาษา" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "ตัวเลือกที่ 3 หากคุณพอใจกับฟิลเตอร์เริ่มต้นที่เปิดใช้งานในปัจจุบัน \u003Ca>ให้ปิดคำเตือนนี้\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "ตัวเลือกที่ 3 หากคุณพอใจกับตัวกรองเริ่มต้นที่เปิดใช้งานในปัจจุบัน \u003Ca>ให้ปิดคำเตือนนี้\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "ตัวเลือกที่ 1. ลบส่วนขยายการบล็อกโฆษณาที่ไม่จำเป็นออกจากเบราว์เซอร์ของคุณ หากต้องการเปิดใช้งานตัวกรองที่ระบุไว้ในหัวข้อ \"ตัวกรองที่เปิดใช้งานก่อนการอัปเดต\" อีกครั้ง ให้คลิก \u003Ca>เปิดใช้งานตัวกรองอีกครั้ง\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "ตัวเลือกที่ 2 ติดตั้งแอป AdGuard Ad Blocker: ไม่มีข้อจำกัดในกฎการกรอง \u003Ca>ดาวน์โหลดแอป AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "การกระทำที่เป็นไปได้ของคุณ" + }, + "options_rule_limits_warning_explanation_description": { + "message": "ขีดจำกัดของกฎภายในที่ใช้งานอยู่เกินขีดจำกัดหลังจากการอัปเดตหรือการเพิ่มส่วนขยายใหม่ ตาม Manifest V3 เบราว์เซอร์ Chrome ของคุณตอบสนองโดยปิดการใช้งานตัวกรองภายในของส่วนขยายทั้งหมด ยกเว้นตัวกรองเริ่มต้น" + }, + "options_rule_limits_warning_explanation_title": { + "message": "เกิดอะไรขึ้น?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "ตัวกรองที่เปิดใช้งานก่อนการอัปเดต" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "เปิดใช้งานตัวกรองแล้ว" + }, + "options_rule_limits_warning_title": { + "message": "เบราว์เซอร์ได้ปรับเปลี่ยนรายการตัวกรองที่ใช้งานอยู่" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "ลบข้อจำกัดของกฎและรับการป้องกันแบบขยายที่ทำงานได้ในทุกเบราว์เซอร์" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "ติดตั้งแอปเดสก์ท็อป" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "ไปที่ตัวกรอง" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "จัดการส่วนขยาย" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "ส่วนขยายเบราว์เซอร์ใช้ขีดจำกัดกฎร่วมกัน การลบตัวปิดกั้นโฆษณาอื่นอาจทำให้มีกฎเพิ่มเติมสำหรับ AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "ลบตัวปิดกั้นโฆษณาอื่น" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "เปิดใช้งานตัวกรองที่คุณต้องการ ตัวกรองเฉพาะภาษาและความเป็นส่วนตัวอาจใช้กฎจำนวนมาก" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "ตรวจสอบตัวกรองที่มีอยู่" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "นี่คือสิ่งที่คุณสามารถทำได้" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "ถึงขีดจำกัดแล้ว — ตัวกรองบางรายการถูกปิดการใช้งาน" + }, + "options_rule_syntax": { + "message": "ไวยากรณ์กฎ" + }, + "options_safebrowsing_enabled": { + "message": "การป้องกันฟิชชิ่งและมัลแวร์" + }, + "options_safebrowsing_enabled_desc": { + "message": "แจ้งเตือนเกี่ยวกับเว็บไซต์มุ่งร้ายและฟิชชิ่งโดยใช้โมดูลความปลอดภัยในการท่องเว็บของ AdGuard \u003Ca>อ่านเพิ่มเติม\u003C/a>" + }, + "options_select_theme": { + "message": "ธีม" + }, + "options_select_update_period_12h": { + "message": "12 ชั่วโมง" + }, + "options_select_update_period_1h": { + "message": "1 ชั่วโมง" + }, + "options_select_update_period_24h": { + "message": "24 ชั่วโมง" + }, + "options_select_update_period_48h": { + "message": "48 ชั่วโมง" + }, + "options_select_update_period_6h": { + "message": "6 ชั่วโมง" + }, + "options_select_update_period_default": { + "message": "ค่าเริ่มต้น" + }, + "options_select_update_period_disabled": { + "message": "ปิดใช้งาน" + }, + "options_send_not_track_desc": { + "message": "ส่งสัญญาณ \u003Cgpc>Global Privacy Control\u003C/gpc> และ \u003Cdnt>Do Not Track\u003C/dnt> ไปยังเว็บไซต์ที่คุณเยี่ยมชม" + }, + "options_send_not_track_title": { + "message": "ส่งสัญญาณเพื่อยกเลิกการติดตาม" + }, + "options_set_update_interval": { + "message": "กรองช่วงเวลาการอัปเดต" + }, + "options_set_update_interval_desc": { + "message": "ทำให้ตัวกรองเป็นปัจจุบันเพื่อการบล็อกโฆษณาที่มีประสิทธิภาพมากขึ้น" + }, + "options_settings": { + "message": "การตั้งค่า AdGuard" + }, + "options_share_settings": { + "message": "การตั้งค่าการแชร์" + }, + "options_show_adguard_full_version_title": { + "message": "แสดงข้อมูลเกี่ยวกับ AdGuard เวอร์ชันเต็ม" + }, + "options_show_app_updated_notification": { + "message": "แจ้งเตือนเกี่ยวกับการอัปเดตส่วนขยาย" + }, + "options_show_blocked_ads_count_title": { + "message": "ระบุจำนวนโฆษณาที่ถูกปิดกั้นบนไอคอนส่วนขยาย AdGuard" + }, + "options_show_context_menu_title": { + "message": "เพิ่มรายการ AdGuard ในเมนูบริบทของเบราว์เซอร์" + }, + "options_site": { + "message": "เว็บไซต์ทางการ" + }, + "options_skip_to_main_content": { + "message": "ข้ามไปที่เนื้อหาหลัก" + }, + "options_stealth_general_title": { + "message": "ทั่วไป" + }, + "options_stealth_miscellaneous_title": { + "message": "เบ็ดเตล็ด" + }, + "options_stealth_tracking_methods_title": { + "message": "วิธีการติดตาม" + }, + "options_strip_tracking_params_description": { + "message": "ลบพารามิเตอร์การติดตามจาก URL ของหน้าโดยใช้ตัวกรองการติดตาม URL ของ AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "ลบพารามิเตอร์การติดตามจาก URL" + }, + "options_stripped_tracking_parameters": { + "message": "ลบพารามิเตอร์การติดตามออกแล้ว" + }, + "options_theme_selector_dark": { + "message": "มืด" + }, + "options_theme_selector_light": { + "message": "สว่าง" + }, + "options_theme_selector_system": { + "message": "ระบบ" + }, + "options_third_party_block_cookies_warning": { + "message": "หากคุณบล็อกคุกกี้เหล่านี้ คุณอาจต้องเข้าสู่ระบบใหม่ในบางเว็บไซต์หรือพบปัญหาเกี่ยวกับคุกกี้อื่น ๆ" + }, + "options_third_party_desc": { + "message": "ป้องกันไม่ให้ผู้โฆษณาติดตามพฤติกรรมของคุณข้ามหลายหน้าโดยจำกัดอายุการใช้งานของคุกกี้ของบุคคลที่สาม" + }, + "options_third_party_title": { + "message": "ลบคุกกี้ของบุคคลที่สาม" + }, + "options_update_antibanner_filters": { + "message": "ตรวจสอบการอัปเดตตัวกรอง" + }, + "options_use_optimized_filters": { + "message": "ใช้ตัวกรองที่ปรับให้เหมาะสม" + }, + "options_use_optimized_filters_desc": { + "message": "ใช้ฟิลเตอร์เวอร์ชันสั้นที่มีเฉพาะกฎที่เป็นที่นิยมมากที่สุดเพื่อประหยัดปริมาณการใช้งาน เหมาะกับเบราว์เซอร์มือถือมากกว่า" + }, + "options_user_rules_clear_search": { + "message": "ล้างการค้นหา" + }, + "options_user_rules_create_rule": { + "message": "สร้างกฎ" + }, + "options_user_rules_delete_all": { + "message": "ลบทั้งหมด" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "กฎของผู้ใช้ทั้งหมดจะถูกลบอย่างถาวร" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "ลบทั้งหมด?" + }, + "options_user_rules_delete_all_success": { + "message": "ลบกฎของผู้ใช้ทั้งหมดแล้ว" + }, + "options_user_rules_delete_rule": { + "message": "ลบออกจากตัวกรองผู้ใช้" + }, + "options_user_rules_deleted_notification": { + "message": "ลบกฎของผู้ใช้แล้ว:" + }, + "options_user_rules_description_key": { + "message": "กฎของคุณสำหรับการบล็อกและการปลดบล็อกโฆษนา หรือทั้งเว็บไซต์" + }, + "options_user_rules_edit_rule": { + "message": "แก้ไขกฎ" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "ไปที่เอดิเตอร์" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "กฎของคุณจะแสดงที่นี่หลังจากที่คุณปิดมัน" + }, + "options_user_rules_editor_stub_title": { + "message": "โปรแกรมแก้ไขเปิดอยู่ในหน้าต่างอื่น" + }, + "options_user_rules_empty_placeholder": { + "message": "ยังไม่มีการตั้งค่ากฎ" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "กำลังไฮไลต์กฎ…" + }, + "options_user_rules_import_error": { + "message": "นำเข้ากฎของผู้ใช้ไม่สำเร็จ โปรดลองอีกครั้ง" + }, + "options_user_rules_import_success": { + "message": "นำเข้ากฎของผู้ใช้สำเร็จ" + }, + "options_user_rules_menu": { + "message": "การดำเนินการกฎของผู้ใช้" + }, + "options_user_rules_no_match": { + "message": "ไม่พบอะไร" + }, + "options_user_rules_search_placeholder": { + "message": "ค้นหา" + }, + "options_user_rules_switch_to_editor": { + "message": "สลับไปยังมุมมองตัวแก้ไข" + }, + "options_user_rules_switch_to_list": { + "message": "สลับไปยังมุมมองรายการ" + }, + "options_user_rules_undo": { + "message": "เลิกทำ" + }, + "options_userfilter": { + "message": "ตัวกรองผู้ใช้" + }, + "options_userfilter_description_key": { + "message": "คุณสามารถเพิ่มกฎของคุณเองได้ที่นี่ ตัวเลือกนี้แนะนำสำหรับผู้ใช้ขั้นสูงที่คุ้นเคยกับ HTML/CSS อ่าน \u003Ca>บทแนะนำกฎการกรอง\u003C/a> เพื่อเรียนรู้วิธีเขียนกฎตัวกรองของคุณเอง" + }, + "options_userfilter_export": { + "message": "ส่งออก" + }, + "options_userfilter_import": { + "message": "นำเข้า" + }, + "options_userfilter_leave_subtitle": { + "message": "การเปลี่ยนแปลงของคุณในกฎจะหายไป" + }, + "options_userfilter_line_break": { + "message": "ตัวแบ่งบรรทัด" + }, + "options_userfilter_line_break_off": { + "message": "Line break: Disabled" + }, + "options_userfilter_line_break_on": { + "message": "การแบ่งบรรทัด: เปิดใช้งาน" + }, + "options_userfilter_subtitle_key": { + "message": "อนุญาตให้คุณเพิ่มกฎการกรองของคุณเอง" + }, + "popup_abuse_site": { + "message": "แจ้งปัญหา" + }, + "popup_adguard_footer_title": { + "message": "ปกป้องอุปกรณ์เคลื่อนที่ของคุณ" + }, + "popup_adguard_for_android": { + "message": "AdGuard สำหรับ Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard สำหรับ iOS" + }, + "popup_block_site_ads_option": { + "message": "Block ads manually" + }, + "popup_get_system_wide_protection": { + "message": "รับการป้องกันทั่วทั้งระบบ" + }, + "popup_header_cta_link": { + "message": "วิธีเพิ่มการป้องกัน" + }, + "popup_header_update_filters": { + "message": "ตรวจสอบการอัปเดตตัวกรอง" + }, + "popup_limits_exceeded_warning": { + "message": "เบราว์เซอร์ของคุณได้แก้ไขรายการตัวกรองที่ใช้งานอยู่ภายใน" + }, + "popup_open_filtering_log": { + "message": "เปิดบันทึกการกรอง" + }, + "popup_open_settings": { + "message": "เปิดการตั้งค่า AdGuard" + }, + "popup_protection_button": { + "message": "การป้องกัน AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "ลบกฎการใช้งานของเว็บไซต์นี้" + }, + "popup_resume_protection_button": { + "message": "ดำเนินการต่อ" + }, + "popup_security_report": { + "message": "รายงานความปลอดภัยของเว็บไซต์" + }, + "popup_site_exception_information": { + "message": "การกรองถูกปิดใช้งานเนื่องจากอาจรบกวนการทำงานของเว็บไซต์นี้" + }, + "popup_site_filtering_state_disabled": { + "message": "การป้องกันปิดอยู่" + }, + "popup_site_filtering_state_disabling": { + "message": "การปิดการใช้งานการป้องกัน..." + }, + "popup_site_filtering_state_enabled": { + "message": "การป้องกันเปิดอยู่" + }, + "popup_site_filtering_state_enabling": { + "message": "การเปิดใช้งานการป้องกัน..." + }, + "popup_site_filtering_state_loading": { + "message": "กำลังโหลด..." + }, + "popup_site_filtering_state_paused": { + "message": "หยุดการป้องกันชั่วคราว" + }, + "popup_site_filtering_state_pausing": { + "message": "การหยุดการป้องกัน..." + }, + "popup_site_filtering_state_resuming": { + "message": "กำลังดำเนินการปกป้องต่อ..." + }, + "popup_site_filtering_state_secure_page": { + "message": "หน้าเว็บที่ปลอดภัย" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "สำหรับทุกเว็บไซต์" + }, + "popup_statistics_all_categories": { + "message": "ทั้งหมด" + }, + "popup_statistics_category_advertising": { + "message": "โฆษณา" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "หมวดหมู่สถิติ" + }, + "popup_statistics_category_other": { + "message": "อื่น ๆ" + }, + "popup_statistics_category_social_media": { + "message": "สื่อสังคม" + }, + "popup_statistics_category_trackers": { + "message": "ตัวติดตาม" + }, + "popup_statistics_months_apr": { + "message": "เม.ย." + }, + "popup_statistics_months_aug": { + "message": "ส.ค." + }, + "popup_statistics_months_dec": { + "message": "ธ.ค." + }, + "popup_statistics_months_feb": { + "message": "ก.พ." + }, + "popup_statistics_months_jan": { + "message": "ม.ค." + }, + "popup_statistics_months_jul": { + "message": "ก.ค." + }, + "popup_statistics_months_jun": { + "message": "มิ.ย." + }, + "popup_statistics_months_mar": { + "message": "มี.ค." + }, + "popup_statistics_months_may": { + "message": "พ.ค." + }, + "popup_statistics_months_nov": { + "message": "พ.ย." + }, + "popup_statistics_months_oct": { + "message": "ต.ค." + }, + "popup_statistics_months_sep": { + "message": "ก.ย." + }, + "popup_statistics_time_day": { + "message": "24 ชั่วโมง" + }, + "popup_statistics_time_label": { + "message": "ระยะเวลาสถิติ" + }, + "popup_statistics_time_month": { + "message": "30 วัน" + }, + "popup_statistics_time_week": { + "message": "7 วัน" + }, + "popup_statistics_time_year": { + "message": "1 ปี" + }, + "popup_statistics_total": { + "message": "รวม" + }, + "popup_statistics_week_days_fri": { + "message": "ศุกร์" + }, + "popup_statistics_week_days_mon": { + "message": "จันทร์" + }, + "popup_statistics_week_days_sat": { + "message": "เสาร์" + }, + "popup_statistics_week_days_sun": { + "message": "อาทิตย์" + }, + "popup_statistics_week_days_thu": { + "message": "พฤหัส" + }, + "popup_statistics_week_days_tue": { + "message": "อังคาร" + }, + "popup_statistics_week_days_wed": { + "message": "พุธ" + }, + "popup_switch_button": { + "message": "การป้องกันสำหรับเว็บไซต์ปัจจุบัน" + }, + "popup_tab_actions": { + "message": "การกระทำ" + }, + "popup_tab_blocked_all_count": { + "message": "ปิดกั้นแล้วรวม: %num%" + }, + "popup_tab_blocked_count": { + "message": "ปิดกั้นแล้ว: %num%" + }, + "popup_tab_current_website": { + "message": "เว็บไซต์ปัจจุบัน" + }, + "popup_tab_statistics": { + "message": "สถิติ" + }, + "popup_tabs": { + "message": "แท็บ" + }, + "popup_tooltip_loading": { + "message": "กำลังโหลด..." + }, + "popup_tooltip_protection_disabled": { + "message": "การป้องกันปิดอยู่" + }, + "popup_tooltip_protection_enabled": { + "message": "เปิดใช้งานการป้องกัน" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "บางกฎไม่ถูกนำมาใช้" + }, + "popup_tooltip_update_available": { + "message": "มีอัปเดตพร้อมใช้งาน" + }, + "post_install_loading": { + "message": "กำลังโหลดส่วนขยาย..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "เกินกฎในส่วนขยายของเบราว์เซอร์ AdGuard โปรดตรวจสอบตัวกรองของคุณและปิดใช้งานตัวกรองที่คุณไม่ต้องการ" + }, + "text_collapser_hide_default": { + "message": "ซ่อนข้อความแบบเต็ม" + }, + "text_collapser_show_default": { + "message": "แสดงข้อความแบบเต็ม" + }, + "update_available_desc": { + "message": "หากต้องการบล็อกโฆษณาอย่างมีประสิทธิภาพ ให้อัปเดตส่วนขยายและตัวกรองของคุณให้เป็นปัจจุบัน" + }, + "update_available_title": { + "message": "มีอัปเดต" + }, + "update_available_update_btn": { + "message": "อัปเดต" + }, + "update_check": { + "message": "ตรวจสอบการปรับปรุง" + }, + "update_checking_in_progress": { + "message": "ตรวจสอบการปรับปรุง..." + }, + "update_failed_text": { + "message": "ไม่สามารถทําการอัปเดตให้เสร็จสมบูรณ์" + }, + "update_failed_try_again_btn": { + "message": "ลองอีกครั้ง" + }, + "update_installing_in_progress_desc": { + "message": "ส่วนขยายจะรีสตาร์ทหลังจากการอัปเดต" + }, + "update_installing_in_progress_title": { + "message": "กำลังอัปเดตส่วนขยายและตัวกรอง..." + }, + "update_not_needed": { + "message": "ส่วนขยายและตัวกรองของคุณเป็นเวอร์ชันล่าสุดแล้ว" + }, + "update_success_text": { + "message": "อัปเดตส่วนขยายและตัวกรองแล้ว" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/tr/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/tr/messages.json new file mode 100644 index 0000000..774a065 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/tr/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% otomatik olarak etkinleştirildi." + }, + "alert_popup_filter_enabled_title": { + "message": "Filtre otomatik etkinleştirildi" + }, + "background_tab_title": { + "message": "Arka plan sekmesi" + }, + "blocking_pages_advanced_button": { + "message": "Gelişmiş" + }, + "blocking_pages_btn_go_back": { + "message": "Geri dön" + }, + "blocking_pages_btn_proceed": { + "message": "Yine de devam et" + }, + "blocking_pages_malware": { + "message": "\u003Cstrong>%host%\u003C/strong> adresindeki bu site kötü amaçlı yazılım sitesi olarak bildirildi ve güvenlik tercihlerinize göre engellendi." + }, + "blocking_pages_more_info_button": { + "message": "Daha fazla bilgi" + }, + "blocking_pages_page_title": { + "message": "Erişim reddedildi" + }, + "blocking_pages_phishing": { + "message": "\u003Cstrong>%host%\u003C/strong> adresindeki bu site kimlik avı sitesi olarak rapor edildi ve güvenlik tercihlerinize bağlı olarak engellendi." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard, aşağıdaki filtre kuralı nedeniyle bu sayfanın açılmasını önledi" + }, + "blocking_pages_rule_header_title": { + "message": "AdGuard tarafından engellendi" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard bu sayfaya erişimi engelledi" + }, + "clear_button_title": { + "message": "Temizle" + }, + "close_button_title": { + "message": "Kapat" + }, + "context_block_site_ads": { + "message": "Reklamları elle engelle" + }, + "context_complaint_website": { + "message": "Bir sorun bildir" + }, + "context_disable_protection": { + "message": "AdGuard korumasını duraklat" + }, + "context_enable_protection": { + "message": "AdGuard korumasını sürdür" + }, + "context_open_log": { + "message": "Filtreleme günlüğü" + }, + "context_open_settings": { + "message": "AdGuard ayarları" + }, + "context_security_report": { + "message": "Site güvenliğini kontrol et" + }, + "context_site_exception": { + "message": "Bu site istisnalar listesindedir" + }, + "context_site_filtering_disabled": { + "message": "AdGuard bu sayfayı filtreleyemiyor" + }, + "context_site_filtering_off": { + "message": "Bu sitede filtrelemeyi devre dışı bırak" + }, + "context_site_filtering_on": { + "message": "Bu sitede filtrelemeyi etkinleştir" + }, + "context_site_protection_disabled": { + "message": "AdGuard koruması duraklatıldı" + }, + "context_update_antibanner_filters": { + "message": "Filtre güncellemelerini denetle" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Reklamları ve açılır pencereleri engelleyen eşsiz uzantı. Facebook, YouTube ve diğer tüm sitelerdeki reklamları engeller." + }, + "filtering_clear_log_events": { + "message": "Günlüğü temizle" + }, + "filtering_log_actions_menu": { + "message": "Kayıt eylemleri filtreleniyor" + }, + "filtering_log_assumed_rule_description": { + "message": "Bu varsayılan bir kuraldır. Ayrıntılar için \u003Ca>Bilgi tabanımıza\u003C/a> bakın" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP istek yöntemi" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP durum kodu" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Üçüncü taraf isteği" + }, + "filtering_log_details_modal_back_button": { + "message": "İsteğe geri dön" + }, + "filtering_log_details_modal_beautify_button": { + "message": "İyileştir" + }, + "filtering_log_details_modal_try_again": { + "message": "Tekrar dene" + }, + "filtering_log_filter_allowed": { + "message": "İzin verilen" + }, + "filtering_log_filter_blocked": { + "message": "Engellenen" + }, + "filtering_log_filter_modified": { + "message": "Değiştirilen" + }, + "filtering_log_filter_regular": { + "message": "Normal" + }, + "filtering_log_filter_user_rules": { + "message": "Kullanıcı kuralları" + }, + "filtering_log_hide_referrer": { + "message": "Referer üçüncü taraflardan gizlendi" + }, + "filtering_log_hide_search_queries": { + "message": "Arama sorgularınız gizlendi" + }, + "filtering_log_in_allowlist": { + "message": "Siteye izin verildi" + }, + "filtering_log_modified_rules": { + "message": "Değiştirilen kural: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Evet, sakla" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Bu seçenek bellek kullanımını önemli ölçüde artırabilir" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Günlüğü sakla?" + }, + "filtering_log_preserve_log_off": { + "message": "Günlüğü kaydetme" + }, + "filtering_log_preserve_log_on": { + "message": "Günlüğü sakla" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Tekrar gösterme" + }, + "filtering_log_privacy_applied_rules": { + "message": "İzleme koruması uygulandı" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data başlığı kaldırıldı" + }, + "filtering_log_search_string": { + "message": "Ara" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Sekmelerde ara" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track başlığı gönderildi" + }, + "filtering_log_status_allowed": { + "message": "İzin verilen" + }, + "filtering_log_status_blocked": { + "message": "Engellenen" + }, + "filtering_log_status_modified": { + "message": "Değiştirilen" + }, + "filtering_log_status_processed": { + "message": "İşlenen" + }, + "filtering_log_stealth_rules": { + "message": "İzleme koruması kuralı: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "İstek kaynağı" + }, + "filtering_log_tag_request_status": { + "message": "Filtreleme durumu" + }, + "filtering_log_tag_request_type": { + "message": "İstek türü" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "İzin verilen ve engellenmeyen istekler" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Engellenen istekler" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stil sayfaları" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Birinci taraf istekleri" + }, + "filtering_log_tag_tooltip_html": { + "message": "Belgeler ve alt belgeler" + }, + "filtering_log_tag_tooltip_img": { + "message": "Görüntüler" + }, + "filtering_log_tag_tooltip_js": { + "message": "Betikler" + }, + "filtering_log_tag_tooltip_media": { + "message": "Medya" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Değiştirilen istekler" + }, + "filtering_log_tag_tooltip_other": { + "message": "Yazı tipi, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Filtreleme yapılmadan işlenen istekler" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Üçüncü taraf istekleri" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Kullanıcı kurallarından etkilenen istekler" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests ve getirme istekleri" + }, + "filtering_log_title": { + "message": "Filtreleme günlüğü" + }, + "filtering_menu_open_filters": { + "message": "Özelleştir" + }, + "filtering_modal_add_rule": { + "message": "Ekle" + }, + "filtering_modal_allow_title": { + "message": "İzin verme kuralı ekle" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Uygulanan kural | Uygulanan kurallar" + }, + "filtering_modal_apply_domains": { + "message": "Tüm sitelere uygula" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Varsayılan kural: | Varsayılan kurallar:" + }, + "filtering_modal_block": { + "message": "Engelle" + }, + "filtering_modal_block_again": { + "message": "Tekrar engelle" + }, + "filtering_modal_block_title": { + "message": "Engelleme kuralı ekle" + }, + "filtering_modal_converted_to": { + "message": "Dönüştürüldü:" + }, + "filtering_modal_cookie": { + "message": "Çerez:" + }, + "filtering_modal_copied": { + "message": "Kopyalandı" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Panoya kopyala" + }, + "filtering_modal_declarative_rule": { + "message": "DNR kuralı:" + }, + "filtering_modal_element": { + "message": "Öğe:" + }, + "filtering_modal_exception_title": { + "message": "İstisna ekle" + }, + "filtering_modal_filter": { + "message": "Filtre" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Filtreleme durumu" + }, + "filtering_modal_hide_full_element": { + "message": "Tüm öğeyi gizle" + }, + "filtering_modal_hide_full_rule": { + "message": "Tam kuralı gizle" + }, + "filtering_modal_hide_full_url": { + "message": "Tam URL'yi gizle" + }, + "filtering_modal_important": { + "message": "Kurala daha yüksek öncelik ver" + }, + "filtering_modal_info_title": { + "message": "İstek ayrıntıları" + }, + "filtering_modal_open_in_new_tab": { + "message": "Yeni sekmede aç" + }, + "filtering_modal_options_desc": { + "message": "Seçenekler" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Orijinal kural: | Orijinal kurallar:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Neye izin verilmeli" + }, + "filtering_modal_patterns_desc_block": { + "message": "Hangisi engellenecek" + }, + "filtering_modal_preview_request_button": { + "message": "Önizleme" + }, + "filtering_modal_preview_title": { + "message": "Preview" + }, + "filtering_modal_privacy": { + "message": "İzleme koruması" + }, + "filtering_modal_remove_allowlist": { + "message": "İzin listesinden kaldır" + }, + "filtering_modal_remove_param": { + "message": "Sorgu parametrelerini kaldır" + }, + "filtering_modal_remove_user": { + "message": "Kuralı sil" + }, + "filtering_modal_rule": { + "message": "Kural:" + }, + "filtering_modal_rule_text_desc": { + "message": "Kural" + }, + "filtering_modal_rules": { + "message": "Kurallar:" + }, + "filtering_modal_show_full_element": { + "message": "Tüm öğeyi goster" + }, + "filtering_modal_show_full_rule": { + "message": "Tam kuralı göster" + }, + "filtering_modal_show_full_url": { + "message": "Tam URL'yi göster" + }, + "filtering_modal_source": { + "message": "Kaynak" + }, + "filtering_modal_status_text_desc": { + "message": "Durum" + }, + "filtering_modal_status_text_error": { + "message": "Önizleme yüklenemedi. Lütfen tekrar deneyin" + }, + "filtering_modal_status_text_loading": { + "message": "Yükleniyor..." + }, + "filtering_modal_third_party": { + "message": "Sadece üçüncü taraf isteklerine uygula" + }, + "filtering_modal_type": { + "message": "Tür" + }, + "filtering_modal_unblock": { + "message": "Engeli kaldır" + }, + "filtering_refresh_tab_short": { + "message": "Yenile" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Sayfayı yenile" + }, + "filtering_table_action": { + "message": "Eylem" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Hiçbir şey bulunamadı. Günlük kayıtlarını görüntülemek için \u003Creset>filtreleri devre dışı bırakın\u003C/reset> veya \u003Crefresh>sayfayı yenileyin\u003C/refresh>" + }, + "filtering_table_filter": { + "message": "Filtre" + }, + "filtering_table_open_details": { + "message": "Ayrıntıları aç" + }, + "filtering_table_rule": { + "message": "Filtreleme kuralı" + }, + "filtering_table_source": { + "message": "Kaynak" + }, + "filtering_table_status": { + "message": "Durum" + }, + "filtering_table_type": { + "message": "Tür" + }, + "filtering_type_all": { + "message": "Tümü" + }, + "filtering_type_other": { + "message": "Diğer" + }, + "filters_download_loading": { + "message": "Filtre veri tabanı yüklenirken lütfen bekleyin..." + }, + "filters_download_title": { + "message": "Filtre veri tabanı yükleniyor..." + }, + "fullscreen_user_rules_title": { + "message": "Kullanıcı kuralları" + }, + "group_description_adblocking": { + "message": "Can sıkıcı afişler, açılır pencereler, video reklamları ve benzerleriyle tek seferde hepsiyle başa çıkmak için reklam engellemeyi yapılandırın" + }, + "group_description_annoyances": { + "message": "Açılır pencereleri ve çerez bildirimleri gibi diğer rahatsız edici bildirimleri kaldırın" + }, + "group_description_custom": { + "message": "İnternet filtrelemesini tercihinize göre ayarlamak için kendi filtrelerinizi oluşturun." + }, + "group_description_lang": { + "message": "Kendinizi sınırlamayın — herhangi bir dilde sitelerdeki reklamları engelleyin" + }, + "group_description_miscellaneous": { + "message": "AdGuard ile internette gezinmenizi ayrıntılı yapılandırmak için daha fazla ayar" + }, + "group_description_security": { + "message": "Kötü amaçlı yazılımlar, kimlik avı ve diğer çevrimiçi tehditlere karşı kendinizi koruyun" + }, + "group_description_social": { + "message": "İstenmeyen \"Beğen\"/\"Paylaş\" düğmelerini ve diğer sosyal medya araçlarını gizleyin" + }, + "group_description_stealth": { + "message": "Bilinen tüm popüler izleme yöntemlerini engelleyerek kimliğinizi ve hassas kişisel bilgilerinizi binlerce çevrimiçi izleyiciden koruyun" + }, + "name": { + "message": "AdGuard Reklam Engelleyici" + }, + "opera_search_permission_dont_show": { + "message": "Tekrar gösterme" + }, + "opera_search_permission_go_to_settings": { + "message": "Ayarlar öğesine gidin" + }, + "opera_search_permission_warning": { + "message": "Arama reklamlarını engellemek için, tarayıcının ayarlarında arama sayfası sonuçlarına erişime izin verin" + }, + "options_about": { + "message": "Hakkında" + }, + "options_about_libs": { + "message": "Kullanılan kütüphaneler" + }, + "options_about_title": { + "message": "AdGuard Tarayıcı uzantısı" + }, + "options_about_update_available": { + "message": "%version% sürümü mevcut. Otomatik olarak indirilecek ve kurulacaktır." + }, + "options_about_version": { + "message": "Sürüm" + }, + "options_acknowledgment": { + "message": "Katkıda Bulunanlar" + }, + "options_add_custom_filter": { + "message": "Özel filtre ekle" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Ekle" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Filtreniz denetleniyor..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL, filtre listesi yerine bir web sayfasıyla yanıt verdi. Lütfen filtre dosyasına doğrudan bir bağlantı sağlayın." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Lütfen tekrar deneyin veya destek ekibiyle iletişime geçin" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Özel filtre eklenemedi" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Filtre adı:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Güvenilir" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Güvenilir filtreler güçlü kural değiştiriciler kullanabilir – güvenilir geliştiricilerin filtrelerini kullandığınızdan emin olun" + }, + "options_add_custom_filter_modal_title": { + "message": "Özel filtre ekle" + }, + "options_all_limits_exceeded_warning": { + "message": "Etkin yerleşik kural sınırına ulaştınız. Tarayıcınız etkin yerleşik filtrelerin listesini değiştirdi. Etkinleştirilen filtre sayısı %expected% taneden %current% taneye değişti." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Tarayıcınızın etkin yerleşik kural sınırına ulaştınız. Tarayıcınız etkin yerleşik filtre listesini %expected% taneden %current% taneye düşürdü" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tarayıcınız \u003Cexternal-link>bazı kural türlerini\u003C/external-link> kısıtlıyor. Tüm kuralları uygulamak için, tarayıcınızın \u003Csettings-link>uzantı ayarlarında\u003C/settings-link> \u003Cb>Kullanıcı komut dosyalarına izin ver\u003C/b> öğesini etkinleştirin" + }, + "options_allowlist": { + "message": "İzin listesi" + }, + "options_allowlist_alert_invert": { + "message": "İzin listesi ters çevrildi. Reklamlar yalnızca kendisine eklenen sitelerde engellenir." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Ters çevirmeyi durdur\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard, listedeki sitelerde reklamları ve izleyicileri engellemez" + }, + "options_allowlist_invalid_entries": { + "message": "Kaydetmek için yalnızca alan adları veya URL'ler kalsın. Bunların düzeltilmesi gerekiyor: %entries%" + }, + "options_allowlist_invert": { + "message": "İzin listesini ters çevir" + }, + "options_allowlist_invert_desc": { + "message": "Sadece izin verilen sitelerdeki reklamları ve izleyicileri engeller" + }, + "options_allowlist_leave_subtitle": { + "message": "İzin listesindeki değişiklikleriniz kaybolacaktır" + }, + "options_allowlist_menu": { + "message": "İzin listesi eylemleri" + }, + "options_anonymized_usage_data_description": { + "message": "Uzantı kullanımına ilişkin anonim istatistikleri AdGuard'a gönderir. \u003Cbutton>Daha fazla bilgi edin\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Anladım" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Bu veriler şunları içerir:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Tıkladığınız düğmelerin adları" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Etkileşimde bulunduğunuz ekranların adları" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Oturum tanımlayıcıları" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Bu veriler anonimdir ve yalnızca şirket içinde kullanılır. Üçüncü taraflarla asla paylaşmayız" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "AdGuard'ın işlevselliğini analiz etmek ve geliştirmek için bu bilgilere ihtiyacımız var" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Uzantı kullanım verileri" + }, + "options_anonymized_usage_data_title": { + "message": "Anonim uzantı kullanım verilerini gönder" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Bu özel filtre zaten eklenmiş" + }, + "options_antibanner_custom_group": { + "message": "Özel" + }, + "options_antibanner_custom_group_description": { + "message": "Dosyadan veya URL'den filtre eklemenizi sağlar" + }, + "options_antibanner_rules_count": { + "message": "Kural: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Güncellendi: %date%" + }, + "options_block_acceptable_ads": { + "message": "Arama motoru reklamlarını ve sitelerin öz tanıtımını engelle" + }, + "options_block_acceptable_ads_desc": { + "message": "Arama sonuçlarındaki reklamları ve sitelerin öz tanıtımını engeller. \u003Ca>Daha fazla bilgi edinin\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Çerezleri engellemek için, kullanım süresini 0 olarak ayarlayın" + }, + "options_block_known_trackers_description": { + "message": "AdGuard İzleme Koruması filtresini kullanarak izleyicileri ve web analizlerini engeller" + }, + "options_block_known_trackers_title": { + "message": "İzleyicileri engelle" + }, + "options_check_update_progress": { + "message": "Denetleniyor..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Temizle" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Veri kullanımına ilişkin tüm istatistikler kalıcı olarak silinecektir" + }, + "options_clear_stats_confirm_modal_title": { + "message": "İstatistikler temizlensin mi?" + }, + "options_clipboard_permission_warning": { + "message": "Kuralları kopyalamak ve yapıştırmak için AdGuard'ın panoya erişmesine izin verin. \u003Ca>İzin ver\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Reklam filtresi kullanımına ilişkin anonim istatistikleri AdGuard’a gönderir. \u003Ca>Daha fazla bilgi edinin\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "AdGuard filtrelerinin geliştirilmesine yardım edin" + }, + "options_coming_soon": { + "message": "Çok yakında" + }, + "options_confirm_modal_cancel_button": { + "message": "İptal" + }, + "options_copyright": { + "message": "Tüm hakları saklıdır." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Özel filtreleri kullanmak için tarayıcınızın \u003Csettings-link>uzantı ayarlarında\u003C/settings-link> \u003Cb>Kullanıcı komut dosyalarına izin ver\u003C/b> öğesini etkinleştirin" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Özel filtreleri kullanmak için tarayıcınızın \u003Csettings-link>uzantı ayarlarında\u003C/settings-link> \u003Cb>Geliştirici modu\u003C/b> öğesini açın" + }, + "options_desktop_app_promo_button_linux": { + "message": "Linux için AdGuard'ı edin" + }, + "options_desktop_app_promo_button_mac": { + "message": "Mac için AdGuard'ı edin" + }, + "options_desktop_app_promo_button_windows": { + "message": "Windows için AdGuard'ı edin" + }, + "options_desktop_app_promo_description": { + "message": "Spotify, Discord veya Zoom gibi uygulamalar hâlâ reklam gösterebilir ve etkinliğinizi izleyebilir" + }, + "options_desktop_app_promo_subdescription": { + "message": "Masaüstü uygulamamız sizi bunlardan koruyabilir" + }, + "options_desktop_app_promo_title": { + "message": "Uzantı yalnızca tarayıcıyı korur" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Tarayıcınız \u003Cexternal-link>bazı kural türlerini\u003C/external-link> kısıtlıyor. Tüm kuralları uygulamak için, tarayıcınızın \u003Csettings-link>uzantı ayarlarında\u003C/settings-link> \u003Cb>Geliştirici modu\u003C/b> öğesini açın" + }, + "options_disable_webrtc_desc": { + "message": "Proxy veya VPN kullansanız bile gerçek IP adresinizi sızdırabilecek WebRTC'yi engeller. Bazı mesajlaşma uygulamaları, canlı yayın platformları veya oyunlar düzgün çalışmayabilir" + }, + "options_disable_webrtc_title": { + "message": "WebRTC'i engelle" + }, + "options_discuss": { + "message": "AdGuard'ı Tartışın" + }, + "options_do_you_like_question": { + "message": "AdGuard'ı sevdiniz mi?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Pencere modundan çık" + }, + "options_editor_indicator_saved": { + "message": "Kaydedildi" + }, + "options_editor_indicator_saving": { + "message": "Kaydediliyor..." + }, + "options_editor_leave_cancel": { + "message": "Düzenlemeye geri dön" + }, + "options_editor_leave_confirm": { + "message": "Evet, çık" + }, + "options_editor_leave_title": { + "message": "Kaydetmeden çıkmak mı istiyorsunuz?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Düzenleyiciyi yeni pencerede aç" + }, + "options_editor_save": { + "message": "Kaydet" + }, + "options_editor_save_error": { + "message": "Değişiklikler kaydedilemedi. Tekrar deneyin veya destek ile iletişime geçin" + }, + "options_empty_custom_filter": { + "message": "Henüz herhangi bir özel filtreniz yok" + }, + "options_enable_autodetect_filter": { + "message": "En uygun filtreleri otomatik olarak etkinleştir" + }, + "options_enable_autodetect_filter_desc": { + "message": "Sitenin dilini algılar ve uygun filtreleri etkinleştirir" + }, + "options_export_settings": { + "message": "Ayarları dışa aktar" + }, + "options_filters": { + "message": "Filtreler" + }, + "options_filters_annoyances_consent_description": { + "message": "Bir veya daha fazla rahatsızlık filtresini etkinleştirmek üzeresiniz. Bu filtreler, ya web sitesi içeriğiyle ilgisiz olan ya da ilgili olsa bile kullanıcı deneyiminizi olumsuz etkileyen öğeleri engeller. Web sitesi sahipleri bu öğeleri zorunlu kabul edebilir: eğer bunları engellerseniz, sitenin kullanım şartlarını ihlal etmiş olabilirsiniz; bazı web sitesi işlevleri kullanılamayabilir veya düzgün çalışmayabilir. Ziyaret ettiğiniz web sitelerinin kullanım şartlarına uymaktan yalnızca sizin sorumlu olduğunuzu ve AdGuard’ın ürünlerimizi kullanarak ziyaret ettiğiniz web sitelerinin kullanım şartlarına uyumunuzdan sorumlu olmadığını anlıyor ve kabul ediyorsunuz." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Etkinleştir" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Ana sayfa" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "AdGuard'ın can sıkıcı öğe filtrelerinin neleri engellediğine ilişkin ayrıntılar için bkz. \u003Ca>Filtre politikası\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Bu filtreler etkinleştirilsin mi?" + }, + "options_filters_annoyances_consent_title": { + "message": "Can sıkıcı öğe filtrelerini etkinleştirmeden önce lütfen dikkatlice oku" + }, + "options_filters_back_button": { + "message": "Geri dön" + }, + "options_filters_empty_title": { + "message": "Hiçbir şey bulunamadı" + }, + "options_filters_enabled": { + "message": "Etkin:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% ve %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% ve %more% tane daha" + }, + "options_filters_enabled_per_group": { + "message": "Etkin: %current% / %total%" + }, + "options_filters_filter_link": { + "message": "Ana sayfaya git" + }, + "options_filters_filter_tags": { + "message": "Filtre etiketleri" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Bu filtreye güvenmeyi seçtiniz." + }, + "options_filters_filter_updated": { + "message": "güncellendi:" + }, + "options_filters_filter_version": { + "message": "sürüm:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Toplam kural: %num%" + }, + "options_filters_last_checked": { + "message": "Son kontrol edildi: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Tüm filtreler" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Devre dışı" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Etkin" + }, + "options_filters_no_enabled": { + "message": "Etkin filtre yok" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" grubunun filtreleri" + }, + "options_filters_search": { + "message": "Ara" + }, + "options_filters_search_filter": { + "message": "Filtre ara" + }, + "options_first_party_block_cookies_warning": { + "message": "Bu çerezleri engellerseniz bazı siteleri bozulabilir veya çalışmayı durdurabilir" + }, + "options_first_party_desc": { + "message": "Birinci taraf çerezlerin kullanım süresini sınırlandırarak sitelerin giriş yapma bilgileriniz ve kullandığınız dil tercihleriniz gibi bilgilerinizi hatırlamasını önler" + }, + "options_first_party_title": { + "message": "Birinci taraf çerezlerini sil (önerilmez)" + }, + "options_general_settings": { + "message": "Genel" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Üçüncü tarafların hangi siteyi ziyaret ettiğinizi bilmelerini önleyin" + }, + "options_hide_referrer_title": { + "message": "Referer'i üçüncü taraflardan gizle" + }, + "options_hide_search_queries_desc": { + "message": "Arama motoru sonuçları aracılığıyla ziyaret edilen sitelerden aramalarınızı gizler" + }, + "options_hide_search_queries_title": { + "message": "Arama sorgularını gizle" + }, + "options_import_configuration_applying_subtitle": { + "message": "Mevcut ayarlarınız içe aktarılanlarla değiştiriliyor. İçe aktarma sırasında filtreleme devre dışı bırakılır" + }, + "options_import_configuration_applying_title": { + "message": "İçe aktarılıyor..." + }, + "options_import_configuration_confirm_button": { + "message": "İçe aktar" + }, + "options_import_configuration_confirm_subtitle": { + "message": "İçe aktarılan ayarlar şu anki ayarlarınızın yerini alır. Diğer ayarlar etkilenmeyecektir" + }, + "options_import_configuration_confirm_title": { + "message": "Ayarları içe aktar" + }, + "options_import_configuration_error_button": { + "message": "Kapat" + }, + "options_import_configuration_error_subtitle": { + "message": "Lütfen içe aktarma bağlantısını kontrol edin ve tekrar deneyin. İşe yaramazsa, destek ile iletişime geçin" + }, + "options_import_configuration_error_title": { + "message": "Ayarlar içe aktarılamadı" + }, + "options_import_configuration_success_button": { + "message": "Kapat" + }, + "options_import_configuration_success_subtitle": { + "message": "Ayarlar başarıyla içe aktarıldı" + }, + "options_import_configuration_success_title": { + "message": "Hepsi tamam" + }, + "options_import_settings": { + "message": "Ayarları içe aktar" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Tersine çevir" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Reklamlar ve izleyiciler yalnızca izin listesindeki sitelerde engellenecektir" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "İzin listesi tersine çevrilsin mi?" + }, + "options_leave_feedback": { + "message": "Geri bildirimde bulun" + }, + "options_lifetime_minutes": { + "message": "Kullanım süresi, dakika cinsinden" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Kullanıcı tarafından eklenen regex kural sınırına ulaştınız. %current% regex kuralından %maximum% tanesi etkinleştirildi." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Kullanıcı tarafından eklenen regex kural sınırına ulaştınız. %current% kuralın %maximum% tanesi etkinleştirildi. Yeni regex kuralları eklemek için mevcut olanlardan bazılarını kaldırın" + }, + "options_limits_warning_dynamic_rules": { + "message": "Kullanıcı tarafından eklenen kural sınırına ulaştınız. %current% kuraldan %maximum% kural etkinleştirildi." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Kullanıcı tarafından eklenen kuralların sınırına ulaştınız. %current% kuraldan %maximum% kural etkinleştirildi. Yeni kural eklemek için bazı mevcut kuralları kaldırın" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Kullanıcı tarafından eklenen güvenli olmayan kural sınırına ulaştınız. %current% güvenli olmayan kuraldan %maximum% tanesi etkinleştirildi." + }, + "options_limits_warning_static_filters": { + "message": "Etkin yerleşik filtre sınırına ulaştınız. %current% filtreden %maximum% filtre etkinleştirildi. Yeni kuralları etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın." + }, + "options_limits_warning_static_filters_browser": { + "message": "Tarayıcınızın etkin yerleşik filtre sınırına ulaştınız. %current% filtreden %maximum% filtre etkinleştirildi. Yeni filtreleri etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın" + }, + "options_limits_warning_static_regex_rules": { + "message": "Etkin yerleşik regex kural sınırına ulaştınız. %current% regex kuralından %maximum% tanesi etkinleştirildi. Yeni kuralları etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Etkin yerleşik regex kural sınırına ulaştınız. Yeni kuralları etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın" + }, + "options_limits_warning_static_rules": { + "message": "Etkin yerleşik kural sınırına ulaştınız. %current% kuraldan %maximum% kural etkinleştirildi. Yeni kuralları etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın." + }, + "options_limits_warning_static_rules_browser": { + "message": "Tarayıcınızın aktif yerleşik kurallar sınırına ulaştınız. Yeni kuralları etkinleştirmek için bazı yerleşik filtreleri devre dışı bırakın" + }, + "options_loader_applying_changes": { + "message": "Değişiklikler uygulanıyor ..." + }, + "options_miscellaneous_settings": { + "message": "Ek ayarlar" + }, + "options_modified_first_party_cookie": { + "message": "Birinci taraf çerez değiştirildi" + }, + "options_modified_third_party_cookie": { + "message": "Üçüncü taraf çerez değiştirildi" + }, + "options_nav_better_than_extension": { + "message": "AdGuard uygulaması neden uzantıdan daha iyi?" + }, + "options_nav_compare": { + "message": "Karşılaştır" + }, + "options_navigation": { + "message": "Navigasyon" + }, + "options_open_changelog": { + "message": "Değişiklik Günlüğü" + }, + "options_open_log": { + "message": "Filtreleme günlüğünü aç" + }, + "options_popup_call_to_action": { + "message": "Yukarıdaki alana filtrenin URL'sini veya dosya yolunu girin." + }, + "options_popup_check_false_description": { + "message": "Özel filtreniz eklenirken hata oluştu." + }, + "options_popup_check_false_title": { + "message": "Hata" + }, + "options_popup_checking_filter": { + "message": "Filtreniz denetleniyor" + }, + "options_popup_description": { + "message": "Bu filtreye abone olacaksınız." + }, + "options_popup_filter_description": { + "message": "Açıklama:" + }, + "options_popup_filter_homepage": { + "message": "Ana sayfa:" + }, + "options_popup_filter_rules_count": { + "message": "Kural sayısı:" + }, + "options_popup_filter_title": { + "message": "Başlık:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Sürüm:" + }, + "options_popup_import_error_file_description": { + "message": "Bir şeyler ters gitti." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Bu ayarlar dosyasını içe aktarmak için AdGuard'ın gizlilikle ilgili ayarlarınızı değiştirmesine izin verin." + }, + "options_popup_import_error_title": { + "message": "Ayarlar içe aktarılamadı" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Dosya uzantısı %extension% olmalıdır" + }, + "options_popup_import_success_title": { + "message": "Ayarlar içe aktarıldı" + }, + "options_popup_next_button": { + "message": "Sonraki" + }, + "options_popup_subscribe_button": { + "message": "Abone ol" + }, + "options_popup_title_placeholder": { + "message": "Bir filtre adı girin" + }, + "options_popup_trusted_filter_description": { + "message": "Güvenilir filtreler, yanlış ellerde tehlikeli olabilecek güçlü filtreleme kuralları değiştiricileri kullanabilir. Tamamen güvenmediğiniz sürece bu kutuyu işaretlemeyin." + }, + "options_popup_trusted_filter_title": { + "message": "Güvenilir" + }, + "options_popup_try_again_button": { + "message": "Tekrar dene" + }, + "options_popup_update_error": { + "message": "Güncellemeler alınamadı. Lütfen daha sonra tekrar deneyin." + }, + "options_popup_update_filter": { + "message": "güncellendi." + }, + "options_popup_update_filters": { + "message": "güncellendi." + }, + "options_popup_update_not_found": { + "message": "Filtreleriniz güncel" + }, + "options_popup_update_title_error": { + "message": "Filtreler güncellenirken hata oluştu" + }, + "options_popup_updating_filters": { + "message": "Filtreler güncelleniyor..." + }, + "options_popup_url_placeholder": { + "message": "URL veya dosya yolu girin" + }, + "options_popup_url_title": { + "message": "Yeni filtre aboneliği" + }, + "options_popup_version_update_changelog_text": { + "message": "Bu sürümdeki yenilikler neler?" + }, + "options_popup_version_update_description_major": { + "message": "Bu, birçok yeni özellik ve iyileştirme getiren büyük bir uzantı güncellemesidir." + }, + "options_popup_version_update_description_minor": { + "message": "Bu sürüm çoğunlukla hata düzeltmeleri ve küçük iyileştirmeler içerir." + }, + "options_popup_version_update_disable_notification": { + "message": "Bildirimleri devre dışı bırak" + }, + "options_popup_version_update_offer": { + "message": "AdGuard'ın yeteneklerinin bu tarayıcı ile sınırlı olmadığını biliyor muydunuz?" + }, + "options_popup_version_update_offer_button_text": { + "message": "DAHA FAZLA BİLGİ EDİNİN" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard uzantısı, %current_version% sürümüne güncellendi" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Proxy veya VPN kullanırken gerçek IP adresinizi gizlemek için WebRTC'nin daha katı bir IP adresi politikası kullanmasını sağlar" + }, + "options_prevent_webrtc_leaks_title": { + "message": "WebRTC üzerinden IP adresi sızıntılarını önle" + }, + "options_privacy": { + "message": "İzleme koruması" + }, + "options_privacy_desc": { + "message": "Çevrimiçi etkinliğinizi ve kişisel verilerinizi web izleyicilerinden korur" + }, + "options_privacy_policy": { + "message": "Gizlilik politikası" + }, + "options_privacy_title": { + "message": "İzleme koruması" + }, + "options_rate_us_cta": { + "message": "Değerlendirin" + }, + "options_remove_client_data_desc": { + "message": "Google Chrome'un sürüm ve değişiklik bilgilerini Google alan adlarına göndermesini engelleyin" + }, + "options_remove_client_data_title": { + "message": "X-Client-Data başlığını kaldır" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Kaldır" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Bu filtre kaldırılsın mı?" + }, + "options_report_bug": { + "message": "Hata bildir" + }, + "options_reset_settings": { + "message": "Ayarları sıfırla" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Sıfırla" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Tüm ayarlar varsayılan değerlerine sıfırlanacaktır" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Ayarlar sıfırlansın mı?" + }, + "options_reset_settings_done": { + "message": "Ayarlar sıfırlandı" + }, + "options_reset_settings_error": { + "message": "Ayarlar sıfırlanırken hata oluştu" + }, + "options_reset_stats": { + "message": "İstatistikleri temizle" + }, + "options_reset_stats_done": { + "message": "İstatistikler sıfırlandı" + }, + "options_rule_limits": { + "message": "Kural limitleri" + }, + "options_rule_limits_description": { + "message": "Chrome, uygulanabilecek kural sayısını sınırlar" + }, + "options_rule_limits_dynamic": { + "message": "Değişken kurallar" + }, + "options_rule_limits_dynamic_regex": { + "message": "Regex kuralları — kullanıcı tarafından eklenen kurallar dâhildir" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Güvenli olmayan değişken kurallar (bazı gelişmiş değiştiriciler için kullanılır, örneğin $$redirect veya $$cookie) — kullanıcı tarafından eklenen kurallar dâhildir" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "\u003Cuser_rules>Kullanıcı kuralları\u003C/user_rules>, \u003Callowlist>izin verilen siteler\u003C/allowlist> ve \u003Ccustom_filters>özel filtreler\u003C/custom_filters> gibi kullanıcı tarafından eklenen kurallar" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Kullanıcı tarafından eklenen kurallar, örneğin \u003Cuser_rules>kullanıcı kuralları\u003C/user_rules> ve \u003Callowlist>izin verilen siteler\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%maximum% / %current%" + }, + "options_rule_limits_static_rules": { + "message": "Sabit kurallar" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>Yerleşik filtrelerden\u003C/a> kurallar" + }, + "options_rule_limits_static_rules_regex": { + "message": "Regex kuralları — yukarıdakiler dâhildir" + }, + "options_rule_limits_static_rulesets": { + "message": "Sabit kural kümeleri" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "Can sıkıcı öğeleri engelleme veya Dile özgü filtreler gibi \u003Ca>yerleşik filtreler\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "3. Seçenek: Şu anda etkin olan varsayılan filtrelerden memnunsanız, \u003Ca>bu uyarıyı kapatın\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "3. Seçenek: Şu anda etkin olan varsayılan filtreden memnunsanız, \u003Ca>bu uyarıyı kapatın\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "1. Seçenek: Gereksiz reklam engelleme uzantılarını tarayıcınızdan silin. \"Güncellemeden önce etkin olan filtreler\" bölümünde belirtilen filtreleri yeniden etkinleştirmek için \u003Ca>filtreleri yeniden etkinleştir\u003C/a> öğesine tıklayın" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "2. Seçenek: AdGuard Reklam Engelleyici uygulamasını yükleyin: filtreleme kurallarında herhangi bir kısıtlama yoktur. \u003Ca>AdGuard uygulamasını edinin\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Olası eylemleriniz" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Bir güncelleme veya yeni bir uzantı eklendikten sonra etkin yerleşik kuralların sınırı aşıldı. Manifest V3'e göre Chrome tarayıcınız, varsayılanlar dışında uzantının tüm yerleşik filtrelerini devre dışı bırakarak yanıt verdi." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Ne oldu?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Güncellemeden önce etkinleştirilen filtreler" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Filtreler şimdi etkinleştirildi" + }, + "options_rule_limits_warning_title": { + "message": "Tarayıcı, etkin filtreler listesini değiştirdi" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Kural sınırlarını kaldır ve tüm tarayıcılarda çalışan Genişletilmiş koruma elde et" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Masaüstü uygulamasını Yükle" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Filtrelere git" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Uzantıları yönet" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Tarayıcı uzantıları aynı kural sınırını paylaşır. Diğer reklam engelleyicileri kaldırmak, AdGuard Tarayıcı Uzantısı için daha fazla kural sağlayabilir" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Diğer reklam engelleyicileri kaldır" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "İhtiyacınız olan filtreleri etkinleştir. Dile özgü ve gizlilik filtreleri çok sayıda kural kullanabilir" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Mevcut filtreleri gözden geçir" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "İşte yapabilecekleriniz" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Sınıra ulaşıldı — bazı filtreler devre dışı bırakıldı" + }, + "options_rule_syntax": { + "message": "Kural söz dizimi" + }, + "options_safebrowsing_enabled": { + "message": "Kimlik avı ve kötü amaçlı yazılım koruması" + }, + "options_safebrowsing_enabled_desc": { + "message": "AdGuard Gezinti Koruması modülünü kullanarak kötü amaçlı ve kimlik avı siteleri konusunda uyarır. \u003Ca>Daha fazla bilgi edinin\u003C/a>" + }, + "options_select_theme": { + "message": "Tema" + }, + "options_select_update_period_12h": { + "message": "12 saat" + }, + "options_select_update_period_1h": { + "message": "1 saat" + }, + "options_select_update_period_24h": { + "message": "24 saat" + }, + "options_select_update_period_48h": { + "message": "48 saat" + }, + "options_select_update_period_6h": { + "message": "6 saat" + }, + "options_select_update_period_default": { + "message": "Varsayılan" + }, + "options_select_update_period_disabled": { + "message": "Devre dışı" + }, + "options_send_not_track_desc": { + "message": "Ziyaret ettiğiniz sitelere \u003Cgpc>Global Privacy Control\u003C/gpc> ve \u003Cdnt>Do Not Track\u003C/dnt> sinyalleri gönderin" + }, + "options_send_not_track_title": { + "message": "Sitelerden beni izlememelerini iste" + }, + "options_set_update_interval": { + "message": "Filtreleri otomatik güncelle" + }, + "options_set_update_interval_desc": { + "message": "Filtrelerin güncel kalmasını sağlayarak daha etkili reklam engelleme sağlar" + }, + "options_settings": { + "message": "AdGuard Ayarları" + }, + "options_share_settings": { + "message": "Ayarları paylaş" + }, + "options_show_adguard_full_version_title": { + "message": "AdGuard'ın tam sürümüyle ilgili bilgileri göster" + }, + "options_show_app_updated_notification": { + "message": "Uzantı güncellemelerini bana bildir" + }, + "options_show_blocked_ads_count_title": { + "message": "AdGuard uzantı simgesinde engellenen reklamların sayısını göster" + }, + "options_show_context_menu_title": { + "message": "Tarayıcının sağ tık menüsüne AdGuard öğesini ekle" + }, + "options_site": { + "message": "Resmi site" + }, + "options_skip_to_main_content": { + "message": "Ana içeriğe atla" + }, + "options_stealth_general_title": { + "message": "Genel" + }, + "options_stealth_miscellaneous_title": { + "message": "Diğer" + }, + "options_stealth_tracking_methods_title": { + "message": "İzleme yöntemleri" + }, + "options_strip_tracking_params_description": { + "message": "AdGuard URL İzleme filtresini kullanarak izleme parametrelerini sayfa URL'lerinden kaldırır" + }, + "options_strip_tracking_params_title": { + "message": "İzleme parametrelerini URL'lerden kaldır" + }, + "options_stripped_tracking_parameters": { + "message": "İzleme parametreleri kaldırıldı" + }, + "options_theme_selector_dark": { + "message": "Koyu" + }, + "options_theme_selector_light": { + "message": "Açık" + }, + "options_theme_selector_system": { + "message": "Sistem varsayılanı" + }, + "options_third_party_block_cookies_warning": { + "message": "Bu çerezleri engellerseniz bazı sitelere yeniden giriş yapmanız gerekebilir veya çerezlerle ilgili başka sorunlarla karşılaşabilirsiniz" + }, + "options_third_party_desc": { + "message": "Üçüncü taraf çerezlerin kullanım süresini sınırlandırarak reklam verenlerin birden fazla sayfada davranışlarınızı izlemesini önler" + }, + "options_third_party_title": { + "message": "Üçüncü taraf çerezlerini sil" + }, + "options_update_antibanner_filters": { + "message": "Filtre güncellemelerini denetle" + }, + "options_use_optimized_filters": { + "message": "İyileştirilmiş filtreleri kullan" + }, + "options_use_optimized_filters_desc": { + "message": "Veri tasarrufu için yalnızca en popüler kurallara sahip filtrelerin daha kısa sürümlerini kullanır. Mobil tarayıcılar için daha uygundur" + }, + "options_user_rules_clear_search": { + "message": "Aramayı temizle" + }, + "options_user_rules_create_rule": { + "message": "Kural oluştur" + }, + "options_user_rules_delete_all": { + "message": "Tümünü sil" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Tüm kullanıcı kuralları kalıcı olarak silinecektir" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Tümü silinsin mi?" + }, + "options_user_rules_delete_all_success": { + "message": "Tüm kullanıcı kuralları silindi" + }, + "options_user_rules_delete_rule": { + "message": "Kuralı sil" + }, + "options_user_rules_deleted_notification": { + "message": "Kullanıcı kuralı silindi:" + }, + "options_user_rules_description_key": { + "message": "Reklamları veya tüm siteleri engelleme ve engellemeyi kaldırma kurallarınız" + }, + "options_user_rules_edit_rule": { + "message": "Kuralı düzenle" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Düzenleyiciye git" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Kurallarınız, kapattıktan sonra burada görünür" + }, + "options_user_rules_editor_stub_title": { + "message": "Düzenleyici başka bir pencerede açıldı" + }, + "options_user_rules_empty_placeholder": { + "message": "Henüz kural yok" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Kurallar vurgulanıyor…" + }, + "options_user_rules_import_error": { + "message": "Kullanıcı kuralları içe aktarımı başarısız. Lütfen tekrar dene" + }, + "options_user_rules_import_success": { + "message": "Kullanıcı kuralları başarıyla içe aktarıldı" + }, + "options_user_rules_menu": { + "message": "Kullanıcı kuralları eylemleri" + }, + "options_user_rules_no_match": { + "message": "Hiçbir şey bulunamadı" + }, + "options_user_rules_search_placeholder": { + "message": "Ara" + }, + "options_user_rules_switch_to_editor": { + "message": "Düzenleyici görünümüne anahtar" + }, + "options_user_rules_switch_to_list": { + "message": "Liste görünümüne anahtar" + }, + "options_user_rules_undo": { + "message": "Geri al" + }, + "options_userfilter": { + "message": "Kullanıcı kuralları" + }, + "options_userfilter_description_key": { + "message": "Buraya kendi kurallarınızı ekleyebilirsiniz. Bu seçenek, HTML ve CSS'e aşina olan ileri düzey kullanıcılar için önerilir. Kendi filtre kurallarınızı nasıl yazacağınızı öğrenmek için \u003Ca>filtre kuralları eğitimini\u003C/a> okuyun." + }, + "options_userfilter_export": { + "message": "Dışa aktar" + }, + "options_userfilter_import": { + "message": "İçe aktar" + }, + "options_userfilter_leave_subtitle": { + "message": "Kurallarda yaptığınız değişiklikler kaybolacaktır" + }, + "options_userfilter_line_break": { + "message": "Satır sonu" + }, + "options_userfilter_line_break_off": { + "message": "Satır sonu: Devre dışı" + }, + "options_userfilter_line_break_on": { + "message": "Satır sonu: Etkin" + }, + "options_userfilter_subtitle_key": { + "message": "Kendi filtreleme kurallarınızı eklemenizi sağlar" + }, + "popup_abuse_site": { + "message": "Bir sorun bildir" + }, + "popup_adguard_footer_title": { + "message": "Mobil cihazını koru" + }, + "popup_adguard_for_android": { + "message": "Android için AdGuard" + }, + "popup_adguard_for_ios": { + "message": "iOS için AdGuard" + }, + "popup_block_site_ads_option": { + "message": "Reklamları elle engelle" + }, + "popup_get_system_wide_protection": { + "message": "Sistem genelinde koruma edinin" + }, + "popup_header_cta_link": { + "message": "Koruma nasıl geliştirilir" + }, + "popup_header_update_filters": { + "message": "Filtre güncellemelerini denetle" + }, + "popup_limits_exceeded_warning": { + "message": "Tarayıcınız etkin yerleşik filtrelerin listesini değiştirdi" + }, + "popup_open_filtering_log": { + "message": "Filtreleme günlüğünü aç" + }, + "popup_open_settings": { + "message": "AdGuard ayarlarını aç" + }, + "popup_protection_button": { + "message": "AdGuard koruması" + }, + "popup_reset_page_user_rules": { + "message": "Bu site için kullanıcı kurallarını sil" + }, + "popup_resume_protection_button": { + "message": "Sürdür" + }, + "popup_security_report": { + "message": "Site güvenliğini kontrol et" + }, + "popup_site_exception_information": { + "message": "Filtreleme, bu sitenin çalışmasıyla çakışabileceği için devre dışı bırakıldı." + }, + "popup_site_filtering_state_disabled": { + "message": "Koruma devre dışı" + }, + "popup_site_filtering_state_disabling": { + "message": "Koruma devre dışı bırakılıyor..." + }, + "popup_site_filtering_state_enabled": { + "message": "Koruma etkin" + }, + "popup_site_filtering_state_enabling": { + "message": "Koruma etkinleştiriliyor..." + }, + "popup_site_filtering_state_loading": { + "message": "Yükleniyor..." + }, + "popup_site_filtering_state_paused": { + "message": "Koruma duraklatıldı" + }, + "popup_site_filtering_state_pausing": { + "message": "Koruma duraklatılıyor..." + }, + "popup_site_filtering_state_resuming": { + "message": "Koruma sürdürülüyor..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Güvenli sayfa" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "tüm siteler için" + }, + "popup_statistics_all_categories": { + "message": "Tümü" + }, + "popup_statistics_category_advertising": { + "message": "Reklamlar" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "İstatistikler kategorisi" + }, + "popup_statistics_category_other": { + "message": "Diğer" + }, + "popup_statistics_category_social_media": { + "message": "Sosyal medya" + }, + "popup_statistics_category_trackers": { + "message": "İzleyiciler" + }, + "popup_statistics_months_apr": { + "message": "Nis" + }, + "popup_statistics_months_aug": { + "message": "Ağu" + }, + "popup_statistics_months_dec": { + "message": "Ara" + }, + "popup_statistics_months_feb": { + "message": "Şub" + }, + "popup_statistics_months_jan": { + "message": "Oca" + }, + "popup_statistics_months_jul": { + "message": "Tem" + }, + "popup_statistics_months_jun": { + "message": "Haz" + }, + "popup_statistics_months_mar": { + "message": "Mar" + }, + "popup_statistics_months_may": { + "message": "May" + }, + "popup_statistics_months_nov": { + "message": "Kas" + }, + "popup_statistics_months_oct": { + "message": "Eki" + }, + "popup_statistics_months_sep": { + "message": "Eyl" + }, + "popup_statistics_time_day": { + "message": "24 saat" + }, + "popup_statistics_time_label": { + "message": "İstatistik zaman aralığı" + }, + "popup_statistics_time_month": { + "message": "30 gün" + }, + "popup_statistics_time_week": { + "message": "7 gün" + }, + "popup_statistics_time_year": { + "message": "1 yıl" + }, + "popup_statistics_total": { + "message": "Toplam" + }, + "popup_statistics_week_days_fri": { + "message": "Cum" + }, + "popup_statistics_week_days_mon": { + "message": "Pzt" + }, + "popup_statistics_week_days_sat": { + "message": "Cmt" + }, + "popup_statistics_week_days_sun": { + "message": "Paz" + }, + "popup_statistics_week_days_thu": { + "message": "Per" + }, + "popup_statistics_week_days_tue": { + "message": "Sal" + }, + "popup_statistics_week_days_wed": { + "message": "Çar" + }, + "popup_switch_button": { + "message": "Mevcut sitedeki koruma" + }, + "popup_tab_actions": { + "message": "Eylemler" + }, + "popup_tab_blocked_all_count": { + "message": "Toplam engellenen: %num%" + }, + "popup_tab_blocked_count": { + "message": "Engellenen: %num%" + }, + "popup_tab_current_website": { + "message": "Mevcut site" + }, + "popup_tab_statistics": { + "message": "İstatistikler" + }, + "popup_tabs": { + "message": "Sekmeler" + }, + "popup_tooltip_loading": { + "message": "Yükleniyor..." + }, + "popup_tooltip_protection_disabled": { + "message": "Koruma devre dışı" + }, + "popup_tooltip_protection_enabled": { + "message": "Koruma etkin" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Bazı kurallar uygulanmadı" + }, + "popup_tooltip_update_available": { + "message": "Güncelleme mevcut" + }, + "post_install_loading": { + "message": "Uzantı yükleniyor..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard Tarayıcı Uzantısında kural limiti aşıldı. Lütfen filtrelerinizi kontrol edin ve ihtiyacınız olmayanları devre dışı bırakın" + }, + "text_collapser_hide_default": { + "message": "Tüm metni gizle" + }, + "text_collapser_show_default": { + "message": "Tüm metni göster" + }, + "update_available_desc": { + "message": "Reklamları etkili bir şekilde engellemek için uzantınızı ve filtrelerinizi güncel tutun" + }, + "update_available_title": { + "message": "Güncellemeler mevcut" + }, + "update_available_update_btn": { + "message": "Güncelle" + }, + "update_check": { + "message": "Güncellemeleri denetle" + }, + "update_checking_in_progress": { + "message": "Güncellemeler denetleniyor..." + }, + "update_failed_text": { + "message": "Güncelleme tamamlanamadı" + }, + "update_failed_try_again_btn": { + "message": "Tekrar dene" + }, + "update_installing_in_progress_desc": { + "message": "Güncellemeden sonra uzantı yeniden başlatılacak" + }, + "update_installing_in_progress_title": { + "message": "Uzantı ve filtreler güncelleniyor..." + }, + "update_not_needed": { + "message": "Uzantınız ve filtreleriniz güncel" + }, + "update_success_text": { + "message": "Uzantı ve filtreler güncellendi" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/uk/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/uk/messages.json new file mode 100644 index 0000000..33ab5b6 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/uk/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% автоматично увімкнено." + }, + "alert_popup_filter_enabled_title": { + "message": "Автоматичне увімкнення фільтрів" + }, + "background_tab_title": { + "message": "Фонова вкладка" + }, + "blocking_pages_advanced_button": { + "message": "Додатково" + }, + "blocking_pages_btn_go_back": { + "message": "Повернутися назад" + }, + "blocking_pages_btn_proceed": { + "message": "В усякому разі продовжити" + }, + "blocking_pages_malware": { + "message": "Вебсторінка \u003Cstrong>%host%\u003C/strong> відома, як зловмисна. Її заблоковано згідно з вашими налаштуваннями безпеки." + }, + "blocking_pages_more_info_button": { + "message": "Детальний звіт" + }, + "blocking_pages_page_title": { + "message": "Доступ заборонено" + }, + "blocking_pages_phishing": { + "message": "Вебсторінка \u003Cstrong>%host%\u003C/strong> відома, як шахрайська. Її заблоковано згідно з вашими налаштуваннями безпеки." + }, + "blocking_pages_rule_content_title": { + "message": "AdGuard припинив завантаження цієї сторінки згідно з таким правилом" + }, + "blocking_pages_rule_header_title": { + "message": "Заблоковано AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard заблокував доступ до цієї сторінки" + }, + "clear_button_title": { + "message": "Очистити" + }, + "close_button_title": { + "message": "Закрити" + }, + "context_block_site_ads": { + "message": "Блокувати рекламу вручну" + }, + "context_complaint_website": { + "message": "Повідомити про проблему" + }, + "context_disable_protection": { + "message": "Призупинити захист AdGuard" + }, + "context_enable_protection": { + "message": "Відновити захист AdGuard" + }, + "context_open_log": { + "message": "Журнал фільтрування" + }, + "context_open_settings": { + "message": "Налаштування AdGuard" + }, + "context_security_report": { + "message": "Перевірити безпечність сайту" + }, + "context_site_exception": { + "message": "Сайт знаходиться у винятках" + }, + "context_site_filtering_disabled": { + "message": "AdGuard не може фільтрувати цю сторінку" + }, + "context_site_filtering_off": { + "message": "Вимкнути фільтрування на цьому сайті" + }, + "context_site_filtering_on": { + "message": "Увімкнути фільтрування на цьому сайті" + }, + "context_site_protection_disabled": { + "message": "Захист AdGuard призупинено" + }, + "context_update_antibanner_filters": { + "message": "Перевірити оновлення фільтрів" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Неперевершений захист від реклами та спливних вікон. Блокує рекламу на Facebook, YouTube та усіх інших сайтах." + }, + "filtering_clear_log_events": { + "message": "Очистити журнал" + }, + "filtering_log_actions_menu": { + "message": "Дії журналу фільтрації" + }, + "filtering_log_assumed_rule_description": { + "message": "Це потенційне правило. Детальніше в нашій \u003Ca>Базі знань\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Метод HTTP запиту" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Код статусу HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Сторонній запит" + }, + "filtering_log_details_modal_back_button": { + "message": "Назад до запиту" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Покращити вигляд" + }, + "filtering_log_details_modal_try_again": { + "message": "Спробувати знову" + }, + "filtering_log_filter_allowed": { + "message": "Дозволені" + }, + "filtering_log_filter_blocked": { + "message": "Заблоковані" + }, + "filtering_log_filter_modified": { + "message": "Модифіковані" + }, + "filtering_log_filter_regular": { + "message": "Звичайні" + }, + "filtering_log_filter_user_rules": { + "message": "Правила користувача" + }, + "filtering_log_hide_referrer": { + "message": "Referer приховано від сторонніх ресурсів" + }, + "filtering_log_hide_search_queries": { + "message": "Ваші пошукові запити приховано" + }, + "filtering_log_in_allowlist": { + "message": "Це дозволений сайт" + }, + "filtering_log_modified_rules": { + "message": "Правила модифікації: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Так, зберігати" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Ця опція може значно збільшити використання пам’яті" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Зберігати журнал?" + }, + "filtering_log_preserve_log_off": { + "message": "Не зберігати журнал" + }, + "filtering_log_preserve_log_on": { + "message": "Зберігати журнал" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Не показувати знову" + }, + "filtering_log_privacy_applied_rules": { + "message": "Захист від стеження застосовано" + }, + "filtering_log_remove_client_data": { + "message": "Заголовок X-Client-Data вилучено" + }, + "filtering_log_search_string": { + "message": "Пошук" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Пошук серед вкладок" + }, + "filtering_log_send_not_track": { + "message": "Заголовок Do-Not-Track надіслано" + }, + "filtering_log_status_allowed": { + "message": "Дозволено" + }, + "filtering_log_status_blocked": { + "message": "Заблоковано" + }, + "filtering_log_status_modified": { + "message": "Модифіковано" + }, + "filtering_log_status_processed": { + "message": "Оброблено" + }, + "filtering_log_stealth_rules": { + "message": "Правила Захисту від стеження: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Джерело запиту" + }, + "filtering_log_tag_request_status": { + "message": "Стан фільтрації" + }, + "filtering_log_tag_request_type": { + "message": "Тип запиту" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Дозволені та розблоковані запити" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Заблоковані запити" + }, + "filtering_log_tag_tooltip_css": { + "message": "Стилі" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Тутешні запити" + }, + "filtering_log_tag_tooltip_html": { + "message": "Документи та піддокументи" + }, + "filtering_log_tag_tooltip_img": { + "message": "Зображення" + }, + "filtering_log_tag_tooltip_js": { + "message": "Скрипти" + }, + "filtering_log_tag_tooltip_media": { + "message": "Медіа" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Модифіковані запити" + }, + "filtering_log_tag_tooltip_other": { + "message": "Шрифти, ping-запити, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Запити без фільтрування" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Сторонні запити" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Запити, змінені правилами користувача" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "Запити XMLHttpRequest та fetch" + }, + "filtering_log_title": { + "message": "Журнал фільтрування" + }, + "filtering_menu_open_filters": { + "message": "Налаштувати" + }, + "filtering_modal_add_rule": { + "message": "Додати" + }, + "filtering_modal_allow_title": { + "message": "Додавання правила дозволу" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Застосоване правило | Застосовані правила | Застосовані правила" + }, + "filtering_modal_apply_domains": { + "message": "Застосувати до всіх вебсайтів" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Потенційне правило: | Потенційні правила: | Потенційні правила:" + }, + "filtering_modal_block": { + "message": "Заблокувати" + }, + "filtering_modal_block_again": { + "message": "Знову заблокувати" + }, + "filtering_modal_block_title": { + "message": "Додавання правила блокування" + }, + "filtering_modal_converted_to": { + "message": "Сконвертовано у:" + }, + "filtering_modal_cookie": { + "message": "Кукі-файл:" + }, + "filtering_modal_copied": { + "message": "Скопійовано" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Копіювати в буфер обміну" + }, + "filtering_modal_declarative_rule": { + "message": "Правило DNR:" + }, + "filtering_modal_element": { + "message": "Елемент:" + }, + "filtering_modal_exception_title": { + "message": "Додавання винятку" + }, + "filtering_modal_filter": { + "message": "Фільтр" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Стан фільтрації" + }, + "filtering_modal_hide_full_element": { + "message": "Скоротити елемент" + }, + "filtering_modal_hide_full_rule": { + "message": "Скоротити правило" + }, + "filtering_modal_hide_full_url": { + "message": "Скоротити URL-адресу" + }, + "filtering_modal_important": { + "message": "Надати правилу вищий пріоритет" + }, + "filtering_modal_info_title": { + "message": "Інформація про блокування" + }, + "filtering_modal_open_in_new_tab": { + "message": "Відкрити в новій вкладці" + }, + "filtering_modal_options_desc": { + "message": "Опції" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Первинне правило: | Первинні правила: | Первинні правила:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Що слід дозволити" + }, + "filtering_modal_patterns_desc_block": { + "message": "Що слід заблокувати" + }, + "filtering_modal_preview_request_button": { + "message": "Перегляд" + }, + "filtering_modal_preview_title": { + "message": "Попередній перегляд" + }, + "filtering_modal_privacy": { + "message": "Захист від стеження" + }, + "filtering_modal_remove_allowlist": { + "message": "Вилучити зі Списку дозволів" + }, + "filtering_modal_remove_param": { + "message": "Видалити параметри запиту" + }, + "filtering_modal_remove_user": { + "message": "Вилучити правило" + }, + "filtering_modal_rule": { + "message": "Правило:" + }, + "filtering_modal_rule_text_desc": { + "message": "Правило" + }, + "filtering_modal_rules": { + "message": "Правила:" + }, + "filtering_modal_show_full_element": { + "message": "Показати елемент цілком" + }, + "filtering_modal_show_full_rule": { + "message": "Показати правило цілком" + }, + "filtering_modal_show_full_url": { + "message": "Показати URL-адресу цілком" + }, + "filtering_modal_source": { + "message": "Джерело" + }, + "filtering_modal_status_text_desc": { + "message": "Статус" + }, + "filtering_modal_status_text_error": { + "message": "Не вдалося завантажити попередній перегляд. Будь ласка, спробуйте ще раз" + }, + "filtering_modal_status_text_loading": { + "message": "Завантаження..." + }, + "filtering_modal_third_party": { + "message": "Застосувати тільки для сторонніх запитів" + }, + "filtering_modal_type": { + "message": "Тип" + }, + "filtering_modal_unblock": { + "message": "Розблокувати" + }, + "filtering_refresh_tab_short": { + "message": "Оновити" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Оновити сторінку" + }, + "filtering_table_action": { + "message": "Дія" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Нічого не знайдено. \u003Creset>Скинути фільтри\u003C/reset> або \u003Crefresh>оновити сторінку\u003C/refresh>, щоб переглянути записи журналу" + }, + "filtering_table_filter": { + "message": "Фільтр" + }, + "filtering_table_open_details": { + "message": "Докладніше" + }, + "filtering_table_rule": { + "message": "Правило фільтрування" + }, + "filtering_table_source": { + "message": "Джерело" + }, + "filtering_table_status": { + "message": "Статус" + }, + "filtering_table_type": { + "message": "Тип" + }, + "filtering_type_all": { + "message": "Усі" + }, + "filtering_type_other": { + "message": "Інше" + }, + "filters_download_loading": { + "message": "Будь ласка, зачекайте доки завантажується база даних фільтрів..." + }, + "filters_download_title": { + "message": "Завантаження бази даних фільтрів..." + }, + "fullscreen_user_rules_title": { + "message": "Правила користувача" + }, + "group_description_adblocking": { + "message": "Налаштуйте блокування, щоб раз і назавжди позбутись надокучливих банерів, спливних вікон, відеореклами тощо" + }, + "group_description_annoyances": { + "message": "Видаліть спливні вікна та інші надокучливі сповіщення, наприклад, повідомлення про куки" + }, + "group_description_custom": { + "message": "Створюйте власні фільтри, щоб налаштувати фільтрування, як заманеться." + }, + "group_description_lang": { + "message": "Без обмежень блокуйте рекламу на сайтах різними мовами" + }, + "group_description_miscellaneous": { + "message": "Додаткові фільтрі для налаштування блокування за допомогою AdGuard" + }, + "group_description_security": { + "message": "Захистіться від зловмисного програмного забезпечення, фішингу та інших загроз в інтернеті" + }, + "group_description_social": { + "message": "Сховати небажані кнопки «Подобається», «Поділитися» та інші віджети соціальних мереж" + }, + "group_description_stealth": { + "message": "Захистіть свою особисту інформацію від систем стеження завдяки блокуванню їхніх найпоширеніших способів" + }, + "name": { + "message": "AdGuard Антибанер" + }, + "opera_search_permission_dont_show": { + "message": "Не показувати знову" + }, + "opera_search_permission_go_to_settings": { + "message": "Відкрити Налаштування" + }, + "opera_search_permission_warning": { + "message": "Щоб блокувати рекламу в пошуку, дозволити доступ до результатів сторінки пошуку в налаштуваннях браузера" + }, + "options_about": { + "message": "Про розширення" + }, + "options_about_libs": { + "message": "Використані бібліотеки" + }, + "options_about_title": { + "message": "Браузерне розширення AdGuard" + }, + "options_about_update_available": { + "message": "Версія %version% доступна. Її буде автоматично завантажити та встановити." + }, + "options_about_version": { + "message": "Версія" + }, + "options_acknowledgment": { + "message": "Подяки" + }, + "options_add_custom_filter": { + "message": "Додати власний фільтр" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Додати" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Перевірка вашого фільтра..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL повернув вебсторінку замість списку фільтрів. Будь ласка, надайте пряме посилання на файл фільтра." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Спробуйте ще раз або напишіть у службу підтримки" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Не вдалося додати власний фільтр" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Назва фільтру:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Довірений" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Деякі правила фільтрування можуть суттєво змінити ваш досвід перегляду та поставити під загрозу вашу конфіденційність. Використовуйте лише фільтри розробників, яким довіряєте" + }, + "options_add_custom_filter_modal_title": { + "message": "Додати власний фільтр" + }, + "options_all_limits_exceeded_warning": { + "message": "Ви досягли ліміту активних вбудованих правил. Ваш браузер змінив список активних вбудованих фільтрів. Кількість увімкнутих фільтрів змінилася з %expected% на %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Ви досягли ліміту вашого браузера за кількістю активних вбудованих правил. Ваш браузер скоротив список активних вбудованих фільтрів з %expected% до %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ваш браузер обмежує \u003Cexternal-link>деякі типи правил\u003C/external-link>. Щоб застосувати всі правила, увімкніть \u003Cb>Дозволити користувацькі скрипти\u003C/b> у \u003Csettings-link>налаштуваннях розширення\u003C/settings-link> вашого браузера" + }, + "options_allowlist": { + "message": "Список дозволів" + }, + "options_allowlist_alert_invert": { + "message": "Список дозволених інвертовано. Реклама заблоковано лише на сайтах, доданих до нього." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Зупинити інвертування\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard не блокує рекламу і трекери на сайтах зі списку" + }, + "options_allowlist_invalid_entries": { + "message": "Щоб зберегти, залиште лише домени або URL. Потрібно виправити: %entries%" + }, + "options_allowlist_invert": { + "message": "Інвертувати Список дозволів" + }, + "options_allowlist_invert_desc": { + "message": "Блокує рекламу та трекери лише на сайтах зі списку дозволених" + }, + "options_allowlist_leave_subtitle": { + "message": "Ваші зміни списку дозволів буде втрачено" + }, + "options_allowlist_menu": { + "message": "Дії списку дозволених" + }, + "options_anonymized_usage_data_description": { + "message": "Надсилає анонімну статистику використання розширення до AdGuard. \u003Cbutton>Дізнатися більше\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Зрозуміло" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Що входить у ці дані:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Назви кнопок, які ви натискаєте" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Назви екранів, з якими ви взаємодієте" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Ідентифікатори сеансів" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Ці дані є анонімними й використовуються лише в середині нашої компанії. Ми ніколи не передаємо їх третім особам" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Ми потребуємо цієї інформації для аналізу та покращення функціональності AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Дані про використання розширення" + }, + "options_anonymized_usage_data_title": { + "message": "Надсилати анонімізовані дані про використання розширення" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Такий власний фільтр уже додано" + }, + "options_antibanner_custom_group": { + "message": "Власні" + }, + "options_antibanner_custom_group_description": { + "message": "Дозволяє додати фільтри з файлу або URL" + }, + "options_antibanner_rules_count": { + "message": "Правила: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Оновлено: %date%" + }, + "options_block_acceptable_ads": { + "message": "Блокувати пошукову рекламу та саморекламу сайтів" + }, + "options_block_acceptable_ads_desc": { + "message": "Блокує рекламу в результатах пошуку та саморекламу сайтів. \u003Ca>Докладніше\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Щоб блокувати куки, встановіть час життя в 0" + }, + "options_block_known_trackers_description": { + "message": "Блокує трекери та вебаналітику за допомогою фільтра AdGuard Tracking Protection" + }, + "options_block_known_trackers_title": { + "message": "Блокувати елементи стеження" + }, + "options_check_update_progress": { + "message": "Перевірка..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Очистити" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Уся статистика використання даних буде назавжди Видалено" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Очистити статистику?" + }, + "options_clipboard_permission_warning": { + "message": "Щоб скопіювати та вставити правила, дозвольте AdGuard доступ до буфера обміну. \u003Ca>Дозволити\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Надсилає анонімну статистику про використання фільтрів реклами до AdGuard. \u003Ca>Докладніше\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Допоможіть розвивати фільтри AdGuard" + }, + "options_coming_soon": { + "message": "Незабаром" + }, + "options_confirm_modal_cancel_button": { + "message": "Скасувати" + }, + "options_copyright": { + "message": "Усі права захищено." + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Щоб використовувати власні фільтри, увімкніть \u003Cb>Дозволити користувацькі скрипти\u003C/b> у \u003Csettings-link>налаштуваннях розширення\u003C/settings-link> вашого браузера" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Щоб використовувати власні фільтри, увімкніть \u003Cb>Режим розробника\u003C/b> у \u003Csettings-link>налаштуваннях розширень\u003C/settings-link> вашого браузера" + }, + "options_desktop_app_promo_button_linux": { + "message": "Отримати AdGuard для Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Отримати AdGuard для Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Отримати AdGuard для Windows" + }, + "options_desktop_app_promo_description": { + "message": "Додатки як-от Spotify, Discord або Zoom все ще можуть показувати рекламу та відстежувати вашу активність" + }, + "options_desktop_app_promo_subdescription": { + "message": "Наш додаток для настільного ПК може захистити вас від них" + }, + "options_desktop_app_promo_title": { + "message": "Розширення захищає лише браузер" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Ваш браузер обмежує \u003Cexternal-link>деякі типи правил\u003C/external-link>. Щоб застосувати всі правила, увімкніть \u003Cb>Режим розробника\u003C/b> у \u003Csettings-link>налаштуваннях розширень\u003C/settings-link> вашого браузера" + }, + "options_disable_webrtc_desc": { + "message": "Блокує WebRTC, який може розкрити вашу справжню IP-адресу навіть якщо ви використовуєте проксі або VPN. Деякі месенджери, стрімінгові платформи або ігри можуть перестати працювати коректно" + }, + "options_disable_webrtc_title": { + "message": "Блокувати WebRTC" + }, + "options_discuss": { + "message": "Обговорення AdGuard" + }, + "options_do_you_like_question": { + "message": "Подобається AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Вийти з повноекранного режиму" + }, + "options_editor_indicator_saved": { + "message": "Збережено" + }, + "options_editor_indicator_saving": { + "message": "Збереження..." + }, + "options_editor_leave_cancel": { + "message": "Повернутися до редагування" + }, + "options_editor_leave_confirm": { + "message": "Так, вийти" + }, + "options_editor_leave_title": { + "message": "Вийти без збереження?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Відкрити редактор у новому вікні" + }, + "options_editor_save": { + "message": "Зберегти" + }, + "options_editor_save_error": { + "message": "Не вдалося зберегти зміни. Спробуйте знову або зверніться до служби підтримки" + }, + "options_empty_custom_filter": { + "message": "Поки що немає власних фільтрів" + }, + "options_enable_autodetect_filter": { + "message": "Автоматично вмикати найвідповідніші фільтри" + }, + "options_enable_autodetect_filter_desc": { + "message": "Визначає мову сайту та активує відповідні фільтри" + }, + "options_export_settings": { + "message": "Експорт налаштувань" + }, + "options_filters": { + "message": "Фільтри" + }, + "options_filters_annoyances_consent_description": { + "message": "Ви збираєтеся увімкнути один або кілька фільтрів подразників. Вони блокують елементи, які або не мають стосунку до вмісту сайту, або мають, але дратують користувача. Власники сайтів можуть вважати ці елементи обовʼязковими: якщо ви блокуєте їх, ви можете порушити їхні умови; частина функціональності сайтів може бути недоступною або працювати неправильно. Ви розумієте та погоджуєтеся з тим, що несете повну відповідальність за дотримання умов використання сайтів, які ви відвідуєте, і що AdGuard не несе відповідальності за дотримання вами умов використання сайтів, які ви відвідуєте, використовуючи наші продукти." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Увімкнути" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Домашня сторінка" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Для деталей про те, що блокують фільтри подразнень AdGuard, див. \u003Ca>Політику фільтрації\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Увімкнути ці фільтри?" + }, + "options_filters_annoyances_consent_title": { + "message": "Будь ласка, уважно прочитайте текст нижче, перш ніж вмикати фільтри подразників" + }, + "options_filters_back_button": { + "message": "Назад" + }, + "options_filters_empty_title": { + "message": "Нічого не знайдено" + }, + "options_filters_enabled": { + "message": "Увімкнено:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% та %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% і ще %more%" + }, + "options_filters_enabled_per_group": { + "message": "Увімкнено: %current% з %total%" + }, + "options_filters_filter_link": { + "message": "Перейти на домашню сторінку" + }, + "options_filters_filter_tags": { + "message": "Теги фільтра" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Ви встановили цей фільтр як довірений." + }, + "options_filters_filter_updated": { + "message": "Оновлено:" + }, + "options_filters_filter_version": { + "message": "Версія:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Всього правил: %num%" + }, + "options_filters_last_checked": { + "message": "Остання перевірка: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Усі фільтри" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Вимкнені" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Увімкнені" + }, + "options_filters_no_enabled": { + "message": "Немає увімкнених фільтрів" + }, + "options_filters_of_group": { + "message": "Фільтри групи «%groupName%»" + }, + "options_filters_search": { + "message": "Пошук" + }, + "options_filters_search_filter": { + "message": "Пошук фільтрів" + }, + "options_first_party_block_cookies_warning": { + "message": "Якщо ви повністю заблокуєте ці файли куки, деякі сайти можуть зламати або припинити роботу" + }, + "options_first_party_desc": { + "message": "Запобігає сайтам запам’ятовувати ваші дані, такі як облікові дані для входу та мовні уподобання, обмежуючи термін дії тутешніх куки" + }, + "options_first_party_title": { + "message": "Видалити основні файли cookie (не рекомендовано)" + }, + "options_general_settings": { + "message": "Основні" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Не дозволяти стороннім ресурсам дізнаватися, який вебсайт ви відвідуєте" + }, + "options_hide_referrer_title": { + "message": "Приховувати Referrer від сторонніх ресурсів" + }, + "options_hide_search_queries_desc": { + "message": "Приховує ваші пошукові запити від сайтів, які ви відвідуєте через результати пошукової системи" + }, + "options_hide_search_queries_title": { + "message": "Приховувати пошукові запити" + }, + "options_import_configuration_applying_subtitle": { + "message": "Замінення ваших поточних налаштувань на імпортовані. Під час імпорту фільтрування вимкнено" + }, + "options_import_configuration_applying_title": { + "message": "Імпорт..." + }, + "options_import_configuration_confirm_button": { + "message": "Імпорт" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Імпортовані налаштування замінять ваші поточні. Це не вплине на інші налаштування" + }, + "options_import_configuration_confirm_title": { + "message": "Імпорт налаштувань" + }, + "options_import_configuration_error_button": { + "message": "Закрити" + }, + "options_import_configuration_error_subtitle": { + "message": "Перевірте посилання для імпорту і спробуйте ще раз. Якщо це не допоможе, зверніться до служби підтримки" + }, + "options_import_configuration_error_title": { + "message": "Не вдалося імпортувати параметри" + }, + "options_import_configuration_success_button": { + "message": "Закрити" + }, + "options_import_configuration_success_subtitle": { + "message": "Налаштування успішно імпортовано" + }, + "options_import_configuration_success_title": { + "message": "Готово" + }, + "options_import_settings": { + "message": "Імпорт налаштувань" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Інвертувати" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Реклама і трекери будуть заблоковано лише на сайтах з allowlist" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Інвертувати список дозволених?" + }, + "options_leave_feedback": { + "message": "Поділитись" + }, + "options_lifetime_minutes": { + "message": "Час життя, хвилини" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Ви досягли ліміту користувацьких правил з регулярними виразами. %maximum% з %current% правил активні." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Ви досягли ліміту доданих користувачем правил з регулярними виразами. %maximum% з %current% правил увімкнено. Щоб додати нові правила з регулярними виразами, видаліть деякі наявні" + }, + "options_limits_warning_dynamic_rules": { + "message": "Ви досягли ліміту користувацьких правил. %maximum% з %current% правил активні." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Ви досягли ліміту правил, доданих користувачем. %maximum% з %current% правил увімкнено. Щоб додати нові правила, видаліть деякі наявні" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Ви досягли ліміту користувацьких небезпечних правил. %maximum% з %current% небезпечних правил активні." + }, + "options_limits_warning_static_filters": { + "message": "Ви досягли ліміту активних вбудованих фільтрів. %maximum% з %current% фільтрів увімкнено. Щоб активувати нові правила, вимкніть деякі вбудовані фільтри." + }, + "options_limits_warning_static_filters_browser": { + "message": "Ви досягли ліміту вашого браузера за кількістю активних вбудованих фільтрів. %maximum% з %current% фільтрів увімкнено. Щоб активувати нові фільтри, вимкніть деякі вбудовані" + }, + "options_limits_warning_static_regex_rules": { + "message": "Ви досягли ліміту активних вбудованих правил з регулярними виразами. %maximum% з %current% правил увімкнено. Щоб активувати нові правила, вимкніть деякі вбудовані фільтри." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Ви досягли ліміту активних вбудованих правил з регулярними виразами. Щоб активувати нові правила, вимкніть деякі вбудовані фільтри" + }, + "options_limits_warning_static_rules": { + "message": "Ви досягли ліміту активних вбудованих правил. %maximum% з %current% правил увімкнено. Щоб активувати нові правила, вимкніть деякі вбудовані фільтри." + }, + "options_limits_warning_static_rules_browser": { + "message": "Ви досягли ліміту вашого браузера за кількістю активних вбудованих правил. Щоб активувати нові правила, вимкніть деякі вбудовані фільтри" + }, + "options_loader_applying_changes": { + "message": "Застосування змін..." + }, + "options_miscellaneous_settings": { + "message": "Додаткові налаштування" + }, + "options_modified_first_party_cookie": { + "message": "Первинний кукі-файл змінено" + }, + "options_modified_third_party_cookie": { + "message": "Сторонній кукі-файл змінено" + }, + "options_nav_better_than_extension": { + "message": "Чому програма AdGuard краща, ніж розширення?" + }, + "options_nav_compare": { + "message": "Порівняти" + }, + "options_navigation": { + "message": "Навігація" + }, + "options_open_changelog": { + "message": "Список змін" + }, + "options_open_log": { + "message": "Відкрити журнал фільтрування" + }, + "options_popup_call_to_action": { + "message": "Введіть дійсну URL-адресу або шлях до файлу фільтра." + }, + "options_popup_check_false_description": { + "message": "Під час додавання власного фільтра сталась помилка." + }, + "options_popup_check_false_title": { + "message": "Помилка" + }, + "options_popup_checking_filter": { + "message": "Перевірка вашого фільтра" + }, + "options_popup_description": { + "message": "Цей фільтр буде додано." + }, + "options_popup_filter_description": { + "message": "Опис:" + }, + "options_popup_filter_homepage": { + "message": "Домашня сторінка:" + }, + "options_popup_filter_rules_count": { + "message": "Кількість правил:" + }, + "options_popup_filter_title": { + "message": "Назва:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Версія:" + }, + "options_popup_import_error_file_description": { + "message": "Щось пішло не так." + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Щоб імпортувати цей файл налаштувань, дозвольте AdGuard змінити ваші налаштування конфіденційності." + }, + "options_popup_import_error_title": { + "message": "Не вдалося імпортувати параметри" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Розширення файлу має бути %extension%" + }, + "options_popup_import_success_title": { + "message": "Налаштування імпортовано" + }, + "options_popup_next_button": { + "message": "Далі" + }, + "options_popup_subscribe_button": { + "message": "Додати" + }, + "options_popup_title_placeholder": { + "message": "Введіть назву фільтра" + }, + "options_popup_trusted_filter_description": { + "message": "Довірені фільтри можуть використовувати потужні модифікатори правил фільтрування, що можуть бути небезпечними у невмілих руках. Не вмикайте цю функцію, якщо ви не цілком впевнені." + }, + "options_popup_trusted_filter_title": { + "message": "Довірений" + }, + "options_popup_try_again_button": { + "message": "Спробувати знову" + }, + "options_popup_update_error": { + "message": "Не вдалося отримати оновлення. Будь ласка, спробуйте ще раз пізніше." + }, + "options_popup_update_filter": { + "message": "оновлено." + }, + "options_popup_update_filters": { + "message": "оновлено." + }, + "options_popup_update_not_found": { + "message": "Ваші фільтри актуальні" + }, + "options_popup_update_title_error": { + "message": "Помилка оновлення фільтрів" + }, + "options_popup_updating_filters": { + "message": "Оновлення фільтрів..." + }, + "options_popup_url_placeholder": { + "message": "Введіть URL-адресу або шлях до файлу" + }, + "options_popup_url_title": { + "message": "Додавання нового фільтра" + }, + "options_popup_version_update_changelog_text": { + "message": "Що нового в цій версії?" + }, + "options_popup_version_update_description_major": { + "message": "Це важливе оновлення, що містить чимало вдосконалень." + }, + "options_popup_version_update_description_minor": { + "message": "Ця версія містить виправлення помилок і незначні вдосконалення." + }, + "options_popup_version_update_disable_notification": { + "message": "Вимкнути сповіщення" + }, + "options_popup_version_update_offer": { + "message": "Чи відомо вам, що можливості AdGuard не обмежуються цим браузером?" + }, + "options_popup_version_update_offer_button_text": { + "message": "ДОКЛАДНІШЕ" + }, + "options_popup_version_update_title_text": { + "message": "Розширення AdGuard оновлено до версії %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Змушує WebRTC використовувати суворішу політику IP-адреси, щоб допомогти приховати вашу реальну IP-адресу, коли ви використовуєте проксі або VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Запобігти витокам IP-адреси через WebRTC" + }, + "options_privacy": { + "message": "Захист від стеження" + }, + "options_privacy_desc": { + "message": "Захищає вашу онлайн-активність та особисті дані від стеження" + }, + "options_privacy_policy": { + "message": "Політика конфіденційності" + }, + "options_privacy_title": { + "message": "Захист від стеження" + }, + "options_rate_us_cta": { + "message": "Оцініть нас" + }, + "options_remove_client_data_desc": { + "message": "Забороняти Google Chrome надсилати Google-доменам інформацію про версію та модифікації браузера" + }, + "options_remove_client_data_title": { + "message": "Вилучати заголовок X-Client-Data" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Вилучити" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Вилучити цей фільтр?" + }, + "options_report_bug": { + "message": "Повідомити про помилку" + }, + "options_reset_settings": { + "message": "Скинути налаштування" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Скинути" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Усі налаштування буде скинуто до значень за замовчуванням" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Скинути налаштування?" + }, + "options_reset_settings_done": { + "message": "Налаштування скинуто" + }, + "options_reset_settings_error": { + "message": "Помилка під час імпорту налаштувань" + }, + "options_reset_stats": { + "message": "Очистити статистику" + }, + "options_reset_stats_done": { + "message": "Статистику скинуто" + }, + "options_rule_limits": { + "message": "Ліміти правил" + }, + "options_rule_limits_description": { + "message": "Chrome обмежує кількість правил, які можна застосувати" + }, + "options_rule_limits_dynamic": { + "message": "Динамічні правила" + }, + "options_rule_limits_dynamic_regex": { + "message": "Правила з регулярними виразами — включені в користувацькі правила" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Небезпечні динамічні правила (використовуються для деяких просунутих модифікаторів, таких як $$redirect або $$cookie) — включені в користувацькі правила" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Додані користувачем правила, наприклад \u003Cuser_rules>правила користувача\u003C/user_rules>, \u003Callowlist>вебсайти зі списку дозволів\u003C/allowlist> та \u003Ccustom_filters>власні фільтри\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Додані користувачем правила, наприклад \u003Cuser_rules>правила користувача\u003C/user_rules> та \u003Callowlist>вебсайти зі списку дозволів\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% з %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Статичні правила" + }, + "options_rule_limits_static_rules_all": { + "message": "Правила із \u003Ca>вбудованих фільтрів\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Правила з регулярними виразами — включені вище" + }, + "options_rule_limits_static_rulesets": { + "message": "Статичні набори правил" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Вбудовані фільтри\u003C/a>, як-от Блокувати роздратування або Мовні фільтри" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Варіант 3. Якщо вас влаштовують увімкнені зараз усталені фільтри, \u003Ca>закрийте це попередження\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Варіант 3. Якщо вас влаштовує увімкнений зараз усталений фільтр, \u003Ca>закрийте це попередження\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Варіант 1. Видаліть з браузера непотрібні розширення для блокування реклами. Щоб спробувати ще раз увімкнути фільтри, зазначені у розділі «Фільтри, що були увімкнені перед оновленням», \u003Ca>увімкніть фільтри повторно.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Варіант 2. Встановіть повноцінну програму AdGuard — вона не має обмежень на правила фільтрування. \u003Ca>Отримати програму AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Ваші можливі дії" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Після оновлення або додавання нового розширення було перевищено ліміт активних вбудованих правил. Відповідно до Маніфесту V3, браузер Chrome вимкнув усі вбудовані фільтри розширення, окрім усталених." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Що трапилось?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Фільтри, що були увімкнені перед оновленням" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Фільтри, що увімкнено зараз" + }, + "options_rule_limits_warning_title": { + "message": "Браузер змінив список активних фільтрів" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Зніміть обмеження правил і отримайте розширений захист, що працює в усіх браузерах" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Встановіть застосунок для настільного ПК" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Перейти до фільтрів" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Керувати розширеннями" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Розширення браузера обмінюються одним і тим самим лімітом правил. Видалення інших блокувальників реклами може звільнити більше правил для AdGuard Browser Extension" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Видалити інші блокувальники реклами" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Увімкніть потрібні фільтри. Фільтри за мовою та приватністю можуть використовувати багато правил" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Переглянути доступні фільтри" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Ось що ви можете зробити" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Досягнуто ліміту — деякі фільтри вимкнено" + }, + "options_rule_syntax": { + "message": "Синтаксис" + }, + "options_safebrowsing_enabled": { + "message": "Захист від шахрайства і зловмисних програм" + }, + "options_safebrowsing_enabled_desc": { + "message": "Попереджає про зловмисні та фішингові сайти за допомогою модуля AdGuard Безпека перегляду. \u003Ca>Докладніше\u003C/a>" + }, + "options_select_theme": { + "message": "Тема" + }, + "options_select_update_period_12h": { + "message": "12 годин" + }, + "options_select_update_period_1h": { + "message": "1 година" + }, + "options_select_update_period_24h": { + "message": "24 години" + }, + "options_select_update_period_48h": { + "message": "48 годин" + }, + "options_select_update_period_6h": { + "message": "6 годин" + }, + "options_select_update_period_default": { + "message": "Усталений" + }, + "options_select_update_period_disabled": { + "message": "Вимкнено" + }, + "options_send_not_track_desc": { + "message": "Надсилати сигнали \u003Cgpc>Global Privacy Control\u003C/gpc> та \u003Cdnt>Do Not Track\u003C/dnt> вебсайтам, які ви відвідуєте" + }, + "options_send_not_track_title": { + "message": "Просити сайти не стежити за мною" + }, + "options_set_update_interval": { + "message": "Інтервал автоматичного оновлення" + }, + "options_set_update_interval_desc": { + "message": "Підтримує фільтри в актуальному стані для ефективнішої блокування реклами" + }, + "options_settings": { + "message": "Налаштування AdGuard" + }, + "options_share_settings": { + "message": "Поділіться налаштуваннями" + }, + "options_show_adguard_full_version_title": { + "message": "Показувати інформацію про повну версію AdGuard" + }, + "options_show_app_updated_notification": { + "message": "Сповіщати про оновлення розширення" + }, + "options_show_blocked_ads_count_title": { + "message": "Показувати кількість заблокованої реклами на піктограмі AdGuard" + }, + "options_show_context_menu_title": { + "message": "Додати AdGuard в контекстне меню браузера" + }, + "options_site": { + "message": "Офіційний сайт" + }, + "options_skip_to_main_content": { + "message": "Перейти до основного вмісту" + }, + "options_stealth_general_title": { + "message": "Загальні" + }, + "options_stealth_miscellaneous_title": { + "message": "Різне" + }, + "options_stealth_tracking_methods_title": { + "message": "Методи стеження" + }, + "options_strip_tracking_params_description": { + "message": "Видалення параметрів відстеження з URL-адрес сторінок за допомогою фільтра відстеження URL-адрес AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Як вилучити параметри відстеження з URL-адрес" + }, + "options_stripped_tracking_parameters": { + "message": "Параметри стеження вилучено" + }, + "options_theme_selector_dark": { + "message": "Темна" + }, + "options_theme_selector_light": { + "message": "Світла" + }, + "options_theme_selector_system": { + "message": "Системна" + }, + "options_third_party_block_cookies_warning": { + "message": "Якщо ви повністю заблокуєте ці файли куки, вам, можливо, доведеться повторно ввійти на деякі сайти або виникнуть інші проблеми, пов’язані з файлами куки" + }, + "options_third_party_desc": { + "message": "Запобігає відстеженню вашої поведінки на різних сторінках рекламодавцями, обмежуючи термін дії сторонніх cookie" + }, + "options_third_party_title": { + "message": "Видалити сторонні файли cookie" + }, + "options_update_antibanner_filters": { + "message": "Перевірити оновлення фільтрів" + }, + "options_use_optimized_filters": { + "message": "Використовувати оптимізовані фільтри" + }, + "options_use_optimized_filters_desc": { + "message": "Задля економії трафіку використовує скорочені версії фільтрів, що містять лише найбільш популярні правила. Краще підходить для мобільних браузерів" + }, + "options_user_rules_clear_search": { + "message": "Очистити пошук" + }, + "options_user_rules_create_rule": { + "message": "Створити правило" + }, + "options_user_rules_delete_all": { + "message": "Видалити все" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Усі користувацькі правила будуть остаточно видалені" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Видалити все?" + }, + "options_user_rules_delete_all_success": { + "message": "Всі правила користувача видалено" + }, + "options_user_rules_delete_rule": { + "message": "Вилучити правило" + }, + "options_user_rules_deleted_notification": { + "message": "Правило користувача видалено:" + }, + "options_user_rules_description_key": { + "message": "Ваші правила для блокування та розблокування реклами або цілих сайтів" + }, + "options_user_rules_edit_rule": { + "message": "Редагувати правило" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Перейти до редактора" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Ваші правила з’являться тут після того, як ви його закриєте" + }, + "options_user_rules_editor_stub_title": { + "message": "Редактор відкрито в іншому вікні" + }, + "options_user_rules_empty_placeholder": { + "message": "Ще немає правил" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Підсвічування правил…" + }, + "options_user_rules_import_error": { + "message": "Не вдалося імпортувати правила користувача. Спробуйте ще раз" + }, + "options_user_rules_import_success": { + "message": "Правила користувача успішно імпортовано" + }, + "options_user_rules_menu": { + "message": "Дії правил користувача" + }, + "options_user_rules_no_match": { + "message": "Нічого не знайдено..." + }, + "options_user_rules_search_placeholder": { + "message": "Пошук" + }, + "options_user_rules_switch_to_editor": { + "message": "Переключитися до режиму редактора" + }, + "options_user_rules_switch_to_list": { + "message": "Переключитися до режиму списку" + }, + "options_user_rules_undo": { + "message": "Скасувати" + }, + "options_userfilter": { + "message": "Правила користувача" + }, + "options_userfilter_description_key": { + "message": "Ви можете додавати свої правила фільтрування. Проте ми не рекомендуємо це робити, якщо ви не розбираєтесь у HTML/CSS. Перш ніж додавати свої правила, ознайомтесь з \u003Ca>документацією щодо їх створення\u003C/a>." + }, + "options_userfilter_export": { + "message": "Експорт" + }, + "options_userfilter_import": { + "message": "Імпорт" + }, + "options_userfilter_leave_subtitle": { + "message": "Ваші зміни до правил буде втрачено" + }, + "options_userfilter_line_break": { + "message": "Розрив рядка" + }, + "options_userfilter_line_break_off": { + "message": "Розрив рядка: вимкнено" + }, + "options_userfilter_line_break_on": { + "message": "Розрив рядка: увімкнено" + }, + "options_userfilter_subtitle_key": { + "message": "Дозволяє додавати власні правила фільтрування" + }, + "popup_abuse_site": { + "message": "Повідомити про проблему" + }, + "popup_adguard_footer_title": { + "message": "Захистіть свій мобільний пристрій" + }, + "popup_adguard_for_android": { + "message": "AdGuard для Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard для iOS" + }, + "popup_block_site_ads_option": { + "message": "Блокувати рекламу вручну" + }, + "popup_get_system_wide_protection": { + "message": "Отримайте захист на системному рівні" + }, + "popup_header_cta_link": { + "message": "Як покращити захист" + }, + "popup_header_update_filters": { + "message": "Перевірити оновлення фільтрів" + }, + "popup_limits_exceeded_warning": { + "message": "Ваш браузер змінив список активних вбудованих фільтрів" + }, + "popup_open_filtering_log": { + "message": "Відкрити журнал фільтрування" + }, + "popup_open_settings": { + "message": "Відкрити налаштування AdGuard" + }, + "popup_protection_button": { + "message": "Захист AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Видалити правила користувача для цього сайту" + }, + "popup_resume_protection_button": { + "message": "Виправити" + }, + "popup_security_report": { + "message": "Перевірити безпечність сайту" + }, + "popup_site_exception_information": { + "message": "Фільтрування вимкнено, оскільки воно може перешкоджати роботі цього вебсайту." + }, + "popup_site_filtering_state_disabled": { + "message": "Захист вимкнено" + }, + "popup_site_filtering_state_disabling": { + "message": "Вимкнення захисту..." + }, + "popup_site_filtering_state_enabled": { + "message": "Захист увімкнено" + }, + "popup_site_filtering_state_enabling": { + "message": "Увімкнення захисту..." + }, + "popup_site_filtering_state_loading": { + "message": "Завантаження..." + }, + "popup_site_filtering_state_paused": { + "message": "Захист призупинено" + }, + "popup_site_filtering_state_pausing": { + "message": "Зупинка захисту..." + }, + "popup_site_filtering_state_resuming": { + "message": "Відновлення захисту..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Безпечна сторінка" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "для всіх вебсайтів" + }, + "popup_statistics_all_categories": { + "message": "Усі" + }, + "popup_statistics_category_advertising": { + "message": "Оголошення" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Категорія статистики" + }, + "popup_statistics_category_other": { + "message": "Інші" + }, + "popup_statistics_category_social_media": { + "message": "Соціальні мережі" + }, + "popup_statistics_category_trackers": { + "message": "Стеження" + }, + "popup_statistics_months_apr": { + "message": "Квіт" + }, + "popup_statistics_months_aug": { + "message": "Серп" + }, + "popup_statistics_months_dec": { + "message": "Груд" + }, + "popup_statistics_months_feb": { + "message": "Лют" + }, + "popup_statistics_months_jan": { + "message": "Січ" + }, + "popup_statistics_months_jul": { + "message": "Лип" + }, + "popup_statistics_months_jun": { + "message": "Черв" + }, + "popup_statistics_months_mar": { + "message": "Бер" + }, + "popup_statistics_months_may": { + "message": "Трав" + }, + "popup_statistics_months_nov": { + "message": "Лист" + }, + "popup_statistics_months_oct": { + "message": "Жовт" + }, + "popup_statistics_months_sep": { + "message": "Вер" + }, + "popup_statistics_time_day": { + "message": "24 години" + }, + "popup_statistics_time_label": { + "message": "Статистика за часовий проміжок" + }, + "popup_statistics_time_month": { + "message": "30 днів" + }, + "popup_statistics_time_week": { + "message": "7 днів" + }, + "popup_statistics_time_year": { + "message": "1 рік" + }, + "popup_statistics_total": { + "message": "Усе" + }, + "popup_statistics_week_days_fri": { + "message": "ПТ" + }, + "popup_statistics_week_days_mon": { + "message": "ПН" + }, + "popup_statistics_week_days_sat": { + "message": "СБ" + }, + "popup_statistics_week_days_sun": { + "message": "НД" + }, + "popup_statistics_week_days_thu": { + "message": "ЧТ" + }, + "popup_statistics_week_days_tue": { + "message": "ВТ" + }, + "popup_statistics_week_days_wed": { + "message": "СР" + }, + "popup_switch_button": { + "message": "Захист для поточного сайту" + }, + "popup_tab_actions": { + "message": "Дії" + }, + "popup_tab_blocked_all_count": { + "message": "Всього заблоковано: %num%" + }, + "popup_tab_blocked_count": { + "message": "Заблоковано: %num%" + }, + "popup_tab_current_website": { + "message": "Поточний сайт" + }, + "popup_tab_statistics": { + "message": "Статистика" + }, + "popup_tabs": { + "message": "Вкладки" + }, + "popup_tooltip_loading": { + "message": "Завантаження..." + }, + "popup_tooltip_protection_disabled": { + "message": "Захист вимкнено" + }, + "popup_tooltip_protection_enabled": { + "message": "Захист увімкнено" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Деякі правила не застосовано" + }, + "popup_tooltip_update_available": { + "message": "Доступне оновлення" + }, + "post_install_loading": { + "message": "Розширення завантажується..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Перевищено ліміт правил у браузерному розширенні AdGuard. Будь ласка, перевірте свої фільтри та вимкніть непотрібні" + }, + "text_collapser_hide_default": { + "message": "Скоротити текст" + }, + "text_collapser_show_default": { + "message": "Показати текст цілком" + }, + "update_available_desc": { + "message": "Щоб ефективно блокувати рекламу, оновлюйте ваше розширення та фільтри" + }, + "update_available_title": { + "message": "Доступні оновлення" + }, + "update_available_update_btn": { + "message": "Встановити" + }, + "update_check": { + "message": "Перевірити оновлення" + }, + "update_checking_in_progress": { + "message": "Перевірка оновлень..." + }, + "update_failed_text": { + "message": "Не вдалося завершити оновлення" + }, + "update_failed_try_again_btn": { + "message": "Спробувати знову" + }, + "update_installing_in_progress_desc": { + "message": "Розширення перезапуститься після оновлення" + }, + "update_installing_in_progress_title": { + "message": "Оновлення розширення та фільтрів..." + }, + "update_not_needed": { + "message": "Ваші розширення та фільтри — найсвіжіші" + }, + "update_success_text": { + "message": "Розширення і фільтри оновлено" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/vi/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/vi/messages.json new file mode 100644 index 0000000..6e747ee --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/vi/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% đã được tự động kích hoạt." + }, + "alert_popup_filter_enabled_title": { + "message": "Tự kích hoạt bộ lọc" + }, + "background_tab_title": { + "message": "Thẻ chạy nền" + }, + "blocking_pages_advanced_button": { + "message": "Nâng cao" + }, + "blocking_pages_btn_go_back": { + "message": "Quay lại" + }, + "blocking_pages_btn_proceed": { + "message": "Vẫn truy cập" + }, + "blocking_pages_malware": { + "message": "Trang web này tại \u003Cstrong>%host%\u003C/strong> đã được báo cái là trang nguy hiểm và vừa bị chặn dựa trên tùy chọn bảo mật của bạn." + }, + "blocking_pages_more_info_button": { + "message": "Thông tin thêm" + }, + "blocking_pages_page_title": { + "message": "Truy cập bị từ chối" + }, + "blocking_pages_phishing": { + "message": "Trang web này tại \u003Cstrong>%host%\u003C/strong> đã được báo cáo là trang lừa đảo và vừa bị chặn theo tùy chọn bảo mật của bạn." + }, + "blocking_pages_rule_content_title": { + "message": "Adguard đã ngăn trang này tải do tuân theo quy tắc bộ lọc sau" + }, + "blocking_pages_rule_header_title": { + "message": "Bị chặn bởi AdGuard" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard đã chặn truy cập vào trang này" + }, + "clear_button_title": { + "message": "Xoá" + }, + "close_button_title": { + "message": "Đóng" + }, + "context_block_site_ads": { + "message": "Chặn quảng cáo thủ công" + }, + "context_complaint_website": { + "message": "Báo lỗi" + }, + "context_disable_protection": { + "message": "Tạm dừng bảo vệ của AdGuard" + }, + "context_enable_protection": { + "message": "Tiếp tục bảo vệ của AdGuard" + }, + "context_open_log": { + "message": "Mở nhật ký lọc" + }, + "context_open_settings": { + "message": "Cài đặt AdGuard" + }, + "context_security_report": { + "message": "Kiểm tra bảo mật website" + }, + "context_site_exception": { + "message": "Website này nằm trong danh sách loại trừ" + }, + "context_site_filtering_disabled": { + "message": "AdGuard không thể lọc trang này" + }, + "context_site_filtering_off": { + "message": "Vô hiệu lọc trên website này" + }, + "context_site_filtering_on": { + "message": "Kích hoạt lọc trên website này" + }, + "context_site_protection_disabled": { + "message": "Đã tạm dừng bảo vệ của AdGuard" + }, + "context_update_antibanner_filters": { + "message": "Kiểm tra cập nhật bộ lọc" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "Ứng dụng ngăn chặn tuyệt đối quảng cáo và cửa sổ bật lên. Loại bỏ quảng cáo trên Facebook, Youtube và tất cả các trang web khác." + }, + "filtering_clear_log_events": { + "message": "Xoá nhật ký" + }, + "filtering_log_actions_menu": { + "message": "Lọc các hành động nhật ký" + }, + "filtering_log_assumed_rule_description": { + "message": "Đây là một quy tắc được cho là đúng. Để biết chi tiết, hãy xem Cơ sở kiến thức \u003Ca>của chúng tôi\u003C/a>" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "Phương thức yêu cầu HTTP" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "Mã trạng thái HTTP" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "Yêu cầu từ bên thứ ba" + }, + "filtering_log_details_modal_back_button": { + "message": "Quay lại yêu cầu" + }, + "filtering_log_details_modal_beautify_button": { + "message": "Làm gọn" + }, + "filtering_log_details_modal_try_again": { + "message": "Thử lại" + }, + "filtering_log_filter_allowed": { + "message": "Đã cho phép" + }, + "filtering_log_filter_blocked": { + "message": "Đã chặn" + }, + "filtering_log_filter_modified": { + "message": "Đã chỉnh sửa" + }, + "filtering_log_filter_regular": { + "message": "Thông thường" + }, + "filtering_log_filter_user_rules": { + "message": "Quy tắc người dùng" + }, + "filtering_log_hide_referrer": { + "message": "Người giới thiệu bị ẩn khỏi bên thứ ba" + }, + "filtering_log_hide_search_queries": { + "message": "Ẩn các truy vấn tìm kiếm bạn" + }, + "filtering_log_in_allowlist": { + "message": "Trang này ở trong Danh sách cho phép" + }, + "filtering_log_modified_rules": { + "message": "Quy tắc sửa đổi: %rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "Có, bảo quản" + }, + "filtering_log_preserve_log_modal_description": { + "message": "Tùy chọn này có thể làm tăng đáng kể việc sử dụng bộ nhớ" + }, + "filtering_log_preserve_log_modal_title": { + "message": "Nhật ký bảo quản?" + }, + "filtering_log_preserve_log_off": { + "message": "Không lưu nhật trình" + }, + "filtering_log_preserve_log_on": { + "message": "Nhật ký bảo quản" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "Không hiển thị lại" + }, + "filtering_log_privacy_applied_rules": { + "message": "Đã áp dụng bảo vệ theo dõi" + }, + "filtering_log_remove_client_data": { + "message": "Đã xóa tiêu đề X-Client-Data" + }, + "filtering_log_search_string": { + "message": "Tìm kiếm" + }, + "filtering_log_search_tabs_placeholder": { + "message": "Tìm kiếm ở đây" + }, + "filtering_log_send_not_track": { + "message": "Đã gửi tiêu đề Không theo dõi" + }, + "filtering_log_status_allowed": { + "message": "Đã cho phép" + }, + "filtering_log_status_blocked": { + "message": "Đã bị chặn" + }, + "filtering_log_status_modified": { + "message": "Đã sửa đổi" + }, + "filtering_log_status_processed": { + "message": "Đã xử lý" + }, + "filtering_log_stealth_rules": { + "message": "Quy tắc bảo vệ theo dõi: %rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "Yêu cầu nguồn gốc" + }, + "filtering_log_tag_request_status": { + "message": "Trạng thái đang lọc" + }, + "filtering_log_tag_request_type": { + "message": "Loại yêu cầu" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "Chỉ các yêu cầu không bị chặn" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "Đã chặn các yêu cầu" + }, + "filtering_log_tag_tooltip_css": { + "message": "Stylesheets" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "Chỉ các yêu cầu từ bên thứ nhất" + }, + "filtering_log_tag_tooltip_html": { + "message": "Tài liệu và tài liệu nhỏ" + }, + "filtering_log_tag_tooltip_img": { + "message": "Hình ảnh" + }, + "filtering_log_tag_tooltip_js": { + "message": "Scripts" + }, + "filtering_log_tag_tooltip_media": { + "message": "Đa phương tiện" + }, + "filtering_log_tag_tooltip_modified": { + "message": "Yêu cầu được sửa đổi" + }, + "filtering_log_tag_tooltip_other": { + "message": "Phông chữ, ping, WebRTC, WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "Chỉ các yêu cầu đã được xử lý không cần lọc" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "Yêu cầu từ bên thứ ba" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "Yêu cầu bị ảnh hưởng bởi quy tắc của người dùng" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests và yêu cầu tìm nạp" + }, + "filtering_log_title": { + "message": "Nhật ký lọc" + }, + "filtering_menu_open_filters": { + "message": "Tuỳ chỉnh" + }, + "filtering_modal_add_rule": { + "message": "Thêm" + }, + "filtering_modal_allow_title": { + "message": "Thêm quy tắc cho phép" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "Quy tắc áp dụng | Quy tắc áp dụng" + }, + "filtering_modal_apply_domains": { + "message": "Áp dụng cho tất cả các trang web" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Quy tắc giả định:" + }, + "filtering_modal_block": { + "message": "Chặn" + }, + "filtering_modal_block_again": { + "message": "Chặn lần nữa" + }, + "filtering_modal_block_title": { + "message": "Thêm quy tắc chặn" + }, + "filtering_modal_converted_to": { + "message": "Chuyển đổi thành:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "Đã sao chép" + }, + "filtering_modal_copy_to_clipboard": { + "message": "Chép vào clipboard" + }, + "filtering_modal_declarative_rule": { + "message": "Quy tắc DNR:" + }, + "filtering_modal_element": { + "message": "Phần tử:" + }, + "filtering_modal_exception_title": { + "message": "Thêm loại trừ" + }, + "filtering_modal_filter": { + "message": "Bộ lọc" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "Trạng thái đang lọc" + }, + "filtering_modal_hide_full_element": { + "message": "Ẩn toàn bộ yếu tố" + }, + "filtering_modal_hide_full_rule": { + "message": "Ẩn toàn bộ quy tắc" + }, + "filtering_modal_hide_full_url": { + "message": "Ẩn toàn bộ URL" + }, + "filtering_modal_important": { + "message": "Cấp ưu tiên cao hơn cho quy tắc" + }, + "filtering_modal_info_title": { + "message": "Chi tiết yêu cầu" + }, + "filtering_modal_open_in_new_tab": { + "message": "Mở trong thẻ mới" + }, + "filtering_modal_options_desc": { + "message": "Tuỳ chọn" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "| Quy tắc gốc:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "Những gì nên được phép" + }, + "filtering_modal_patterns_desc_block": { + "message": "Những gì nên bị chặn" + }, + "filtering_modal_preview_request_button": { + "message": "Xem trước" + }, + "filtering_modal_preview_title": { + "message": "Xem trước" + }, + "filtering_modal_privacy": { + "message": "Bảo vệ chống theo dõi" + }, + "filtering_modal_remove_allowlist": { + "message": "Xóa khỏi Danh sách cho phép" + }, + "filtering_modal_remove_param": { + "message": "Xóa các chuỗi truy vấn" + }, + "filtering_modal_remove_user": { + "message": "Xóa quy tắc" + }, + "filtering_modal_rule": { + "message": "Quy tắc:" + }, + "filtering_modal_rule_text_desc": { + "message": "Quy tắc" + }, + "filtering_modal_rules": { + "message": "Quy tắc:" + }, + "filtering_modal_show_full_element": { + "message": "Hiện toàn bộ yếu tố" + }, + "filtering_modal_show_full_rule": { + "message": "Hiện toàn bộ quy tắc" + }, + "filtering_modal_show_full_url": { + "message": "Hiện toàn bộ URL" + }, + "filtering_modal_source": { + "message": "Nguồn" + }, + "filtering_modal_status_text_desc": { + "message": "Trạng thái" + }, + "filtering_modal_status_text_error": { + "message": "Không thể tải xem trước. Vui lòng thử lại" + }, + "filtering_modal_status_text_loading": { + "message": "Đang tải..." + }, + "filtering_modal_third_party": { + "message": "Chỉ dành cho các yêu cầu của bên thứ ba" + }, + "filtering_modal_type": { + "message": "Loại" + }, + "filtering_modal_unblock": { + "message": "Bỏ chặn" + }, + "filtering_refresh_tab_short": { + "message": "Làm mới" + }, + "filtering_refresh_tab_short_mobile": { + "message": "Tải lại trang" + }, + "filtering_table_action": { + "message": "Hành động" + }, + "filtering_table_empty_reload_page_desc": { + "message": "Không tìm thấy gì. \u003Creset>Tắt bộ lọc\u003C/reset> hoặc \u003Crefresh>tải lại trang\u003C/refresh> để xem các bản ghi nhật trình" + }, + "filtering_table_filter": { + "message": "Bộ lọc" + }, + "filtering_table_open_details": { + "message": "Mở chi tiết" + }, + "filtering_table_rule": { + "message": "Quy tắc lọc" + }, + "filtering_table_source": { + "message": "Nguồn" + }, + "filtering_table_status": { + "message": "Trạng thái" + }, + "filtering_table_type": { + "message": "Loại" + }, + "filtering_type_all": { + "message": "Tất cả" + }, + "filtering_type_other": { + "message": "Khác" + }, + "filters_download_loading": { + "message": "Vui lòng đợi dữ liệu bộ lọc đang tải..." + }, + "filters_download_title": { + "message": "Dữ liệu bộ lọc đang tải..." + }, + "fullscreen_user_rules_title": { + "message": "Quy tắc người dùng" + }, + "group_description_adblocking": { + "message": "Cấu hình chặn quảng cáo tại đây để giải quyết các biểu ngữ phiền phức, cửa sổ bật lên, quảng cáo video và tương tự, một lần cho tất cả" + }, + "group_description_annoyances": { + "message": "Loại bỏ thông báo phiền phức như thông báo cookies trên màn hình" + }, + "group_description_custom": { + "message": "Tạo bộ lọc của riêng bạn để tinh chỉnh bộ lọc web theo sở thích của bạn." + }, + "group_description_lang": { + "message": "Không có giới hạn - bỏ qua quảng cáo trên tất cả trang cho dù với ngôn ngữ gì đi chăng nữa" + }, + "group_description_miscellaneous": { + "message": "Nhiều cài đặt nhiều hơn để cấu hình lướt web với AdGuard" + }, + "group_description_security": { + "message": "Bảo vệ bạn khỏi phần mềm độc hại, lừa đảo và các mối nguy trực tuyến khác" + }, + "group_description_social": { + "message": "Ẩn nút \"Thích\"/\"Chia sẻ\" và những ứng dụng nổi của mạng xã hội" + }, + "group_description_stealth": { + "message": "Bảo vệ danh tính và thông tin cá nhân nhạy cảm của bạn khỏi hàng ngàn trình theo dõi trực tuyến bằng cách chặn các phương pháp theo dõi phổ biến nhất" + }, + "name": { + "message": "AdGuard AdBlocker" + }, + "opera_search_permission_dont_show": { + "message": "Không hiển thị lại" + }, + "opera_search_permission_go_to_settings": { + "message": "Đi tới Cài đặt" + }, + "opera_search_permission_warning": { + "message": "Để chặn quảng cáo tìm kiếm, hãy cho phép truy cập vào kết quả trang tìm kiếm trong cài đặt của trình duyệt" + }, + "options_about": { + "message": "Giới thiệu" + }, + "options_about_libs": { + "message": "Thư viện đã sử dụng" + }, + "options_about_title": { + "message": "Tiện ích mở rộng AdGuard cho trình duyệt" + }, + "options_about_update_available": { + "message": "Phiên bản %version% hiện có. Nó sẽ được tải xuống và cài đặt tự động." + }, + "options_about_version": { + "message": "Phiên bản" + }, + "options_acknowledgment": { + "message": "Lời cảm ơn" + }, + "options_add_custom_filter": { + "message": "Thêm bộ lọc tuỳ chỉnh" + }, + "options_add_custom_filter_modal_add_button": { + "message": "Thêm" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "Đang kiểm tra bộ lọc của bạn..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL đã trả về một trang web thay vì một danh sách bộ lọc. Vui lòng cung cấp liên kết trực tiếp đến tệp bộ lọc." + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "Vui lòng thử lại hoặc liên hệ với bộ phận hỗ trợ" + }, + "options_add_custom_filter_modal_error_title": { + "message": "Không thể thêm bộ lọc tùy chỉnh" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "Tên bộ lọc:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "Được tin tưởng" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "Một số quy tắc lọc có thể thay đổi đáng kể trải nghiệm duyệt web của bạn và xâm phạm quyền riêng tư của bạn. Đảm bảo chỉ sử dụng các bộ lọc từ nhà phát triển mà bạn tin tưởng" + }, + "options_add_custom_filter_modal_title": { + "message": "Thêm bộ lọc tuỳ chỉnh" + }, + "options_all_limits_exceeded_warning": { + "message": "Bạn đã đạt đến giới hạn các quy tắc tích hợp đang hoạt động. Trình duyệt của bạn đã sửa đổi danh sách các bộ lọc tích hợp đang hoạt động. Số lượng bộ lọc được bật đã thay đổi từ %expected% thành %current%." + }, + "options_all_limits_exceeded_warning_browser": { + "message": "Bạn đã đạt đến giới hạn quy tắc tích hợp đang hoạt động của trình duyệt. Trình duyệt đã giảm danh sách bộ lọc tích hợp đang hoạt động từ %expected% xuống còn %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Trình duyệt của bạn đang hạn chế \u003Cexternal-link>một số loại quy tắc\u003C/external-link>. Để áp dụng tất cả các quy tắc, hãy bật tùy chọn \u003Cb>\"Cho phép skript của người dùng\u003C/b> \" trong \u003Csettings-link>cài đặt tiện ích mở rộng\u003C/settings-link> của trình duyệt" + }, + "options_allowlist": { + "message": "Danh sách cho phép" + }, + "options_allowlist_alert_invert": { + "message": "Danh sách cho phép bị đảo ngược. Quảng cáo chỉ bị chặn trên các trang web được thêm vào danh sách đó." + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>Dừng đảo ngược\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard không chặn quảng cáo và trình theo dõi trên\ncác trang trong danh sách" + }, + "options_allowlist_invalid_entries": { + "message": "Để cứu, chỉ giữ lại domain hoặc URL. Những mục này cần được sửa: %entries%" + }, + "options_allowlist_invert": { + "message": "Đảo ngược danh sách cho phép" + }, + "options_allowlist_invert_desc": { + "message": "Chỉ chặn quảng cáo và trình theo dõi trên các trang được cho phép" + }, + "options_allowlist_leave_subtitle": { + "message": "Những thay đổi của bạn đối với Danh sách cho phép sẽ bị mất" + }, + "options_allowlist_menu": { + "message": "Các hành động trong danh sách cho phép" + }, + "options_anonymized_usage_data_description": { + "message": "Gửi số liệu ẩn danh về việc sử dụng tiện ích mở rộng đến AdGuard. \u003Cbutton>Tìm hiểu thêm\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "Đã nhận được" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "Dữ liệu này bao gồm:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "Tên các nút bạn nhấp" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "Tên của các màn hình bạn tương tác" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "Định danh phiên bản" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "Dữ liệu này là ẩn danh và chỉ được sử dụng nội bộ. Chúng tôi không bao giờ chia sẻ nó với bên thứ ba" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "Chúng tôi cần thông tin này để phân tích và cải thiện chức năng của AdGuard" + }, + "options_anonymized_usage_data_modal_title": { + "message": "Dữ liệu sử dụng phần mở rộng" + }, + "options_anonymized_usage_data_title": { + "message": "Gửi dữ liệu sử dụng phần mở rộng đã được ẩn danh" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "Bộ lọc tuỳ chỉnh đã được thêm từ trước" + }, + "options_antibanner_custom_group": { + "message": "Tuỳ chọn" + }, + "options_antibanner_custom_group_description": { + "message": "Cho phép bạn thêm bộ lọc từ tệp hoặc URL" + }, + "options_antibanner_rules_count": { + "message": "Quy tắc: %rules_count%" + }, + "options_antibanner_updated": { + "message": "Đã cập nhật: %date%" + }, + "options_block_acceptable_ads": { + "message": "Chặn quảng cáo tìm kiếm và quảng bá trang web" + }, + "options_block_acceptable_ads_desc": { + "message": "Chặn quảng cáo trong kết quả tìm kiếm và tự quảng cáo trang web. \u003Ca>Tìm hiểu thêm\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "Để chặn cookies, hãy đặt thời gian tồn tại là 0" + }, + "options_block_known_trackers_description": { + "message": "Chặn trình theo dõi và phân tích trang web bằng bộ lọc Bảo vệ theo dõi AdGuard" + }, + "options_block_known_trackers_title": { + "message": "Chặn trình theo dõi" + }, + "options_check_update_progress": { + "message": "Đang kiểm tra..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "Xoá" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "Tất cả thống kê về việc sử dụng dữ liệu sẽ bị xóa vĩnh viễn" + }, + "options_clear_stats_confirm_modal_title": { + "message": "Xoá các thống kê?" + }, + "options_clipboard_permission_warning": { + "message": "Để sao chép và dán các quy tắc, hãy cho phép AdGuard truy cập vào clipboard. \u003Ca>Cho phép\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "Gửi thống kê ẩn danh về việc sử dụng bộ lọc quảng cáo đến AdGuard. \u003Ca>Tìm hiểu thêm\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "Giúp phát triển các bộ lọc của AdGuard" + }, + "options_coming_soon": { + "message": "Sắp ra mắt" + }, + "options_confirm_modal_cancel_button": { + "message": "Huỷ" + }, + "options_copyright": { + "message": "Tất cả các quyền đã được đăng ký trước" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Để sử dụng bộ lọc tùy chỉnh, hãy bật \u003Cb>Cho phép tập lệnh người dùng\u003C/b> \u003Csettings-link>trong cài đặt tiện ích mở rộng\u003C/settings-link> của trình duyệt" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Để sử dụng bộ lọc tùy chỉnh, hãy bật \u003Cb>Chế độ nhà phát triển\u003C/b> trong \u003Csettings-link>cài đặt tiện ích mở rộng\u003C/settings-link> của trình duyệt" + }, + "options_desktop_app_promo_button_linux": { + "message": "Nhận AdGuard cho Linux" + }, + "options_desktop_app_promo_button_mac": { + "message": "Nhận AdGuard cho Mac" + }, + "options_desktop_app_promo_button_windows": { + "message": "Nhận AdGuard cho Windows" + }, + "options_desktop_app_promo_description": { + "message": "Các ứng dụng như Spotify, Discord hoặc Zoom vẫn có thể hiển thị quảng cáo và\ntheo dõi\nhoạt động của bạn" + }, + "options_desktop_app_promo_subdescription": { + "message": "Ứng dụng desktop của chúng tôi có thể bảo vệ bạn khỏi\nchúng" + }, + "options_desktop_app_promo_title": { + "message": "Phần mở rộng chỉ bảo vệ\ntrình duyệt" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "Trình duyệt của bạn đang hạn chế \u003Cexternal-link>một số loại quy tắc\u003C/external-link>. Để áp dụng tất cả các quy tắc, hãy bật \u003Cb>Chế độ nhà phát triển\u003C/b> trong \u003Csettings-link>cài đặt tiện ích mở rộng\u003C/settings-link> của trình duyệt" + }, + "options_disable_webrtc_desc": { + "message": "Chặn WebRTC có thể làm rò rỉ Địa chỉ IP thật của bạn ngay cả khi bạn sử dụng proxy hoặc VPN. Một số ứng dụng nhắn tin, nền tảng phát trực tuyến hoặc trò chơi có thể ngừng hoạt động đúng cách" + }, + "options_disable_webrtc_title": { + "message": "Chặn WebRTC" + }, + "options_discuss": { + "message": "Thảo luận AdGuard" + }, + "options_do_you_like_question": { + "message": "Bạn có thích AdGuard?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "Thoát chế độ cửa sổ" + }, + "options_editor_indicator_saved": { + "message": "Đã lưu" + }, + "options_editor_indicator_saving": { + "message": "Đang lưu..." + }, + "options_editor_leave_cancel": { + "message": "Quay lại chỉnh sửa" + }, + "options_editor_leave_confirm": { + "message": "Có, thoát ra" + }, + "options_editor_leave_title": { + "message": "Thoát mà không lưu lại?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "Mở Trình chỉnh sửa trong một cửa sổ mới" + }, + "options_editor_save": { + "message": "Lưu" + }, + "options_editor_save_error": { + "message": "Không thể lưu các thay đổi. Hãy thử lại hoặc liên hệ với bộ phận hỗ trợ" + }, + "options_empty_custom_filter": { + "message": "Hiện tại bạn không có bất kỳ bộ lọc tuỳ chỉnh nào" + }, + "options_enable_autodetect_filter": { + "message": "Tự động kích hoạt những bộ lọc phù hợp nhất" + }, + "options_enable_autodetect_filter_desc": { + "message": "Phát hiện ngôn ngữ của trang web và kích hoạt các bộ lọc thích hợp" + }, + "options_export_settings": { + "message": "Xuất cài đặt" + }, + "options_filters": { + "message": "Bộ Lọc" + }, + "options_filters_annoyances_consent_description": { + "message": "Bạn đang sắp bật một hoặc nhiều bộ lọc làm phiền. Chúng sẽ chặn các yếu tố không liên quan đến nội dung trang hoặc có liên quan nhưng gây phiền toái cho trải nghiệm người dùng của bạn. Chủ sở hữu trang có thể xem các yếu tố này là bắt buộc: nếu bạn chặn chúng, bạn có thể vi phạm các điều khoản của họ; một số chức năng của các trang có thể không khả dụng hoặc không hoạt động đúng cách. Bạn hiểu và đồng ý rằng bạn hoàn toàn chịu trách nhiệm tuân thủ các điều khoản sử dụng của các trang bạn truy cập và AdGuard không chịu trách nhiệm về việc bạn tuân thủ các điều khoản sử dụng của các trang bạn truy cập bằng sản phẩm của chúng tôi." + }, + "options_filters_annoyances_consent_enable_button": { + "message": "Bật" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "Trang chủ" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "Để biết chi tiết về những gì bộ lọc làm phiền của AdGuard chặn, xem \u003Ca>Chính sách bộ lọc\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "Bật các bộ lọc này?" + }, + "options_filters_annoyances_consent_title": { + "message": "Vui lòng đọc kĩ trước khi kích hoạt các bộ lọc chống làm phiền" + }, + "options_filters_back_button": { + "message": "Quay lại" + }, + "options_filters_empty_title": { + "message": "Không tìm thấy" + }, + "options_filters_enabled": { + "message": "Đã kích hoạt:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% và %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% và %more% danh sách khác" + }, + "options_filters_enabled_per_group": { + "message": "Đã bật: %current% trong số %total%" + }, + "options_filters_filter_link": { + "message": "Về trang chủ" + }, + "options_filters_filter_tags": { + "message": "Thẻ lọc" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "Bạn đã chọn tin tưởng bộ lọc này." + }, + "options_filters_filter_updated": { + "message": "đã cập nhật:" + }, + "options_filters_filter_version": { + "message": "phiên bản:" + }, + "options_filters_info_mv3_total_rules": { + "message": "Tổng số quy tắc: %num%" + }, + "options_filters_last_checked": { + "message": "Lần kiểm tra cuối cùng: %date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "Tất cả bộ lọc" + }, + "options_filters_list_search_display_option_disabled": { + "message": "Đã vô hiệu" + }, + "options_filters_list_search_display_option_enabled": { + "message": "Đã kích hoạt" + }, + "options_filters_no_enabled": { + "message": "Không có bộ lọc được kích hoạt" + }, + "options_filters_of_group": { + "message": "Bộ lọc của nhóm \"%groupName%\"" + }, + "options_filters_search": { + "message": "Tìm kiếm" + }, + "options_filters_search_filter": { + "message": "Tìm bộ lọc" + }, + "options_first_party_block_cookies_warning": { + "message": "Nếu bạn chặn hoàn toàn các cookies này, một số trang có thể bị hỏng hoặc ngừng hoạt động" + }, + "options_first_party_desc": { + "message": "Ngăn chặn các trang web ghi nhớ chi tiết của bạn, như thông tin đăng nhập và ngôn ngữ ưa thích, bằng cách giới hạn thời gian tồn tại của cookie bên thứ nhất" + }, + "options_first_party_title": { + "message": "Xóa cookie của bên thứ nhất (không khuyến khích)" + }, + "options_general_settings": { + "message": "Cài đặt Tổng quát" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "Chặn bên thứ ba từ trang bạn đang ghé" + }, + "options_hide_referrer_title": { + "message": "Ẩn người giới thiệu khỏi bên thứ ba" + }, + "options_hide_search_queries_desc": { + "message": "Ẩn tìm kiếm của bạn khỏi các trang được truy cập thông qua kết quả công cụ tìm kiếm" + }, + "options_hide_search_queries_title": { + "message": "Ẩn truy vấn tìm kiếm" + }, + "options_import_configuration_applying_subtitle": { + "message": "Thay thế các thiết lập hiện tại của bạn bằng các thiết lập đã nhập. Lọc bị vô hiệu hóa trong quá trình nhập" + }, + "options_import_configuration_applying_title": { + "message": "Đang nhập..." + }, + "options_import_configuration_confirm_button": { + "message": "Nhập" + }, + "options_import_configuration_confirm_subtitle": { + "message": "Cài đặt đã nhập sẽ thay thế cài đặt hiện tại của bạn. Các cài đặt khác sẽ không bị ảnh hưởng" + }, + "options_import_configuration_confirm_title": { + "message": "Nhập cài đặt" + }, + "options_import_configuration_error_button": { + "message": "Đóng" + }, + "options_import_configuration_error_subtitle": { + "message": "Vui lòng kiểm tra liên kết nhập và thử lại. Nếu nó không hữu ích, hãy liên hệ với bộ phận hỗ trợ" + }, + "options_import_configuration_error_title": { + "message": "Không thể nhập cài đặt" + }, + "options_import_configuration_success_button": { + "message": "Đóng" + }, + "options_import_configuration_success_subtitle": { + "message": "Cài đặt đã được nhập thành công" + }, + "options_import_configuration_success_title": { + "message": "Đã xong" + }, + "options_import_settings": { + "message": "Nhập cài đặt" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "Đảo ngược" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "Quảng cáo và trình theo dõi sẽ chỉ bị chặn trên các trang từ danh sách cho phép" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "Đảo ngược danh sách cho phép?" + }, + "options_leave_feedback": { + "message": "Để lại phản hồi" + }, + "options_lifetime_minutes": { + "message": "Thời gian tồn tại, tính bằng phút" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "Bạn đã đạt đến giới hạn quy tắc regex do người dùng thêm. %maximum% trong số %current% quy tắc regex đã được bật." + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "Bạn đã đạt đến giới hạn quy tắc regex do người dùng thêm vào. %maximum% trong số %current% quy tắc đang được bật. Để thêm quy tắc regex mới, hãy loại bỏ một số quy tắc hiện có" + }, + "options_limits_warning_dynamic_rules": { + "message": "Bạn đã đạt đến giới hạn quy tắc do người dùng thêm. %maximum% trong số %current% quy tắc đã được bật." + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "Bạn đã đạt đến giới hạn quy tắc do người dùng thêm vào. %maximum% trong số %current% quy tắc đang được bật. Để thêm quy tắc mới, hãy loại bỏ một số quy tắc hiện có" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "Bạn đã đạt đến giới hạn quy tắc do người dùng thêm không an toàn. %maximum% trong số %current% quy tắc không an toàn đã được bật." + }, + "options_limits_warning_static_filters": { + "message": "Bạn đã đạt đến giới hạn bộ lọc tích hợp đang hoạt động. %maximum% trong số %current% bộ lọc được bật. Để kích hoạt các quy tắc mới, hãy tắt một số bộ lọc tích hợp." + }, + "options_limits_warning_static_filters_browser": { + "message": "Bạn đã đạt đến giới hạn bộ lọc tích hợp đang hoạt động của trình duyệt. %maximum% trong số %current% bộ lọc được bật. Để kích hoạt bộ lọc mới, hãy vô hiệu hóa một số bộ lọc tích hợp." + }, + "options_limits_warning_static_regex_rules": { + "message": "Bạn đã đạt đến giới hạn các quy tắc regex tích hợp đang hoạt động. %maximum% trong số %current% các quy tắc regex được bật. Để kích hoạt các quy tắc mới, hãy tắt một số bộ lọc tích hợp." + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "Bạn đã đạt đến giới hạn quy tắc regex tích hợp đang hoạt động. Để kích hoạt quy tắc mới, hãy vô hiệu hóa một số bộ lọc tích hợp." + }, + "options_limits_warning_static_rules": { + "message": "Bạn đã đạt đến giới hạn các quy tắc tích hợp đang hoạt động. %maximum% trong số %current% quy tắc được bật. Để kích hoạt các quy tắc mới, hãy tắt một số bộ lọc tích hợp." + }, + "options_limits_warning_static_rules_browser": { + "message": "Bạn đã đạt đến giới hạn quy tắc tích hợp đang hoạt động của trình duyệt. Để kích hoạt quy tắc mới, hãy vô hiệu hóa một số bộ lọc tích hợp." + }, + "options_loader_applying_changes": { + "message": "Đang áp dụng thay đổi..." + }, + "options_miscellaneous_settings": { + "message": "Cài đặt thêm" + }, + "options_modified_first_party_cookie": { + "message": "Đã sửa đổi cookie của bên thứ nhất" + }, + "options_modified_third_party_cookie": { + "message": "Đã sửa đổi cookie của bên thứ ba" + }, + "options_nav_better_than_extension": { + "message": "Vì sao chương trình AdGuard chính thức tốt hơn tiện ích mở rộng?" + }, + "options_nav_compare": { + "message": "Phân biệt hai chương trình" + }, + "options_navigation": { + "message": "Điều hướng" + }, + "options_open_changelog": { + "message": "Nhật ký thay đổi" + }, + "options_open_log": { + "message": "Mở nhật ký lọc" + }, + "options_popup_call_to_action": { + "message": "Nhập URL hợp lệ hoặc đường dẫn đến tệp chứa bộ lọc lên trên này." + }, + "options_popup_check_false_description": { + "message": "Lỗi khi thêm bộ lọc tuỳ chỉnh." + }, + "options_popup_check_false_title": { + "message": "Lỗi" + }, + "options_popup_checking_filter": { + "message": "Đang kiểm tra bộ lọc của bạn" + }, + "options_popup_description": { + "message": "Bạn sẽ được đăng ký cho bộ lọc đó." + }, + "options_popup_filter_description": { + "message": "Mô tả:" + }, + "options_popup_filter_homepage": { + "message": "Trang chủ:" + }, + "options_popup_filter_rules_count": { + "message": "Số lượng quy tắc:" + }, + "options_popup_filter_title": { + "message": "Tiêu đề:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "Phiên bản:" + }, + "options_popup_import_error_file_description": { + "message": "Đã xảy ra lỗi" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "Để nhập tệp cài đặt này, hãy cho phép AdGuard thay đổi cài đặt liên quan đến quyền riêng tư của bạn." + }, + "options_popup_import_error_title": { + "message": "Không thể nhập cài đặt" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "Phần mở rộng tệp phải là %extension%" + }, + "options_popup_import_success_title": { + "message": "Đã nhập cài đặt" + }, + "options_popup_next_button": { + "message": "Tiếp theo" + }, + "options_popup_subscribe_button": { + "message": "Đăng kí" + }, + "options_popup_title_placeholder": { + "message": "Nhập tên cho bộ lọc" + }, + "options_popup_trusted_filter_description": { + "message": "Các bộ lọc tin cậy có thể sẽ dùng các quy tắc lọc rất mạnh điều này sẽ gây nguy hiểm cho người dùng nếu chọn sai. Đừng chọn điều này trừ khi bạn hoàn toàn tin tưởng vào nó." + }, + "options_popup_trusted_filter_title": { + "message": "Được tin tưởng" + }, + "options_popup_try_again_button": { + "message": "Hãy thử lại" + }, + "options_popup_update_error": { + "message": "Không thể tải cập nhật, Hãy thử lại sau." + }, + "options_popup_update_filter": { + "message": "đã được cập nhật" + }, + "options_popup_update_filters": { + "message": "đã được cập nhật" + }, + "options_popup_update_not_found": { + "message": "Các bộ lọc của bạn đã được cập nhật" + }, + "options_popup_update_title_error": { + "message": "Lỗi khi đang cập nhật bộ lọc" + }, + "options_popup_updating_filters": { + "message": "Đang cập nhật bộ lọc..." + }, + "options_popup_url_placeholder": { + "message": "Nhập URL hoặc đường dẫn" + }, + "options_popup_url_title": { + "message": "Thêm Bộ Lọc Mới" + }, + "options_popup_version_update_changelog_text": { + "message": "Phiên bản này có gì mới?" + }, + "options_popup_version_update_description_major": { + "message": "Đây là một bản nâng cấp tiện ích mở rộng lớn mang lại nhiều tính năng và cải tiến mới." + }, + "options_popup_version_update_description_minor": { + "message": "Phiên bản này chủ yếu bao gồm sửa lỗi và các cải tiến nhỏ." + }, + "options_popup_version_update_disable_notification": { + "message": "Tắt thông báo" + }, + "options_popup_version_update_offer": { + "message": "Bạn có biết rằng các khả năng của AdGuard không bị giới hạn trong trình duyệt này không?" + }, + "options_popup_version_update_offer_button_text": { + "message": "TÌM HIỂU THÊM" + }, + "options_popup_version_update_title_text": { + "message": "Tiện ích mở rộng AdGuard đã được cập nhật lên phiên bản %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "Khiến WebRTC sử dụng chính sách Địa chỉ IP nghiêm ngặt hơn để giúp ẩn Địa chỉ IP thực của bạn khi bạn sử dụng proxy hoặc VPN" + }, + "options_prevent_webrtc_leaks_title": { + "message": "Ngăn rò rỉ Địa chỉ IP qua WebRTC" + }, + "options_privacy": { + "message": "Bảo vệ chống theo dõi" + }, + "options_privacy_desc": { + "message": "Bảo vệ hoạt động trực tuyến và dữ liệu cá nhân của bạn khỏi trình theo dõi web" + }, + "options_privacy_policy": { + "message": "Chính sách bảo mật" + }, + "options_privacy_title": { + "message": "Bảo vệ chống theo dõi" + }, + "options_rate_us_cta": { + "message": "Đánh giá ngay" + }, + "options_remove_client_data_desc": { + "message": "Ngăn chặn Google Chrome gửi đi phiên bản của nó và sửa đổi thông tin đến các miền của Google" + }, + "options_remove_client_data_title": { + "message": "Xóa tiêu đề về dữ liệu của khách hàng" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "Xoá" + }, + "options_remove_filter_confirm_modal_title": { + "message": "Xoá bộ lọc này?" + }, + "options_report_bug": { + "message": "Báo cáo lỗi" + }, + "options_reset_settings": { + "message": "Đặt lại cài đặt" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "Đặt lại" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "Tất cả cài đặt sẽ được thiết lập lại về giá trị mặc định" + }, + "options_reset_settings_confirm_modal_title": { + "message": "Đặt lại cài đặt?" + }, + "options_reset_settings_done": { + "message": "Cài đặt đã được đặt lại" + }, + "options_reset_settings_error": { + "message": "Lỗi trong khi đặt lại cài đặt" + }, + "options_reset_stats": { + "message": "Xoá dữ liệu thống kê" + }, + "options_reset_stats_done": { + "message": "Thống kê đã được đặt lại" + }, + "options_rule_limits": { + "message": "Giới hạn quy tắc" + }, + "options_rule_limits_description": { + "message": "Chrome giới hạn số lượng quy tắc có thể áp dụng" + }, + "options_rule_limits_dynamic": { + "message": "Quy tắc động" + }, + "options_rule_limits_dynamic_regex": { + "message": "Quy tắc Regex — bao gồm trong các quy tắc do người dùng thêm vào" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "Quy tắc động không an toàn (được sử dụng cho một số bộ sửa đổi nâng cao, chẳng hạn như $$redirect hoặc $$cookie) — bao gồm trong quy tắc do người dùng thêm vào" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "Các quy tắc do người dùng thêm, chẳng hạn như \u003Cuser_rules>quy tắc của người dùng\u003C/user_rules>, \u003Callowlist>các trang được cho phép\u003C/allowlist> và \u003Ccustom_filters>bộ lọc tùy chỉnh\u003C/custom_filters>" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "Quy tắc do người dùng thêm, chẳng hạn như \u003Cuser_rules>quy tắc của người dùng\u003C/user_rules> và \u003Callowlist>danh sách các trang web được phép\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% trong số %maximum%" + }, + "options_rule_limits_static_rules": { + "message": "Quy tắc tĩnh" + }, + "options_rule_limits_static_rules_all": { + "message": "Quy tắc từ \u003Ca>bộ lọc tích hợp\u003C/a>" + }, + "options_rule_limits_static_rules_regex": { + "message": "Quy tắc Regex — bao gồm trong phần trên" + }, + "options_rule_limits_static_rulesets": { + "message": "Bộ quy tắc tĩnh" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>Bộ lọc tích hợp\u003C/a>, chẳng hạn như Chặn sự khó chịu hoặc Bộ lọc theo ngôn ngữ cụ thể" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "Tùy chọn 3. Nếu bạn hài lòng với các bộ lọc mặc định hiện đang được bật, \u003Ca>hãy đóng cảnh báo này.\u003C/a>" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "Tùy chọn 3. Nếu bạn hài lòng với bộ lọc mặc định hiện đang được bật, \u003Ca>hãy đóng cảnh báo này.\u003C/a>" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "Tùy chọn 1. Xóa các tiện ích mở rộng chặn quảng cáo không cần thiết khỏi trình duyệt của bạn. Để kích hoạt lại các bộ lọc được đề cập trong phần \"Bộ lọc được bật trước khi cập nhật\", hãy nhấp vào \u003Ca>kích hoạt lại bộ lọc.\u003C/a>" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "Tùy chọn 2. Cài đặt ứng dụng AdGuard Ad Blocker: ứng dụng này không có giới hạn về quy tắc lọc. \u003Ca>Tải ứng dụng AdGuard\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "Các hành động có thể của bạn" + }, + "options_rule_limits_warning_explanation_description": { + "message": "Giới hạn của các quy tắc tích hợp đang hoạt động đã bị vượt quá sau khi cập nhật hoặc thêm tiện ích mở rộng mới. Theo Manifest V3, trình duyệt Chrome của bạn đã phản ứng bằng cách tắt tất cả các bộ lọc tích hợp của tiện ích mở rộng ngoại trừ các bộ lọc mặc định." + }, + "options_rule_limits_warning_explanation_title": { + "message": "Điều gì đã xảy ra?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "Bộ lọc được bật trước khi cập nhật" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "Bộ lọc được bật ngay bây giờ" + }, + "options_rule_limits_warning_title": { + "message": "Trình duyệt đã sửa đổi danh sách các bộ lọc đang hoạt động" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "Loại bỏ các giới hạn quy tắc và nhận bảo vệ mở rộng hoạt động trên tất cả các trình duyệt" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "Cài đặt ứng dụng máy tính" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "Chuyển đến bộ lọc" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "Quản lý tiện ích mở rộng" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "Các tiện ích mở rộng trình duyệt dùng chung cùng một giới hạn quy tắc. Việc gỡ bỏ các trình chặn quảng cáo khác có thể giải phóng thêm quy tắc cho Tiện ích mở rộng Trình duyệt AdGuard" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "Gỡ bỏ các trình chặn quảng cáo khác" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "Bật các bộ lọc bạn cần. Các bộ lọc theo ngôn ngữ và quyền riêng tư có thể sử dụng nhiều quy tắc" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "Xem lại các bộ lọc có sẵn" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "Đây là những gì bạn có thể làm" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "Đã đạt giới hạn — một số bộ lọc đã bị vô hiệu hóa" + }, + "options_rule_syntax": { + "message": "Cú pháp quy tắc" + }, + "options_safebrowsing_enabled": { + "message": "Bảo vệ chống lừa đảo và phần mềm độc hại" + }, + "options_safebrowsing_enabled_desc": { + "message": "Cảnh báo về các trang web độc hại và lừa đảo sử dụng cấu phần Bảo mật duyệt web của AdGuard. \u003Ca>Đọc thêm\u003C/a>" + }, + "options_select_theme": { + "message": "Chủ đề" + }, + "options_select_update_period_12h": { + "message": "12 tiếng" + }, + "options_select_update_period_1h": { + "message": "1 tiếng" + }, + "options_select_update_period_24h": { + "message": "24 tiếng" + }, + "options_select_update_period_48h": { + "message": "48 tiếng" + }, + "options_select_update_period_6h": { + "message": "6 tiếng" + }, + "options_select_update_period_default": { + "message": "Mặc định" + }, + "options_select_update_period_disabled": { + "message": "Đã vô hiệu" + }, + "options_send_not_track_desc": { + "message": "Gửi \u003Cgpc>Global Privacy Control\u003C/gpc> và \u003Cdnt>Do Not Track\u003C/dnt> tới các trang bạn truy cập" + }, + "options_send_not_track_title": { + "message": "Yêu cầu các trang web không theo dõi tôi" + }, + "options_set_update_interval": { + "message": "Tự động cập nhật bộ lọc" + }, + "options_set_update_interval_desc": { + "message": "Giữ cho các bộ lọc được cập nhật để chặn quảng cáo hiệu quả hơn" + }, + "options_settings": { + "message": "Cài đặt AdGuard" + }, + "options_share_settings": { + "message": "Chia sẻ cài đặt" + }, + "options_show_adguard_full_version_title": { + "message": "Hiện thông tin trên phiên bản AdGuard đầy đủ" + }, + "options_show_app_updated_notification": { + "message": "Thông báo về các bản cập nhật tiện ích mở rộng" + }, + "options_show_blocked_ads_count_title": { + "message": "Hiển thị số quảng cáo đã bị chặn trên biểu tượng tiện ích mở rộng AdGuard" + }, + "options_show_context_menu_title": { + "message": "Thêm AdGuard vào danh mục tác vụ của trình duyệt" + }, + "options_site": { + "message": "Trang chủ chính thức" + }, + "options_skip_to_main_content": { + "message": "Chuyển đến nội dung chính" + }, + "options_stealth_general_title": { + "message": "Chung" + }, + "options_stealth_miscellaneous_title": { + "message": "Khác" + }, + "options_stealth_tracking_methods_title": { + "message": "Cách theo dõi" + }, + "options_strip_tracking_params_description": { + "message": "Xóa tham số theo dõi khỏi URL trang bằng bộ lọc Theo dõi URL của AdGuard" + }, + "options_strip_tracking_params_title": { + "message": "Xóa tham số theo dõi khỏi URL" + }, + "options_stripped_tracking_parameters": { + "message": "Các thông số theo dõi đã bị xoá" + }, + "options_theme_selector_dark": { + "message": "Tối" + }, + "options_theme_selector_light": { + "message": "Sáng" + }, + "options_theme_selector_system": { + "message": "Mặc định hệ thống" + }, + "options_third_party_block_cookies_warning": { + "message": "Nếu bạn chặn các cookies này, bạn có thể phải đăng nhập lại vào một số trang hoặc gặp phải các vấn đề khác liên quan đến cookies" + }, + "options_third_party_desc": { + "message": "Ngăn nhà quảng cáo theo dõi hành vi của bạn trên nhiều trang bằng cách giới hạn thời gian tồn tại của cookie của bên thứ ba" + }, + "options_third_party_title": { + "message": "Xóa cookie của bên thứ ba" + }, + "options_update_antibanner_filters": { + "message": "Kiểm tra cập nhật bộ lọc" + }, + "options_use_optimized_filters": { + "message": "Sử dụng tối ưu hoá cho bộ lọc" + }, + "options_use_optimized_filters_desc": { + "message": "Sử dụng các phiên bản bộ lọc ngắn hơn chỉ với các quy tắc phổ biến nhất để tiết kiệm lưu lượng truy cập. Phù hợp hơn với trình duyệt di động" + }, + "options_user_rules_clear_search": { + "message": "Xóa tìm kiếm" + }, + "options_user_rules_create_rule": { + "message": "Tạo quy tắc" + }, + "options_user_rules_delete_all": { + "message": "Xóa tất cả" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "Tất cả các quy tắc người dùng sẽ bị xóa vĩnh viễn" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "Xóa tất cả?" + }, + "options_user_rules_delete_all_success": { + "message": "Tất cả quy tắc của người dùng đã bị xóa" + }, + "options_user_rules_delete_rule": { + "message": "Xóa quy tắc" + }, + "options_user_rules_deleted_notification": { + "message": "Quy tắc người dùng đã bị xóa:" + }, + "options_user_rules_description_key": { + "message": "Quy tắc của bạn để chặn và bỏ chặn quảng cáo hoặc toàn bộ trang web" + }, + "options_user_rules_edit_rule": { + "message": "Chỉnh sửa quy tắc" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "Đi đến trình chỉnh sửa" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "Quy tắc của bạn sẽ xuất hiện ở đây sau khi bạn đóng nó" + }, + "options_user_rules_editor_stub_title": { + "message": "Trình biên tập đã mở trong cửa sổ khác" + }, + "options_user_rules_empty_placeholder": { + "message": "Chưa có quy tắc nào" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "Đang tô sáng quy tắc…" + }, + "options_user_rules_import_error": { + "message": "Không thể nhập quy tắc người dùng. Vui lòng thử lại." + }, + "options_user_rules_import_success": { + "message": "Quy tắc của người dùng đã được nhập thành công" + }, + "options_user_rules_menu": { + "message": "Hành động theo quy tắc của người dùng" + }, + "options_user_rules_no_match": { + "message": "Không tìm thấy" + }, + "options_user_rules_search_placeholder": { + "message": "Tìm kiếm" + }, + "options_user_rules_switch_to_editor": { + "message": "Chuyển sang chế độ trình soạn thảo" + }, + "options_user_rules_switch_to_list": { + "message": "Chuyển sang chế độ xem danh sách" + }, + "options_user_rules_undo": { + "message": "Hoàn tác" + }, + "options_userfilter": { + "message": "Bộ lọc của người dùng" + }, + "options_userfilter_description_key": { + "message": "Bạn có thể thêm quy tắc tại đây. Tính năng này chỉ được khuyến khích cho người dùng nâng cao có hiểu biết về HTML/CSS. Đọc \u003Ca>giới thiệu về bộ lọc\u003C/a> để biết cách viết quy tắc lọc quảng cáo." + }, + "options_userfilter_export": { + "message": "Xuất" + }, + "options_userfilter_import": { + "message": "Nhập" + }, + "options_userfilter_leave_subtitle": { + "message": "Những thay đổi của bạn đối với các quy tắc sẽ bị mất" + }, + "options_userfilter_line_break": { + "message": "Ngắt dòng" + }, + "options_userfilter_line_break_off": { + "message": "Ngắt dòng: Đã tắt" + }, + "options_userfilter_line_break_on": { + "message": "Ngắt dòng: Đã bật" + }, + "options_userfilter_subtitle_key": { + "message": "Cho phép bạn thêm các quy tắc lọc của riêng mình" + }, + "popup_abuse_site": { + "message": "Báo lỗi" + }, + "popup_adguard_footer_title": { + "message": "Bảo vệ thiết bị di động của bạn" + }, + "popup_adguard_for_android": { + "message": "AdGuard dành cho Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard dành cho IOS" + }, + "popup_block_site_ads_option": { + "message": "Chặn quảng cáo thủ công" + }, + "popup_get_system_wide_protection": { + "message": "Nhận bảo vệ toàn hệ thống" + }, + "popup_header_cta_link": { + "message": "Làm thế nào để tăng cường bảo vệ" + }, + "popup_header_update_filters": { + "message": "Kiểm tra cập nhật bộ lọc" + }, + "popup_limits_exceeded_warning": { + "message": "Trình duyệt của bạn đã sửa đổi danh sách các bộ lọc tích hợp đang hoạt động" + }, + "popup_open_filtering_log": { + "message": "Mở nhật ký lọc" + }, + "popup_open_settings": { + "message": "Mở cài đặt AdGuard" + }, + "popup_protection_button": { + "message": "Bảo vệ AdGuard" + }, + "popup_reset_page_user_rules": { + "message": "Xóa quy tắc người dùng cho trang web này" + }, + "popup_resume_protection_button": { + "message": "Tiếp tục" + }, + "popup_security_report": { + "message": "Kiểm tra bảo mật website" + }, + "popup_site_exception_information": { + "message": "Tính năng lọc bị vô hiệu vì nó có thể gây xung đột với trang web này." + }, + "popup_site_filtering_state_disabled": { + "message": "Bảo vệ bị vô hiệu" + }, + "popup_site_filtering_state_disabling": { + "message": "Đang tắt chế độ bảo vệ..." + }, + "popup_site_filtering_state_enabled": { + "message": "Bảo vệ được kích hoạt" + }, + "popup_site_filtering_state_enabling": { + "message": "Đang bật tính năng bảo vệ..." + }, + "popup_site_filtering_state_loading": { + "message": "Đang tải..." + }, + "popup_site_filtering_state_paused": { + "message": "Bảo vệ bị tạm dừng" + }, + "popup_site_filtering_state_pausing": { + "message": "Đang tạm dừng bảo vệ..." + }, + "popup_site_filtering_state_resuming": { + "message": "Đang tiếp tục bảo vệ..." + }, + "popup_site_filtering_state_secure_page": { + "message": "Trang bảo mật" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "cho tất cả các trang web" + }, + "popup_statistics_all_categories": { + "message": "All" + }, + "popup_statistics_category_advertising": { + "message": "Quảng cáo" + }, + "popup_statistics_category_cdn": { + "message": "CDN" + }, + "popup_statistics_category_label": { + "message": "Danh mục thống kê" + }, + "popup_statistics_category_other": { + "message": "Khác" + }, + "popup_statistics_category_social_media": { + "message": "Truyền thông" + }, + "popup_statistics_category_trackers": { + "message": "Trình theo dõi" + }, + "popup_statistics_months_apr": { + "message": "Tháng 4" + }, + "popup_statistics_months_aug": { + "message": "Tháng 8" + }, + "popup_statistics_months_dec": { + "message": "Tháng 12" + }, + "popup_statistics_months_feb": { + "message": "Tháng 2" + }, + "popup_statistics_months_jan": { + "message": "Tháng 1" + }, + "popup_statistics_months_jul": { + "message": "Tháng 7" + }, + "popup_statistics_months_jun": { + "message": "Tháng 6" + }, + "popup_statistics_months_mar": { + "message": "Tháng 3" + }, + "popup_statistics_months_may": { + "message": "Tháng 5" + }, + "popup_statistics_months_nov": { + "message": "Tháng 11" + }, + "popup_statistics_months_oct": { + "message": "Tháng 10" + }, + "popup_statistics_months_sep": { + "message": "Tháng 9" + }, + "popup_statistics_time_day": { + "message": "24 tiếng" + }, + "popup_statistics_time_label": { + "message": "Thống kê khoảng thời gian" + }, + "popup_statistics_time_month": { + "message": "30 ngày" + }, + "popup_statistics_time_week": { + "message": "7 ngày" + }, + "popup_statistics_time_year": { + "message": "1 năm" + }, + "popup_statistics_total": { + "message": "Tổng cộng" + }, + "popup_statistics_week_days_fri": { + "message": "Thứ 6" + }, + "popup_statistics_week_days_mon": { + "message": "Thứ 2" + }, + "popup_statistics_week_days_sat": { + "message": "Thứ 7" + }, + "popup_statistics_week_days_sun": { + "message": "Chủ nhật" + }, + "popup_statistics_week_days_thu": { + "message": "Thứ 5" + }, + "popup_statistics_week_days_tue": { + "message": "Thứ 3" + }, + "popup_statistics_week_days_wed": { + "message": "Thứ 4" + }, + "popup_switch_button": { + "message": "Sự bảo vệ cho trang web hiện tại" + }, + "popup_tab_actions": { + "message": "Thao tác" + }, + "popup_tab_blocked_all_count": { + "message": "Đã chặn tổng cộng: %num%" + }, + "popup_tab_blocked_count": { + "message": "Đã chặn: %num%" + }, + "popup_tab_current_website": { + "message": "Trang web hiện tại" + }, + "popup_tab_statistics": { + "message": "Thống kê" + }, + "popup_tabs": { + "message": "Thẻ" + }, + "popup_tooltip_loading": { + "message": "Đang tải..." + }, + "popup_tooltip_protection_disabled": { + "message": "Bảo vệ bị vô hiệu" + }, + "popup_tooltip_protection_enabled": { + "message": "Bảo vệ đang được kích hoạt" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "Một số quy tắc không được áp dụng" + }, + "popup_tooltip_update_available": { + "message": "Có cập nhật mới" + }, + "post_install_loading": { + "message": "Đang tải tiện ích mở rộng..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "Đã vượt quá giới hạn quy tắc trong Tiện ích mở rộng trình duyệt AdGuard. Vui lòng kiểm tra bộ lọc của bạn và tắt những bộ lọc bạn không cần" + }, + "text_collapser_hide_default": { + "message": "Ẩn toàn bộ ký tự" + }, + "text_collapser_show_default": { + "message": "Hiện toàn bộ ký tự" + }, + "update_available_desc": { + "message": "Để chặn quảng cáo hiệu quả, hãy cập nhật tiện ích mở rộng và bộ lọc của bạn" + }, + "update_available_title": { + "message": "Có cập nhật mới" + }, + "update_available_update_btn": { + "message": "Cập nhật" + }, + "update_check": { + "message": "Kiểm tra cập nhật" + }, + "update_checking_in_progress": { + "message": "Đang kiểm tra cập nhật..." + }, + "update_failed_text": { + "message": "Không thể hoàn tất cập nhật" + }, + "update_failed_try_again_btn": { + "message": "Hãy thử lại" + }, + "update_installing_in_progress_desc": { + "message": "Tiện ích mở rộng sẽ khởi động lại sau khi cập nhật" + }, + "update_installing_in_progress_title": { + "message": "Đang cập nhật tiện ích mở rộng và bộ lọc..." + }, + "update_not_needed": { + "message": "Phần mở rộng và bộ lọc của bạn đã cập nhật" + }, + "update_success_text": { + "message": "Phần mở rộng và bộ lọc đã được cập nhật" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_CN/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_CN/messages.json new file mode 100644 index 0000000..62d980c --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_CN/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% 已被自动激活。" + }, + "alert_popup_filter_enabled_title": { + "message": "自动激活过滤器" + }, + "background_tab_title": { + "message": "后台标签" + }, + "blocking_pages_advanced_button": { + "message": "高级设置" + }, + "blocking_pages_btn_go_back": { + "message": "返回上一页" + }, + "blocking_pages_btn_proceed": { + "message": "继续访问" + }, + "blocking_pages_malware": { + "message": "位于 \u003Cstrong>%host%\u003C/strong> 的网页已被报告为恶意网站,根据您的安全设置,我们拦截了与此网站的连接。" + }, + "blocking_pages_more_info_button": { + "message": "更多信息" + }, + "blocking_pages_page_title": { + "message": "拒绝访问" + }, + "blocking_pages_phishing": { + "message": "位于 \u003Cstrong>%host%\u003C/strong> 的网页已被报告为钓鱼网站,根据您的安全设置,我们拦截了与此网站的连接。" + }, + "blocking_pages_rule_content_title": { + "message": "根据以下过滤规则, Adguard 已阻止该网页加载" + }, + "blocking_pages_rule_header_title": { + "message": "由 AdGuard 拦截" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard 已经阻止了该页面的加载" + }, + "clear_button_title": { + "message": "清除" + }, + "close_button_title": { + "message": "关闭" + }, + "context_block_site_ads": { + "message": "手动屏蔽广告" + }, + "context_complaint_website": { + "message": "问题反馈" + }, + "context_disable_protection": { + "message": "暂停 AdGuard 保护" + }, + "context_enable_protection": { + "message": "继续 AdGuard 保护" + }, + "context_open_log": { + "message": "过滤器日志" + }, + "context_open_settings": { + "message": "AdGuard 设置" + }, + "context_security_report": { + "message": "检测网站安全性" + }, + "context_site_exception": { + "message": "此网站例外" + }, + "context_site_filtering_disabled": { + "message": "AdGuard 无法过滤此页面" + }, + "context_site_filtering_off": { + "message": "禁止过滤此网站" + }, + "context_site_filtering_on": { + "message": "开启过滤此网站" + }, + "context_site_protection_disabled": { + "message": "AdGuard 保护已暂停" + }, + "context_update_antibanner_filters": { + "message": "检查过滤器更新" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "一款无与伦比的广告拦截扩展,用以对抗各式广告与弹窗。可以拦截 Facebook、YouTube 和其它所有网站的广告。" + }, + "filtering_clear_log_events": { + "message": "清除日志" + }, + "filtering_log_actions_menu": { + "message": "过滤日志操作" + }, + "filtering_log_assumed_rule_description": { + "message": "这是一个假设的规则。有关详细信息,请参阅我们的\u003Ca>知识库\u003C/a>。" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP 请求方式" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP 状态码" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "第三方请求" + }, + "filtering_log_details_modal_back_button": { + "message": "返回请求" + }, + "filtering_log_details_modal_beautify_button": { + "message": "美化" + }, + "filtering_log_details_modal_try_again": { + "message": "重试" + }, + "filtering_log_filter_allowed": { + "message": "已允许" + }, + "filtering_log_filter_blocked": { + "message": "已拦截" + }, + "filtering_log_filter_modified": { + "message": "已修改" + }, + "filtering_log_filter_regular": { + "message": "常规" + }, + "filtering_log_filter_user_rules": { + "message": "用户规则" + }, + "filtering_log_hide_referrer": { + "message": "已隐藏源自第三方的引用" + }, + "filtering_log_hide_search_queries": { + "message": "已隐藏您的搜索查询" + }, + "filtering_log_in_allowlist": { + "message": "该网站已在白名单内" + }, + "filtering_log_modified_rules": { + "message": "已修改规则:%rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "是,保留日志" + }, + "filtering_log_preserve_log_modal_description": { + "message": "此选项可能会显著增加内存占用" + }, + "filtering_log_preserve_log_modal_title": { + "message": "保留日志?" + }, + "filtering_log_preserve_log_off": { + "message": "不保留日志" + }, + "filtering_log_preserve_log_on": { + "message": "保留日志" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "不再显示" + }, + "filtering_log_privacy_applied_rules": { + "message": "应用跟踪保护功能" + }, + "filtering_log_remove_client_data": { + "message": "已移除 X-Client-Data 头部" + }, + "filtering_log_search_string": { + "message": "搜索" + }, + "filtering_log_search_tabs_placeholder": { + "message": "在标签中搜索" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track(不要跟踪)头部已发送" + }, + "filtering_log_status_allowed": { + "message": "已允许" + }, + "filtering_log_status_blocked": { + "message": "已拦截" + }, + "filtering_log_status_modified": { + "message": "已修改" + }, + "filtering_log_status_processed": { + "message": "已处理" + }, + "filtering_log_stealth_rules": { + "message": "跟踪保护规则:%rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "请求源" + }, + "filtering_log_tag_request_status": { + "message": "过滤状态" + }, + "filtering_log_tag_request_type": { + "message": "请求类型" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "已允许和未拦截的请求" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "拦截的请求" + }, + "filtering_log_tag_tooltip_css": { + "message": "样式表" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "第一方请求" + }, + "filtering_log_tag_tooltip_html": { + "message": "文档和子文档" + }, + "filtering_log_tag_tooltip_img": { + "message": "图像" + }, + "filtering_log_tag_tooltip_js": { + "message": "脚本" + }, + "filtering_log_tag_tooltip_media": { + "message": "媒体" + }, + "filtering_log_tag_tooltip_modified": { + "message": "修改的请求" + }, + "filtering_log_tag_tooltip_other": { + "message": "字体、Ping、WebRTC、WebSocket…" + }, + "filtering_log_tag_tooltip_regular": { + "message": "未经过滤处理的请求" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "第三方请求" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "受用户规则影响的请求" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests 和 fetch 请求" + }, + "filtering_log_title": { + "message": "过滤日志" + }, + "filtering_menu_open_filters": { + "message": "自定义" + }, + "filtering_modal_add_rule": { + "message": "添加" + }, + "filtering_modal_allow_title": { + "message": "添加允许规则" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "已应用的规则 | 已应用的规则" + }, + "filtering_modal_apply_domains": { + "message": "应用到所有网站" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "假设的规则: | 假设的规则:" + }, + "filtering_modal_block": { + "message": "拦截" + }, + "filtering_modal_block_again": { + "message": "再次拦截" + }, + "filtering_modal_block_title": { + "message": "添加拦截规则" + }, + "filtering_modal_converted_to": { + "message": "已更改为:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "已复制" + }, + "filtering_modal_copy_to_clipboard": { + "message": "复制到剪贴板" + }, + "filtering_modal_declarative_rule": { + "message": "DNR 规则:" + }, + "filtering_modal_element": { + "message": "元素:" + }, + "filtering_modal_exception_title": { + "message": "添加例外" + }, + "filtering_modal_filter": { + "message": "过滤器" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "过滤状态" + }, + "filtering_modal_hide_full_element": { + "message": "影藏完整元素" + }, + "filtering_modal_hide_full_rule": { + "message": "影藏完整规则" + }, + "filtering_modal_hide_full_url": { + "message": "隐藏完整 URL" + }, + "filtering_modal_important": { + "message": "赋予规则更高的优先级" + }, + "filtering_modal_info_title": { + "message": "请求详细信息" + }, + "filtering_modal_open_in_new_tab": { + "message": "打开于新标签内" + }, + "filtering_modal_options_desc": { + "message": "选项" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "原始规则: | 原始规则:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "解除阻止的项目" + }, + "filtering_modal_patterns_desc_block": { + "message": "什么应该被拦截" + }, + "filtering_modal_preview_request_button": { + "message": "预览" + }, + "filtering_modal_preview_title": { + "message": "预览" + }, + "filtering_modal_privacy": { + "message": "跟踪保护" + }, + "filtering_modal_remove_allowlist": { + "message": "从白名单中移除" + }, + "filtering_modal_remove_param": { + "message": "移除查询参数" + }, + "filtering_modal_remove_user": { + "message": "移除规则" + }, + "filtering_modal_rule": { + "message": "规则:" + }, + "filtering_modal_rule_text_desc": { + "message": "规则" + }, + "filtering_modal_rules": { + "message": "规则:" + }, + "filtering_modal_show_full_element": { + "message": "显示完整元素" + }, + "filtering_modal_show_full_rule": { + "message": "显示完整规则" + }, + "filtering_modal_show_full_url": { + "message": "显示完整 URL" + }, + "filtering_modal_source": { + "message": "来源" + }, + "filtering_modal_status_text_desc": { + "message": "状态" + }, + "filtering_modal_status_text_error": { + "message": "无法加载预览。请重试。" + }, + "filtering_modal_status_text_loading": { + "message": "正在加载…" + }, + "filtering_modal_third_party": { + "message": "仅应用到第三方请求" + }, + "filtering_modal_type": { + "message": "类型" + }, + "filtering_modal_unblock": { + "message": "取消拦截" + }, + "filtering_refresh_tab_short": { + "message": "刷新" + }, + "filtering_refresh_tab_short_mobile": { + "message": "刷新页面" + }, + "filtering_table_action": { + "message": "操作" + }, + "filtering_table_empty_reload_page_desc": { + "message": "未找到任何内容。\u003Creset>禁用过滤器\u003C/reset>或\u003Crefresh>重新加载页面\u003C/refresh>以查看日志记录。" + }, + "filtering_table_filter": { + "message": "过滤器" + }, + "filtering_table_open_details": { + "message": "打开详细信息" + }, + "filtering_table_rule": { + "message": "过滤规则" + }, + "filtering_table_source": { + "message": "源" + }, + "filtering_table_status": { + "message": "状态" + }, + "filtering_table_type": { + "message": "类型" + }, + "filtering_type_all": { + "message": "全部" + }, + "filtering_type_other": { + "message": "其它" + }, + "filters_download_loading": { + "message": "正在加载过滤器数据库,请稍候..." + }, + "filters_download_title": { + "message": "正在加载过滤器数据库..." + }, + "fullscreen_user_rules_title": { + "message": "用户规则" + }, + "group_description_adblocking": { + "message": "配置广告拦截以一劳永逸地处理烦人的横幅、弹出窗口、视频广告等。" + }, + "group_description_annoyances": { + "message": "删除弹出窗口和其他烦人的通知,如 Cookie 通知。" + }, + "group_description_custom": { + "message": "创建您自己的过滤器以根据您的喜好微调网络过滤。" + }, + "group_description_lang": { + "message": "突破限制,阻止任何语言网站上的广告。" + }, + "group_description_miscellaneous": { + "message": "通过更多的 AdGuard 设置来进一步配置您的网上冲浪体验" + }, + "group_description_security": { + "message": "保护自己免受恶意软件、网络钓鱼和其他在线威胁的侵害。" + }, + "group_description_social": { + "message": "隐藏不需要的「点赞」/「分享」按钮和其他社交媒体小部件" + }, + "group_description_stealth": { + "message": "阻止所有已知的流行跟踪方法,保护个人身份和敏感的个人信息免受成千上万个在线跟踪器的侵害。" + }, + "name": { + "message": "AdGuard 广告拦截器" + }, + "opera_search_permission_dont_show": { + "message": "不再显示" + }, + "opera_search_permission_go_to_settings": { + "message": "打开「设置」" + }, + "opera_search_permission_warning": { + "message": "要拦截搜索广告,请在浏览器设置中允许访问搜索结果页面。" + }, + "options_about": { + "message": "关于" + }, + "options_about_libs": { + "message": "已使用的库" + }, + "options_about_title": { + "message": "AdGuard 浏览器扩展" + }, + "options_about_update_available": { + "message": "版本 %version% 已发布,将自动下载并安装。" + }, + "options_about_version": { + "message": "版本" + }, + "options_acknowledgment": { + "message": "致谢" + }, + "options_add_custom_filter": { + "message": "添加自定义过滤器" + }, + "options_add_custom_filter_modal_add_button": { + "message": "添加" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "正在检查您的过滤器..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL 返回的是网页,而非过滤列表。请提供指向过滤文件的直接链接。" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "请重试或联系支持人员" + }, + "options_add_custom_filter_modal_error_title": { + "message": "无法添加自定义过滤器" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "过滤器名称:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "受信任" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "受信任的过滤器可以使用强大的规则修改器,请确保过滤器来自受信任的开发人员" + }, + "options_add_custom_filter_modal_title": { + "message": "添加自定义过滤器" + }, + "options_all_limits_exceeded_warning": { + "message": "您已达到内置规则激活上限。 浏览器已修改了内置规则过滤器列表。 启用的过滤器数量已从 %expected% 个更改为 %current% 个。" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "您已达到浏览器活动内置规则的上限。您的浏览器已将活动内置过滤器列表从 %expected% 减少到 %current%" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "您的浏览器限制了\u003Cexternal-link>某些类型的规则\u003C/external-link>。要应用所有规则,请在您的浏览器\u003Csettings-link>扩展设置\u003C/settings-link>中启用\u003Cb>允许用户脚本\u003C/b>。" + }, + "options_allowlist": { + "message": "白名单" + }, + "options_allowlist_alert_invert": { + "message": "白名单已反转。广告仅在添加到列表中的网站上被拦截。" + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>停止反转\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard 无法拦截列表中网站上的广告和跟踪器" + }, + "options_allowlist_invalid_entries": { + "message": "保存时,请仅保留域名或 URL。以下条目需要修复:%entries%" + }, + "options_allowlist_invert": { + "message": "颠倒白名单" + }, + "options_allowlist_invert_desc": { + "message": "仅拦截白名单网站上的广告与跟踪器" + }, + "options_allowlist_leave_subtitle": { + "message": "白名单的更改将丢失" + }, + "options_allowlist_menu": { + "message": "白名单操作" + }, + "options_anonymized_usage_data_description": { + "message": "向 AdGuard 发送扩展使用情况的匿名统计数据。\u003Cbutton>了解更多\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "知道了" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "数据包括:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "用户点击的按钮名称" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "用户所交互的屏幕名称" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "会话标识符" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "数据是匿名发送的,仅在公司内部使用。我们从不与第三方分享数据。" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "我们需要这些信息来分析和改善 AdGuard 的功能。" + }, + "options_anonymized_usage_data_modal_title": { + "message": "扩展使用数据" + }, + "options_anonymized_usage_data_title": { + "message": "匿名发送扩展使用数据" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "此自定义过滤器已经存在" + }, + "options_antibanner_custom_group": { + "message": "自定义" + }, + "options_antibanner_custom_group_description": { + "message": "支持通过文件或 URL 添加过滤器" + }, + "options_antibanner_rules_count": { + "message": "规则:%rules_count%" + }, + "options_antibanner_updated": { + "message": "已更新:%date%" + }, + "options_block_acceptable_ads": { + "message": "拦截搜索广告和网站自我推销" + }, + "options_block_acceptable_ads_desc": { + "message": "在搜索结果中拦截广告与网站的自我推广。\u003Ca>了解更多\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "如需彻底阻止此类 Cookie,请将生命周期设置为 0。" + }, + "options_block_known_trackers_description": { + "message": "使用「AdGuard 防跟踪保护过滤器」拦截跟踪器和网络分析" + }, + "options_block_known_trackers_title": { + "message": "拦截跟踪器" + }, + "options_check_update_progress": { + "message": "检查中..." + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "清除" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "所有数据使用统计将被永久删除" + }, + "options_clear_stats_confirm_modal_title": { + "message": "清除统计数据?" + }, + "options_clipboard_permission_warning": { + "message": "若要复制与粘贴规则,请允许 AdGuard 访问剪贴板。 \u003Ca>允许\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "向 AdGuard 发送匿名的广告过滤器使用统计。\u003Ca>了解更多\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "协助完善 AdGuard 过滤器" + }, + "options_coming_soon": { + "message": "即将推出" + }, + "options_confirm_modal_cancel_button": { + "message": "取消" + }, + "options_copyright": { + "message": "保留所有版权。" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "要使用自定义过滤器,请在浏览器的\u003Csettings-link>扩展设置\u003C/settings-link>中启用\u003Cb>允许用户脚本\u003C/b>。" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "要使用自定义过滤器,请在您的浏览器的\u003Csettings-link>扩展设置\u003C/settings-link>中启用\u003Cb>开发人员模式\u003C/b>" + }, + "options_desktop_app_promo_button_linux": { + "message": "获取 AdGuard Linux 版" + }, + "options_desktop_app_promo_button_mac": { + "message": "获取 AdGuard Mac 版" + }, + "options_desktop_app_promo_button_windows": { + "message": "获取 AdGuard Windows 版" + }, + "options_desktop_app_promo_description": { + "message": "像 Spotify、Discord 或 Zoom 这样的应用仍可能显示广告并跟踪您的活动。" + }, + "options_desktop_app_promo_subdescription": { + "message": "我们的桌面应用可以保护您免受侵扰" + }, + "options_desktop_app_promo_title": { + "message": "扩展程序仅保护浏览器" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "您的浏览器限制了\u003Cexternal-link>某些类型的规则\u003C/external-link>。要应用所有规则,请在浏览器\u003Csettings-link>扩展设置\u003C/settings-link>中启用\u003Cb>开发人员模式\u003C/b>。" + }, + "options_disable_webrtc_desc": { + "message": "屏蔽可能导致真实 IP 地址泄露的 WebRTC 协议(即使您使用代理或 VPN 时)。\n部分即时通讯软件、流媒体平台或游戏可能因此无法正常运行。" + }, + "options_disable_webrtc_title": { + "message": "拦截 WebRTC" + }, + "options_discuss": { + "message": "讨论 AdGuard" + }, + "options_do_you_like_question": { + "message": "您喜欢 AdGuard 吗?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "关闭全屏模式" + }, + "options_editor_indicator_saved": { + "message": "已保存" + }, + "options_editor_indicator_saving": { + "message": "保存..." + }, + "options_editor_leave_cancel": { + "message": "返回编辑页面" + }, + "options_editor_leave_confirm": { + "message": "离开" + }, + "options_editor_leave_title": { + "message": "不保存就离开?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "在新标签页中打开编辑器" + }, + "options_editor_save": { + "message": "保存" + }, + "options_editor_save_error": { + "message": "保存失败,请重试或联系客户支持。" + }, + "options_empty_custom_filter": { + "message": "您还没有任何自定义过滤器" + }, + "options_enable_autodetect_filter": { + "message": "自动激活最适合的过滤器" + }, + "options_enable_autodetect_filter_desc": { + "message": "检测网站的语言并激活对应的过滤器" + }, + "options_export_settings": { + "message": "导出设置" + }, + "options_filters": { + "message": "过滤器" + }, + "options_filters_annoyances_consent_description": { + "message": "您即将启用一个或多个烦人过滤器。此类过滤器会屏蔽与网站内容无关、或虽相关但影响用户体验的干扰性元素。请注意:网站运营者可能视其为核心要素,屏蔽后可能导致以下后果:违反该网站使用条款;部分功能不可用或运行异常。您理解并同意,使用本产品访问网站时需独立承担遵守各网站使用条款的责任,AdGuard 不对您的合规行为承担法律责任。" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "启用" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "主页" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "有关 AdGuard 恼人广告过滤器的拦截详情,请参阅\u003Ca>过滤器政策\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "启用这些过滤器?" + }, + "options_filters_annoyances_consent_title": { + "message": "使用骚扰过滤功能之前请务必阅读" + }, + "options_filters_back_button": { + "message": "返回" + }, + "options_filters_empty_title": { + "message": "没有结果" + }, + "options_filters_enabled": { + "message": "已开启" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% 和 %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% 和其它 %more% 个" + }, + "options_filters_enabled_per_group": { + "message": "已启用:%current%/%total%" + }, + "options_filters_filter_link": { + "message": "转到主页" + }, + "options_filters_filter_tags": { + "message": "过滤标签" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "您选择信任此过滤器。" + }, + "options_filters_filter_updated": { + "message": "更新时间:" + }, + "options_filters_filter_version": { + "message": "版本:" + }, + "options_filters_info_mv3_total_rules": { + "message": "总规则数:%num%" + }, + "options_filters_last_checked": { + "message": "上次检查时间:%date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "所有过滤器" + }, + "options_filters_list_search_display_option_disabled": { + "message": "已禁用" + }, + "options_filters_list_search_display_option_enabled": { + "message": "已启用" + }, + "options_filters_no_enabled": { + "message": "无过滤器开启" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" 组的过滤器" + }, + "options_filters_search": { + "message": "搜索" + }, + "options_filters_search_filter": { + "message": "搜索过滤器" + }, + "options_first_party_block_cookies_warning": { + "message": "如果拦截这些 Cookie,某些网站可能会崩溃或停止运行。" + }, + "options_first_party_desc": { + "message": "通过限制第一方 Cookie 的生命周期,防止网站记住您的个人数据(包括登录凭据和语言偏好设置)。" + }, + "options_first_party_title": { + "message": "删除第一方 Cookie(不推荐)" + }, + "options_general_settings": { + "message": "常规设置" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "防止第三方知道用户访问的网站" + }, + "options_hide_referrer_title": { + "message": "对第三方隐藏 Referer" + }, + "options_hide_search_queries_desc": { + "message": "隐藏通过搜索引擎访问的网站查询。" + }, + "options_hide_search_queries_title": { + "message": "隐藏搜索查询" + }, + "options_import_configuration_applying_subtitle": { + "message": "使用导入的设置替换当前设置。导入期间将禁用过滤。" + }, + "options_import_configuration_applying_title": { + "message": "导入中,请稍等..." + }, + "options_import_configuration_confirm_button": { + "message": "导入" + }, + "options_import_configuration_confirm_subtitle": { + "message": "导入的设置将取代您当前设置。其他设置不会受影响。" + }, + "options_import_configuration_confirm_title": { + "message": "导入设置" + }, + "options_import_configuration_error_button": { + "message": "关闭" + }, + "options_import_configuration_error_subtitle": { + "message": "请检查导入链接并重试。如果没有帮助,请联系支持人员。" + }, + "options_import_configuration_error_title": { + "message": "设置导入失败" + }, + "options_import_configuration_success_button": { + "message": "关闭" + }, + "options_import_configuration_success_subtitle": { + "message": "设置成功导入" + }, + "options_import_configuration_success_title": { + "message": "一切完成" + }, + "options_import_settings": { + "message": "导入设置" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "反转" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "仅白名单中的网站会拦截广告和跟踪器" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "反转白名单?" + }, + "options_leave_feedback": { + "message": "留下反馈" + }, + "options_lifetime_minutes": { + "message": "生存时间(分钟)" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "您已达到用户添加正则表达式规则的限制。 %maximum% 个正则表达式规则中的 %current% 个已启用。" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "已达到用户添加正则表达式规则的上限。%maximum% 个规则(共 %current% 个)已启用。要添加新的正则表达式规则,请删除一些已有的规则。" + }, + "options_limits_warning_dynamic_rules": { + "message": "您已达到用户添加规则的限制。 %maximum% 条规则中的 %current% 条已启用。" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "已达到用户添加规则的上限。%maximum% 个规则(共 %current% 个)已启用。要添加新规则,请删除一些已有的规则。" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "您已达到用户添加不安全规则的限制。 %current% 个不安全规则中的 %maximum% 个已启用。" + }, + "options_limits_warning_static_filters": { + "message": "您已达到内置过滤器的限制。 %maximum% 个过滤器(共 %current% 个)已启用。要激活新规则,请禁用一些内置过滤器。" + }, + "options_limits_warning_static_filters_browser": { + "message": "您已达到浏览器内置过滤器的启用上限,当前启用 %current% 个,上限 %maximum% 个。要启用新过滤器,请先关闭部分内置过滤器。" + }, + "options_limits_warning_static_regex_rules": { + "message": "您已达到内置正则表达式规则的限制。 %maximum% 个正则表达式规则(共 %current% 个)已启用。要激活新规则,请禁用一些内置过滤器。" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "已达到启用的内置正则规则上限。要激活新规则,请关闭一些内置过滤器。" + }, + "options_limits_warning_static_rules": { + "message": "您已达到内置规则的限制。 %maximum% 个规则(共 %current% 个)已启用。要激活新规则,请禁用一些内置过滤器。" + }, + "options_limits_warning_static_rules_browser": { + "message": "您已达到浏览器中已激活内置规则的上限。要激活新规则,请关闭一些内置过滤器。" + }, + "options_loader_applying_changes": { + "message": "正在应用变更…" + }, + "options_miscellaneous_settings": { + "message": "附加设置" + }, + "options_modified_first_party_cookie": { + "message": "已修改第一方 cookie" + }, + "options_modified_third_party_cookie": { + "message": "已修改第三方 cookie" + }, + "options_nav_better_than_extension": { + "message": "为什么 AdGuard 应用程序比扩展更好?" + }, + "options_nav_compare": { + "message": "两者对比" + }, + "options_navigation": { + "message": "导航" + }, + "options_open_changelog": { + "message": "更改日志" + }, + "options_open_log": { + "message": "打开过滤日志" + }, + "options_popup_call_to_action": { + "message": "输入过滤器的有效 URL 或文件路径到以上字段。" + }, + "options_popup_check_false_description": { + "message": "在添加您的自定义过滤器时出错。" + }, + "options_popup_check_false_title": { + "message": "错误" + }, + "options_popup_checking_filter": { + "message": "正在检查您的过滤器" + }, + "options_popup_description": { + "message": "您将订阅相应的过滤器。" + }, + "options_popup_filter_description": { + "message": "描述:" + }, + "options_popup_filter_homepage": { + "message": "主页:" + }, + "options_popup_filter_rules_count": { + "message": "规则数量:" + }, + "options_popup_filter_title": { + "message": "标题:" + }, + "options_popup_filter_url": { + "message": "URL" + }, + "options_popup_filter_version": { + "message": "版本:" + }, + "options_popup_import_error_file_description": { + "message": "发生错误。" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "要导入此设置文件,请允许 AdGuard 更改您的隐私相关设置。" + }, + "options_popup_import_error_title": { + "message": "设置导入失败" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "文件扩展名应为 %extension%" + }, + "options_popup_import_success_title": { + "message": "设置已导入" + }, + "options_popup_next_button": { + "message": "下一步" + }, + "options_popup_subscribe_button": { + "message": "订阅" + }, + "options_popup_title_placeholder": { + "message": "输入过滤器名称" + }, + "options_popup_trusted_filter_description": { + "message": "受信任的过滤器可使用强有力的过滤规则修饰符,错误的使用是非常危险的。除非您完全信任它,否则请不要选中此复选框。" + }, + "options_popup_trusted_filter_title": { + "message": "受信任" + }, + "options_popup_try_again_button": { + "message": "重试" + }, + "options_popup_update_error": { + "message": "获取更新失败。请稍后再试。" + }, + "options_popup_update_filter": { + "message": "已更新。" + }, + "options_popup_update_filters": { + "message": "已为最新。" + }, + "options_popup_update_not_found": { + "message": "您的过滤器已是最新" + }, + "options_popup_update_title_error": { + "message": "更新过滤器错误" + }, + "options_popup_updating_filters": { + "message": "正在更新过滤器..." + }, + "options_popup_url_placeholder": { + "message": "输入 URL 或路径" + }, + "options_popup_url_title": { + "message": "新过滤器订阅" + }, + "options_popup_version_update_changelog_text": { + "message": "此版本的新特性?" + }, + "options_popup_version_update_description_major": { + "message": "此为带给您大量新特性和改进的扩展大版本升级。" + }, + "options_popup_version_update_description_minor": { + "message": "此版本包含众多的错误修复和小的改进。" + }, + "options_popup_version_update_disable_notification": { + "message": "禁用通知" + }, + "options_popup_version_update_offer": { + "message": "您可知道 AdGuard 的能力不限于此浏览器?" + }, + "options_popup_version_update_offer_button_text": { + "message": "了解更多" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard 扩展已更新到版本 %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "让 WebRTC 采用更严格的 IP 地址策略,帮助您在使用代理或 VPN 时隐藏真实 IP 地址。" + }, + "options_prevent_webrtc_leaks_title": { + "message": "通过 WebRTC 防止 IP 地址泄露" + }, + "options_privacy": { + "message": "跟踪保护" + }, + "options_privacy_desc": { + "message": "保护在线活动和个人数据免受网络跟踪器的侵害" + }, + "options_privacy_policy": { + "message": "隐私政策" + }, + "options_privacy_title": { + "message": "跟踪保护" + }, + "options_rate_us_cta": { + "message": "评分" + }, + "options_remove_client_data_desc": { + "message": "阻止 Google Chrome 发送其版本信息到 Google 域并修改此信息" + }, + "options_remove_client_data_title": { + "message": "移除 X-Client-Data 头部" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "移除" + }, + "options_remove_filter_confirm_modal_title": { + "message": "移除此过滤器?" + }, + "options_report_bug": { + "message": "报告错误" + }, + "options_reset_settings": { + "message": "重置设置" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "重置" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "所有设置将重置为默认值" + }, + "options_reset_settings_confirm_modal_title": { + "message": "重置设置?" + }, + "options_reset_settings_done": { + "message": "设置已重置" + }, + "options_reset_settings_error": { + "message": "重置设置时出错" + }, + "options_reset_stats": { + "message": "清除统计数据" + }, + "options_reset_stats_done": { + "message": "统计数据已重置" + }, + "options_rule_limits": { + "message": "规则限制" + }, + "options_rule_limits_description": { + "message": "Chrome 浏览器限制可应用的规则数量" + }, + "options_rule_limits_dynamic": { + "message": "动态规则" + }, + "options_rule_limits_dynamic_regex": { + "message": "正则表达式规则(包含在用户添加的规则中)" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "不安全的动态规则(用于某些高级修饰符,如 $$redirect 或 $$cookie),包括在用户添加的规则中" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "用户添加的规则,例如\u003Cuser_rules>用户规则\u003C/user_rules>、 \u003Callowlist>白名单\u003C/allowlist>和\u003Ccustom_filters>自定义过滤器\u003C/custom_filters>。" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "用户添加的规则,例如\u003Cuser_rules>用户规则\u003C/user_rules>和\u003Callowlist>白名单\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% 个,共 %maximum% 个" + }, + "options_rule_limits_static_rules": { + "message": "静态规则" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>内置过滤器\u003C/a>的规则" + }, + "options_rule_limits_static_rules_regex": { + "message": "正则表达式规则(包含在上述内容中)" + }, + "options_rule_limits_static_rulesets": { + "message": "静态规则集" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>内置过滤器\u003C/a>,如拦截烦人内容或特定语言过滤器。" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "选项 3:如果您可以接受当前启用的默认过滤器,即可\u003Ca>关闭此警告\u003C/a>。" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "选项 3:如果您可以接受当前启用的默认过滤器,即可\u003Ca>关闭此警告\u003C/a>。" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "选项 1:从浏览器中删除不必要的广告拦截扩展。要重新激活「更新前启用的过滤器」部分中提到的过滤器,请单击「\u003Ca>重新激活过滤器\u003C/a>」。" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "选项 2:安装 AdGuard 广告拦截程序。该应用程序没有过滤规则的数量限制。\u003Ca>获取 AdGuard 广告拦截程序\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "您可以进行的操作" + }, + "options_rule_limits_warning_explanation_description": { + "message": "在更新或添加新扩展后,活跃的内置规则已超出限制。根据 Manifest V3,Chrome 浏览器已禁用除默认过滤器之外的所有扩展程序的内置过滤器。" + }, + "options_rule_limits_warning_explanation_title": { + "message": "出现了什么问题?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "更新前启用的过滤器" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "当前已启用的过滤器" + }, + "options_rule_limits_warning_title": { + "message": "浏览器已修改活跃过滤器列表" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "解除规则上限,获得适用于所有浏览器的增强保护。" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "安装桌面应用" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "转到过滤器" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "管理扩展程序" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "浏览器扩展共享相同的规则上限。移除其他广告拦截程序可能为 AdGuard 浏览器扩展释放更多规则。" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "移除其他广告拦截程序" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "启用所需的过滤器。特定语言和隐私过滤器可能使用大量规则。" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "检查可用的过滤器" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "您可以采取以下措施" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "已达上限,部分过滤器已停用。" + }, + "options_rule_syntax": { + "message": "规则语法" + }, + "options_safebrowsing_enabled": { + "message": "钓鱼和恶意保护" + }, + "options_safebrowsing_enabled_desc": { + "message": "通过 AdGuard 浏览安全模块警告恶意与钓鱼网站。\u003Ca>了解更多\u003C/a>" + }, + "options_select_theme": { + "message": "主题" + }, + "options_select_update_period_12h": { + "message": "12 小时" + }, + "options_select_update_period_1h": { + "message": "1 小时" + }, + "options_select_update_period_24h": { + "message": "24 小时" + }, + "options_select_update_period_48h": { + "message": "48 小时" + }, + "options_select_update_period_6h": { + "message": "6 小时" + }, + "options_select_update_period_default": { + "message": "默认" + }, + "options_select_update_period_disabled": { + "message": "已禁用" + }, + "options_send_not_track_desc": { + "message": "向用户访问的网站发送 \u003Cgpc>Global Privacy Control\u003C/gpc> 和 \u003Cdnt>Do Not Track\u003C/dnt> 信号。" + }, + "options_send_not_track_title": { + "message": "要求网站不跟踪" + }, + "options_set_update_interval": { + "message": "自动更新过滤器" + }, + "options_set_update_interval_desc": { + "message": "保持过滤器更新,以实现更高效的广告拦截" + }, + "options_settings": { + "message": "AdGuard 设置" + }, + "options_share_settings": { + "message": "分享设置" + }, + "options_show_adguard_full_version_title": { + "message": "显示关于 AdGuard 完整版本的信息" + }, + "options_show_app_updated_notification": { + "message": "通知扩展更新" + }, + "options_show_blocked_ads_count_title": { + "message": "在 AdGuard 扩展图标上显示已拦截的广告数量" + }, + "options_show_context_menu_title": { + "message": "添加 AdGuard 到浏览器上下文菜单" + }, + "options_site": { + "message": "官方网站" + }, + "options_skip_to_main_content": { + "message": "跳转到主内容" + }, + "options_stealth_general_title": { + "message": "常规" + }, + "options_stealth_miscellaneous_title": { + "message": "其它" + }, + "options_stealth_tracking_methods_title": { + "message": "跟踪方式" + }, + "options_strip_tracking_params_description": { + "message": "使用「AdGuard URL 跟踪过滤器」删除页面 URL 中的跟踪参数" + }, + "options_strip_tracking_params_title": { + "message": "从 URL 中删除跟踪参数" + }, + "options_stripped_tracking_parameters": { + "message": "已移除跟踪参数" + }, + "options_theme_selector_dark": { + "message": "深色" + }, + "options_theme_selector_light": { + "message": "浅色" + }, + "options_theme_selector_system": { + "message": "系统默认" + }, + "options_third_party_block_cookies_warning": { + "message": "如果阻止这些 Cookie,用户可能需要重新登录某些网站或面临其他与 Cookie 相关的问题。" + }, + "options_third_party_desc": { + "message": "通过限制第三方 Cookie 的生命周期,防止广告商跨多个网页跟踪您的浏览行为。" + }, + "options_third_party_title": { + "message": "删除第三方 Cookie" + }, + "options_update_antibanner_filters": { + "message": "检查过滤器更新" + }, + "options_use_optimized_filters": { + "message": "使用优化的过滤器" + }, + "options_use_optimized_filters_desc": { + "message": "使用较短的过滤器,仅包含最流行的规则以节省流量。更适合移动浏览器" + }, + "options_user_rules_clear_search": { + "message": "清除搜索" + }, + "options_user_rules_create_rule": { + "message": "创建规则" + }, + "options_user_rules_delete_all": { + "message": "清除所有规则" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "将永久删除所有用户规则" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "清除所有规则?" + }, + "options_user_rules_delete_all_success": { + "message": "所有用户规则已删除" + }, + "options_user_rules_delete_rule": { + "message": "移除规则" + }, + "options_user_rules_deleted_notification": { + "message": "用户规则已删除:" + }, + "options_user_rules_description_key": { + "message": "您用于拦截和解除拦截广告或整个网站的规则" + }, + "options_user_rules_edit_rule": { + "message": "编辑规则" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "转到编辑器" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "关闭后规则将显示在此处" + }, + "options_user_rules_editor_stub_title": { + "message": "编辑器在另一个窗口中已打开" + }, + "options_user_rules_empty_placeholder": { + "message": "暂无规则" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "正在高亮显示规则…" + }, + "options_user_rules_import_error": { + "message": "用户规则导入失败。请重试。" + }, + "options_user_rules_import_success": { + "message": "用户规则导入成功" + }, + "options_user_rules_menu": { + "message": "用户规则操作" + }, + "options_user_rules_no_match": { + "message": "没找到" + }, + "options_user_rules_search_placeholder": { + "message": "搜索" + }, + "options_user_rules_switch_to_editor": { + "message": "切换到编辑器视图" + }, + "options_user_rules_switch_to_list": { + "message": "切换到列表视图" + }, + "options_user_rules_undo": { + "message": "撤销" + }, + "options_userfilter": { + "message": "用户过滤器" + }, + "options_userfilter_description_key": { + "message": "您可以在这里添加自己的规则。建议熟悉 HTML/CSS 的高级用户使用此选项。阅读 \u003Ca>过滤器规则教程\u003C/a>来学习如何编写您自己的过滤器规则。" + }, + "options_userfilter_export": { + "message": "导出" + }, + "options_userfilter_import": { + "message": "导入" + }, + "options_userfilter_leave_subtitle": { + "message": "规则的更改将丢失" + }, + "options_userfilter_line_break": { + "message": "换行" + }, + "options_userfilter_line_break_off": { + "message": "换行:已禁用" + }, + "options_userfilter_line_break_on": { + "message": "换行:已启用" + }, + "options_userfilter_subtitle_key": { + "message": "允许添加自定义过滤规则" + }, + "popup_abuse_site": { + "message": "报告问题" + }, + "popup_adguard_footer_title": { + "message": "保护移动设备" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "手动屏蔽广告" + }, + "popup_get_system_wide_protection": { + "message": "获取系统级防护" + }, + "popup_header_cta_link": { + "message": "如何加强保护" + }, + "popup_header_update_filters": { + "message": "检查过滤器更新" + }, + "popup_limits_exceeded_warning": { + "message": "浏览器已修改激活的内置过滤器列表。" + }, + "popup_open_filtering_log": { + "message": "打开过滤日志" + }, + "popup_open_settings": { + "message": "打开 AdGuard 设置" + }, + "popup_protection_button": { + "message": "AdGuard 保护" + }, + "popup_reset_page_user_rules": { + "message": "删除用于此网站上的用户规则" + }, + "popup_resume_protection_button": { + "message": "修复" + }, + "popup_security_report": { + "message": "检测网站安全性" + }, + "popup_site_exception_information": { + "message": "由于可能会干扰本网站的正常运行,过滤功能已禁用。" + }, + "popup_site_filtering_state_disabled": { + "message": "保护已禁用" + }, + "popup_site_filtering_state_disabling": { + "message": "正在禁用保护..." + }, + "popup_site_filtering_state_enabled": { + "message": "保护已开启" + }, + "popup_site_filtering_state_enabling": { + "message": "正在启用保护..." + }, + "popup_site_filtering_state_loading": { + "message": "正在加载…" + }, + "popup_site_filtering_state_paused": { + "message": "保护已暂停" + }, + "popup_site_filtering_state_pausing": { + "message": "正在暂停保护..." + }, + "popup_site_filtering_state_resuming": { + "message": "正在恢复保护..." + }, + "popup_site_filtering_state_secure_page": { + "message": "安全页面" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "适用于所有网站" + }, + "popup_statistics_all_categories": { + "message": "全部" + }, + "popup_statistics_category_advertising": { + "message": "广告" + }, + "popup_statistics_category_cdn": { + "message": "内容分发网络" + }, + "popup_statistics_category_label": { + "message": "统计类别" + }, + "popup_statistics_category_other": { + "message": "其它" + }, + "popup_statistics_category_social_media": { + "message": "社交媒体" + }, + "popup_statistics_category_trackers": { + "message": "跟踪器" + }, + "popup_statistics_months_apr": { + "message": "四月" + }, + "popup_statistics_months_aug": { + "message": "八月" + }, + "popup_statistics_months_dec": { + "message": "十二月" + }, + "popup_statistics_months_feb": { + "message": "二月" + }, + "popup_statistics_months_jan": { + "message": "一月" + }, + "popup_statistics_months_jul": { + "message": "七月" + }, + "popup_statistics_months_jun": { + "message": "六月" + }, + "popup_statistics_months_mar": { + "message": "三月" + }, + "popup_statistics_months_may": { + "message": "五月" + }, + "popup_statistics_months_nov": { + "message": "十一月" + }, + "popup_statistics_months_oct": { + "message": "十月" + }, + "popup_statistics_months_sep": { + "message": "九月" + }, + "popup_statistics_time_day": { + "message": "24 小时" + }, + "popup_statistics_time_label": { + "message": "统计时间段" + }, + "popup_statistics_time_month": { + "message": "一个月" + }, + "popup_statistics_time_week": { + "message": "一周" + }, + "popup_statistics_time_year": { + "message": "一年" + }, + "popup_statistics_total": { + "message": "合计" + }, + "popup_statistics_week_days_fri": { + "message": "周五" + }, + "popup_statistics_week_days_mon": { + "message": "周一" + }, + "popup_statistics_week_days_sat": { + "message": "周六" + }, + "popup_statistics_week_days_sun": { + "message": "周日" + }, + "popup_statistics_week_days_thu": { + "message": "周四" + }, + "popup_statistics_week_days_tue": { + "message": "周二" + }, + "popup_statistics_week_days_wed": { + "message": "周三" + }, + "popup_switch_button": { + "message": "当前网站的保护" + }, + "popup_tab_actions": { + "message": "操作" + }, + "popup_tab_blocked_all_count": { + "message": "总计拦截:%num%" + }, + "popup_tab_blocked_count": { + "message": "已拦截数量:%num%" + }, + "popup_tab_current_website": { + "message": "当前网站" + }, + "popup_tab_statistics": { + "message": "统计" + }, + "popup_tabs": { + "message": "标签" + }, + "popup_tooltip_loading": { + "message": "正在加载…" + }, + "popup_tooltip_protection_disabled": { + "message": "保护已禁用" + }, + "popup_tooltip_protection_enabled": { + "message": "保护已启用" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "部分规则未应用" + }, + "popup_tooltip_update_available": { + "message": "有可用更新" + }, + "post_install_loading": { + "message": "正在加载扩展..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard 浏览器扩展已超出规则数量限制。请检查过滤器并禁用不需要的过滤器。" + }, + "text_collapser_hide_default": { + "message": "隐藏完整文本" + }, + "text_collapser_show_default": { + "message": "显示完整文本" + }, + "update_available_desc": { + "message": "为确保有效拦截广告,请保持您的扩展程序和过滤规则处于最新状态。" + }, + "update_available_title": { + "message": "有可用更新" + }, + "update_available_update_btn": { + "message": "更新" + }, + "update_check": { + "message": "检查更新" + }, + "update_checking_in_progress": { + "message": "正在检查更新…" + }, + "update_failed_text": { + "message": "无法更新" + }, + "update_failed_try_again_btn": { + "message": "重试" + }, + "update_installing_in_progress_desc": { + "message": "扩展将在更新后重新启动" + }, + "update_installing_in_progress_title": { + "message": "正在更新扩展和過濾器..." + }, + "update_not_needed": { + "message": "扩展程序与过滤规则已是最新版本。" + }, + "update_success_text": { + "message": "扩展程序及过滤规则更新成功。" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_TW/messages.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_TW/messages.json new file mode 100644 index 0000000..6c1dcc7 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/_locales/zh_TW/messages.json @@ -0,0 +1,1686 @@ +{ + "alert_popup_filter_enabled_desc": { + "message": "%filter_name% 已被自動地啟動。" + }, + "alert_popup_filter_enabled_title": { + "message": "過濾器之自動的啟動" + }, + "background_tab_title": { + "message": "背景分頁" + }, + "blocking_pages_advanced_button": { + "message": "進階的" + }, + "blocking_pages_btn_go_back": { + "message": "返回" + }, + "blocking_pages_btn_proceed": { + "message": "無論如何繼續" + }, + "blocking_pages_malware": { + "message": "於 \u003Cstrong>%host%\u003C/strong> 之網頁已被報告為惡意軟體頁面,且根據您的安全性偏好設定,已被封鎖。" + }, + "blocking_pages_more_info_button": { + "message": "更多的資訊" + }, + "blocking_pages_page_title": { + "message": "拒絕存取" + }, + "blocking_pages_phishing": { + "message": "於 \u003Cstrong>%host%\u003C/strong> 之網頁已被報告為網路釣魚頁面,且根據您的安全性偏好設定,已被封鎖。" + }, + "blocking_pages_rule_content_title": { + "message": "由於下面的過濾器規則,AdGuard 已防止此頁面載入" + }, + "blocking_pages_rule_header_title": { + "message": "被 AdGuard 封鎖" + }, + "blocking_pages_safe_header_title": { + "message": "AdGuard 已封鎖至此頁面之存取" + }, + "clear_button_title": { + "message": "清除" + }, + "close_button_title": { + "message": "關閉" + }, + "context_block_site_ads": { + "message": "手動封鎖廣告" + }, + "context_complaint_website": { + "message": "報告問題" + }, + "context_disable_protection": { + "message": "暫停 AdGuard 防護" + }, + "context_enable_protection": { + "message": "恢復 AdGuard 防護" + }, + "context_open_log": { + "message": "過濾記錄" + }, + "context_open_settings": { + "message": "AdGuard 設定" + }, + "context_security_report": { + "message": "檢查網站安全性" + }, + "context_site_exception": { + "message": "此網站在例外中" + }, + "context_site_filtering_disabled": { + "message": "AdGuard 無法過濾此頁面" + }, + "context_site_filtering_off": { + "message": "對此網站禁用過濾" + }, + "context_site_filtering_on": { + "message": "對此網站啟用過濾" + }, + "context_site_protection_disabled": { + "message": "AdGuard 防護被暫停" + }, + "context_update_antibanner_filters": { + "message": "檢查過濾器更新" + }, + "description": { + "description": "TEXT MAX LENGTH: 132", + "message": "防備廣告和彈出式視窗之無與倫比的廣告封鎖擴充功能。封鎖於 Facebook、YouTube 和所有其它的網站上之廣告。" + }, + "filtering_clear_log_events": { + "message": "清除記錄" + }, + "filtering_log_actions_menu": { + "message": "過濾紀錄操作" + }, + "filtering_log_assumed_rule_description": { + "message": "這是一個假設的規則。有關詳細資訊,請參閱我們的\u003Ca>知識庫\u003C/a>。" + }, + "filtering_log_badge_tooltip_http_req_method": { + "message": "HTTP 請求方式" + }, + "filtering_log_badge_tooltip_http_status_code": { + "message": "HTTP 狀態碼" + }, + "filtering_log_badge_tooltip_third_party": { + "message": "第三方的請求" + }, + "filtering_log_details_modal_back_button": { + "message": "返回去請求" + }, + "filtering_log_details_modal_beautify_button": { + "message": "美化" + }, + "filtering_log_details_modal_try_again": { + "message": "再次嘗試" + }, + "filtering_log_filter_allowed": { + "message": "被允許的" + }, + "filtering_log_filter_blocked": { + "message": "已封鎖的" + }, + "filtering_log_filter_modified": { + "message": "已修飾的" + }, + "filtering_log_filter_regular": { + "message": "常規的" + }, + "filtering_log_filter_user_rules": { + "message": "使用者規則" + }, + "filtering_log_hide_referrer": { + "message": "參照位址被隱藏免於第三方" + }, + "filtering_log_hide_search_queries": { + "message": "您的搜尋查詢被隱藏" + }, + "filtering_log_in_allowlist": { + "message": "該網站被允許" + }, + "filtering_log_modified_rules": { + "message": "已修改的規則:%rules_count%" + }, + "filtering_log_preserve_log_modal_confirm": { + "message": "是,保存" + }, + "filtering_log_preserve_log_modal_description": { + "message": "此選項可能會顯著增加記憶體佔用" + }, + "filtering_log_preserve_log_modal_title": { + "message": "保存記錄?" + }, + "filtering_log_preserve_log_off": { + "message": "不保存紀錄" + }, + "filtering_log_preserve_log_on": { + "message": "保存記錄" + }, + "filtering_log_preserve_log_skip_modal_in_future": { + "message": "不再顯示" + }, + "filtering_log_privacy_applied_rules": { + "message": "套用追蹤保護功能" + }, + "filtering_log_remove_client_data": { + "message": "X-Client-Data 標頭被移除" + }, + "filtering_log_search_string": { + "message": "搜尋" + }, + "filtering_log_search_tabs_placeholder": { + "message": "在分頁中搜尋" + }, + "filtering_log_send_not_track": { + "message": "Do-Not-Track 標頭被傳送" + }, + "filtering_log_status_allowed": { + "message": "被允許的" + }, + "filtering_log_status_blocked": { + "message": "已封鎖的" + }, + "filtering_log_status_modified": { + "message": "已修飾的" + }, + "filtering_log_status_processed": { + "message": "已處理的" + }, + "filtering_log_stealth_rules": { + "message": "追蹤保護規則:%rules_count%" + }, + "filtering_log_tag_request_source": { + "message": "請求起源" + }, + "filtering_log_tag_request_status": { + "message": "過濾狀態" + }, + "filtering_log_tag_request_type": { + "message": "請求類型" + }, + "filtering_log_tag_tooltip_allowed": { + "message": "被允許和未被封鎖的請求" + }, + "filtering_log_tag_tooltip_blocked": { + "message": "封鎖的請求" + }, + "filtering_log_tag_tooltip_css": { + "message": "樣式表" + }, + "filtering_log_tag_tooltip_first_party": { + "message": "第一方的請求" + }, + "filtering_log_tag_tooltip_html": { + "message": "文件和子文件" + }, + "filtering_log_tag_tooltip_img": { + "message": "影像" + }, + "filtering_log_tag_tooltip_js": { + "message": "腳本" + }, + "filtering_log_tag_tooltip_media": { + "message": "媒體" + }, + "filtering_log_tag_tooltip_modified": { + "message": "修改的請求" + }, + "filtering_log_tag_tooltip_other": { + "message": "字型、pings、WebRTC、WebSocket..." + }, + "filtering_log_tag_tooltip_regular": { + "message": "未經過濾處理的請求" + }, + "filtering_log_tag_tooltip_third_party": { + "message": "第三方的請求" + }, + "filtering_log_tag_tooltip_user_rules": { + "message": "受使用者規則影響的請求" + }, + "filtering_log_tag_tooltip_xhr": { + "message": "XMLHttpRequests 和擷取請求" + }, + "filtering_log_title": { + "message": "過濾記錄" + }, + "filtering_menu_open_filters": { + "message": "自訂" + }, + "filtering_modal_add_rule": { + "message": "新增" + }, + "filtering_modal_allow_title": { + "message": "新增允許規則" + }, + "filtering_modal_applied_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "已套用的規則 | 已套用的規則" + }, + "filtering_modal_apply_domains": { + "message": "適用於所有網站" + }, + "filtering_modal_assumed_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "假設規則: | 假設的規則:" + }, + "filtering_modal_block": { + "message": "封鎖" + }, + "filtering_modal_block_again": { + "message": "再次封鎖" + }, + "filtering_modal_block_title": { + "message": "新增封鎖規則" + }, + "filtering_modal_converted_to": { + "message": "已轉換為:" + }, + "filtering_modal_cookie": { + "message": "Cookie:" + }, + "filtering_modal_copied": { + "message": "已複製" + }, + "filtering_modal_copy_to_clipboard": { + "message": "複製到剪貼簿" + }, + "filtering_modal_declarative_rule": { + "message": "DNR 規則:" + }, + "filtering_modal_element": { + "message": "元件:" + }, + "filtering_modal_exception_title": { + "message": "新增一個例外" + }, + "filtering_modal_filter": { + "message": "過濾器" + }, + "filtering_modal_filtering_status_text_desc": { + "message": "過濾狀態" + }, + "filtering_modal_hide_full_element": { + "message": "隱藏完整的元件" + }, + "filtering_modal_hide_full_rule": { + "message": "隱藏完整的規則" + }, + "filtering_modal_hide_full_url": { + "message": "隱藏完整的網址" + }, + "filtering_modal_important": { + "message": "給予該規則一個較高的優先權" + }, + "filtering_modal_info_title": { + "message": "請求細節" + }, + "filtering_modal_open_in_new_tab": { + "message": "在新的分頁中開啟" + }, + "filtering_modal_options_desc": { + "message": "選項" + }, + "filtering_modal_original_rules": { + "description": "WARNING: correct number of plural forms is required", + "message": "原始規則: | 原始規則:" + }, + "filtering_modal_patterns_desc_allow": { + "message": "什麼應被允許" + }, + "filtering_modal_patterns_desc_block": { + "message": "什麼應被封鎖" + }, + "filtering_modal_preview_request_button": { + "message": "預覽" + }, + "filtering_modal_preview_title": { + "message": "預覽" + }, + "filtering_modal_privacy": { + "message": "追蹤防護" + }, + "filtering_modal_remove_allowlist": { + "message": "從允許清單中移除" + }, + "filtering_modal_remove_param": { + "message": "移除查詢參數" + }, + "filtering_modal_remove_user": { + "message": "刪除規則" + }, + "filtering_modal_rule": { + "message": "規則:" + }, + "filtering_modal_rule_text_desc": { + "message": "規則" + }, + "filtering_modal_rules": { + "message": "規則:" + }, + "filtering_modal_show_full_element": { + "message": "顯示完整的元件" + }, + "filtering_modal_show_full_rule": { + "message": "顯示完整的規則" + }, + "filtering_modal_show_full_url": { + "message": "顯示完整的網址" + }, + "filtering_modal_source": { + "message": "來源" + }, + "filtering_modal_status_text_desc": { + "message": "狀態" + }, + "filtering_modal_status_text_error": { + "message": "無法加載預覽。請重試。" + }, + "filtering_modal_status_text_loading": { + "message": "正在載入…" + }, + "filtering_modal_third_party": { + "message": "僅對第三方的請求套用" + }, + "filtering_modal_type": { + "message": "類型" + }, + "filtering_modal_unblock": { + "message": "解除封鎖" + }, + "filtering_refresh_tab_short": { + "message": "重新整理" + }, + "filtering_refresh_tab_short_mobile": { + "message": "重新整理頁面" + }, + "filtering_table_action": { + "message": "動作" + }, + "filtering_table_empty_reload_page_desc": { + "message": "未找到任何內容。\u003Creset>停用過濾器\u003C/reset>或\u003Crefresh>重新載入頁面\u003C/refresh>以查看日誌記錄。" + }, + "filtering_table_filter": { + "message": "過濾器" + }, + "filtering_table_open_details": { + "message": "開啟細節" + }, + "filtering_table_rule": { + "message": "過濾規則" + }, + "filtering_table_source": { + "message": "來源" + }, + "filtering_table_status": { + "message": "狀態" + }, + "filtering_table_type": { + "message": "類型" + }, + "filtering_type_all": { + "message": "所有的" + }, + "filtering_type_other": { + "message": "其它" + }, + "filters_download_loading": { + "message": "當過濾器資料庫正在載入時,請稍候…" + }, + "filters_download_title": { + "message": "過濾器資料庫正在載入…" + }, + "fullscreen_user_rules_title": { + "message": "使用者規則" + }, + "group_description_adblocking": { + "message": "配置廣告封鎖以徹底地處理惱人的橫幅、彈出式視窗、視訊廣告和諸如此類。" + }, + "group_description_annoyances": { + "message": "移除彈出式視窗和其它惱人的通知,諸如 Cookie 通知。" + }, + "group_description_custom": { + "message": "創建您自己的過濾器以微調網路過濾成您的偏好。" + }, + "group_description_lang": { + "message": "不要限⁠制您自己 — 封鎖於任何語言的網站上之廣告" + }, + "group_description_miscellaneous": { + "message": "更多關於用 AdGuard 甚至進一步地配置您的網路瀏覽之設定" + }, + "group_description_security": { + "message": "保護您自己免於惡意軟體、網路釣魚和其它的線上威脅。" + }, + "group_description_social": { + "message": "隱藏討厭的「讚」/「分享」按鈕和其它的社群媒體小工具" + }, + "group_description_stealth": { + "message": "封鎖所有已知的普遍的追蹤方式,保護您的身分和敏感的個人資料免於大量的線上追蹤器。" + }, + "name": { + "message": "AdGuard 廣告封鎖器" + }, + "opera_search_permission_dont_show": { + "message": "不再顯示" + }, + "opera_search_permission_go_to_settings": { + "message": "前往「設定」" + }, + "opera_search_permission_warning": { + "message": "要封鎖搜尋廣告,請在瀏覽器設定中允許存取搜尋結果頁面。" + }, + "options_about": { + "message": "關於" + }, + "options_about_libs": { + "message": "使用的庫" + }, + "options_about_title": { + "message": "AdGuard 瀏覽器擴充功能" + }, + "options_about_update_available": { + "message": "版本 %version% 已發佈,將自動下載並安裝。" + }, + "options_about_version": { + "message": "版本" + }, + "options_acknowledgment": { + "message": "致謝" + }, + "options_add_custom_filter": { + "message": "新增自訂的過濾器" + }, + "options_add_custom_filter_modal_add_button": { + "message": "新增" + }, + "options_add_custom_filter_modal_checking_filter": { + "message": "正在檢查您的過濾器..." + }, + "options_add_custom_filter_modal_error_html_content": { + "message": "URL 返回的是網頁,而非過濾清單。請提供指向過濾檔案的直接連結。" + }, + "options_add_custom_filter_modal_error_subtitle": { + "message": "請再次嘗試或與支援聯繫" + }, + "options_add_custom_filter_modal_error_title": { + "message": "無法新增自訂的過濾器" + }, + "options_add_custom_filter_modal_filter_name": { + "message": "過濾器名稱:" + }, + "options_add_custom_filter_modal_filter_trusted": { + "message": "受信任的" + }, + "options_add_custom_filter_modal_filter_trusted_description": { + "message": "受信任的過濾器可以使用強大的規則修改器 —— 請確保使用的過濾器來自受信任的開發人員" + }, + "options_add_custom_filter_modal_title": { + "message": "新增自訂的過濾器" + }, + "options_all_limits_exceeded_warning": { + "message": "您已達到內置規則啟動上限。 瀏覽器已修改了內置規則過濾器清單。 啟用的過濾器數量已從 %expected% 個更改為 %current% 個。" + }, + "options_all_limits_exceeded_warning_browser": { + "message": "您已達到瀏覽器活動內建規則的上限。您的瀏覽器已將活動內建過濾器列表從 %expected% 減少到 %current%。" + }, + "options_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "您的瀏覽器限制了\u003Cexternal-link>某些類型的規則\u003C/external-link>。要應用所有規則,請在您的瀏覽器\u003Csettings-link>擴充功能設定\u003C/settings-link>中啟用\u003Cb>允許使用者腳本\u003C/b>。" + }, + "options_allowlist": { + "message": "允許清單" + }, + "options_allowlist_alert_invert": { + "message": "白名單已反轉。廣告僅在新增到清單中的網站上被封鎖。" + }, + "options_allowlist_alert_invert_stop": { + "message": "\u003Ca>停止反轉\u003C/a>" + }, + "options_allowlist_desc": { + "message": "AdGuard 無法封鎖清單中網站上的廣告和追蹤器" + }, + "options_allowlist_invalid_entries": { + "message": "儲存時,請僅保留網域名稱或 URL。以下條目需要修復:%entries%" + }, + "options_allowlist_invert": { + "message": "反向允許清單" + }, + "options_allowlist_invert_desc": { + "message": "僅封鎖白名單網站上的廣告與追蹤器" + }, + "options_allowlist_leave_subtitle": { + "message": "允許清單的更改將丟失" + }, + "options_allowlist_menu": { + "message": "白名單操作" + }, + "options_anonymized_usage_data_description": { + "message": "向 AdGuard 傳送擴充套件使用情況的匿名統計資料。\u003Cbutton>瞭解更多\u003C/button>" + }, + "options_anonymized_usage_data_modal_got_it_button": { + "message": "知道了" + }, + "options_anonymized_usage_data_modal_intro": { + "message": "資料包括:" + }, + "options_anonymized_usage_data_modal_list_item_buttons": { + "message": "使用者點擊的按鈕名稱" + }, + "options_anonymized_usage_data_modal_list_item_screens": { + "message": "使用者互動的畫面名稱" + }, + "options_anonymized_usage_data_modal_list_item_session_ids": { + "message": "會話 ID" + }, + "options_anonymized_usage_data_modal_privacy_note": { + "message": "這些資料會是匿名的供內部使用。我們絕不會與第三方共享。" + }, + "options_anonymized_usage_data_modal_reason": { + "message": "我們需要這些資訊來分析和改善 AdGuard 的功能。" + }, + "options_anonymized_usage_data_modal_title": { + "message": "擴充功能使用資料" + }, + "options_anonymized_usage_data_title": { + "message": "匿名傳送擴充功能使用資料" + }, + "options_antibanner_custom_filter_already_exists": { + "message": "此自訂的過濾器已被加入" + }, + "options_antibanner_custom_group": { + "message": "自訂的" + }, + "options_antibanner_custom_group_description": { + "message": "支援透過檔案或 URL 新增過濾器" + }, + "options_antibanner_rules_count": { + "message": "規則:%rules_count%" + }, + "options_antibanner_updated": { + "message": "已更新:%date%" + }, + "options_block_acceptable_ads": { + "message": "封鎖搜尋廣告和網站自我推銷" + }, + "options_block_acceptable_ads_desc": { + "message": "在搜尋結果中封鎖廣告與網站的自我推廣。\u003Ca>瞭解更多\u003C/a>" + }, + "options_block_cookies_lifetime": { + "message": "要攔截 Cookie,請將生存時間設為 0" + }, + "options_block_known_trackers_description": { + "message": "用 AdGuard 追蹤防護過濾器來封鎖追蹤器和網路分析" + }, + "options_block_known_trackers_title": { + "message": "封鎖追蹤器" + }, + "options_check_update_progress": { + "message": "正在檢查…" + }, + "options_clear_stats_confirm_modal_clear_button": { + "message": "清除" + }, + "options_clear_stats_confirm_modal_subtitle": { + "message": "所有資料使用統計將被永久刪除" + }, + "options_clear_stats_confirm_modal_title": { + "message": "清除統計資料嗎?" + }, + "options_clipboard_permission_warning": { + "message": "若要複製與貼上規則,請允許 AdGuard 訪問剪貼簿。 \u003Ca>允許\u003C/a>" + }, + "options_collect_hit_stats_desc": { + "message": "向 AdGuard 傳送匿名的廣告過濾器使用統計。\u003Ca>瞭解更多\u003C/a>" + }, + "options_collect_hit_stats_title": { + "message": "協助完善 AdGuard 過濾器" + }, + "options_coming_soon": { + "message": "即將推出" + }, + "options_confirm_modal_cancel_button": { + "message": "取消" + }, + "options_copyright": { + "message": "保留所有的權利。" + }, + "options_custom_group_allow_user_scripts_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "若要使用自訂的過濾規則,請在您的瀏覽器\u003Cb>允許使用者指令碼\u003C/b>中切換於\u003Csettings-link>擴充功能設定\u003C/settings-link>。" + }, + "options_custom_group_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "若要使用自訂的過濾器,請在您的瀏覽器的\u003Csettings-link>擴充功能設定\u003C/settings-link>中啟用\u003Cb>開發者模式\u003C/b>。" + }, + "options_desktop_app_promo_button_linux": { + "message": "獲取 AdGuard Linux 版" + }, + "options_desktop_app_promo_button_mac": { + "message": "獲取 AdGuard Mac 版" + }, + "options_desktop_app_promo_button_windows": { + "message": "獲取 AdGuard Windows 版" + }, + "options_desktop_app_promo_description": { + "message": "像 Spotify、Discord 或 Zoom 這樣的應用程式仍可能顯示廣告並追蹤您的活動。" + }, + "options_desktop_app_promo_subdescription": { + "message": "我們的桌面應用程式可以保護您免受侵擾" + }, + "options_desktop_app_promo_title": { + "message": "擴充功能僅保護瀏覽器" + }, + "options_developer_mode_required": { + "description": "Note: \u003Csettings-link> and \u003Cexternal-link> are just \u003Ca> tags, so it would be rendered as a link.", + "message": "您的瀏覽器限制了\u003Cexternal-link>某些類型的規則\u003C/external-link>。要套用所有規則,請在瀏覽器\u003Csettings-link>擴充功能設定\u003C/settings-link>中啟用\u003Cb>開發人員模式\u003C/b>。" + }, + "options_disable_webrtc_desc": { + "message": "封鎖可能導致真實 IP 地址泄露的 WebRTC 協定(即使您使用代理或 VPN 時)。\n部分即時通訊軟體、流媒體平台或遊戲可能因此無法正常運行。" + }, + "options_disable_webrtc_title": { + "message": "封鎖網路即時通訊(WebRTC)" + }, + "options_discuss": { + "message": "討論 AdGuard" + }, + "options_do_you_like_question": { + "message": "您喜歡 AdGuard 嗎?" + }, + "options_editor_close_fullscreen_button_tooltip": { + "message": "離開視窗模式" + }, + "options_editor_indicator_saved": { + "message": "已儲存" + }, + "options_editor_indicator_saving": { + "message": "正在儲存…" + }, + "options_editor_leave_cancel": { + "message": "返回編輯" + }, + "options_editor_leave_confirm": { + "message": "離開" + }, + "options_editor_leave_title": { + "message": "不儲存就離開?" + }, + "options_editor_open_fullscreen_button_tooltip": { + "message": "在新的視窗中開啟編輯器" + }, + "options_editor_save": { + "message": "儲存" + }, + "options_editor_save_error": { + "message": "儲存失敗,請重試或聯繫支援人員。" + }, + "options_empty_custom_filter": { + "message": "您尚無任何自訂的過濾器" + }, + "options_enable_autodetect_filter": { + "message": "自動地啟動最合適的過濾器" + }, + "options_enable_autodetect_filter_desc": { + "message": "檢測網站的語言並啟動對應的過濾器" + }, + "options_export_settings": { + "message": "匯出設定" + }, + "options_filters": { + "message": "過濾器" + }, + "options_filters_annoyances_consent_description": { + "message": "您即將啟用一個或多個煩人過濾器。此類過濾器會遮蔽與網站內容無關、或雖相關但影響使用者體驗的干擾性元素。請注意:網站運營者可能視其為核心要素,遮蔽後可能導致以下後果:違反該網站使用條款;部分功能不可用或執行異常。您理解並同意,使用本產品存取網站時需獨立承擔遵守各網站使用條款的責任,AdGuard 不對您的合規行為承擔法律責任。" + }, + "options_filters_annoyances_consent_enable_button": { + "message": "啟用" + }, + "options_filters_annoyances_consent_filter_homepage_tooltip": { + "message": "首頁" + }, + "options_filters_annoyances_consent_filter_policy": { + "message": "有關 AdGuard 惱人廣告過濾器的封鎖詳情,請參閱\u003Ca>過濾器政策\u003C/a>" + }, + "options_filters_annoyances_consent_question": { + "message": "啟用這些過濾器?" + }, + "options_filters_annoyances_consent_title": { + "message": "在啟用「惱人的事物過濾器」前請仔細閱讀" + }, + "options_filters_back_button": { + "message": "返回" + }, + "options_filters_empty_title": { + "message": "沒找到什麼" + }, + "options_filters_enabled": { + "message": "已啟用:" + }, + "options_filters_enabled_and_last": { + "message": "%enabled% 和 %last%" + }, + "options_filters_enabled_and_more": { + "message": "%enabled% 和 %more% 更多" + }, + "options_filters_enabled_per_group": { + "message": "已啟用:%current%/%total%" + }, + "options_filters_filter_link": { + "message": "前往首頁" + }, + "options_filters_filter_tags": { + "message": "過濾標籤" + }, + "options_filters_filter_trusted_tag_desc": { + "message": "您選擇去信任此過濾器了。" + }, + "options_filters_filter_updated": { + "message": "已更新於:" + }, + "options_filters_filter_version": { + "message": "版本:" + }, + "options_filters_info_mv3_total_rules": { + "message": "總規則數:%num%" + }, + "options_filters_last_checked": { + "message": "上次檢查時間:%date%" + }, + "options_filters_list_search_display_option_all_filters": { + "message": "所有的過濾器" + }, + "options_filters_list_search_display_option_disabled": { + "message": "已禁用的" + }, + "options_filters_list_search_display_option_enabled": { + "message": "已啟用的" + }, + "options_filters_no_enabled": { + "message": "無已啟用的過濾器" + }, + "options_filters_of_group": { + "message": "\"%groupName%\" 組的過濾器" + }, + "options_filters_search": { + "message": "搜尋" + }, + "options_filters_search_filter": { + "message": "搜尋過濾器" + }, + "options_first_party_block_cookies_warning": { + "message": "封鎖這些 Cookie 可能會造成某些網站無法正常運作。" + }, + "options_first_party_desc": { + "message": "透過限制第一方 Cookie 的存留時間,防止網站記住您的個人資料(包括登入憑據和語言偏好設定)。" + }, + "options_first_party_title": { + "message": "刪除第一方 Cookie(不推薦)" + }, + "options_general_settings": { + "message": "一般的" + }, + "options_github": { + "message": "GitHub" + }, + "options_hide_referrer_desc": { + "message": "防止第三方知道您訪問什麼網站。" + }, + "options_hide_referrer_title": { + "message": "對第三方隱藏 Referer" + }, + "options_hide_search_queries_desc": { + "message": "隱藏通過搜尋引擎搜尋的網站查詢。" + }, + "options_hide_search_queries_title": { + "message": "隱藏搜尋查詢" + }, + "options_import_configuration_applying_subtitle": { + "message": "使用匯入的設定替換當前設定。匯入期間將禁用過濾。" + }, + "options_import_configuration_applying_title": { + "message": "正在匯入…" + }, + "options_import_configuration_confirm_button": { + "message": "匯入" + }, + "options_import_configuration_confirm_subtitle": { + "message": "匯入的設定將取代您當前設定。其他設定不會受影響。" + }, + "options_import_configuration_confirm_title": { + "message": "匯入設定" + }, + "options_import_configuration_error_button": { + "message": "關閉" + }, + "options_import_configuration_error_subtitle": { + "message": "請檢查匯入連線並重試。如果沒有幫助,請聯繫支援人員。" + }, + "options_import_configuration_error_title": { + "message": "無法匯入設定" + }, + "options_import_configuration_success_button": { + "message": "關閉" + }, + "options_import_configuration_success_subtitle": { + "message": "設定成功匯入" + }, + "options_import_configuration_success_title": { + "message": "全部完成" + }, + "options_import_settings": { + "message": "匯入設定" + }, + "options_invert_allowlist_confirm_modal_confirm_button": { + "message": "反向" + }, + "options_invert_allowlist_confirm_modal_subtitle": { + "message": "僅允許清單中的網站會封鎖廣告和追蹤器" + }, + "options_invert_allowlist_confirm_modal_title": { + "message": "反向允許清單?" + }, + "options_leave_feedback": { + "message": "留下回饋意見" + }, + "options_lifetime_minutes": { + "message": "生存時間(以分鐘計)" + }, + "options_limits_warning_dynamic_regex_rules": { + "message": "您已達到使用者新增正規表達式規則的限制。 %maximum% 個正規表達式規則中的 %current% 個已啟用。" + }, + "options_limits_warning_dynamic_regex_rules_hint": { + "message": "已達到使用者新增正規表達式規則的上限。%maximum% 個規則(共 %current% 個)已啟用。要新增新的正規表達式規則,請刪除一些已有的規則。" + }, + "options_limits_warning_dynamic_rules": { + "message": "您已達到使用者新增規則的限制。 %maximum% 個規則中的 %current% 個已啟用。" + }, + "options_limits_warning_dynamic_rules_hint": { + "message": "已達到使用者新增規則的上限。%maximum% 個規則(共 %current% 個)已啟用。要新增新規則,請刪除一些已有的規則。" + }, + "options_limits_warning_dynamic_unsafe_rules": { + "message": "您已達到使用者新增不安全規則的限制。 %current% 個不安全規則中的 %maximum% 個已啟用。" + }, + "options_limits_warning_static_filters": { + "message": "您已達到內置過濾器的限制。 %maximum% 個過濾器(共 %current% 個)已啟用。要啟動新規則,請禁用一些內置過濾器。" + }, + "options_limits_warning_static_filters_browser": { + "message": "您已達到瀏覽器內建過濾器的啟用上限,當前啟用 %current% 個,上限 %maximum% 個。要啟用新過濾器,請先關閉部分內建過濾器。" + }, + "options_limits_warning_static_regex_rules": { + "message": "您已達到內置正規表達式規則的限制。 %maximum% 個正規表達式規則(共 %current% 個)已啟用。要啟動新規則,請禁用一些內置過濾器。" + }, + "options_limits_warning_static_regex_rules_no_counter": { + "message": "已達到啟用的內建正規表達式規則上限。要啟用新規則,請關閉一些內建過濾器。" + }, + "options_limits_warning_static_rules": { + "message": "您已達到內置規則的限制。 %maximum% 個規則(共 %current% 個)已啟用。要啟動新規則,請禁用一些內置過濾器。" + }, + "options_limits_warning_static_rules_browser": { + "message": "您已達到瀏覽器中已啟用內建規則的上限。要啟用新規則,請關閉一些內建過濾器。" + }, + "options_loader_applying_changes": { + "message": "正在套用更改…" + }, + "options_miscellaneous_settings": { + "message": "額外的設定" + }, + "options_modified_first_party_cookie": { + "message": "第一方的 cookie 被修飾" + }, + "options_modified_third_party_cookie": { + "message": "第三方的 cookie 被修飾" + }, + "options_nav_better_than_extension": { + "message": "為什麼 AdGuard 程式比擴充功能更好?" + }, + "options_nav_compare": { + "message": "比較" + }, + "options_navigation": { + "message": "導航" + }, + "options_open_changelog": { + "message": "變更記錄" + }, + "options_open_log": { + "message": "開啟過濾記錄" + }, + "options_popup_call_to_action": { + "message": "輸入該過濾器之有效的網址或檔案路徑到上面的欄位裡。" + }, + "options_popup_check_false_description": { + "message": "當新增您自訂的過濾器時出錯。" + }, + "options_popup_check_false_title": { + "message": "錯誤" + }, + "options_popup_checking_filter": { + "message": "正在檢查您的過濾器" + }, + "options_popup_description": { + "message": "您將訂閱該過濾器。" + }, + "options_popup_filter_description": { + "message": "說明:" + }, + "options_popup_filter_homepage": { + "message": "首頁:" + }, + "options_popup_filter_rules_count": { + "message": "規則總數:" + }, + "options_popup_filter_title": { + "message": "標題:" + }, + "options_popup_filter_url": { + "message": "網址" + }, + "options_popup_filter_version": { + "message": "版本:" + }, + "options_popup_import_error_file_description": { + "message": "某事物出現問題。" + }, + "options_popup_import_error_required_privacy_permission": { + "message": "要匯入此設定檔,允許 AdGuard 更改您隱私相關的設定。" + }, + "options_popup_import_error_title": { + "message": "無法匯入設定" + }, + "options_popup_import_settings_wrong_file_ext": { + "message": "該副檔名必須為 %extension%" + }, + "options_popup_import_success_title": { + "message": "設定已匯入" + }, + "options_popup_next_button": { + "message": "下一步" + }, + "options_popup_subscribe_button": { + "message": "訂閱" + }, + "options_popup_title_placeholder": { + "message": "輸入過濾器名稱" + }, + "options_popup_trusted_filter_description": { + "message": "受信任的過濾器可使用在錯誤的手中可能是危險的之強大的過濾規則修飾語。除非您完全地信任它,否則勿勾選此核取框。" + }, + "options_popup_trusted_filter_title": { + "message": "受信任的" + }, + "options_popup_try_again_button": { + "message": "再次嘗試" + }, + "options_popup_update_error": { + "message": "未能取得更新。請稍後再試。" + }, + "options_popup_update_filter": { + "message": "已被更新。" + }, + "options_popup_update_filters": { + "message": "已被更新。" + }, + "options_popup_update_not_found": { + "message": "您的過濾器已是最新版本" + }, + "options_popup_update_title_error": { + "message": "更新過濾器出錯" + }, + "options_popup_updating_filters": { + "message": "正在更新過濾器..." + }, + "options_popup_url_placeholder": { + "message": "輸入網址或檔案路徑" + }, + "options_popup_url_title": { + "message": "新的過濾器訂閱" + }, + "options_popup_version_update_changelog_text": { + "message": "在此版本中有什麼新事物嗎?" + }, + "options_popup_version_update_description_major": { + "message": "這是一項帶來了許多新的功能和改進之重大的擴充功能升級。" + }, + "options_popup_version_update_description_minor": { + "message": "此版本主要地包含程式錯誤修正和小改進。" + }, + "options_popup_version_update_disable_notification": { + "message": "禁用通知" + }, + "options_popup_version_update_offer": { + "message": "您知道 AdGuard 功能不被限於此瀏覽器嗎?" + }, + "options_popup_version_update_offer_button_text": { + "message": "了解更多" + }, + "options_popup_version_update_title_text": { + "message": "AdGuard 擴充功能已被更新至版本 %current_version%" + }, + "options_prevent_webrtc_leaks_desc": { + "message": "讓 WebRTC 採用更嚴格的 IP 位址策略,幫助您在使用代理或 VPN 時隱藏真實 IP 位址。" + }, + "options_prevent_webrtc_leaks_title": { + "message": "防止透過 WebRTC 洩漏 IP 位址" + }, + "options_privacy": { + "message": "追蹤防護" + }, + "options_privacy_desc": { + "message": "保護線上活動和個人數據免受網路追蹤器的侵害" + }, + "options_privacy_policy": { + "message": "隱私政策" + }, + "options_privacy_title": { + "message": "追蹤防護" + }, + "options_rate_us_cta": { + "message": "評分" + }, + "options_remove_client_data_desc": { + "message": "阻止 Google Chrome 傳送其版本資訊到 Google 域名並修改此資訊" + }, + "options_remove_client_data_title": { + "message": "移除 X-Client-Data 標頭" + }, + "options_remove_filter_confirm_modal_ok_button": { + "message": "移除" + }, + "options_remove_filter_confirm_modal_title": { + "message": "移除此過濾器嗎?" + }, + "options_report_bug": { + "message": "報告程式錯誤" + }, + "options_reset_settings": { + "message": "重置設定" + }, + "options_reset_settings_confirm_modal_clear_button": { + "message": "重置" + }, + "options_reset_settings_confirm_modal_subtitle": { + "message": "所有設定將重設為預設值" + }, + "options_reset_settings_confirm_modal_title": { + "message": "重置設定嗎?" + }, + "options_reset_settings_done": { + "message": "設定已被重置" + }, + "options_reset_settings_error": { + "message": "當重置設定時出錯" + }, + "options_reset_stats": { + "message": "清除統計資料" + }, + "options_reset_stats_done": { + "message": "統計資料已被重置" + }, + "options_rule_limits": { + "message": "規則限制" + }, + "options_rule_limits_description": { + "message": "Chrome 瀏覽器限制可套用的規則數量" + }, + "options_rule_limits_dynamic": { + "message": "動態規則" + }, + "options_rule_limits_dynamic_regex": { + "message": "正規表達式規則(包含在使用者新增規則中)" + }, + "options_rule_limits_dynamic_unsafe": { + "description": "Note: First dollar sign is used to escape the second one, so eventually only one dollar sign will be displayed", + "message": "不安全的動態規則(用於某些進階修飾元,例如 $$redirect 或 $$cookie),包含在使用者新增的規則中" + }, + "options_rule_limits_dynamic_user_rules": { + "message": "使用者新增的規則,例如\u003Cuser_rules>使用者規則\u003C/user_rules>、 \u003Callowlist>已允許的網站\u003C/allowlist>和\u003Ccustom_filters>自訂的過濾器\u003C/custom_filters>。" + }, + "options_rule_limits_dynamic_user_rules_no_custom_filters": { + "message": "使用者新增的規則,例如\u003Cuser_rules>使用者規則\u003C/user_rules>和\u003Callowlist>已允許的網站\u003C/allowlist>" + }, + "options_rule_limits_numbers": { + "message": "%current% 個,共 %maximum% 個" + }, + "options_rule_limits_static_rules": { + "message": "靜態規則" + }, + "options_rule_limits_static_rules_all": { + "message": "\u003Ca>內置過濾器\u003C/a>的規則" + }, + "options_rule_limits_static_rules_regex": { + "message": "正規表達式規則(包含在上述內容中)" + }, + "options_rule_limits_static_rulesets": { + "message": "靜態規則集" + }, + "options_rule_limits_static_rulesets_builtin": { + "message": "\u003Ca>內建過濾器\u003C/a>,諸如封鎖惱人的事物或特定語言的過濾器" + }, + "options_rule_limits_warning_actions_close_warning_multiple_filters": { + "message": "選項 3:如果您對已啟用的預設過濾器感到滿意,請「\u003Ca>關閉此警告\u003C/a>」。" + }, + "options_rule_limits_warning_actions_close_warning_one_filter": { + "message": "選項 3:如果您對已啟用的預設過濾器感到滿意,請「\u003Ca>關閉此警告\u003C/a>」。" + }, + "options_rule_limits_warning_actions_delete_filters": { + "message": "選項 1:從瀏覽器中刪除不必要的廣告封鎖擴充套件。要重新啟用「更新前已啟用的過濾器」部分中提到的過濾器,請點選「\u003Ca>重新啟用過濾器\u003C/a>」。" + }, + "options_rule_limits_warning_actions_install_app": { + "message": "選項 2:安裝 AdGuard 廣告封鎖程式。該應用程式沒有過濾規則的數量限制。\u003Ca>取得 AdGuard 廣告封鎖程式\u003C/a>" + }, + "options_rule_limits_warning_actions_title": { + "message": "您可以執行的操作" + }, + "options_rule_limits_warning_explanation_description": { + "message": "根據 Manifest V3,在更新或新增新擴充功能後,已超過內建規則的啟用上限。根據 Chrome 瀏覽器的反應,除了預設規則,它停用了該擴充功能的所有內建過濾器。" + }, + "options_rule_limits_warning_explanation_title": { + "message": "出現了什麼問題?" + }, + "options_rule_limits_warning_list_enabled_before_title": { + "message": "更新前已啟用的過濾器" + }, + "options_rule_limits_warning_list_enabled_now_title": { + "message": "已啟用的過濾器" + }, + "options_rule_limits_warning_title": { + "message": "瀏覽器已修改啟用的過濾器清單" + }, + "options_rule_limits_warning_variant_b_desktop_app_description": { + "message": "解除規則上限,獲得適用於所有瀏覽器的增強保護。" + }, + "options_rule_limits_warning_variant_b_desktop_app_title": { + "message": "安裝桌面應用程式" + }, + "options_rule_limits_warning_variant_b_go_to_filters": { + "message": "至過濾器" + }, + "options_rule_limits_warning_variant_b_manage_extensions": { + "message": "管理擴充功能" + }, + "options_rule_limits_warning_variant_b_remove_blockers_description": { + "message": "瀏覽器擴充功能共享相同的規則上限。移除其他廣告封鎖程式可能為 AdGuard 瀏覽器擴充功能釋放更多規則。" + }, + "options_rule_limits_warning_variant_b_remove_blockers_title": { + "message": "移除其他廣告封鎖程式" + }, + "options_rule_limits_warning_variant_b_review_filters_description": { + "message": "啟用所需的過濾器。特定語言和隱私過濾器可能使用大量規則。" + }, + "options_rule_limits_warning_variant_b_review_filters_title": { + "message": "檢查可用的過濾器" + }, + "options_rule_limits_warning_variant_b_subtitle": { + "message": "您可以採取以下措施" + }, + "options_rule_limits_warning_variant_b_title_limit_reached": { + "message": "已達上限,部分過濾器已停用。" + }, + "options_rule_syntax": { + "message": "規則語法" + }, + "options_safebrowsing_enabled": { + "message": "網路釣魚和惡意軟體防護" + }, + "options_safebrowsing_enabled_desc": { + "message": "透過 AdGuard 瀏覽安全模組警告惡意與釣魚網站。\u003Ca>瞭解更多\u003C/a>" + }, + "options_select_theme": { + "message": "主題" + }, + "options_select_update_period_12h": { + "message": "12 小時" + }, + "options_select_update_period_1h": { + "message": "1 小時" + }, + "options_select_update_period_24h": { + "message": "24 小時" + }, + "options_select_update_period_48h": { + "message": "48 小時" + }, + "options_select_update_period_6h": { + "message": "6 小時" + }, + "options_select_update_period_default": { + "message": "預設" + }, + "options_select_update_period_disabled": { + "message": "已禁用" + }, + "options_send_not_track_desc": { + "message": "向您瀏覽的網站傳送 \u003Cgpc>Global Privacy Control\u003C/gpc>> 和 \u003Cdnt>Do Not Track\u003C/dnt> 信號" + }, + "options_send_not_track_title": { + "message": "要求網站不追蹤您" + }, + "options_set_update_interval": { + "message": "自動更新的過濾器" + }, + "options_set_update_interval_desc": { + "message": "保持過濾器更新,以實現更高效的廣告封鎖" + }, + "options_settings": { + "message": "AdGuard 設定" + }, + "options_share_settings": { + "message": "分享設定" + }, + "options_show_adguard_full_version_title": { + "message": "顯示關於 AdGuard 完整的版本之資訊" + }, + "options_show_app_updated_notification": { + "message": "通知有關擴充功能更新" + }, + "options_show_blocked_ads_count_title": { + "message": "於 AdGuard 擴充功能圖示上顯示已封鎖的廣告之數量" + }, + "options_show_context_menu_title": { + "message": "新增 AdGuard 項目至瀏覽器之內容功能表" + }, + "options_site": { + "message": "官方的網站" + }, + "options_skip_to_main_content": { + "message": "跳至主要內容" + }, + "options_stealth_general_title": { + "message": "一般的" + }, + "options_stealth_miscellaneous_title": { + "message": "雜項的" + }, + "options_stealth_tracking_methods_title": { + "message": "追蹤方式" + }, + "options_strip_tracking_params_description": { + "message": "使用 AdGuard 網址追蹤過濾器從網頁網址中移除追蹤參數" + }, + "options_strip_tracking_params_title": { + "message": "從網址中移除追蹤參數" + }, + "options_stripped_tracking_parameters": { + "message": "追蹤參數被移除" + }, + "options_theme_selector_dark": { + "message": "深色" + }, + "options_theme_selector_light": { + "message": "淺色" + }, + "options_theme_selector_system": { + "message": "系統預設" + }, + "options_third_party_block_cookies_warning": { + "message": "如果封鎖這些 Cookie,您可能需要重新登入部分網站或面臨其他 Cookie 相關的問題。" + }, + "options_third_party_desc": { + "message": "通過限制第三方 Cookie 的 TTL 來阻止廣告商在多個頁面上的追蹤。" + }, + "options_third_party_title": { + "message": "刪除第三方 Cookie" + }, + "options_update_antibanner_filters": { + "message": "檢查過濾器更新" + }, + "options_use_optimized_filters": { + "message": "使用已最佳化的過濾器" + }, + "options_use_optimized_filters_desc": { + "message": "使用較簡短版本的過濾器,僅包含最受歡迎的規則,以節省流量。更適用於行動瀏覽器" + }, + "options_user_rules_clear_search": { + "message": "清除搜尋" + }, + "options_user_rules_create_rule": { + "message": "創建規則" + }, + "options_user_rules_delete_all": { + "message": "全部刪除" + }, + "options_user_rules_delete_all_confirm_subtitle": { + "message": "將永久刪除所有使用者規則" + }, + "options_user_rules_delete_all_confirm_title": { + "message": "全部刪除?" + }, + "options_user_rules_delete_all_success": { + "message": "所有使用者規則已刪除" + }, + "options_user_rules_delete_rule": { + "message": "刪除規則" + }, + "options_user_rules_deleted_notification": { + "message": "使用者規則已刪除:" + }, + "options_user_rules_description_key": { + "message": "您用於封鎖和解除封鎖廣告或整個網站的規則" + }, + "options_user_rules_edit_rule": { + "message": "編輯規則" + }, + "options_user_rules_editor_stub_go_to_editor_button": { + "message": "前往編輯器" + }, + "options_user_rules_editor_stub_subtitle": { + "message": "關閉後規則將顯示在此處" + }, + "options_user_rules_editor_stub_title": { + "message": "編輯器在另一個視窗中開啟" + }, + "options_user_rules_empty_placeholder": { + "message": "暫無規則" + }, + "options_user_rules_highlight_loading": { + "description": "Shown in the user rules list while syntax highlighting initializes.", + "message": "正在突顯規則…" + }, + "options_user_rules_import_error": { + "message": "使用者規則匯入失敗。請重試。" + }, + "options_user_rules_import_success": { + "message": "使用者規則匯入成功" + }, + "options_user_rules_menu": { + "message": "使用者規則操作" + }, + "options_user_rules_no_match": { + "message": "沒找到什麼" + }, + "options_user_rules_search_placeholder": { + "message": "搜尋" + }, + "options_user_rules_switch_to_editor": { + "message": "切換到編輯器檢視" + }, + "options_user_rules_switch_to_list": { + "message": "切換到清單檢視" + }, + "options_user_rules_undo": { + "message": "復原" + }, + "options_userfilter": { + "message": "使用者規則" + }, + "options_userfilter_description_key": { + "message": "您可於此新增您自己的規則。對於熟悉 HTML/CSS 之進階的用戶,此選項是被建議的。閱讀\u003Ca>過濾器規則導覽\u003C/a>以學習如何撰寫您自己的過濾器規則。" + }, + "options_userfilter_export": { + "message": "匯出" + }, + "options_userfilter_import": { + "message": "匯入" + }, + "options_userfilter_leave_subtitle": { + "message": "規則的更改將丟失" + }, + "options_userfilter_line_break": { + "message": "換行" + }, + "options_userfilter_line_break_off": { + "message": "換行:已禁用" + }, + "options_userfilter_line_break_on": { + "message": "換行:已啟用" + }, + "options_userfilter_subtitle_key": { + "message": "允許新增自訂的過濾規則" + }, + "popup_abuse_site": { + "message": "報告問題" + }, + "popup_adguard_footer_title": { + "message": "保護行動裝置" + }, + "popup_adguard_for_android": { + "message": "AdGuard for Android" + }, + "popup_adguard_for_ios": { + "message": "AdGuard for iOS" + }, + "popup_block_site_ads_option": { + "message": "手動封鎖廣告" + }, + "popup_get_system_wide_protection": { + "message": "取得全系統的防護" + }, + "popup_header_cta_link": { + "message": "如何加強保護" + }, + "popup_header_update_filters": { + "message": "檢查過濾器更新" + }, + "popup_limits_exceeded_warning": { + "message": "瀏覽器修改了啟用的內建過濾器的清單。" + }, + "popup_open_filtering_log": { + "message": "開啟過濾記錄" + }, + "popup_open_settings": { + "message": "開啟 AdGuard 設定" + }, + "popup_protection_button": { + "message": "AdGuard 防護" + }, + "popup_reset_page_user_rules": { + "message": "刪除用於此網站上的使用者規則" + }, + "popup_resume_protection_button": { + "message": "恢復" + }, + "popup_security_report": { + "message": "檢查網站安全性" + }, + "popup_site_exception_information": { + "message": "過濾被禁用,因為它可能妨礙此網站的運作。" + }, + "popup_site_filtering_state_disabled": { + "message": "防護被禁用" + }, + "popup_site_filtering_state_disabling": { + "message": "正在禁用防護…" + }, + "popup_site_filtering_state_enabled": { + "message": "防護被啟用" + }, + "popup_site_filtering_state_enabling": { + "message": "正在啟用防護…" + }, + "popup_site_filtering_state_loading": { + "message": "正在載入…" + }, + "popup_site_filtering_state_paused": { + "message": "防護被暫停" + }, + "popup_site_filtering_state_pausing": { + "message": "正在暫停防護…" + }, + "popup_site_filtering_state_resuming": { + "message": "正在恢復防護…" + }, + "popup_site_filtering_state_secure_page": { + "message": "安全的頁面" + }, + "popup_site_filtering_state_subtitle_all_websites": { + "message": "對於所有的網站" + }, + "popup_statistics_all_categories": { + "message": "所有的" + }, + "popup_statistics_category_advertising": { + "message": "廣告" + }, + "popup_statistics_category_cdn": { + "message": "內容傳遞網路(CDN)" + }, + "popup_statistics_category_label": { + "message": "統計資料類別" + }, + "popup_statistics_category_other": { + "message": "其它的" + }, + "popup_statistics_category_social_media": { + "message": "社群媒體" + }, + "popup_statistics_category_trackers": { + "message": "追蹤器" + }, + "popup_statistics_months_apr": { + "message": "4 月" + }, + "popup_statistics_months_aug": { + "message": "8 月" + }, + "popup_statistics_months_dec": { + "message": "12 月" + }, + "popup_statistics_months_feb": { + "message": "2 月" + }, + "popup_statistics_months_jan": { + "message": "1 月" + }, + "popup_statistics_months_jul": { + "message": "7 月" + }, + "popup_statistics_months_jun": { + "message": "6 月" + }, + "popup_statistics_months_mar": { + "message": "3 月" + }, + "popup_statistics_months_may": { + "message": "5 月" + }, + "popup_statistics_months_nov": { + "message": "11 月" + }, + "popup_statistics_months_oct": { + "message": "10 月" + }, + "popup_statistics_months_sep": { + "message": "9 月" + }, + "popup_statistics_time_day": { + "message": "24 小時" + }, + "popup_statistics_time_label": { + "message": "統計時段" + }, + "popup_statistics_time_month": { + "message": "30 日" + }, + "popup_statistics_time_week": { + "message": "7 日" + }, + "popup_statistics_time_year": { + "message": "一年" + }, + "popup_statistics_total": { + "message": "總計" + }, + "popup_statistics_week_days_fri": { + "message": "週五" + }, + "popup_statistics_week_days_mon": { + "message": "週一" + }, + "popup_statistics_week_days_sat": { + "message": "週六" + }, + "popup_statistics_week_days_sun": { + "message": "週日" + }, + "popup_statistics_week_days_thu": { + "message": "週四" + }, + "popup_statistics_week_days_tue": { + "message": "週二" + }, + "popup_statistics_week_days_wed": { + "message": "週三" + }, + "popup_switch_button": { + "message": "當前網站的保護" + }, + "popup_tab_actions": { + "message": "動作" + }, + "popup_tab_blocked_all_count": { + "message": "總計封鎖:%num%" + }, + "popup_tab_blocked_count": { + "message": "已封鎖的:%num%" + }, + "popup_tab_current_website": { + "message": "當前網站" + }, + "popup_tab_statistics": { + "message": "統計資料" + }, + "popup_tabs": { + "message": "分頁" + }, + "popup_tooltip_loading": { + "message": "正在載入…" + }, + "popup_tooltip_protection_disabled": { + "message": "防護被禁用" + }, + "popup_tooltip_protection_enabled": { + "message": "防護被啟用" + }, + "popup_tooltip_some_rules_not_applied": { + "message": "部分規則未套用" + }, + "popup_tooltip_update_available": { + "message": "有可用更新" + }, + "post_install_loading": { + "message": "正在加載延伸功能..." + }, + "short_name": { + "message": "AdGuard" + }, + "snack_on_websites_limits_exceeded_warning": { + "message": "AdGuard 瀏覽器擴充功能已超出規則數量限制。請檢查過濾器並禁用不需要的過濾器。" + }, + "text_collapser_hide_default": { + "message": "隱藏全文" + }, + "text_collapser_show_default": { + "message": "顯示全文" + }, + "update_available_desc": { + "message": "為確保有效封鎖廣告,請保持您的擴充套件程式和過濾規則處於最新狀態。" + }, + "update_available_title": { + "message": "有可用更新" + }, + "update_available_update_btn": { + "message": "更新" + }, + "update_check": { + "message": "檢查更新" + }, + "update_checking_in_progress": { + "message": "正在檢查更新…" + }, + "update_failed_text": { + "message": "無法更新" + }, + "update_failed_try_again_btn": { + "message": "再次嘗試" + }, + "update_installing_in_progress_desc": { + "message": "擴充套件將在更新後重新啟動" + }, + "update_installing_in_progress_title": { + "message": "正在更新擴充功能和過濾器..." + }, + "update_not_needed": { + "message": "擴充套件程式與過濾規則已是最新版本。" + }, + "update_success_text": { + "message": "擴充套件程式及過濾規則更新成功。" + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-container.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-container.css new file mode 100644 index 0000000..4397a7f --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-container.css @@ -0,0 +1,30 @@ +/** + * styles for alert popup container + * should be injected into web page to set the alert container position on page properly + */ + +.adguard-alert-iframe { + min-width: 360px; + max-width: calc(100vw - 44px); + border: none; + position: fixed; + z-index: 1000; + top: auto; + right: 22px; + bottom: 8px; + left: auto; + display: block; + margin: 0; + color-scheme: light dark; + visibility: hidden; +} + +@media (max-width: 640px) { + .adguard-alert-iframe { + width: auto; + max-width: none; + right: 22px; + bottom: 22px; + left: 22px; + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-popup.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-popup.css new file mode 100644 index 0000000..9f24f4b --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/alert-popup.css @@ -0,0 +1,297 @@ +/** + * This file is part of AdGuard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension). + * + * AdGuard Browser Extension is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AdGuard Browser Extension is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AdGuard Browser Extension. If not, see . + */ + +:root { + color-scheme: light dark; +} + +html { + height: 100%; + display: flex; + align-items: flex-end; + overflow-y: auto; + scrollbar-width: none; + -ms-overflow-style: none; +} + +/* Update popup shares this file; do not inherit snack bottom alignment. */ +html:has(.adguard-update-popup) { + align-items: flex-start; +} + +body { + margin: 0; + padding: 0; + width: 100%; + display: flex; + flex-direction: column; + gap: 8px; + overflow-y: auto; + scrollbar-width: none; + -ms-overflow-style: none; +} + +html::-webkit-scrollbar, +body::-webkit-scrollbar { + width: 0; + height: 0; +} + +@keyframes notify-show { + 0% { + transform: translateY(-100%); + opacity: 0; + } + + 100% { + transform: translateY(0); + opacity: 1; + } +} + +@keyframes notify-hide { + 0% { + transform: translateY(0); + opacity: 1; + } + + 100% { + transform: translateY(100%); + opacity: 0; + } +} + +.adguard-popup-alert { + font-family: 'Roboto Flex', system-ui; + font-weight: 400; + display: flex; + align-items: flex-start; + box-sizing: border-box; + width: 100%; + padding: 12px; + border-radius: 4px; + color: #ffffff; + background-color: #000000; + animation: notify-show 0.3s ease-in; +} + +.adguard-popup-alert--closing { + animation: notify-hide 0.3s ease-out forwards; +} + +.adguard-popup-alert__content { + width: 100%; +} + +.adguard-popup-alert__title, +.adguard-popup-alert__desc { + font-size: 16px; + font-weight: 400; + line-height: 1.3; + text-align: left; + word-break: break-word; +} + +.adguard-popup-alert__title { + margin: 0 0 4px; + font-weight: 700; +} + +.adguard-popup-alert__desc { + margin: 0; +} + +.adguard-popup-alert__close { + width: 24px; + height: 24px; + flex-shrink: 0; + border: none; + padding: 0; + cursor: pointer; + background-color: transparent; + background-repeat: no-repeat; + background-position: center; + background-size: 24px; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath stroke='%23a4a4a4' d='M6.42857 6.42857L17.6043 17.6043' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath stroke='%23a4a4a4' d='M6.42871 17.5714L17.6045 6.39563' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); +} + +.adguard-update-popup { + font-family: 'Roboto Flex', system-ui; + font-weight: 600; + color: #000000; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + -webkit-box-shadow: 0 0 5px 2px rgba(33, 33, 33, 0.2); + box-shadow: 0 0 5px 2px rgba(33, 33, 33, 0.2); + background-color: #fff; + padding: 25px; + position: relative; +} + +.adguard-update-popup--promo { + min-height: 460px; +} + +.adguard-update-popup__close { + width: 24px; + height: 24px; + cursor: pointer; + position: absolute; + top: 25px; + right: 25px; + background-repeat: no-repeat; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath stroke='%23333333' d='M6.42857 6.42857L17.6043 17.6043' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath stroke='%23333333' d='M6.42871 17.5714L17.6045 6.39563' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); +} + +.adguard-update-popup__logo { + width: 87px; + height: 87px; + background-repeat: no-repeat; + margin-bottom: 25px; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI4NnB4IiBoZWlnaHQ9Ijg3cHgiIHZpZXdCb3g9IjAgMCA4NiA4NyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCA4PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlBhZ2UtMiIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iQXJ0Ym9hcmQtQ29weS00IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTIyLjAwMDAwMCwgLTQxLjAwMDAwMCkiPiAgICAgICAgICAgIDxnIGlkPSJHcm91cC04IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMDAuMDAwMDAwLCAyNC4wMDAwMDApIj4gICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTciIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLjMwODU5NCwgNTguMTc1NzgxKSByb3RhdGUoLTMzMC4wMDAwMDApIHRyYW5zbGF0ZSgtNjAuMzA4NTk0LCAtNTguMTc1NzgxKSB0cmFuc2xhdGUoMTQuODA4NTk0LCAxNy42NzU3ODEpIiBzdHJva2U9IiM2OEJDNzEiIHN0cm9rZS13aWR0aD0iNSI+ICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTkuMzkyNDkxMyw2NS41MTgyMDE5IEMyNi43NDcwMzg1LDc0LjU1MDc4NDEgMzcuOTU1NjA1OCw4MC4zMjAzMTI1IDUwLjUxMTcxODgsODAuMzIwMzEyNSBDNzIuNjYzNTE0OSw4MC4zMjAzMTI1IDkwLjYyMTA5MzgsNjIuMzYyNzMzNiA5MC42MjEwOTM4LDQwLjIxMDkzNzUgQzkwLjYyMTA5MzgsMTguMDU5MTQxNCA3Mi42NjM1MTQ5LDAuMTAxNTYyNSA1MC41MTE3MTg4LDAuMTAxNTYyNSBDMjguMzU5OTIyNiwwLjEwMTU2MjUgMTAuNDAyMzQzOCwxOC4wNTkxNDE0IDEwLjQwMjM0MzgsNDAuMjEwOTM3NSIgaWQ9Ik92YWwtMiI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIGlkPSJMaW5lLTIiIHBvaW50cz0iMC42MjY5NTMxMjUgMzEuNDE2MDE1NiAxMC41IDQyLjUgMjAuOTk0MTQwNiAzMS41Ij48L3BvbHlsaW5lPiAgICAgICAgICAgICAgICA8L2c+ICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cC0zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0Mi41MDAwMDAsIDQxLjAzMTI1MCkiPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIxLjMzMTg2MjMsMCBDMTQuNjY0MTc3NSwwIDYuNjIxMjgyNzIsMS41NzIxNzQyNSA2LjU0MTgxOTY4ZS0wNiw1LjAzMjY0MTA3IEM2LjU0MTgxOTY4ZS0wNiwxMi41MDYzMTQxIC0wLjA5MTM4OTk4OTYsMzEuMTI1NDk2MiAyMS4zMzE4NjIzLDQzLjg0NzM4OCBDNDIuNzU1NTg4MSwzMS4xMjU0OTYyIDQyLjY2NDY2NTEsMTIuNTA2MzE0MSA0Mi42NjQ2NjUxLDUuMDMyNjQxMDcgQzM2LjA0MjkxNTQsMS41NzIxNzQyNSAyOC4wMDAwMjA2LDAgMjEuMzMxODYyMywwIEwyMS4zMzE4NjIzLDAgWiIgaWQ9IlBhdGgiIGZpbGw9IiM2OEJDNzEiPjwvcGF0aD4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4zMTAwNzIxLDQzLjgzNDQ0MTggQy0wLjA5MTMyODAwNDQsMzEuMTEyODY3NyA2LjU0MTgxOTY4ZS0wNiwxMi41MDM3Nzk0IDYuNTQxODE5NjhlLTA2LDUuMDMyNjQxMDcgQzYuNjE0MDcxNTEsMS41NzU5NDMwNCAxNC42NDY2NjAyLDAuMDAzNDI2NzQyNTggMjEuMzEwMDcyMSw1LjU5NDgzNTdlLTA2IEwyMS4zMTAwNzIxLDQzLjgzNDQ0NjEgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSIjNjdCMjc5Ij48L3BhdGg+ICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAuNTUzNzYwMiwyOS4yNTY0MDQ5IEwzMy40NTM0OTEyLDExLjgyMzc4MjMgQzMyLjUwODIyNTIsMTEuMDY0MDg3NSAzMS42NzkwOTE4LDExLjYwMDI2NDQgMzEuMjIyNjYzMywxMi4wMTUzNjkxIEwzMS4yMDYwMDg2LDEyLjAxNjY5OTYgTDIwLjQ1MDIzMTEsMjMuMjM1NjEzMSBMMTYuMzk3NzQwNCwxOC4zNDU3MTU1IEMxNC40NjQ0NDYyLDE2LjEwNjEwMTUgMTEuODM2MTU2NCwxNy44MTQ0MTcgMTEuMjIyMTgzNSwxOC4yNjU4ODc3IEwyMC41NTM3NjAyLDI5LjI1NjQwNDkiIGlkPSJGaWxsLTExIiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=); +} + +.adguard-update-popup__title { + font-weight: 700; + font-size: 16px; + line-height: 19px; + margin-bottom: 15px; +} + +.adguard-update-popup__desc { + font-size: 12px; + line-height: 19px; + margin-bottom: 15px; +} + +.adguard-update-popup__links { + margin-bottom: 25px; +} + +.adguard-update-popup__link { + display: block; + font-size: 12px; + line-height: 19px; + font-weight: 700; + color: #68bc71; + text-decoration: underline; + outline: none; + margin-bottom: 5px; + -webkit-transition: 0.3s ease color; + -o-transition: 0.3s ease color; + transition: 0.3s ease color; +} + +.adguard-update-popup__link:hover { + color: #58a273; +} + +.adguard-update-popup__link--disable { + color: rgba(0, 0, 0, 0.43); +} + +.adguard-update-popup__link--disable:hover { + color: rgba(0, 0, 0, 0.63); +} + +.adguard-update-popup__offer { + display: none; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 194px; + background-size: cover; + background-repeat: no-repeat; + /* "backup" background image just in case if actual one was not successfully loaded; + for more details look for the 'offerBgImage' variable */ + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIwIiBoZWlnaHQ9IjE5NCIgdmlld0JveD0iMCAwIDMyMCAxOTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8zMjMyXzE0MjIxKSI+CjxyZWN0IHdpZHRoPSIzMjAiIGhlaWdodD0iMTk0IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzIzMl8xNDIyMSkiLz4KPHBhdGggZD0iTTE0Ny4yMjEgMTY3Ljc0OUwxNDcuMDkgMTc2LjgxMUwxNTQuNzYyIDE3MS45ODZMMTQ5LjMyOSAxNzkuMjRMMTU4LjM3MiAxNzkuODQ2TDE0OS43MTMgMTgyLjUyMkwxNTYuNjczIDE4OC4zMjdMMTQ4LjA5NSAxODUuNDAyTDE1MC4zMTMgMTk0LjE4OUwxNDUuMDkzIDE4Ni43ODFMMTQxLjcyMiAxOTUuMTk0TDE0MS44NTMgMTg2LjEzMkwxMzQuMTgyIDE5MC45NTdMMTM5LjYxNCAxODMuNzAzTDEzMC41NzEgMTgzLjA5N0wxMzkuMjMgMTgwLjQyMkwxMzIuMjcgMTc0LjYxN0wxNDAuODQ4IDE3Ny41NDFMMTM4LjYzIDE2OC43NTRMMTQzLjg1MSAxNzYuMTYyTDE0Ny4yMjEgMTY3Ljc0OVoiIGZpbGw9IiM4NENBRkUiLz4KPHBhdGggZD0iTTMwNy41IDQxTDMwOS4wOTMgNDkuNTk1OEwzMTUuNDM1IDQzLjU3ODNMMzExLjY3MiA1MS40NjkxTDMyMC4zMzkgNTAuMzI4M0wzMTIuNjU3IDU0LjVMMzIwLjMzOSA1OC42NzE3TDMxMS42NzIgNTcuNTMwOUwzMTUuNDM1IDY1LjQyMTdMMzA5LjA5MyA1OS40MDQyTDMwNy41IDY4TDMwNS45MDcgNTkuNDA0MkwyOTkuNTY1IDY1LjQyMTdMMzAzLjMyOCA1Ny41MzA5TDI5NC42NjEgNTguNjcxN0wzMDIuMzQzIDU0LjVMMjk0LjY2MSA1MC4zMjgzTDMwMy4zMjggNTEuNDY5MUwyOTkuNTY1IDQzLjU3ODNMMzA1LjkwNyA0OS41OTU4TDMwNy41IDQxWiIgZmlsbD0iIzU5QjE5NCIvPgo8cGF0aCBkPSJNMzcuNSAwTDM5LjkxOTcgMTMuMDUyOUw0OS41NDk2IDMuOTE1MTVMNDMuODM0OCAxNS44OTc1TDU2Ljk5NjcgMTQuMTY1Mkw0NS4zMzAzIDIwLjVMNTYuOTk2NyAyNi44MzQ4TDQzLjgzNDggMjUuMTAyNUw0OS41NDk2IDM3LjA4NDhMMzkuOTE5NyAyNy45NDcxTDM3LjUgNDFMMzUuMDgwMyAyNy45NDcxTDI1LjQ1MDQgMzcuMDg0OEwzMS4xNjUyIDI1LjEwMjVMMTguMDAzMyAyNi44MzQ4TDI5LjY2OTcgMjAuNUwxOC4wMDMzIDE0LjE2NTJMMzEuMTY1MiAxNS44OTc1TDI1LjQ1MDQgMy45MTUxNUwzNS4wODAzIDEzLjA1MjlMMzcuNSAwWiIgZmlsbD0iIzg0Q0FGRSIvPgo8cGF0aCBkPSJNMTE4LjA2IDEzNS4zNkMxMTkuNTU0IDEzOC43NzYgMTIwLjgzNCAxNDIuMzMyIDEyMS44NzggMTQ2LjAxOUMxMjMuMTA3IDE1MC4zNiAxMjMuOTY2IDE1NC43MiAxMjQuNDY4IDE1OS4wNjJMMTA4LjI5NiAxNjMuNjQyQzEwNy42NTQgMTU5LjMzOSAxMDYuNzIzIDE1NSAxMDUuNDk0IDE1MC42NTlDMTA0LjQ0OSAxNDYuOTcyIDEwMy4yMjMgMTQzLjQwMSAxMDEuODI4IDEzOS45NTdMMTE4LjA2IDEzNS4zNloiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTTExOC4wNiAxMzUuMzZMMTAxLjgyOSAxMzkuOTU3Qzk4LjU1NTEgMTMxLjg1MyA5NC4zNjM3IDEyNC40NTggODkuNDg3MSAxMTcuOTM1TDEwNC4yNDUgMTEzLjc1NUMxMDkuODU1IDEyMC4wNzEgMTE0LjU1MSAxMjcuMzIzIDExOC4wNiAxMzUuMzZaIiBmaWxsPSIjQkE4OTM5Ii8+CjxwYXRoIGQ9Ik0xMDguMjk2IDE2My42NDJMMTI0LjQ2OCAxNTkuMDYyQzEyNS40OTMgMTY3LjgzNCAxMjUuMDcxIDE3Ni41MzYgMTIzLjM2OCAxODQuODkxTDEwOC44MDYgMTg5LjAxNEMxMDkuNzI5IDE4MC44ODEgMTA5LjU5NiAxNzIuMzM2IDEwOC4yOTYgMTYzLjY0MloiIGZpbGw9IiM0NzNCMkIiLz4KPHBhdGggZD0iTTEwNC4yNDIgMTEzLjc1Nkw4OS40ODY4IDExNy45MzVDODMuNTI4NiAxMDkuOTcxIDc2LjU0NjggMTAzLjMwNSA2OC45NTQ4IDk4LjIzMkw4MC4xMTU2IDk1LjA3MTRDODkuMTkxMSA5OS43MjQ4IDk3LjM5NzUgMTA2LjA0NCAxMDQuMjQyIDExMy43NTZaIiBmaWxsPSIjRjRDQzcxIi8+CjxwYXRoIGQ9Ik0xMDguODA2IDE4OS4wMTVMMTIzLjM2OCAxODQuODkxQzEyMS4yNjcgMTk1LjIyOSAxMTcuMTk3IDIwNS4wMzYgMTExLjQ2IDIxMy43OEwxMDAuNzM0IDIxNi44MTdDMTA0LjkwMSAyMDguNTE4IDEwNy42NjMgMTk5LjA4MiAxMDguODA2IDE4OS4wMTVaIiBmaWxsPSIjRjRDQzcxIi8+CjxwYXRoIGQ9Ik0xMDEuODI4IDEzOS45NTZDMTAzLjIyMyAxNDMuNDAxIDEwNC40NSAxNDYuOTcyIDEwNS40OTQgMTUwLjY1OUMxMDYuNzIzIDE1NSAxMDcuNjU0IDE1OS4zMzkgMTA4LjI5NiAxNjMuNjQyTDg2LjI5NjEgMTY5Ljg3MkM4NS40NjU2IDE2NS42MjMgODQuNDM4IDE2MS4zMTEgODMuMjA4NyAxNTYuOTdDODIuMTY0NiAxNTMuMjgzIDgxLjAwNzkgMTQ5LjY5MiA3OS43NTI1IDE0Ni4yMDhMMTAxLjgyOCAxMzkuOTU2WiIgZmlsbD0iI0Y0Q0M3MSIvPgo8cGF0aCBkPSJNMTAxLjgyOCAxMzkuOTU3TDc5Ljc1MjQgMTQ2LjIwOEM3Ni43OTc2IDEzOC4wMTUgNzMuMjkzMiAxMzAuNDI1IDY5LjQwNTUgMTIzLjYyMUw4OS40ODcgMTE3LjkzNUM5NC4zNjM2IDEyNC40NTggOTguNTU1IDEzMS44NTMgMTAxLjgyOCAxMzkuOTU3WiIgZmlsbD0iI0Y0Q0M3MSIvPgo8cGF0aCBkPSJNODYuMjk2IDE2OS44NzJMMTA4LjI5NiAxNjMuNjQyQzEwOS41OTYgMTcyLjMzNiAxMDkuNzI5IDE4MC44ODEgMTA4LjgwNiAxODkuMDE0TDg4Ljk5IDE5NC42MjZDODguODYwOSAxODYuNzkgODcuOTc4MyAxNzguNDU4IDg2LjI5NiAxNjkuODcyWiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNODkuNDg3IDExNy45MzRMNjkuNDA1NiAxMjMuNjIxQzY0LjY2NTMgMTE1LjMxMyA1OS4zNDk1IDEwOC4xNzYgNTMuNzcyIDEwMi41MzJMNjguOTU1IDk4LjIzMkM3Ni41NDcgMTAzLjMwNSA4My41Mjg4IDEwOS45NzEgODkuNDg3IDExNy45MzRaIiBmaWxsPSIjNDczQjJCIi8+CjxwYXRoIGQ9Ik04OC45OTAxIDE5NC42MjZMMTA4LjgwNiAxODkuMDE1QzEwNy42NjMgMTk5LjA4MiAxMDQuOTAxIDIwOC41MTggMTAwLjczNCAyMTYuODE3TDg2LjE0MTggMjIwLjk1Qzg4LjE3NDggMjEzLjI1NSA4OS4xNTg0IDIwNC4zMjIgODguOTkwMSAxOTQuNjI2WiIgZmlsbD0iIzIyMUQxNyIvPgo8cGF0aCBkPSJNODAuMTE1OCA5NS4wNzEzTDY4Ljk1NSA5OC4yMzJDNTQuMjE5IDg4LjM4ODMgMzcuMTY5MyA4NC41NTIgMjAuODM3NiA4OC44OTc0QzQxLjQ2NzYgODMuMjczOSA2Mi40NDA1IDg2LjAxMzQgODAuMTE1OCA5NS4wNzEzWiIgZmlsbD0iIzQ3M0IyQiIvPgo8cGF0aCBkPSJNNjguOTU1IDk4LjIzMkw1My43NzE5IDEwMi41MzJDNDIuNzY4MiA5MS4zOTgxIDMwLjczNTUgODYuMDg3MyAyMC4wMjI3IDg5LjEyMUMyMC4yOTQ4IDg5LjA0NCAyMC41Njc5IDg4Ljk3MDIgMjAuODM3NyA4OC44OTc0QzM3LjE2OTMgODQuNTUyMSA1NC4yMTkxIDg4LjM4ODMgNjguOTU1IDk4LjIzMloiIGZpbGw9IiNGNENDNzEiLz4KPHBhdGggZD0iTTc5Ljc1MjMgMTQ2LjIwOEM4MS4wMDc4IDE0OS42OTIgODIuMTY0NCAxNTMuMjgzIDgzLjIwODYgMTU2Ljk3Qzg0LjQzNzkgMTYxLjMxMSA4NS40NjU0IDE2NS42MjMgODYuMjk2IDE2OS44NzJMNjAuNTA2MyAxNzcuMTc2QzU5LjQ1MzQgMTcyLjk4OSA1OC4zMDk3IDE2OC43MSA1Ny4wODA0IDE2NC4zNjlDNTYuMDM2MyAxNjAuNjgyIDU0Ljk2MjYgMTU3LjA2OCA1My44NjY0IDE1My41MzlMNzkuNzUyMyAxNDYuMjA4WiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNNzkuNzUyMyAxNDYuMjA4TDUzLjg2NjQgMTUzLjUzOUM1MS4yODk5IDE0NS4yMzggNDguNTg4NiAxMzcuNDIxIDQ1Ljg2OTEgMTMwLjI4N0w2OS40MDU0IDEyMy42MjFDNzMuMjkzIDEzMC40MjUgNzYuNzk3NSAxMzguMDE1IDc5Ljc1MjMgMTQ2LjIwOFoiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTTYwLjUwNjQgMTc3LjE3Nkw4Ni4yOTYxIDE2OS44NzJDODcuOTc4NCAxNzguNDU4IDg4Ljg2MSAxODYuNzkgODguOTkwMSAxOTQuNjI2TDY1Ljc2MjQgMjAxLjIwNEM2NC4zOTIyIDE5My43MiA2Mi42MzM0IDE4NS42MzYgNjAuNTA2NCAxNzcuMTc2WiIgZmlsbD0iIzIyMUQxNyIvPgo8cGF0aCBkPSJNNjkuNDA1NCAxMjMuNjIxTDQ1Ljg2OTIgMTMwLjI4N0M0Mi41NDYgMTIxLjU3NyAzOS4xODgyIDExMy44ODUgMzUuOTczNiAxMDcuNTcyTDUzLjc3MTkgMTAyLjUzMkM1OS4zNDk0IDEwOC4xNzYgNjQuNjY1MiAxMTUuMzEzIDY5LjQwNTQgMTIzLjYyMVoiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTTUzLjc3MTkgMTAyLjUzMkwzNS45NzM3IDEwNy41NzJDMjkuNjM2MSA5NS4xMTcgMjMuODU5MSA4OC4wMzQ2IDIwLjAyMjcgODkuMTIxQzMwLjczNTUgODYuMDg3MyA0Mi43NjgyIDkxLjM5ODEgNTMuNzcxOSAxMDIuNTMyWiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNNTMuODY2NCAxNTMuNTM5QzU0Ljk2MjYgMTU3LjA2OCA1Ni4wMzYzIDE2MC42ODIgNTcuMDgwNCAxNjQuMzY5QzU4LjMwOTcgMTY4LjcxIDU5LjQ1MzQgMTcyLjk4OSA2MC41MDY0IDE3Ny4xNzZMMzEuNzE2NiAxODUuMzI5QzMwLjQxODEgMTgxLjIxMiAyOS4xNDgzIDE3Ni45NjggMjcuOTE5IDE3Mi42MjdDMjYuODc0OCAxNjguOTQgMjUuODk0MSAxNjUuMyAyNC45NzcxIDE2MS43Mkw1My44NjY0IDE1My41MzlaIiBmaWxsPSIjMjIxRDE3Ii8+CjxwYXRoIGQ9Ik01My44NjY2IDE1My41MzlMMjQuOTc3MyAxNjEuNzJDMjIuODE4OSAxNTMuMzAxIDIxLjAyMDMgMTQ1LjIyOCAxOS41OTUyIDEzNy43MjdMNDUuODY5MyAxMzAuMjg3QzQ4LjU4ODggMTM3LjQyMSA1MS4yOTAxIDE0NS4yMzggNTMuODY2NiAxNTMuNTM5WiIgZmlsbD0iI0Y0Q0M3MSIvPgo8cGF0aCBkPSJNMzEuNzE2NiAxODUuMzI4TDYwLjUwNjMgMTc3LjE3NUM2Mi42MzMzIDE4NS42MzYgNjQuMzkyMSAxOTMuNzIgNjUuNzYyMyAyMDEuMjA0TDM5LjgzOTkgMjA4LjU0NUMzNy4wODI1IDIwMS40NTQgMzQuMzQxMyAxOTMuNjQ4IDMxLjcxNjYgMTg1LjMyOFoiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTTQ1Ljg2OTEgMTMwLjI4N0wxOS41OTUgMTM3LjcyN0MxNy44NTgxIDEyOC41NjkgMTYuNjg0IDEyMC4yNTggMTYuMTExMSAxMTMuMTk3TDM1Ljk3MzYgMTA3LjU3MkMzOS4xODgyIDExMy44ODUgNDIuNTQ2IDEyMS41NzcgNDUuODY5MSAxMzAuMjg3WiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNMzUuOTczNyAxMDcuNTcyTDE2LjExMTMgMTEzLjE5N0MxNC45Nzc0IDk5LjI2ODIgMTYuMTg2MyA5MC4yMDc0IDIwLjAyMjcgODkuMTIxQzIzLjg1OTEgODguMDM0NiAyOS42MzYxIDk1LjExNjkgMzUuOTczNyAxMDcuNTcyWiIgZmlsbD0iIzIyMUQxNyIvPgo8cGF0aCBkPSJNMTkuMjExNSA4OS4zNTc5QzE5LjQ4MDMgODkuMjgxOCAxOS43NTA1IDg5LjE5ODEgMjAuMDIyNyA4OS4xMjFDOS4zMDk4OSA5Mi4xNTQ3IDEuODQ1MTkgMTAyLjk4NyAtMS42ODY5NiAxMTguMjM3TC0xNi44NjY3IDEyMi41MzZDLTkuNDgwMiAxMDYuNDI3IDMuMDI2NDMgOTQuMjIwOSAxOS4yMTE1IDg5LjM1NzlaIiBmaWxsPSIjMjIxRDE3Ii8+CjxwYXRoIGQ9Ik0yMC4wMjI2IDg5LjEyMUMxNi4xODYyIDkwLjIwNzQgMTQuOTc3MiA5OS4yNjgxIDE2LjExMTIgMTEzLjE5N0wtMS42ODcwMyAxMTguMjM3QzEuODQ1MTIgMTAyLjk4NyA5LjMwOTgxIDkyLjE1NDggMjAuMDIyNiA4OS4xMjFaIiBmaWxsPSIjQkE4OTM5Ii8+CjxwYXRoIGQ9Ik0tMS42ODY5NSAxMTguMjM3TDE2LjExMTMgMTEzLjE5N0MxNi42ODQyIDEyMC4yNTggMTcuODU4MiAxMjguNTY5IDE5LjU5NTEgMTM3LjcyN0wtMy45NDExNyAxNDQuMzkyQy00LjI1NzYxIDEzNC44MzIgLTMuNDc2OTYgMTI1Ljk2OCAtMS42ODY5NSAxMTguMjM3WiIgZmlsbD0iIzIyMUQxNyIvPgo8cGF0aCBkPSJNMzkuODQgMjA4LjU0NUwxNi42MTI0IDIxNS4xMjNDMTIuNjEzNyAyMDguMzgzIDguOTk2NDkgMjAwLjgyNSA1LjkyNyAxOTIuNjMyTDMxLjcxNjYgMTg1LjMyOUMzNC4zNDE0IDE5My42NDggMzcuMDgyNSAyMDEuNDU0IDM5Ljg0IDIwOC41NDVaIiBmaWxsPSIjQkE4OTM5Ii8+CjxwYXRoIGQ9Ik0tMy45NDExOCAxNDQuMzkzTDE5LjU5NTEgMTM3LjcyN0MyMS4wMjAyIDE0NS4yMjggMjIuODE4OCAxNTMuMzAxIDI0Ljk3NzIgMTYxLjcyTC0wLjkwODcwMiAxNjkuMDUxQy0yLjY4ODcyIDE2MC41MjUgLTMuNjg0MTkgMTUyLjIyNCAtMy45NDExOCAxNDQuMzkzWiIgZmlsbD0iIzQ3M0IyQiIvPgo8cGF0aCBkPSJNMzEuNzE2NiAxODUuMzI4TDUuOTI2OTQgMTkyLjYzMkM0LjQwNjA3IDE4OC41NzggMy4wMjAxMiAxODQuMzY3IDEuNzkwODIgMTgwLjAyN0MwLjc0NjY3NiAxNzYuMzQgLTAuMTUxMTIxIDE3Mi42NzYgLTAuOTA4NzcyIDE2OS4wNTFMMjQuOTc3MSAxNjEuNzJDMjUuODk0MSAxNjUuMyAyNi44NzQ4IDE2OC45NCAyNy45MTkgMTcyLjYyN0MyOS4xNDgzIDE3Ni45NjggMzAuNDE4MSAxODEuMjEyIDMxLjcxNjYgMTg1LjMyOFoiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTS0xNi44NjY3IDEyMi41MzZMLTEuNjg2OTIgMTE4LjIzN0MtMy40NzY5MyAxMjUuOTY4IC00LjI1NzU4IDEzNC44MzIgLTMuOTQxMTQgMTQ0LjM5M0wtMjQuMDE5MyAxNTAuMDc4Qy0yMy4xMjExIDE0MC4xNzQgLTIwLjY3MTEgMTMwLjgzNyAtMTYuODY2NyAxMjIuNTM2WiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNMTYuNjEyNCAyMTUuMTIzTC0zLjIwMDIyIDIyMC43MzRDLTguMjUwOTIgMjE0LjI5MiAtMTIuNjE4MiAyMDYuOTQ2IC0xNi4wNjkzIDE5OC44NjFMNS45MjcwMyAxOTIuNjMyQzguOTk2NTIgMjAwLjgyNSAxMi42MTM4IDIwOC4zODMgMTYuNjEyNCAyMTUuMTIzWiIgZmlsbD0iIzIyMUQxNyIvPgo8cGF0aCBkPSJNLTI0LjAxOTQgMTUwLjA3OEwtMy45NDEyMyAxNDQuMzkyQy0zLjY4NDI1IDE1Mi4yMjQgLTIuNjg4NzcgMTYwLjUyNSAtMC45MDg3NTYgMTY5LjA1MUwtMjIuOTgxNSAxNzUuMzAxQy0yNC40NDI5IDE2Ni42ODUgLTI0Ljc1MTQgMTU4LjE5IC0yNC4wMTk0IDE1MC4wNzhaIiBmaWxsPSIjMjIxRDE3Ii8+CjxwYXRoIGQ9Ik01LjkyNjk3IDE5Mi42MzJMLTE2LjA2OTQgMTk4Ljg2MUMtMTcuNzc5NCAxOTQuODYxIC0xOS4yNjE2IDE5MC42NzcgLTIwLjQ5MDkgMTg2LjMzN0MtMjEuNTM1MSAxODIuNjUgLTIyLjM2MzIgMTc4Ljk2NiAtMjIuOTgxNCAxNzUuMzAxTC0wLjkwODczOSAxNjkuMDUxQy0wLjE1MTA4OCAxNzIuNjc2IDAuNzQ2NzA5IDE3Ni4zNCAxLjc5MDg2IDE4MC4wMjdDMy4wMjAxNSAxODQuMzY3IDQuNDA2MSAxODguNTc4IDUuOTI2OTcgMTkyLjYzMloiIGZpbGw9IiNCQTg5MzkiLz4KPHBhdGggZD0iTTE5LjIxMTQgODkuMzU3OUMzLjAyNjQxIDk0LjIyMSAtOS40ODAyMiAxMDYuNDI3IC0xNi44NjY3IDEyMi41MzZMLTI4LjAyNzUgMTI1LjY5N0MtMTcuNzI3MSAxMDguNzEzIC0xLjMwMzg5IDk1LjM4NjMgMTkuMjExNCA4OS4zNTc5WiIgZmlsbD0iI0JBODkzOSIvPgo8cGF0aCBkPSJNNjQuOTgwMyAyNDcuODc0QzEwOC44MTkgMjM1LjQ2IDEzNC4yOTMgMTg5Ljg1NyAxMjEuODc4IDE0Ni4wMTlDMTA5LjQ2NCAxMDIuMTggNjMuODYxMyA3Ni43MDYzIDIwLjAyMjggODkuMTIxQy0yMy44MTU4IDEwMS41MzYgLTQ5LjI4OTkgMTQ3LjEzOCAtMzYuODc1MiAxOTAuOTc2Qy0yNC40NjA1IDIzNC44MTUgMjEuMTQxNyAyNjAuMjg5IDY0Ljk4MDMgMjQ3Ljg3NFoiIHN0cm9rZT0iI0ZBREE5MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTY0Ljk4MDMgMjQ3Ljg3NEMxMDguODE5IDIzNS40NiAxMzQuMjkzIDE4OS44NTcgMTIxLjg3OCAxNDYuMDE5QzEwOS40NjQgMTAyLjE4IDYzLjg2MTMgNzYuNzA2MyAyMC4wMjI4IDg5LjEyMUMtMjMuODE1OCAxMDEuNTM2IC00OS4yODk5IDE0Ny4xMzggLTM2Ljg3NTIgMTkwLjk3NkMtMjQuNDYwNSAyMzQuODE1IDIxLjE0MTcgMjYwLjI4OSA2NC45ODAzIDI0Ny44NzRaIiBzdHJva2U9IiNGQURBOTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik02NC45ODAxIDI0Ny44NzRDOTkuNzY5OCAyMzguMDIyIDExNy45MDggMTk0LjQ5NyAxMDUuNDk0IDE1MC42NTlDOTMuMDc5IDEwNi44MiA1NC44MTIzIDc5LjI2ODkgMjAuMDIyNiA4OS4xMjFDLTE0Ljc2NzEgOTguOTczMSAtMzIuOTA1NiAxNDIuNDk4IC0yMC40OTEgMTg2LjMzN0MtOC4wNzYyNyAyMzAuMTc1IDMwLjE5MDQgMjU3LjcyNyA2NC45ODAxIDI0Ny44NzRaIiBzdHJva2U9IiNGQURBOTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik02NC45ODAyIDI0Ny44NzVDODcuNDYyMiAyNDEuNTA4IDk1LjYyMzMgMjAwLjgwOCA4My4yMDg2IDE1Ni45N0M3MC43OTQgMTEzLjEzMSA0Mi41MDQ2IDgyLjc1NDMgMjAuMDIyNiA4OS4xMjFDLTIuNDU5MzMgOTUuNDg3NyAtMTAuNjIwNSAxMzYuMTg3IDEuNzk0MjEgMTgwLjAyNkMxNC4yMDg5IDIyMy44NjQgNDIuNDk4MiAyNTQuMjQxIDY0Ljk4MDIgMjQ3Ljg3NVoiIHN0cm9rZT0iI0ZBREE5MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTY0Ljk4MDEgMjQ3Ljg3NUM3My4wMzM3IDI0NS41OTQgNjkuNDk4NCAyMDguMjA3IDU3LjA4MzcgMTY0LjM2OEM0NC42NjkgMTIwLjUzIDI4LjA3NjIgODYuODQwMyAyMC4wMjI2IDg5LjEyMUMxMS45Njg5IDkxLjQwMTcgMTUuNTA0MyAxMjguNzg5IDI3LjkxOSAxNzIuNjI3QzQwLjMzMzYgMjE2LjQ2NiA1Ni45MjY1IDI1MC4xNTUgNjQuOTgwMSAyNDcuODc1WiIgc3Ryb2tlPSIjRkFEQTkxIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNMTIzLjM3IDE4NC44OTRMLTE3Ljc2NDkgMjI0Ljg2MiIgc3Ryb2tlPSIjRkFEQTkxIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNMTI0LjQ2OSAxNTkuMDY2TC0zMi4yNDA1IDIwMy40NDQiIHN0cm9rZT0iI0ZBREE5MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4KPHBhdGggZD0iTTExOC4wNjEgMTM1LjM2M0wtMzkuMjEyMiAxNzkuOTAxIiBzdHJva2U9IiNGQURBOTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik0xMDQuMjQ2IDExMy43NThMLTM4Ljc3OTggMTU0LjI2MiIgc3Ryb2tlPSIjRkFEQTkxIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPgo8cGF0aCBkPSJNODAuMTE2OSA5NS4wNzQ2TC0yOC4wMjY0IDEyNS43IiBzdHJva2U9IiNGQURBOTEiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+CjxwYXRoIGQ9Ik04My43MDQyIDE3Ny45NkM3OS4wMDQ5IDE3OS4wNTkgNzUuNzU4OSAxODQuMzA0IDc2LjQ4OTQgMTg5LjYxNkM3NS43NTU4IDE4NC4zMDUgNzEuMzEwMiAxODAuODU5IDY2LjYxMTggMTgxLjk2MUM3MS4zMTExIDE4MC44NjIgNzQuNTU3MSAxNzUuNjE3IDczLjgyNjUgMTcwLjMwNUM3NC41NjAxIDE3NS42MTYgNzkuMDA1NyAxNzkuMDYyIDgzLjcwNDIgMTc3Ljk2WiIgZmlsbD0iI0ZGRkRGMiIvPgo8cGF0aCBkPSJNMTAwLjU0MSAxNjUuMTMxQzk0LjU2MTUgMTY2LjUyOCA5MC40ODYzIDE3My41ODMgOTEuNDgzMiAxODAuODA4QzkwLjQ4NjMgMTczLjU4MyA4NC43ODA0IDE2OC44MTcgNzguODAxMyAxNzAuMjE1Qzg0Ljc4MDQgMTY4LjgxNyA4OC44NTU2IDE2MS43NjMgODcuODU4OCAxNTQuNTM4Qzg4Ljg1NTYgMTYxLjc2MyA5NC41NjE1IDE2Ni41MjggMTAwLjU0MSAxNjUuMTMxWiIgZmlsbD0iI0ZGRkRGMiIvPgo8cGF0aCBkPSJNMjMuMjQ1MiAxNDIuOTUzQzE4LjE3MTUgMTQ0LjEzOSAxNC42NjcgMTQ5LjgwMiAxNS40NTU3IDE1NS41MzdDMTQuNjYzNyAxNDkuODAzIDkuODYzODggMTQ2LjA4MyA0Ljc5MTExIDE0Ny4yNzJDOS44NjQ4MiAxNDYuMDg2IDEzLjM2OTQgMTQwLjQyMiAxMi41ODA2IDEzNC42ODhDMTMuMzcyNyAxNDAuNDIxIDE4LjE3MjUgMTQ0LjE0MiAyMy4yNDUyIDE0Mi45NTNaIiBmaWxsPSIjRkZGREYyIi8+CjxwYXRoIGQ9Ik00OS44MzY2IDEwOC42NjlDNDMuMzgxMSAxMTAuMTc4IDM4Ljk4MTIgMTE3Ljc5NCA0MC4wNTc1IDEyNS41OTRDMzguOTgxMiAxMTcuNzk0IDMyLjgyMDcgMTEyLjY0OCAyNi4zNjUyIDExNC4xNThDMzIuODIwNyAxMTIuNjQ4IDM3LjIyMDYgMTA1LjAzMiAzNi4xNDQzIDk3LjIzMTVDMzcuMjIwNiAxMDUuMDMyIDQzLjM4MTEgMTEwLjE3OCA0OS44MzY2IDEwOC42NjlaIiBmaWxsPSIjRkZGREYyIi8+CjxwYXRoIGQ9Ik0yNjQuNSAxNjNDMjY2Ljk4NSAxNjMgMjY5IDE2MC45ODUgMjY5IDE1OC41QzI2OSAxNTYuMDE1IDI2Ni45ODUgMTU0IDI2NC41IDE1NEMyNjIuMDE1IDE1NCAyNjAgMTU2LjAxNSAyNjAgMTU4LjVDMjYwIDE2MC45ODUgMjYyLjAxNSAxNjMgMjY0LjUgMTYzWiIgZmlsbD0iI0Y0Q0M3MSIvPgo8cGF0aCBkPSJNMjgzLjUgOTRDMjg1Ljk4NSA5NCAyODggOTEuOTg1MyAyODggODkuNUMyODggODcuMDE0NyAyODUuOTg1IDg1IDI4My41IDg1QzI4MS4wMTUgODUgMjc5IDg3LjAxNDcgMjc5IDg5LjVDMjc5IDkxLjk4NTMgMjgxLjAxNSA5NCAyODMuNSA5NFoiIGZpbGw9IiMyQTFENzEiLz4KPHBhdGggZD0iTTEyMSAxMTRDMTI0LjMxNCAxMTQgMTI3IDExMS4zMTQgMTI3IDEwOEMxMjcgMTA0LjY4NiAxMjQuMzE0IDEwMiAxMjEgMTAyQzExNy42ODYgMTAyIDExNSAxMDQuNjg2IDExNSAxMDhDMTE1IDExMS4zMTQgMTE3LjY4NiAxMTQgMTIxIDExNFoiIGZpbGw9IiM1OUIxOTQiLz4KPHBhdGggZD0iTTk3IDMzQzk4LjY1NjkgMzMgMTAwIDMxLjY1NjkgMTAwIDMwQzEwMCAyOC4zNDMxIDk4LjY1NjkgMjcgOTcgMjdDOTUuMzQzMSAyNyA5NCAyOC4zNDMxIDk0IDMwQzk0IDMxLjY1NjkgOTUuMzQzMSAzMyA5NyAzM1oiIGZpbGw9IiM4NENBRkUiLz4KPHBhdGggZD0iTTE5LjUgNjJDMjEuOTg1MyA2MiAyNCA1OS45ODUzIDI0IDU3LjVDMjQgNTUuMDE0NyAyMS45ODUzIDUzIDE5LjUgNTNDMTcuMDE0NyA1MyAxNSA1NS4wMTQ3IDE1IDU3LjVDMTUgNTkuOTg1MyAxNy4wMTQ3IDYyIDE5LjUgNjJaIiBmaWxsPSIjRjRDQzcxIi8+CjxwYXRoIGQ9Ik00My41IDc2QzQ0Ljg4MDcgNzYgNDYgNzQuODgwNyA0NiA3My41QzQ2IDcyLjExOTMgNDQuODgwNyA3MSA0My41IDcxQzQyLjExOTMgNzEgNDEgNzIuMTE5MyA0MSA3My41QzQxIDc0Ljg4MDcgNDIuMTE5MyA3NiA0My41IDc2WiIgZmlsbD0iI0Y0Q0M3MSIvPgo8cGF0aCBkPSJNMjM1LjUgMTg0QzIzNi44ODEgMTg0IDIzOCAxODIuODgxIDIzOCAxODEuNUMyMzggMTgwLjExOSAyMzYuODgxIDE3OSAyMzUuNSAxNzlDMjM0LjExOSAxNzkgMjMzIDE4MC4xMTkgMjMzIDE4MS41QzIzMyAxODIuODgxIDIzNC4xMTkgMTg0IDIzNS41IDE4NFoiIGZpbGw9IiNGNENDNzEiLz4KPHBhdGggZD0iTTI5MC41IDE5NEMyOTQuMDkgMTk0IDI5NyAxOTEuMDkgMjk3IDE4Ny41QzI5NyAxODMuOTEgMjk0LjA5IDE4MSAyOTAuNSAxODFDMjg2LjkxIDE4MSAyODQgMTgzLjkxIDI4NCAxODcuNUMyODQgMTkxLjA5IDI4Ni45MSAxOTQgMjkwLjUgMTk0WiIgZmlsbD0iIzg0Q0FGRSIvPgo8cGF0aCBkPSJNMTY0LjUgMjdDMTY2Ljk4NSAyNyAxNjkgMjQuOTg1MyAxNjkgMjIuNUMxNjkgMjAuMDE0NyAxNjYuOTg1IDE4IDE2NC41IDE4QzE2Mi4wMTUgMTggMTYwIDIwLjAxNDcgMTYwIDIyLjVDMTYwIDI0Ljk4NTMgMTYyLjAxNSAyNyAxNjQuNSAyN1oiIGZpbGw9IiMyQTFENzEiLz4KPHBhdGggZD0iTTEyMi4zMDkgMEMxMjMuMzYgMy42MzQ3OSAxMjUuOTA2IDYuNjMzOTIgMTI5LjIzNyA4LjI5MTAyQzEyNS44NjQgOS43Mzg3NCAxMjMuMjAzIDEyLjUyODkgMTIxLjkyNyAxNS45ODkzQzEyMC44NzUgMTIuMzU2OSAxMTguMzMgOS4zNTkzMyAxMTUgNy43MDMxMkMxMTguMzc0IDYuMjUzOCAxMjEuMDM0IDMuNDYyMzMgMTIyLjMwOSAwWiIgZmlsbD0iIzU5QjE5NCIvPgo8cGF0aCBkPSJNMzEzLjMwOSAxMzlDMzE0LjM2IDE0Mi42MzUgMzE2LjkwNiAxNDUuNjM0IDMyMC4yMzcgMTQ3LjI5MUMzMTYuODY0IDE0OC43MzkgMzE0LjIwMyAxNTEuNTI5IDMxMi45MjcgMTU0Ljk4OUMzMTEuODc1IDE1MS4zNTcgMzA5LjMzIDE0OC4zNTkgMzA2IDE0Ni43MDNDMzA5LjM3NCAxNDUuMjU0IDMxMi4wMzQgMTQyLjQ2MiAzMTMuMzA5IDEzOVoiIGZpbGw9IiNGRTREQzciLz4KPHBhdGggZD0iTTgwLjU2MjUgNTcuOTk2MkM3Ny42MDU1IDU4LjI0NTggNzUuMjQ1OSA2MC42MDU0IDc0Ljk5NjMgNjMuNTdDNzQuNzQ2OCA2MC42MDU0IDcyLjM4NzIgNTguMjQ1OCA2OS40MzAyIDU3Ljk5NjJDNzIuMzg3MiA1Ny43NDY2IDc0Ljc0NjggNTUuMzg3MSA3NC45OTYzIDUyLjQyMjVDNzUuMjQ1OSA1NS4zODcxIDc3LjYwNTUgNTcuNzQ2NiA4MC41NjI1IDU3Ljk5NjJaIiBmaWxsPSIjNjE0RENDIi8+CjxwYXRoIGQ9Ik03NC45ODg2IDY5Qzc0LjgzNzMgNjkgNzQuNzE2MyA2OC44NzkgNzQuNzE2MyA2OC43Mjc3VjYwLjE0NEM3NC43MTYzIDU5Ljk5MjggNzQuODM3MyA1OS44NzE4IDc0Ljk4ODYgNTkuODcxOEM3NS4xMzk4IDU5Ljg3MTggNzUuMjYwOCA1OS45OTI4IDc1LjI2MDggNjAuMTQ0VjY4LjcyNzdDNzUuMjYwOCA2OC44NzkgNzUuMTM5OCA2OSA3NC45ODg2IDY5WiIgZmlsbD0iIzYxNERDQyIvPgo8cGF0aCBkPSJNNzIuODQ4NCA1OC4yNzZINjQuMjcyMkM2NC4xMjEgNTguMjc2IDY0IDU4LjE1NSA2NCA1OC4wMDM4QzY0IDU3Ljg1MjUgNjQuMTIxIDU3LjczMTUgNjQuMjcyMiA1Ny43MzE1SDcyLjg0ODRDNzIuOTk5NyA1Ny43MzE1IDczLjEyMDcgNTcuODUyNSA3My4xMjA3IDU4LjAwMzhDNzMuMTIwNyA1OC4xNTUgNzIuOTk5NyA1OC4yNzYgNzIuODQ4NCA1OC4yNzZaIiBmaWxsPSIjNjE0RENDIi8+CjxwYXRoIGQ9Ik03NC45ODg2IDU2LjEyODJDNzQuODM3MyA1Ni4xMjgyIDc0LjcxNjMgNTYuMDA3MiA3NC43MTYzIDU1Ljg1NlY0Ny4yNzIzQzc0LjcxNjMgNDcuMTIxIDc0LjgzNzMgNDcgNzQuOTg4NiA0N0M3NS4xMzk4IDQ3IDc1LjI2MDggNDcuMTIxIDc1LjI2MDggNDcuMjcyM1Y1NS44NTZDNzUuMjYwOCA1Ni4wMDcyIDc1LjEzOTggNTYuMTI4MiA3NC45ODg2IDU2LjEyODJaIiBmaWxsPSIjNjE0RENDIi8+CjxwYXRoIGQ9Ik04NS43MTI3IDU4LjI2ODRINzcuMTI4OUM3Ni45Nzc3IDU4LjI2ODQgNzYuODU2NyA1OC4xNDc0IDc2Ljg1NjcgNTcuOTk2MkM3Ni44NTY3IDU3Ljg0NDkgNzYuOTc3NyA1Ny43MjM5IDc3LjEyODkgNTcuNzIzOUg4NS43MTI3Qzg1Ljg2MzkgNTcuNzIzOSA4NS45ODQ5IDU3Ljg0NDkgODUuOTg0OSA1Ny45OTYyQzg1Ljk4NDkgNTguMTQ3NCA4NS44NjM5IDU4LjI2ODQgODUuNzEyNyA1OC4yNjg0WiIgZmlsbD0iIzYxNERDQyIvPgo8cGF0aCBkPSJNMTk3LjU2MyAxNzMuOTk2QzE5NC42MDYgMTc0LjI0NiAxOTIuMjQ2IDE3Ni42MDUgMTkxLjk5NiAxNzkuNTdDMTkxLjc0NyAxNzYuNjA1IDE4OS4zODcgMTc0LjI0NiAxODYuNDMgMTczLjk5NkMxODkuMzg3IDE3My43NDcgMTkxLjc0NyAxNzEuMzg3IDE5MS45OTYgMTY4LjQyMkMxOTIuMjQ2IDE3MS4zODcgMTk0LjYwNiAxNzMuNzQ3IDE5Ny41NjMgMTczLjk5NloiIGZpbGw9IiNGQ0ZGRkIiLz4KPHBhdGggZD0iTTE5MS45ODkgMTg1QzE5MS44MzcgMTg1IDE5MS43MTYgMTg0Ljg3OSAxOTEuNzE2IDE4NC43MjhWMTc2LjE0NEMxOTEuNzE2IDE3NS45OTMgMTkxLjgzNyAxNzUuODcyIDE5MS45ODkgMTc1Ljg3MkMxOTIuMTQgMTc1Ljg3MiAxOTIuMjYxIDE3NS45OTMgMTkyLjI2MSAxNzYuMTQ0VjE4NC43MjhDMTkyLjI2MSAxODQuODc5IDE5Mi4xNCAxODUgMTkxLjk4OSAxODVaIiBmaWxsPSIjRkNGRkZCIi8+CjxwYXRoIGQ9Ik0xODkuODQ4IDE3NC4yNzZIMTgxLjI3MkMxODEuMTIxIDE3NC4yNzYgMTgxIDE3NC4xNTUgMTgxIDE3NC4wMDRDMTgxIDE3My44NTMgMTgxLjEyMSAxNzMuNzMyIDE4MS4yNzIgMTczLjczMkgxODkuODQ4QzE5MCAxNzMuNzMyIDE5MC4xMjEgMTczLjg1MyAxOTAuMTIxIDE3NC4wMDRDMTkwLjEyMSAxNzQuMTU1IDE5MCAxNzQuMjc2IDE4OS44NDggMTc0LjI3NloiIGZpbGw9IiNGQ0ZGRkIiLz4KPHBhdGggZD0iTTE5MS45ODkgMTcyLjEyOEMxOTEuODM3IDE3Mi4xMjggMTkxLjcxNiAxNzIuMDA3IDE5MS43MTYgMTcxLjg1NlYxNjMuMjcyQzE5MS43MTYgMTYzLjEyMSAxOTEuODM3IDE2MyAxOTEuOTg5IDE2M0MxOTIuMTQgMTYzIDE5Mi4yNjEgMTYzLjEyMSAxOTIuMjYxIDE2My4yNzJWMTcxLjg1NkMxOTIuMjYxIDE3Mi4wMDcgMTkyLjE0IDE3Mi4xMjggMTkxLjk4OSAxNzIuMTI4WiIgZmlsbD0iI0ZDRkZGQiIvPgo8cGF0aCBkPSJNMjAyLjcxMiAxNzQuMjY4SDE5NC4xMjlDMTkzLjk3NyAxNzQuMjY4IDE5My44NTYgMTc0LjE0NyAxOTMuODU2IDE3My45OTZDMTkzLjg1NiAxNzMuODQ1IDE5My45NzcgMTczLjcyNCAxOTQuMTI5IDE3My43MjRIMjAyLjcxMkMyMDIuODY0IDE3My43MjQgMjAyLjk4NSAxNzMuODQ1IDIwMi45ODUgMTczLjk5NkMyMDIuOTg1IDE3NC4xNDcgMjAyLjg2NCAxNzQuMjY4IDIwMi43MTIgMTc0LjI2OFoiIGZpbGw9IiNGQ0ZGRkIiLz4KPHBhdGggZD0iTTIzNS44NDggMTQuOTk1QzIzMS45NDcgMTUuMzI0MiAyMjguODM1IDE4LjQzNjcgMjI4LjUwNSAyMi4zNDczQzIyOC4xNzYgMTguNDM2NyAyMjUuMDY0IDE1LjMyNDIgMjIxLjE2MyAxNC45OTVDMjI1LjA2NCAxNC42NjU4IDIyOC4xNzYgMTEuNTUzMyAyMjguNTA1IDcuNjQyNzZDMjI4LjgzNSAxMS41NTMzIDIzMS45NDcgMTQuNjY1OCAyMzUuODQ4IDE0Ljk5NVoiIGZpbGw9IiNGQ0ZGRkIiLz4KPHBhdGggZD0iTTIyOC40OTUgMjkuNTA5OUMyMjguMjk1IDI5LjUwOTkgMjI4LjEzNiAyOS4zNTAzIDIyOC4xMzYgMjkuMTUwOFYxNy44MjgxQzIyOC4xMzYgMTcuNjI4NiAyMjguMjk1IDE3LjQ2OSAyMjguNDk1IDE3LjQ2OUMyMjguNjk0IDE3LjQ2OSAyMjguODU0IDE3LjYyODYgMjI4Ljg1NCAxNy44MjgxVjI5LjE1MDhDMjI4Ljg1NCAyOS4zNTAzIDIyOC42OTQgMjkuNTA5OSAyMjguNDk1IDI5LjUwOTlaIiBmaWxsPSIjRkNGRkZCIi8+CjxwYXRoIGQ9Ik0yMjUuNjcyIDE1LjM2NDFIMjE0LjM1OUMyMTQuMTYgMTUuMzY0MSAyMTQgMTUuMjA0NSAyMTQgMTUuMDA0OUMyMTQgMTQuODA1NCAyMTQuMTYgMTQuNjQ1OCAyMTQuMzU5IDE0LjY0NThIMjI1LjY3MkMyMjUuODcxIDE0LjY0NTggMjI2LjAzMSAxNC44MDU0IDIyNi4wMzEgMTUuMDA0OUMyMjYuMDMxIDE1LjIwNDUgMjI1Ljg3MSAxNS4zNjQxIDIyNS42NzIgMTUuMzY0MVoiIGZpbGw9IiNGQ0ZGRkIiLz4KPHBhdGggZD0iTTIyOC40OTUgMTIuNTMxQzIyOC4yOTUgMTIuNTMxIDIyOC4xMzYgMTIuMzcxNCAyMjguMTM2IDEyLjE3MTlWMC44NDkxODVDMjI4LjEzNiAwLjY0OTY2NyAyMjguMjk1IDAuNDkwMDUxIDIyOC40OTUgMC40OTAwNTFDMjI4LjY5NCAwLjQ5MDA1MSAyMjguODU0IDAuNjQ5NjY3IDIyOC44NTQgMC44NDkxODVWMTIuMTcxOUMyMjguODU0IDEyLjM3MTQgMjI4LjY5NCAxMi41MzEgMjI4LjQ5NSAxMi41MzFaIiBmaWxsPSIjRkNGRkZCIi8+CjxwYXRoIGQ9Ik0yNDIuNjQxIDE1LjM1NDFIMjMxLjMxOEMyMzEuMTE5IDE1LjM1NDEgMjMwLjk1OSAxNS4xOTQ1IDIzMC45NTkgMTQuOTk1QzIzMC45NTkgMTQuNzk1NSAyMzEuMTE5IDE0LjYzNTkgMjMxLjMxOCAxNC42MzU5SDI0Mi42NDFDMjQyLjg0IDE0LjYzNTkgMjQzIDE0Ljc5NTUgMjQzIDE0Ljk5NUMyNDMgMTUuMTk0NSAyNDIuODQgMTUuMzU0MSAyNDIuNjQxIDE1LjM1NDFaIiBmaWxsPSIjRkNGRkZCIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8zMjMyXzE0MjIxIiB4MT0iMTYwIiB5MT0iLTkuNSIgeDI9IjE2MCIgeTI9IjIwOCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMEEwNzFCIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzMwMjE4MSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzMyMzJfMTQyMjEiPgo8cmVjdCB3aWR0aD0iMzIwIiBoZWlnaHQ9IjE5NCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K=); +} + +.adguard-update-popup__offer--show { + display: block; +} + +.adguard-update-popup__offer-close { + position: absolute; + width: 24px; + height: 24px; + cursor: pointer; + top: 4px; + right: 4px; + background-repeat: no-repeat; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath stroke='%23fff' d='M6.42857 6.42857L17.6043 17.6043' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath stroke='%23fff' d='M6.42871 17.5714L17.6045 6.39563' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); +} + +.adguard-update-popup__offer-content { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + position: absolute; + top: 50%; + transform: translateY(-50%); + box-sizing: border-box; + width: 200px; + right: 12px; +} + +.adguard-update-popup__offer-title { + text-align: center; + font-weight: 700; + line-height: 120%; + font-size: 20px; + color: #FFFFFF; + word-break: keep-all; +} + +.adguard-update-popup__btn { + box-sizing: border-box; + text-decoration: none; + cursor: pointer; + color: #000000; + font-weight: 400; + font-size: 16px; + line-height: 130%; + background-color: #FFFFFF; + padding: 12px 24px; + min-width: 168px; + border-radius: 8px; + margin-top: 16px; + white-space: nowrap; + transition: 0.3s; + box-shadow: 0 0 20px rgba(255, 255, 255, 0.4); +} + +.adguard-update-popup__btn:active { + background-color: #39764C; +} + +@media (hover: hover) { + .adguard-update-popup__btn:hover { + background-color: #4d995F; + } +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/c3.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/c3.css new file mode 100644 index 0000000..3ada008 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/c3.css @@ -0,0 +1,175 @@ +/*-- Chart --*/ +.c3 svg { + font-family: system-ui; + font-size: 10px; + -webkit-tap-highlight-color: transparent; } + +.c3 path, .c3 line { + fill: none; + stroke: #000; } + +.c3 text { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; } + +.c3-legend-item-tile, +.c3-xgrid-focus, +.c3-ygrid, +.c3-event-rect, +.c3-bars path { + shape-rendering: crispEdges; } + +.c3-chart-arc path { + stroke: #fff; } + +.c3-chart-arc text { + fill: #fff; + font-size: 13px; } + +/*-- Axis --*/ +/*-- Grid --*/ +.c3-grid line { + stroke: #aaa; } + +.c3-grid text { + fill: #aaa; } + +.c3-xgrid, .c3-ygrid { + stroke-dasharray: 3 3; } + +/*-- Text on Chart --*/ +.c3-text.c3-empty { + fill: #808080; + font-size: 2em; } + +/*-- Line --*/ +.c3-line { + stroke-width: 1px; } + +/*-- Point --*/ +.c3-circle._expanded_ { + stroke-width: 1px; + stroke: white; } + +.c3-selected-circle { + fill: white; + stroke-width: 2px; } + +/*-- Bar --*/ +.c3-bar { + stroke-width: 0; } + +.c3-bar._expanded_ { + fill-opacity: 1; + fill-opacity: 0.75; } + +/*-- Focus --*/ +.c3-target.c3-focused { + opacity: 1; } + +.c3-target.c3-focused path.c3-line, .c3-target.c3-focused path.c3-step { + stroke-width: 2px; } + +.c3-target.c3-defocused { + opacity: 0.3 !important; } + +/*-- Region --*/ +.c3-region { + fill: steelblue; + fill-opacity: .1; } + +/*-- Brush --*/ +.c3-brush .extent { + fill-opacity: .1; } + +/*-- Select - Drag --*/ +/*-- Legend --*/ +.c3-legend-item { + font-size: 12px; } + +.c3-legend-item-hidden { + opacity: 0.15; } + +.c3-legend-background { + opacity: 0.75; + fill: white; + stroke: lightgray; + stroke-width: 1; } + +/*-- Title --*/ +.c3-title { + font: 14px sans-serif; } + +/*-- Tooltip --*/ +.c3-tooltip-container { + z-index: 10; } + +.c3-tooltip { + border-collapse: collapse; + border-spacing: 0; + background-color: #fff; + empty-cells: show; + -webkit-box-shadow: 7px 7px 12px -9px #777777; + -moz-box-shadow: 7px 7px 12px -9px #777777; + box-shadow: 7px 7px 12px -9px #777777; + opacity: 0.9; } + +.c3-tooltip tr { + border: 1px solid #CCC; } + +.c3-tooltip th { + background-color: #aaa; + font-size: 14px; + padding: 2px 5px; + text-align: left; + color: #FFF; } + +.c3-tooltip td { + font-size: 13px; + padding: 3px 6px; + background-color: #fff; + border-left: 1px dotted #999; } + +.c3-tooltip td > span { + display: inline-block; + width: 10px; + height: 10px; + margin-right: 6px; } + +.c3-tooltip td.value { + text-align: right; } + +/*-- Area --*/ +.c3-area { + stroke-width: 0; + opacity: 0.2; } + +/*-- Arc --*/ +.c3-chart-arcs-title { + dominant-baseline: middle; + font-size: 1.3em; } + +.c3-chart-arcs .c3-chart-arcs-background { + fill: #e0e0e0; + stroke: none; } + +.c3-chart-arcs .c3-chart-arcs-gauge-unit { + fill: #000; + font-size: 16px; } + +.c3-chart-arcs .c3-chart-arcs-gauge-max { + fill: #777; } + +.c3-chart-arcs .c3-chart-arcs-gauge-min { + fill: #777; } + +.c3-chart-arc .c3-gauge-value { + fill: #000; + /* font-size: 28px !important;*/ } + +.c3-chart-arc.c3-target g path { + opacity: 1; } + +.c3-chart-arc.c3-target.c3-focused g path { + opacity: 1; } diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/custom.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/custom.css new file mode 100644 index 0000000..04ac79c --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/custom.css @@ -0,0 +1,37 @@ +.styles-section .style-properties .enabled-button { + visibility: visible !important; +} + +#select-attributes-checkbox { + margin-left: 0px; + vertical-align: middle; +} + +.action-button { + margin-top: 4px; + margin-bottom: 4px; + margin-left: 4px; +} + +.rule-input { + padding: 4px; +} + +.webkit-css-property { + color: #5a5a5a; +} + +#filter-rule-text { + border-left: none; + border-right: none; + border-top: none; + border-bottom-width: 1px; +} + +.separator-attributes { + min-height: 21px; +} + +.separator-properties { + min-height: 17px; +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/dark.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/dark.css new file mode 100644 index 0000000..8566660 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/dark.css @@ -0,0 +1,98 @@ +/** + Special css classes for dark devtools theme support. + Document body will be marked with '-theme-with-dark-background' class. + https://github.com/AdguardTeam/AdguardBrowserExtension/issues/739 + */ + +body.-theme-with-dark-background { + color: rgb(213, 213, 213); + background-color: rgb(32, 33, 36); +} + +.-theme-with-dark-background .platform-linux { + color: rgb(189, 198, 207); +} + +.-theme-with-dark-background .platform-mac { + color: rgb(189, 198, 207); +} + +.-theme-with-dark-background .panel { + background-color: rgb(36, 36, 36); +} + +.-theme-with-dark-background .panel-sidebar { + background-color: rgb(42, 42, 42); +} + +.-theme-with-dark-background input { + background-color: rgb(36, 36, 36); + border-color: rgb(86, 85, 85); +} + +.-theme-with-dark-background .styles-section { + border-bottom-color: rgb(44, 44, 44); +} + +.-theme-with-dark-background .styles-section.read-only { + background-color: rgb(44, 44, 44); +} + +.-theme-with-dark-background .styles-section-title .media-list { + color: rgb(119, 119, 119); +} + +.-theme-with-dark-background .styles-section-title .media-list.media-matches .media.editable-media { + color: rgb(213, 213, 213); +} + +.-theme-with-dark-background .styles-section-title .media .subtitle { + color: rgb(170, 170, 170); +} + +.-theme-with-dark-background .styles-section-subtitle { + color: rgb(170, 170, 170); +} + +.-theme-with-dark-background .styles-section .selector { + color: rgb(119, 119, 119); +} + +.-theme-with-dark-background .styles-section .simple-selector.selector-matches, .styles-section.keyframe-key { + color: rgb(213, 213, 213); +} + +.-theme-with-dark-background .styles-sidebar-pane-toolbar { + border-bottom-color: rgb(44, 44, 44); +} + +.-theme-with-dark-background .sidebar-separator { + background-color: rgb(53, 53, 53); + border-top-color: rgb(61, 61, 61); + border-bottom-color: rgb(61, 61, 61); + color: rgb(205, 205, 205); +} + +.-theme-with-dark-background .sidebar-separator > span.monospace { + background-color: rgb(36, 36, 36); + border-top-color: rgb(67, 67, 67); + border-right-color: rgb(67, 67, 67); + border-bottom-color: rgb(67, 67, 67); + border-left-color: rgb(67, 67, 67); +} + +.-theme-with-dark-background .sidebar-pane-section-toolbar { + background-color: rgba(36, 36, 36, 0.9); +} + +.-theme-with-dark-background .webkit-css-property { + color: rgb(213, 213, 213); +} + +.-theme-with-dark-background #attributes-block .webkit-css-property { + color: rgb(53, 212, 199); +} + +.-theme-with-dark-background #attributes-block value { + color: rgb(189, 198, 207); +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/elementsPanel.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/elementsPanel.css new file mode 100644 index 0000000..ecb4e15 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/elementsPanel.css @@ -0,0 +1,770 @@ +/* + * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2009 Anthony Ricaud + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#elements-content { + flex: 1 1; + overflow: auto; + padding: 2px 0 0 0; +} + +#elements-content:not(.elements-wrap) > div { + display: inline-block; + min-width: 100%; +} + +#elements-content.elements-wrap { + overflow-x: hidden; +} + +.elements-topbar { + border-bottom: 1px solid hsla(0, 0%, 0%, 0.1); + flex-shrink: 0; +} + +#elements-crumbs { + flex: 0 0 19px; + background-color: white; + border-top: 1px solid #ccc; + overflow: hidden; + height: 19px; + width: 100%; +} + +.metrics { + padding: 8px; + font-size: 10px; + text-align: center; + white-space: nowrap; +} + +.metrics .label { + position: absolute; + font-size: 10px; + margin-left: 3px; + padding-left: 2px; + padding-right: 2px; +} + +.metrics .position { + border: 1px rgb(66%, 66%, 66%) dotted; + background-color: white; + display: inline-block; + text-align: center; + padding: 3px; + margin: 3px; +} + +.metrics .margin { + border: 1px dashed; + background-color: white; + display: inline-block; + text-align: center; + vertical-align: middle; + padding: 3px; + margin: 3px; +} + +.metrics .border { + border: 1px black solid; + background-color: white; + display: inline-block; + text-align: center; + vertical-align: middle; + padding: 3px; + margin: 3px; +} + +.metrics .padding { + border: 1px grey dashed; + background-color: white; + display: inline-block; + text-align: center; + vertical-align: middle; + padding: 3px; + margin: 3px; +} + +.metrics .content { + position: static; + border: 1px gray solid; + background-color: white; + display: inline-block; + text-align: center; + vertical-align: middle; + padding: 3px; + margin: 3px; + min-width: 80px; + overflow: visible; +} + +.metrics .content span { + display: inline-block; +} + +.metrics .editing { + position: relative; + z-index: 100; + cursor: text; +} + +.metrics .left { + display: inline-block; + vertical-align: middle; +} + +.metrics .right { + display: inline-block; + vertical-align: middle; +} + +.metrics .top { + display: inline-block; +} + +.metrics .bottom { + display: inline-block; +} + +.styles-section { + padding: 2px 2px 4px 4px; + min-height: 18px; + white-space: nowrap; + background-origin: padding; + background-clip: padding; + -webkit-user-select: text; + border-bottom: 1px solid #eee; + position: relative; + overflow: hidden; +} + +.styles-section:last-child { + border-bottom: none; +} + +.styles-pane .sidebar-separator { + border-top: 0 none; +} + +.styles-section.read-only { + background-color: #eee; +} + +.styles-section .style-properties li.not-parsed-ok { + margin-left: 0; +} + +.styles-filter-engaged, +.styles-section .style-properties li.filter-match, +.styles-section .simple-selector.filter-match { + background-color: rgba(255, 255, 0, 0.5); +} + +.-theme-with-dark-background .styles-filter-engaged, +.-theme-with-dark-background .styles-section .style-properties li.filter-match, +.-theme-with-dark-background .styles-section .simple-selector.filter-match { + background-color: hsla(133, 100%, 30%, 0.5); +} + + +.styles-section .style-properties li.overloaded.filter-match { + background-color: rgba(255, 255, 0, 0.25); +} + +.-theme-with-dark-background .styles-section .style-properties li.overloaded.filter-match { + background-color: hsla(133, 100%, 30%, 0.25); +} + +.styles-section .style-properties li.not-parsed-ok .exclamation-mark { + display: inline-block; + position: relative; + width: 11px; + height: 10px; + margin: 0 7px 0 0; + top: 1px; + left: -36px; /* outdent to compensate for the top-level property indent */ + -webkit-user-select: none; + cursor: default; + z-index: 1; +} + +.styles-section .sidebar-pane-closing-brace { + clear: both; +} + +.styles-section-title { + background-origin: padding; + background-clip: padding; + word-wrap: break-word; + white-space: normal; +} + +.styles-section-title .media-list { + color: #888; +} + +.styles-section-title .media-list.media-matches .media.editable-media { + color: #222; +} + +.styles-section-title .media:not(.editing-media), +.styles-section-title .media:not(.editing-media) .subtitle { + overflow: hidden; +} + +.styles-section-title .media .subtitle { + float: right; + color: rgb(85, 85, 85); +} + +.styles-section-subtitle { + color: rgb(85, 85, 85); + float: right; + margin-left: 5px; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.styles-section .styles-section-subtitle a { + color: inherit; +} + +.styles-section .selector { + color: #888; +} + +.styles-section .simple-selector.selector-matches, .styles-section.keyframe-key { + color: #222; +} + +.styles-section a[data-uncopyable] { + display: inline-block; +} + +.styles-section a[data-uncopyable]::before { + content: attr(data-uncopyable); + text-decoration: underline; +} + +.styles-section .style-properties { + margin: 0; + padding: 2px 4px 0 0; + list-style: none; + clear: both; +} + +.styles-section.matched-styles .style-properties { + padding-left: 0; +} + +.no-affect .style-properties li { + opacity: 0.5; +} + +.no-affect .style-properties li.editing { + opacity: 1.0; +} + +.styles-section .style-properties li { + margin-left: 12px; + padding-left: 22px; + white-space: normal; + text-overflow: ellipsis; + overflow: hidden; + cursor: auto; +} + +.styles-section .style-properties li .webkit-css-property { + margin-left: -22px; /* outdent the first line of longhand properties (in an expanded shorthand) to compensate for the "padding-left" shift in .styles-section .style-properties li */ +} + +.styles-section .style-properties > li { + padding-left: 38px; + clear: both; + min-height: 14px; +} + +.styles-section .style-properties > li .webkit-css-property { + margin-left: -38px; /* outdent the first line of the top-level properties to compensate for the "padding-left" shift in .styles-section .style-properties > li */ +} + +.styles-section .style-properties > li.child-editing { + padding-left: 8px; +} + +.styles-section .style-properties > li.child-editing .webkit-css-property { + margin-left: 0; +} + +.styles-section.matched-styles .style-properties li { + margin-left: 0 !important; +} + +.styles-section .style-properties li.child-editing { + word-wrap: break-word !important; + white-space: normal !important; + padding-left: 0; +} + +.styles-section .style-properties ol { + display: none; + margin: 0; + -webkit-padding-start: 12px; + list-style: none; +} + +.styles-section .style-properties ol.expanded { + display: block; +} + +.styles-section.matched-styles .style-properties li.parent .expand-element { + -webkit-mask-position: -4px -96px; +} + +.styles-section.matched-styles .style-properties li.parent.expanded .expand-element { + -webkit-mask-position: -20px -96px; +} + +.styles-section .style-properties li .info { + padding-top: 4px; + padding-bottom: 3px; +} + +.styles-section.matched-styles:not(.read-only):hover .style-properties .enabled-button { + visibility: visible; +} + +.styles-section.matched-styles:not(.read-only) .style-properties li.disabled .enabled-button { + visibility: visible; +} + +.styles-section .style-properties .enabled-button { + visibility: hidden; + float: left; + font-size: 10px; + margin: 0; + vertical-align: top; + position: relative; + z-index: 1; + width: 18px; + left: -40px; /* original -2px + (-38px) to compensate for the first line outdent */ + top: 1px; + height: 13px; +} + +.styles-section.matched-styles .style-properties ol.expanded { + margin-left: 16px; +} + +.styles-section .style-properties .overloaded:not(.has-ignorable-error), +.styles-section .style-properties .inactive, +.styles-section .style-properties .disabled, +.styles-section .style-properties .not-parsed-ok:not(.has-ignorable-error) { + text-decoration: line-through; +} + +.styles-section .style-properties .has-ignorable-error .webkit-css-property { + color: inherit; +} + +.styles-section .style-properties .implicit, +.styles-section .style-properties .inherited { + opacity: 0.5; +} + +.styles-section .style-properties .has-ignorable-error { + color: gray; +} + +.styles-element-state-pane { + overflow: hidden; + height: 66px; + padding-left: 2px; + border-bottom: 1px solid rgb(189, 189, 189); +} + +@keyframes styles-element-state-pane-slidein { + from { + margin-top: -60px; + } + to { + margin-top: 0px; + } +} + +@keyframes styles-element-state-pane-slideout { + from { + margin-top: 0px; + } + to { + margin-top: -60px; + } +} + +.styles-sidebar-toolbar-pane { + position: relative; + animation-duration: 0.1s; + animation-direction: normal; +} + +.styles-sidebar-toolbar-pane-container { + position: relative; + overflow: hidden; + flex-shrink: 0; +} + +.styles-element-state-pane { + background-color: #f3f3f3; + border-bottom: 1px solid rgb(189, 189, 189); + margin-top: 0; +} + +.styles-element-classes-pane { + background-color: #f3f3f3; + border-bottom: 1px solid rgb(189, 189, 189); + padding: 6px 2px 2px; +} + +.styles-element-classes-container { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.styles-element-classes-pane label { + margin-right: 15px; +} + +.styles-element-classes-pane .title-container { + padding-bottom: 2px; +} + +.styles-element-classes-pane .new-class-input { + padding-left: 3px; + border: 1px solid #ddd; + line-height: 15px; + margin-left: 3px; + width: calc(100% - 7px); +} + +.styles-element-state-pane > div { + margin: 8px 4px 6px; +} + +.styles-element-state-pane > table { + width: 100%; + border-spacing: 0; +} + +.styles-element-state-pane td { + padding: 0; +} + +.styles-animations-controls-pane > * { + margin: 6px 4px; +} + +.styles-animations-controls-pane { + border-bottom: 1px solid rgb(189, 189, 189); + height: 60px; + overflow: hidden; + background-color: #eee; +} + +.animations-controls { + width: 100%; + max-width: 200px; + display: flex; + align-items: center; +} + +.animations-controls > .toolbar { + display: inline-block; +} + +.animations-controls > input { + flex-grow: 1; + margin-right: 10px; +} + +.animations-controls > .playback-label { + width: 35px; +} + +.styles-selector { + cursor: text; +} + +.image-preview-container { + background: transparent; + text-align: center; +} + +.sidebar-pane.composite { + position: absolute; +} + +.metrics { + border-bottom: 1px solid #ccc; +} + +.-theme-with-dark-background .metrics { + color: #222; +} + +.-theme-with-dark-background .metrics > div:hover { + color: #ccc; +} + +.metrics-and-styles .metrics { + border-top: 1px solid #ccc; + border-bottom: none; +} + +.sidebar-pane.composite .metrics { + min-height: 190px; + display: flex; + flex-direction: column; + -webkit-align-items: center; + -webkit-justify-content: center; +} + +.sidebar-pane .metrics-and-styles, +.sidebar-pane .metrics-and-computed { + display: flex !important; + flex-direction: column !important; + position: relative; +} + +.sidebar-pane .style-panes-wrapper { + transform: translateZ(0); + flex: 1; + overflow-y: auto; + position: relative; +} + +.styles-sidebar-pane-toolbar-container { + flex-shrink: 0; + overflow: hidden; +} + +.styles-sidebar-pane-toolbar { + border-bottom: 1px solid #eee; + flex-shrink: 0; +} + +.styles-sidebar-pane-filter-box { + flex: auto; + display: flex; +} + +.styles-sidebar-pane-filter-box > input { + outline: none !important; + border: none; + width: 100%; + background: transparent; + margin-left: 4px; +} + +.sidebar-pane.composite .platform-fonts { + -webkit-user-select: text; +} + +.sidebar-pane.composite .platform-fonts .sidebar-separator { + height: 24px; + background-color: #f1f1f1; + border-color: #ddd; + display: flex; + align-items: center; +} + +.sidebar-pane.composite .platform-fonts .stats-section { + margin: 5px 0; +} + +.sidebar-pane.composite .platform-fonts .font-stats-item { + padding-left: 1em; +} + +.sidebar-pane.composite .platform-fonts .font-stats-item .delimeter { + margin: 0 1ex 0 1ex; +} + +.sidebar-pane.composite .metrics-and-styles .metrics { + border-bottom: none; +} + +.sidebar-pane > .split-widget { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} + +.styles-section:not(.read-only) .style-properties .webkit-css-property.styles-panel-hovered, +.styles-section:not(.read-only) .style-properties .value .styles-panel-hovered, +.styles-section:not(.read-only) .style-properties .value.styles-panel-hovered, +.styles-section:not(.read-only) span.simple-selector.styles-panel-hovered, +.styles-section:not(.read-only) .media-text.styles-panel-hovered { + text-decoration: underline; + cursor: default; +} + +.styles-clipboard-only { + display: inline-block; + width: 0; + opacity: 0; + pointer-events: none; + white-space: pre; +} + +.popover-icon { + margin-left: 1px; + margin-right: 2px; + width: 10px; + height: 10px; + position: relative; + top: 1px; + display: inline-block; + line-height: 1px; + -webkit-user-select: none; +} + +.bezier-icon { + background-color: #9C27B0; + border-radius: 2px; +} + +.bezier-icon path { + stroke: white; + stroke-width: 1.5; + stroke-linecap: square; + fill: none; +} + +li.child-editing .styles-clipboard-only { + display: none; +} + +li.editing .swatch, +li.editing .enabled-button { + display: none !important; +} + +.sidebar-separator { + background-color: #ddd; + padding: 0 5px; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; + color: rgb(50, 50, 50); + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + line-height: 16px; +} + +.sidebar-separator > span.monospace { + background: rgb(255, 255, 255); + padding: 0px 3px; + border-radius: 2px; + border: 1px solid #C1C1C1; +} + +.swatch-inner { + width: 100%; + height: 100%; + display: inline-block; + border: 1px solid rgba(128, 128, 128, 0.6); +} + +.swatch-inner:hover { + border: 1px solid rgba(64, 64, 64, 0.8); +} + +.animation-section-body { + display: none; +} + +.animation-section-body.expanded { + display: block; +} + +.animation-section-body .section { + border-bottom: 1px solid rgb(191, 191, 191); +} + +.animationsHeader { + padding-top: 23px; +} + +.global-animations-toolbar { + position: absolute; + top: 0; + width: 100%; + background-color: #eee; + border-bottom: 1px solid rgb(163, 163, 163); + padding-left: 10px; +} + +.events-pane .section:not(:first-of-type) { + border-top: 1px solid rgb(231, 231, 231); +} + +.events-pane .section { + margin: 0; +} + +.style-properties li.editing { + margin-left: 10px; + text-overflow: clip; +} + +.style-properties li.editing-sub-part { + padding: 3px 6px 8px 18px; + margin: -1px -6px -8px -6px; + text-overflow: clip; +} + +.properties-widget-section { + padding: 2px 0px 2px 5px; +} + +.sidebar-pane-section-toolbar { + position: absolute; + right: 0; + bottom: 0; + visibility: hidden; + background-color: rgba(255, 255, 255, 0.9); +} + +.styles-pane:not(.is-editing-style) .styles-section.matched-styles:not(.read-only):hover .sidebar-pane-section-toolbar { + visibility: visible; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorCommon.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorCommon.css new file mode 100644 index 0000000..8d3e76a --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorCommon.css @@ -0,0 +1,224 @@ +/* + * Copyright 2015 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +* { + /* This is required for correct sizing of flex items because we rely + * on an old version of the flexbox spec. + * Longer-term we should remove this, see crbug.com/473625 */ + min-width: 0; + min-height: 0; +} + +:host-context(.platform-mac) .monospace, +:host-context(.platform-mac) .source-code, +.platform-mac .monospace, +.platform-mac .source-code { + font-size: 11px !important; + font-family: Menlo, monospace; +} + +:host-context(.platform-windows) .monospace, +:host-context(.platform-windows) .source-code, +.platform-windows .monospace, +.platform-windows .source-code { + font-size: 12px !important; + font-family: Consolas, Lucida Console, monospace; +} + +:host-context(.platform-linux) .monospace, +:host-context(.platform-linux) .source-code, +.platform-linux .monospace, +.platform-linux .source-code { + font-size: 11px !important; + font-family: dejavu sans mono, monospace; +} + +.source-code { + font-family: monospace; + font-size: 11px !important; + white-space: pre-wrap; +} + +* { + box-sizing: border-box; +} + +:focus { + outline: none; +} + +img { + -webkit-user-drag: none; +} + +iframe, +a img { + border: none; +} + +.fill { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +iframe.fill { + width: 100%; + height: 100%; +} + +.widget { + position: relative; + flex: auto; +} + +.hbox { + display: flex; + flex-direction: row !important; + position: relative; +} + +.vbox { + display: flex; + flex-direction: column !important; + position: relative; +} + +.flex-auto { + flex: auto; +} + +.flex-auto-important { + flex: auto !important; +} + +.flex-none { + flex: none; +} + +.flex-centered { + display: flex; + align-items: center; + justify-content: center; +} + +iframe.widget { + position: absolute; + width: 100%; + height: 100%; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.hidden { + display: none !important; +} + +.monospace { + font-size: 10px !important; + font-family: monospace; +} + +.highlighted-search-result { + border-radius: 1px; + padding: 1px; + margin: -1px; + background-color: rgba(255, 255, 0, 0.8); +} + +.-theme-with-dark-background .highlighted-search-result, +:host-context(.-theme-with-dark-background) .highlighted-search-result { + background-color: hsl(133, 100%, 30%); + color: #333; +} + +.link { + cursor: pointer; + text-decoration: underline; + color: rgb(17, 85, 204); +} + +button, +input, +select { + font-family: inherit; + font-size: inherit; + color: inherit; +} + +input { + background-color: white; +} + +:host-context(.-theme-with-dark-background) input[type="checkbox"] { + -webkit-filter: invert(80%); +} + +input[type="search"]:focus, +input[type="text"]:focus { + outline: auto 5px -webkit-focus-ring-color; +} + + +.highlighted-search-result.current-search-result { + border-radius: 1px; + padding: 1px; + margin: -1px; + background-color: rgba(255, 127, 0, 0.8); +} + +.dimmed { + opacity: 0.6; +} + +.editing { + -webkit-user-select: text; + box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px; + outline: 1px solid rgb(66%, 66%, 66%) !important; + background-color: white; + -webkit-user-modify: read-write-plaintext-only; + text-overflow: clip !important; + padding-left: 2px; + margin-left: -2px; + padding-right: 2px; + margin-right: -2px; + margin-bottom: -1px; + padding-bottom: 1px; + opacity: 1.0 !important; +} + +.editing, +.editing * { + color: #222 !important; + text-decoration: none !important; +} + +.error-input { + outline: auto 2px red !important; +} + +:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar, +:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar { + width: 14px; +} + +:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar-track, +:host-context(:not(.platform-mac).-theme-with-dark-background) ::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 1px rgba(255,255,255,0.3); +} + +:not(.platform-mac).-theme-with-dark-background ::-webkit-scrollbar-thumb, +:host-context(:not(.platform-mac).-theme-with-dark-background) .-theme-with-dark-background ::-webkit-scrollbar-thumb { + border-radius: 2px; + background-color: #333; + -webkit-box-shadow: inset 0 0 1px rgba(255,255,255,0.5); +} + +/*# sourceURL=ui/inspectorCommon.css */ \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorStyle.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorStyle.css new file mode 100644 index 0000000..4b25435 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorStyle.css @@ -0,0 +1,518 @@ +/* + * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2009 Anthony Ricaud + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +html { + height: 100%; + overflow: hidden; +} + +body { + height: 100%; + width: 100%; + position: relative; + overflow: hidden; + margin: 0; + cursor: default; + font-family: '.SFNSDisplay-Regular', 'Helvetica Neue', 'Lucida Grande', sans-serif; + font-size: 12px; + tab-size: 4; + -webkit-user-select: none; + color: #222; +} + +.platform-linux { + color: rgb(48, 57, 66); + font-family: Ubuntu, Arial, sans-serif; +} + +.platform-mac { + color: rgb(48, 57, 66); + font-family: '.SFNSDisplay-Regular', 'Helvetica Neue', 'Lucida Grande', sans-serif; +} + +.platform-windows { + font-family: 'Segoe UI', Tahoma, sans-serif; +} + +label:hover input { + box-shadow: 0 0 3px highlight; +} + +fieldset[disabled] label:hover input { + box-shadow: none; +} + +.object-popover-container { + display: inline-block; +} + +.inspected-page-placeholder { + background-color: white; +} + +.toolbar-background { + padding-left: 1px; + border-bottom: 1px solid rgb(64%, 64%, 64%); + background-origin: padding-box; + background-clip: padding-box; +} + +.bubble-repeat-count { + display: inline-block; + height: 14px; + background-color: rgb(128, 151, 189); + vertical-align: middle; + white-space: nowrap; + padding: 1px 4px; + text-align: left; + font-size: 11px; + line-height: normal; + font-weight: bold; + text-shadow: none; + color: white; + margin-top: -1px; + border-radius: 7px; +} + +.error-message { + color: red; +} + +.-theme-with-dark-background .error-message { + color: hsl(0, 100%, 65%); +} + +.panel { + display: flex; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 0; +} + +iframe.extension { + flex: auto; + width: 100%; + height: 100%; +} + +iframe.panel.extension { + display: block; + height: 100%; +} + +.outline-disclosure { + padding: 0 0 0 4px; + margin: 0; +} + +.outline-disclosure li { + position: relative; +} + +.outline-disclosure li.hovered:not(.selected) .selection { + display: block; + left: 3px; + right: 3px; + background-color: rgba(56, 121, 217, 0.1); + border-radius: 5px; +} + +.outline-disclosure li .selection { + display: none; + z-index: -1; + margin-left: -10000px; +} + +.outline-disclosure li.selected .selection { + display: block; + background-color: #dadada; +} + +.outline-disclosure li.in-clipboard .highlight { + outline: 1px dotted darkgrey; +} + +.outline-disclosure li.elements-drag-over .selection { + display: block; + margin-top: -2px; + border-top: 2px solid rgb(56, 121, 217); +} + +ol.outline-disclosure:focus li.selected .selection { + background-color: rgb(56, 121, 217); +} + +ol.outline-disclosure:focus li.parent.selected::before { + background-color: white; +} + +ol.outline-disclosure, +.outline-disclosure ol { + list-style-type: none; +} + +.outline-disclosure-no-padding { + padding: 0; +} + +.outline-disclosure ol { + padding-left: 12px; +} + +.outline-disclosure li { + margin-top: 1px; + text-overflow: ellipsis; + white-space: nowrap; +} + +ol.outline-disclosure:focus li.selected { + color: white; +} + +ol.outline-disclosure:focus li.selected * { + color: inherit; +} + +.outline-disclosure li::before { + -webkit-mask-position: -4px -96px; + background-color: rgb(110, 110, 110); +} + +.outline-disclosure li.parent.expanded::before { + -webkit-mask-position: -20px -96px; +} + +.outline-disclosure ol.children { + display: none; +} + +.outline-disclosure ol.children.expanded { + display: block; +} + +.properties-accessor-property-name { + font-style: italic; +} + +.child-editing { + color: #222 !important; + text-decoration: none !important; + overflow: visible !important; +} + +.sidebar { + overflow-x: hidden; + background-color: #f3f3f3; +} + +.pane-title-button { + color: rgb(6, 6, 6); + background-color: transparent; + border: 1px solid rgb(165, 165, 165); + background-color: #eee; + background-image: linear-gradient(to bottom, rgb(252, 252, 252), rgb(223, 223, 223)); + border-radius: 12px; + -webkit-appearance: none; +} + +.pane-title-button:active { + background-color: rgb(215, 215, 215); + background-image: linear-gradient(to bottom, rgb(194, 194, 194), rgb(239, 239, 239)); +} + +.sidebar-tree, +.sidebar-tree .children { + position: relative; + padding: 0; + margin: 0; + list-style: none; +} + +.sidebar-tree-section { + position: relative; + height: 18px; + padding: 1px 10px 6px 10px; + white-space: nowrap; + margin-top: 1px; + color: rgb(92, 110, 129); + text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0; +} + +.sidebar-tree-item { + position: relative; + height: 36px; + padding: 0 5px 0 5px; + white-space: nowrap; + overflow-x: hidden; + overflow-y: hidden; + margin-top: 1px; + line-height: 34px; + border-top: 1px solid transparent; +} + +.sidebar-tree .children { + display: none; +} + +.sidebar-tree .children.expanded { + display: block; +} + +.sidebar-tree-section + .children > .sidebar-tree-item { + padding-left: 10px !important; +} + +.sidebar-tree-section + .children.small > .sidebar-tree-item { + padding-left: 17px !important; +} + +.sidebar-tree > .children > .sidebar-tree-item { + padding-left: 37px; +} + +.sidebar-tree > .children > .children > .sidebar-tree-item { + padding-left: 37px; +} + +.sidebar-tree.some-expandable > .sidebar-tree-item:not(.parent) .icon { + margin-left: 16px; +} + +.sidebar-tree-item .disclosure-button { + -webkit-mask-position: -4px -96px; +} + +.sidebar-tree-item.selected .disclosure-button { + background-color: white; + -webkit-mask-position: -4px -96px; +} + +.sidebar-tree-item.expanded .disclosure-button { + -webkit-mask-position: -20px -96px; +} + +.sidebar-tree-item.selected.expanded .disclosure-button { + background-color: white; + -webkit-mask-position: -20px -96px; +} + +.sidebar-tree-item .icon { + float: left; + width: 32px; + height: 32px; + margin-top: 1px; + margin-right: 3px; +} + +.sidebar-tree-item.wait .icon { + content: none; +} + +.spinner-icon::before, +.sidebar-tree-item.wait .icon::before { + display: block; + width: 24px; + height: 24px; + margin: 4px; + border: 3px solid grey; + border-radius: 12px; + clip: rect(0, 15px, 15px, 0); + content: ""; + position: absolute; + -webkit-animation: spinner-animation 1s linear infinite; + box-sizing: border-box; +} + +.spinner-icon.small::before, +.sidebar-tree-item.wait.small .icon::before { + width: 14px; + height: 14px; + margin: 1px; + clip: rect(0, 9px, 9px, 0); + border-width: 2px; +} + +.sidebar-tree-item.wait.selected .icon::before { + border-color: white; +} + +@-webkit-keyframes spinner-animation { + from { transform: rotate(0); } + to { transform: rotate(360deg); } +} + +li .status { + float: right; + height: 16px; + margin-top: 9px; + margin-left: 4px; + line-height: 1em; +} + +li .status:empty { + display: none; +} + +li .status .bubble-repeat-count:empty { + display: none; +} + +li.selected .status .bubble-repeat-count { + background-color: white !important; + color: rgb(132, 154, 190) !important; +} + +:focus li.selected .status .bubble-repeat-count { + color: rgb(36, 98, 172) !important; +} + +body.inactive li.selected .status .bubble-repeat-count { + color: rgb(159, 159, 159) !important; +} + +.sidebar-tree.small .sidebar-tree-item, +.sidebar-tree .children.small .sidebar-tree-item, +.sidebar-tree-item.small { + height: 20px; +} + +.sidebar-tree.small .sidebar-tree-item .icon, +.sidebar-tree .children.small .sidebar-tree-item .icon, +.sidebar-tree-item.small .icon { + width: 16px; + height: 16px; +} + +.sidebar-tree.small .sidebar-tree-item .status, +.sidebar-tree .children.small .sidebar-tree-item .status, +.sidebar-tree-item.small .status { + margin-top: 1px; +} + +.sidebar-tree-item.selected, +.-theme-selection-color { + color: white; + background-origin: padding-box; + background-clip: padding-box; + background-color: rgb(56, 121, 217); +} + +:focus .sidebar-tree-item.selected { + background-color: rgb(56, 121, 217); +} + +body.inactive .sidebar-tree-item.selected { + background-color: rgb(180,180,180); +} + +.sidebar-tree-item .titles { + display: flex; + flex-direction: column; + position: relative; + top: 5px; + line-height: 12px; + padding-bottom: 1px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +.titles > .title-container { + display: flex; +} + +.sidebar-tree-item .titles.no-subtitle { + top: 10px; +} + +.sidebar-tree.small .sidebar-tree-item .titles, +.sidebar-tree .children.small .sidebar-tree-item .titles, +.sidebar-tree-item.small .titles { + top: 2px; + line-height: normal; +} + +.sidebar-tree:not(.small) .sidebar-tree-item:not(.small) .title::after, +.sidebar-tree .children:not(.small) .sidebar-tree-item .title::after { + content: "\A"; + white-space: pre; +} + +.sidebar-tree-item .subtitle { + font-size: 80%; +} + +.sidebar-tree.small .sidebar-tree-item .subtitle, +.sidebar-tree .children.small .sidebar-tree-item .subtitle, +.sidebar-tree-item.small .subtitle { + display: none; +} + +.sidebar-tree-item.selected .subtitle { + color: white; +} + +.bubble-repeat-count.debug, +.console-debug-level .bubble-repeat-count { + background-color: rgb(0, 0, 255) !important; +} + +.bubble-repeat-count.warning, +.console-warning-level .bubble-repeat-count { + background-color: rgb(232, 164, 0) !important; +} + +.bubble-repeat-count.error, +.console-error-level .bubble-repeat-count { + background-color: rgb(216, 35, 35) !important; +} + +.soft-context-menu-glass-pane { + z-index: 20000; +} + +.root-view { + background-color: white; + overflow: hidden; + position: absolute !important; + left: 0; + top: 0; + right: 0; + bottom: 0; +} + +.drawer-toolbar { + margin-right: -6px; +} + +/*# sourceURL=ui/inspectorStyle.css */ \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorSyntaxHighlight.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorSyntaxHighlight.css new file mode 100644 index 0000000..38cebcc --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/inspectorSyntaxHighlight.css @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2009 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +.cm-js-keyword {color: rgb(170, 13, 145);} +.cm-js-number {color: rgb(28, 0, 207);} +.cm-js-comment {color: rgb(0, 116, 0);} +.cm-js-string {color: rgb(196, 26, 22);} +.cm-js-string-2 {color: rgb(196, 26, 22);} + +.cm-css-keyword { color: rgb(7, 144, 154);} +.cm-css-number {color: rgb(50, 0, 255);} +.cm-css-comment {color: rgb(0, 116, 0);} +.cm-css-def {color: rgb(200, 0, 0);} +.cm-css-meta {color: rgb(200, 0, 0);} +.cm-css-atom {color: rgb(7, 144, 154);} +.cm-css-string {color: rgb(7, 144, 154);} +.cm-css-string-2 {color: rgb(7, 144, 154);} +.cm-css-link {color: rgb(7, 144, 154);} +.cm-css-variable {color: rgb(200, 0, 0);} +.cm-css-variable-2 {color: rgb(0, 0, 128);} +.cm-css-property, .webkit-css-property {color: rgb(200, 0, 0);} + +.cm-xml-meta {color: rgb(192, 192, 192);} +.cm-xml-comment {color: rgb(35, 110, 37);} +.cm-xml-string {color: rgb(26, 26, 166);} +.cm-xml-tag {color: rgb(136, 18, 128);} +.cm-xml-attribute {color: rgb(153, 69, 0);} +.cm-xml-link {color: #00e;} + +.webkit-html-comment { + /* Keep this in sync with view-source.css (.webkit-html-comment) */ + color: rgb(35, 110, 37); +} + +.webkit-html-tag { + color: rgb(168, 148, 166); +} + +.webkit-html-tag-name, .webkit-html-close-tag-name { + /* Keep this in sync with view-source.css (.webkit-html-tag) */ + color: rgb(136, 18, 128); +} + +.webkit-html-pseudo-element { + /* This one is non-standard. */ + color: brown; +} + +.webkit-html-js-node, +.webkit-html-css-node { + white-space: pre-wrap; +} + +.webkit-html-text-node { + unicode-bidi: -webkit-isolate; +} + +.webkit-html-entity-value { + /* This one is non-standard. */ + background-color: rgba(0, 0, 0, 0.15); + unicode-bidi: -webkit-isolate; +} + +.webkit-html-doctype { + /* Keep this in sync with view-source.css (.webkit-html-doctype) */ + color: rgb(192, 192, 192); +} + +.webkit-html-attribute-name { + /* Keep this in sync with view-source.css (.webkit-html-attribute-name) */ + color: rgb(153, 69, 0); + unicode-bidi: -webkit-isolate; +} + +.webkit-html-attribute-value { + /* Keep this in sync with view-source.css (.webkit-html-attribute-value) */ + color: rgb(26, 26, 166); + unicode-bidi: -webkit-isolate; +} + +.webkit-html-external-link, +.webkit-html-resource-link { + /* Keep this in sync with view-source.css (.webkit-html-external-link, .webkit-html-resource-link) */ + color: #00e; +} + +.-theme-with-dark-background .webkit-html-external-link, +.-theme-with-dark-background .webkit-html-resource-link, +:host-context(.-theme-with-dark-background) .webkit-html-external-link, +:host-context(.-theme-with-dark-background) .webkit-html-resource-link { + color: hsl(0, 0%, 67%); +} + +.webkit-html-resource-link { + /* Required for consistency with view-source.css, since anchors may not have href attributes */ + text-decoration: underline; + cursor: pointer; +} + +.webkit-html-external-link { + /* Keep this in sync with view-source.css (.webkit-html-external-link) */ + text-decoration: none; +} + +.webkit-html-external-link:hover { + /* Keep this in sync with view-source.css (.webkit-html-external-link:hover) */ + text-decoration: underline; +} + +.webkit-html-end-of-file { + /* Keep this in sync with view-source.css (.webkit-html-end-of-file) */ + color: rgb(255, 0, 0); + font-weight: bold; +} + +/*# sourceURL=ui/inspectorSyntaxHighlight.css */ \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/sidebarPane.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/sidebarPane.css new file mode 100644 index 0000000..68e8c6d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/devtools/sidebarPane.css @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2009 Anthony Ricaud + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +.sidebar-pane { + position: relative; + flex-direction: column; + display: flex; + flex: none; +} + +.sidebar-pane-hidden { + display: none; +} + +.sidebar-pane .info { + text-align: center; + font-style: italic; + padding: 6px; + color: #888; +} + +.sidebar-pane .section .properties-tree { + padding-left: 16px; +} + +.sidebar-tabbed-pane .tabbed-pane-header { + border-bottom: 1px solid rgb(202, 202, 202); + background-color: #eee; +} + +.sidebar-pane-title { + display: flex; + align-items: center; + background-color: #eee; + height: 20px; + padding: 0 5px; + border-top: 1px solid #dadada; + white-space: nowrap; + overflow: hidden; + position: relative; +} + +.sidebar-pane-title.expanded, +.sidebar-pane-title:last-child { + border-bottom: 1px solid #ddd; +} + +.sidebar-pane-title::before { + -webkit-mask-position: -4px -96px; +} + +.sidebar-pane-title.expanded::before { + -webkit-mask-position: -20px -96px; +} + +.sidebar-pane > .toolbar { + border-bottom: 1px solid #eee; +} + +.sidebar-pane > .toolbar > * { + pointer-events: auto; +} + +.sidebar-pane-title > .toolbar { + position: absolute; + right: 0; + top: -3px; +} + +.section > .header input[type=checkbox] { + height: 1em; + width: 1em; + margin-left: 0; + margin-top: 0; + margin-bottom: 0.25em; + vertical-align: bottom; +} + +.hidden-callframes-message { + text-align: center; + font-style: italic; + padding: 4px; + color: #888; + background-color: #FFFFC2; +} + + +/*# sourceURL=ui/sidebarPane.css */ \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/fonts.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/fonts.css new file mode 100644 index 0000000..b2604b6 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/fonts.css @@ -0,0 +1,8 @@ +@charset "UTF-8"; +@font-face { + font-family: 'Roboto Flex'; + src: url('../fonts/Roboto-Flex-Regular.woff2') format('woff2 supports variations'), + url('../fonts/Roboto-Flex-Regular.woff2') format('woff2-variations'); + font-weight: 100 1000; + font-stretch: 25% 151%; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layers.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layers.css new file mode 100644 index 0000000..04c6c1d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layers.css @@ -0,0 +1 @@ +@layer components, utilities; diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layout.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layout.css new file mode 100644 index 0000000..5fda36b --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/layout.css @@ -0,0 +1,74 @@ +@charset "UTF-8"; +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +:root { + font-size: 16px; +} +* { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +html { + padding: 0; + margin: 0; + height: 100%; +} +body { + background-color: #fff; + font-family: 'Roboto Flex', system-ui; + padding: 0; + margin: 0; + font-size: 12px; + height: 100%; + line-height: 1; + overflow-y: scroll; +} + +a { + color: currentColor; +} + +button, a, select, span, label, .toggler-wr { + outline: none; +} + +.hidden{ + display: none !important; +} \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/log.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/log.css new file mode 100644 index 0000000..abf4213 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/log.css @@ -0,0 +1,412 @@ +/* log */ +.log-journal { + min-width: 1200px; +} +.btn { + font-weight: 400; + background-color: #66B574; + color: #fff; + border: 0; + padding: 0.713em 1em; + border-radius: 3px; + vertical-align: middle; + display: inline-block; + margin: 0; + text-decoration: none; + outline: none; + cursor: pointer; +} +.text-green { + color: #66b574; +} +.tab-selector-dropdown { + height: 30px; + line-height: 30px; + padding: 0 30px 0 10px; + outline: 0; + border: 1px solid #e3e3e3; + border-radius: 2px; + background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2011%207%22%20fill%3D%22none%22%20stroke%3D%22%23b9b9b9%22%20stroke-width%3D%221.215%22%20stroke-linecap%3D%22round%22%20height%3D%22100%25%22%20width%3D%22100%25%22%3E%3Cpath%20d%3D%22M1%201L5.4%206%2010%201%22%2F%3E%3C%2Fsvg%3E") no-repeat; + background-position: right 13px bottom 9px; + background-size: 12px 10px; + max-width: 300px; + margin-left: 10px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; +} + +.log-header { + display: flex; + flex-wrap: wrap; +} +.log-header > * { + display: flex; + align-items: center; + height: 40px; + padding-left: 13px; + border-bottom: 1px solid #ececec; +} +.log-header > *:nth-child(-n+2) { + height: 50px; +} +.log-header > *:nth-child(odd) { + width: 35%; + flex-basis: 35%; +} +.log-header > *:nth-child(even) { + width: 65%; + flex-basis: 65%; + border-left: 1px solid #ececec; +} +.log-header .col-tab-drop { + flex-grow: 1; +} +.log-header .col-logo { + width: 35px; + flex-shrink: 0; +} +.log-header .col-logo img { + width: 21px; +} +.log-header .col-refresh .btn { + margin-right: 16px; + } + +.log-header .col-refresh #preserveLog { + margin-left: 16px; +} + +.log-header .col-refresh #preserveLog label { + line-height: 1.2; +} + +.log-header .col-search .icon-search { + width: 35px; + padding-left: 1px; +} +.log-header .col-search .icon-search img { + width: 16px; +} +.log-header .col-search input { + flex-grow: 1; + border: 0; + background: none; + outline: none; + padding: 5px 0; +} +.log-header .col-rules { + display: flex; + font-size: 11px; +} +.log-header .col-rules > * { + margin-left: 18px; +} +.log-header .col-rules > *:first-child { + margin-left: 0; +} +.log-header .col-filter-log { + padding-right: 13px; +} +.log-header .col-type-tabs { + display: flex; + font-size: 11px; + margin-right: auto; +} +.log-header .col-type-tabs a { + text-decoration: none; + padding: 0 12px; + position: relative; + z-index: 1; +} +.log-header .col-type-tabs a.active:before { + content: ''; + position: absolute; + left: 0; + right: 0; + height: 3px; + bottom: -14px; + background-color: #66b574; +} + +.checkb-wrap { + display: flex; + align-items: center; + cursor: pointer; + white-space: nowrap; +} +.checkb-wrap label { + max-width: 500px; + cursor: pointer; + text-overflow: ellipsis; + overflow: hidden; +} +.checkb-wrap .checkbox { + width: 16px; + height: 16px; + flex-basis: 16px; + flex-shrink: 0; + background-color: #ececec; + background-position: 50%; + background-repeat: no-repeat; + background-size: 10px 9px; + border-radius: 2px; + margin-right: 10px; +} +.checkb-wrap .checkbox.active { + background-color: #66b574; + background-image: url(../images/checked.svg); +} +.checkb-wrap .radio, .checkb-wrap .checkbox { + vertical-align: middle; + display: inline-block; +} +.checkb-wrap > input { + display: none; +} +.checkb-wrap > input:checked + label > .checkbox { + background-color: #66b574; + background-image: url(../images/checked.svg); +} +.checkb-wrap .radio { + position: relative; + display: inline-block; + vertical-align: middle; + cursor: pointer; +} +.checkb-wrap .radio__input { + display: none; +} +.checkb-wrap .radio__label { + display: inline-block; + vertical-align: middle; +} +.checkb-wrap .radio__label:before { + content: ""; + position: relative; + top: 0; + display: inline-block; + vertical-align: middle; + min-width: 16px; + height: 16px; + margin-right: 10px; + background-color: #ececec; + border-radius: 50%; +} +.checkb-wrap .radio__label:after { + content: ""; + transform: scale(0); + position: absolute; + bottom: 3px; + left: 3px; + width: 10px; + height: 10px; + background-color: #66b574; + border-radius: 50%; + transition: 0.3s ease-in-out transform; +} +.checkb-wrap .radio__input:checked + .radio__label:after { + transform: scale(1); +} +.log-table { + width: 100%; + border-collapse: collapse; + table-layout: fixed; +} +.log-table tr { + cursor: pointer; +} +.log-table tr:hover td { + background-color: #FCFBF7; +} +.log-table tr.green td { + background-color: #E9F4EB; + border-bottom-color: #dae3dc; +} +.log-table tr.green:hover td { + background-color: #e0efe3; +} +.log-table tr.red td { + background-color: #f4e9e9; + border-bottom-color: #e3dada; +} +.log-table tr.red:hover td { + background-color: #efe0e0; +} +.log-table tr.yellow td { + background-color: #FFFCCC; + border-bottom-color: #e3dada; +} +.log-table tr.yellow:hover td { + background-color: #FFFEE5; +} +.log-table th { + background-color: #f7f7f7; + text-align: left; + padding: 13px 0 13px 13px; + color: #ababab; + font-weight: normal; + font-size: 11px; +} +.log-table th:first-child { + width: 45%; +} +.log-table th:nth-child(2) { + width: 15%; +} +.log-table td { + padding: 13px 0 13px 13px; + border-bottom: 1px solid #ececec; + color: #4D4D4D; +} +.log-table td:first-child { + font-weight: 600; + color: #1D1D1D; + text-overflow: ellipsis; + overflow: hidden; +} +.log-table small { + font-size: 9px; + color: rgba(77, 77, 77, 0.5); +} +.log-table td:first-child { + white-space: nowrap; +} +.log-table td { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.log-empty { + text-align: center; + position: absolute; + width: 182px; + left: 50%; + margin-left: -91px; + top: calc(50% - 53px); +} +.log-empty img { + vertical-align: middle; + margin-bottom: 67px; +} +.log-empty a { + color: #66b574; + text-decoration: none; +} +.log-empty .desc { + line-height: 18px; +} +.modal { + background-color: #fff; + position: fixed; + z-index: 10; + width: 700px; + max-height: 90%; + box-shadow: 0 0 31px 4px var(--shadow-color); + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + display: none; + overflow-y: auto; +} +.modal.active { + display: block; +} +.modal .rule-text { + display: block; + width: 100%; + border: 0; + font-weight: 400; + color: #4d4d4d; + font-size: 12px; + outline: none; +} +.modal .checkbox { + width: 20px; + height: 20px; + flex-basis: 20px; +} +.modal .head .title { + font-size: 23px; + font-weight: 700; + text-align: center; + padding: 30px 20px; + letter-spacing: -1px; + color: #4D4D4D; +} +.modal .head .close { + width: 22px; + height: 22px; + position: absolute; + right: 30px; + top: 30px; + background: url(../images/cross.svg) 50% no-repeat; + background-size: contain; + cursor: pointer; +} +.modal .body { + padding: 0 40px; + color: #4d4d4d; +} +.modal .body > .list { + padding: 34px 0; + border-top: 1px solid #EFEFEF; +} +.modal .body > .list li { + display: flex; +} +.modal .body > .list .name { + width: 100px; + flex-shrink: 0; + font-weight: 400; + line-height: 1.2; +} +.modal .body > .list .value { + width: 100%; + line-height: 1.2; + flex-grow: 0; + flex-shrink: 1; + word-break: break-all; +} + +.modal .body > .list .value i { + font-style: italic; +} +.modal .foot { + text-align: center; + padding-bottom: 40px; +} +.modal .foot .btn { + font-size: 14px; +} + +#replaceRules, #stealthActions { + white-space: pre-wrap; +} + +.adg-modal-window-locking-info-right { + width: 100%; + text-align: center; +} +.adg-modal-window-locking-info-right-pic{ + display: block; + max-width: 100%; + margin: 0 auto; +} + +ul.list { + padding: 0; + margin: 0; + list-style: none; +} +ul.list li { + margin-top: 20px; +} +ul.list li:first-child { + margin-top: 0; +} +.col-rules--filter-check label { + line-height: 16px; +} +/* /log */ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/main.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/main.css new file mode 100644 index 0000000..24ded5b --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/main.css @@ -0,0 +1,4 @@ +@import "fonts.css"; +@import "layout.css"; +@import "style.css"; +@import "log.css"; diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/nanobar.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/nanobar.css new file mode 100644 index 0000000..74122c5 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/nanobar.css @@ -0,0 +1,9 @@ +.adg-progress-bar { + height: 2px; +} + +.adg-progress-bar .bar { + background: #66b574; + background: linear-gradient(45deg, rgba(99, 125, 120, 1) 0%, rgba(88, 177, 101, 1) 100%); + box-shadow: 0 0 10px #66b574, 0 0 5px #66b574; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-container.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-container.css new file mode 100644 index 0000000..a17d63d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-container.css @@ -0,0 +1,15 @@ +/** + * Style for the update info popup iframe with notification about rules limits exceeded. + * Should be injected into web page to set the popup position on page properly. + */ + +.adguard-rules-limits-exceeded-iframe { + color-scheme: none; + position: fixed; + bottom: 16px; + right: 16px; + border: none; + /* Size to fit on all locales */ + width: 376px; + height: 200px; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-popup.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-popup.css new file mode 100644 index 0000000..45d05dd --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/rules-limits-popup.css @@ -0,0 +1,107 @@ +/** + * This file is part of AdGuard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension). + * + * AdGuard Browser Extension is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AdGuard Browser Extension is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AdGuard Browser Extension. If not, see . + */ + +html { + height: 100%; +} + +body { + height: 100%; + margin: 0; + display: flex; + flex-direction: column-reverse; +} + +@keyframes popup-show { + 0% { + opacity: 0; + } + /* 5% to show the popup quickly */ + 5% { + opacity: 1; + } + /* the rest 25% of 4 seconds is 1 sec for popup fading away */ + 75% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +.adguard-rules-limits-exceeded-popup { + font-family: 'Roboto Flex', system-ui; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-box-align: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + background-color: #000000; + padding: 12px; + border-radius: 4px; + animation: popup-show 4s ease-in; +} + +.adguard-rules-limits-exceeded-popup__info-icon { + width: 24px; + height: 24px; + flex-shrink: 0; + background-size: cover; + background-repeat: no-repeat; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjkiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDMgMjEpIiBzdHJva2U9IiNGNjcyNDciIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBkPSJNMTIgOHY2TTEyIDE2LjR2LjIiIHN0cm9rZT0iI0Y2NzI0NyIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==); +} + +.adguard-rules-limits-exceeded-popup__content { + padding: 0 12px; + font-size: 16px; + font-weight: 400; + line-height: 21px; + text-align: left; +} + +.adguard-rules-limits-exceeded-popup__content p { + margin: 0; + color: #fff; +} + +.adguard-rules-limits-exceeded-popup__content button { + font-size: 16px; + line-height: 24px; + margin-top: 8px; + color: #67B279; + background: transparent; + border: none; + padding: 0; + cursor: pointer; +} + +.adguard-rules-limits-exceeded-popup__close { + width: 24px; + height: 24px; + flex-shrink: 0; + padding: 8px; + border: none; + cursor: pointer; + background-position: center; + background-size: 16px; + background-color: transparent; + background-repeat: no-repeat; + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNS42NDIgMTUuNjQyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNS42NDIgMTUuNjQyIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj4gIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguODgyLDcuODIxbDYuNTQxLTYuNTQxYzAuMjkzLTAuMjkzLDAuMjkzLTAuNzY4LDAtMS4wNjEgIGMtMC4yOTMtMC4yOTMtMC43NjgtMC4yOTMtMS4wNjEsMEw3LjgyMSw2Ljc2TDEuMjgsMC4yMmMtMC4yOTMtMC4yOTMtMC43NjgtMC4yOTMtMS4wNjEsMGMtMC4yOTMsMC4yOTMtMC4yOTMsMC43NjgsMCwxLjA2MSAgbDYuNTQxLDYuNTQxTDAuMjIsMTQuMzYyYy0wLjI5MywwLjI5My0wLjI5MywwLjc2OCwwLDEuMDYxYzAuMTQ3LDAuMTQ2LDAuMzM4LDAuMjIsMC41MywwLjIyczAuMzg0LTAuMDczLDAuNTMtMC4yMmw2LjU0MS02LjU0MSAgbDYuNTQxLDYuNTQxYzAuMTQ3LDAuMTQ2LDAuMzM4LDAuMjIsMC41MywwLjIyYzAuMTkyLDAsMC4zODQtMC4wNzMsMC41My0wLjIyYzAuMjkzLTAuMjkzLDAuMjkzLTAuNzY4LDAtMS4wNjFMOC44ODIsNy44MjF6IiBmaWxsPSIjZDlkOWQ5Ii8+PC9zdmc+); +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/style.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/style.css new file mode 100644 index 0000000..3e01d97 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/style.css @@ -0,0 +1,1440 @@ +/* Generated by less 2.5.1 */ +:root { + color-scheme: light dark; +} +.wlimit { /* th & st */ + padding: 0 15px; + margin: 0 auto; +} +/* st */ +.tab-pane { + display: none; +} +.settings-wrap { + min-height: 100%; + padding-top: 54px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column; + overflow: hidden; +} +.settings-wrap > .wlimit { + display: flex; + padding-bottom: 50px; +} +.settings-wrap .page-title { + font-size: 28px; + color: #4D4D4D; + line-height: 30px; + padding: 0 15px; + letter-spacing: 0; +} +.settings-wrap .page-title a { + text-decoration: none; +} +.settings-wrap .page-title .back { + width: 10px; + margin-right: 20px; + cursor: pointer; +} +.settings-wrap .page-title .info { + float: right; + font-size: 13px; + line-height: normal; + font-weight: 600; + color: #4d4d4d; + text-align: right; + margin-top: 3px; +} +.settings-wrap .page-title .info .upd { + opacity: 0.3; + margin-top: 5px; +} +.settings-body-subtitle { + font-size: 20px; + color: #4A4A4A; + padding: 0 16px 8px; + letter-spacing: 0; + line-height: 28px; +} +.settings-body { + margin-top: 24px; +} +.settings-sidebar { + width: 170px; + margin-right: 64px; +} +.settings-sidebar .logo img { + width: 109px; +} +.settings-sidebar .nav { + padding: 0; + margin: 0; + list-style: none; + width: 100%; +} +.settings-sidebar .nav li { + list-style: none; + padding: 0; + margin: 32px 0 0; +} + +.settings-sidebar .nav li:last-child { + padding-bottom: 40px; + border-bottom: 1px solid #E7E7E7; +} + +.settings-sidebar .nav span { + display: inline-block; + font-size: 16px; + position: relative; + z-index: 1; + color: #4D4D4D; +} +.nav__item { + position: relative; + line-height: 22px; + text-decoration: none; + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; +} +.settings-sidebar .nav a.active { + -webkit-text-stroke: 1px currentColor; +} +.nav__item:hover { + -webkit-text-stroke: 1px currentColor; +} +.settings-sidebar .nav a.active span:before { + content: ''; + position: absolute; + left: 0; + right: 0; + height: 4px; + background-color: #66b574; + bottom: -12px; +} +.settings-sidebar .logo { + margin-bottom: 40px; +} +.settings-content.tab-pane { + width: 740px; +} +.settings-content a { + color: #66b574; +} +.settings-content .manage-account-btn { + color: #ffffff; + text-decoration: none; +} +.settings-actions { + padding-right: 15px; + margin-top: 30px; + font-size: 14px; + font-weight: 600; + position: relative; +} +.settings-actions a { + padding-right: 42px; +} +.settings-actions a:last-child { + padding-right: 0; +} +.info--rules-current { + position: relative; + padding-right: 48px; + cursor: pointer; +} +.settings-actions__update-button { + font-size: 0; + display: block; + width: 22px; + height: 18px; + cursor: pointer; + background-repeat: no-repeat; + background-image: url(../images/reload-ico.svg); +} +.settings-actions__update-button--spinning { + animation: clockwise 2s linear infinite; +} +.setting-desc { + margin-bottom: 20px; + color: #767676; + font-size: 13px; + line-height: 22px; + padding: 0 15px; +} +.setting-desc--sub { + width: 450px; + margin-top: 15px; +} +.setting-desc + .opts-list li { + border-top: 0; +} + +.filters-search { + display: flex; + justify-content: flex-start; + align-items: center; + border: 1px solid #E7E7E7; + border-width: 0 0 1px 0; + padding: 0 15px 10px 15px; +} + +.filters-search input { + flex-grow: 1; + border: 0; + background: none; + padding: 5px 0 5px 25px; + font-size: 14px; + outline: none; +} +.filters-list--custom .title { + word-break: break-all; +} +/* /st */ +/* th & st */ +.opts-list { + list-style: none; + padding: 0; + margin: 0; +} +.opts-list li { + font-size: 14px; + border: 1px solid #E7E7E7; + border-width: 0 0 1px 0; + padding: 16px 16px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: center; +} +.opts-list li:first-child { + border-top: 0; +} +.opts-list li:last-child { + border-bottom: 0; +} +.warn-message { + color: #e85037; + font-style: italic; +} +.opts-list li .warn-message{ + color: #D6D6D6; +} +.opts-list li a{ + color: #D6D6D6; +} +.opts-list li.active .warn-message{ + color: #e85037; +} +.opts-list li:first-child { + border-top-width: 1px; +} + +.opts-list .opt-name .title { + font-size: 16px; + font-weight: 600; + padding-right: 30px; + line-height: 19px; +} +.opts-list .opt-name .desc { + font-size: 12px; + margin-top: 13px; + font-weight: 400; + line-height: 15px; + padding-right: 60px; + color: #888888; +} +.opts-list .block-type { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + flex-grow: 1; + cursor: pointer; + text-decoration: none; + padding-right: 70px; +} +.opts-list .opt-textarea { + display: block; +} +.opts-list .opt-textarea__in { + display: flex; + justify-content: space-between; + align-items: center; +} +.opt-textarea__item { + width: 100%; + resize: none; + height: 80px; + border-radius: 2px 2px 2px 2px; + border: 1px solid #888888; + padding: 7px 15px; + margin-top: 23px; + color: #4d4d4d; + font-size: 12px; + line-height: 15px; + background-color: #ffffff; +} +.block-type__desc { + display: flex; + flex-direction: column; +} +.block-type__ico { + width: 61px; + height: 60px; + margin-right: 20px; + background-repeat: no-repeat; + display: inline-block; + flex-shrink: 0; +} + +.block-type__ico--1 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYwcHgiIHZpZXdCb3g9IjAgMCA2MSA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAyPC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9ImZpbHRlcl9pY29ucyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iR3JvdXAtMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC40Mzk0NTMsIDAuMDAwMDAwKSI+ICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZSIgZmlsbD0iI0ExQ0Q5MCIgeD0iMCIgeT0iMCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiByeD0iNCI+PC9yZWN0PiAgICAgICAgICAgIDxnIGlkPSJHcm91cC01IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNS4wMDAwMDAsIDE3LjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOC40Mzc1LDE1LjE3ODU3MTQgQzguNDM3NSwxNS4xNzg1NzE0IDEyLjY1NjI1LDE5LjY0Mjg1NzEgMTIuNjU2MjUsMjUgQzguOTA2MjUsMjUgMTAuMzEyNSwyNSA3LjUsMjUgQzcuMDMxMjUsMjAuOTgyMTQyOSA0LjY4NzUsMTguMzAzNTcxNCAyLjM0Mzc1LDE1LjE3ODU3MTQiIGlkPSJQYXRoLTIiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIj48L3BhdGg+ICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC41LDYuMzI5MDU5MTEgTDEwLjUsMTUuMjM4OTc1MiBMMjYuODQ2NTEyNSwxOS43NTg3MjczIEMyOC4yMTI3OTU5LDIwLjI2NzExNTEgMjksMTkuOTE1NTc2OSAyOSwxOS4xMzA0MzA1IEwyOSwyLjU1MzYwODUyIEMyOSwxLjcxMzEzMjA5IDI4LjAxMzA1ODYsMS4xOTExNjMzNiAyNi42MTAyNDA0LDEuNTM2NDM1NzQgQzI2LjQ5NDA0NTEsMS41NzY2ODIzMiAyNi4yNzU4MDA1LDEuNjUxNjQ1NzYgMjUuOTY3OTk4MiwxLjc1NjM3MzI0IEMyNS40NTU4MTI2LDEuOTMwNjQwNjcgMjQuODc5MDg5MywyLjEyNDc1MzMzIDI0LjI1MDMwODMsMi4zMzM3NjE1MSBDMjIuNDUzNzM2NywyLjkzMDk0NTc2IDIwLjU5OTEyNjEsMy41MjgxNTUzNSAxOC43ODU5Mzc4LDQuMDg1ODgwMjQgQzE4LjE2NjA1MjgsNC4yNzY1NTI4MSAxNy41NjAzMzg3LDQuNDU5Njc5MyAxNi45NzExNjE2LDQuNjM0MzE1MTcgQzE0LjM1NTM0OTgsNS40MDk2NTg0NCAxMi4xNjA0ODMyLDUuOTkwNzc4NTYgMTAuNSw2LjMyOTA1OTExIFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiPjwvcGF0aD4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuOTk4OTM1MDE3LDE1LjA3MTQyODYgTDEwLjI1LDE1LjA3MTQyODYgTDEwLjI1LDYuMzU3MTQyODYgTDAuOTk4MzYyNDUyLDYuMzU3MTQyODYgQzEuMDA1Mzk3NTEsNi4zNTcxNDI4NiAxLDYuMzYyNTYyNDcgMSw2LjM2NTExNjg1IEwxLDE1LjA2MzQ1NDYgQzEsMTUuMDcwMTQzNSAwLjk5OTUxNTkyOSwxNS4wNzEyNzMyIDAuOTk4OTM1MDE3LDE1LjA3MTQyODYgWiIgaWQ9IlJlY3RhbmdsZS0yIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiI+PC9wYXRoPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw4LjUgTDIyLjAzMTI1LDYuNjk2NDI4NTciIGlkPSJMaW5lIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+ICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsIiBmaWxsPSIjRkZGRkZGIiBjeD0iMjUuMzEyNSIgY3k9IjUuMzU3MTQyODYiIHJ4PSIxIiByeT0iMSI+PC9lbGxpcHNlPiAgICAgICAgICAgIDwvZz4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==); +} + +.block-type__ico--2 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYwcHgiIHZpZXdCb3g9IjAgMCA2MSA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAxMzwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz4gICAgICAgIDxwYXRoIGQ9Ik0xNS40ODM4NzEsMTUgTDI4LjM2NDkyNywzLjU3MDU1NjgyIiBpZD0icGF0aC0xIj48L3BhdGg+ICAgIDwvZGVmcz4gICAgPGcgaWQ9ImZpbHRlcl9pY29ucyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iR3JvdXAtMTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNDM5NDUzLCAwLjAwMDAwMCkiPiAgICAgICAgICAgIDxnIGlkPSJHcm91cCIgZmlsbD0iIzkwQ0Q5NyI+ICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cC02Ij4gICAgICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHg9IjAiIHk9IjAiIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgcng9IjQiPjwvcmVjdD4gICAgICAgICAgICAgICAgPC9nPiAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8ZyBpZD0iR3JvdXAtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUuMDAwMDAwLCAxNS4wMDAwMDApIj4gICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0yIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgY3g9IjE1LjE5MDYxNTgiIGN5PSIxNS4xOTA2MTU4IiByPSI5LjAwMjkzMjU1Ij48L2NpcmNsZT4gICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0yIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgY3g9IjE1LjA5NTMwNzkiIGN5PSIxNS4wOTUzMDc5IiByPSIxNC45MDQ2OTIxIj48L2NpcmNsZT4gICAgICAgICAgICAgICAgPGcgaWQ9IkxpbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgICAgICAgICAgICAgICAgICA8dXNlIHN0cm9rZT0iIzkwQ0Q5NyIgc3Ryb2tlLXdpZHRoPSI1IiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4gICAgICAgICAgICAgICAgICAgIDx1c2Ugc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICAgICAgICAgICAgICA8L2c+ICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMyIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9IiM3RUJGODUiIGN4PSI0LjM1NDgzODcxIiBjeT0iNC4zNTQ4Mzg3MSIgcj0iMy4zODcwOTY3NyI+PC9jaXJjbGU+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+); +} + +.block-type__ico--3 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYwcHgiIHZpZXdCb3g9IjAgMCA2MSA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAxNDwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJmaWx0ZXJfaWNvbnMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9Ikdyb3VwLTE0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjQzOTQ1MywgMC4wMDAwMDApIj4gICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMyIgZmlsbD0iIzkwQ0RCMSI+ICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIHg9IjAiIHk9IjAiIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgcng9IjQiPjwvcmVjdD4gICAgICAgICAgICA8L2c+ICAgICAgICAgICAgPHBhdGggZD0iTTQ1LDIwLjY5NTkxNjYgQzQzLjg5NjA5NTksMjEuMTg1NDA3OCA0Mi43MTAwNDM1LDIxLjUxNjI4NjEgNDEuNDY1MDQ2LDIxLjY2NTA1NTMgQzQyLjczNTcwNzUsMjAuOTAzMzM4MSA0My43MTE2NDMxLDE5LjY5NzE4ODEgNDQuMTcxMjUxNiwxOC4yNTk4ODYyIEM0Mi45ODE4NTk0LDE4Ljk2NTI5NSA0MS42NjQ3OTE3LDE5LjQ3NzQ2MiA0MC4yNjI3NjMyLDE5Ljc1MzQzOCBDMzkuMTQwMTA5MSwxOC41NTcyNDg5IDM3LjU0MDQ0NDMsMTcuODA5ODg3MSAzNS43NzAxNTQ3LDE3LjgwOTg4NzEgQzMyLjM3MTA3OTQsMTcuODA5ODg3MSAyOS42MTUzNjIxLDIwLjU2NTQ4NzIgMjkuNjE1MzYyMSwyMy45NjQ1MDQgQzI5LjYxNTM2MjEsMjQuNDQ2OTA1NCAyOS42Njk3OTU2LDI0LjkxNjY1MDYgMjkuNzc0NzM2OCwyNS4zNjcxNzcgQzI0LjY1OTUxMjQsMjUuMTEwNDE5NyAyMC4xMjQzMDY0LDIyLjY2MDE1MTEgMTcuMDg4Njg3MywxOC45MzYzNDk3IEMxNi41NTg4ODM3LDE5Ljg0NTM3MTQgMTYuMjU1MzEsMjAuOTAyNjM1IDE2LjI1NTMxLDIyLjAzMDYyMSBDMTYuMjU1MzEsMjQuMTY2MDA3NSAxNy4zNDE4NzA0LDI2LjA0OTkxMDEgMTguOTkzMzkwNiwyNy4xNTM2Mzg0IEMxNy45ODQ0NjY4LDI3LjEyMTY0NjIgMTcuMDM1NDI1NywyNi44NDQ3OTEzIDE2LjIwNTY4MTIsMjYuMzgzNzc2NiBDMTYuMjA1MDk1MywyNi40MDk0NDA2IDE2LjIwNTA5NTMsMjYuNDM1MjIxOCAxNi4yMDUwOTUzLDI2LjQ2MTE3ODggQzE2LjIwNTA5NTMsMjkuNDQzMjQzMyAxOC4zMjY3MTIzLDMxLjkzMDc3NzUgMjEuMTQyMjUzNiwzMi40OTYzMjMyIEMyMC42MjU4Njc5LDMyLjYzNjg4OTQgMjAuMDgyMDYwNCwzMi43MTIzNTggMTkuNTIwNzMzNCwzMi43MTIzNTggQzE5LjEyNDExMywzMi43MTIzNTggMTguNzM4NTY2OSwzMi42NzM2ODYyIDE4LjM2MjY4ODcsMzIuNjAxNzMzMiBDMTkuMTQ1OTY4NSwzNS4wNDY4NDU2IDIxLjQxODkzMjgsMzYuODI2NTY4NyAyNC4xMTIyNDc4LDM2Ljg3NjA4MDMgQzIyLjAwNTgwNjYsMzguNTI3MDE0NiAxOS4zNTE5MjUxLDM5LjUxMDg2MDMgMTYuNDY4MjM5MywzOS41MTA4NjAzIEMxNS45NzE0MjM5LDM5LjUxMDg2MDMgMTUuNDgxNTIyNSwzOS40ODE3OTc5IDE1LDM5LjQyNDY2OTEgQzE3LjcyMzc4MzcsNDEuMTcxMTY5NiAyMC45NTkwMzEzLDQyLjE5MDExMjkgMjQuNDM0ODA1OCw0Mi4xOTAxMTI5IEMzNS43NTU3NDA3LDQyLjE5MDExMjkgNDEuOTQ2NTY4NSwzMi44MTE0OTg0IDQxLjk0NjU2ODUsMjQuNjc4MTE1OSBDNDEuOTQ2NTY4NSwyNC40MTEyODA0IDQxLjk0MDQ3NDcsMjQuMTQ1ODUxMyA0MS45Mjg2OTc0LDIzLjg4MTgyODQgQzQzLjEzMTM5MDQsMjMuMDE0MTE1MiA0NC4xNzQ4ODQ0LDIxLjkzMDEzMjkgNDUsMjAuNjk1OTE2NiBaIiBpZD0iU2hhcGUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIj48L3BhdGg+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=); +} + +.block-type__ico--4 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYwcHgiIHZpZXdCb3g9IjAgMCA2MSA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAxNTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJmaWx0ZXJfaWNvbnMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9Ikdyb3VwLTE1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjQzOTQ1MywgLTAuNTAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTgiIGZpbGw9IiM5MEM4Q0QiPiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwIiB5PSIwLjUiIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgcng9IjQiPjwvcmVjdD4gICAgICAgICAgICA8L2c+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTExIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNS41MDAwMDAsIDEwLjAwMDAwMCkiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIj4gICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCAxMS4xMzYyMjgpIj4gICAgICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMyIgeD0iMSIgeT0iMSIgd2lkdGg9IjI3IiBoZWlnaHQ9IjI0LjkxMjU1MjEiIHJ4PSI0Ij48L3JlY3Q+ICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi43OTY4NzUsOS43NDQxOTk4OCBMMTAuNDIxODc1LDExLjYwMDIzOCIgaWQ9IkxpbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU3ODEyNSw5Ljc0NDE5OTg4IEwyMi4yMDMxMjUsMTEuNjAwMjM4IiBpZD0iTGluZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMC4zOTA2MjUsIDEwLjY3MjIxOSkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMjAuMzkwNjI1LCAtMTAuNjcyMjE5KSAiPjwvcGF0aD4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03LjcwMzEyNSwxOS40ODgzOTk4IEwyMS43NzkyMDM1LDE5LjQ4ODM5OTgiIGlkPSJMaW5lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD4gICAgICAgICAgICAgICAgPC9nPiAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyLjY4NzUwMCwgMC4wMDAwMDApIiBzdHJva2UtbGluZWNhcD0icm91bmQiPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNDUzMTI1LDcuNDI0MTUyMjkgQy0xLjM1OTM3NSw0LjE3NjA4NTY2IDMuNjI1LDQuNjQwMDk1MTggMC40NTMxMjUsMCIgaWQ9IlBhdGgtMyI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQuOTQwNTY4MzYsNy40MjQxNTIyOSBDMy41ODY1NDUxNSw0Ljk5NzY5MjkzIDUuNzk3Mjg3MzEsNC42NDI4Njc3MiA1LjY3OTk1ODY1LDIuNjg0MTA2MDcgQzUuNjQwMjMwNzcsMi4wMjA4NjI4MSA1LjMzMzU4NDM5LDEuMTczNzI0NjcgNC41MzEyNSwwIiBpZD0iUGF0aC0zIj48L3BhdGg+ICAgICAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=); +} + +.block-type__ico--5 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYxcHgiIHZpZXdCb3g9IjAgMCA2MSA2MSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAyMDwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz4gICAgICAgIDxyZWN0IGlkPSJwYXRoLTEiIHg9IjAuNzYwNzM1MDMiIHk9IjcuNzEwMTQyNTUiIHdpZHRoPSIzMS40ODI0NzcxIiBoZWlnaHQ9IjI2Ljg5Mjk3MjEiIHJ4PSI3Ij48L3JlY3Q+ICAgIDwvZGVmcz4gICAgPGcgaWQ9ImZpbHRlcl9pY29ucyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iR3JvdXAtMjAiPiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUiIGZpbGw9IiM3Njk1QjgiIHg9IjAuNDkwNTAwMjU2IiB5PSIwLjA2OTcxMjY1NSIgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiByeD0iNCI+PC9yZWN0PiAgICAgICAgICAgIDxnIGlkPSJHcm91cC0xOCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQuMDAwMDAwLCAxMi4wMDAwMDApIj4gICAgICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZS00IiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgeD0iMTEuMjMxNjMwOCIgeT0iMS45MTQzNjE3NCIgd2lkdGg9IjEwLjY5MzM1MSIgaGVpZ2h0PSIxMy45MTMyMDQiIHJ4PSI1LjM0NjY3NTUiPjwvcmVjdD4gICAgICAgICAgICAgICAgPGcgaWQ9IlJlY3RhbmdsZS00Ij4gICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iIzc2OTVCOCIgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIiB4PSIxLjc2MDczNTAzIiB5PSI4LjcxMDE0MjU1IiB3aWR0aD0iMjkuNDgyNDc3MSIgaGVpZ2h0PSIyNC44OTI5NzIxIiByeD0iNyI+PC9yZWN0PiAgICAgICAgICAgICAgICA8L2c+ICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsIiBmaWxsPSIjRkZGRkZGIiBjeD0iMjcuODA4NzA5NiIgY3k9IjE4LjI1MzYzMjkiIHJ4PSIxIiByeT0iMSI+PC9lbGxpcHNlPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTguMjQ1MjAzNSwyMy45MjY2NDkyIEwxOC4yNDUyMDM1LDIxLjM4NDg3MDEgTDE4LjU5NDM1NTIsMjEuMDg1NTUxOCBDMTkuMjE1NDI1NywyMC41NTMxMjQ4IDE5LjU3ODU0NDgsMTkuNzgwNzIxMyAxOS41Nzg1NDQ4LDE4Ljk0NzEwNzQgQzE5LjU3ODU0NDgsMTcuMzkyMzcxMyAxOC4zMTgxODIyLDE2LjEzMjAwODYgMTYuNzYzNDQ2MSwxNi4xMzIwMDg2IEMxNS4yMDg3MSwxNi4xMzIwMDg2IDEzLjk0ODM0NzQsMTcuMzkyMzcxMyAxMy45NDgzNDc0LDE4Ljk0NzEwNzQgQzEzLjk0ODM0NzQsMTkuNzgwNzIxMyAxNC4zMTE0NjY1LDIwLjU1MzEyNDggMTQuOTMyNTM3LDIxLjA4NTU1MTggTDE1LjI4MTY4ODcsMjEuMzg0ODcwMSBMMTUuMjgxNjg4NywyMy45MjY2NDkyIEMxNS4yODE2ODg3LDI0Ljc0NTAwMTIgMTUuOTQ1MDk0MSwyNS40MDg0MDY2IDE2Ljc2MzQ0NjEsMjUuNDA4NDA2NiBDMTcuNTgxNzk4MSwyNS40MDg0MDY2IDE4LjI0NTIwMzUsMjQuNzQ1MDAxMiAxOC4yNDUyMDM1LDIzLjkyNjY0OTIgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiI+PC9wYXRoPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjMuNjQ0NzksMTEuNjYzMjQxMiBDMjQuOTA5MjExNywxMS42ODUxNTQxIDI3Ljc3NDY3NDcsMTEuOTA0MjgzMiAyNy44NzkxMTA3LDE1LjIxNTQ2NDIiIGlkPSJMaW5lLTIiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvcGF0aD4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=); +} + +.block-type__ico--6 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYxcHgiIHZpZXdCb3g9IjAgMCA2MSA2MSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAxOTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJmaWx0ZXJfaWNvbnMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9Ikdyb3VwLTE5Ij4gICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlIiBmaWxsPSIjOUM3NkI4IiB4PSIwLjQ5MDUwMDI1NiIgeT0iMC4xNjk5MTc0MzgiIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgcng9IjQiPjwvcmVjdD4gICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjQ5MDUwMCwgMjYuNjY5OTE3KSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiPiAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTMiIGN4PSIzLjU4NzQ3ODQxIiBjeT0iMy4zNTI3MTI2NCIgcj0iMy4wMzMxOTYyNSI+PC9jaXJjbGU+ICAgICAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwtMyIgY3g9IjE0LjIxMDk2OTQiIGN5PSIzLjM1MjcxMjY0IiByPSIzLjAzMzE5NjI1Ij48L2NpcmNsZT4gICAgICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0zIiBjeD0iMjQuODM0NDYwNCIgY3k9IjMuMzUyNzEyNjQiIHI9IjMuMDMzMTk2MjUiPjwvY2lyY2xlPiAgICAgICAgICAgIDwvZz4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==); +} + +.block-type__ico--7 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYxcHgiIHZpZXdCb3g9IjAgMCA2MSA2MSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAyMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz4gICAgICAgIDxjaXJjbGUgaWQ9InBhdGgtMSIgY3g9IjE1Ljg2NjYzNzMiIGN5PSIxNS4yMzM0NDcxIiByPSIxNC44ODEzNzI1Ij48L2NpcmNsZT4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZmlsdGVyX2ljb25zIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0yMSI+ICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZSIgZmlsbD0iIzc2NzhCOCIgeD0iMC40OTA1MDAyNTYiIHk9IjAuOTMzMTUzMjA5IiB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHJ4PSI0Ij48L3JlY3Q+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTE3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNC45OTA1MDAsIDE2LjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICAgICAgICAgICAgICA8L21hc2s+ICAgICAgICAgICAgICAgIDx1c2UgaWQ9Ik92YWwtMyIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjIiIHhsaW5rOmhyZWY9IiNwYXRoLTEiPjwvdXNlPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNi43NjE2NDUzNywyLjI1ODUwMDU4IEM2LjkzMjQxMzE4LDIuMTUwNjQ3MjMgNy4xMDUyOTU3NSwyLjA0NjQ5NDczIDcuMjc5NzY0NDEsMS45NDYwNDMwOCBDNy4zNzY1MTUyMSwxLjg5MDAwMTYzIDcuNDcyMjA4NjIsMS44MzIzNzQxIDcuNTcwNTQ1NSwxLjc3ODQ0NzQzIEM3LjgxNTg1OSwxLjY0NDE1OTQzIDguMDY0ODczMzYsMS41MTg4NTkyMiA4LjMxNjUzMTE3LDEuMzk5Mzc0NjIgQzguNDI1NDQxOTEsMS4zNDc1NjI3MiA4LjUzNTQxMDAzLDEuMjk5NDUxNjcgOC42NDU5MDY4NSwxLjI1MDI4MzIzIEM4LjgzMDQyMDY3LDEuMTY4MzM1ODMgOS4wMTU5OTE4NywxLjA5MDYxNzk4IDkuMjAzMTQ5MTYsMS4wMTYwNzIyOCBDOS4zMDYyNDQyNywwLjk3NDgzNDIzMSA5LjQwODgxMDY5LDAuOTMyMDEwMTA3IDkuNTEzNDkxODgsMC44OTM0MTU1MjYgQzkuNzgxMDEwNDksMC43OTQwMjEyNjIgMTAuMDUxNzAxMiwwLjcwMzA4NjA4NCAxMC4zMjQ1MDY4LDAuNjIwMDgxMyBDMTAuNDI0NDI5NywwLjU4OTQxNzExMiAxMC41MjY0Njc1LDAuNTYyNDUzNzc1IDEwLjYyNzQ0NzgsMC41MzM5MDQzNTggQzEwLjgzOTQ1MzcsMC40NzQxNjIwNjEgMTEuMDUyNTE2OSwwLjQxODY0OTMwOCAxMS4yNjc2OTQ5LDAuMzY4NDIzNDgzIEMxMS4zNjM5MTcsMC4zNDU2ODk2ODggMTEuNDYwMTM5MSwwLjMyMTg5ODUwOCAxMS41NTY4ODk5LDAuMzAxMjc5NDg1IEMxMS44NTI0MjkyLDAuMjM4MzY1MDMxIDEyLjE1MDA4MzMsMC4xODMzODA5NyAxMi40NDk4NTIyLDAuMTM4NDQyMDc0IEMxMi41MTgwNTM2LDAuMTI4Mzk2OTA5IDEyLjU4NzMxMjQsMC4xMjE1MjM5MDIgMTIuNjU1NTEzNywwLjExMjAwNzQzIEMxMi45MDgyMjksMC4wNzgxNzEwODQ0IDEzLjE2MjUzMDIsMC4wNTA2NzkwNTQgMTMuNDE3ODg4OSwwLjAyOTUzMTMzODIgQzEzLjUwNjcwOTMsMC4wMjIxMjk2Mzc3IDEzLjU5NjA1ODQsMC4wMTQ3Mjc5MzcyIDEzLjY4NTQwNzUsMC4wMDg5MTIzMTUzOSBDMTQuMDA0MjA5MywtMC4wMTAxMjA2Mjg4IDE0LjMyMzUzOTgsLTAuMDI0Mzk1MzM2OSAxNC42NDQ5ODUxLC0wLjAyNDM5NTMzNjkgQzE0LjkyNDY2MzYsLTAuMDI0Mzk1MzM2OSAxNS4yMDM4MTM1LC0wLjAxNDg3ODg2NDggMTUuNDgxOTA2LDAuMDAwOTgxOTIxOTg2IEMxNS41NjE3Mzg2LDAuMDA1MjExNDY1MTMgMTUuNjQwNTEzOCwwLjAxMzE0MTg1ODUgMTUuNzE5ODE3OCwwLjAxODk1NzQ4MDQgQzE1LjkyMDE5MjQsMC4wMzM3NjA4ODE0IDE2LjEyMDU2NywwLjA1MDY3OTA1NCAxNi4zMTk4ODQyLDAuMDczNDEyODQ4NCBDMTYuNDA4MTc1OSwwLjA4MzQ1ODAxMzMgMTYuNDk1OTM4OSwwLjA5NTYxNzk0OTkgMTYuNTgzNzAxOSwwLjEwNzI0OTE5NCBDMTYuNzc2Njc0OSwwLjEzMjYyNjQ1MiAxNi45Njg1OTA0LDAuMTYxMTc1ODY5IDE3LjE1OTk3NzIsMC4xOTQ0ODM1MjEgQzE3LjI0NTA5NjgsMC4yMDkyODY5MjIgMTcuMzI5Njg3NiwwLjIyNDA5MDMyMyAxNy40MTQyNzg1LDAuMjM5OTUxMTEgQzE3LjYxMzU5NTcsMC4yNzgwMTY5OTggMTcuODExODU1NSwwLjMyMDg0MTEyMiAxOC4wMDkwNTgsMC4zNjY4Mzc0MDQgQzE4LjA4MjAxNzYsMC4zODM3NTU1NzcgMTguMTU1NTA1OSwwLjM5OTYxNjM2NCAxOC4yMjc5MzY4LDAuNDE3NTkxOTIyIEMxOC40NzExMzU2LDAuNDc4MzkxNjA1IDE4LjcxMjc0ODIsMC41NDUwMDY5MDkgMTguOTUyMjQ2MSwwLjYxNzk2NjUyOCBDMTguOTc2NTY2LDAuNjI1MzY4MjI5IDE5LjAwMTQxNDUsMC42MzExODM4NTEgMTkuMDI1NzM0NCwwLjYzODU4NTU1MSBDMTkuMjgxNjIxOCwwLjcxNzg4OTQ4NSAxOS41MzQzMzcsMC44MDU2NTI1MDYgMTkuNzg1NDY2MSwwLjg5ODE3Mzc2MiBDMTkuODg1OTE3OCwwLjkzNTcxMDk1NyAxOS45ODQyNTQ2LDAuOTc2NDIwMzEgMjAuMDgzNjQ4OSwxLjAxNjA3MjI4IEMyMC4yMjk1NjgxLDEuMDczNjk5OCAyMC4zNzQ0MywxLjEzMjM4NDcxIDIwLjUxODc2MzIsMS4xOTQ3NzA0OCBDMjAuNjQzNTM0NywxLjI0OTIyNTg0IDIwLjc2NzI0ODgsMS4zMDUyNjcyOSAyMC44OTA0MzQzLDEuMzYyODk0ODIgQzIxLjAwMTQ1OTgsMS40MTQ3MDY3MiAyMS4xMTE0Mjc5LDEuNDY4MTA0NyAyMS4yMjEzOTYsMS41MjI1NjAwNyBDMjEuMzAxNzU3MywxLjU2MTY4MzM0IDIxLjM4MjExODYsMS42MDM0NTAwOCAyMS40NjE5NTEzLDEuNjQ1MjE2ODIgQzE5LjQ0MTI4NywyLjQ1NTE3NDMzIDE4LjE4NjE3MDEsMy40NDc1MzA4OSAxNi43ODE0MzMxLDUuMjc1MjIyMjMgQzE2LjU4MjExNTksNS41MzM3NTMwNSAxNi40ODExMzU1LDUuODUwNDQwMDkgMTYuNDkwMTIzMyw2LjE2NjU5ODQ0IEMxNi4zNjkwNTI2LDUuODc0NzU5OTcgMTYuMTkxNDExOCw1LjY1MjcwODk1IDE1Ljk1NDU1NzQsNS40OTcyNzMyNCBDMTUuNDY0OTg3OCw1LjE3NTgyNzk2IDE0LjgyNDIxMiw1LjE5ODU2MTc2IDEzLjk5NjgwNzYsNS41Njc1ODk0IEwxMy44NDYxMzAxLDUuNTg0NTA3NTcgQzEyLjc4NTU3MjIsNS43MDI5MzQ3OCAxMi4yMDEzNjY2LDUuNzY4NDkyNjkgMTIuMTQ4NDk3Myw2LjkyMjEwMDU5IEMxMi4xMjE1MzM5LDcuNTA1Nzc3NTQgMTIuNDM0NTIwMSw4LjA4MjA1MjggMTIuOTQ1NzY2MSw4LjM4OTc1MjA2IEMxMy4wNzUyOTU5LDguNDY3NDY5OTIgMTMuMjExMTcsOC41MjQwNDAwNSAxMy4zNDk2ODc1LDguNTU4NDA1MDkgQzEzLjM2NDQ5MDksOC42MDg2MzA5MiAxMy4zODc3NTM0LDguNjU5OTE0MTMgMTMuNDIyMTE4NCw4LjcxMTcyNjAzIEwxMy42MzUxODE3LDkuMDA2MjA3OTcgTDEzLjk3NTEzMTIsOC45NDk2Mzc4MyBDMTQuMjY1OTEyMyw4LjkwMDQ2OTM5IDE0LjUxMDE2ODQsOC44ODk4OTU1NCAxNC42NzU2NDkzLDguODk0NjUzNzcgQzE0LjY1MDgwMDcsOS4xMjkzOTM0MiAxNC42OTIwMzg4LDkuMzY5NDE5OTkgMTQuNzk3Nzc3NCw5LjU4MzU0MDYxIEMxNC45NDQ3NTQsOS44ODA2NjYwMiAxNS4xOTc0NjkyLDEwLjA5NzQzMDEgMTUuNTA5Mzk4LDEwLjE5MzY1MjIgQzE1LjgwNzU4MDgsMTAuMjg1NjQ0OCAxNS44MzM0ODY3LDEwLjM3NDk5MzkgMTUuODY5NDM3OCwxMC40OTgxNzkzIEMxNi4wMzkxNDgzLDExLjA4MjM4NSAxNi40MjUwOTQxLDExLjUxNDMyNzEgMTYuOTI4NDA5NywxMS42ODE5MjI3IEMxNy40MDk1MjAyLDExLjg0MzE3NCAxNy45NDQwMjg4LDExLjczOTAyMTUgMTguMzk3MTE4NiwxMS4zOTkwNzIgQzE4LjY2ODg2NjcsMTEuMTkzNDEwNSAxOC44MjI3MTYzLDExLjIzNjIzNDYgMTkuNDE2NDM4NSwxMS41MjMzMTQ4IEMxOS44MDM5NzA0LDExLjcxMDQ3MjEgMjAuMjg2NjY3LDExLjk0NDE1NDQgMjAuOTExNTgyLDEyLjAyNDUxNTcgQzIxLjAwOTkxODgsMTIuMDM2Njc1NiAyMS4wNjg2MDM4LDEyLjA2NjI4MjQgMjEuMDkwMjgwMiwxMi4wODkwMTYyIEMyMS41MjAxMDc1LDEyLjU0MDUyIDIxLjg1MDAxMTksMTMuMTAxOTkxOCAyMi4xNjg4MTM3LDEzLjY0NDk1OTQgQzIyLjY1NzMyNTksMTQuNDc2NTkzMyAyMy4xMTg4NzQ4LDE1LjI2Mjc1OTcgMjMuOTEyOTcxNSwxNS42NzQ2MTE0IEMyNC41MzQxODU3LDE1Ljk5NzY0MjggMjMuODM4NDI1OCwxNy44MjExMDQ2IDIzLjUwNDgyMDYsMTguNjk3MTQ4NyBDMjMuNDM3Njc2NiwxOC44NzM3MzIxIDIzLjM3NDc2MjIsMTkuMDM4MTU1NiAyMy4zMjI0MjE2LDE5LjE4NTEzMjIgQzIyLjUxNjY5MzYsMTkuODA1ODE3NyAyMi4wMjQ0ODA1LDIwLjUxMDU2NTMgMjEuNTQ4MTI4MiwyMS4xOTI1NzkyIEMyMS4xMjE0NzMsMjEuODAzMjE5NSAyMC42ODA1NDMyLDIyLjQzNTAwNzUgMTkuOTk2OTQzMywyMy4wMjI5MTQgQzE4Ljk2NDQwNiwyMy45MTE2NDY3IDE4LjA5MTAwNTQsMjQuNDQ0MDQwNSAxNy4wNzY5NzI0LDI0LjgwNDYwOSBDMTYuOTEwNDM0MiwyNC44NjMyOTM5IDE2LjgwMjA1MjEsMjQuNzY0NDI4NCAxNi43NjI5Mjg4LDI0LjcxODQzMjEgQzE2LjcyNTkyMDMsMjQuNjc1MDc5MyAxNi42NDg3MzEyLDI0LjU1NzE4MDcgMTYuNzMxMjA3MywyNC40MDk2NzU0IEMxNy43NzQzMTgzLDIyLjU0MjMzMjEgMTguOTgwNzk1NSwxOS45MDg5MTI4IDE3LjQxOTAzNjcsMTguNjE2MjU4NyBDMTUuODg3OTQyMSwxNy4zNDk1MTA1IDE1LjMxNDgzOSwxNS41MTAxODc5IDE1Ljk1NzcyOTYsMTMuOTMxNTExIEMxNi4yMzEwNjM4LDEzLjI2MTEyODQgMTUuOTI2MDA4LDEyLjUwOTMyNzEgMTUuMjUwODY3MiwxMi4xNTYxNjAyIEMxNS4xOTMyMzk2LDEyLjA4NTg0NDEgMTUuMTUyMDAxNiwxMS43Nzg2NzM1IDE1LjEyNTAzODMsMTEuNTc1MTI2NyBDMTUuMDY1Mjk2LDExLjEyODM4MTIgMTQuOTkxMjc5LDEwLjU3MjcyNSAxNC42NjA4NDU5LDEwLjA4NzkxMzYgQzE0LjUyMzM4NTcsOS44ODcwMTAzMyAxNC4yNzcwMTQ5LDkuNzA1NjY4NjcgMTQuMTA3MzA0NCw5LjYyMzE5MjU4IEMxMy40NjE3NzA0LDkuMzA3MDM0MjMgMTIuODQyMTQyMyw5LjIxNjYyNzc0IDEyLjI0MzEzMzMsOS4xMjk5MjIxMSBDMTEuNzY2MjUyMyw5LjA2MDEzNDY1IDExLjMxNTI3NzMsOC45OTQ1NzY3MyAxMC44NTUzMTQ0LDguODE4NTIyIEM5LjEwMzc1NDg5LDguMTQ2NTUzMzMgNy44NTcwOTcwNSw1LjMwNDgyOTAzIDYuOTQ2Njg3ODksMy4yMjkxODA3MyBDNi44MTY2Mjk0MywyLjkzMjA1NTMyIDYuNjkxMzI5MjIsMi42NDcwODk4NSA2LjU3MDc4NzI0LDIuMzgwMDk5OTQgQzYuNjMzNzAxNjksMi4zMzk5MTkyOCA2LjY5NzY3MzUzLDIuMjk5MjA5OTMgNi43NjE2NDUzNywyLjI1ODUwMDU4IFoiIGlkPSJQYXRoIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+); +} + +.block-type__ico--0 { + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI2MXB4IiBoZWlnaHQ9IjYwcHgiIHZpZXdCb3g9IjAgMCA2MSA2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCA0PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9ImZpbHRlcl9pY29ucyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iR3JvdXAtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC40Mzk0NTMsIDAuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTE2Ij4gICAgICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZSIgZmlsbD0iIzkwQjRDRCIgeD0iMCIgeT0iMCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjYwIiByeD0iNCI+PC9yZWN0PiAgICAgICAgICAgICAgICA8Y2lyY2xlIGlkPSJPdmFsLTQiIGZpbGw9IiNGRkZGRkYiIGN4PSIzNiIgY3k9IjIxLjUiIHI9IjEiPjwvY2lyY2xlPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjYuODc4MTkzMywzMC4yODU5NyBDMjcuMTUzMzAwOCwzMC41ODI4ODc2IDI3LjMwNDM0MDIsMzAuOTcwNzUzIDI3LjMwNDM0MDIsMzEuMzcxOTkzIEwyNy4zMDQzNDAyLDQzLjE5NTE5OTUgQzI3LjMwNDM0MDIsNDMuOTA2NzU4NSAyOC4xNzAxMTk2LDQ0LjI2Nzg3NDYgMjguNjgyNTc0Nyw0My43Njc2MzUyIEwzMi4wMDgxMzg3LDM5Ljk4Nzk1NDEgQzMyLjQ1MzE2NTUsMzkuNDU4MzE3MiAzMi42OTg2MDQ2LDM5LjE5NjE0NyAzMi42OTg2MDQ2LDM4LjY3MTg4NjggTDMyLjY5ODYwNDYsMzEuMzc0NjY3OSBDMzIuNjk4NjA0NiwzMC45NzM0Mjc5IDMyLjg1MjM0MTEsMzAuNTg1NTYyNSAzMy4xMjQ3NTE1LDMwLjI4ODYxODIgTDQyLjY2NzE3ODIsMjAuMDE5NTc0OSBDNDMuMzgxOTE4MywxOS4yNDkxOTQgNDIuODMxNzMwMywxOCA0MS43NzQ0Mjc1LDE4IEwxOC4yMjg0NjMzLDE4IEMxNy4xNzExODc1LDE4IDE2LjYxODI3NTQsMTkuMjQ2NTE5MSAxNy4zMzU3MTI2LDIwLjAxOTU3NDkgTDI2Ljg3ODE5MzMsMzAuMjg1OTcgWiIgaWQ9IlNoYXBlIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiI+PC9wYXRoPiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjQuNSwyMS41IEwzMi41NjIyNTc3LDIxLjUiIGlkPSJMaW5lIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj48L3BhdGg+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+); +} + +.block-type__desc-title { + color: #888888; + margin-bottom: 10px; + font-size: 16px; +} +li.active .block-type__desc-title { + color: #4d4d4d; +} +.block-type:hover .block-type__desc-title { + text-decoration: underline; +} + +.opts-list .opt-state { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + align-self: stretch; + position: relative; +} +.sp-table-row-info{ + font-size: 11px; + margin-left: 10px; +} +.opt-state.input .sp-table-row-info.desc{ + display: none; +} +.opts-list .opt-state .desc { + color: #888888; + font-size: 14px; + line-height: 18px; + margin-left: 0; + margin-top: 4px; + max-width: 480px; +} +.icon-home { + width: 14px; + height: 14px; + background-repeat: no-repeat; + background-image: url(../images/link.svg); + background-size: contain; + margin-left: 8px; + cursor: pointer; + display: inline-block; + position: relative; + top: 2px; +} +.remove-custom-filter-button { + margin-left: 8px; + cursor: pointer; + position: relative; + top: 3px; + background-image: url(../images/trash.svg); + width: 14px; + height: 17px; + display: inline-block; +} +.opt-state__link { + text-decoration: none; +} +.opt-state__link:hover { + text-decoration: underline; + color: #58a273; +} +.opts-list li .opt-state__link { + color: #66b574; +} +.opt-select { + font-size: 14px; + color: #888888; + background-image: url(../images/arrow-down-grey.svg); + padding-left: 10px; + padding-right: 25px; + background-position: 100% 59%; + background-size: 13px; + cursor: pointer; + border: 0; + background-repeat: no-repeat; + background-color: transparent; + -webkit-appearance: none; +} + +.icon-search img { + height: 24px; +} + +.filters-search__cross { + margin-left: 15px; + position: relative; + top: 1px; + cursor: pointer; +} +.filters-search__cross img { + width: 12px; + height: 12px; +} +.opts-list + .subtitle { + margin-top: 32px; +} +.toggler { + width: 42px; + height: 20px; + margin-left: 20px; + position: relative; + border-radius: 10px; + -webkit-transition: background-color 0.2s; + -o-transition: background-color 0.2s; + transition: background-color 0.2s; + background-color: #888888; + cursor: pointer; +} +.toggler:before { + content: ''; + position: absolute; + height: 16px; + width: 16px; + border-radius: 50%; + background-color: #fff; + margin-top: 2px; + left: 2px; +} + +.toggler:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 42px; + height: 20px; + background-position: 4px 50%; + background-repeat: no-repeat; + /*background-image: url(../images/toggler-bg.svg);*/ +} + +.toggler.on, +li.active .toggler { + background-color: #67B279; +} +.toggler.on:before, +li.active .toggler:before { + left: 24px; +} +.toggler.off { + background-color: #f68a23; +} +.toggler.off:before { + left: 0; +} +.toggler-wr { + height: 100%; + display: flex; + align-items: center; + justify-content: flex-start; + cursor: pointer; +} +.settings-footer { + margin-top: auto; +} +.settings-footer .btn-rate { + text-decoration: none; + font-size: 14px; + color: #6a6a6a; + border: 2px solid #D1D1D1; + border-radius: 6px; + padding: 9px 30px; +} +.settings-footer .btn-rate img { + width: 17px; + vertical-align: text-bottom; + margin-right: 9px; +} +.settings-footer .wlimit { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-width: 990px; +} +.settings-footer .copy { + color: #fff; + font-size: 14px; + font-weight: 600; +} +.settings-footer .copy img { + width: 29px; + vertical-align: middle; + margin-right: 13px; +} +.settings-footer .rate-row { + background-color: #F7F7F7; +} +.settings-footer .rate-row .text { + color: #505050; + font-size: 16px; + font-weight: 600; +} +.settings-footer .rate-row .wlimit { + height: 80px; +} +.settings-footer .links-row { + background-color: #787878; +} +.settings-footer .links-row a { + font-size: 14px; + color: rgba(255, 255, 255, 0.83); + text-decoration: none; + padding-left: 40px; +} +.settings-footer .links-row a:first-child { + padding-left: 0; +} +.settings-footer .links-row .wlimit { + height: 100px; +} +/* /th & st */ +/* st */ +.filter-rules { + width: 100%; + height: 300px; + resize: both; + min-width: 100%; + min-height: 300px; + max-width: 900px; + max-height: 100%; + box-shadow: inset -10px 0 0 0 #f0f0f0; + position: relative; + overflow: hidden; + padding-right: 10px; +} +.user-rules { + width: 100%; + height: 100%; + border: 1px solid #EDEDED; +} + +@-webkit-keyframes clockwise { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.preloader { + background: url(../images/reload-ico-green.svg) no-repeat; + height: 18px; + width: 22px; + display: inline-block; + visibility: hidden; + position: absolute; + top: calc(50% - 9px); + left: -50px; + animation: clockwise 2s linear infinite; +} + +.preloader.active { + visibility: visible; +} +.tabs-bar .tab { + font-weight: 600; + font-size: 14px; + color: #4d4d4d; + border: 0; + background: none; + padding: 0 0 10px; + margin-right: 50px; + text-decoration: none; + display: inline-block; + position: relative; + z-index: 1; +} +.tabs-bar .tab.active:after { + content: ''; + position: absolute; + left: 0; + right: 0; + height: 4px; + background-color: #66b574; + bottom: -5px; +} +.btn-inline-arrow { + cursor: pointer; + border: 0; + line-height: 22px; + font-family: inherit; + font-size: inherit; + background-color: transparent; + color: #66b574; + transition: 0.3s ease color; + position: relative; +} + +.btn-inline-arrow:after { + content: ""; + position: absolute; + right: -10px; + top: 9px; + width: 10px; + height: 5px; + background-repeat: no-repeat; + background-size: contain; + background-image: url(../images/arrow-down.svg); +} +.button { + cursor: pointer; + border: 0; + height: 40px; + border-radius: 4px; + font-size: 13px; + line-height: 42px; + transition: 0.3s ease background-color; + font-weight: 600; +} +.button--green { + padding: 0 30px; + background-color: #68bc86; + color: #ffffff; +} +.button--green:hover { + background-color: #5ba575; +} +.button--transparent { + padding: 0 20px; + box-shadow: 0 0 0 1px rgba(216, 216, 216, .7); + background-color: transparent; +} +.button--transparent:hover { + background-color: rgba(0, 0, 0, .05); +} +.button--link { + padding: 0 40px; + color: #fff; + display: inline-block; + text-decoration: none; + min-width: 175px; + text-align: center; +} +.wlimit .settings-actions .button--link { + padding: 0 35px; + margin: 0 0 15px 15px; +} +.settings-actions .button--link { + color: #fff; +} +.button--green-bd { + padding: 0 40px; + color: #66b574; + box-shadow: inset 0 0 0 1px #66b574; + display: inline-block; + text-decoration: none; + min-width: 175px; + transition: 0.3s ease background-color; +} +.button--green-bd.disabled { + opacity: 0.5; + cursor: not-allowed; +} +.button--green-bd:hover { + background-color: rgba(239, 239, 239, 0.5); +} +.settings-actions .button--green-bd { + color: #66b574; +} +.account { + display: none; + padding-top: 35px; + padding-bottom: 35px; + box-shadow: 0 -1px 0 0 rgba(216, 216, 216, .7); +} +.account--active { + display: block; +} +.account__control { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} +.account__control-authorized { + margin-bottom: 25px; +} +.account__avatar { + flex-shrink: 0; + width: 80px; + height: 80px; + margin-right: 30px; + border-radius: 4px; + background-color: #f7f7f7; + background-size: 32px 42px; + background-repeat: no-repeat; + background-position: 50%; + background-image: url(../images/avatar.svg); +} +.account__desc { + margin-bottom: 35px; +} +.account__avatar-pic { + width: 100%; + height: 100%; + background-size: cover; +} +.account__btns { + padding-top: 13px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.account__btn { + margin-right: 15px; +} + +.account__btn:last-child { + margin-right: 0; +} + +.subtitle-2 { + margin-bottom: 7px; + font-size: 14px; + font-weight: 600; +} +.dropdown { + position: absolute; + right: 0; + min-width: 240px; + background-color: #ffffff; + box-shadow: 1px 1px 5px 0 rgba(192, 193, 193, .5); +} +.dropdown__item { + padding-left: 70px; + height: 60px; + line-height: 60px; + background-repeat: no-repeat; + background-size: 27px; + background-position: 21px; + cursor: pointer; +} +.dropdown__item--active { + color: #68bc86; + background-color: rgba(102, 181, 116, .15); +} +.dropdown__item--adguard { + background-image: url("../images/logo-shield.svg"); +} +.dropdown__item--dropbox { + background-image: url("../images/dropbox.svg"); +} +.dropdown__item--chrome { + background-image: url("../images/chrome.svg"); +} + +.settings-form { + padding-top: 30px; + box-shadow: 0 -1px 0 0 rgba(216, 216, 216, .7); +} +.settings-form__in { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} +.settings-form__input { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + margin-right: 25px; + border: 0; + height: 30px; + font-size: 14px; + box-shadow: 0 1px 0 0 rgba(216, 216, 216, .7); +} + +.settings-checkboxes { + padding-bottom: 15px; +} +.settings-checkboxes__item { + margin-bottom: 20px; +} +.settings-checkboxes__in { + padding-top: 15px; +} +.settings-checkboxes__checkbox { + display: none; +} +.settings-checkboxes__checkbox:checked + .settings-checkboxes__label:before{ + background-color: #66b574; + background-image: url("../images/checked.svg"); + background-repeat: no-repeat; + background-position: 50%; + background-size: 70%; +} +.settings-checkboxes__label { + position: relative; + padding-left: 40px; + font-size: 14px; + font-weight: 600; +} +.settings-checkboxes__label:before { + content: ""; + position: absolute; + left: 0; + top: -3px; + display: inline-block; + width: 18px; + height: 18px; + border-radius: 2px; + background-color: rgba(216, 216, 216, .7); + cursor: pointer; + transition: 0.3s ease background-color, 0.3s ease background-image; +} +.app-download { + padding-top: 30px; + box-shadow: 0 -1px 0 0 rgba(216, 216, 216, .7); +} +.app-download__desc { + margin-bottom: 20px; + font-size: 12px; + opacity: 0.5; +} + +.btn-app-store { + cursor: pointer; + border: 0; + display: inline-block; + vertical-align: middle; + width: 91px; + height: 32px; + background-image: url(../images/app-store.svg); +} +.btn-google-play { + cursor: pointer; + border: 0; + display: inline-block; + vertical-align: middle; + width: 104px; + height: 24px; + background-image: url(../images/google-play.svg); +} + +.filter-rules__label { + position: absolute; + bottom: calc(50% - 5px); + right: 15px; + max-width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 300; + font-size: 12px; + line-height: 22px; +} +.filter-rules__label--saved { + padding-right: 20px; +} +.filter-rules__label--saved:after { + content: ''; + position: absolute; + right: 0; + top: 4px; + background-image: url(../../src/pages/assets/icons/tick.svg); + background-size: cover; + width: 12px; + height: 12px; +} +.filter-rules textarea { + border: 0; + background-color: #fff; + margin: 0; + display: block; + width: 100%; +} +.filter-rules .search-row { + border-top: 0; + margin: 0 30px; +} +.sp-table-row-input{ + display: none; +} +.filters-check { + margin-top: 60px; +} +.filters-check__label { + font-size: 14px; + font-weight: 600; +} +.filters-check__in { + display: none; +} +.filters-check__in--active { + display: block; +} +.filters-check__in--upload { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.filters-check__in--upload.filters-check__in--active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.filters-check__in--alert { + padding-left: 25px; + background-image: url("../images/alert.svg"); + background-repeat: no-repeat; + background-size: 17px 14px; +} +.filters-check__alert { + padding-bottom: 11px; +} +.filters-check__ico { + width: 35px; + height: 35px; + margin-right: 23px; + background-image: url("../images/filters.svg"); + background-repeat: no-repeat; + background-size: 313px; +} +.filters-check__ico--0 { + background-position: 0 0; +} +.filters-check__ico--1 { + background-position: -53px 0; +} +.filters-check__ico--2 { + background-position: -107px 0; +} +.filters-check__ico--3 { + background-position: -166px 0; +} +.filters-check__ico--4 { + background-position: -220px 0; +} +.filters-check__ico--5 { + background-position: -280px 0; +} +.cf:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +.post-install { + color: #4d4d4d; + background-color: #fff; +} +@media (prefers-color-scheme: dark) { + .post-install { + color: #d8d8d8; + background-color: #131313; + } +} +.post-install__header{ + padding-bottom: 16px; +} +.post-install__header-logo{ + float: left; + width: 258px; + height: 60px; + padding: 12px 0 0; + margin: 1px 0 0 35px; + font: 0/0 a; + text-shadow: none; + color: transparent; + background-image: url(../images/logo.svg); + background-repeat: no-repeat; + background-size: cover; + text-align: right; +} +@media (prefers-color-scheme: dark) { + .post-install__header-logo{ + background-image: url(../images/logo-dark.svg); + } + + .post-install__descr { + color: #c0c0c0; + } +} +.post-install__descr { + font-size: 16px; + line-height: 21px; + color: #7f7f7f +} +.wrap{ /* post-install & th */ + width: 1020px; + margin: 0 auto; +} +.settings-page.downloading { + text-align: center; +} + +.settings-page.downloading .sp-lists-user-descr:first-child { + margin-bottom: 60px; + color: #333; + font-style: italic; +} + +.settings-page.downloading .sp-lists-user-descr { + color: #999; + font-style: italic; + font-size: 14px; + line-height: 19px; + margin: 0 35px 17px; +} + +.post-install__header.downloading .post-install__header-logo { + float: none; + display: block; + margin: 0 auto 0 auto; +} +.option-popup { + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + position: fixed; + top: 0; + left: 0; + z-index: 20; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0, 0, 0, .1); +} + +.option-popup--active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.option-popup__in { + position: relative; + padding: 30px; + width: 560px; + height: auto; + background-color: #fff; + overflow-y: auto; +} + +.option-popup__cross { + position: absolute; + width: 15px; + height: 15px; + top: 30px; + right: 30px; + cursor: pointer; + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNS42NDIgMTUuNjQyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNS42NDIgMTUuNjQyIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj4gIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTguODgyLDcuODIxbDYuNTQxLTYuNTQxYzAuMjkzLTAuMjkzLDAuMjkzLTAuNzY4LDAtMS4wNjEgIGMtMC4yOTMtMC4yOTMtMC43NjgtMC4yOTMtMS4wNjEsMEw3LjgyMSw2Ljc2TDEuMjgsMC4yMmMtMC4yOTMtMC4yOTMtMC43NjgtMC4yOTMtMS4wNjEsMGMtMC4yOTMsMC4yOTMtMC4yOTMsMC43NjgsMCwxLjA2MSAgbDYuNTQxLDYuNTQxTDAuMjIsMTQuMzYyYy0wLjI5MywwLjI5My0wLjI5MywwLjc2OCwwLDEuMDYxYzAuMTQ3LDAuMTQ2LDAuMzM4LDAuMjIsMC41MywwLjIyczAuMzg0LTAuMDczLDAuNTMtMC4yMmw2LjU0MS02LjU0MSAgbDYuNTQxLDYuNTQxYzAuMTQ3LDAuMTQ2LDAuMzM4LDAuMjIsMC41MywwLjIyYzAuMTkyLDAsMC4zODQtMC4wNzMsMC41My0wLjIyYzAuMjkzLTAuMjkzLDAuMjkzLTAuNzY4LDAtMS4wNjFMOC44ODIsNy44MjF6IiBmaWxsPSIjZDlkOWQ5Ii8+PC9zdmc+); +} + +.option-popup__step { + display: none; +} + +.option-popup__step--active { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + min-height: 330px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} + +.option-popup__content { + margin: auto 0; +} + +.option-popup__title { + font-size: 26px; + font-weight: 600; + margin-bottom: 15px; +} + +.option-popup__input { + width: 100%; + border: 0; + line-height: 22px; + font-size: 14px; + border-bottom: 2px solid #66b574; + margin-bottom: 22px; + padding: 7px 8px; + outline: none; +} + +.option-popup__desc { + font-size: 14px; + line-height: 22px; + color: rgba(27, 27, 27, 0.9); +} + +.option-popup__desc--tac { + text-align: center; +} + +.option-popup__desc--false { + margin: 0 auto; + max-width: 300px; +} + +.option-popup__btns { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-top: 15px; +} + +.option-popup__btns--sb { + justify-content: center; +} + +.option-popup__btns--sb button { + min-width: 175px; +} + +.option-popup__btns--center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.option-popup__checkbox { + padding-top: 15px; +} +.option-popup__checkbox .option-popup__desc { + color: #888888; + font-size: 12px; + line-height: 15px; +} +.option-popup__btn { + margin-left: 7px; +} + +.option-popup__btn:nth-child(1) { + margin-left: 0; +} + +.option-popup__load { + margin: 0 auto; + margin-bottom: 30px; +} + +.option-popup__subtitle { + text-align: center; + font-size: 17px; + margin-bottom: 15px; + font-weight: 600; +} + +.option-popup__table { + width: 100%; +} + +.option-popup__table-row { + margin-bottom: 7px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.option-popup__table-cell { + font-size: 14px; + line-height: 22px; +} + +.option-popup__url { + word-break: break-all; +} + +.option-popup__table-cell:nth-child(1) { + width: 130px; + padding-right: 10px; + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + white-space: nowrap; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -ms-flex-negative: 0; + flex-shrink: 0; +} + +.empty-filters { + padding-top: 80px; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} + +.empty-filters__logo { + width: 82px; + margin: 0 auto; + background-repeat: no-repeat; + height: 104px; + margin-bottom: 62px; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI4MXB4IiBoZWlnaHQ9IjEwNHB4IiB2aWV3Qm94PSIwIDAgODEgMTA0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkdyb3VwIDM8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iMCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgICAgICA8ZyBpZD0iQXJ0Ym9hcmQtQ29weS00IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTkzLjAwMDAwMCwgLTI1MS4wMDAwMDApIj4gICAgICAgICAgICA8ZyBpZD0iR3JvdXAtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDc4LjAwMDAwMCwgMjUzLjAwMDAwMCkiPiAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE1LjgyMjAzMCwgMC4wMDAwMDApIj4gICAgICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtOCIgZmlsbD0iIzk5RUFBOCIgeD0iMTIuNzUxMTIxMSIgeT0iOTAuNjkxMDcwMiIgd2lkdGg9IjQwIiBoZWlnaHQ9IjEwLjQyNDUyODMiIHJ4PSI1LjIxMjI2NDE1Ij48L3JlY3Q+ICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbC0yIiBmaWxsPSIjM0IzQjNCIiBjeD0iNy44Nzk5NDY1NiIgY3k9IjYxLjI1NDM1MzkiIHJ4PSIxLjYwNzcyMzU4IiByeT0iMS42MzIxNTg5NiI+PC9lbGxpcHNlPiAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgaWQ9Ik92YWwtMiIgZmlsbD0iIzNCM0IzQiIgY3g9IjY2LjI3NzM1MzciIGN5PSI0NS43ODIwODY2IiByeD0iMS42MDc3MjM1OCIgcnk9IjEuNjMyMTU4OTYiPjwvZWxsaXBzZT4gICAgICAgICAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsLTQiIHN0cm9rZT0iIzNCM0IzQiIgc3Ryb2tlLXdpZHRoPSIyLjQiIGN4PSI2MS44NTQ5NDE1IiBjeT0iNy45NjY5MzM5NiIgcng9IjcuNzM0MzQ3NzMiIHJ5PSI3Ljg1MTkwMDExIj48L2VsbGlwc2U+ICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbC00IiBzdHJva2U9IiMzQjNCM0IiIHN0cm9rZS13aWR0aD0iMi40IiBjeD0iNzYuMjgxNDQ1NSIgY3k9IjI3LjMyNDgxOTciIHJ4PSIyLjU3MjM1NzcyIiByeT0iMi42MTE0NTQzMyI+PC9lbGxpcHNlPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTguNDM3ODY3NjIsMzUuOTAyNjM4NyBMNTcuNjgxMDc0OSwzNS45MDI2Mzg3IiBpZD0iTGluZSIgc3Ryb2tlPSIjM0IzQjNCIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTI1Ljk0NjczNzcsNTQuMDM4NTE2NyBDMjUuOTYzNjI4Niw1My45MzczNzM4IDI2LjE4NzkyNzUsNTQuMzA3MjI4MSAyNS45NDY3Mzc3LDU1LjAwNDMyMzQgTDI1Ljk0NjczNzcsODMuMjEyNjEzMyBDMjUuOTQ2NzM3Nyw4NC4zMTcxODI4IDI2Ljg0MjE2ODIsODUuMjEyNjEzMyAyNy45NDY3Mzc3LDg1LjIxMjYxMzMgQzI4LjMzMDI0MSw4NS4yMTI2MTMzIDI4LjcwNTY1ODMsODUuMTAyMzUyNiAyOS4wMjgyNTI5LDg0Ljg5NDk3MDMgTDM4LjU0OTU0NjYsNzguNzc0MTM4NiBDMzkuMTIxOTkxNyw3OC40MDYxMzgyIDM5LjQ2ODAzMTUsNzcuNzcyMzA5MiAzOS40NjgwMzE1LDc3LjA5MTc4MTcgTDM5LjQ2ODAzMTUsNTUuMDA0MzIzNCBDMzkuMjI2NTk1Miw1NC4zMDcyMjgxIDM5LjQ1MDg5NDEsNTMuOTM3MzczOCAzOS40NjgwMzE1LDU0LjAzODUxNjcgTDYzLjkxNDgwODMsMzAuNDM0NzMyMiBDNjQuNzA5NDM3MiwyOS42Njc1MDQzIDY0LjczMTY1MDEsMjguNDAxMzY5MiA2My45NjQ0MjIyLDI3LjYwNjc0MDMgQzYzLjU4NzUzNDQsMjcuMjE2MzkyMyA2My4wNjgyMjAzLDI2Ljk5NTkyOTMgNjIuNTI1NjE5MywyNi45OTU5MjkzIEwyLjg4OTE0OTk2LDI2Ljk5NTkyOTMgQzEuNzg0NTgwNDYsMjYuOTk1OTI5MyAwLjg4OTE0OTk1OSwyNy44OTEzNTk4IDAuODg5MTQ5OTU5LDI4Ljk5NTkyOTMgQzAuODg5MTQ5OTU5LDI5LjUzODUzMDQgMS4xMDk2MTI5MSwzMC4wNTc4NDQ1IDEuNDk5OTYwOTMsMzAuNDM0NzMyMiBMMjUuOTQ2NzM3Nyw1NC4wMzg1MTY3IFoiIGlkPSJTaGFwZSIgc3Ryb2tlPSIjM0IzQjNCIiBzdHJva2Utd2lkdGg9IjIuNCIgZmlsbC1ydWxlPSJub256ZXJvIj48L3BhdGg+ICAgICAgICAgICAgICAgIDwvZz4gICAgICAgICAgICA8L2c+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=); +} + +.empty-filters__desc { + margin-bottom: 30px; + font-size: 14px; + line-height: 22px; + text-align: center; +} + +.empty-filters__btn { + margin: 0 auto; +} + +.opt-name__info { + font-weight: 400; + font-size: 12px; + line-height: 15px; + color: #888888; +} + +.opt-name__info-labels { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 13px; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + flex-shrink: 1; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; +} + +.opt-name__info-labels:nth-child(1) { + margin-right: 20px; +} + +.opt-name__info-item { + margin-right: 20px; + margin-top: 10px; +} + +.opt-name__info-item:last-child { + margin-right: 0; +} + +.title-wr { + display: flex; + align-items: flex-end; +} + +.opts-list li .title { + font-size: 16px; + line-height: 20px; + color: #4D4D4D; + letter-spacing: 0; +} + +.opts-list li.active .title { + color: #4d4d4d; +} + +.opt-input::-webkit-outer-spin-button, +.opt-input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.opt-input { + height: 32px; + border: 1px solid #888888; + padding: 0 15px; + margin-top: 15px; + margin-bottom: 12px; + width: 400px; + color: #4d4d4d; + -moz-appearance:textfield; +} + +.opt-input::placeholder { + opacity: 0.5; +} + +.about-opt { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: calc(100% - 55px); + padding-top: 100px; +} + +.about-opt__logo { + width: 160px; + margin-bottom: 25px; + transform: translateX(-4px); +} +.about-opt__version { + margin-bottom: 10px; + color: #252525; +} +.about-opt__desc { + font-size: 12px; + color: #888888; + margin-bottom: 55px; + text-align: center; +} +.about-opt__desc-item { + margin-bottom: 5px; +} +.about-opt__menu { + text-align: center; + display: flex; + flex-direction: column; +} +.about-opt__menu-item { + color: rgba(136, 136, 136, 0.7); + margin-bottom: 15px; + font-size: 14px; + text-decoration: none; +} + +.about-opt__menu-item:hover { + text-decoration: underline; +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.opts-list.opts-list--disabled .toggler, +.opts-list.opts-list--disabled .opt-input, +.opts-list.opts-list--disabled .opt-textarea__item { + opacity: 0.5; +} + +.opts-list.opts-list--disabled { + pointer-events: none; +} + +.opts-list.opts-list--disabled li .title { + color: #888888; +} + +.compare_title { + margin: 24px 0 8px; + font-size: 16px; + color: #4D4D4D; + letter-spacing: 0; + line-height: 22px; +} + +.compare_link { + font-size: 16px; + color: #67B279; + letter-spacing: 0; + line-height: 22px; +} + +.compare_hide { + margin-top: 24px; + padding: 0; + font-size: 14px; + color: #888888; + line-height: 18px; + background-color: transparent; + border: none; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/update-container.css b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/update-container.css new file mode 100644 index 0000000..f04ce6d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/css/update-container.css @@ -0,0 +1,15 @@ +/** + * style for the update info popup iframe + * should be injected into web page to set the popup position on page properly + */ + +.adguard-update-iframe { + position: fixed; + top: 10px; + right: 10px; + border: none; + width: 320px; + /* 460px container + 50px padding + 16px box-shadow */ + min-height: 526px; + color-scheme: light dark; +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/fonts/Roboto-Flex-Regular.woff2 b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/fonts/Roboto-Flex-Regular.woff2 new file mode 100644 index 0000000..e9a263c Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/fonts/Roboto-Flex-Regular.woff2 differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-19.png new file mode 100644 index 0000000..d5b622f Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-38.png new file mode 100644 index 0000000..52feece Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/loading-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-19.png new file mode 100644 index 0000000..0cea3ba Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-38.png new file mode 100644 index 0000000..e95a1ee Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-off-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-19.png new file mode 100644 index 0000000..30173b8 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-38.png new file mode 100644 index 0000000..b12e13d Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/newyear25-on-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-19.png new file mode 100644 index 0000000..e799833 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-38.png new file mode 100644 index 0000000..63499dd Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/off-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-128.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-128.png new file mode 100644 index 0000000..ab34cfb Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-128.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-16.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-16.png new file mode 100644 index 0000000..e8f171f Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-16.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-19.png new file mode 100644 index 0000000..73a6160 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-38.png new file mode 100644 index 0000000..e74b7ba Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/on-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-19.png new file mode 100644 index 0000000..e959fbe Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-38.png new file mode 100644 index 0000000..b64e81c Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/update-available-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-19.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-19.png new file mode 100644 index 0000000..2e54aa3 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-19.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-38.png b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-38.png new file mode 100644 index 0000000..19146c9 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/icons/warning-38.png differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/alert.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/alert.svg new file mode 100644 index 0000000..71c8f02 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/alert.svg @@ -0,0 +1,15 @@ + + + + Group 18 + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/app-store.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/app-store.svg new file mode 100644 index 0000000..b03ad38 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/app-store.svg @@ -0,0 +1,14 @@ + + + + Bitmap + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down-grey.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down-grey.svg new file mode 100644 index 0000000..5ae93a7 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down-grey.svg @@ -0,0 +1,16 @@ + + + + Icons/24/search green Copy + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down.svg new file mode 100644 index 0000000..5d70c0e --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/arrow-down.svg @@ -0,0 +1,12 @@ + + + + Triangle + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/avatar.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/avatar.svg new file mode 100644 index 0000000..f10c566 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/avatar.svg @@ -0,0 +1,16 @@ + + + + user (3) + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/checked.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/checked.svg new file mode 100644 index 0000000..1315e28 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/checked.svg @@ -0,0 +1,16 @@ + + + + Line + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/chrome.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/chrome.svg new file mode 100644 index 0000000..c10444d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/chrome.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/cross.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/cross.svg new file mode 100644 index 0000000..1285708 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/cross.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/desktop-app-promo.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/desktop-app-promo.svg new file mode 100644 index 0000000..5009712 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/desktop-app-promo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/dropbox.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/dropbox.svg new file mode 100644 index 0000000..ed0f4a1 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/dropbox.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/filters.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/filters.svg new file mode 100644 index 0000000..e6e63e2 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/filters.svg @@ -0,0 +1,51 @@ + + + + Group 12 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/google-play.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/google-play.svg new file mode 100644 index 0000000..2bef622 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/google-play.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-green.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-green.svg new file mode 100644 index 0000000..9993cd8 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-green.svg @@ -0,0 +1 @@ +Group 12 \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-red.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-red.svg new file mode 100644 index 0000000..f6b0cd0 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/hero-red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_error.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_error.svg new file mode 100644 index 0000000..c6ab7c0 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_success.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_success.svg new file mode 100644 index 0000000..aa1536d --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/import_success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/link.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/link.svg new file mode 100644 index 0000000..74fe544 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-dark.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-dark.svg new file mode 100644 index 0000000..a4647ea --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-shield.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-shield.svg new file mode 100644 index 0000000..25bb65b --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo-shield.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo.svg new file mode 100644 index 0000000..94d6dda --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/newyear25.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/newyear25.svg new file mode 100644 index 0000000..1987e61 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/newyear25.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico-green.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico-green.svg new file mode 100644 index 0000000..0d25fe0 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico-green.svg @@ -0,0 +1 @@ +Group 20 \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico.svg new file mode 100644 index 0000000..0a97557 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/reload-ico.svg @@ -0,0 +1,17 @@ + + + + Group 20 + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/shield.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/shield.svg new file mode 100644 index 0000000..da9c337 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/shield.svg @@ -0,0 +1 @@ + diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/tick.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/tick.svg new file mode 100644 index 0000000..07a8ce3 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/tick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/toggler-bg.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/toggler-bg.svg new file mode 100644 index 0000000..1c17e03 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/toggler-bg.svg @@ -0,0 +1,13 @@ + + + + checked + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/trash.svg b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/trash.svg new file mode 100644 index 0000000..83a47d7 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/images/trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/js/preload-theme.js b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/js/preload-theme.js new file mode 100644 index 0000000..68b5278 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/js/preload-theme.js @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2015-2026 Adguard Software Ltd. + * + * @file + * This file is part of AdGuard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension). + * + * AdGuard Browser Extension is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AdGuard Browser Extension is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AdGuard Browser Extension. If not, see . + */ + +/** + * This script is injected at the top of the page + * to display the desired color theme before the main bundle is loaded. + */ +(function () { + const urlSearchParams = new URLSearchParams(window.location.search); + const theme = urlSearchParams.get('theme'); + switch (theme) { + // the color changes through the selector so that it could be rewritten by css from the main bundle + case 'dark': + document.body.classList.add('body_dark'); + break; + case 'light': + document.body.classList.add('body_light'); + break; + // if theme parameter is missing or a system theme is selected, + // the desired color is selected using the css media query + case 'system': + default: + break; + } +})(); diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/videos/loading.webm b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/videos/loading.webm new file mode 100644 index 0000000..629ca21 Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/videos/loading.webm differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/wasm/onig.wasm b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/wasm/onig.wasm new file mode 100644 index 0000000..162f14a Binary files /dev/null and b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/assets/wasm/onig.wasm differ diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/manifest.json b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/manifest.json new file mode 100644 index 0000000..fe703a8 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/manifest.json @@ -0,0 +1,284 @@ +{ + "action": { + "default_icon": { + "19": "assets/icons/on-19.png", + "38": "assets/icons/on-38.png" + }, + "default_popup": "pages/popup.html", + "default_title": "__MSG_name__" + }, + "author": "Adguard Software Ltd", + "background": { + "service_worker": "pages/background.js" + }, + "content_scripts": [ { + "all_frames": true, + "js": [ "pages/content-script-start.js" ], + "match_about_blank": true, + "matches": [ "http://*/*", "https://*/*" ], + "run_at": "document_start" + }, { + "all_frames": true, + "js": [ "pages/content-script-end.js" ], + "match_about_blank": true, + "matches": [ "http://*/*", "https://*/*" ], + "run_at": "document_end" + }, { + "all_frames": true, + "js": [ "pages/subscribe.js" ], + "match_about_blank": false, + "matches": [ "http://*/*", "https://*/*" ], + "run_at": "document_end" + }, { + "all_frames": false, + "js": [ "pages/thankyou.js" ], + "matches": [ "*://*.adguard.com/*/thankyou.html*", "*://*.adguard.info/*/thankyou.html*", "*://*.adguard.app/*/thankyou.html*" ], + "run_at": "document_start" + }, { + "all_frames": false, + "js": [ "pages/import-configuration.js" ], + "matches": [ "*://reports.adguard.com/*", "*://reports.adguard.info/*", "*://reports.adguard.app/*" ], + "run_at": "document_end" + } ], + "content_security_policy": { + "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'" + }, + "declarative_net_request": { + "rule_resources": [ { + "enabled": false, + "id": "ruleset_0", + "path": "filters/declarative/ruleset_0/ruleset_0.json" + }, { + "enabled": false, + "id": "ruleset_1", + "path": "filters/declarative/ruleset_1/ruleset_1.json" + }, { + "enabled": false, + "id": "ruleset_10", + "path": "filters/declarative/ruleset_10/ruleset_10.json" + }, { + "enabled": false, + "id": "ruleset_103", + "path": "filters/declarative/ruleset_103/ruleset_103.json" + }, { + "enabled": false, + "id": "ruleset_105", + "path": "filters/declarative/ruleset_105/ruleset_105.json" + }, { + "enabled": false, + "id": "ruleset_108", + "path": "filters/declarative/ruleset_108/ruleset_108.json" + }, { + "enabled": false, + "id": "ruleset_109", + "path": "filters/declarative/ruleset_109/ruleset_109.json" + }, { + "enabled": false, + "id": "ruleset_11", + "path": "filters/declarative/ruleset_11/ruleset_11.json" + }, { + "enabled": false, + "id": "ruleset_110", + "path": "filters/declarative/ruleset_110/ruleset_110.json" + }, { + "enabled": false, + "id": "ruleset_111", + "path": "filters/declarative/ruleset_111/ruleset_111.json" + }, { + "enabled": false, + "id": "ruleset_112", + "path": "filters/declarative/ruleset_112/ruleset_112.json" + }, { + "enabled": false, + "id": "ruleset_114", + "path": "filters/declarative/ruleset_114/ruleset_114.json" + }, { + "enabled": false, + "id": "ruleset_120", + "path": "filters/declarative/ruleset_120/ruleset_120.json" + }, { + "enabled": false, + "id": "ruleset_13", + "path": "filters/declarative/ruleset_13/ruleset_13.json" + }, { + "enabled": false, + "id": "ruleset_16", + "path": "filters/declarative/ruleset_16/ruleset_16.json" + }, { + "enabled": false, + "id": "ruleset_17", + "path": "filters/declarative/ruleset_17/ruleset_17.json" + }, { + "enabled": false, + "id": "ruleset_18", + "path": "filters/declarative/ruleset_18/ruleset_18.json" + }, { + "enabled": false, + "id": "ruleset_19", + "path": "filters/declarative/ruleset_19/ruleset_19.json" + }, { + "enabled": true, + "id": "ruleset_2", + "path": "filters/declarative/ruleset_2/ruleset_2.json" + }, { + "enabled": false, + "id": "ruleset_20", + "path": "filters/declarative/ruleset_20/ruleset_20.json" + }, { + "enabled": false, + "id": "ruleset_202", + "path": "filters/declarative/ruleset_202/ruleset_202.json" + }, { + "enabled": false, + "id": "ruleset_203", + "path": "filters/declarative/ruleset_203/ruleset_203.json" + }, { + "enabled": false, + "id": "ruleset_208", + "path": "filters/declarative/ruleset_208/ruleset_208.json" + }, { + "enabled": false, + "id": "ruleset_21", + "path": "filters/declarative/ruleset_21/ruleset_21.json" + }, { + "enabled": false, + "id": "ruleset_214", + "path": "filters/declarative/ruleset_214/ruleset_214.json" + }, { + "enabled": false, + "id": "ruleset_216", + "path": "filters/declarative/ruleset_216/ruleset_216.json" + }, { + "enabled": false, + "id": "ruleset_217", + "path": "filters/declarative/ruleset_217/ruleset_217.json" + }, { + "enabled": false, + "id": "ruleset_218", + "path": "filters/declarative/ruleset_218/ruleset_218.json" + }, { + "enabled": false, + "id": "ruleset_22", + "path": "filters/declarative/ruleset_22/ruleset_22.json" + }, { + "enabled": false, + "id": "ruleset_224", + "path": "filters/declarative/ruleset_224/ruleset_224.json" + }, { + "enabled": false, + "id": "ruleset_227", + "path": "filters/declarative/ruleset_227/ruleset_227.json" + }, { + "enabled": false, + "id": "ruleset_23", + "path": "filters/declarative/ruleset_23/ruleset_23.json" + }, { + "enabled": false, + "id": "ruleset_233", + "path": "filters/declarative/ruleset_233/ruleset_233.json" + }, { + "enabled": false, + "id": "ruleset_235", + "path": "filters/declarative/ruleset_235/ruleset_235.json" + }, { + "enabled": false, + "id": "ruleset_238", + "path": "filters/declarative/ruleset_238/ruleset_238.json" + }, { + "enabled": false, + "id": "ruleset_243", + "path": "filters/declarative/ruleset_243/ruleset_243.json" + }, { + "enabled": false, + "id": "ruleset_249", + "path": "filters/declarative/ruleset_249/ruleset_249.json" + }, { + "enabled": false, + "id": "ruleset_25", + "path": "filters/declarative/ruleset_25/ruleset_25.json" + }, { + "enabled": false, + "id": "ruleset_252", + "path": "filters/declarative/ruleset_252/ruleset_252.json" + }, { + "enabled": false, + "id": "ruleset_253", + "path": "filters/declarative/ruleset_253/ruleset_253.json" + }, { + "enabled": false, + "id": "ruleset_254", + "path": "filters/declarative/ruleset_254/ruleset_254.json" + }, { + "enabled": false, + "id": "ruleset_255", + "path": "filters/declarative/ruleset_255/ruleset_255.json" + }, { + "enabled": false, + "id": "ruleset_256", + "path": "filters/declarative/ruleset_256/ruleset_256.json" + }, { + "enabled": false, + "id": "ruleset_257", + "path": "filters/declarative/ruleset_257/ruleset_257.json" + }, { + "enabled": false, + "id": "ruleset_259", + "path": "filters/declarative/ruleset_259/ruleset_259.json" + }, { + "enabled": false, + "id": "ruleset_260", + "path": "filters/declarative/ruleset_260/ruleset_260.json" + }, { + "enabled": false, + "id": "ruleset_3", + "path": "filters/declarative/ruleset_3/ruleset_3.json" + }, { + "enabled": false, + "id": "ruleset_4", + "path": "filters/declarative/ruleset_4/ruleset_4.json" + }, { + "enabled": false, + "id": "ruleset_5", + "path": "filters/declarative/ruleset_5/ruleset_5.json" + }, { + "enabled": false, + "id": "ruleset_6", + "path": "filters/declarative/ruleset_6/ruleset_6.json" + }, { + "enabled": false, + "id": "ruleset_7", + "path": "filters/declarative/ruleset_7/ruleset_7.json" + }, { + "enabled": false, + "id": "ruleset_8", + "path": "filters/declarative/ruleset_8/ruleset_8.json" + }, { + "enabled": false, + "id": "ruleset_9", + "path": "filters/declarative/ruleset_9/ruleset_9.json" + } ] + }, + "default_locale": "en", + "description": "__MSG_description__", + "devtools_page": "pages/devtools.html", + "host_permissions": [ "\u003Call_urls>" ], + "icons": { + "128": "assets/icons/on-128.png", + "16": "assets/icons/on-16.png" + }, + "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqbVb+sEr07ot5230yBVcrxQpANd89AacNmD3Ut7To6kk2gL6ri8SWHids1CZ4bOhG9NAd6Iqz4/8aAuNQgMKCk34uRn0oSbmW+YDwkGTU14VqlWqr0+ikFKM0UTrEX4o3dvKPeV6lRPlHeLznV/TiV22NSB+8xfGRSvJenSWumJnos2WM2HQoS32q4Rcbwfy1rBrWoDwUK6maRKvE0tvfKl+3j5s+16b/BDdUvdYWADqzBUxDxHHwTuQ6K49th2Tg5nM6GPzCFLqoC6NHtaayVFd4W0J8z6+MUrJHJO7plRxLeOCbKAQCE1NhYDt93BTlsSX2Ohxs5nW/GDG0oh6zwIDAQAB", + "manifest_version": 3, + "minimum_chrome_version": "121", + "name": "__MSG_name__", + "optional_permissions": [ "privacy" ], + "options_page": "pages/options.html", + "permissions": [ "tabs", "webRequest", "webNavigation", "storage", "unlimitedStorage", "contextMenus", "cookies", "declarativeNetRequest", "declarativeNetRequestFeedback", "scripting", "userScripts" ], + "short_name": "__MSG_short_name__", + "update_url": "https://clients2.google.com/service/update2/crx", + "version": "5.5.2.40", + "web_accessible_resources": [ { + "matches": [ "http://*/*", "https://*/*" ], + "resources": [ "web-accessible-resources/*" ], + "use_dynamic_url": true + } ] +} diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/assistant-inject.js b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/assistant-inject.js new file mode 100644 index 0000000..985a359 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/assistant-inject.js @@ -0,0 +1,11127 @@ +(() => { +var __webpack_modules__ = ({ +37190(module) { +/*! + * AdGuard Assistant - v4.4.13 - Thu Jun 25 2026 + * https://github.com/AdguardTeam/AdguardAssistant#adguard-assistant + * Copyright (c) 2026 AdGuard. Licensed GPL-3.0 + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else { var i, a } +})(self, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 5641 +(module, __unused_webpack_exports, __nested_webpack_require_659_678__) { + +var map = { + "./": 8591, + "./ar/messages": 2066, + "./ar/messages.json": 2066, + "./ar/messages.meta": 2993, + "./ar/messages.meta.json": 2993, + "./be/messages": 7500, + "./be/messages.json": 7500, + "./be/messages.meta": 683, + "./be/messages.meta.json": 683, + "./bg/messages": 4134, + "./bg/messages.json": 4134, + "./bg/messages.meta": 6077, + "./bg/messages.meta.json": 6077, + "./ca/messages": 7699, + "./ca/messages.json": 7699, + "./ca/messages.meta": 70, + "./ca/messages.meta.json": 70, + "./cs/messages": 3753, + "./cs/messages.json": 3753, + "./cs/messages.meta": 5972, + "./cs/messages.meta.json": 5972, + "./da/messages": 8626, + "./da/messages.json": 8626, + "./da/messages.meta": 9025, + "./da/messages.meta.json": 9025, + "./de/messages": 5278, + "./de/messages.json": 5278, + "./de/messages.meta": 4005, + "./de/messages.meta.json": 4005, + "./el/messages": 2360, + "./el/messages.json": 2360, + "./el/messages.meta": 495, + "./el/messages.meta.json": 495, + "./en/messages": 6642, + "./en/messages.json": 6642, + "./en/messages.meta": 9921, + "./en/messages.meta.json": 9921, + "./es/messages": 2271, + "./es/messages.json": 2271, + "./es/messages.meta": 4682, + "./es/messages.meta.json": 4682, + "./fa/messages": 356, + "./fa/messages.json": 356, + "./fa/messages.meta": 563, + "./fa/messages.meta.json": 563, + "./fi/messages": 7804, + "./fi/messages.json": 7804, + "./fi/messages.meta": 3787, + "./fi/messages.meta.json": 3787, + "./fr/messages": 9335, + "./fr/messages.json": 9335, + "./fr/messages.meta": 4818, + "./fr/messages.meta.json": 4818, + "./he/messages": 4314, + "./he/messages.json": 4314, + "./he/messages.meta": 7241, + "./he/messages.meta.json": 7241, + "./hi/messages": 8158, + "./hi/messages.json": 8158, + "./hi/messages.meta": 6837, + "./hi/messages.meta.json": 6837, + "./hr/messages": 1733, + "./hr/messages.json": 1733, + "./hr/messages.meta": 1912, + "./hr/messages.meta.json": 1912, + "./hu/messages": 4890, + "./hu/messages.json": 4890, + "./hu/messages.meta": 9097, + "./hu/messages.meta.json": 9097, + "./id/messages": 940, + "./id/messages.json": 940, + "./id/messages.meta": 9083, + "./id/messages.meta.json": 9083, + "./index": 8591, + "./index.js": 8591, + "./it/messages": 5468, + "./it/messages.json": 5468, + "./it/messages.meta": 7579, + "./it/messages.meta.json": 7579, + "./ja/messages": 1080, + "./ja/messages.json": 1080, + "./ja/messages.meta": 9727, + "./ja/messages.meta.json": 9727, + "./ko/messages": 1973, + "./ko/messages.json": 1973, + "./ko/messages.meta": 8008, + "./ko/messages.meta.json": 8008, + "./lt/messages": 1295, + "./lt/messages.json": 1295, + "./lt/messages.meta": 3994, + "./lt/messages.meta.json": 3994, + "./mk/messages": 8463, + "./mk/messages.json": 8463, + "./mk/messages.meta": 234, + "./mk/messages.meta.json": 234, + "./nl/messages": 9841, + "./nl/messages.json": 9841, + "./nl/messages.meta": 796, + "./nl/messages.meta.json": 796, + "./no/messages": 370, + "./no/messages.json": 370, + "./no/messages.meta": 7313, + "./no/messages.meta.json": 7313, + "./pl/messages": 4067, + "./pl/messages.json": 4067, + "./pl/messages.meta": 7382, + "./pl/messages.meta.json": 7382, + "./pt-PT/messages": 6254, + "./pt-PT/messages.json": 6254, + "./pt-PT/messages.meta": 6245, + "./pt-PT/messages.meta.json": 6245, + "./pt/messages": 7435, + "./pt/messages.json": 7435, + "./pt/messages.meta": 7118, + "./pt/messages.meta.json": 7118, + "./ro/messages": 7150, + "./ro/messages.json": 7150, + "./ro/messages.meta": 5797, + "./ro/messages.meta.json": 5797, + "./ru/messages": 1468, + "./ru/messages.json": 1468, + "./ru/messages.meta": 1915, + "./ru/messages.meta.json": 1915, + "./sk/messages": 3377, + "./sk/messages.json": 3377, + "./sk/messages.meta": 3580, + "./sk/messages.meta.json": 3580, + "./sl/messages": 9422, + "./sl/messages.json": 9422, + "./sl/messages.meta": 37, + "./sl/messages.meta.json": 37, + "./sr/messages": 8896, + "./sr/messages.json": 8896, + "./sr/messages.meta": 8983, + "./sr/messages.meta.json": 8983, + "./sv/messages": 6428, + "./sv/messages.json": 6428, + "./sv/messages.meta": 9707, + "./sv/messages.meta.json": 9707, + "./th/messages": 2739, + "./th/messages.json": 2739, + "./th/messages.meta": 3734, + "./th/messages.meta.json": 3734, + "./tr/messages": 1777, + "./tr/messages.json": 1777, + "./tr/messages.meta": 7020, + "./tr/messages.meta.json": 7020, + "./uk/messages": 7415, + "./uk/messages.json": 7415, + "./uk/messages.meta": 3378, + "./uk/messages.meta.json": 3378, + "./vi/messages": 9692, + "./vi/messages.json": 9692, + "./vi/messages.meta": 8315, + "./vi/messages.meta.json": 8315, + "./zh-HK/messages": 6359, + "./zh-HK/messages.json": 6359, + "./zh-HK/messages.meta": 9762, + "./zh-HK/messages.meta.json": 9762, + "./zh-TW/messages": 6543, + "./zh-TW/messages.json": 6543, + "./zh-TW/messages.meta": 1066, + "./zh-TW/messages.meta.json": 1066, + "./zh/messages": 9161, + "./zh/messages.json": 9161, + "./zh/messages.meta": 3492, + "./zh/messages.meta.json": 3492 +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __nested_webpack_require_659_678__(id); +} +function webpackContextResolve(req) { + if(!__nested_webpack_require_659_678__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = 5641; + +/***/ }, + +/***/ 8591 +(__unused_webpack_module, __nested_webpack_exports__, __nested_webpack_require_6082_6101__) { + +"use strict"; +__nested_webpack_require_6082_6101__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_6082_6101__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +var _require = __nested_webpack_require_6082_6101__(1321), + getEquivalent = _require.getEquivalent; +var _require2 = __nested_webpack_require_6082_6101__(8401), + LANGUAGES = _require2.LANGUAGES, + LOCALE_DATA_FILENAME = _require2.LOCALE_DATA_FILENAME; +var locales = Object.keys(LANGUAGES).reduce(function (acc, language) { + var resultLocale = getEquivalent(language); + // eslint-disable-next-line global-require,import/no-dynamic-require + var dictionary = __nested_webpack_require_6082_6101__(5641)("./".concat(resultLocale, "/").concat(LOCALE_DATA_FILENAME)); + acc[resultLocale] = dictionary; + return acc; +}, {}); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (locales); + +/***/ }, + +/***/ 8401 +(module, __unused_webpack_exports, __nested_webpack_require_7026_7045__) { + +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +var _require = __nested_webpack_require_7026_7045__(6539), + _require2 = _slicedToArray(_require, 1), + _require2$ = _require2[0], + BASE_LOCALE = _require2$.base_locale, + PROJECT_ID = _require2$.project_id, + LANGUAGES = _require2$.languages, + LOCALIZABLE_FILES = _require2$.localizable_files; +var LOCALES_DIR = '../../locales'; + +/** + * Users locale may be defined with only two chars (language code) + * Here we provide a map of equivalent translation for such locales + */ +var LOCALES_EQUIVALENTS_MAP = { + 'pt-BR': 'pt', + 'zh-CN': 'zh' +}; +var LOCALES = Object.keys(LANGUAGES); +var REQUIRED_LOCALES = ['de', 'es', 'fr', 'it', 'ja', 'ko', 'pt', 'pt-PT', 'ru', 'zh', 'zh-TW']; + +/** + * Threshold percentage for validation of required locales. + */ +var THRESHOLD_PERCENTAGE = 100; + +/** + * Name of the locale data file. + */ +var LOCALE_DATA_FILENAME = 'messages.json'; +module.exports = { + LOCALES_EQUIVALENTS_MAP: LOCALES_EQUIVALENTS_MAP, + BASE_LOCALE: BASE_LOCALE, + PROJECT_ID: PROJECT_ID, + LANGUAGES: LANGUAGES, + LOCALIZABLE_FILES: LOCALIZABLE_FILES, + LOCALES: LOCALES, + REQUIRED_LOCALES: REQUIRED_LOCALES, + THRESHOLD_PERCENTAGE: THRESHOLD_PERCENTAGE, + LOCALES_DIR: LOCALES_DIR, + LOCALE_DATA_FILENAME: LOCALE_DATA_FILENAME +}; + +/***/ }, + +/***/ 1321 +(module, __unused_webpack_exports, __nested_webpack_require_9801_9820__) { + +var _require = __nested_webpack_require_9801_9820__(8401), + LOCALES_EQUIVALENTS_MAP = _require.LOCALES_EQUIVALENTS_MAP; + +/** + * Returns equivalent of specified locale code + * @param {string} locale locale + */ +var getEquivalent = function getEquivalent(locale) { + return LOCALES_EQUIVALENTS_MAP[locale] || locale; +}; + +/** + * Normalizes locale code before validation. + * + * @param {string} rawLocale Locale code to normalize. + * + * @returns {string} Normalized locale code. + * + * @example + * 'pt_BR' -> 'pt_br' + * 'es_419' -> 'es' + * 'sr-Latn' -> 'sr_latn' + */ +var normalizeLocale = function normalizeLocale(rawLocale) { + // locale should be lowercase, e.g. 'pt_br', not 'pt_BR' + // and with underscore, not dash, e.g. 'sr_latn', not 'sr-latn' + var locale = rawLocale.toLowerCase().replace('-', '_'); + return getEquivalent(locale); +}; +module.exports = { + getEquivalent: getEquivalent, + normalizeLocale: normalizeLocale +}; + +/***/ }, + +/***/ 8814 +(module, __nested_webpack_exports__, __nested_webpack_require_10788_10807__) { + +"use strict"; +__nested_webpack_require_10788_10807__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_10788_10807__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_10788_10807__(4355); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_10788_10807__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_10788_10807__(8092); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_10788_10807__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_10788_10807__(8151); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nested_webpack_require_10788_10807__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __nested_webpack_require_10788_10807__(7133), __nested_webpack_require_10788_10807__.b); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __nested_webpack_require_10788_10807__(2883), __nested_webpack_require_10788_10807__.b); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __nested_webpack_require_10788_10807__(9010), __nested_webpack_require_10788_10807__.b); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __nested_webpack_require_10788_10807__(4018), __nested_webpack_require_10788_10807__.b); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __nested_webpack_require_10788_10807__(6846), __nested_webpack_require_10788_10807__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} +/** + * Remove default margin. + */ +body { + margin: 0; +} +/* HTML5 display definitions +========================================================================== */ +/** + * Correct \`block\` display not defined for any HTML5 element in IE 8/9. + * Correct \`block\` display not defined for \`details\` or \`summary\` in IE 10/11 and Firefox. + * Correct \`block\` display not defined for \`main\` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} +/** + * 1. Correct \`inline-block\` display not defined in IE 8/9. + * 2. Normalize vertical alignment of \`progress\` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ +} +/** + * Prevent modern browsers from displaying \`audio\` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; +} +/** + * Address \`[hidden]\` styling not present in IE 8/9/10. + * Hide the \`template\` element in IE 8/9/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; +} +/* Links +========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background: transparent; +} +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ +a:active, +a:hover { + outline: 0; +} +/* Text-level semantics +========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; +} +/** + * Address style set to \`bolder\` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; +} +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; +} +/** + * Address variable \`h1\` font-size and margin within \`section\` and \`article\` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; +} +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; +} +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent \`sub\` and \`sup\` affecting \`line-height\` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +/* Embedded content +========================================================================== */ +/** + * Remove border when inside \`a\` element in IE 8/9/10. + */ +img { + border: 0; +} +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; +} +/* Grouping content +========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; +} +/** + * Address differences between Firefox and other browsers. + */ +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; +} +/** + * Address odd \`em\`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +/* Forms +========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of \`select\`, unless a \`border\` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ +} +/** + * Address \`overflow\` set to \`hidden\` in IE 8/9/10/11. + */ +button { + overflow: visible; +} +/** + * Address inconsistent \`text-transform\` inheritance for \`button\` and \`select\`. + * All other form control elements do not inherit \`text-transform\` values. + * Correct \`button\` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct \`select\` style inheritance in Firefox. + */ +button, +select { + text-transform: none; +} +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native \`audio\` + * and \`video\` controls. + * 2. Correct inability to style clickable \`input\` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * \`input\` and others. + */ +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ +} +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; +} +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +/** + * Address Firefox 4+ setting \`line-height\` on \`input\` using \`!important\` in + * the UA stylesheet. + */ +input { + line-height: normal; +} +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to \`content-box\` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * \`font-size\` values of the \`input\`, it causes the cursor style of the + * decrement button to change from \`default\` to \`text\`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. Address \`appearance\` set to \`searchfield\` in Safari and Chrome. + * 2. Address \`box-sizing\` set to \`border-box\` in Safari and Chrome + * (include \`-moz\` to future-proof). + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + /* 2 */ + box-sizing: content-box; +} +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and \`textfield\` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +/** + * 1. Correct \`color\` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ +} +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; +} +/** + * Don't inherit the \`font-weight\` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; +} +/* Tables +========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +* { + box-sizing: border-box; +} +*:after, +*:before { + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + position: relative; + font-size: 1.3rem; + line-height: 1.42857143; + background-color: #e6e6e6; + font-family: "Roboto", Arial, sans-serif; + font-weight: 400; + overflow-y: hidden; +} +button, +input, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; + outline: none; + border-radius: 0; + box-shadow: none; +} +a { + color: #36ba53; + text-decoration: underline; + outline: 0; +} +a:hover { + color: #257f39; + text-decoration: underline; +} +figure { + margin: 0; +} +img { + vertical-align: middle; + max-width: 100%; +} +form { + margin: 0; +} +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 22/14; + font-size: 21px; + line-height: inherit; + border: 0; +} +label { + display: inline-block; +} +input[type="search"] { + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + display: none; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.form-control { + display: block; + width: 100%; + padding: 16px; + font-size: 16px; + line-height: 1.3; + text-overflow: ellipsis; + white-space: nowrap; + border-radius: 8px; + border: 1px solid; +} +.form-control:focus { + border-color: #8c8c8c; + outline: 0; +} +.form-control::-moz-placeholder { + color: #777777; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #777777; +} +.form-control::-webkit-input-placeholder { + color: #777777; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #fff; + opacity: 1; +} +textarea.form-control { + height: auto; +} +/* +.fieldset.error{ + .form-control{ + border-color: @state-danger-text; + .placeholder(@state-danger-text); + } +} +*/ +input[type="search"] { + -webkit-appearance: none; +} +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + line-height: 22px; +} +.form-group { + margin: 23px 0 0; +} +.form-group:first-child { + margin-top: 0; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +@font-face { + font-family: 'Roboto'; + src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff2'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format('woff2'); + font-weight: 700; + font-style: normal; +} + +.form-ui { + position: relative; + display: inline-block; + vertical-align: top; + margin: 0; + line-height: 20px; + font-weight: 400; + cursor: pointer; +} +.form-ui-control { + position: absolute; + top: -9999px; + left: -9999px; + width: 0; + height: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + outline: 0 none; +} +.form-ui-txt { + position: relative; + display: inline-block; + vertical-align: top; + padding: 2px 0 0 30px; +} +.form-ui-txt:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 22px; + height: 22px; +} +.form-ui-txt:after { + content: ''; + position: absolute; +} +input[type="radio"] + .form-ui .form-ui-txt:before { + border: 1px solid #cfcfcf; + border-radius: 50%; +} +input[type="radio"] + .form-ui .form-ui-txt:after { + top: 7px; + left: 7px; + width: 8px; + height: 8px; + border-radius: 50%; +} +input[type="radio"]:disabled + .form-ui .form-ui-txt:before { + background: #f2f2f2; + opacity: 0.6; +} +input[type="radio"]:disabled + .form-ui .form-ui-txt:after { + opacity: 0.6; +} +input[type="checkbox"] + .form-ui { + display: flex; + column-gap: 12px; +} +input[type="checkbox"] + .form-ui .form-ui-txt { + padding: 3px 0; + font-size: 14px; + font-weight: 600; + line-height: 18px; +} +input[type="checkbox"] + .form-ui .form-ui-txt:before, +input[type="checkbox"] + .form-ui .form-ui-txt:after { + content: none; +} +input[type="checkbox"] + .form-ui .form-ui-icon { + width: 24px; + height: 24px; +} +input[type="checkbox"] + .form-ui .form-ui-icon--off { + display: block; +} +input[type="checkbox"] + .form-ui .form-ui-icon--on { + display: none; +} +input[type="checkbox"]:disabled + .form-ui .form-ui-icon { + opacity: 0.6; +} +input[type="checkbox"]:checked + .form-ui .form-ui-icon--off { + display: none; +} +input[type="checkbox"]:checked + .form-ui .form-ui-icon--on { + display: block; +} +.btn { + display: inline-block; + margin: 0; + padding: 18px 16px; + font-size: 16px; + line-height: 1.3; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + user-select: none; + border-radius: 8px; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 600; + transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease; +} +.btn:disabled, +.btn[disabled], +.btn.disabled { + cursor: default; + pointer-events: none; +} +@media (max-width: 320px) { + .btn-another-el { + font-size: 9px; + padding-left: 0; + padding-right: 0; + background-color: transparent; + border: 0; + color: #000; + } + .btn-another-el:hover { + border-color: transparent; + background: transparent; + color: #000; + } +} +.btn-lg { + font-size: 20px; + padding: 14px 24px 12px; +} +.btn-sm { + font-size: 16px; + padding-top: 14px; + padding-bottom: 14px; +} +.btn-xs { + font-size: 14px; + padding-top: 12px; + padding-bottom: 12px; +} +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.btn-upload { + position: relative; + overflow: hidden; +} +.btn-upload input[type=file] { + position: absolute; + top: 0; + right: 0; + margin: 0; + font-size: 600%; + line-height: 600%; + width: auto; + height: auto; + opacity: 0; + cursor: pointer; +} +.old-btn { + display: inline-block; + margin-bottom: 0; + padding: 10px 20px; + font-size: 13px; + line-height: 18px; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + user-select: none; +} +.old-btn:hover { + color: #000; + text-decoration: none; +} +.old-btn:active, +.old-btn.active { + outline: none; +} +.old-btn:focus { + outline: none; + box-shadow: inset 0 0 0 1px #fff; +} +.old-btn[disabled], +.old-btn.disabled { + cursor: default; + box-shadow: none; + opacity: 0.5; + pointer-events: none; +} +.old-btn-default { + border-color: #58595b; + background: #58595b; + color: #fff; +} +.old-btn-default:hover { + border-color: #717275; + background: #717275; + color: #fff; +} +.old-btn-default.active, +.old-btn-default:active { + border-color: #717275; + background: #717275; +} +.old-btn-default.disabled, +.old-btn-default[disabled] { + border-color: #58595b; + background: #58595b; +} +@media (prefers-color-scheme: light) { + body { + color: #3D3D3D; + } + .main { + background: #FFFFFF; + } + .main-popup__btn { + background: #ffffff; + border: 1px solid #cfcfcf; + } + .main-popup__btn:hover { + background-color: #efefef; + } + .main-menu__btn { + background-color: #ffffff; + } + .main-menu__btn:hover { + background-color: #efefef; + } + .main-menu__btn:active, + .main-menu__btn.active { + background-color: #f3f3f3; + } + .main-version { + color: #dfdfdf; + } + .main_close { + color: #7F7F7F; + } + .main_close:hover { + color: #3D3D3D; + } + .head_title { + color: #3D3D3D; + } + .head_text { + color: #5B5B5B; + } + .head::after { + background-color: #D2D2D2; + } + .element-rule_expand-link { + color: #3D3D3D; + } + .element-rule_expand-link_arr { + color: #7F7F7F; + } + .element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #3D3D3D; + } + .element-rule_text { + color: #5B5B5B; + } + .close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_3___}) no-repeat 0 0 / cover; + opacity: 0.6; + } + .close:hover { + opacity: 0.8; + } + .form-control { + color: #3D3D3D; + background-color: #F6F6F6; + border-color: #D2D2D2; + } + input[type="checkbox"] + .form-ui .form-ui-txt { + color: #3D3D3D; + } + input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #7F7F7F; + } + input[type="checkbox"] + .form-ui .form-ui-icon--on { + color: #67B279; + } + .menu, + .menu-filter { + border-top: 1px solid #e0dfdb; + } + .settings_fieldset { + border-top: 1px solid #e0dfdb; + } + .btn-primary { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #FFFFFF; + } + .btn-primary:hover, + .btn-primary:focus-visible { + background-color: #F6F6F6; + border-color: #F6F6F6; + } + .btn-primary:active, + .btn-primary.active { + background-color: #E4E4E4; + border-color: #E4E4E4; + } + .btn-primary:disabled, + .btn-primary[disabled], + .btn-primary.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #FFFFFF; + } + .btn-cancel { + color: #FFFFFF; + background-color: #F67247; + border-color: #F67247; + } + .btn-cancel:hover, + .btn-cancel:focus-visible { + background-color: #DF6740; + border-color: #DF6740; + } + .btn-cancel:active, + .btn-cancel.active { + background-color: #B55434; + border-color: #B55434; + } + .btn-cancel:disabled, + .btn-cancel[disabled], + .btn-cancel.disabled { + background-color: #FAA98F; + border-color: #FAA98F; + } + .btn-default { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #3D3D3D; + } + .btn-default:hover, + .btn-default:focus-visible { + background-color: #F6F6F6; + } + .btn-default:active, + .btn-default.active { + background-color: #E4E4E4; + } + .btn-default:disabled, + .btn-default[disabled], + .btn-default.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #A4A4A4; + } + .change-position_input:checked + .change-position_label { + border-color: #36ba53; + background: #36ba53; + } + input[type="radio"] + .form-ui .form-ui-txt:before { + background: #ffffff; + } + input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #36ba53; + } + .menu-head_title { + color: #343434; + } + .menu-head_text { + color: #343434; + } + .menu-filter_handle { + background: #ffffff; + } + .adg-slide_clue { + color: #3D3D3D; + } + .adg-slide_tick { + background-color: #C0C0C0; + } + .adg-slide_tick--active, + .adg-slide_handle { + background-color: #67B279 !important; + } + .old-btn-primary { + border-color: #36ba53; + background: #36ba53; + color: #fff; + } + .old-btn-primary:hover { + border-color: #30a64a; + background: #30a64a; + color: #fff; + } + .old-btn-primary.active, + .old-btn-primary:active { + border-color: #30a64a; + background: #30a64a; + } + .old-btn-primary.disabled, + .old-btn-primary[disabled] { + border-color: #30a64a; + background: #30a64a; + } +} +@media (prefers-color-scheme: dark) { + body { + color: #E4E4E4; + } + .main { + background: #3D3D3D; + } + .main-popup__btn { + background: #323232; + border: 1px solid #666; + } + .main-popup__btn:hover { + background-color: #555555; + } + .main-menu__btn { + background-color: #323232; + } + .main-menu__btn:hover { + background-color: #555555; + } + .main-menu__btn:active, + .main-menu__btn.active { + background-color: #4d4d4d; + } + .main-version { + color: #444; + } + .main_close { + color: #C0C0C0; + } + .main_close:hover { + color: #E4E4E4; + } + .head_title { + color: #E4E4E4; + } + .head_text { + color: #D2D2D2; + } + .head::after { + background-color: #5B5B5B; + } + .element-rule_expand-link { + color: #E4E4E4; + } + .element-rule_expand-link_arr { + color: #C0C0C0; + } + .element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #E4E4E4; + } + .element-rule_text { + color: #D2D2D2; + } + .close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_4___}) no-repeat 0 0 / cover; + opacity: 0.7; + } + .close:hover { + opacity: 1; + } + .form-control { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #5B5B5B; + } + input[type="checkbox"] + .form-ui .form-ui-txt { + color: #E4E4E4; + } + input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #C0C0C0; + } + .menu, + .menu-filter { + border-top: 1px solid #444; + } + .settings_fieldset { + border-top: 1px solid #444; + } + .btn-primary { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-primary:hover, + .btn-primary:focus-visible { + background-color: #5B5B5B; + border-color: #5B5B5B; + } + .btn-primary:active, + .btn-primary.active { + background-color: #7F7F7F; + border-color: #7F7F7F; + } + .btn-primary:disabled, + .btn-primary[disabled], + .btn-primary.disabled { + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-cancel:disabled, + .btn-cancel[disabled], + .btn-cancel.disabled { + background-color: #7B3923; + border-color: #7B3923; + } + .btn-default { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #E4E4E4; + } + .btn-default:hover, + .btn-default:focus-visible { + background-color: #5B5B5B; + } + .btn-default:active, + .btn-default.active { + background-color: #7F7F7F; + } + .btn-default:disabled, + .btn-default[disabled], + .btn-default.disabled { + background-color: #3D3D3D; + } + .change-position_input:checked + .change-position_label { + border-color: #4D995F; + background: #4D995F; + } + input[type="radio"] + .form-ui .form-ui-txt:before { + background: #323232; + } + input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #4D995F; + } + .menu-head_title { + color: #ccc; + } + .menu-head_text { + color: #ccc; + } + .menu-filter_handle { + background: #323232; + } + .adg-slide_clue { + color: #E4E4E4; + } + .adg-slide_tick { + background-color: #7F7F7F; + } + .old-btn-primary { + border-color: #4D995F; + background: #4D995F; + color: #fff; + } + .old-btn-primary:hover { + border-color: #39774C; + background: #39774C; + color: #fff; + } + .old-btn-primary.active, + .old-btn-primary:active { + border-color: #39774C; + background: #39774C; + } + .old-btn-primary.disabled, + .old-btn-primary[disabled] { + border-color: #39774C; + background: #39774C; + } +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }, + +/***/ 5909 +(module, __nested_webpack_exports__, __nested_webpack_require_37394_37413__) { + +"use strict"; +__nested_webpack_require_37394_37413__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_37394_37413__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_37394_37413__(4355); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_37394_37413__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_37394_37413__(8092); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_37394_37413__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_37394_37413__(8151); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nested_webpack_require_37394_37413__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __nested_webpack_require_37394_37413__(6263), __nested_webpack_require_37394_37413__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + display: block!important; + position: relative!important; + width: 0!important; + height: 0!important; + margin: 0!important; + padding: 0!important; + z-index: 2147483647!important; +} +:host ::after, +:host ::before { + display: none!important; +} +.adguard-assistant-button-main-logo { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) !important; +} +.adguard-alert { + cursor: pointer; + left: 0; + top: 0; + position: fixed !important; + z-index: 2147483647 !important; + width: 40px !important; + height: 40px !important; + zoom: 1 !important; + display: inline-block !important; + margin: 0 !important; + border: 0 !important; + padding: 0 !important; + will-change: transform; + opacity: 1; + touch-action: none; + -ms-touch-action: none; + visibility: visible !important; + min-height: auto !important; + max-height: auto !important; + min-width: auto !important; + max-width: auto !important; + background-size: 21px!important; + background-position: center center!important; + background-repeat: no-repeat !important; + background-color: #fff !important; + border: none !important; + box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3) !important; + border-radius: 100% !important; + transition: background-color 0.3s ease; +} +.adguard-alert.sg_hide_element { + display: none!important; +} +.adguard-alert.logo-small { + width: 24px !important; + height: 24px !important; + background-position: 50% 6px!important; + background-size: 14px!important; +} +.adguard-alert:hover { + background-color: #ccf0d4 !important; +} +@media print { + .adguard-alert { + display: none!important; + } +} +.adguard-assistant-button-right { + left: auto; + right: 0; +} +.adguard-assistant-button-left { + left: 0; + right: auto; +} +.adguard-assistant-button-top { + top: 0; + bottom: auto; +} +.adguard-assistant-button-bottom { + top: auto; + bottom: 0; +} +.adguard-assistant-button-top.adguard-assistant-button-left { + left: 0; + right: auto; + transform: translate3d(10px, 10px, 0); +} +.adguard-assistant-button-top.adguard-assistant-button-right { + left: auto; + right: 0; + transform: translate3d(-10px, 10px, 0); +} +.adguard-assistant-button-bottom.adguard-assistant-button-left { + left: 0; + right: auto; + transform: translate3d(10px, -10px, 0); +} +.adguard-assistant-button-bottom.adguard-assistant-button-right { + left: auto; + right: 0; + transform: translate3d(-10px, -10px, 0); +} +.adguard-assistant-button-bottom.adguard-assistant-button-respect-vk { + transform: translate3d(-70px, -5px, 0); +} +.adguard-assistant-button-bottom.adguard-assistant-button-respect-fb { + transform: translate3d(-5px, -40px, 0); +} +@media (prefers-color-scheme: dark) { + .adguard-alert { + background-color: #1d2021 !important; + box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.3) !important; + } + .adguard-alert:hover { + background-color: #2c2f30 !important; + } +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }, + +/***/ 6826 +(module, __nested_webpack_exports__, __nested_webpack_require_42899_42918__) { + +"use strict"; +__nested_webpack_require_42899_42918__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_42899_42918__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_42899_42918__(4355); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_42899_42918__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_42899_42918__(8092); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_42899_42918__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_42899_42918__(8151); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nested_webpack_require_42899_42918__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(322), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(158), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(207), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(7884), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(6429), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(2498), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(5811), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_7___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(2540), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_8___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(6873), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_9___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(3417), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_10___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(1412), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_11___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(4117), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_12___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(384), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_13___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(7988), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_14___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(7608), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_15___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(7501), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_16___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(4018), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_URL_IMPORT_17___ = new URL(/* asset import */ __nested_webpack_require_42899_42918__(6846), __nested_webpack_require_42899_42918__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_15___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_17___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.close { + position: absolute; + top: 10px; + right: 10px; + display: inline-block; + vertical-align: top; + width: 1em; + font-size: 12px; + line-height: 1; + cursor: pointer; + transition: opacity 0.3s ease; +} +.close:before { + content: "\\00a0"; +} +@media (max-width: 320px) { + .close { + font-size: 15px; + top: 18px; + right: 14px; + } +} +.a-logo { + display: inline-block; + vertical-align: top; + width: 40px; + height: 40px; + padding: 10px 0 0; + font-size: 20px; + text-align: center; + border: 1px solid #cdcdcd; + border-radius: 50%; + background: #fff; +} +.a-logo__small { + width: 24px; + height: 24px; + font-size: 12px; + padding: 6px 0 0; +} +.tooltip { + position: relative; +} +.tooltip:before { + display: none; + content: attr(data-title); + position: absolute; + top: 100%; + left: 50%; + width: 170px; + margin: 7px 0 0 -85px; + padding: 6px 0 5px; + font-size: 10px; + font-style: normal; + font-weight: 500; + color: #fff; + text-align: center; + white-space: nowrap; + border-radius: 4px; + background: rgba(0, 0, 0, 0.8); +} +.tooltip:after { + display: none; + content: ''; + position: absolute; + top: 100%; + left: 50%; + margin: 3px 0 0 -4px; + border-bottom: 4px solid rgba(0, 0, 0, 0.8); + border-left: 4px solid transparent; + border-right: 4px solid transparent; +} +.tooltip:hover:before, +.tooltip:hover:after { + display: block; +} +.main { + position: relative; + min-height: 100%; + display: flex; + flex-direction: column; + justify-content: space-evenly; +} +.main--roboto { + font-family: "Roboto", "Open Sans", Arial, sans-serif; + font-weight: 400; +} +.main_close { + position: absolute; + top: 16px; + right: 16px; + display: inline-block; + vertical-align: top; + width: 24px; + height: 24px; + line-height: 1; + cursor: pointer; + transition: color 0.3s ease; +} +.main_close svg { + width: 100%; + height: 100%; +} +.head { + padding: 32px 32px 24px; + cursor: move; + touch-action: none; + -ms-touch-action: none; +} +.head_title { + font-size: 24px; + font-weight: 700; + line-height: 1.2; + padding: 6px 0; +} +.head_text { + font-size: 16px; + line-height: 1.5; +} +.head::after { + content: ''; + display: block; + margin-top: 16px; + height: 1px; + width: 100%; +} +.foot { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + row-gap: 16px; + padding: 0 32px 32px; +} +.foot .btn { + width: 256px; +} +.foot .btn:nth-child(3) { + width: 328px; + margin: 0 auto; +} +.old-head { + padding: 18px 20px; + cursor: move; +} +.old-head_title { + font-size: 16px; + font-weight: 700; +} +.old-head_text { + margin: 4px 0 0; + font-size: 12px; +} +.old-foot { + padding: 20px; +} +.old-foot_action { + float: right; +} +.old-foot_action_btn { + font-size: 0; +} +.old-foot_action_btn .old-btn + .old-btn { + margin-left: 10px; +} +.old-foot .cf { + clear: right; +} +.element-rule { + padding: 0 32px 24px; +} +.element-rule_slider { + user-select: none; +} +@media (max-width: 320px) { + .element-rule_slider { + display: none; + } +} +.element-rule_expand-link { + font-size: 18px; + line-height: 1.2; + font-weight: 700; + cursor: pointer; + padding: 8px 0; + display: flex; + column-gap: 4px; +} +.element-rule_expand-link_txt { + display: inline-block; + vertical-align: top; + padding: 1px 0; +} +.element-rule_expand-link_arr { + display: inline-block; + vertical-align: top; + width: 24px; + height: 24px; + transition: color 0.3s ease, transform 0.3s ease; + line-height: 1; +} +.element-rule_expand-link.active .element-rule_expand-link_arr { + transform: rotate(180deg); +} +.element-rule_form { + display: none; +} +.element-rule_form.open { + display: block; +} +.element-rule_fieldset { + padding: 8px 0; +} +.element-rule_more--mobile { + display: none; +} +@media (max-width: 320px) { + .element-rule_more--mobile { + display: block; + } + .element-rule_more--mobile .element-rule_expand-link { + display: none; + } + .element-rule_more--mobile #adg-cancel { + width: 106px; + padding: 10px 7px; + } + .element-rule_more--mobile #adg-accept { + padding: 10px 6px; + } +} +.element-rule_text { + font-size: 16px; + line-height: 1.5; +} +.adg-slide { + display: flex; + padding: 16px 0; +} +.adg-slide_clue { + padding: 9px 0; + font-size: 18px; + font-weight: 700; + cursor: pointer; + line-height: 1.2; +} +.adg-slide_clue--min { + order: 1; +} +.adg-slide_clue--max { + order: 3; +} +.adg-slide_track { + order: 2; + flex: 1 1 auto; + position: relative; + display: flex; + justify-content: space-between; + column-gap: 4px; + padding: 18px 28px; + cursor: pointer; + touch-action: none; +} +.adg-slide_tick { + flex: 1 1 auto; + width: auto; + height: 4px; + pointer-events: none; +} +.adg-slide_handle { + position: absolute; + width: 24px; + height: 24px; + border-radius: 50%; + top: 50%; + transform: translate(-50%, -50%); + box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.2), 2px 2px 4px rgba(0, 0, 0, 0.1); + pointer-events: none; +} +.adg-slide-btns { + display: none; +} +.adg-slide-btn { + position: relative; + width: 36px; + height: 36px; + border: 2px solid #e2e2e2; + border-radius: 2px; +} +.adg-slide-btn:after { + content: ""; + position: absolute; + left: 8px; + top: 15.3px; + width: 18px; + height: 2px; + background-color: #4e4e4e; + border-radius: 2px; +} +.adg-slide-btn--plus { + margin-left: 9px; +} +.adg-slide-btn--plus:before { + content: ""; + position: absolute; + left: 16px; + top: 8px; + height: 17px; + width: 2px; + background-color: #4e4e4e; + border-radius: 2px; +} +.settings_fieldset { + padding: 20px; +} +.settings_fieldset:first-child { + border: 0; +} +.settings_fieldset_lbl { + float: left; + width: 126px; + margin: 1px 0 0; + font-weight: 500; +} +.settings_fieldset_lbl__pos { + margin-top: 21px; +} +.settings_fieldset_val { + margin: 0 0 0 126px; +} +.choice-size { + position: relative; + font-size: 14px; +} +.choice-size_field { + margin: 10px 0 0; +} +.choice-size_field:first-child { + margin: 0; +} +.choice-size_logo { + display: none; + position: absolute; + top: 10px; + right: 15px; + width: 40px; + height: 40px; + background-size: 21px; + background-position: 50% 11px; + background-repeat: no-repeat; + background-color: #fff; + border: none ; + box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3); + border-radius: 100% ; +} +.choice-size_logo.logo__small { + top: 15px; + right: 20px; + width: 24px; + height: 24px; + background-position: 50% 6px; + background-size: 14px; +} +.choice-size_input:checked ~ .choice-size_logo { + display: block; +} +[class^="s-position-arr-"] { + display: block; + width: 11px; + height: 11px; + background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat; + background-size: 44px 22px; +} +.s-position-arr-top-left { + background-position: 0 0; +} +.s-position-arr-top-right { + background-position: -11px 0; +} +.s-position-arr-bottom-left { + background-position: 0 -11px; +} +.s-position-arr-bottom-right { + background-position: -11px -11px; +} +.change-position { + position: relative; + display: inline-block; + vertical-align: top; + width: 70px; + margin: -3px 0 0 -3px; +} +.change-position_i { + float: left; + margin: 3px 0 0 3px; +} +.change-position_input:checked + .change-position_label .s-position-arr-top-left { + background-position: -22px 0; +} +.change-position_input:checked + .change-position_label .s-position-arr-top-right { + background-position: -33px 0; +} +.change-position_input:checked + .change-position_label .s-position-arr-bottom-left { + background-position: -22px -11px; +} +.change-position_input:checked + .change-position_label .s-position-arr-bottom-right { + background-position: -33px -11px; +} +.change-position_input:checked ~ .change-position_val { + display: block; +} +.change-position_label { + display: block; + width: 32px; + height: 32px; + margin: 0; + padding: 9px 0 0 9px; + border: 1px solid #dfdedb; + cursor: pointer; +} +.change-position_val { + display: none; + position: absolute; + top: 27px; + left: 82px; + font-size: 12px; + white-space: nowrap; +} +.position-save .position-save_field { + margin-bottom: 10px; +} +.wot-indicator { + display: inline-block; + vertical-align: top; + margin-right: 5px; +} +#WotDescriptionText { + white-space: pre-line; +} +#WotDescriptionText #WotLogo { + cursor: pointer; +} +.adg-wot { + width: 18px; + height: 18px; + display: block; + border: 5px solid #000; + border-radius: 50%; +} +.adg-wot-unknown { + border-color: #ccc; +} +.adg-wot-red { + border-color: #b60000; +} +.adg-wot-lightRed { + border-color: #f21800; +} +.adg-wot-yellow { + border-color: #fac000; +} +.adg-wot-lightGreen { + border-color: #69d225; +} +.adg-wot-green { + border-color: #00ae17; +} +.adg-wot-confidence { + width: 52px; + height: 18px; + display: inline-block; + vertical-align: middle; +} +.adg-wot-confidence-0 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___}); +} +.adg-wot-confidence-1 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___}); +} +.adg-wot-confidence-2 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___}); +} +.adg-wot-confidence-3 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_4___}); +} +.adg-wot-confidence-4 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_5___}); +} +.adg-wot-confidence-5 { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_6___}); +} +.confidence-indication, +.wot-indicator { + text-decoration: none; + vertical-align: middle; +} +.confidence-indication:hover, +.wot-indicator:hover { + text-decoration: none; +} +.confidence-indication { + display: inline-block; + margin-right: 10px; +} +.wot-logo { + display: inline-block; + vertical-align: top; + width: 31px; + height: 12px; + background: url(${___CSS_LOADER_URL_REPLACEMENT_7___}) no-repeat 0 0 / cover; + margin-top: 3px; +} +.wot-hide { + display: none; +} +iframe#adguard-assistant-dialog { + position: fixed; + clip: auto; + border-radius: 8px; + box-shadow: 8px 8px 24px 0px rgba(0, 0, 0, 0.1); + z-index: 2147483647; + display: block!important; +} +.sg_hide_element { + display: none!important; +} +img.adguard_sg_selected { + border: 5px solid #0F0 !important; +} +#_sg_div.sg_top { + top: 5px !important; +} +#_sg_div.sg_bottom { + bottom: 5px !important; +} +#_sg_div input { + margin-right: 10px !important; + font-size: 15px !important; +} +#_sg_path_field { + width: 400px !important; +} +#_sg_div .sg_new_line { + clear: both !important; +} +#_sg_div .sg_option { + float: left !important; +} +#_sg_div .adguard_sg_selected_option { + text-decoration: underline; +} +.adguard-placeholder { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_8___}); +} +.adguard-placeholder-icon { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_9___}); + background-position: center center; + background-repeat: no-repeat; + height: 100%; +} +.adguard-placeholder-domain { + background: #778b7c; + color: #ffffff; + left: 0; + top: 0; + padding: 2px 4px; + position: relative; +} +@media print { + .adguard-alert, + #adguard-assistant-dialog { + display: none!important; + opacity: 0!important; + visibility: hidden!important; + } +} +.menu-head { + padding: 18px 20px; + cursor: move; + touch-action: none; + -ms-touch-action: none; +} +.menu-head_title { + font-size: 16px; + font-weight: 700; +} +.menu-head_name { + display: inline-block; + vertical-align: top; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + max-width: 260px; + line-height: 26px; + margin: 0 10px 5px 0; +} +.menu-head_text { + margin: 4px 10px 0 0; + font-size: 12px; +} +.menu-filter { + width: 100%; + display: table; + padding: 20px; +} +.menu-filter_lbl { + display: table-cell; + vertical-align: middle; +} +.menu-filter_val { + display: table-cell; + vertical-align: middle; +} +.menu-filter_label { + position: relative; + width: 30px; + height: 12px; + border-radius: 25px; + background-color: #ed7865; + cursor: pointer; + transition: all 0.3s ease; + float: right; +} +.menu-filter_label:after { + content: ""; + cursor: pointer; + border-radius: 100%; + position: absolute; + left: -3px; + top: -4px; + box-shadow: 0 0 10px 3px rgba(162, 161, 161, 0.3); + width: 20px; + height: 20px; + background-color: #e85037; + transition: all 0.3s ease; +} +.menu-filter_handle { + position: absolute; + width: 20px; + height: 20px; + top: 1px; + left: 1px; + border-radius: 4px; +} +.menu-filter_input:checked + .menu-filter_label { + background-color: #bde5c1; +} +.menu-filter_input:checked + .menu-filter_label:after { + left: 12px; + background-color: #68bc72; +} +.menu__btn { + position: relative; + cursor: pointer; + line-height: 45px; + height: 45px; + background-repeat: no-repeat; + background-position: 20px 50%; + transition: 0.3s ease; + padding: 0 20px 0 60px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.menu__btn:hover { + background-color: rgba(104, 188, 113, 0.2); +} +.menu__btn--clock { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_10___}); + background-size: 16px 19px; +} +.menu__btn--landscape { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_11___}); + background-size: 19px 17px; +} +.menu__btn--report { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_12___}); + background-size: 16px 17px; +} +.menu__btn--security { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_13___}); + background-size: 15px 16px; +} +.menu__btn--extensions { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_14___}); + background-size: 18px; +} +.menu__btn--settings { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_15___}); + background-size: 19px; +} +.menu__btn.hidden { + display: none; +} +body { + color: #3D3D3D; +} +.main { + background: #FFFFFF; +} +.main-popup__btn { + background: #ffffff; + border: 1px solid #cfcfcf; +} +.main-popup__btn:hover { + background-color: #efefef; +} +.main-menu__btn { + background-color: #ffffff; +} +.main-menu__btn:hover { + background-color: #efefef; +} +.main-menu__btn:active, +.main-menu__btn.active { + background-color: #f3f3f3; +} +.main-version { + color: #dfdfdf; +} +.main_close { + color: #7F7F7F; +} +.main_close:hover { + color: #3D3D3D; +} +.head_title { + color: #3D3D3D; +} +.head_text { + color: #5B5B5B; +} +.head::after { + background-color: #D2D2D2; +} +.element-rule_expand-link { + color: #3D3D3D; +} +.element-rule_expand-link_arr { + color: #7F7F7F; +} +.element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #3D3D3D; +} +.element-rule_text { + color: #5B5B5B; +} +.close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_16___}) no-repeat 0 0 / cover; + opacity: 0.6; +} +.close:hover { + opacity: 0.8; +} +.form-control { + color: #3D3D3D; + background-color: #F6F6F6; + border-color: #D2D2D2; +} +input[type="checkbox"] + .form-ui .form-ui-txt { + color: #3D3D3D; +} +input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #7F7F7F; +} +input[type="checkbox"] + .form-ui .form-ui-icon--on { + color: #67B279; +} +.menu, +.menu-filter { + border-top: 1px solid #e0dfdb; +} +.settings_fieldset { + border-top: 1px solid #e0dfdb; +} +.btn-primary { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #FFFFFF; +} +.btn-primary:hover, +.btn-primary:focus-visible { + background-color: #F6F6F6; + border-color: #F6F6F6; +} +.btn-primary:active, +.btn-primary.active { + background-color: #E4E4E4; + border-color: #E4E4E4; +} +.btn-primary:disabled, +.btn-primary[disabled], +.btn-primary.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #FFFFFF; +} +.btn-cancel { + color: #FFFFFF; + background-color: #F67247; + border-color: #F67247; +} +.btn-cancel:hover, +.btn-cancel:focus-visible { + background-color: #DF6740; + border-color: #DF6740; +} +.btn-cancel:active, +.btn-cancel.active { + background-color: #B55434; + border-color: #B55434; +} +.btn-cancel:disabled, +.btn-cancel[disabled], +.btn-cancel.disabled { + background-color: #FAA98F; + border-color: #FAA98F; +} +.btn-default { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #3D3D3D; +} +.btn-default:hover, +.btn-default:focus-visible { + background-color: #F6F6F6; +} +.btn-default:active, +.btn-default.active { + background-color: #E4E4E4; +} +.btn-default:disabled, +.btn-default[disabled], +.btn-default.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #A4A4A4; +} +.change-position_input:checked + .change-position_label { + border-color: #36ba53; + background: #36ba53; +} +input[type="radio"] + .form-ui .form-ui-txt:before { + background: #ffffff; +} +input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #36ba53; +} +.menu-head_title { + color: #343434; +} +.menu-head_text { + color: #343434; +} +.menu-filter_handle { + background: #ffffff; +} +.adg-slide_clue { + color: #3D3D3D; +} +.adg-slide_tick { + background-color: #C0C0C0; +} +.adg-slide_tick--active, +.adg-slide_handle { + background-color: #67B279 !important; +} +.old-btn-primary { + border-color: #36ba53; + background: #36ba53; + color: #fff; +} +.old-btn-primary:hover { + border-color: #30a64a; + background: #30a64a; + color: #fff; +} +.old-btn-primary.active, +.old-btn-primary:active { + border-color: #30a64a; + background: #30a64a; +} +.old-btn-primary.disabled, +.old-btn-primary[disabled] { + border-color: #30a64a; + background: #30a64a; +} +@media (prefers-color-scheme: dark) { + body { + color: #E4E4E4; + } + .main { + background: #3D3D3D; + } + .main-popup__btn { + background: #323232; + border: 1px solid #666; + } + .main-popup__btn:hover { + background-color: #555555; + } + .main-menu__btn { + background-color: #323232; + } + .main-menu__btn:hover { + background-color: #555555; + } + .main-menu__btn:active, + .main-menu__btn.active { + background-color: #4d4d4d; + } + .main-version { + color: #444; + } + .main_close { + color: #C0C0C0; + } + .main_close:hover { + color: #E4E4E4; + } + .head_title { + color: #E4E4E4; + } + .head_text { + color: #D2D2D2; + } + .head::after { + background-color: #5B5B5B; + } + .element-rule_expand-link { + color: #E4E4E4; + } + .element-rule_expand-link_arr { + color: #C0C0C0; + } + .element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #E4E4E4; + } + .element-rule_text { + color: #D2D2D2; + } + .close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_17___}) no-repeat 0 0 / cover; + opacity: 0.7; + } + .close:hover { + opacity: 1; + } + .form-control { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #5B5B5B; + } + input[type="checkbox"] + .form-ui .form-ui-txt { + color: #E4E4E4; + } + input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #C0C0C0; + } + .menu, + .menu-filter { + border-top: 1px solid #444; + } + .settings_fieldset { + border-top: 1px solid #444; + } + .btn-primary { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-primary:hover, + .btn-primary:focus-visible { + background-color: #5B5B5B; + border-color: #5B5B5B; + } + .btn-primary:active, + .btn-primary.active { + background-color: #7F7F7F; + border-color: #7F7F7F; + } + .btn-primary:disabled, + .btn-primary[disabled], + .btn-primary.disabled { + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-cancel:disabled, + .btn-cancel[disabled], + .btn-cancel.disabled { + background-color: #7B3923; + border-color: #7B3923; + } + .btn-default { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #E4E4E4; + } + .btn-default:hover, + .btn-default:focus-visible { + background-color: #5B5B5B; + } + .btn-default:active, + .btn-default.active { + background-color: #7F7F7F; + } + .btn-default:disabled, + .btn-default[disabled], + .btn-default.disabled { + background-color: #3D3D3D; + } + .change-position_input:checked + .change-position_label { + border-color: #4D995F; + background: #4D995F; + } + input[type="radio"] + .form-ui .form-ui-txt:before { + background: #323232; + } + input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #4D995F; + } + .menu-head_title { + color: #ccc; + } + .menu-head_text { + color: #ccc; + } + .menu-filter_handle { + background: #323232; + } + .adg-slide_clue { + color: #E4E4E4; + } + .adg-slide_tick { + background-color: #7F7F7F; + } + .old-btn-primary { + border-color: #4D995F; + background: #4D995F; + color: #fff; + } + .old-btn-primary:hover { + border-color: #39774C; + background: #39774C; + color: #fff; + } + .old-btn-primary.active, + .old-btn-primary:active { + border-color: #39774C; + background: #39774C; + } + .old-btn-primary.disabled, + .old-btn-primary[disabled] { + border-color: #39774C; + background: #39774C; + } +} +:host { + display: block!important; + position: relative!important; + width: 0!important; + height: 0!important; + margin: 0!important; + padding: 0!important; + z-index: 2147483647!important; +} +:host ::after, +:host ::before { + display: none!important; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }, + +/***/ 9331 +(module, __nested_webpack_exports__, __nested_webpack_require_71734_71753__) { + +"use strict"; +__nested_webpack_require_71734_71753__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_71734_71753__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_71734_71753__(4355); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_71734_71753__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_71734_71753__(8092); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_71734_71753__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_71734_71753__(8151); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nested_webpack_require_71734_71753__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(4018), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(6846), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(6263), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(3270), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(5913), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_5___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(7162), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_6___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(7562), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_7___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(9810), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_URL_IMPORT_8___ = new URL(/* asset import */ __nested_webpack_require_71734_71753__(4486), __nested_webpack_require_71734_71753__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_8___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `:host { + display: block!important; + position: relative!important; + width: 0!important; + height: 0!important; + margin: 0!important; + padding: 0!important; + z-index: 2147483647!important; +} +:host ::after, +:host ::before { + display: none!important; +} +body { + color: #3D3D3D; +} +.main { + background: #FFFFFF; +} +.main-popup__btn { + background: #ffffff; + border: 1px solid #cfcfcf; +} +.main-popup__btn:hover { + background-color: #efefef; +} +.main-menu__btn { + background-color: #ffffff; +} +.main-menu__btn:hover { + background-color: #efefef; +} +.main-menu__btn:active, +.main-menu__btn.active { + background-color: #f3f3f3; +} +.main-version { + color: #dfdfdf; +} +.main_close { + color: #7F7F7F; +} +.main_close:hover { + color: #3D3D3D; +} +.head_title { + color: #3D3D3D; +} +.head_text { + color: #5B5B5B; +} +.head::after { + background-color: #D2D2D2; +} +.element-rule_expand-link { + color: #3D3D3D; +} +.element-rule_expand-link_arr { + color: #7F7F7F; +} +.element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #3D3D3D; +} +.element-rule_text { + color: #5B5B5B; +} +.close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat 0 0 / cover; + opacity: 0.6; +} +.close:hover { + opacity: 0.8; +} +.form-control { + color: #3D3D3D; + background-color: #F6F6F6; + border-color: #D2D2D2; +} +input[type="checkbox"] + .form-ui .form-ui-txt { + color: #3D3D3D; +} +input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #7F7F7F; +} +input[type="checkbox"] + .form-ui .form-ui-icon--on { + color: #67B279; +} +.menu, +.menu-filter { + border-top: 1px solid #e0dfdb; +} +.settings_fieldset { + border-top: 1px solid #e0dfdb; +} +.btn-primary { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #FFFFFF; +} +.btn-primary:hover, +.btn-primary:focus-visible { + background-color: #F6F6F6; + border-color: #F6F6F6; +} +.btn-primary:active, +.btn-primary.active { + background-color: #E4E4E4; + border-color: #E4E4E4; +} +.btn-primary:disabled, +.btn-primary[disabled], +.btn-primary.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #FFFFFF; +} +.btn-cancel { + color: #FFFFFF; + background-color: #F67247; + border-color: #F67247; +} +.btn-cancel:hover, +.btn-cancel:focus-visible { + background-color: #DF6740; + border-color: #DF6740; +} +.btn-cancel:active, +.btn-cancel.active { + background-color: #B55434; + border-color: #B55434; +} +.btn-cancel:disabled, +.btn-cancel[disabled], +.btn-cancel.disabled { + background-color: #FAA98F; + border-color: #FAA98F; +} +.btn-default { + color: #3D3D3D; + background-color: #FFFFFF; + border-color: #3D3D3D; +} +.btn-default:hover, +.btn-default:focus-visible { + background-color: #F6F6F6; +} +.btn-default:active, +.btn-default.active { + background-color: #E4E4E4; +} +.btn-default:disabled, +.btn-default[disabled], +.btn-default.disabled { + color: #A4A4A4; + background-color: #FFFFFF; + border-color: #A4A4A4; +} +.change-position_input:checked + .change-position_label { + border-color: #36ba53; + background: #36ba53; +} +input[type="radio"] + .form-ui .form-ui-txt:before { + background: #ffffff; +} +input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #36ba53; +} +.menu-head_title { + color: #343434; +} +.menu-head_text { + color: #343434; +} +.menu-filter_handle { + background: #ffffff; +} +.adg-slide_clue { + color: #3D3D3D; +} +.adg-slide_tick { + background-color: #C0C0C0; +} +.adg-slide_tick--active, +.adg-slide_handle { + background-color: #67B279 !important; +} +.old-btn-primary { + border-color: #36ba53; + background: #36ba53; + color: #fff; +} +.old-btn-primary:hover { + border-color: #30a64a; + background: #30a64a; + color: #fff; +} +.old-btn-primary.active, +.old-btn-primary:active { + border-color: #30a64a; + background: #30a64a; +} +.old-btn-primary.disabled, +.old-btn-primary[disabled] { + border-color: #30a64a; + background: #30a64a; +} +@media (prefers-color-scheme: dark) { + body { + color: #E4E4E4; + } + .main { + background: #3D3D3D; + } + .main-popup__btn { + background: #323232; + border: 1px solid #666; + } + .main-popup__btn:hover { + background-color: #555555; + } + .main-menu__btn { + background-color: #323232; + } + .main-menu__btn:hover { + background-color: #555555; + } + .main-menu__btn:active, + .main-menu__btn.active { + background-color: #4d4d4d; + } + .main-version { + color: #444; + } + .main_close { + color: #C0C0C0; + } + .main_close:hover { + color: #E4E4E4; + } + .head_title { + color: #E4E4E4; + } + .head_text { + color: #D2D2D2; + } + .head::after { + background-color: #5B5B5B; + } + .element-rule_expand-link { + color: #E4E4E4; + } + .element-rule_expand-link_arr { + color: #C0C0C0; + } + .element-rule_expand-link:hover .element-rule_expand-link_arr { + color: #E4E4E4; + } + .element-rule_text { + color: #D2D2D2; + } + .close { + background: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat 0 0 / cover; + opacity: 0.7; + } + .close:hover { + opacity: 1; + } + .form-control { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #5B5B5B; + } + input[type="checkbox"] + .form-ui .form-ui-txt { + color: #E4E4E4; + } + input[type="checkbox"] + .form-ui .form-ui-icon--off { + color: #C0C0C0; + } + .menu, + .menu-filter { + border-top: 1px solid #444; + } + .settings_fieldset { + border-top: 1px solid #444; + } + .btn-primary { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-primary:hover, + .btn-primary:focus-visible { + background-color: #5B5B5B; + border-color: #5B5B5B; + } + .btn-primary:active, + .btn-primary.active { + background-color: #7F7F7F; + border-color: #7F7F7F; + } + .btn-primary:disabled, + .btn-primary[disabled], + .btn-primary.disabled { + background-color: #3D3D3D; + border-color: #3D3D3D; + } + .btn-cancel:disabled, + .btn-cancel[disabled], + .btn-cancel.disabled { + background-color: #7B3923; + border-color: #7B3923; + } + .btn-default { + color: #E4E4E4; + background-color: #3D3D3D; + border-color: #E4E4E4; + } + .btn-default:hover, + .btn-default:focus-visible { + background-color: #5B5B5B; + } + .btn-default:active, + .btn-default.active { + background-color: #7F7F7F; + } + .btn-default:disabled, + .btn-default[disabled], + .btn-default.disabled { + background-color: #3D3D3D; + } + .change-position_input:checked + .change-position_label { + border-color: #4D995F; + background: #4D995F; + } + input[type="radio"] + .form-ui .form-ui-txt:before { + background: #323232; + } + input[type="radio"]:checked + .form-ui .form-ui-txt:after { + background: #4D995F; + } + .menu-head_title { + color: #ccc; + } + .menu-head_text { + color: #ccc; + } + .menu-filter_handle { + background: #323232; + } + .adg-slide_clue { + color: #E4E4E4; + } + .adg-slide_tick { + background-color: #7F7F7F; + } + .old-btn-primary { + border-color: #4D995F; + background: #4D995F; + color: #fff; + } + .old-btn-primary:hover { + border-color: #39774C; + background: #39774C; + color: #fff; + } + .old-btn-primary.active, + .old-btn-primary:active { + border-color: #39774C; + background: #39774C; + } + .old-btn-primary.disabled, + .old-btn-primary[disabled] { + border-color: #39774C; + background: #39774C; + } +} +body { + padding: 1vw; + background: transparent; +} +.main { + position: relative; + padding: 8vw 3vw; +} +.main .footer { + letter-spacing: 3vw; +} +.main-version { + position: absolute; + bottom: 0; + right: 7px; + font-size: 5vw; +} +.main-popup { + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + margin: 5vw; + box-shadow: 0 0px 5vw 0 rgba(0, 0, 0, 0.2); +} +.main-popup__logo { + width: 11vw; + height: 11vw; +} +.main-popup__logo.adguard-assistant-button-main-logo { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___}); + background-repeat: no-repeat; +} +.main-popup__title { + font-size: 6vw; + margin: 3vw 0; +} +.main-popup__content { + font-size: 5vw; + padding: 0 3vw; + margin-bottom: 5vw; + border-top: none; +} +.main-popup__btn { + font-size: 5vw; + padding: 2vh 8vw; + border-radius: 3px; + letter-spacing: normal; +} +.main-popup__btn--green { + color: #ffffff; + border: 1px solid #66B574; + background-color: #66B574; + box-shadow: none; +} +.main-popup__btn--green:hover { + background-color: #5ea76b; + color: #fff; +} +.main-popup__btn:focus { + box-shadow: none; +} +.main-menu { + margin: 4vw; + padding: 4vw; + display: flex; + justify-content: space-between; + border-radius: 4vw; + box-shadow: 0 0 4vw -2px rgba(0, 0, 0, 0.3); +} +.main-menu__info { + width: 100%; + text-align: center; +} +.main-menu__btn { + border: 0; + font-size: 0; + width: 12vw; + height: 12vw; + border-radius: 2vw; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100%; + position: relative; +} +.main-menu__btn:disabled { + opacity: 0.5; + pointer-events: none; +} +.main-menu__btn--accept { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_3___}); +} +.main-menu__btn--preview { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_4___}); +} +.main-menu__btn--preview:active, +.main-menu__btn--preview.active { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_5___}); +} +.main-menu__btn--plus { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_6___}); +} +.main-menu__btn--minus { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_7___}); +} +.main-menu__btn--close { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_8___}); +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }, + +/***/ 4668 +(module, __nested_webpack_exports__, __nested_webpack_require_86435_86454__) { + +"use strict"; +__nested_webpack_require_86435_86454__.r(__nested_webpack_exports__); +/* harmony export */ __nested_webpack_require_86435_86454__.d(__nested_webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_86435_86454__(4355); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_86435_86454__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_86435_86454__(8092); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_86435_86454__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __nested_webpack_require_86435_86454__(8151); +/* harmony import */ var _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nested_webpack_require_86435_86454__.n(_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__); +// Imports + + + +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __nested_webpack_require_86435_86454__(6873), __nested_webpack_require_86435_86454__.b); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __nested_webpack_require_86435_86454__(3417), __nested_webpack_require_86435_86454__.b); +var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = _node_modules_pnpm_css_loader_7_1_3_webpack_5_105_1_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `iframe#adguard-assistant-dialog { + position: fixed; + clip: auto; + border-radius: 8px; + box-shadow: 8px 8px 24px 0px rgba(0, 0, 0, 0.1); + z-index: 2147483647; + display: block!important; +} +.sg_hide_element { + display: none!important; +} +img.adguard_sg_selected { + border: 5px solid #0F0 !important; +} +#_sg_div.sg_top { + top: 5px !important; +} +#_sg_div.sg_bottom { + bottom: 5px !important; +} +#_sg_div input { + margin-right: 10px !important; + font-size: 15px !important; +} +#_sg_path_field { + width: 400px !important; +} +#_sg_div .sg_new_line { + clear: both !important; +} +#_sg_div .sg_option { + float: left !important; +} +#_sg_div .adguard_sg_selected_option { + text-decoration: underline; +} +.adguard-placeholder { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___}); +} +.adguard-placeholder-icon { + background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___}); + background-position: center center; + background-repeat: no-repeat; + height: 100%; +} +.adguard-placeholder-domain { + background: #778b7c; + color: #ffffff; + left: 0; + top: 0; + padding: 2px 4px; + position: relative; +} +@media print { + .adguard-alert, + #adguard-assistant-dialog { + display: none!important; + opacity: 0!important; + visibility: hidden!important; + } +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }, + +/***/ 8092 +(module) { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function (cssWithMappingToString) { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + return this.map(function (item) { + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } + if (item[2]) { + content += "@media ".concat(item[2], " {"); + } + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + content += cssWithMappingToString(item); + if (needLayer) { + content += "}"; + } + if (item[2]) { + content += "}"; + } + if (item[4]) { + content += "}"; + } + return content; + }).join(""); + }; + + // import a list of modules into the list + list.i = function i(modules, media, dedupe, supports, layer) { + if (typeof modules === "string") { + modules = [[null, modules, undefined]]; + } + var alreadyImportedModules = {}; + if (dedupe) { + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); + if (dedupe && alreadyImportedModules[item[0]]) { + continue; + } + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; + } else { + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; + } + } + list.push(item); + } + }; + return list; +}; + +/***/ }, + +/***/ 8151 +(module) { + +"use strict"; + + +module.exports = function (url, options) { + if (!options) { + options = {}; + } + if (!url) { + return url; + } + url = String(url.__esModule ? url.default : url); + + // If url is already wrapped in quotes, remove them + if (/^['"].*['"]$/.test(url)) { + url = url.slice(1, -1); + } + if (options.hash) { + url += options.hash; + } + + // Should url be wrapped? + // See https://drafts.csswg.org/css-values-3/#urls + if (/["'() \t\n]|(%20)/.test(url) || options.needQuotes) { + return "\"".concat(url.replace(/"/g, '\\"').replace(/\n/g, "\\n"), "\""); + } + return url; +}; + +/***/ }, + +/***/ 4355 +(module) { + +"use strict"; + + +module.exports = function (i) { + return i[1]; +}; + +/***/ }, + +/***/ 5640 +(module, __unused_webpack_exports, __nested_webpack_require_93749_93768__) { + + + var result = __nested_webpack_require_93749_93768__(8814); + + if (result && result.__esModule) { + result = result.default; + } + + if (typeof result === "string") { + module.exports = result; + } else { + module.exports = result.toString(); + } + + +/***/ }, + +/***/ 3623 +(module, __unused_webpack_exports, __nested_webpack_require_94130_94149__) { + + + var result = __nested_webpack_require_94130_94149__(5909); + + if (result && result.__esModule) { + result = result.default; + } + + if (typeof result === "string") { + module.exports = result; + } else { + module.exports = result.toString(); + } + + +/***/ }, + +/***/ 6644 +(module, __unused_webpack_exports, __nested_webpack_require_94511_94530__) { + + + var result = __nested_webpack_require_94511_94530__(6826); + + if (result && result.__esModule) { + result = result.default; + } + + if (typeof result === "string") { + module.exports = result; + } else { + module.exports = result.toString(); + } + + +/***/ }, + +/***/ 6501 +(module, __unused_webpack_exports, __nested_webpack_require_94892_94911__) { + + + var result = __nested_webpack_require_94892_94911__(9331); + + if (result && result.__esModule) { + result = result.default; + } + + if (typeof result === "string") { + module.exports = result; + } else { + module.exports = result.toString(); + } + + +/***/ }, + +/***/ 4898 +(module, __unused_webpack_exports, __nested_webpack_require_95273_95292__) { + + + var result = __nested_webpack_require_95273_95292__(4668); + + if (result && result.__esModule) { + result = result.default; + } + + if (typeof result === "string") { + module.exports = result; + } else { + module.exports = result.toString(); + } + + +/***/ }, + +/***/ 3270 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUgMTEuNzY2NUwxMC41ODc4IDE3TDE5IDgiIHN0cm9rZT0iIzY3QjI3OSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 1412 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTcgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBpZD0iQXJ0Ym9hcmQiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMi4wMDAwMDAsIC0xNDQuMDAwMDAwKSI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzLjAwMDAwMCwgMTQxLjAwMDAwMCkiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1Ij4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgY3g9IjcuODcwMzYxMzMiIGN5PSIxMS4yNzU5NzY2IiByPSI3LjM3ODg1NzQyIj48L2NpcmNsZT4KICAgICAgICAgICAgPHBvbHlsaW5lIGlkPSJMaW5lLTIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHBvaW50cz0iNy43Njc5Njg3NSA3LjQ2MzI4MTI1IDcuNzY3OTY4NzUgMTEuOTYzMjgxMiAxMS4zNjc5Njg3IDExLjk2MzI4MTIiPjwvcG9seWxpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 6846 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogICAgPGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZWVlIiBzdHJva2Utd2lkdGg9IjIwIiB4MT0iNSIgeTE9IjUiIHgyPSI5NSIgeTI9Ijk1Ii8+CiAgICA8bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiNlZWUiIHN0cm9rZS13aWR0aD0iMjAiIHgxPSI5NSIgeTE9IjUiIHgyPSI1IiB5Mj0iOTUiLz4KPC9zdmc+Cg=="; + +/***/ }, + +/***/ 4018 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiPgogICAgPGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjIwIiB4MT0iNSIgeTE9IjUiIHgyPSI5NSIgeTI9Ijk1Ii8+CiAgICA8bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMjAiIHgxPSI5NSIgeTE9IjUiIHgyPSI1IiB5Mj0iOTUiLz4KPC9zdmc+Cg=="; + +/***/ }, + +/***/ 4486 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNDI4NTcgNi40Mjg1N0wxNy42MDQzIDE3LjYwNDMiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8cGF0aCBkPSJNNi40Mjc3MyAxNy41NzE0TDE3LjYwMzUgNi4zOTU2MyIgc3Ryb2tlPSIjQTRBNEE0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo="; + +/***/ }, + +/***/ 7608 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aAogICAgICAgICAgICBkPSJNMjcuNjE1NjkzMSwzMjIuMjg4MDg2IEwyMC43Njc5Njg3LDMyMi4yODgwODYgTDIwLjc2Nzk2ODcsMzE1LjQxNjAyNiBMMjEuOTU5OTMxNCwzMTUuNDE2MDI2IEMyMi41MTAyOTA4LDMxNS40MTYwMjYgMjIuOTU2NDQ1MywzMTQuOTY5ODcxIDIyLjk1NjQ0NTMsMzE0LjQxOTUxMiBDMjIuOTU2NDQ1MywzMTMuODY5MTUzIDIyLjUxMDI5MDgsMzEzLjQyMjk5OCAyMS45NTk5MzE0LDMxMy40MjI5OTggTDIwLjc2Nzk2ODcsMzEzLjQyMjk5OCBMMjAuNzY3OTY4NywzMDYuOTE3MTEgTDI1LjkzOTg5MjYsMzA2LjkxNzExIEwyNS45Mzk4OTI2LDMwNi44MTYzNjggQzI1LjkzOTg5MjYsMzA1LjMyNTE5OSAyNy4xNDg3MjM4LDMwNC4xMTYzNjggMjguNjM5ODkyNiwzMDQuMTE2MzY4IEMzMC4xMzEwNjE0LDMwNC4xMTYzNjggMzEuMzM5ODkyNiwzMDUuMzI1MTk5IDMxLjMzOTg5MjYsMzA2LjgxNjM2OCBMMzEuMzM5ODkyNiwzMDYuOTE3MTEgTDM2LjEzODk0NDUsMzA2LjkxNzExIEwzNi4xMzg5NDQ1LDMxMS45MDI1OTggTDM2LjMzMjA4MDEsMzExLjkwMjU5OCBDMzcuODIzMjQ4OSwzMTEuOTAyNTk4IDM5LjAzMjA4MDEsMzEzLjExMTQyOSAzOS4wMzIwODAxLDMxNC42MDI1OTggQzM5LjAzMjA4MDEsMzE2LjA5Mzc2NyAzNy44MjMyNDg5LDMxNy4zMDI1OTggMzYuMzMyMDgwMSwzMTcuMzAyNTk4IEwzNi4xMzg5NDQ1LDMxNy4zMDI1OTggTDM2LjEzODk0NDUsMzIyLjI4ODA4NiBMMjkuNjA4NzIwOSwzMjIuMjg4MDg2IEwyOS42MDg3MjA5LDMyMC41NzE2OSBDMjkuNjA4NzIwOSwzMjAuMDIxMzMgMjkuMTYyNTY2NSwzMTkuNTc1MTc2IDI4LjYxMjIwNywzMTkuNTc1MTc2IEMyOC4wNjE4NDc2LDMxOS41NzUxNzYgMjcuNjE1NjkzMSwzMjAuMDIxMzMgMjcuNjE1NjkzMSwzMjAuNTcxNjkgTDI3LjYxNTY5MzEsMzIyLjI4ODA4NiBaIgogICAgICAgICAgICBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDAwMDAwLCAtMzA0LjAwMDAwMCkiPgogICAgICAgIDxnPgogICAgICAgICAgICA8dXNlIGZpbGwtcnVsZT0iZXZlbm9kZCIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICBzdHJva2U9IiM5Nzk3OTciCiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9IjEuMzUiCiAgICAgICAgICAgICAgICBkPSJNMjYuOTQwNjkzMSwzMjEuNjEzMDg2IEwyNi45NDA2OTMxLDMyMC41NzE2OSBDMjYuOTQwNjkzMSwzMTkuNjQ4NTM4IDI3LjY4OTA1NTQsMzE4LjkwMDE3NiAyOC42MTIyMDcsMzE4LjkwMDE3NiBDMjkuNTM1MzU4NywzMTguOTAwMTc2IDMwLjI4MzcyMDksMzE5LjY0ODUzOCAzMC4yODM3MjA5LDMyMC41NzE2OSBMMzAuMjgzNzIwOSwzMjEuNjEzMDg2IEwzNS40NjM5NDQ1LDMyMS42MTMwODYgTDM1LjQ2Mzk0NDUsMzE2LjYyNzU5OCBMMzYuMzMyMDgwMSwzMTYuNjI3NTk4IEMzNy40NTA0NTY3LDMxNi42Mjc1OTggMzguMzU3MDgwMSwzMTUuNzIwOTc1IDM4LjM1NzA4MDEsMzE0LjYwMjU5OCBDMzguMzU3MDgwMSwzMTMuNDg0MjIxIDM3LjQ1MDQ1NjcsMzEyLjU3NzU5OCAzNi4zMzIwODAxLDMxMi41Nzc1OTggTDM1LjQ2Mzk0NDUsMzEyLjU3NzU5OCBMMzUuNDYzOTQ0NSwzMDcuNTkyMTEgTDMwLjY2NDg5MjYsMzA3LjU5MjExIEwzMC42NjQ4OTI2LDMwNi44MTYzNjggQzMwLjY2NDg5MjYsMzA1LjY5Nzk5MSAyOS43NTgyNjkyLDMwNC43OTEzNjggMjguNjM5ODkyNiwzMDQuNzkxMzY4IEMyNy41MjE1MTYsMzA0Ljc5MTM2OCAyNi42MTQ4OTI2LDMwNS42OTc5OTEgMjYuNjE0ODkyNiwzMDYuODE2MzY4IEwyNi42MTQ4OTI2LDMwNy41OTIxMSBMMjEuNDQyOTY4NywzMDcuNTkyMTEgTDIxLjQ0Mjk2ODcsMzEyLjc0Nzk5OCBMMjEuOTU5OTMxNCwzMTIuNzQ3OTk4IEMyMi44ODMwODMxLDMxMi43NDc5OTggMjMuNjMxNDQ1MywzMTMuNDk2MzYgMjMuNjMxNDQ1MywzMTQuNDE5NTEyIEMyMy42MzE0NDUzLDMxNS4zNDI2NjQgMjIuODgzMDgzMSwzMTYuMDkxMDI2IDIxLjk1OTkzMTQsMzE2LjA5MTAyNiBMMjEuNDQyOTY4NywzMTYuMDkxMDI2IEwyMS40NDI5Njg3LDMyMS42MTMwODYgTDI2Ljk0MDY5MzEsMzIxLjYxMzA4NiBaIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 7162 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQgMTBDNCAxMCA4IDE0Ljc3MiAxMiAxNC43NzJDMTYgMTQuNzcyIDIwIDEwIDIwIDEwIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTEyIDE1VjE3IiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTE4IDEzVjE1IiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPHBhdGggZD0iTTYgMTNWMTUiIHN0cm9rZT0iIzY3QjI3OSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 5913 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDExLjc3MkM2LjY2NjY3IDguNTkwNjUgOS4zMzMzMyA3IDEyIDdDMTQuNjY2NyA3IDE3LjMzMzMgOC41OTA2NSAyMCAxMS43NzJDMjAgMTEuNzcyIDE2IDE2Ljc3MiAxMiAxNi43NzJDOCAxNi43NzIgNCAxMS43NzIgNCAxMS43NzJaIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAxMEMxMy4xMDQ2IDEwIDE0IDEwLjg5NTQgMTQgMTJDMTQgMTMuMTA0NiAxMy4xMDQ2IDE0IDEyIDE0QzEwLjg5NTQgMTQgMTAgMTMuMTA0NiAxMCAxMkMxMCAxMC44OTU0IDEwLjg5NTQgMTAgMTIgMTBaIiBzdHJva2U9IiM2N0IyNzkiIHN0cm9rZS13aWR0aD0iMS41Ii8+Cjwvc3ZnPgo="; + +/***/ }, + +/***/ 4117 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZGVmcz4KICAgICAgICA8cmVjdCBpZD0icGF0aC0xIiB4PSIwLjc2Nzk2ODc1IiB5PSIwLjk4MDY2NDA2MyIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE1Ljg4MDUxNzYiIHJ4PSIxLjgiPjwvcmVjdD4KICAgIDwvZGVmcz4KICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMC4wMDAwMDAsIC0xODQuMDAwMDAwKSI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjAwMDAwMCwgMTg0LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0iUmVjdGFuZ2xlIj4KICAgICAgICAgICAgICAgIDx1c2UgZmlsbC1ydWxlPSJldmVub2RkIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgIDxyZWN0IHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1IiB4PSIxLjQ0Mjk2ODc1IiB5PSIxLjY1NTY2NDA2IiB3aWR0aD0iMTYuNjUiIGhlaWdodD0iMTQuNTMwNTE3NiIgcng9IjEuOCI+PC9yZWN0PgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxwb2x5bGluZSBpZD0iTGluZS0zIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS13aWR0aD0iMS4zNSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgcG9pbnRzPSIxLjYyNjY2MDE2IDEzLjA3MTMzNzkgNS4yMjY2NjAxNiA5LjQ3MTMzNzg5IDguMTc0MDcyMjcgMTIuMTE1NTI3MyAxMi45Mjk4MzQgNi43MjgyNzE0OCAxNy44Njc5Njg3IDEyLjMzMzA1NjYiPjwvcG9seWxpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 6263 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMzUgMzYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTY0LjAwMDAwMCwgLTIxOS4wMDAwMDApIj4KICAgICAgICA8ZyBpZD0iMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDAuMDAwMDAwLCAxOTAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyNC41MDAwMDAsIDI5LjQxNDA2MikiPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC40NTM2NTYsIDAuMjI2ODI4KSI+CiAgICAgICAgICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMTYuNzE1NzQ5MiwwIEMxMS40OTA5MTk1LDAgNS4xODg0Njg3NywxLjI2NTU4MzUxIDUuMTI2MjAxMTRlLTA2LDQuMDUxMjIyMzkgQzUuMTI2MjAxMTRlLTA2LDEwLjA2NzQ0OTUgLTAuMDcxNjEzNjMyNCwyNS4wNTU2OTI1IDE2LjcxNTc0OTIsMzUuMjk2Njc5OCBDMzMuNTAzNDgzLDI1LjA1NTY5MjUgMzMuNDMyMjM1NCwxMC4wNjc0NDk1IDMzLjQzMjIzNTQsNC4wNTEyMjIzOSBDMjguMjQzNDAwNiwxLjI2NTU4MzUxIDIxLjk0MDk0OTksMCAxNi43MTU3NDkyLDAgTDE2LjcxNTc0OTIsMCBaIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJQYXRoIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9IiM2OEJDNzEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi42OTg2NzQzLDM1LjI4NjI1ODIgQy0wLjA3MTU2NTA2MDUsMjUuMDQ1NTI2OCA1LjEyNjIwMTEzZS0wNiwxMC4wNjU0MDkxIDUuMTI2MjAxMTNlLTA2LDQuMDUxMjIyMzkgQzUuMTgyODE4MDIsMS4yNjg2MTczNCAxMS40NzcxOTI5LDAuMDAyNzU4NDkxMjQgMTYuNjk4Njc0Myw0LjUwMzc4MzExZS0wNiBMMTYuNjk4Njc0MywzNS4yODYyNjE3IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgZmlsbD0iIzY3QjI3OSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPSJNMTYuMTA2MDI0NywyMy41NTEwOTQgTDI2LjIxNDMxNTUsOS41MTgwMTg2OSBDMjUuNDczNjAwNSw4LjkwNjQ3MjQ5IDI0LjgyMzg4NzYsOS4zMzgwODkxNiAyNC40NjYyMjgxLDkuNjcyMjQ0IEwyNC40NTMxNzc0LDkuNjczMzE1MDEgTDE2LjAyNDg5ODcsMTguNzA0NDIwOCBMMTIuODQ5MzQ3NywxNC43NjgxMDUzIEMxMS4zMzQ0MDkxLDEyLjk2NTI0IDkuMjc0ODY4NjYsMTQuMzQwNDE1NyA4Ljc5Mzc1NjYyLDE0LjcwMzg0NDggTDE2LjEwNjAyNDcsMjMuNTUxMDk0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9IkZpbGwtMTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjRkZGRkZGIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 9810 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwIDZWMTBINiIgc3Ryb2tlPSIjQTRBNEE0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMCAxOFYxNEg2IiBzdHJva2U9IiNBNEE0QTQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE0IDZWMTBIMTgiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTQgMThWMTRIMTgiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 7562 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYgMTBWNkgxME02IDE0VjE4SDEwTTE4IDEwVjZIMTRNMTggMTRWMThIMTQiIHN0cm9rZT0iI0E0QTRBNCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 322 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgd2lkdGg9IjQwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAgMCA0MDAgMjAwIj4KICAgIDxkZWZzPgogICAgICAgIDxnIGlkPSJhcnIiPgogICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE4LjgsODQuNSAxOC44LDMyIDg2LjcsMTAwIDEwMCw4Ni43IDMyLDE4LjggODQuNSwxOC44IDg0LjUsMCAxOC44LDAgMCwwIDAsMTguOAogICAgICAgICAgICAgICAgMCw4NC41IAkiLz4KICAgICAgICA8L2c+CiAgICA8L2RlZnM+CgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjYWJhYmFiIi8+CiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNhYmFiYWIiIHRyYW5zZm9ybT0icm90YXRlKDkwIDEwMCAxMDApIi8+CiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNhYmFiYWIiIHRyYW5zZm9ybT0icm90YXRlKDE4MCAxMDAgMTAwKSIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjYWJhYmFiIiB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgMTAwIDEwMCkiLz4KCiAgICA8dXNlIHhsaW5rOmhyZWY9IiNhcnIiIGZpbGw9IiNmZmYiIHg9IjIwMCIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjZmZmIiB5PSItMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAxMDAgMTAwKSIvPgogICAgPHVzZSB4bGluazpocmVmPSIjYXJyIiBmaWxsPSIjZmZmIiB4PSItMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTAwIDEwMCkiLz4KICAgIDx1c2UgeGxpbms6aHJlZj0iI2FyciIgZmlsbD0iI2ZmZiIgeT0iMjAwIiB0cmFuc2Zvcm09InJvdGF0ZSgyNzAgMTAwIDEwMCkiLz4KPC9zdmc+Cg=="; + +/***/ }, + +/***/ 384 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTcgMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIuMDAwMDAwLCAtMjI0LjAwMDAwMCkiPgogICAgICAgIDxwYXRoIGQ9Ik0yMi44MTc1NzgxLDIzNC40MTc0NTUgTDIyLjgxNzU3ODEsMjQwLjU1OTc0NyBMMzYuODk2MDY2LDIzMi43MjMwODkgTDIyLjgxNzU3ODEsMjI1LjY5OTEyMSBMMjIuODE3NTc4MSwyMzEuMDgwNTcyIEwyNS45Nzg4MzYzLDIzMi42NTc3NzEgTDIyLjgxNzU3ODEsMjM0LjQxNzQ1NSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1Ij48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPgo="; + +/***/ }, + +/***/ 7988 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjEuMDAwMDAwLCAtMjYzLjAwMDAwMCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zMC4wMjM1ODk1LDI4MC4xMTkwMjQgQzI5Ljk3MTAwMTYsMjgwLjExOTAyNCAyOS45MTgzNjI1LDI4MC4xMTA4OTggMjkuODY3NjY1NSwyODAuMDk0NjQ3IEMyOC4xNjM1OTE1LDI3OS41NDg3ODUgMjYuNzEyNzk4MSwyNzguNTAxNzc5IDI1LjU1NTUwNTcsMjc2Ljk4Mjc1OSBDMjQuNjQ0MzkwMywyNzUuNzg2ODMxIDIzLjkxNDg1NCwyNzQuMjk4MzczIDIzLjM4NzI4ODEsMjcyLjU1ODcyOSBDMjIuNDk3MzMwNSwyNjkuNjI0NDg1IDIyLjQ4NzEwOTQsMjY3LjAxMDUyMiAyMi40ODcxMDk0LDI2Ni45MDA2OTYgQzIyLjQ4NzEwOTQsMjY2LjYzNzUwMSAyMi42ODcwMzU1LDI2Ni40MTcyODYgMjIuOTQ5MDU1MywyNjYuMzkxOTg4IEMyMi45ODg1MDksMjY2LjM4ODE1NSAyNi45NTc2OTc0LDI2NS45ODA2ODggMjkuNzIzMjkxNCwyNjMuOTcyMjc5IEMyOS45MDIzNjY0LDI2My44NDIxNjMgMzAuMTQ0ODYzNywyNjMuODQyMzE2IDMwLjMyMzkzODcsMjYzLjk3MjMzIEMzMy4wODg3NjYyLDI2NS45ODA2ODggMzcuMDU4NDY1NiwyNjYuMzg4MTU1IDM3LjA5ODIyNTksMjY2LjM5MjAzOSBDMzcuMzYwMDQxMywyNjYuNDE3NTkyIDM3LjU1OTkxNjMsMjY2LjYzNzcwNSAzNy41NTk5MTYzLDI2Ni45MDA2OTYgQzM3LjU1OTkxNjMsMjY3LjAxMDUyMiAzNy41NDk2OTUyLDI2OS42MjQ0ODUgMzYuNjU5Nzg4NywyNzIuNTU4NzggQzM2LjEzMjE3MTcsMjc0LjI5ODQyNCAzNS40MDI2ODY1LDI3NS43ODY4ODIgMzQuNDkxNTcxMSwyNzYuOTgyODExIEMzMy4zMzQzMjk5LDI3OC41MDE4MyAzMS44ODM1MzY1LDI3OS41NDg4MzYgMzAuMTc5NDYyNCwyODAuMDk0Njk4IEMzMC4xMjg3NjU0LDI4MC4xMTA4OTggMzAuMDc2MTc3NSwyODAuMTE5MDI0IDMwLjAyMzU4OTUsMjgwLjExOTAyNCBMMzAuMDIzNTg5NSwyODAuMTE5MDI0IFoiIGlkPSJQYXRoIiBzdHJva2U9IiM5Nzk3OTciIHN0cm9rZS13aWR0aD0iMS4zNSI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 7501 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMTkgMTkiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAuMDAwMDAwLCAtMzQzLjAwMDAwMCkiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjE0MjM4MywgMzQzLjMwMzQ2NykiIHN0cm9rZT0iIzk3OTc5NyIgc3Ryb2tlLXdpZHRoPSIxLjM1Ij4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik03LjcxMTUyMzQ0LDEuOTAwNjM0NzcgTDcuNzExNTIzNDQsMi44OTYzNDMxNSBMNy4yMjkwNjY5NCwzLjAzOTkyOTIyIEM2LjgxMTM1NTQzLDMuMTY0MjQ2MjUgNi40MDg2MjIwOCwzLjMzMTQ2NDY4IDYuMDI2NDg4NDEsMy41Mzg1MzQ3NyBMNS41ODM3MDgzMiwzLjc3ODQ2Nzg2IEw0Ljg3OTEwMjQyLDMuMDczODYxOTYgQzQuNDM5NzYyNiwyLjYzNDUyMjE0IDMuNzI3NDUxOTksMi42MzQ1MjIxNCAzLjI4ODExMjE3LDMuMDczODYxOTYgTDMuMDAyMjMxMSwzLjM1OTc0MzAzIEMyLjU2Mjg5MTI4LDMuNzk5MDgyODUgMi41NjI4OTEyOCw0LjUxMTM5MzQ2IDMuMDAyMjMxMSw0Ljk1MDczMzI4IEwzLjcwNjgzNyw1LjY1NTMzOTE4IEwzLjQ2NjkwMzkxLDYuMDk4MTE5MjcgQzMuMjU5ODMzODIsNi40ODAyNTI5MyAzLjA5MjYxNTM5LDYuODgyOTg2MjkgMi45NjgyOTgzNiw3LjMwMDY5NzggTDIuODI0NzEyMjksNy43ODMxNTQzIEwxLjgyOTAwMzkxLDcuNzgzMTU0MyBDMS4yMDc2ODM1Niw3Ljc4MzE1NDMgMC43MDQwMDM5MDYsOC4yODY4MzM5NSAwLjcwNDAwMzkwNiw4LjkwODE1NDMgTDAuNzA0MDAzOTA2LDkuMzEyNDUxMTcgQzAuNzA0MDAzOTA2LDkuOTMzNzcxNTIgMS4yMDc2ODM1NiwxMC40Mzc0NTEyIDEuODI5MDAzOTEsMTAuNDM3NDUxMiBMMi44MjQ3MTIyOSwxMC40Mzc0NTEyIEwyLjk2ODI5ODM2LDEwLjkxOTkwNzcgQzMuMDkyNjE1MzksMTEuMzM3NjE5MiAzLjI1OTgzMzgyLDExLjc0MDM1MjUgMy40NjY5MDM5MSwxMi4xMjI0ODYyIEwzLjcwNjgzNywxMi41NjUyNjYzIEwzLjAwMjIzMTEsMTMuMjY5ODcyMiBDMi41NjI4OTEyOCwxMy43MDkyMTIgMi41NjI4OTEyOCwxNC40MjE1MjI2IDMuMDAyMjMxMSwxNC44NjA4NjI0IEwzLjI4ODExMjE3LDE1LjE0Njc0MzUgQzMuNzI3NDUxOTksMTUuNTg2MDgzMyA0LjQzOTc2MjYsMTUuNTg2MDgzMyA0Ljg3OTEwMjQyLDE1LjE0Njc0MzUgTDUuNTgzNzA4MzIsMTQuNDQyMTM3NiBMNi4wMjY0ODg0MSwxNC42ODIwNzA3IEM2LjQwODYyMjA4LDE0Ljg4OTE0MDggNi44MTEzNTU0MywxNS4wNTYzNTkyIDcuMjI5MDY2OTQsMTUuMTgwNjc2MiBMNy43MTE1MjM0NCwxNS4zMjQyNjIzIEw3LjcxMTUyMzQ0LDE2LjMxOTk3MDcgQzcuNzExNTIzNDQsMTYuOTQxMjkxIDguMjE1MjAzMDksMTcuNDQ0OTcwNyA4LjgzNjUyMzQ0LDE3LjQ0NDk3MDcgTDkuMjQwODIwMzEsMTcuNDQ0OTcwNyBDOS44NjIxNDA2NiwxNy40NDQ5NzA3IDEwLjM2NTgyMDMsMTYuOTQxMjkxIDEwLjM2NTgyMDMsMTYuMzE5OTcwNyBMMTAuMzY1ODIwMywxNS4zMjQyNjIzIEwxMC44NDgyNzY4LDE1LjE4MDY3NjIgQzExLjI2NTk4ODMsMTUuMDU2MzU5MiAxMS42Njg3MjE3LDE0Ljg4OTE0MDggMTIuMDUwODU1MywxNC42ODIwNzA3IEwxMi40OTM2MzU0LDE0LjQ0MjEzNzYgTDEzLjE5ODI0MTMsMTUuMTQ2NzQzNSBDMTMuNjM3NTgxMiwxNS41ODYwODMzIDE0LjM0OTg5MTgsMTUuNTg2MDgzMyAxNC43ODkyMzE2LDE1LjE0Njc0MzUgTDE1LjA3NTExMjYsMTQuODYwODYyNCBDMTUuNTE0NDUyNSwxNC40MjE1MjI2IDE1LjUxNDQ1MjUsMTMuNzA5MjEyIDE1LjA3NTExMjYsMTMuMjY5ODcyMiBMMTQuMzcwNTA2NywxMi41NjUyNjYzIEwxNC42MTA0Mzk4LDEyLjEyMjQ4NjIgQzE0LjgxNzUwOTksMTEuNzQwMzUyNSAxNC45ODQ3Mjg0LDExLjMzNzYxOTIgMTUuMTA5MDQ1NCwxMC45MTk5MDc3IEwxNS4yNTI2MzE1LDEwLjQzNzQ1MTIgTDE2LjI0ODMzOTgsMTAuNDM3NDUxMiBDMTYuODY5NjYwMiwxMC40Mzc0NTEyIDE3LjM3MzMzOTgsOS45MzM3NzE1MiAxNy4zNzMzMzk4LDkuMzEyNDUxMTcgTDE3LjM3MzMzOTgsOC45MDgxNTQzIEMxNy4zNzMzMzk4LDguMjg2ODMzOTUgMTYuODY5NjYwMiw3Ljc4MzE1NDMgMTYuMjQ4MzM5OCw3Ljc4MzE1NDMgTDE1LjI1MjYzMTUsNy43ODMxNTQzIEwxNS4xMDkwNDU0LDcuMzAwNjk3OCBDMTQuOTg0NzI4NCw2Ljg4Mjk4NjI5IDE0LjgxNzUwOTksNi40ODAyNTI5MyAxNC42MTA0Mzk4LDYuMDk4MTE5MjcgTDE0LjM3MDUwNjcsNS42NTUzMzkxOCBMMTUuMDc1MTEyNiw0Ljk1MDczMzI4IEMxNS41MTQ0NTI1LDQuNTExMzkzNDYgMTUuNTE0NDUyNSwzLjc5OTA4Mjg1IDE1LjA3NTExMjYsMy4zNTk3NDMwMyBMMTQuNzg5MjMxNiwzLjA3Mzg2MTk2IEMxNC4zNDk4OTE4LDIuNjM0NTIyMTQgMTMuNjM3NTgxMiwyLjYzNDUyMjE0IDEzLjE5ODI0MTMsMy4wNzM4NjE5NiBMMTIuNDkzNjM1NCwzLjc3ODQ2Nzg2IEwxMi4wNTA4NTUzLDMuNTM4NTM0NzcgQzExLjY2ODcyMTcsMy4zMzE0NjQ2OCAxMS4yNjU5ODgzLDMuMTY0MjQ2MjUgMTAuODQ4Mjc2OCwzLjAzOTkyOTIyIEwxMC4zNjU4MjAzLDIuODk2MzQzMTUgTDEwLjM2NTgyMDMsMS45MDA2MzQ3NyBDMTAuMzY1ODIwMywxLjI3OTMxNDQyIDkuODYyMTQwNjYsMC43NzU2MzQ3NjYgOS4yNDA4MjAzMSwwLjc3NTYzNDc2NiBMOC44MzY1MjM0NCwwLjc3NTYzNDc2NiBDOC4yMTUyMDMwOSwwLjc3NTYzNDc2NiA3LjcxMTUyMzQ0LDEuMjc5MzE0NDIgNy43MTE1MjM0NCwxLjkwMDYzNDc3IFoiCiAgICAgICAgICAgICAgICBpZD0iQ29tYmluZWQtU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbC0xNSIgY3g9IjkuMDM4NjcxODgiIGN5PSI5LjExMDMwMjczIiByPSIxLjgiPjwvY2lyY2xlPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg=="; + +/***/ }, + +/***/ 158 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 207 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 7884 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiNENkQ2RDYiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 6429 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjRDZENkQ2Ii8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 2498 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjNzE3MTcxIi8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iI0Q2RDZENiIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 5811 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUyIDE4Ij4KICAgIDxwYXRoIGQ9Ik01LjM1Myw3LjQxMiBMNS4zMDQsNy4zNjMgQzcuMTIxLDcuMTI1IDguNTI5LDUuNTg3IDguNTI5LDMuNzA2IEM4LjUyOSwxLjY1OSA2Ljg3LDAgNC44MjQsMCBDMi43NzcsMCAxLjExOCwxLjY1OSAxLjExOCwzLjcwNiBDMS4xMTgsNS41NzIgMi41MDIsNy4wOTkgNC4yOTQsNy4zNTggTDQuMjk0LDcuNDEyIEMxLjExOCw3LjQxMiAwLjA1OSw5LjUyOSAwLjA1OSw5LjUyOSBMMS4xMTgsMTUuODgyIEMxLjExOCwxNi45MzggMi40NzUsMTcuODA2IDQuMjQ0LDE3Ljk2NyBMNC4yOTQsMTggTDUuMzUzLDE4IEw1LjQwMywxNy45NjcgQzcuMTcyLDE3LjgwNiA4LjUyOSwxNi45MzggOC41MjksMTUuODgyIEw5LjU4OCw5LjUyOSBDOS41ODgsOS41MjkgOC41MjksNy40MTIgNS4zNTMsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTE1Ljk0MSw3LjQxMiBMMTUuODkyLDcuMzYzIEMxNy43MDksNy4xMjUgMTkuMTE4LDUuNTg3IDE5LjExOCwzLjcwNiBDMTkuMTE4LDEuNjU5IDE3LjQ1OCwwIDE1LjQxMiwwIEMxMy4zNjUsMCAxMS43MDYsMS42NTkgMTEuNzA2LDMuNzA2IEMxMS43MDYsNS41NzIgMTMuMDksNy4wOTkgMTQuODgyLDcuMzU4IEwxNC44ODIsNy40MTIgQzExLjcwNiw3LjQxMiAxMC42NDcsOS41MjkgMTAuNjQ3LDkuNTI5IEwxMS43MDYsMTUuODgyIEMxMS43MDYsMTYuOTM4IDEzLjA2MywxNy44MDYgMTQuODMzLDE3Ljk2NyBMMTQuODgyLDE4IEwxNS45NDEsMTggTDE1Ljk5MSwxNy45NjcgQzE3Ljc2LDE3LjgwNiAxOS4xMTgsMTYuOTM4IDE5LjExOCwxNS44ODIgTDIwLjE3Niw5LjUyOSBDMjAuMTc2LDkuNTI5IDE5LjExOCw3LjQxMiAxNS45NDEsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgogICAgPHBhdGggZD0iTTI2LjUyOSw3LjQxMiBMMjYuNDgxLDcuMzYzIEMyOC4yOTgsNy4xMjUgMjkuNzA2LDUuNTg3IDI5LjcwNiwzLjcwNiBDMjkuNzA2LDEuNjU5IDI4LjA0NywwIDI2LDAgQzIzLjk1MywwIDIyLjI5NCwxLjY1OSAyMi4yOTQsMy43MDYgQzIyLjI5NCw1LjU3MiAyMy42NzgsNy4wOTkgMjUuNDcxLDcuMzU4IEwyNS40NzEsNy40MTIgQzIyLjI5NCw3LjQxMiAyMS4yMzUsOS41MjkgMjEuMjM1LDkuNTI5IEwyMi4yOTQsMTUuODgyIEMyMi4yOTQsMTYuOTM4IDIzLjY1MiwxNy44MDYgMjUuNDIxLDE3Ljk2NyBMMjUuNDcxLDE4IEwyNi41MjksMTggTDI2LjU3OSwxNy45NjcgQzI4LjM0OCwxNy44MDYgMjkuNzA2LDE2LjkzOCAyOS43MDYsMTUuODgyIEwzMC43NjUsOS41MjkgQzMwLjc2NSw5LjUyOSAyOS43MDYsNy40MTIgMjYuNTI5LDcuNDEyIHoiIGZpbGw9IiM3MTcxNzEiLz4KICAgIDxwYXRoIGQ9Ik0zNy4xMTgsNy40MTIgTDM3LjA2OSw3LjM2MyBDMzguODg2LDcuMTI1IDQwLjI5NCw1LjU4NyA0MC4yOTQsMy43MDYgQzQwLjI5NCwxLjY1OSAzOC42MzUsMCAzNi41ODgsMCBDMzQuNTQyLDAgMzIuODgyLDEuNjU5IDMyLjg4MiwzLjcwNiBDMzIuODgyLDUuNTcyIDM0LjI2Niw3LjA5OSAzNi4wNTksNy4zNTggTDM2LjA1OSw3LjQxMiBDMzIuODgyLDcuNDEyIDMxLjgyNCw5LjUyOSAzMS44MjQsOS41MjkgTDMyLjg4MiwxNS44ODIgQzMyLjg4MiwxNi45MzggMzQuMjQsMTcuODA2IDM2LjAwOSwxNy45NjcgTDM2LjA1OSwxOCBMMzcuMTE4LDE4IEwzNy4xNjcsMTcuOTY3IEMzOC45MzcsMTcuODA2IDQwLjI5NCwxNi45MzggNDAuMjk0LDE1Ljg4MiBMNDEuMzUzLDkuNTI5IEM0MS4zNTMsOS41MjkgNDAuMjk0LDcuNDEyIDM3LjExOCw3LjQxMiB6IiBmaWxsPSIjNzE3MTcxIi8+CiAgICA8cGF0aCBkPSJNNDcuNzA2LDcuNDEyIEw0Ny42NTcsNy4zNjMgQzQ5LjQ3NCw3LjEyNSA1MC44ODIsNS41ODcgNTAuODgyLDMuNzA2IEM1MC44ODIsMS42NTkgNDkuMjIzLDAgNDcuMTc2LDAgQzQ1LjEzLDAgNDMuNDcxLDEuNjU5IDQzLjQ3MSwzLjcwNiBDNDMuNDcxLDUuNTcyIDQ0Ljg1NCw3LjA5OSA0Ni42NDcsNy4zNTggTDQ2LjY0Nyw3LjQxMiBDNDMuNDcxLDcuNDEyIDQyLjQxMiw5LjUyOSA0Mi40MTIsOS41MjkgTDQzLjQ3MSwxNS44ODIgQzQzLjQ3MSwxNi45MzggNDQuODI4LDE3LjgwNiA0Ni41OTcsMTcuOTY3IEw0Ni42NDcsMTggTDQ3LjcwNiwxOCBMNDcuNzU2LDE3Ljk2NyBDNDkuNTI1LDE3LjgwNiA1MC44ODIsMTYuOTM4IDUwLjg4MiwxNS44ODIgTDUxLjk0MSw5LjUyOSBDNTEuOTQxLDkuNTI5IDUwLjg4Miw3LjQxMiA0Ny43MDYsNy40MTIgeiIgZmlsbD0iIzcxNzE3MSIvPgo8L3N2Zz4K"; + +/***/ }, + +/***/ 2540 +(module) { + +"use strict"; +module.exports = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4IDE1Ij4KICAgIDxwYXRoIGQ9Ik0yMS45MSwxLjA4MyBDMTguMDA4LDEuMDgzIDE0Ljg0Niw0LjA3IDE0Ljg0Niw3Ljc1OCBDMTQuODQ2LDExLjQ0NSAxOC4wMDgsMTQuNDMyIDIxLjkxLDE0LjQzMiBDMjUuODEzLDE0LjQzMiAyOC45NzcsMTEuNDQ1IDI4Ljk3Nyw3Ljc1OCBDMjguOTc4LDQuMDcgMjUuODEzLDEuMDgzIDIxLjkxLDEuMDgzIHogTTIxLjc3MSwxMS45IEMxOS41LDExLjkgMTcuNjU3LDEwLjA1NiAxNy42NTcsNy43ODMgQzE3LjY1Nyw1LjUwOCAxOS41MDEsMy42NjQgMjEuNzcxLDMuNjY0IEMyNC4wNDUsMy42NjQgMjUuODg2LDUuNTA4IDI1Ljg4Niw3Ljc4MyBDMjUuODg2LDEwLjA1NyAyNC4wNDUsMTEuOSAyMS43NzEsMTEuOSB6IiBmaWxsPSIjNzRCMDNFIi8+CiAgICA8cGF0aCBkPSJNMTYuNzUxLDAuNjQyIEwxNy4wMzEsMCBMMTQuMDYzLDAgTDExLjI3LDggTDguNjQ4LDAgTDguMjcyLDAgTDUuNjUsOCBMMywwIEwwLjAzMSwwIEw0LjksMTMuNDg2IEM0LjksMTMuNDg2IDUuMDc4LDEzLjg2IDUuMjc1LDEzLjg2IEM1LjQ1MSwxMy44NiA1LjY0OSwxMy40ODYgNS42NDksMTMuNDg2IEw4LjQ0NSw2LjQwNiBMMTEuMjY5LDEzLjQ4NiBDMTEuMjY5LDEzLjQ4NiAxMS40NTUsMTMuODYgMTEuNjQzLDEzLjg2IEMxMS44MjksMTMuODYgMTIuMDE4LDEzLjQ4NiAxMi4wMTgsMTMuNDg2IEwxMy42MTQsOS4wNjcgQzEzLjQ0NSw4LjQzMyAxMy4zNDUsNy43NzMgMTMuMzQ1LDcuMDg5IEMxMy4zNDYsNC40NTMgMTQuNjg2LDIuMTE4IDE2Ljc1MSwwLjY0MiB6IiBmaWxsPSIjRUUzNDI4Ii8+CiAgICA8cGF0aCBkPSJNMjcuMDMxLDAgTDI3LjAzMSwwLjYxMyBDMjcuOTQ0LDEuMjU4IDI4LjcxNSwyLjA2NyAyOS4yOTUsMyBMMzEuMDMxLDMgTDMxLjAzMSwxNCBMMzQuMDMxLDE0IEwzNC4wMzEsMyBMMzguMDMxLDMgTDM4LjAzMSwwIEwyNy4wMzEsMCB6IiBmaWxsPSIjRjA4NjE1Ii8+Cjwvc3ZnPgo="; + +/***/ }, + +/***/ 7133 +(module) { + +"use strict"; +module.exports = "data:application/font-woff2;base64,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"; + +/***/ }, + +/***/ 9010 +(module) { + +"use strict"; +module.exports = "data:application/font-woff2;base64,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"; + +/***/ }, + +/***/ 2883 +(module) { + +"use strict"; +module.exports = "data:application/font-woff2;base64,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"; + +/***/ }, + +/***/ 6873 +(module) { + +"use strict"; +module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACBSURBVHgBldFLDoMwDEXR18iq6Ii27H8lHXYd7IBPgAG/JBCCBEJAMB6fG0X24xf/B3hGa42sLZDWElEQgrxYWdxZ3OSIXm98niEECwczJqLj4AxPI+7gXXCFNwEHLwEXu8DtmYldsB7lGhtjQGm9HsWHVa8g+xLiy3xZqgqJ/ckIiPBvRSd16DkAAAAASUVORK5CYII="; + +/***/ }, + +/***/ 3417 +(module) { + +"use strict"; +module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAAOCAYAAACVZ7SQAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKSSURBVHgB1VbbcdpAFF2B/oM7EB3I/0BEBcQVWKkgUEFEBSEVgCuIUoHXvL7lDlSCCuDhc+S7mvWODHhGfHBn7uxqdd+vXW8wGPw5Ho9jpdRitVr9xKr6/X6M5bv6HF5BO1M3Ar44SIijKJporQvP8yKcP57g08CbcnLaarVG+/3+CdkpXAI4PHXPwJOrGwKv7hAlvDCZhOPeJYJQBR0sASohc85DLPxXuP8+kRMIbeHI7rjnNfpD+cxsOg/990waYA6Hul9xErxH2WpkPAAPcbherzVk/MI+EeMM5MApZC6EP8Yyl38TyCBPUBrmeRkq7OFwOIxsOTifLZfLie0cqpAyfti2gS4BXVmFLdUMRMY4Yzy+Z2IYAzAF5tiTZi7ZdYEDsMwWP7AP4eAz5YC3ygpnCPgrh0hjOagFSZfAjvFFTjJbLtbRQdmk3W7f+b6fwahQlKXI2hARTaC0ij4iX+ckae+IEhAaGlAu+Lvgubf4R2Ibgxka/dRFxOeTkP5mpn3VDOjNZmNP27GUUSxXlOmpU/Df2r+o96wrI3e73WZw6gMDgwnZ5R6lXUj5E0wiyjlx1slLB48N7Ec4mFCJMeJKYAduXkew2+06TfVkBcyg1Y8pS5iBwjpUVwQOvDpk+zRVrjZU0UU5vZpRjswGqmGAE7ySqkcLpzpXXkOcyujlv/y+hpOFIDP6iD7hC+qb9bIinOvPiwDVsYAz5bUDHf+gK+Uk5iygDrRNDEfvGy9XZg6KzSspUO9XA6ermXjMcKAaAOrCwBnKNGbgYgkm9zn6sXyL+4jGg3IiC0YSJueUgLdbd86JiJJJzVUBOk2DcDZz+FMl95qS+/GUfktfYTmaY+n2er3IBI/PTvaieaa+AbvKm/l9DDOYAAAAAElFTkSuQmCC"; + +/***/ }, + +/***/ 6539 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('[{"project_id":"adguard-assistant","base_locale":"en","languages":{"en":"English","ar":"Arabic","be":"Belarusian","bg":"Bulgarian","ca":"Catalan","cs":"Czech","da":"Danish","de":"German","el":"Greek","es":"Spanish","fa":"Persian","fi":"Finnish","fr":"French","he":"Hebrew","hi":"Hindi","hr":"Croatian","hu":"Hungarian","id":"Indonesian","it":"Italian","ja":"Japanese","ko":"Korean","lt":"Lithuanian","mk":"Macedonian","no":"Norwegian","nl":"Dutch","pl":"Polish","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese","ro":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","sr":"Serbian (latin)","sv":"Swedish","th":"Thai","tr":"Turkish","uk":"Ukrainian","vi":"Vietnamese","zh-CN":"Chinese Simplified (mainland China)","zh-HK":"Chinese Traditional (Hong Kong)","zh-TW":"Chinese Traditional (Taiwan)"},"localizable_files":["locales/en/messages.json","locales/en/messages.meta.json"]}]'); + +/***/ }, + +/***/ 2066 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save_all":"كافة مواقع الويب","settings_position_save_this":"هذا الموقع","assistant_select_element_start":"بدء","assistant_select_element_text":"اختر عنصرا في الصفحة للحظرقم بتحديث الصفحة لالغاء وضع حظر العنصر","menu_filtration_status":{"message":"تفعيل الفلترةعلى هذا الموقع"},"menu_do_not_filter_30_sec":{"message":"عدم الفلترة لمده 30 ثانيه"},"menu_block_ad_on_site":{"message":"منع الإعلان على هذا الموقع"},"menu_report_abuse":{"message":"الإبلاغ عن هذا الموقع"},"menu_site_report":{"message":"تقرير أمن الموقع"},"menu_settings":{"message":"إعدادات المساعد"},"menu_wot_reputation_indicator":{"message":"مؤشر سمعة الموقع"},"menu_wot_reputation_confidence_level":{"message":"مستوى الثقة في السمعة"},"assistant_select_element":{"message":"حظر العنصر"},"assistant_select_element_cancel":{"message":"الغاء"},"assistant_block_element":{"message":"حظر العنصر"},"assistant_extended_settings":{"message":"إعدادات متقدمة"},"assistant_apply_rule_to_all_sites":{"message":"تطبيق القاعدة علي كافة مواقع الويب"},"assistant_block_by_reference":{"message":"حظر حسب الارتباط المرجعي"},"assistant_block_similar":{"message":"حظر عنصر مما ثل"},"assistant_another_element":{"message":"حدد عنصرًا مختلفًا"},"assistant_preview":{"message":"المعاينه"},"assistant_block":{"message":"حظر"},"assistant_settings":{"message":"إعدادات المساعد"},"assistant_preview_end":{"message":"إنهاء المعاينة"},"wot_unknown_description":{"message":"$1 لم يتم تعريف سمعه هذا الموقع من قبل"},"wot_bad_description":{"message":"$1هذا الموقع لديه سمعة سيئة للغاية \\nوفقاً لـ"},"wot_poor_description":{"message":"$1 هذا الموقع له سمعة سيئة \\nوفقا لـ"},"wot_unsatisfactory_description":{"message":"$1هذا الموقع له سمعة سيئة\\nوفقا لـ"},"wot_good_description":{"message":"$1يتمتع هذا الموقع بسمعة طيبة\\nوفقا لـ"},"wot_excellent_description":{"message":"هذا الموقع يتمتع بسمعة ممتازة\\nوفقاً لـ $1"},"settings_choose_size_and_position":{"message":"وموضعه AdGuard ضبط حجم مساعد"},"settings_icon_size":{"message":":حجم الرمز"},"settings_small":{"message":"صغير"},"settings_big":{"message":"كبير"},"settings_position":{"message":"وضع"},"settings_left_top":{"message":"اعلي اليسار"},"settings_right_top":{"message":"اعلي اليمين"},"settings_left_bottom":{"message":"أسفل لليسار"},"settings_right_bottom":{"message":"أسفل لليمين"},"settings_cancel":{"message":"الغاء"},"settings_save":{"message":"حفظ التغييرات"}}'); + +/***/ }, + +/***/ 2993 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"مساعد AdGuard","description":"يوفر طريقه سهله ومريحه لأداره التصفية الحقيقة من المتصفح"}}}'); + +/***/ }, + +/***/ 7500 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save_all":"На ўсіх","settings_position_save_this":"Толькі на гэтым","assistant_select_element_start":"Пачаць","assistant_select_element_text":"Абярыце на старонцы элемент для блакавання. Абнавіце старонку, каб скасаваць рэжым блакавання элементаў.","menu_filtration_status":{"message":"Фільтрацыя на гэтым сайце"},"menu_do_not_filter_30_sec":{"message":"Не фільтраваць 30 секундаў"},"menu_block_ad_on_site":{"message":"Заблакаваць рэкламу на сайце"},"menu_site_report":{"message":"Справаздача пра бяспеку сайта"},"menu_wot_reputation_indicator":{"message":"Індыкатар рэпутацыі сайта"},"menu_wot_reputation_confidence_level":{"message":"Узровень верагоднасці рэпутацыі"},"assistant_select_element_cancel":{"message":"Скасаваць"},"assistant_extended_settings":{"message":"Пашыраныя налады"},"assistant_apply_rule_to_all_sites":{"message":"Ужыць правіла для ўсіх сайтаў"},"assistant_block_by_reference":{"message":"Блакаваць па спасылцы"},"assistant_another_element":{"message":"Абраць іншы элемент"},"assistant_preview":{"message":"Перадпрагляд"},"assistant_block":{"message":"Заблакіраваць"},"wot_unknown_description":{"message":"Рэпутацыя не вызначана"},"wot_bad_description":{"message":"У сайта вельмі дрэнная рэпутацыя па дадзеных $1"},"wot_poor_description":{"message":"У сайта дрэнная рэпутацыя па дадзеных $1"},"wot_unsatisfactory_description":{"message":"У сайта нездавальняльная рэпутацыя па дадзеных $1"},"wot_excellent_description":{"message":"У сайта выдатная рэпутацыя па дадзеных $1"},"settings_choose_size_and_position":{"message":"Наладзьце памер і становішча памочніка AdGuard"},"settings_big":{"message":"Вялікая"},"settings_left_top":{"message":"Уверсе злева"},"settings_right_top":{"message":"Уверсе справа"},"settings_left_bottom":{"message":"Унізе злева"},"settings_right_bottom":{"message":"Унізе справа"},"settings_cancel":{"message":"Скасаваць"}}'); + +/***/ }, + +/***/ 683 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Памочнік AdGuard","description":"Дазваляе лёгка і хутка кіраваць фільтрацыяй непасрэдна з браўзара"}}}'); + +/***/ }, + +/***/ 4134 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Уебсайтове","settings_position_save_all":"Всички уебсайтове","settings_position_save_this":"Този уебсайт","assistant_select_element_start":"Старт","assistant_select_element_text":"Изберете елемент на страницата, който да блокирате. Опреснете страницата, за да отмените режима за блокиране на елементи.","menu_filtration_status":{"message":"Филтриране в този уебсайт"},"menu_do_not_filter_30_sec":{"message":"Не филтрирайте в продължение на 30 секунди"},"menu_block_ad_on_site":{"message":"Блокирай реклама на този сайт"},"menu_report_abuse":{"message":"Докладвай този уебсайт"},"menu_site_report":{"message":"Доклад за сигурността на сайта"},"menu_settings":{"message":"Настройки на Асистента"},"menu_wot_reputation_indicator":{"message":"Индикатор за репутация на сайта"},"menu_wot_reputation_confidence_level":{"message":"Ниво на доверие в репутацията"},"assistant_select_element":{"message":"Блокирай елемент"},"assistant_select_element_ext":{"message":"Кликнете върху елемент, който искате да блокирате. AdGuard ще създаде правило за него"},"assistant_select_element_cancel":{"message":"Отказ"},"assistant_block_element":{"message":"Блокирай елемент"},"assistant_block_element_explain":{"message":"Създаване на правило за блокиране на елемент"},"assistant_slider_explain":{"message":"Преместете плъзгача, за да регулирате размера на рамката"},"assistant_extended_settings":{"message":"Разширени настройки"},"assistant_apply_rule_to_all_sites":{"message":"Приложи правилото към всички сайтове"},"assistant_block_by_reference":{"message":"Блокиране по референтен линк"},"assistant_block_similar":{"message":"Блокиране на подобни"},"assistant_another_element":{"message":"Избор на различен елемент"},"assistant_preview":{"message":"Преглед"},"assistant_block":{"message":"Блокирай"},"assistant_settings":{"message":"Настройки на Асистента"},"assistant_preview_header":{"message":"Преглед на блокирания елемент"},"assistant_preview_header_info":{"message":"Проверете дали елементът е блокиран правилно"},"assistant_preview_end":{"message":"Изход от преглед"},"wot_unknown_description":{"message":"Репутацията на този уебсайт не е определена от $1"},"wot_bad_description":{"message":"Този уебсайт е с много лоша репутация\\nспоред $1"},"wot_poor_description":{"message":"Този уебсайт е с лоша репутация според $1"},"wot_unsatisfactory_description":{"message":"Този сайт е с лоша репутация според $1"},"wot_good_description":{"message":"Този уебсайт има добра репутация\\nспоред $1"},"wot_excellent_description":{"message":"Този уебсайт е с отлична репутация\\nспоред $1"},"settings_choose_size_and_position":{"message":"Настройване на размера и позицията на AdGuard Assistant"},"settings_icon_size":{"message":"Размер на иконата:"},"settings_small":{"message":"Малка"},"settings_big":{"message":"Голяма"},"settings_position":{"message":"Позиция:"},"settings_left_top":{"message":"Горе вляво"},"settings_right_top":{"message":"Горе вдясно"},"settings_left_bottom":{"message":"Долу вляво"},"settings_right_bottom":{"message":"Долу вдясно"},"settings_cancel":{"message":"Отказ"},"settings_save":{"message":"Запази промените"}}'); + +/***/ }, + +/***/ 6077 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Асистент на AdGuard","description":"Осигурява лесен и удобен начин за управление на филтрирането директно от браузъра"}}}'); + +/***/ }, + +/***/ 7699 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Llocs web","settings_position_save_all":"Tots els llocs web","settings_position_save_this":"Aquest lloc web","assistant_select_element_start":"Començar","assistant_select_element_text":"Trieu un element de la pàgina per bloquejar. Actualitzeu la pàgina per cancel·lar el mode de bloqueig d\'elements.","menu_filtration_status":{"message":"Filtrat en aquest lloc web"},"menu_do_not_filter_30_sec":{"message":"No filtrar durant 30 segons"},"menu_block_ad_on_site":{"message":"Bloquejar anuncis en aquest lloc web"},"menu_report_abuse":{"message":"Informar del lloc web"},"menu_site_report":{"message":"Informe de seguretat del lloc web"},"menu_settings":{"message":"Configuració de l\'assistent"},"menu_wot_reputation_indicator":{"message":"Indicador de reputació del lloc"},"menu_wot_reputation_confidence_level":{"message":"Nivell de confiança de la reputació"},"assistant_select_element":{"message":"Bloqueja un element"},"assistant_select_element_ext":{"message":"Fes clic en un element que vulguis bloquejar. AdGuard crearà una regla d\'usuari per a això"},"assistant_select_element_cancel":{"message":"Cancel·lar"},"assistant_block_element":{"message":"Bloqueja un element"},"assistant_block_element_explain":{"message":"Crea una regla de bloqueig d\'elements"},"assistant_slider_explain":{"message":"Mou el control lliscant per ajustar la mida del marc"},"assistant_extended_settings":{"message":"Configuració avançada"},"assistant_apply_rule_to_all_sites":{"message":"Apliqueu la regla a tots els llocs web"},"assistant_block_by_reference":{"message":"Bloqueja per enllaç de referència"},"assistant_block_similar":{"message":"Bloquejar element similar"},"assistant_another_element":{"message":"Seleccioneu un element diferent"},"assistant_preview":{"message":"Vista prèvia"},"assistant_block":{"message":"Bloquejeu"},"assistant_settings":{"message":"Configuració de l\'assistent"},"assistant_preview_header":{"message":"Previsualitza l\'element bloquejat"},"assistant_preview_header_info":{"message":"Comproveu si l\'element està bloquejat correctament"},"assistant_preview_end":{"message":"Sortir de la vista prèvia"},"wot_unknown_description":{"message":"La reputació d\'aquest lloc web no està definida per $1"},"wot_bad_description":{"message":"Aquest lloc web té una molt mala reputació\\nsegons $1"},"wot_poor_description":{"message":"Aquest lloc web té una mala reputació \\nsegons $1"},"wot_unsatisfactory_description":{"message":"Aquest lloc web té una pobra reputació\\nsegons $1"},"wot_good_description":{"message":"Aquest lloc web té una bona reputació\\nsegons $1"},"wot_excellent_description":{"message":"Aquest lloc web té una excel·lent reputació\\nsegons $1"},"settings_choose_size_and_position":{"message":"Ajusteu la mida i la posició de l\'AdGuard Assistant"},"settings_icon_size":{"message":"Mida de la icona:"},"settings_small":{"message":"Petit"},"settings_big":{"message":"Gran"},"settings_position":{"message":"Posició:"},"settings_left_top":{"message":"A dalt a l\'esquerra"},"settings_right_top":{"message":"A dalt a la dreta"},"settings_left_bottom":{"message":"A baix a l\'esquerra"},"settings_right_bottom":{"message":"A baix a la dreta"},"settings_cancel":{"message":"Cancel·lar"},"settings_save":{"message":"Guardar canvis"}}'); + +/***/ }, + +/***/ 70 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Assistent d\'AdGuard","description":"Proporciona una manera fàcil i còmoda de gestionar el filtratge directament des del navegador"}}}'); + +/***/ }, + +/***/ 3753 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Webové stránky","settings_position_save_all":"Všechny webové stránky","settings_position_save_this":"Tato webová stránka","assistant_select_element_start":"Spustit","assistant_select_element_text":"Vyberte prvek na stránce, který chcete zablokovat. Obnovte stránku pro zrušení režimu blokování prvků.","menu_filtration_status":{"message":"Filtrování na těchto webových stránkách"},"menu_do_not_filter_30_sec":{"message":"Nefiltrovat po dobu 30 sekund"},"menu_block_ad_on_site":{"message":"Blokovat reklamy na této webové stránce"},"menu_report_abuse":{"message":"Nahlásit webovou stránku"},"menu_site_report":{"message":"Zpráva o bezpečnosti webové stránky"},"menu_settings":{"message":"Nastavení asistenta"},"menu_wot_reputation_indicator":{"message":"Indikátor reputace webu"},"menu_wot_reputation_confidence_level":{"message":"Úroveň důvěryhodnosti reputace"},"assistant_select_element":{"message":"Blokovat prvek"},"assistant_select_element_ext":{"message":"Klikněte na prvek, který chcete blokovat. AdGuard pro něj vytvoří uživatelské pravidlo"},"assistant_select_element_cancel":{"message":"Zrušit"},"assistant_block_element":{"message":"Blokovat prvek"},"assistant_block_element_explain":{"message":"Vytvořte pravidlo blokování prvku"},"assistant_slider_explain":{"message":"Posunutím posuvníku upravíte velikost rámečku"},"assistant_extended_settings":{"message":"Pokročilá nastavení"},"assistant_apply_rule_to_all_sites":{"message":"Použít pravidlo pro všechny webové stránky"},"assistant_block_by_reference":{"message":"Blokovat referenčním odkazem"},"assistant_block_similar":{"message":"Blokovat podobné"},"assistant_another_element":{"message":"Vyber jiný prvek"},"assistant_preview":{"message":"Náhled"},"assistant_block":{"message":"Blokovat"},"assistant_settings":{"message":"Nastavení asistenta"},"assistant_preview_header":{"message":"Náhled blokovaného prvku"},"assistant_preview_header_info":{"message":"Zkontrolujte, zda je prvek správně zablokován"},"assistant_preview_end":{"message":"Ukončit náhled"},"wot_unknown_description":{"message":"Pověst této webové stránky není definována podle $1"},"wot_bad_description":{"message":"Tato webová stránka má velmi špatnou pověst \\npodle $1"},"wot_poor_description":{"message":"Tato webová stránka má špatnou pověst \\npodle $1"},"wot_unsatisfactory_description":{"message":"Tato webová stránka má špatnou pověst \\npodle $1"},"wot_good_description":{"message":"Tato webová stránka má dobrou pověst \\npodle $1"},"wot_excellent_description":{"message":"Tato webová stránka má výbornou pověst \\npodle $1"},"settings_choose_size_and_position":{"message":"Upravit velikost a pozici AdGuard Asistenta"},"settings_icon_size":{"message":"Velikost ikony:"},"settings_small":{"message":"Malá"},"settings_big":{"message":"Velká"},"settings_position":{"message":"Pozice:"},"settings_left_top":{"message":"Vlevo nahoře"},"settings_right_top":{"message":"Vpravo nahoře"},"settings_left_bottom":{"message":"Vlevo dole"},"settings_right_bottom":{"message":"Vpravo dole"},"settings_cancel":{"message":"Zrušit"},"settings_save":{"message":"Uložit změny"}}'); + +/***/ }, + +/***/ 5972 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Asistent","description":"Poskytuje snadný a pohodlný způsob správy filtrování přímo z prohlížeče"}}}'); + +/***/ }, + +/***/ 8626 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Websteder","settings_position_save_all":"Alle websteder","settings_position_save_this":"Dette websted","assistant_select_element_start":"Start","assistant_select_element_text":"Vælg et element på denne side, der skal blokeres. Opfrisk siden for at afbryde elementblokeringstilstanden.","menu_filtration_status":{"message":"Filtrering på dette websted"},"menu_do_not_filter_30_sec":{"message":"Filtrér ikke i 30 sekunder"},"menu_block_ad_on_site":{"message":"Blokér annoncer på dette websted"},"menu_report_abuse":{"message":"Anmeld dette websted"},"menu_site_report":{"message":"Webstedssikkerhedsrapport"},"menu_settings":{"message":"Assistent-indstillinger"},"menu_wot_reputation_indicator":{"message":"Webstedsomdømmeindikator"},"menu_wot_reputation_confidence_level":{"message":"Omdømmetillidsniveau"},"assistant_select_element":{"message":"Blokere et element"},"assistant_select_element_ext":{"message":"Klik på et element, der skal blokeres. AdGuard opretter en brugerregel for det"},"assistant_select_element_cancel":{"message":"Afbryd"},"assistant_block_element":{"message":"Blokere et element"},"assistant_block_element_explain":{"message":"Opret en elementblokereringsregel"},"assistant_slider_explain":{"message":"Flyt skyderen for at justere rammestørrelsen"},"assistant_extended_settings":{"message":"Avancerede indstillinger"},"assistant_apply_rule_to_all_sites":{"message":"Anvend reglen på alle websteder"},"assistant_block_by_reference":{"message":"Blokér efter referencelink"},"assistant_block_similar":{"message":"Blokér lignende"},"assistant_another_element":{"message":"Vælg et andet element"},"assistant_preview":{"message":"Forhåndsvisning"},"assistant_block":{"message":"Blokér"},"assistant_settings":{"message":"Assistent-indstillinger"},"assistant_preview_header":{"message":"Forhåndsvisningsblokeret element"},"assistant_preview_header_info":{"message":"Tjek, om elementet blokeres korrekt"},"assistant_preview_end":{"message":"Afslut forhåndsvisning"},"wot_unknown_description":{"message":"Dette websteds omdømme er ikke defineret af $1"},"wot_bad_description":{"message":"Dette websted har et meget dårligt omdømme jf. $1"},"wot_poor_description":{"message":"Dette websted har et dårligt omdømme jf. $1"},"wot_unsatisfactory_description":{"message":"Dette websted har et ringe omdømme jf. $1"},"wot_good_description":{"message":"Dette websted har et godt omdømme jf. $1"},"wot_excellent_description":{"message":"Dette websted har et fremragende omdømme \\njf. $1"},"settings_choose_size_and_position":{"message":"Justér størrelse og position for AdGuard Assistent"},"settings_icon_size":{"message":"Ikonstørrelse:"},"settings_small":{"message":"Lille"},"settings_big":{"message":"Stor"},"settings_position":{"message":"Position:"},"settings_left_top":{"message":"Øverst til venstre"},"settings_right_top":{"message":"Øverst til højre"},"settings_left_bottom":{"message":"Nederst til venstre"},"settings_right_bottom":{"message":"Nederst til højre"},"settings_cancel":{"message":"Afbryd"},"settings_save":{"message":"Gem ændringer"}}'); + +/***/ }, + +/***/ 9025 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Assistent","description":"Muliggør nem og bekvem filtreringshåndtering direkte fra browseren"}}}'); + +/***/ }, + +/***/ 5278 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Websites","settings_position_save_all":"Alle Websites","settings_position_save_this":"Diese Webseite","assistant_select_element_start":"Starten","assistant_select_element_text":"Wählen Sie ein zu sperrendes Element auf der Seite aus. Laden Sie die Seite neu, um den Sperrmodus zu verlassen.","menu_filtration_status":{"message":"Diese Webseite filtern"},"menu_do_not_filter_30_sec":{"message":"Schutz für 30 Sekunden deaktivieren"},"menu_block_ad_on_site":{"message":"Werbung auf dieser Seite sperren"},"menu_report_abuse":{"message":"Diese Webseite melden"},"menu_site_report":{"message":"Sicherheitsbericht dieser Webseite"},"menu_settings":{"message":"Assistent-Einstellungen"},"menu_wot_reputation_indicator":{"message":"Website-Reputations-Indikator"},"menu_wot_reputation_confidence_level":{"message":"Reputationsvertrauensgrad"},"assistant_select_element":{"message":"Element blockieren"},"assistant_select_element_ext":{"message":"Klicken Sie auf ein Element — AdGuard erstellt dafür eine Benutzerregel"},"assistant_select_element_cancel":{"message":"Abbrechen"},"assistant_block_element":{"message":"Element blockieren"},"assistant_block_element_explain":{"message":"Erstellen Sie eine Blockierregel für dieses Element"},"assistant_slider_explain":{"message":"Bewegen Sie den Schieberegler, um die Größe des Rahmens anzupassen"},"assistant_extended_settings":{"message":"Erweiterte Einstellungen"},"assistant_apply_rule_to_all_sites":{"message":"Regel auf alle Webseiten anwenden"},"assistant_block_by_reference":{"message":"Durch Referenzlink sperren"},"assistant_block_similar":{"message":"Ähnliche Elemente blockieren"},"assistant_another_element":{"message":"Ein anderes Element wählen"},"assistant_preview":{"message":"Vorschau"},"assistant_block":{"message":"Sperren"},"assistant_settings":{"message":"Assistent-Einstellungen"},"assistant_preview_header":{"message":"Blockiertes Element vorab anzeigen"},"assistant_preview_header_info":{"message":"Prüfen Sie, ob das Element korrekt blockiert ist"},"assistant_preview_end":{"message":"Vorschau beenden"},"wot_unknown_description":{"message":"Der Ruf dieser Webseite wird nicht durch $1 festgelegt"},"wot_bad_description":{"message":"Diese Webseite hat einen sehr schlechten Ruf laut $1"},"wot_poor_description":{"message":"Diese Webseite hat einen schlechten Ruf laut $1"},"wot_unsatisfactory_description":{"message":"Diese Webseite hat einen schlechten Ruf laut $1"},"wot_good_description":{"message":"Diese Webseite hat einen guten Ruf laut $1"},"wot_excellent_description":{"message":"Diese Webseite hat einen exzellenten Ruf laut $1"},"settings_choose_size_and_position":{"message":"Anpassen der Größe und Position des AdGuard-Assistent"},"settings_icon_size":{"message":"Symbol-Größe:"},"settings_small":{"message":"Klein"},"settings_big":{"message":"Groß"},"settings_position":{"message":"Position:"},"settings_left_top":{"message":"Oben links"},"settings_right_top":{"message":"Oben rechts"},"settings_left_bottom":{"message":"Unten links"},"settings_right_bottom":{"message":"Unten rechts"},"settings_cancel":{"message":"Abbrechen"},"settings_save":{"message":"Änderungen speichern"}}'); + +/***/ }, + +/***/ 4005 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard-Assistent","description":"Bietet eine einfache und bequeme Möglichkeit, das Filtern direkt im Browser zu verwalten"}}}'); + +/***/ }, + +/***/ 2360 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Ιστοσελίδες","settings_position_save_all":"Όλοι οι ιστότοποι","settings_position_save_this":"Αυτός ο ιστότοπος","assistant_select_element_start":"Εκκίνηση","assistant_select_element_text":"Επιλέξτε ένα στοιχείο στη σελίδα για αποκλεισμό. Ανανεώστε τη σελίδα για να ακυρώσετε τη λειτουργία αποκλεισμού στοιχείων.","menu_filtration_status":{"message":"Φιλτράρισμα σε αυτόν τον ιστότοπο"},"menu_do_not_filter_30_sec":{"message":"Παύση φιλτραρίσματος για 30 δευτερόλεπτα"},"menu_block_ad_on_site":{"message":"Αποκλεισμός διαφήμισης σε αυτόν τον ιστότοπο"},"menu_report_abuse":{"message":"Αναφέρετε αυτόν τον ιστότοπο"},"menu_site_report":{"message":"Αναφορά ασφάλειας ιστότοπου"},"menu_settings":{"message":"Ρυθμίσεις βοηθού"},"menu_wot_reputation_indicator":{"message":"Δείκτης φήμης ιστότοπου"},"menu_wot_reputation_confidence_level":{"message":"Επίπεδο εμπιστοσύνης φήμης"},"assistant_select_element":{"message":"Αποκλεισμός ενός στοιχείου"},"assistant_select_element_ext":{"message":"Κάντε κλικ σε ένα στοιχείο που θέλετε να αποκλείσετε. Το AdGuard θα δημιουργήσει έναν κανόνα χρήστη για αυτό"},"assistant_select_element_cancel":{"message":"Άκυρο"},"assistant_block_element":{"message":"Αποκλεισμός ενός στοιχείου"},"assistant_block_element_explain":{"message":"Δημιουργήστε έναν κανόνα αποκλεισμού στοιχείων"},"assistant_slider_explain":{"message":"Μετακινήστε το ρυθμιστικό για να ρυθμίσετε το μέγεθος του πλαισίου"},"assistant_extended_settings":{"message":"Προηγμένες ρυθμίσεις"},"assistant_apply_rule_to_all_sites":{"message":"Εφαρμογή του κανόνα σε όλες τις ιστοσελίδες"},"assistant_block_by_reference":{"message":"Αποκλεισμός μέσω συνδέσμου αναφοράς"},"assistant_block_similar":{"message":"Αποκλεισμός παρόμοιου"},"assistant_another_element":{"message":"Επιλέξτε ένα διαφορετικό στοιχείο"},"assistant_preview":{"message":"Προεπισκόπηση"},"assistant_block":{"message":"Αποκλεισμός"},"assistant_settings":{"message":"Ρυθμίσεις βοηθού"},"assistant_preview_header":{"message":"Προεπισκόπηση αποκλεισμένου στοιχείου"},"assistant_preview_header_info":{"message":"Ελέγξτε αν το στοιχείο έχει μπλοκαριστεί σωστά"},"assistant_preview_end":{"message":"Έξοδος προεπισκόπησης"},"wot_unknown_description":{"message":"Η φήμη αυτού του ιστότοπου δεν έχει καθοριστεί από το $1"},"wot_bad_description":{"message":"Αυτός ο ιστότοπος έχει πολύ κακή φήμη\\nσύμφωνα με το $1"},"wot_poor_description":{"message":"Αυτός ο ιστότοπος έχει κακή φήμη\\nσύμφωνα με το $1"},"wot_unsatisfactory_description":{"message":"Αυτός ο ιστότοπος έχει κακή φήμη\\nσύμφωνα με το $1"},"wot_good_description":{"message":"Αυτός ο ιστότοπος έχει καλή φήμη\\nσύμφωνα με το $1"},"wot_excellent_description":{"message":"Αυτός ο ιστότοπος έχει εξαιρετική φήμη\\nσύμφωνα με το $1"},"settings_choose_size_and_position":{"message":"Προσαρμόστε το μέγεθος και τη θέση του Βοηθού AdGuard"},"settings_icon_size":{"message":"Μέγεθος εικονιδίου:"},"settings_small":{"message":"Μικρό"},"settings_big":{"message":"Μεγάλο"},"settings_position":{"message":"Θέση:"},"settings_left_top":{"message":"Πάνω αριστερά"},"settings_right_top":{"message":"Πάνω δεξιά"},"settings_left_bottom":{"message":"Κάτω αριστερά"},"settings_right_bottom":{"message":"Κάτω δεξιά"},"settings_cancel":{"message":"Άκυρο"},"settings_save":{"message":"Αποθήκευση αλλαγών"}}'); + +/***/ }, + +/***/ 495 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Βοηθός AdGuard","description":"Παρέχει εύκολο και βολικό τρόπο διαχείρισης του φιλτραρίσματος απευθείας από το πρόγραμμα περιήγησης"}}}'); + +/***/ }, + +/***/ 6642 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Websites","settings_position_save_all":"All websites","settings_position_save_this":"This website","assistant_select_element_start":"Start","assistant_select_element_text":"Choose an element on the page to block. Refresh the page to cancel the element blocking mode.","menu_filtration_status":{"message":"Filtering on this website"},"menu_do_not_filter_30_sec":{"message":"Do not filter for 30 seconds"},"menu_block_ad_on_site":{"message":"Block ad on this website"},"menu_report_abuse":{"message":"Report the website"},"menu_site_report":{"message":"Website security report"},"menu_settings":{"message":"Assistant settings"},"menu_wot_reputation_indicator":{"message":"Site reputation indicator"},"menu_wot_reputation_confidence_level":{"message":"Reputation Confidence Level"},"assistant_select_element":{"message":"Block an element"},"assistant_select_element_ext":{"message":"Click an element you want to block. AdGuard will create a user rule for it"},"assistant_select_element_cancel":{"message":"Cancel"},"assistant_block_element":{"message":"Block an element"},"assistant_block_element_explain":{"message":"Create an element blocking rule"},"assistant_slider_explain":{"message":"Move the slider to adjust the size of the frame"},"assistant_extended_settings":{"message":"Advanced settings"},"assistant_apply_rule_to_all_sites":{"message":"Apply the rule to all websites"},"assistant_block_by_reference":{"message":"Block by reference link"},"assistant_block_similar":{"message":"Block similar"},"assistant_another_element":{"message":"Select a different element"},"assistant_preview":{"message":"Preview"},"assistant_block":{"message":"Block"},"assistant_settings":{"message":"Assistant settings"},"assistant_preview_header":{"message":"Preview blocked element"},"assistant_preview_header_info":{"message":"Check if the element is blocked correctly"},"assistant_preview_end":{"message":"Exit preview"},"wot_unknown_description":{"message":"This website\'s reputation is not defined by $1"},"wot_bad_description":{"message":"This website has a very bad reputation\\naccording to $1"},"wot_poor_description":{"message":"This website has a bad reputation \\naccording to $1"},"wot_unsatisfactory_description":{"message":"This website has a poor reputation\\naccording to $1"},"wot_good_description":{"message":"This website has a good reputation\\naccording to $1"},"wot_excellent_description":{"message":"This website has an excellent reputation\\naccording to $1"},"settings_choose_size_and_position":{"message":"Adjust AdGuard Assistant size and position"},"settings_icon_size":{"message":"Icon size:"},"settings_small":{"message":"Small"},"settings_big":{"message":"Large"},"settings_position":{"message":"Position:"},"settings_left_top":{"message":"Top left"},"settings_right_top":{"message":"Top right"},"settings_left_bottom":{"message":"Bottom left"},"settings_right_bottom":{"message":"Bottom right"},"settings_cancel":{"message":"Cancel"},"settings_save":{"message":"Save changes"}}'); + +/***/ }, + +/***/ 9921 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Assistant","description":"Provides easy and convenient way to manage filtering right from the browser"}}}'); + +/***/ }, + +/***/ 2271 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sitios web","settings_position_save_all":"Todos los sitios web","settings_position_save_this":"Este sitio web","assistant_select_element_start":"Comenzar","assistant_select_element_text":"Elige un elemento en la página para bloquear. Actualiza la página para cancelar el bloqueo de elementos.","menu_filtration_status":{"message":"Filtrado en este sitio web"},"menu_do_not_filter_30_sec":{"message":"No filtrar durante 30 segundos"},"menu_block_ad_on_site":{"message":"Bloquear anuncios en este sitio web"},"menu_report_abuse":{"message":"Reportar el sitio web"},"menu_site_report":{"message":"Informe de seguridad del sitio web"},"menu_settings":{"message":"Configuración del asistente"},"menu_wot_reputation_indicator":{"message":"Indicador de reputación del sitio"},"menu_wot_reputation_confidence_level":{"message":"Nivel de confianza de reputación"},"assistant_select_element":{"message":"Bloquear un elemento"},"assistant_select_element_ext":{"message":"Haz clic en un elemento que deseas bloquear. AdGuard creará una regla de usuario para él"},"assistant_select_element_cancel":{"message":"Cancelar"},"assistant_block_element":{"message":"Bloquear un elemento"},"assistant_block_element_explain":{"message":"Crea una regla de bloqueo de elementos"},"assistant_slider_explain":{"message":"Mueve el control deslizante para ajustar el tamaño del marco"},"assistant_extended_settings":{"message":"Configuración avanzada"},"assistant_apply_rule_to_all_sites":{"message":"Aplicar la regla a todos los sitios web"},"assistant_block_by_reference":{"message":"Bloquear por enlace de referencia"},"assistant_block_similar":{"message":"Bloquear elemento similar"},"assistant_another_element":{"message":"Seleccionar otro elemento"},"assistant_preview":{"message":"Vista previa"},"assistant_block":{"message":"Bloquear"},"assistant_settings":{"message":"Configuración del asistente"},"assistant_preview_header":{"message":"Vista previa del elemento bloqueado"},"assistant_preview_header_info":{"message":"Verifica si el elemento está bloqueado correctamente"},"assistant_preview_end":{"message":"Salir de vista previa"},"wot_unknown_description":{"message":"La reputación de este sitio web no está definida por $1"},"wot_bad_description":{"message":"Este sitio web tiene muy mala reputación\\nde acuerdo a $1"},"wot_poor_description":{"message":"Este sitio web tiene mala reputación\\nde acuerdo a $1"},"wot_unsatisfactory_description":{"message":"Este sitio web tiene pobre reputación\\nde acuerdo a $1"},"wot_good_description":{"message":"Este sitio web tiene buena reputación\\nde acuerdo a $1"},"wot_excellent_description":{"message":"Este sitio web tiene excelente reputación\\nde acuerdo a $1"},"settings_choose_size_and_position":{"message":"Ajustar el tamaño y la posición del Asistente de AdGuard"},"settings_icon_size":{"message":"Tamaño del icono:"},"settings_small":{"message":"Pequeño"},"settings_big":{"message":"Grande"},"settings_position":{"message":"Posición:"},"settings_left_top":{"message":"Arriba a la izquierda"},"settings_right_top":{"message":"Arriba a la derecha"},"settings_left_bottom":{"message":"Abajo a la izquierda"},"settings_right_bottom":{"message":"Abajo a la derecha"},"settings_cancel":{"message":"Cancelar"},"settings_save":{"message":"Guardar cambios"}}'); + +/***/ }, + +/***/ 4682 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Asistente de Adguard","description":"Permite fácilmente administrar el filtrado directamente desde el navegador"}}}'); + +/***/ }, + +/***/ 356 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"وبسایت","settings_position_save_all":"همه وبسایت ها","settings_position_save_this":"این وبسایت","assistant_select_element_start":"شروع","assistant_select_element_text":"عنصری در صفحه برای مسدودسازی انتخاب کنید. برای لغو،صفحه را رفرش کنید.","menu_filtration_status":{"message":"فیلترینگ در این وبسایت"},"menu_do_not_filter_30_sec":{"message":"به مدت 30 ثانیه فیلتر نکن"},"menu_block_ad_on_site":{"message":"مسدودسازی تبلیغ در این وبسایت"},"menu_report_abuse":{"message":"گزارش وبسایت"},"menu_site_report":{"message":"گزارش امنیتی وبسایت"},"menu_settings":{"message":"تنظیمات دستیار"},"menu_wot_reputation_indicator":{"message":"نشانگر اعتبار سایت"},"menu_wot_reputation_confidence_level":{"message":"سطح اعتبار"},"assistant_select_element":{"message":"مسدودسازی یک عنصر"},"assistant_select_element_ext":{"message":"روی اجزایی که می‌خواهید مسدود کنید کلیک کنید. AdGuard یک رویهٔ کاربر برای آن ایجاد خواهد کرد."},"assistant_select_element_cancel":{"message":"لغو"},"assistant_block_element":{"message":"مسدودسازی یک عنصر"},"assistant_block_element_explain":{"message":"ایجاد یک رویهٔ مسدودسازی اجزاء"},"assistant_slider_explain":{"message":"اسلایدر را جابه‌جا کنید تا اندازه قاب را تنظیم کنید."},"assistant_extended_settings":{"message":"تنظیمات پیشرفته"},"assistant_apply_rule_to_all_sites":{"message":"اِعمال دستور در همه وبسایت ها"},"assistant_block_by_reference":{"message":"مسدودسازی با لینک مرجع"},"assistant_block_similar":{"message":"مسدودسازی مشابه"},"assistant_another_element":{"message":"عنصر دیگری انتخاب کنید"},"assistant_preview":{"message":"پیشنمایش"},"assistant_block":{"message":"مسدود"},"assistant_settings":{"message":"تنظیمات دستیار"},"assistant_preview_header":{"message":"پیش‌نمایش اجزاء مسدود شده"},"assistant_preview_header_info":{"message":"بررسی کنید که آیا جزء به درستی مسدود شده است یا خیر"},"assistant_preview_end":{"message":"خروج از پیشنمایش"},"wot_unknown_description":{"message":"اعتبار تعریف نشده است"},"wot_bad_description":{"message":"این وبسایت اعتبار خیلی بدی دارد\\nبر طبق "},"wot_poor_description":{"message":"این وبسایت اعتبار بدی دارد\\nبر طبق "},"wot_unsatisfactory_description":{"message":"این وبسایت اعتبار کمی دارد\\nبر طبق "},"wot_good_description":{"message":"این وبسایت اعتبار خوبی دارد\\nبر طبق "},"wot_excellent_description":{"message":"این وبسایت اعتبار عالی دارد\\nبر طبق "},"settings_choose_size_and_position":{"message":"تنظیم اندازه و موقعیت دستیار AdGuard"},"settings_icon_size":{"message":"اندازه آیکون:"},"settings_small":{"message":"کوچک"},"settings_big":{"message":"بزرگ"},"settings_position":{"message":"موقعیت:"},"settings_left_top":{"message":"بالا سمت چپ"},"settings_right_top":{"message":"بالا سمت راست"},"settings_left_bottom":{"message":"پایین سمت چپ"},"settings_right_bottom":{"message":"پایین سمت راست"},"settings_cancel":{"message":"لغو"},"settings_save":{"message":"ذخیره تغییرات"}}'); + +/***/ }, + +/***/ 563 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"دستیار AdGuard","description":"روش راحت و آسان برای مدیریت فیلترینگ مستیق از داخل مرورگر."}}}'); + +/***/ }, + +/***/ 7804 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sivustot","settings_position_save_all":"Kaikki sivustot","settings_position_save_this":"Tämä sivusto","assistant_select_element_start":"Aloita","assistant_select_element_text":"Valitse sivulta estettävä elementti. Päivitä sivu poistuaksesi elementtien estotilasta.","menu_filtration_status":{"message":"Tämän sivuston suodatus"},"menu_do_not_filter_30_sec":{"message":"Pysäytä suodatus 30 sekunnin ajaksi"},"menu_block_ad_on_site":{"message":"Estä mainos tältä sivustolta"},"menu_report_abuse":{"message":"Ilmoita ongelmasta"},"menu_site_report":{"message":"Sivuston suojausraportti"},"menu_settings":{"message":"Apurin asetukset"},"menu_wot_reputation_indicator":{"message":"Sivuston maine"},"menu_wot_reputation_confidence_level":{"message":"Mainearvion luotettavuus"},"assistant_select_element":{"message":"Estä elementti"},"assistant_select_element_ext":{"message":"Klikkaa elementtiä, jonka haluat estää. AdGuard luo sille käyttäjäsäännön"},"assistant_select_element_cancel":{"message":"Peruuta"},"assistant_block_element":{"message":"Estä elementti"},"assistant_block_element_explain":{"message":"Luo elementin estämissääntö"},"assistant_slider_explain":{"message":"Säädä kehyksen kokoa siirtämällä liukusäädintä"},"assistant_extended_settings":{"message":"Lisäasetukset"},"assistant_apply_rule_to_all_sites":{"message":"Käytä kaikilla sivustoilla"},"assistant_block_by_reference":{"message":"Estä viitelinkillä"},"assistant_block_similar":{"message":"Estä samankaltaiset"},"assistant_another_element":{"message":"Valitse eri elementti"},"assistant_preview":{"message":"Esikatselu"},"assistant_block":{"message":"Estä"},"assistant_settings":{"message":"Apurin asetukset"},"assistant_preview_header":{"message":"Esikatselu estetty elementti"},"assistant_preview_header_info":{"message":"Tarkista, onko elementti lukittu oikein"},"assistant_preview_end":{"message":"Sulje esikatselu"},"wot_unknown_description":{"message":"$1 ei tarjoa sivustolle mainearviointia"},"wot_bad_description":{"message":"$1 arvioinnin mukaan sivustolla on erittäin huono maine"},"wot_poor_description":{"message":"$1 arvioinnin mukaan sivustolla on huono maine"},"wot_unsatisfactory_description":{"message":"$1 arvioinnin mukaan sivustolla on heikko maine"},"wot_good_description":{"message":"$1 arvioinnin mukaan sivustolla on hyvä maine"},"wot_excellent_description":{"message":"$1 arvioinnin mukaan sivustolla on erinomainen maine"},"settings_choose_size_and_position":{"message":"Säädä AdGuard Avustajan kokoa ja sijaintia"},"settings_icon_size":{"message":"Kuvakkeen koko:"},"settings_small":{"message":"Pieni"},"settings_big":{"message":"Suuri"},"settings_position":{"message":"Sijainti:"},"settings_left_top":{"message":"Ylhäällä vasemmalla"},"settings_right_top":{"message":"Ylhäällä oikealla"},"settings_left_bottom":{"message":"Alhaalla vasemmalla"},"settings_right_bottom":{"message":"Alhaalla oikealla"},"settings_cancel":{"message":"Peruuta"},"settings_save":{"message":"Tallenna muutokset"}}'); + +/***/ }, + +/***/ 3787 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Avustaja","description":"Voit muutta hiljattain käyttämiesi sovellusten ja verkkosivujen suodatusasetuksia kätevästi suoraan selaimesta."}}}'); + +/***/ }, + +/***/ 9335 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sites web","settings_position_save_all":"Tous les sites web","settings_position_save_this":"Ce site web","assistant_select_element_start":"Démarrer","assistant_select_element_text":"Choisissez un élément de la page à bloquer. Pour afficher l\'élément de nouveau, rafraîchissez la page.","menu_filtration_status":{"message":"Filtrages sur ce site"},"menu_do_not_filter_30_sec":{"message":"Ne pas filtrer pendant 30 secondes "},"menu_block_ad_on_site":{"message":"Blocage des annonces sur ce site "},"menu_report_abuse":{"message":"Signaler le site"},"menu_site_report":{"message":"Rapport de sécurité du site"},"menu_settings":{"message":"Réglages de l\'Assistant AdGuard"},"menu_wot_reputation_indicator":{"message":"Indice de réputation du site"},"menu_wot_reputation_confidence_level":{"message":"Niveau de confiance"},"assistant_select_element":{"message":"Bloquer un élément"},"assistant_select_element_ext":{"message":"Cliquez sur l\'élément à bloquer. AdGuard créera une règle utilisateur pour cet élément"},"assistant_select_element_cancel":{"message":"Annuler"},"assistant_block_element":{"message":"Bloquer un élément"},"assistant_block_element_explain":{"message":"Créer une règle de blocage d\'élément"},"assistant_slider_explain":{"message":"Déplacez le curseur pour ajuster la taille du cadre"},"assistant_extended_settings":{"message":"Paramétrages avancés "},"assistant_apply_rule_to_all_sites":{"message":"Appliquer la règle à tous les sites"},"assistant_block_by_reference":{"message":"Blocage par liens de reference"},"assistant_block_similar":{"message":"Blocage des objets similaires "},"assistant_another_element":{"message":"Sélectionner un élément différent"},"assistant_preview":{"message":"Previsualisation "},"assistant_block":{"message":"Blocage "},"assistant_settings":{"message":"Réglages de l\'Assistant AdGuard"},"assistant_preview_header":{"message":"Aperçu de l\'élément bloqué"},"assistant_preview_header_info":{"message":"Vérifiez si l\'élément est correctement bloqué"},"assistant_preview_end":{"message":"Sortir de la previsualisation "},"wot_unknown_description":{"message":"La définition de la réputation de ce site web n\'est pas définie par $1"},"wot_bad_description":{"message":"Ce site web a très mauvaise réputation selon $1"},"wot_poor_description":{"message":"Ce site web a mauvaise réputation selon $1"},"wot_unsatisfactory_description":{"message":"Ce site web a une reputation médiocre selon $1"},"wot_good_description":{"message":"Ce site a bonne réputation selon $1"},"wot_excellent_description":{"message":"Ce site a une réputation excellente selon $1"},"settings_choose_size_and_position":{"message":"Affiner la taille et la position de l\'assistant AdGuard "},"settings_icon_size":{"message":"Taille de l\'icone"},"settings_small":{"message":"Petite"},"settings_big":{"message":"Grande"},"settings_position":{"message":"Positionnement"},"settings_left_top":{"message":"En haut à gauche"},"settings_right_top":{"message":"En haut à droite"},"settings_left_bottom":{"message":"En bas à gauche"},"settings_right_bottom":{"message":"En bas à droite "},"settings_cancel":{"message":"Annuler"},"settings_save":{"message":"Sauvegarder les modifications "}}'); + +/***/ }, + +/***/ 4818 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Assistant AdGuard ","description":"Fournit un moyen simple et pratique de gérer le filtrage directement depuis le navigateur"}}}'); + +/***/ }, + +/***/ 4314 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"אתרים","settings_position_save_all":"כל האתרים","settings_position_save_this":"האתר הזה","assistant_select_element_start":"התחל","assistant_select_element_text":".בחר אלמנט בדף לחסימה .רענן את הדף כדי לבטל את מצב חסימת האלמנטים","menu_filtration_status":{"message":"סינון באתר זה"},"menu_do_not_filter_30_sec":{"message":"אל תסנן למשך 30 שניות"},"menu_block_ad_on_site":{"message":"חסום פרסומת באתר זה"},"menu_report_abuse":{"message":"דווח על האתר"},"menu_site_report":{"message":"דוח אבטחת אתר"},"menu_settings":{"message":"הגדרות המסייע"},"menu_wot_reputation_indicator":{"message":"מד של מוניטין אתרים"},"menu_wot_reputation_confidence_level":{"message":"רמת אמון מוניטין"},"assistant_select_element":{"message":"חסום אלמנט"},"assistant_select_element_ext":{"message":"לחץ על רכיב שברצונך לחסום. AdGuard ייצור עבורו כלל משתמש."},"assistant_select_element_cancel":{"message":"בטל"},"assistant_block_element":{"message":"חסום אלמנט"},"assistant_block_element_explain":{"message":"צור כלל לחסימת אלמנט"},"assistant_slider_explain":{"message":"הזז את המחוון כדי להתאים את גודל המסגרת"},"assistant_extended_settings":{"message":"הגדרות מתקדמות"},"assistant_apply_rule_to_all_sites":{"message":"החל את הכלל בכל האתרים"},"assistant_block_by_reference":{"message":"חסום לפי קישור הפניה"},"assistant_block_similar":{"message":"חסום דומה"},"assistant_another_element":{"message":"בחר אלמנט אחר"},"assistant_preview":{"message":"הצג מראש"},"assistant_block":{"message":"חסום"},"assistant_settings":{"message":"הגדרות המסייע"},"assistant_preview_header":{"message":"תצוגה מקדימה של אלמנט חסום"},"assistant_preview_header_info":{"message":"בדוק אם האלמנט חסום כראוי"},"assistant_preview_end":{"message":"צא מתצוגה מקדימה"},"wot_unknown_description":{"message":"המוניטין של אתר זה אינו מוגדר על ידי $1"},"wot_bad_description":{"message":"לאתר זה יש מוניטין רע מאוד\\nעל פי $1"},"wot_poor_description":{"message":"לאתר זה יש מוניטין רע \\nעל פי $1"},"wot_unsatisfactory_description":{"message":"לאתר זה יש מוניטין ירוד\\nעל פי $1"},"wot_good_description":{"message":"לאתר זה יש מוניטין טוב\\nעל פי $1"},"wot_excellent_description":{"message":"לאתר זה יש מוניטין מצויין\\nעל פי $1"},"settings_choose_size_and_position":{"message":"התאם גודל ומיקום של מסייע AdGuard"},"settings_icon_size":{"message":"גודל איקון:"},"settings_small":{"message":"קטן"},"settings_big":{"message":"גדול"},"settings_position":{"message":"מיקום:"},"settings_left_top":{"message":"בחלק העליון משמאל"},"settings_right_top":{"message":"בחלק העליון מימין"},"settings_left_bottom":{"message":"צד שמאל למטה"},"settings_right_bottom":{"message":"צד ימין למטה"},"settings_cancel":{"message":"בטל"},"settings_save":{"message":"שמור שינויים"}}'); + +/***/ }, + +/***/ 7241 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"העוזר האישי של אדגארד","description":"מספק דרך קלה ונוחה לנהל סינון תקין ישירות מהדפדפן"}}}'); + +/***/ }, + +/***/ 8158 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"assistant_select_element_cancel":{"message":"रद्द करें"},"assistant_extended_settings":{"message":"उन्नत सेटिंग"},"assistant_block":{"message":"अवरुद्ध"},"settings_icon_size":{"message":"आइकन का आकार:"},"settings_small":{"message":"छोटा"},"settings_big":{"message":"बड़ा"},"settings_cancel":{"message":"रद्द करें"}}'); + +/***/ }, + +/***/ 6837 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard सहायक","description":""}}}'); + +/***/ }, + +/***/ 1733 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Web stranice","settings_position_save_all":"Sve web stranice","settings_position_save_this":"Ova web stranica","assistant_select_element_start":"Započni","assistant_select_element_text":"Odaberite element na stranici za blokiranje. Osvježite stranicu za izlazak iz načina blokade elemenata.","menu_filtration_status":{"message":"Filtriranje na ovoj web stranici"},"menu_do_not_filter_30_sec":{"message":"Ne filtriraj idućih 30 sekundi"},"menu_block_ad_on_site":{"message":"Blokiraj oglas na ovoj web stranici"},"menu_report_abuse":{"message":"Prijavi ovu stranicu"},"menu_site_report":{"message":"Sigurnosni izvještaj stranice"},"menu_settings":{"message":"Postavke pomoćnika"},"menu_wot_reputation_indicator":{"message":"Indikator reputacije stranice"},"menu_wot_reputation_confidence_level":{"message":"Razina povjerenja reputacije"},"assistant_select_element":{"message":"Blokiraj element"},"assistant_select_element_ext":{"message":"Kliknite element koji želite blokirati. AdGuard će za to stvoriti korisničko pravilo"},"assistant_select_element_cancel":{"message":"Poništi"},"assistant_block_element":{"message":"Blokiraj element"},"assistant_block_element_explain":{"message":"Izradite pravilo za blokiranje elemenata"},"assistant_slider_explain":{"message":"Pomaknite klizač za podešavanje veličine okvira"},"assistant_extended_settings":{"message":"Napredne postavke"},"assistant_apply_rule_to_all_sites":{"message":"Primjeni pravilo na sve web stranice"},"assistant_block_by_reference":{"message":"Blokiraj referentnom vezom"},"assistant_block_similar":{"message":"Blokiraj slične"},"assistant_another_element":{"message":"Odaberite drugi element"},"assistant_preview":{"message":"Pregled"},"assistant_block":{"message":"Blokiraj"},"assistant_settings":{"message":"Postavke pomoćnika"},"assistant_preview_header":{"message":"Pregled blokiranog elementa"},"assistant_preview_header_info":{"message":"Provjerite je li element ispravno blokiran"},"assistant_preview_end":{"message":"Izlaz iz pregleda"},"wot_unknown_description":{"message":"Reputaciju stranice nije odredio $1"},"wot_bad_description":{"message":"Web stranica ima jako lošu reputaciju \\nprema $1"},"wot_poor_description":{"message":"Web stranica ima lošu reputaciju \\nprema $1"},"wot_unsatisfactory_description":{"message":"Web stranica ima lošu reputaciju \\nprema $1"},"wot_good_description":{"message":"Web stranica ima dobru reputaciju \\nprema $1"},"wot_excellent_description":{"message":"Web stranica ima odličnu reputaciju \\nprema $1"},"settings_choose_size_and_position":{"message":"Podesite veličinu i poziciju AdGuard Pomoćnika"},"settings_icon_size":{"message":"Veličina ikone:"},"settings_small":{"message":"Malo"},"settings_big":{"message":"Veliko"},"settings_position":{"message":"Pozicija:"},"settings_left_top":{"message":"Gore lijevo"},"settings_right_top":{"message":"Gore desno"},"settings_left_bottom":{"message":"Dolje lijevo"},"settings_right_bottom":{"message":"Dolje desno"},"settings_cancel":{"message":"Poništi"},"settings_save":{"message":"Spremi promjene"}}'); + +/***/ }, + +/***/ 1912 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Pomoćnik","description":"Pruža jednostavan i praktičan način upravljanja filtriranjem izravno iz preglednika"}}}'); + +/***/ }, + +/***/ 4890 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Weboldalak","settings_position_save_all":"Minden weboldal","settings_position_save_this":"Ez a weboldal","assistant_select_element_start":"Indítás","assistant_select_element_text":"Válassza ki az elemet az oldalon, amit blokkolni szeretne. Frissítse az oldalt, hogy kilépjen az elemblokkoló módból.","menu_filtration_status":{"message":"Szűrés ezen a weboldalon"},"menu_do_not_filter_30_sec":{"message":"Szüneteltetés 30 másodpercig"},"menu_block_ad_on_site":{"message":"Hirdetés blokkolása ezen a weboldalon"},"menu_report_abuse":{"message":"Weboldal jelentése"},"menu_site_report":{"message":"Weboldal biztonsági jelentése"},"menu_settings":{"message":"Asszisztens beállításai"},"menu_wot_reputation_indicator":{"message":"A webhely hírnevének mutatója"},"menu_wot_reputation_confidence_level":{"message":"A hírnév bizalmi szintje"},"assistant_select_element":{"message":"Elem blokkolása"},"assistant_select_element_ext":{"message":"Kattintson a blokkolni kívánt elemre. Az AdGuard létrehoz egy felhasználói szabályt"},"assistant_select_element_cancel":{"message":"Mégse"},"assistant_block_element":{"message":"Elem blokkolása"},"assistant_block_element_explain":{"message":"Elemblokkoló szabály létrehozása"},"assistant_slider_explain":{"message":"Mozgassa a csúszkát a keret méretének beállításához"},"assistant_extended_settings":{"message":"Haladó beállítások"},"assistant_apply_rule_to_all_sites":{"message":"Szabály alkalmazása az összes weboldalra"},"assistant_block_by_reference":{"message":"Blokkolás link alapján"},"assistant_block_similar":{"message":"Hasonlók blokkolása"},"assistant_another_element":{"message":"Másik elem választása"},"assistant_preview":{"message":"Előnézet"},"assistant_block":{"message":"Blokkolás"},"assistant_settings":{"message":"Asszisztens beállításai"},"assistant_preview_header":{"message":"Blokkolt elem előnézete"},"assistant_preview_header_info":{"message":"Ellenőrizze, hogy az elem helyesen lett-e letiltva"},"assistant_preview_end":{"message":"Kilépés az előnézetből"},"wot_unknown_description":{"message":"Ez a weboldal nincs nyilvántartva a $1 alapján"},"wot_bad_description":{"message":"Ennek a weboldalnak nagyon rossz a megítélése a $1 alapján"},"wot_poor_description":{"message":"Ennek a weboldalnak rossz a megítélése a $1 alapján"},"wot_unsatisfactory_description":{"message":"Ennek a weboldalnak gyenge a megítélése a $1 alapján"},"wot_good_description":{"message":"Ennek a weboldalnak jó a megítélése a $1 alapján"},"wot_excellent_description":{"message":"Ennek a weboldalnak kitűnő a megítélése a $1 alapján"},"settings_choose_size_and_position":{"message":"Állítsa be az AdGuard Assistant méretét és pozícióját"},"settings_icon_size":{"message":"Ikon mérete:"},"settings_small":{"message":"Kicsi"},"settings_big":{"message":"Nagy"},"settings_position":{"message":"Pozíció:"},"settings_left_top":{"message":"Bal felül"},"settings_right_top":{"message":"Jobb felül"},"settings_left_bottom":{"message":"Bal alul"},"settings_right_bottom":{"message":"Jobb alul"},"settings_cancel":{"message":"Mégse"},"settings_save":{"message":"Változások mentése"}}'); + +/***/ }, + +/***/ 9097 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Asszisztens","description":"Könnyű és kényelmes módot kínál a szűrés kezelésére közvetlenül a böngészőből"}}}'); + +/***/ }, + +/***/ 940 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Situs web","settings_position_save_all":"Semua situs web","settings_position_save_this":"Situs web ini","assistant_select_element_start":"Mulai","assistant_select_element_text":"Pilih elemen di halaman untuk diblokir. Segarkan halaman untuk membatalkan mode pemblokiran elemen.","menu_filtration_status":{"message":"Penyaringan di situs ini"},"menu_do_not_filter_30_sec":{"message":"Nonaktifkan penyaring untuk 30 detik"},"menu_block_ad_on_site":{"message":"Blokir iklan di situs ini"},"menu_report_abuse":{"message":"Laporkan situs"},"menu_site_report":{"message":"Laporan keamanan situs"},"menu_settings":{"message":"Pengaturan Asisten"},"menu_wot_reputation_indicator":{"message":"Indikator reputasi situs"},"menu_wot_reputation_confidence_level":{"message":"Tingkat Keyakinan Reputasi"},"assistant_select_element":{"message":"Blokir elemen"},"assistant_select_element_ext":{"message":"Klik elemen yang ingin Anda blokir. AdGuard akan membuat aturan pengguna untuk itu"},"assistant_select_element_cancel":{"message":"Batalkan"},"assistant_block_element":{"message":"Blokir elemen"},"assistant_block_element_explain":{"message":"Buat aturan pemblokiran elemen"},"assistant_slider_explain":{"message":"Pindahkan penggeser untuk menyesuaikan ukuran bingkai"},"assistant_extended_settings":{"message":"Pengaturan lanjutan"},"assistant_apply_rule_to_all_sites":{"message":"Aktifkan aturan untuk seluruh situs"},"assistant_block_by_reference":{"message":"Blok berdasarkan referensi situs"},"assistant_block_similar":{"message":"Blok semacamnya"},"assistant_another_element":{"message":"Pilih elemen lainnya"},"assistant_preview":{"message":"Pratinjau"},"assistant_block":{"message":"Blokir"},"assistant_settings":{"message":"Pengaturan Asisten"},"assistant_preview_header":{"message":"Pratinjau elemen yang diblokir"},"assistant_preview_header_info":{"message":"Periksa apakah elemen diblokir dengan benar"},"assistant_preview_end":{"message":"Keluar pratinjau"},"wot_unknown_description":{"message":"Reputasi tidak terdefinisi"},"wot_bad_description":{"message":"Situs ini mempunyai reputasi sangat buruk\\nberdasarkan $1"},"wot_poor_description":{"message":"Situs ini mempunyai reputasi buruk\\nberdasarkan $1"},"wot_unsatisfactory_description":{"message":"Situs ini mempunyai reputasi biasa \\nberdasarkan $1"},"wot_good_description":{"message":"Situs ini mempunyai reputasi baik \\nberdasarkan $1"},"wot_excellent_description":{"message":"Situs ini mempunyai reputasi sempurna \\nberdasarkan $1"},"settings_choose_size_and_position":{"message":"Atur ukuran dan posisi AdGuard Assistant"},"settings_icon_size":{"message":"Ukuran ikon:"},"settings_small":{"message":"Kecil"},"settings_big":{"message":"Besar"},"settings_position":{"message":"Posisi:"},"settings_left_top":{"message":"Atas kiri"},"settings_right_top":{"message":"Atas kanan"},"settings_left_bottom":{"message":"Bawah kiri"},"settings_right_bottom":{"message":"Bawah kanan"},"settings_cancel":{"message":"Batal"},"settings_save":{"message":"Simpan perubahan"}}'); + +/***/ }, + +/***/ 9083 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Asisten AdGuard","description":"Menyediakan cara mudah dan nyaman untuk mengelola penyaringan langsung dari peramban"}}}'); + +/***/ }, + +/***/ 5468 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Siti","settings_position_save_all":"Tutti i siti","settings_position_save_this":"Questo sito web","assistant_select_element_start":"Inizio","assistant_select_element_text":"Seleziona un elemento nella pagina per bloccarlo. Ricarica la pagina per annullare la modalità di blocco di un elemento.","menu_filtration_status":{"message":"Filtraggio su questo sito web"},"menu_do_not_filter_30_sec":{"message":"Non filtrare per 30 secondi"},"menu_block_ad_on_site":{"message":"Blocca annunci su questo sito web"},"menu_report_abuse":{"message":"Segnala il sito"},"menu_site_report":{"message":"Rapporto di sicurezza del sito"},"menu_settings":{"message":"Impostazioni di Assistant"},"menu_wot_reputation_indicator":{"message":"Indicatore reputazione sito"},"menu_wot_reputation_confidence_level":{"message":"Livello della reputazione"},"assistant_select_element":{"message":"Blocca un elemento"},"assistant_select_element_ext":{"message":"Clicca un elemento che vuoi bloccare. AdGuard creerà per esso una regola utente"},"assistant_select_element_cancel":{"message":"Annulla"},"assistant_block_element":{"message":"Blocca un elemento"},"assistant_block_element_explain":{"message":"Crea una regola di bloccaggio elementi"},"assistant_slider_explain":{"message":"Sposta il cursore per regolare la dimensione della cornice"},"assistant_extended_settings":{"message":"Impostazioni avanzate"},"assistant_apply_rule_to_all_sites":{"message":"Applica la regola a tutti i siti"},"assistant_block_by_reference":{"message":"Blocco mediante indirizzo di riferimento"},"assistant_block_similar":{"message":"Blocca simile"},"assistant_another_element":{"message":"Seleziona un altro elemento"},"assistant_preview":{"message":"Anteprima"},"assistant_block":{"message":"Blocca"},"assistant_settings":{"message":"Impostazioni di Assistant"},"assistant_preview_header":{"message":"Anteprima elemento bloccato"},"assistant_preview_header_info":{"message":"Controlla se l\'elemento è bloccato correttamente"},"assistant_preview_end":{"message":"Esci dall\'anteprima"},"wot_unknown_description":{"message":"La reputazione di questo sito web non è definita da $1"},"wot_bad_description":{"message":"Questo sito web ha una pessima reputazione\\nsecondo $1"},"wot_poor_description":{"message":"Questo sito web ha una brutta reputazione\\nsecondo $1"},"wot_unsatisfactory_description":{"message":"Questo sito web ha una mediocre reputazione\\nsecondo $1"},"wot_good_description":{"message":"Questo sito web ha una buona reputazione\\nsecondo $1"},"wot_excellent_description":{"message":"Questo sito web ha una eccellente reputazione\\nsecondo $1"},"settings_choose_size_and_position":{"message":"Regola dimensione e posizione di AdGuard Assistant"},"settings_icon_size":{"message":"Grandezza dell\'icona:"},"settings_small":{"message":"Piccola"},"settings_big":{"message":"Grande"},"settings_position":{"message":"Posizione:"},"settings_left_top":{"message":"In alto a sinistra"},"settings_right_top":{"message":"In alto a destra"},"settings_left_bottom":{"message":"In basso a sinistra"},"settings_right_bottom":{"message":"In basso a destra"},"settings_cancel":{"message":"Annulla"},"settings_save":{"message":"Salva cambiamenti"}}'); + +/***/ }, + +/***/ 7579 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Assistant","description":"Fornisce un modo facile e comodo per gestire il filtraggio direttamente dal browser"}}}'); + +/***/ }, + +/***/ 1080 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"ウェブサイト","settings_position_save_all":"すべてのウェブサイト","settings_position_save_this":"このウェブサイト","assistant_select_element_start":"開始","assistant_select_element_text":"ブロックするページ上の要素を選択してください。 ページを更新し要素のブロックモードを解除します。","menu_filtration_status":{"message":"このウェブサイトをフィルタリング"},"menu_do_not_filter_30_sec":{"message":"30秒間フィルタリングしない"},"menu_block_ad_on_site":{"message":"このサイトで広告を手動ブロックする"},"menu_report_abuse":{"message":"このサイトの問題を報告する"},"menu_site_report":{"message":"ウェブサイトのセキュリティレポート"},"menu_settings":{"message":"アシスタントの設定"},"menu_wot_reputation_indicator":{"message":"ウェブサイトの評価基準"},"menu_wot_reputation_confidence_level":{"message":"評判の信頼度(Reputation Confidence Level)"},"assistant_select_element":{"message":"手動で要素をブロック"},"assistant_select_element_ext":{"message":"ブロックしたい要素をクリックしてください。AdGuardがその要素に対してユーザールールを作成します。"},"assistant_select_element_cancel":{"message":"キャンセル"},"assistant_block_element":{"message":"手動で要素をブロック"},"assistant_block_element_explain":{"message":"要素のブロックルールを作成します。"},"assistant_slider_explain":{"message":"スライダーを移動してフレームのサイズを調整してください:"},"assistant_extended_settings":{"message":"高度な設定"},"assistant_apply_rule_to_all_sites":{"message":"全てのウェブサイトにこのルールを適用"},"assistant_block_by_reference":{"message":"参照リンクによるブロック"},"assistant_block_similar":{"message":"類似項目をブロック"},"assistant_another_element":{"message":"他の要素を選択"},"assistant_preview":{"message":"プレビュー"},"assistant_block":{"message":"ブロック"},"assistant_settings":{"message":"アシスタントの設定"},"assistant_preview_header":{"message":"要素ブロック後の画面プレビューを確認する"},"assistant_preview_header_info":{"message":"画面プレビューで要素が思い通りにブロックされているかを確認してください。"},"assistant_preview_end":{"message":"プレビューを終了"},"wot_unknown_description":{"message":"評判が定義されていません"},"wot_bad_description":{"message":"このウェブサイトは非常に評判が悪いです: "},"wot_poor_description":{"message":"このウェブサイトは評判が悪いです: "},"wot_unsatisfactory_description":{"message":"このウェブサイトは評判がやや悪いです: "},"wot_good_description":{"message":"このウェブサイトは評判が良いです: "},"wot_excellent_description":{"message":"このウェブサイトはとても評判が良いです: "},"settings_choose_size_and_position":{"message":"AdGuardアシスタントのサイズと位置を調整する"},"settings_icon_size":{"message":"アイコンの大きさ:"},"settings_small":{"message":"小"},"settings_big":{"message":"大"},"settings_position":{"message":"位置:"},"settings_left_top":{"message":"左上"},"settings_right_top":{"message":"右上"},"settings_left_bottom":{"message":"左下"},"settings_right_bottom":{"message":"右下"},"settings_cancel":{"message":"キャンセル"},"settings_save":{"message":"設定を保存"}}'); + +/***/ }, + +/***/ 9727 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuardアシスタント","description":"ブラウザから簡単にフィルタリングを管理する便利な機能を提供します。"}}}'); + +/***/ }, + +/***/ 1973 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"웹사이트","settings_position_save_all":"모든 웹사이트","settings_position_save_this":"이 웹사이트","assistant_select_element_start":"시작","assistant_select_element_text":"페이지에서 차단할 요소를 선택하세요. 요소 차단 모드를 취소하려면 페이지를 새로 고침하세요.","menu_filtration_status":{"message":"이 웹사이트에서의 보호"},"menu_do_not_filter_30_sec":{"message":"30초 동안 차단 일시정지"},"menu_block_ad_on_site":{"message":"이 웹사이트에서 광고 차단"},"menu_report_abuse":{"message":"이 웹사이트에 관한 불만 사항 제출"},"menu_site_report":{"message":"웹사이트 보안 보고"},"menu_settings":{"message":"어시스턴트 설정"},"menu_wot_reputation_indicator":{"message":"웹사이트 평판 표시기"},"menu_wot_reputation_confidence_level":{"message":"평판 신뢰 수준"},"assistant_select_element":{"message":"요소 차단"},"assistant_select_element_ext":{"message":"차단하려는 요소를 클릭합니다. AdGuard가 해당 요소에 대한 사용자 규칙을 생성합니다."},"assistant_select_element_cancel":{"message":"선택 모드 취소"},"assistant_block_element":{"message":"요소 차단"},"assistant_block_element_explain":{"message":"요소 차단 규칙을 생성하세요."},"assistant_slider_explain":{"message":"슬라이더를 움직여 프레임 크기를 조정합니다."},"assistant_extended_settings":{"message":"고급 설정"},"assistant_apply_rule_to_all_sites":{"message":"모든 웹사이트에 이 규칙 적용"},"assistant_block_by_reference":{"message":"참조 링크가 차단"},"assistant_block_similar":{"message":"유사한 요소 차단"},"assistant_another_element":{"message":"다른 요소 선택"},"assistant_preview":{"message":"미리 보기"},"assistant_block":{"message":"차단"},"assistant_settings":{"message":"어시스턴트 설정"},"assistant_preview_header":{"message":"차단된 요소 미리보기"},"assistant_preview_header_info":{"message":"요소가 올바르게 차단되었는지 확인하세요."},"assistant_preview_end":{"message":"미리 보기 종료"},"wot_unknown_description":{"message":"평판이 등록되지 않았습니다."},"wot_bad_description":{"message":"이 웹사이트는 아주 나쁜 평판을 갖고 있습니다.\\n제공 "},"wot_poor_description":{"message":"이 웹사이트는 나쁜 평판을 갖고 있습니다.\\n제공 "},"wot_unsatisfactory_description":{"message":"이 웹사이트는 좋지 않은 평판을 갖고 있습니다.\\n제공 "},"wot_good_description":{"message":"이 웹사이트는 좋은 평판을 갖고 있습니다.\\n제공 "},"wot_excellent_description":{"message":"이 웹사이트는 아주 좋은 평판을 갖고 있습니다.\\n제공 "},"settings_choose_size_and_position":{"message":"AdGuard 어시스턴트 크기와 위치를 조정합니다"},"settings_icon_size":{"message":"아이콘 크기:"},"settings_small":{"message":"작게"},"settings_big":{"message":"크게"},"settings_position":{"message":"위치:"},"settings_left_top":{"message":"왼쪽 위"},"settings_right_top":{"message":"오른쪽 위"},"settings_left_bottom":{"message":"왼쪽 아래"},"settings_right_bottom":{"message":"오른쪽 아래"},"settings_cancel":{"message":"취소"},"settings_save":{"message":"저장"}}'); + +/***/ }, + +/***/ 8008 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard 어시스턴트","description":"브라우저에서 바로 필터링 관리를 쉽고 간편하게 할 수 있도록 도와줍니다."}}}'); + +/***/ }, + +/***/ 1295 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Interneto svetainės","settings_position_save_all":"Visos svetainės","settings_position_save_this":"Ši svetainė","assistant_select_element_start":"Pradėti","assistant_select_element_text":"Pasirinkite elementą puslapyje, kurį norite blokuoti. Atnaujinkite puslapį, kad atšauktumėte elementų blokavimo režimą.","menu_filtration_status":{"message":"Filtravimas šioje svetainėje"},"menu_do_not_filter_30_sec":{"message":"Nefiltruoti 30 sekundžių"},"menu_block_ad_on_site":{"message":"Blokuoti reklamą šioje svetainėje"},"menu_report_abuse":{"message":"Pranešti apie svetainę"},"menu_site_report":{"message":"Svetainės saugumo ataskaita"},"menu_settings":{"message":"Asistento nustatymai"},"menu_wot_reputation_indicator":{"message":"Svetainės reputacijos rodiklis"},"menu_wot_reputation_confidence_level":{"message":"Reputacijos pasitikėjimo lygis"},"assistant_select_element":{"message":"Blokuoti elementą"},"assistant_select_element_ext":{"message":"Spustelėkite elementą, kurį norite užblokuoti. \\"AdGuard\\" sukurs vartotojo taisyklę"},"assistant_select_element_cancel":{"message":"Atšaukti"},"assistant_block_element":{"message":"Blokuoti elementą"},"assistant_block_element_explain":{"message":"Sukurti elemento blokavimo taisyklę"},"assistant_slider_explain":{"message":"Perkelkite slankiklį, kad pakoreguotumėte rėmelio dydį"},"assistant_extended_settings":{"message":"Išplėstiniai nustatymai"},"assistant_apply_rule_to_all_sites":{"message":"Pritaikyti taisyklę visoms svetainėms"},"assistant_block_by_reference":{"message":"Blokuoti pagal nuorodą"},"assistant_block_similar":{"message":"Blokuoti panašius"},"assistant_another_element":{"message":"Pasirinkti kitą elementą"},"assistant_preview":{"message":"Peržiūra"},"assistant_block":{"message":"Užblokuoti"},"assistant_settings":{"message":"Asistento nustatymai"},"assistant_preview_header":{"message":"Peržiūrėti užblokuotą elementą"},"assistant_preview_header_info":{"message":"Patikrinkite, ar elementas tinkamai užblokuotas"},"assistant_preview_end":{"message":"Baigti peržiūrą"},"wot_unknown_description":{"message":"Šios svetainės reputacija nėra apibrėžta $1"},"wot_bad_description":{"message":"Ši svetainė turi labai blogą reputaciją\\npagal $1"},"wot_poor_description":{"message":"Ši svetainė turi blogą reputaciją pagal $1"},"wot_unsatisfactory_description":{"message":"Ši svetainė turi prastą reputaciją pagal $1"},"wot_good_description":{"message":"Ši svetainė turi gerą reputaciją pagal $1"},"wot_excellent_description":{"message":"Ši svetainė turi puikią reputaciją pagal $1"},"settings_choose_size_and_position":{"message":"Nustatykite AdGuard Asistento dydį ir padėtį"},"settings_icon_size":{"message":"Piktogramos dydis:"},"settings_small":{"message":"Maža"},"settings_big":{"message":"Didelė"},"settings_position":{"message":"Padėtis:"},"settings_left_top":{"message":"Viršuje kairėje"},"settings_right_top":{"message":"Viršuje dešinėje"},"settings_left_bottom":{"message":"Apačioje kairėje"},"settings_right_bottom":{"message":"Apačioje dešinėje"},"settings_cancel":{"message":"Atšaukti"},"settings_save":{"message":"Išsaugoti pakeitimus"}}'); + +/***/ }, + +/***/ 3994 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Asistentas","description":"Suteikia lengvą ir patogų būdą valdyti filtravimą iš naršyklės"}}}'); + +/***/ }, + +/***/ 8463 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Веб-страници","settings_position_save_all":"Сите веб-локации","settings_position_save_this":"Оваа веб-локација","assistant_select_element_start":"Започнете","assistant_select_element_text":"Изберете елемент на страницата за блокирање. Освежете ја страницата за да го откажете режимот за блокирање елементи.","menu_filtration_status":{"message":"Филтрирање на оваа веб-локација"},"menu_do_not_filter_30_sec":{"message":"Не филтрирајте 30 секунди"},"menu_block_ad_on_site":{"message":"Блокирајте ја рекламата на оваа веб-локација"},"menu_report_abuse":{"message":"Пријавете ја веб-страницата"},"menu_site_report":{"message":"Извештај за безбедност на веб-страницата"},"menu_settings":{"message":"Поставки за Помошникот"},"menu_wot_reputation_indicator":{"message":"Индикатор за репутација на локацијата"},"menu_wot_reputation_confidence_level":{"message":"Ниво на доверба на репутацијата"},"assistant_select_element":{"message":"Блокирање на елемент"},"assistant_select_element_ext":{"message":"Кликнете на елемент што сакате да го блокирате. AdGuard ќе создаде корисничко правило"},"assistant_select_element_cancel":{"message":"Откажи"},"assistant_block_element":{"message":"Блокирање на елемент"},"assistant_block_element_explain":{"message":"Креирајте правило за блокирање на елемент"},"assistant_slider_explain":{"message":"Преместете го лизгачот за да ја прилагодите големината на рамката"},"assistant_extended_settings":{"message":"Напредни поставки"},"assistant_apply_rule_to_all_sites":{"message":"Применете го правилото на сите веб-локации"},"assistant_block_by_reference":{"message":"Блокирај по референтен линк"},"assistant_block_similar":{"message":"Блокирајте слични работи"},"assistant_another_element":{"message":"Изберете друг елемент"},"assistant_preview":{"message":"Преглед"},"assistant_block":{"message":"Блокирај"},"assistant_settings":{"message":"Поставки за Помошникот"},"assistant_preview_header":{"message":"Преглед на блокиран елемент"},"assistant_preview_header_info":{"message":"Провери дали елементот е правилно блокиран"},"assistant_preview_end":{"message":"Излезете од прегледот"},"wot_unknown_description":{"message":"Репутацијата на оваа веб-локација не е дефинирана со $1"},"wot_bad_description":{"message":"Оваа веб-локација има многу лоша репутација\\nспоред $1"},"wot_poor_description":{"message":"Оваа веб-локација има лоша репутација \\nспоред $1"},"wot_unsatisfactory_description":{"message":"Оваа веб-локација има лоша репутација\\nспоред $1"},"wot_good_description":{"message":"Оваа веб-локација има добра репутација\\nспоред $1"},"wot_excellent_description":{"message":"Оваа веб-локација има одлична репутација\\nспоред $1"},"settings_choose_size_and_position":{"message":"Прилагодете ја големината и положбата на „Помошник на AdGuard“"},"settings_icon_size":{"message":"Големина на иконата:"},"settings_small":{"message":"Мала"},"settings_big":{"message":"Голема"},"settings_position":{"message":"Поставеност:"},"settings_left_top":{"message":"Горе лево"},"settings_right_top":{"message":"Горе десно"},"settings_left_bottom":{"message":"Долу лево"},"settings_right_bottom":{"message":"Долу десно"},"settings_cancel":{"message":"Откажи"},"settings_save":{"message":"Зачувајте ги промените"}}'); + +/***/ }, + +/***/ 234 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Помошник на AdGuard","description":"Обезбедува лесен и удобен начин за управување со филтрирањето директно од прелистувачот"}}}'); + +/***/ }, + +/***/ 9841 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Websites","settings_position_save_all":"Alle websites","settings_position_save_this":"Deze website","assistant_select_element_start":"Starten","assistant_select_element_text":"Kies een element op deze webpagina om te blokkeren. Herlaad de pagina om het blokkeren van het element te stoppen.","menu_filtration_status":{"message":"Filteren op deze website"},"menu_do_not_filter_30_sec":{"message":"Niet filtreren voor 30 seconden"},"menu_block_ad_on_site":{"message":"Blokkeer ad op deze website"},"menu_report_abuse":{"message":"Rapporteer de website"},"menu_site_report":{"message":"Beveiligingsrapport van website"},"menu_settings":{"message":"Instelling van de assistent"},"menu_wot_reputation_indicator":{"message":"Website reputatie indicator"},"menu_wot_reputation_confidence_level":{"message":"Vertrouwensniveau reputatie"},"assistant_select_element":{"message":"Element blokkeren"},"assistant_select_element_ext":{"message":"Klik op een element dat je wilt blokkeren. AdGuard zal er een gebruikersregel voor aanmaken"},"assistant_select_element_cancel":{"message":"Annuleren"},"assistant_block_element":{"message":"Element blokkeren"},"assistant_block_element_explain":{"message":"Een elementblokkerende regel aanmaken"},"assistant_slider_explain":{"message":"Verplaats de schuifregelaar om de grootte van het kader aan te passen"},"assistant_extended_settings":{"message":"Geavanceerde instellingen"},"assistant_apply_rule_to_all_sites":{"message":"Regel toepassen op alle websites"},"assistant_block_by_reference":{"message":"Blokkeren via referentielink"},"assistant_block_similar":{"message":"Blokkeer vergelijkbare"},"assistant_another_element":{"message":"Een ander element selecteren"},"assistant_preview":{"message":"Voorbeeldweergave"},"assistant_block":{"message":"Blokkeren"},"assistant_settings":{"message":"Assistent instellingen"},"assistant_preview_header":{"message":"Voorbeeld geblokkeerd element"},"assistant_preview_header_info":{"message":"Controleer of het element correct is geblokkeerd"},"assistant_preview_end":{"message":"Voorbeeldweergave afsluiten"},"wot_unknown_description":{"message":"De reputatie van deze website wordt niet bepaald door $1"},"wot_bad_description":{"message":"Deze website heeft een zeer slechte reputatie\\nvolgens $1"},"wot_poor_description":{"message":"Deze website heeft een slechte reputatie\\nvolgens $ 1"},"wot_unsatisfactory_description":{"message":"Deze website heeft een slechte reputatie volgens $1"},"wot_good_description":{"message":"Deze website heeft een goede reputatie volgens $1"},"wot_excellent_description":{"message":"Deze website heeft een uitstekende reputatie volgens $1"},"settings_choose_size_and_position":{"message":"Grootte en positie van AdGuard Assistent aanpassen"},"settings_icon_size":{"message":"Grootte pictogram:"},"settings_small":{"message":"Klein"},"settings_big":{"message":"Groot"},"settings_position":{"message":"Positie:"},"settings_left_top":{"message":"Linksboven"},"settings_right_top":{"message":"Rechtsboven"},"settings_left_bottom":{"message":"Linksonder"},"settings_right_bottom":{"message":"Rechtsonder"},"settings_cancel":{"message":"Annuleren"},"settings_save":{"message":"Wijzigingen opslaan"}}'); + +/***/ }, + +/***/ 796 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Assistent","description":"Biedt een gemakkelijke en handige manier om filters rechtstreeks vanuit de browser te beheren"}}}'); + +/***/ }, + +/***/ 370 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Nettsider","settings_position_save_all":"Alle nettsider","settings_position_save_this":"Denne nettsiden","assistant_select_element_start":"Start","assistant_select_element_text":"Velg et element på siden som skal blokkeres. Oppdater siden for å avbryte elementblokkeringsmodusen.","menu_filtration_status":{"message":"Filtrering på denne nettsiden"},"menu_do_not_filter_30_sec":{"message":"Ikke filtrer i 30 sekunder"},"menu_block_ad_on_site":{"message":"Blokker annonse på denne nettsiden"},"menu_report_abuse":{"message":"Rapporter denne nettsiden"},"menu_site_report":{"message":"Nettsidens sikkerhetsrapport"},"menu_settings":{"message":"Assistentinnstillinger"},"menu_wot_reputation_indicator":{"message":"Nettsteds-rykteindikator"},"menu_wot_reputation_confidence_level":{"message":"Ryktepålitelighetsnivå"},"assistant_select_element":{"message":"Blokker et element"},"assistant_select_element_ext":{"message":"Klikk på et element du vil blokkere. AdGuard vil lage en brukerregel for den"},"assistant_select_element_cancel":{"message":"Avbryt"},"assistant_block_element":{"message":"Blokker et element"},"assistant_block_element_explain":{"message":"Opprette en blokkeringsregel for elementer"},"assistant_slider_explain":{"message":"Flytt glidebryteren for å justere størrelsen på rammen"},"assistant_extended_settings":{"message":"Avanserte innstillinger"},"assistant_apply_rule_to_all_sites":{"message":"Bruk regelen for alle nettsider"},"assistant_block_by_reference":{"message":"Blokker med referanselenke"},"assistant_block_similar":{"message":"Blokker lignende"},"assistant_another_element":{"message":"Velg et annet element"},"assistant_preview":{"message":"Forhåndsvisning"},"assistant_block":{"message":"Blokker"},"assistant_settings":{"message":"Assistentinnstillinger"},"assistant_preview_header":{"message":"Forhåndsvis blokkert element"},"assistant_preview_header_info":{"message":"Sjekk om elementet er blokkert riktig"},"assistant_preview_end":{"message":"Avslutt forhåndsvisning"},"wot_unknown_description":{"message":"Rykte er ikke definert"},"wot_bad_description":{"message":"Denne nettsiden har et veldig dårlig rykte\\ni følge $1"},"wot_poor_description":{"message":"Denne nettsiden har et dårlig rykte\\ni følge $1"},"wot_unsatisfactory_description":{"message":"Denne nettsiden har et dårlig rykte\\ni følge $1"},"wot_good_description":{"message":"Denne nettsiden har et godt rykte\\ni følge $1"},"wot_excellent_description":{"message":"Denne nettsiden har et utmerket rykte\\ni følge $1"},"settings_choose_size_and_position":{"message":"Juster størrelsen og posisjonen til AdGuard-assistent"},"settings_icon_size":{"message":"Ikonstørrelse:"},"settings_small":{"message":"Liten"},"settings_big":{"message":"Stor"},"settings_position":{"message":"Posisjoner:"},"settings_left_top":{"message":"Øverst til venstre"},"settings_right_top":{"message":"Øverst til høyre"},"settings_left_bottom":{"message":"Nederst til venstre"},"settings_right_bottom":{"message":"Nederst til høyre"},"settings_cancel":{"message":"Avbryt"},"settings_save":{"message":"Lagre endringer"}}'); + +/***/ }, + +/***/ 7313 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard-assistent","description":"Tilbyr en enkel og praktisk måte å administrere filtrering rett fra nettleseren"}}}'); + +/***/ }, + +/***/ 4067 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Strony internetowe","settings_position_save_all":"Wszystkie strony internetowe","settings_position_save_this":"Ta strona internetowa","assistant_select_element_start":"Rozpocznij","assistant_select_element_text":"Wybierz element na stronie do zablokowania. Odśwież stronę, aby anulować tryb blokowania elementu.","menu_filtration_status":{"message":"Filtrowanie na tej stronie internetowej"},"menu_do_not_filter_30_sec":{"message":"Nie filtruj przez 30 sekund"},"menu_block_ad_on_site":{"message":"Zablokuj reklamę na tej stronie internetowej"},"menu_report_abuse":{"message":"Raportuj stronę internetową"},"menu_site_report":{"message":"Raport bezpieczeństwa strony internetowej"},"menu_settings":{"message":"Ustawienia Asystenta"},"menu_wot_reputation_indicator":{"message":"Wskaźnik reputacji witryny"},"menu_wot_reputation_confidence_level":{"message":"Poziom zaufania do reputacji"},"assistant_select_element":{"message":"Zablokuj element"},"assistant_select_element_ext":{"message":"Kliknij element, który chcesz zablokować. AdGuard utworzy dla niego regułę użytkownika"},"assistant_select_element_cancel":{"message":"Anuluj"},"assistant_block_element":{"message":"Zablokuj element"},"assistant_block_element_explain":{"message":"Utwórz regułę blokowania elementów"},"assistant_slider_explain":{"message":"Przesuń suwak, aby dostosować rozmiar ramki"},"assistant_extended_settings":{"message":"Ustawienia zaawansowane"},"assistant_apply_rule_to_all_sites":{"message":"Zastosuj regułę dla wszystkich stron internetowych"},"assistant_block_by_reference":{"message":"Blokuj używając linka referencyjnego"},"assistant_block_similar":{"message":"Blokuj podobne"},"assistant_another_element":{"message":"Wybierz inny element"},"assistant_preview":{"message":"Podgląd"},"assistant_block":{"message":"Blokuj"},"assistant_settings":{"message":"Ustawienia Asystenta"},"assistant_preview_header":{"message":"Podgląd zablokowanego elementu"},"assistant_preview_header_info":{"message":"Sprawdź, czy element jest poprawnie zablokowany"},"assistant_preview_end":{"message":"Zamknij podgląd"},"wot_unknown_description":{"message":"Reputacja nie jest zdefiniowana"},"wot_bad_description":{"message":"Ta strona internetowa ma bardzo złą reputację zgodnie z $1"},"wot_poor_description":{"message":"Ta strona internetowa ma złą reputację zgodnie z $1"},"wot_unsatisfactory_description":{"message":"Ta strona internetowa ma słabą reputację zgodnie z $1"},"wot_good_description":{"message":"Ta strona internetowa ma dobrą reputację zgodnie z $1"},"wot_excellent_description":{"message":"Ta strona internetowa ma doskonałą reputację zgodnie z $1"},"settings_choose_size_and_position":{"message":"Dostosuj rozmiar i pozycję Asystenta AdGuarda"},"settings_icon_size":{"message":"Rozmiar ikony:"},"settings_small":{"message":"Mały"},"settings_big":{"message":"Duży"},"settings_position":{"message":"Pozycja:"},"settings_left_top":{"message":"Lewy górny"},"settings_right_top":{"message":"Prawy górny"},"settings_left_bottom":{"message":"Na dole po lewej"},"settings_right_bottom":{"message":"Na dole po prawej"},"settings_cancel":{"message":"Anuluj"},"settings_save":{"message":"Zapisz zmiany"}}'); + +/***/ }, + +/***/ 7382 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Asystent AdGuarda","description":"Zapewnia łatwy i wygodny sposób na zarządzanie filtrowaniem bezpośrednio z przeglądarki"}}}'); + +/***/ }, + +/***/ 6254 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sítios","settings_position_save_all":"Todos os sítios","settings_position_save_this":"Este sítio","assistant_select_element_start":"Iniciar","assistant_select_element_text":"Escolha um elemento na página para bloquear. Atualize a página para cancelar o bloqueio do elemento.","menu_filtration_status":{"message":"A filtrar este sítio"},"menu_do_not_filter_30_sec":{"message":"Não filtrar durante 30 segundos"},"menu_block_ad_on_site":{"message":"Bloquear publicidade neste sítio"},"menu_report_abuse":{"message":"Denunciar o sítio"},"menu_site_report":{"message":"Relatório de segurança do sítio"},"menu_settings":{"message":"Configurações do assistente"},"menu_wot_reputation_indicator":{"message":"Indicador de reputação do sítio"},"menu_wot_reputation_confidence_level":{"message":"Nível de Confiança de Reputação"},"assistant_select_element":{"message":"Bloquear um elemento"},"assistant_select_element_ext":{"message":"Clique num elemento que pretende bloquear. O AdGuard criará uma regra de utilizador para esse elemento"},"assistant_select_element_cancel":{"message":"Cancelar"},"assistant_block_element":{"message":"Bloquear um elemento"},"assistant_block_element_explain":{"message":"Criar uma regra de bloqueio do elemento"},"assistant_slider_explain":{"message":"Mova o controlo deslizante para ajustar o tamanho do quadro"},"assistant_extended_settings":{"message":"Definições avançadas"},"assistant_apply_rule_to_all_sites":{"message":"Aplicar a regra para todos os sítios"},"assistant_block_by_reference":{"message":"Bloquear por link de referência"},"assistant_block_similar":{"message":"Bloquear semelhante"},"assistant_another_element":{"message":"Selecionar um elemento diferente"},"assistant_preview":{"message":"Pré-visualização"},"assistant_block":{"message":"Bloquear"},"assistant_settings":{"message":"Configurações do assistente"},"assistant_preview_header":{"message":"Pré-visualizar elemento bloqueado"},"assistant_preview_header_info":{"message":"Verifique se o elemento está corretamente bloqueado"},"assistant_preview_end":{"message":"Sair da previsualização"},"wot_unknown_description":{"message":"A reputação deste sítio não está definida por $1"},"wot_bad_description":{"message":"Este sítio tem uma péssima reputação\\nde acordo com $1"},"wot_poor_description":{"message":"Este sítio tem uma má reputação\\nde acordo com $1"},"wot_unsatisfactory_description":{"message":"Este sítio tem uma frágil reputação\\nde acordo com $1"},"wot_good_description":{"message":"Este sítio tem uma boa reputação\\nde acordo com $1"},"wot_excellent_description":{"message":"Este sítio tem uma excelente reputação\\nde acordo com $1"},"settings_choose_size_and_position":{"message":"Ajustar o tamanho e a posição do Assistente do AdGuard"},"settings_icon_size":{"message":"Tamanho do ícone:"},"settings_small":{"message":"Pequeno"},"settings_big":{"message":"Grande"},"settings_position":{"message":"Posição:"},"settings_left_top":{"message":"Canto superior esquerdo"},"settings_right_top":{"message":"Canto superior direito"},"settings_left_bottom":{"message":"Canto inferior esquerdo"},"settings_right_bottom":{"message":"Canto inferior direito"},"settings_cancel":{"message":"Cancelar"},"settings_save":{"message":"Guardar alterações"}}'); + +/***/ }, + +/***/ 6245 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Assistente do AdGuard","description":"Fornece uma forma fácil e conveniente de gerir a filtragem a partir do seu navegador"}}}'); + +/***/ }, + +/***/ 7435 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sites","settings_position_save_all":"Todos os sites","settings_position_save_this":"Neste site","assistant_select_element_start":"Iniciar","assistant_select_element_text":"Escolha um elemento na página para bloquear. Atualize a página para cancelar o bloqueio do elemento.","menu_filtration_status":{"message":"Filtragem neste site"},"menu_do_not_filter_30_sec":{"message":"Não filtrar durante 30 segundos"},"menu_block_ad_on_site":{"message":"Bloquear anúncios neste site"},"menu_report_abuse":{"message":"Reportar o site"},"menu_site_report":{"message":"Relatório de segurança do site"},"menu_settings":{"message":"Configurações do assistente"},"menu_wot_reputation_indicator":{"message":"Indicador de reputação do site"},"menu_wot_reputation_confidence_level":{"message":"Nível de confiança de reputação"},"assistant_select_element":{"message":"Bloquear elemento"},"assistant_select_element_ext":{"message":"Clique em um elemento que você deseja bloquear. O AdGuard criará uma regra de usuário para ele"},"assistant_select_element_cancel":{"message":"Cancelar"},"assistant_block_element":{"message":"Bloquear elemento"},"assistant_block_element_explain":{"message":"Criar uma regra de bloqueio do elemento"},"assistant_slider_explain":{"message":"Mova o controle deslizante para ajustar o tamanho da moldura"},"assistant_extended_settings":{"message":"Configurações avançadas"},"assistant_apply_rule_to_all_sites":{"message":"Aplicar regra para todos os sites"},"assistant_block_by_reference":{"message":"Bloquear pelo link de referência"},"assistant_block_similar":{"message":"Bloquear semelhante"},"assistant_another_element":{"message":"Selecione um elemento diferente"},"assistant_preview":{"message":"Pré-visualização"},"assistant_block":{"message":"Bloquear"},"assistant_settings":{"message":"Configurações do assistente"},"assistant_preview_header":{"message":"Pré-visualização do elemento bloqueado"},"assistant_preview_header_info":{"message":"Verifique se o elemento está corretamente bloqueado"},"assistant_preview_end":{"message":"Sair da pré-visualização"},"wot_unknown_description":{"message":"A reputação deste site ainda não foi definida por $1"},"wot_bad_description":{"message":"Este site tem uma reputação muito ruim\\nde acordo com $1"},"wot_poor_description":{"message":"Este site tem uma má reputação\\nde acordo com $1"},"wot_unsatisfactory_description":{"message":"Este site tem uma reputação ruim\\nde acordo com $1"},"wot_good_description":{"message":"Este site tem uma boa reputação\\nde acordo com $1"},"wot_excellent_description":{"message":"Este site tem uma excelente reputação\\nde acordo com $1"},"settings_choose_size_and_position":{"message":"Ajuste o tamanho e posição do Assistente do AdGuard"},"settings_icon_size":{"message":"Tamanho do ícone:"},"settings_small":{"message":"Pequeno"},"settings_big":{"message":"Grande"},"settings_position":{"message":"Posição:"},"settings_left_top":{"message":"Canto superior esquerdo"},"settings_right_top":{"message":"Canto superior direito"},"settings_left_bottom":{"message":"Canto inferior esquerdo"},"settings_right_bottom":{"message":"Canto inferior direito"},"settings_cancel":{"message":"Cancelar"},"settings_save":{"message":"Salvar alterações"}}'); + +/***/ }, + +/***/ 7118 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Assistente do AdGuard","description":"Fornece uma maneira fácil e conveniente de gerenciar a filtragem diretamente do seu navegador"}}}'); + +/***/ }, + +/***/ 7150 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Site web","settings_position_save_all":"Toate site-urile","settings_position_save_this":"Acest site","assistant_select_element_start":"Start","assistant_select_element_text":"Alegeți elementul de blocat pe pagină. Actualizați pagina ca să anulați modul de blocare a elementului.","menu_filtration_status":{"message":"Filtrare pe acest site web"},"menu_do_not_filter_30_sec":{"message":"Nu filtra pentru 30 secunde"},"menu_block_ad_on_site":{"message":"Blocare reclame pe acest site"},"menu_report_abuse":{"message":"Raportați site-ul"},"menu_site_report":{"message":"Raport de securitate site"},"menu_settings":{"message":"Setări asistent"},"menu_wot_reputation_indicator":{"message":"Indicator reputație site"},"menu_wot_reputation_confidence_level":{"message":"Nivel de încredere în reputație"},"assistant_select_element":{"message":"Blocați un element"},"assistant_select_element_ext":{"message":"Faceți clic pe un element pe care doriți să îl blocați. AdGuard va crea o regulă de utilizator"},"assistant_select_element_cancel":{"message":"Anulare"},"assistant_block_element":{"message":"Blocați un element"},"assistant_block_element_explain":{"message":"Creați o regulă de blocare a elementelor"},"assistant_slider_explain":{"message":"Mutați glisorul pentru a regla dimensiunea cadrului"},"assistant_extended_settings":{"message":"Setări avansate"},"assistant_apply_rule_to_all_sites":{"message":"Aplică regula pe orice site"},"assistant_block_by_reference":{"message":"Blocare după link de referință"},"assistant_block_similar":{"message":"Blocare similare"},"assistant_another_element":{"message":"Alegeți un element diferit"},"assistant_preview":{"message":"Ecran"},"assistant_block":{"message":"Blocați"},"assistant_settings":{"message":"Setări asistent"},"assistant_preview_header":{"message":"Previzualizare element blocat"},"assistant_preview_header_info":{"message":"Verifică dacă elementul este blocat corect"},"assistant_preview_end":{"message":"Ieșire ecran"},"wot_unknown_description":{"message":"Reputația acestui site nu este definită de $1"},"wot_bad_description":{"message":"Acest site are o reputație foarte proastă\\nconform cu $1"},"wot_poor_description":{"message":"Acest site are o reputație proastă\\nconform cu $1"},"wot_unsatisfactory_description":{"message":"Acest site are o reputație slabă\\nconform cu $1"},"wot_good_description":{"message":"Acest site are o reputație bună\\nconform cu $1"},"wot_excellent_description":{"message":"Acest site are o reputație excelentă\\nconform cu $1"},"settings_choose_size_and_position":{"message":"Ajustați talia și poziția Asistentului AdGuard"},"settings_icon_size":{"message":"Talie icoană:"},"settings_small":{"message":"Mică"},"settings_big":{"message":"Mare"},"settings_position":{"message":"Poziție:"},"settings_left_top":{"message":"Stânga sus"},"settings_right_top":{"message":"Dreapta sus"},"settings_left_bottom":{"message":"Stânga jos"},"settings_right_bottom":{"message":"Dreapta jos"},"settings_cancel":{"message":"Anulare"},"settings_save":{"message":"Salvare alegeri"}}'); + +/***/ }, + +/***/ 5797 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Asistentul AdGuard","description":"Oferă o manieră ușoară și convenabilă de a gera filtrarea chiar din browser"}}}'); + +/***/ }, + +/***/ 1468 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Сайты","settings_position_save_all":"На всех","settings_position_save_this":"Только на этом","assistant_select_element_start":"Начать","assistant_select_element_text":"Выберите на странице элемент для блокирования. Обновите страницу, чтобы отменить режим блокировки элементов.","menu_filtration_status":{"message":"Фильтрация на этом сайте"},"menu_do_not_filter_30_sec":{"message":"Не фильтровать 30 секунд"},"menu_block_ad_on_site":{"message":"Заблокировать рекламу на сайте"},"menu_report_abuse":{"message":"Пожаловаться на сайт"},"menu_site_report":{"message":"Отчёт о безопасности сайта"},"menu_settings":{"message":"Настроить помощник"},"menu_wot_reputation_indicator":{"message":"Индикатор репутации сайта"},"menu_wot_reputation_confidence_level":{"message":"Уровень доверия к репутации"},"assistant_select_element":{"message":"Заблокировать элемент"},"assistant_select_element_ext":{"message":"Нажмите на элемент, который хотите заблокировать. AdGuard создаст для него правило блокировки"},"assistant_select_element_cancel":{"message":"Отмена"},"assistant_block_element":{"message":"Заблокировать элемент"},"assistant_block_element_explain":{"message":"Будет создано правило блокировки элемента"},"assistant_slider_explain":{"message":"Двигайте ползунок, чтобы отрегулировать размер"},"assistant_extended_settings":{"message":"Расширенные настройки"},"assistant_apply_rule_to_all_sites":{"message":"Применить правило для всех сайтов"},"assistant_block_by_reference":{"message":"Блокировать по ссылке"},"assistant_block_similar":{"message":"Блокировать похожие"},"assistant_another_element":{"message":"Выбрать другой элемент"},"assistant_preview":{"message":"Предпросмотр"},"assistant_block":{"message":"Заблокировать"},"assistant_settings":{"message":"Настройка помощника"},"assistant_preview_header":{"message":"Предпросмотр"},"assistant_preview_header_info":{"message":"Проверьте, что элемент заблокировано верно"},"assistant_preview_end":{"message":"Назад"},"wot_unknown_description":{"message":"Репутация не определена расширением $1"},"wot_bad_description":{"message":"У сайта очень плохая репутация по данным $1"},"wot_poor_description":{"message":"У сайта плохая репутация по данным $1"},"wot_unsatisfactory_description":{"message":"У сайта неудовлетворительная репутация по данным $1"},"wot_good_description":{"message":"У сайта хорошая репутация по данным $1"},"wot_excellent_description":{"message":"У сайта отличная репутация по данным $1"},"settings_choose_size_and_position":{"message":"Настройте размер и положение помощника AdGuard"},"settings_icon_size":{"message":"Размер иконки:"},"settings_small":{"message":"Маленькая"},"settings_big":{"message":"Большая"},"settings_position":{"message":"Расположение:"},"settings_left_top":{"message":"Вверху слева"},"settings_right_top":{"message":"Вверху справа"},"settings_left_bottom":{"message":"Внизу слева"},"settings_right_bottom":{"message":"Внизу справа"},"settings_cancel":{"message":"Отмена"},"settings_save":{"message":"Сохранить настройки"}}'); + +/***/ }, + +/***/ 1915 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Помощник AdGuard","description":"Позволяет легко и быстро управлять фильтрацией прямо из браузера"}}}'); + +/***/ }, + +/***/ 3377 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Webové stránky","settings_position_save_all":"Všetky stránky","settings_position_save_this":"Táto stránka","assistant_select_element_start":"Štart","assistant_select_element_text":"Vyberte prvok na stránke, ktorý chcete zablokovať. Obnovte stránku pre zrušenie režimu blokovania prvkov.","menu_filtration_status":{"message":"Filtrácia na tejto stránke"},"menu_do_not_filter_30_sec":{"message":"Nefiltrovať počas 30 sekúnd"},"menu_block_ad_on_site":{"message":"Blokovať reklamy na tejto stránke"},"menu_report_abuse":{"message":"Nahlásiť stránku"},"menu_site_report":{"message":"Bezpečnostná správa o stránke"},"menu_settings":{"message":"Nastavenia asistenta"},"menu_wot_reputation_indicator":{"message":"Indikátor reputácie stránok"},"menu_wot_reputation_confidence_level":{"message":"Úroveň spoľahlivosti reputácie"},"assistant_select_element":{"message":"Blokovanie prvku"},"assistant_select_element_ext":{"message":"Kliknite na prvok, ktorý chcete zablokovať. AdGuard preň vytvorí používateľské pravidlo"},"assistant_select_element_cancel":{"message":"Zrušiť"},"assistant_block_element":{"message":"Blokovanie prvku"},"assistant_block_element_explain":{"message":"Vytvorenie pravidla blokovania prvkov"},"assistant_slider_explain":{"message":"Posuňte posúvač a upravte veľkosť rámčeka"},"assistant_extended_settings":{"message":"Pokročilé nastavenia"},"assistant_apply_rule_to_all_sites":{"message":"Použiť pravidlo na všetky stránky"},"assistant_block_by_reference":{"message":"Blokovať referenčným odkazom"},"assistant_block_similar":{"message":"Blokovať podobné"},"assistant_another_element":{"message":"Zvoliť iný prvok"},"assistant_preview":{"message":"Náhľad"},"assistant_block":{"message":"Blokovať"},"assistant_settings":{"message":"Nastavenia asistenta"},"assistant_preview_header":{"message":"Náhľad blokovaného prvku"},"assistant_preview_header_info":{"message":"Skontrolujte, či je prvok správne zablokovaný"},"assistant_preview_end":{"message":"Ukončenie náhľadu"},"wot_unknown_description":{"message":"Reputácia tejto webovej stránky nie je v $1 definovaná"},"wot_bad_description":{"message":"Táto stránka má podľa $1\\nveľmi zlú reputáciu"},"wot_poor_description":{"message":"Táto stránka má podľa $1\\nzlú reputáciu"},"wot_unsatisfactory_description":{"message":"Táto stránka má podľa $1\\nslabú reputáciu"},"wot_good_description":{"message":"Táto stránka má podľa $1\\ndobrú reputáciu"},"wot_excellent_description":{"message":"Táto stránka má podľa $1\\nvýbornú reputáciu"},"settings_choose_size_and_position":{"message":"Prispôsobiť veľkosť a polohu AdGuard asistenta"},"settings_icon_size":{"message":"Veľkosť ikony:"},"settings_small":{"message":"Malá"},"settings_big":{"message":"Veľká"},"settings_position":{"message":"Poloha:"},"settings_left_top":{"message":"Vľavo hore"},"settings_right_top":{"message":"Vpravo hore"},"settings_left_bottom":{"message":"Vľavo dole"},"settings_right_bottom":{"message":"Vpravo dole"},"settings_cancel":{"message":"Zrušiť"},"settings_save":{"message":"Uložiť zmeny"}}'); + +/***/ }, + +/***/ 3580 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Asistent","description":"Poskytuje jednoduchý a pohodlný spôsob manažmentu filtrov priamo z prehliadača"}}}'); + +/***/ }, + +/***/ 9422 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Spletne strani","settings_position_save_all":"Vse pletne strani","settings_position_save_this":"To spletno stran","assistant_select_element_start":"Začni","assistant_select_element_text":"Izberite element na strani, ki jo želite onemogočiti. Osvežite stran, da prekličete način zaviranja elementa.","menu_filtration_status":{"message":"Filtriranje na tej spletni strani"},"menu_do_not_filter_30_sec":{"message":"Ne filtriraj 30 sekund"},"menu_block_ad_on_site":{"message":"Onemogoči oglas na tej spletni strani"},"menu_report_abuse":{"message":"Prijavi spletno stran"},"menu_site_report":{"message":"Poročilo o varnosti spletne strani"},"menu_settings":{"message":"Nastavitve Pomočnika"},"menu_wot_reputation_indicator":{"message":"Kazalnik ugleda spletnestrani"},"menu_wot_reputation_confidence_level":{"message":"Raven ugleda zaupanja"},"assistant_select_element":{"message":"Onemogoči element"},"assistant_select_element_ext":{"message":"Kliknite element, ki ga želite blokirati. AdGuard bo zanj ustvaril uporabniško pravilo"},"assistant_select_element_cancel":{"message":"Prekliči"},"assistant_block_element":{"message":"Onemogoči element"},"assistant_block_element_explain":{"message":"Ustvarite pravilo za blokiranje elementov"},"assistant_slider_explain":{"message":"Premaknite drsnik, da prilagodite velikost okvirja"},"assistant_extended_settings":{"message":"Napredne nastavitve"},"assistant_apply_rule_to_all_sites":{"message":"Uporabi pravilo za vse spletne strani"},"assistant_block_by_reference":{"message":"Onemogočij z napotitveno povezavo"},"assistant_block_similar":{"message":"Onemogoči podobno"},"assistant_another_element":{"message":"Izberi drug element"},"assistant_preview":{"message":"Predogled"},"assistant_block":{"message":"Onemogoči"},"assistant_settings":{"message":"Nastavitve Pomočnika"},"assistant_preview_header":{"message":"Predogled blokiranega elementa"},"assistant_preview_header_info":{"message":"Preverite, ali je element pravilno blokiran"},"assistant_preview_end":{"message":"Zapusti predogled"},"wot_unknown_description":{"message":"Ugled te spletne strani ni opredeljen z $1"},"wot_bad_description":{"message":"Ta spletna stran ima zelo slab ugled\\nglede na $1"},"wot_poor_description":{"message":"Ta spletna stran ima slab ugled\\nglede na $1"},"wot_unsatisfactory_description":{"message":"Ta spletna stran ima zelo slab ugled\\nglede na $1"},"wot_good_description":{"message":"Ta spletna stran ima dober ugled\\nglede na $1"},"wot_excellent_description":{"message":"Ta spletna stran ima odličen ugled\\nglede na $1"},"settings_choose_size_and_position":{"message":"Prilagodi velikost in položaj AdGuard Pomočnika"},"settings_icon_size":{"message":"Velikost ikone:"},"settings_small":{"message":"Majhna"},"settings_big":{"message":"Velika"},"settings_position":{"message":"Položaj:"},"settings_left_top":{"message":"Zgoraj levo"},"settings_right_top":{"message":"Zgoraj desno"},"settings_left_bottom":{"message":"Spodaj levo"},"settings_right_bottom":{"message":"Spodaj desno"},"settings_cancel":{"message":"Prekliči"},"settings_save":{"message":"Shrani nastavitve"}}'); + +/***/ }, + +/***/ 37 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Pomočnik","description":"Omogoča preprost in priročen način za upravljanje filtriranja neposredno iz brskalnika"}}}'); + +/***/ }, + +/***/ 8896 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Sajtovi","settings_position_save_all":"Svi sajtovi","settings_position_save_this":"Ovaj sajt","assistant_select_element_start":"Započni","assistant_select_element_text":"Izaberite element na stranici koji želite da blokirate. Osvežite stranicu da otkažete blokiranje elemenata.","menu_filtration_status":{"message":"Filtriranje na ovom sajtu"},"menu_do_not_filter_30_sec":{"message":"Ne filtriraj u narednih 30 sekundi"},"menu_block_ad_on_site":{"message":"Blokiraj reklamu na ovom sajtu"},"menu_report_abuse":{"message":"Prijavi sajt"},"menu_site_report":{"message":"Bezbednosni izveštaj o sajtu"},"menu_settings":{"message":"Postavke pomoćnika"},"menu_wot_reputation_indicator":{"message":"Indikator reputacije sajta"},"menu_wot_reputation_confidence_level":{"message":"Nivo poverljivosti reputacije"},"assistant_select_element":{"message":"Blokiraj element"},"assistant_select_element_ext":{"message":"Kliknite na element koji želite da blokirate. AdGuard će kreirati korisničko pravilo za to"},"assistant_select_element_cancel":{"message":"Otkaži"},"assistant_block_element":{"message":"Blokiraj element"},"assistant_block_element_explain":{"message":"Kreirajte pravilo blokiranja elementa"},"assistant_slider_explain":{"message":"Pomerite klizač da biste podesili veličinu okvira"},"assistant_extended_settings":{"message":"Napredne postavke"},"assistant_apply_rule_to_all_sites":{"message":"Primeni pravilo na sve sajtove"},"assistant_block_by_reference":{"message":"Blokiraj po linku reference"},"assistant_block_similar":{"message":"Blokiraj slično"},"assistant_another_element":{"message":"Izaberite drugi element"},"assistant_preview":{"message":"Pregled"},"assistant_block":{"message":"Blokiraj"},"assistant_settings":{"message":"Postavke pomoćnika"},"assistant_preview_header":{"message":"Pregled blokiran element"},"assistant_preview_header_info":{"message":"Proverite da li je element ispravno blokiran"},"assistant_preview_end":{"message":"Napusti pregled"},"wot_unknown_description":{"message":"Reputacija nije definisana"},"wot_bad_description":{"message":"Ovaj sajt ima veoma lošu reputaciju\\nprema "},"wot_poor_description":{"message":"Ovaj sajt ima lošu reputaciju\\nprema "},"wot_unsatisfactory_description":{"message":"Ovaj sajt ima slabu reputaciju\\nprema "},"wot_good_description":{"message":"Ovaj sajt ima dobru reputaciju\\nprema "},"wot_excellent_description":{"message":"Ovaj sajt ima odličnu reputaciju\\nprema "},"settings_choose_size_and_position":{"message":"Podesite veličinu i poziciju AdGuard pomoćnika"},"settings_icon_size":{"message":"Veličina ikonice"},"settings_small":{"message":"Mala"},"settings_big":{"message":"Velika"},"settings_position":{"message":"Pozicija:"},"settings_left_top":{"message":"Gore levo"},"settings_right_top":{"message":"Gore desno"},"settings_left_bottom":{"message":"Dole levo"},"settings_right_bottom":{"message":"Dole desno"},"settings_cancel":{"message":"Otkaži"},"settings_save":{"message":"Sačuvaj promene"}}'); + +/***/ }, + +/***/ 8983 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard pomoćnik","description":"Pruža jednostavan i zgodan način upravljanja filtriranjem direktno iz preglednika"}}}'); + +/***/ }, + +/***/ 6428 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Webbplatser","settings_position_save_all":"Alla webbplatser","settings_position_save_this":"Den här webbplatsen","assistant_select_element_start":"Starta","assistant_select_element_text":"Välj ett element sidan att blockera. Återladda sidan för att återställa elementblockeringsläget.","menu_filtration_status":{"message":"Webbplatsens filtrering"},"menu_do_not_filter_30_sec":{"message":"Pausa filtrering 30 sekunder"},"menu_block_ad_on_site":{"message":"Blockera annons på den här webbplatsen"},"menu_report_abuse":{"message":"Rapportera webbplatsen"},"menu_site_report":{"message":"Säkerhetsrapport för webbplatsen"},"menu_settings":{"message":"Assistentinställningar"},"menu_wot_reputation_indicator":{"message":"Indikator för webbplatsens rykte"},"menu_wot_reputation_confidence_level":{"message":"Förtroendenivå för rykte"},"assistant_select_element":{"message":"Blockera ett element"},"assistant_select_element_ext":{"message":"Klicka på ett element du vill blockera. AdGuard skapar en användarregel för det"},"assistant_select_element_cancel":{"message":"Avbryt"},"assistant_block_element":{"message":"Blockera ett element"},"assistant_block_element_explain":{"message":"Skapa en blockeringsregel för element"},"assistant_slider_explain":{"message":"Flytta reglaget för att justera ramens storlek"},"assistant_extended_settings":{"message":"Avancerade val"},"assistant_apply_rule_to_all_sites":{"message":"Tillämpa regelns på alla webbplatster"},"assistant_block_by_reference":{"message":"Blockera med referenslänk"},"assistant_block_similar":{"message":"Blockera liknande"},"assistant_another_element":{"message":"Markera ett annat annonselement"},"assistant_preview":{"message":"Förhandsgranska"},"assistant_block":{"message":"Blockera"},"assistant_settings":{"message":"Assistentval"},"assistant_preview_header":{"message":"Förhandsgranska blockerad element"},"assistant_preview_header_info":{"message":"Kontrollera om elementet är blockerat korrekt"},"assistant_preview_end":{"message":"Avsluta förhandsgranskningen"},"wot_unknown_description":{"message":"Den här sajtens anseende är inte klarlagd av $1"},"wot_bad_description":{"message":"Webbplatsen har ett mycket dåligt anseende\\nenligt $1"},"wot_poor_description":{"message":"Webbplatsen har dåligt anseende\\nenligt $1"},"wot_unsatisfactory_description":{"message":"Webbplatsen har tveksamt anseende\\nenligt $1"},"wot_good_description":{"message":"Webbplatsen har gott anseende\\nenligt $1"},"wot_excellent_description":{"message":"Webbplatsen har ett mycket gott anseende\\nenligt $1"},"settings_choose_size_and_position":{"message":"Anpassas storlek och läge för AdGuardassistenten"},"settings_icon_size":{"message":"Ikonstorlek"},"settings_small":{"message":"Liten"},"settings_big":{"message":"Stor"},"settings_position":{"message":"Läge:"},"settings_left_top":{"message":"Ovan vänster"},"settings_right_top":{"message":"Ovan höger"},"settings_left_bottom":{"message":"Nedan vänster"},"settings_right_bottom":{"message":"Nedan höger"},"settings_cancel":{"message":"Avbryt"},"settings_save":{"message":"Spara ändringar"}}'); + +/***/ }, + +/***/ 9707 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard-assistent","description":"Erbjuder ett enkelt och bekvämt sätt att hantera filtrering direkt i webbläsaren"}}}'); + +/***/ }, + +/***/ 2739 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"เว็บไซต์","settings_position_save_all":"ทุกเว็บไซต์","settings_position_save_this":"เว็บไซต์นี้","assistant_select_element_start":"เริ่ม","assistant_select_element_text":"เลือกองค์ประกอบบนหน้าเพื่อปิดกั้น รีเฟรชหน้านี้เพื่อยกเลิกโหมดการปิดกั้นองค์ประกอบ","menu_filtration_status":{"message":"การกรองบนเว็บไซต์นี้"},"menu_do_not_filter_30_sec":{"message":"ห้ามกรองเป็นเวลา 30 วินาที"},"menu_block_ad_on_site":{"message":"ปิดกั้นโฆษณาบนเว็บไซต์นี้"},"menu_report_abuse":{"message":"รายงานเว็บไซต์นี้"},"menu_site_report":{"message":"รายงานความปลอดภัยของเว็บไซต์"},"menu_settings":{"message":"ตั้งค่าการช่วยเหลือ"},"menu_wot_reputation_indicator":{"message":"ตัวบ่งชี้ชื่อเสียงของเว็บไซต์"},"menu_wot_reputation_confidence_level":{"message":"ชื่อเสียงระดับความเชื่อมั่น"},"assistant_select_element":{"message":"ปิดกั้นองค์ประกอบ"},"assistant_select_element_ext":{"message":"คลิกองค์ประกอบที่คุณต้องการบล็อก AdGuard จะสร้างกฎผู้ใช้สำหรับมัน"},"assistant_select_element_cancel":{"message":"ยกเลิก"},"assistant_block_element":{"message":"ปิดกั้นองค์ประกอบ"},"assistant_block_element_explain":{"message":"สร้างกฎการปิดกั้นองค์ประกอบ"},"assistant_slider_explain":{"message":"เลื่อนสไลด์เพื่อปรับขนาดของกรอบ"},"assistant_extended_settings":{"message":"การตั้งค่าขั้นสูง"},"assistant_apply_rule_to_all_sites":{"message":"ใช้กฏนี้กับทุกเว็บไซต์"},"assistant_block_by_reference":{"message":"ปิดกั้นโดยลิงค์อ้างอิง"},"assistant_block_similar":{"message":"ปิดกั้นที่คล้ายกัน"},"assistant_another_element":{"message":"เลือกองค์ประกอบที่แตกต่าง"},"assistant_preview":{"message":"ดูตัวอย่าง"},"assistant_block":{"message":"ปิดกั้น"},"assistant_settings":{"message":"ตั้งค่าการช่วยเหลือ"},"assistant_preview_header":{"message":"ดูตัวอย่างองค์ประกอบที่ถูกบล็อค"},"assistant_preview_header_info":{"message":"ตรวจสอบว่าองค์ประกอบถูกบล็อคอย่างถูกต้องหรือไม่"},"assistant_preview_end":{"message":"ออกจากตัวอย่าง"},"wot_unknown_description":{"message":"ชื่อเสียงของเว็บไซต์นี้ไม่ได้กำหนดไว้ที่ $1"},"wot_bad_description":{"message":"เว็บไซต์นี้มีชื่อเสียงแย่มาก\\nตาม $1"},"wot_poor_description":{"message":"เว็บไซต์นี้มีชื่อเสียงไม่ดี\\nตาม $1"},"wot_unsatisfactory_description":{"message":"เว็บไซต์นี้มีชื่อเสียงไม่ดี\\nตาม $1"},"wot_good_description":{"message":"เว็บไซต์นี้มีชื่อเสียงดี\\nตาม $1"},"wot_excellent_description":{"message":"เว็บไซต์นี้มีชื่อเสียงที่ยอดเยี่ยม\\nตาม $1"},"settings_choose_size_and_position":{"message":"ปรับขนาดและตำแหน่ง AdGuard Assistant"},"settings_icon_size":{"message":"ขนาดไอคอน:"},"settings_small":{"message":"เล็ก"},"settings_big":{"message":"ใหญ่"},"settings_position":{"message":"ตำแหน่ง:"},"settings_left_top":{"message":"บนซ้าย"},"settings_right_top":{"message":"บนขวา"},"settings_left_bottom":{"message":"ล่างซ้าย"},"settings_right_bottom":{"message":"ล่างขวา"},"settings_cancel":{"message":"ยกเลิก"},"settings_save":{"message":"บันทึกการเปลี่ยนแปลง"}}'); + +/***/ }, + +/***/ 3734 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Assistant","description":"มอบวิธีที่ง่ายและสะดวกในการจัดการการกรองจากเบราว์เซอร์"}}}'); + +/***/ }, + +/***/ 1777 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Siteler","settings_position_save_all":"Tüm siteler","settings_position_save_this":"Bu site","assistant_select_element_start":"Başla","assistant_select_element_text":"Engellemek için sayfada bir öğe seçin. Öğe engelleme modunu iptal etmek için sayfayı yenileyin.","menu_filtration_status":{"message":"Bu sitedeki filtreleme"},"menu_do_not_filter_30_sec":{"message":"30 saniyeliğine filtreleme yapma"},"menu_block_ad_on_site":{"message":"Bu sitede reklam engelle"},"menu_report_abuse":{"message":"Siteyi bildir"},"menu_site_report":{"message":"Sitenin güvenlik raporu"},"menu_settings":{"message":"Asistan ayarları"},"menu_wot_reputation_indicator":{"message":"Site itibarı göstergesi"},"menu_wot_reputation_confidence_level":{"message":"İtibarın Güven Seviyesi"},"assistant_select_element":{"message":"Bir öğeyi engelle"},"assistant_select_element_ext":{"message":"Engellemek istediğiniz bir öğeye tıklayın. AdGuard bunun için bir kullanıcı kuralı oluşturur"},"assistant_select_element_cancel":{"message":"İptal"},"assistant_block_element":{"message":"Bir öğeyi engelle"},"assistant_block_element_explain":{"message":"Öğe engelleme kuralı oluşturun"},"assistant_slider_explain":{"message":"Çerçevenin boyutunu ayarlamak için kaydırıcıyı hareket ettirin"},"assistant_extended_settings":{"message":"Gelişmiş ayarlar"},"assistant_apply_rule_to_all_sites":{"message":"Kuralı tüm sitelerde uygula"},"assistant_block_by_reference":{"message":"Referans bağlantı ile engelle"},"assistant_block_similar":{"message":"Benzerlerini engelle"},"assistant_another_element":{"message":"Farklı bir öğe seç"},"assistant_preview":{"message":"Önizleme"},"assistant_block":{"message":"Engelle"},"assistant_settings":{"message":"Asistan ayarları"},"assistant_preview_header":{"message":"Engellenen öğeyi önizleyin"},"assistant_preview_header_info":{"message":"Öğenin doğru şekilde engellenip engellenmediğini kontrol edin"},"assistant_preview_end":{"message":"Önizlemeden çık"},"wot_unknown_description":{"message":"Bu sitenin itibarı $1 tarafından henüz belirlenmemiş"},"wot_bad_description":{"message":"1$\'a göre bu site çok kötü \\nbir itibara sahip"},"wot_poor_description":{"message":"1$\'a göre bu site kötü \\nbir itibara sahip"},"wot_unsatisfactory_description":{"message":"1$\'a göre bu site zayıf\\nbir itibara sahip"},"wot_good_description":{"message":"1$\'a göre bu site iyi\\nbir itibara sahip"},"wot_excellent_description":{"message":"1$\'a göre bu site mükemmel\\nbir itibara sahip"},"settings_choose_size_and_position":{"message":"AdGuard Asistanın boyutunu ve konumunu ayarlayın"},"settings_icon_size":{"message":"Simge boyutu:"},"settings_small":{"message":"Küçük"},"settings_big":{"message":"Büyük"},"settings_position":{"message":"Konum:"},"settings_left_top":{"message":"Sol üst"},"settings_right_top":{"message":"Sağ üst"},"settings_left_bottom":{"message":"Sol alt"},"settings_right_bottom":{"message":"Sağ alt"},"settings_cancel":{"message":"İptal"},"settings_save":{"message":"Değişiklikleri kaydet"}}'); + +/***/ }, + +/***/ 7020 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard Asistanı","description":"Filtrelemeyi doğrudan tarayıcıdan yönetmenin kolay ve kullanışlı bir yolunu sağlar"}}}'); + +/***/ }, + +/***/ 7415 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Сайти","settings_position_save_all":"На всіх","settings_position_save_this":"Тільки на даному","assistant_select_element_start":"Почати","assistant_select_element_text":"Виберіть елемент на сторінці, який треба заблокувати. Оновіть сторінку, щоб скасувати режим блокування.","menu_filtration_status":{"message":"Фільтрування на цьому сайті"},"menu_do_not_filter_30_sec":{"message":"Не фільтрувати 30 секунд"},"menu_block_ad_on_site":{"message":"Заблокувати рекламу на даному сайті"},"menu_report_abuse":{"message":"Повідомити про сайт"},"menu_site_report":{"message":"Звіт про безпеку сайту"},"menu_settings":{"message":"Налаштування помічника"},"menu_wot_reputation_indicator":{"message":"Індикатор репутації сайту"},"menu_wot_reputation_confidence_level":{"message":"Рівень надійності репутації"},"assistant_select_element":{"message":"Заблокувати елемент"},"assistant_select_element_cancel":{"message":"Скасувати"},"assistant_block_element":{"message":"Заблокувати елемент"},"assistant_extended_settings":{"message":"Розширені налаштування"},"assistant_apply_rule_to_all_sites":{"message":"Застосувати правило для всіх сайтів"},"assistant_block_by_reference":{"message":"Блокувати за посиланням"},"assistant_block_similar":{"message":"Блокувати схожі елементи"},"assistant_another_element":{"message":"Вибрати інший елемент"},"assistant_preview":{"message":"Попередній перегляд"},"assistant_block":{"message":"Заблокувати"},"assistant_settings":{"message":"Налаштування помічника"},"assistant_preview_end":{"message":"Закінчити попередній перегляд"},"wot_unknown_description":{"message":"Репутація цього вебсайту не визначена"},"wot_bad_description":{"message":"Цей сайт має дуже погану репутацію\\nза версією $1"},"wot_poor_description":{"message":"Цей сайт має погану репутацію\\nза версією $1"},"wot_unsatisfactory_description":{"message":"Цей сайт має незадовільну репутацію\\nза версією $1"},"wot_good_description":{"message":"Цей сайт має добру репутацію\\nза версією $1"},"wot_excellent_description":{"message":"Цей сайт має дуже відмінну репутацію\\nза версією $1"},"settings_choose_size_and_position":{"message":"Налаштуйте розмір і положення помічника AdGuard"},"settings_icon_size":{"message":"Розмір іконки:"},"settings_small":{"message":"Маленька"},"settings_big":{"message":"Велика"},"settings_position":{"message":"Позиція:"},"settings_left_top":{"message":"Зверху зліва"},"settings_right_top":{"message":"Зверху справа"},"settings_left_bottom":{"message":"Внизу зліва"},"settings_right_bottom":{"message":"Внизу справа"},"settings_cancel":{"message":"Скасувати"},"settings_save":{"message":"Зберегти зміни"}}'); + +/***/ }, + +/***/ 3378 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Помічник AdGuard","description":"Забезпечує простий та зручний спосіб керування фільтруванням безпосередньо у браузері"}}}'); + +/***/ }, + +/***/ 9692 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"Trang Web","settings_position_save_all":"Tất cả trang web","settings_position_save_this":"Chỉ trang web này","assistant_select_element_start":"Bắt đầu","assistant_select_element_text":"Chọn một thành phần trên trang để chặn. Làm mới trang web để hủy bỏ chế độ chặn thành phần.","menu_filtration_status":{"message":"Lọc trên website này"},"menu_do_not_filter_30_sec":{"message":"Không lọc trong 30 giây"},"menu_block_ad_on_site":{"message":"Chặn quảng cáo đối với trang web này"},"menu_report_abuse":{"message":"Báo cáo trang web này"},"menu_site_report":{"message":"Báo cáo bảo mật website"},"menu_settings":{"message":"Cài đặt trợ lý"},"menu_wot_reputation_indicator":{"message":"Chỉ số danh tiếng của trang Web"},"menu_wot_reputation_confidence_level":{"message":"Mức độ đáng tin của danh tiếng"},"assistant_select_element":{"message":"Chặn một thành phần"},"assistant_select_element_ext":{"message":"Nhấp vào phần tử bạn muốn chặn. AdGuard sẽ tạo quy tắc người dùng cho phần tử đó"},"assistant_select_element_cancel":{"message":"Hủy bỏ"},"assistant_block_element":{"message":"Chặn một thành phần"},"assistant_block_element_explain":{"message":"Tạo một quy tắc chặn yếu tố"},"assistant_slider_explain":{"message":"Di chuyển thanh trượt để điều chỉnh kích thước của khung"},"assistant_extended_settings":{"message":"Cài đặt nâng cao"},"assistant_apply_rule_to_all_sites":{"message":"Áp dụng tất cả các điều luật đối với mọi trang web"},"assistant_block_by_reference":{"message":"Chặn theo liên kết tham chiếu"},"assistant_block_similar":{"message":"Chặn tương tự"},"assistant_another_element":{"message":"Chọn một phần tử khác"},"assistant_preview":{"message":"Xem trước"},"assistant_block":{"message":"Chặn"},"assistant_settings":{"message":"Cài đặt trợ lý"},"assistant_preview_header":{"message":"Xem trước yếu tố đã bị chặn"},"assistant_preview_header_info":{"message":"Kiểm tra xem phần tử có bị chặn đúng không"},"assistant_preview_end":{"message":"Thoát xem trước"},"wot_unknown_description":{"message":"Website này danh tiếng chưa được xác định bởi $1"},"wot_bad_description":{"message":"Website này có danh tiếng cực xấu dựa theo $1"},"wot_poor_description":{"message":"Website này có danh tiếng xấu dựa theo $1"},"wot_unsatisfactory_description":{"message":"Website này có danh tiếng không tốt dựa theo $1"},"wot_good_description":{"message":"Website này có danh tiếng tốt dựa theo $1"},"wot_excellent_description":{"message":"Website này có danh tiếng tuyệt vời dựa theo $1"},"settings_choose_size_and_position":{"message":"Điều chỉnh kích thước và vị trí của Trợ Lý AdGuard"},"settings_icon_size":{"message":"Kích thước biểu tượng:"},"settings_small":{"message":"Nhỏ"},"settings_big":{"message":"Lớn"},"settings_position":{"message":"Vị trí:"},"settings_left_top":{"message":"Trên cùng bên trái"},"settings_right_top":{"message":"Trên cùng bên phải"},"settings_left_bottom":{"message":"Dưới cùng bên trái"},"settings_right_bottom":{"message":"Dưới cùng bên phải"},"settings_cancel":{"message":"Hủy bỏ"},"settings_save":{"message":"Lưu các thay đổi"}}'); + +/***/ }, + +/***/ 8315 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"Trợ Lý AdGuard","description":"Cung cấp cách dễ dàng và thuận tiện để quản lý lọc ngay từ trình duyệt"}}}'); + +/***/ }, + +/***/ 6359 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"網站","settings_position_save_all":"所有網站","settings_position_save_this":"此網站","assistant_select_element_start":"開始","assistant_select_element_text":"選擇網頁上的元素來阻擋。若要取消重新整理網頁即可。","menu_filtration_status":{"message":"過濾此網頁上的廣告"},"menu_do_not_filter_30_sec":{"message":"暫停過濾 30 秒"},"menu_block_ad_on_site":{"message":"封鎖此網頁上的廣告"},"menu_report_abuse":{"message":"回報此網站"},"menu_site_report":{"message":"網站安全性報告"},"menu_settings":{"message":"助手設定"},"menu_wot_reputation_indicator":{"message":"網頁名譽指標"},"menu_wot_reputation_confidence_level":{"message":"名譽可信程度"},"assistant_select_element_cancel":{"message":"取消"},"assistant_extended_settings":{"message":"進階設定"},"assistant_apply_rule_to_all_sites":{"message":"套用至所有網站"},"assistant_block_by_reference":{"message":"通過參考連結封鎖"},"assistant_block_similar":{"message":"封鎖相關或類似的"},"assistant_another_element":{"message":"選取其他網頁元素"},"assistant_preview":{"message":"預覽"},"assistant_block":{"message":"封鎖"},"assistant_settings":{"message":"助手設定"},"assistant_preview_end":{"message":"關閉預覽"},"wot_unknown_description":{"message":"此網站名譽尚未被 $1 評定"},"wot_bad_description":{"message":"根據 $1\\n此網站名譽非常糟糕"},"wot_poor_description":{"message":"根據 $1\\n此網站擁有不良的名譽"},"wot_unsatisfactory_description":{"message":"根據 $1\\n此網站擁有不好的名譽"},"wot_good_description":{"message":"根據 $1\\n此網站擁有良好的名譽"},"wot_excellent_description":{"message":"根據 $1\\n此網站擁有非常優秀的名譽"},"settings_choose_size_and_position":{"message":"調整 AdGuard 小助手大小與位置"},"settings_icon_size":{"message":"圖示大小:"},"settings_small":{"message":"小"},"settings_big":{"message":"大"},"settings_position":{"message":"位置:"},"settings_left_top":{"message":"左上角"},"settings_right_top":{"message":"右上角"},"settings_left_bottom":{"message":"左下角"},"settings_right_bottom":{"message":"右下角"},"settings_cancel":{"message":"取消"},"settings_save":{"message":"儲存變更"}}'); + +/***/ }, + +/***/ 9762 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard 小助手","description":"在瀏覽器中提供了簡易且直覺的管理過濾方式"}}}'); + +/***/ }, + +/***/ 6543 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"網站","settings_position_save_all":"所有的網站","settings_position_save_this":"此網站","assistant_select_element_start":"開始","assistant_select_element_text":"選擇於該頁面上之元件以封鎖。重新整理該頁面以取消元件封鎖模式。","menu_filtration_status":{"message":"對此網站之過濾"},"menu_do_not_filter_30_sec":{"message":"計 30 秒不過濾"},"menu_block_ad_on_site":{"message":"封鎖於此網站上之廣告"},"menu_report_abuse":{"message":"報告該網站"},"menu_site_report":{"message":"網站安全性報告"},"menu_settings":{"message":"助理設定"},"menu_wot_reputation_indicator":{"message":"網站信譽指標"},"menu_wot_reputation_confidence_level":{"message":"信譽信賴等級"},"assistant_select_element":{"message":"封鎖元件"},"assistant_select_element_ext":{"message":"點選想要封鎖的元件。AdGuard 將創建一條使用者規則。"},"assistant_select_element_cancel":{"message":"取消"},"assistant_block_element":{"message":"封鎖元件"},"assistant_block_element_explain":{"message":"建立元件封鎖規則"},"assistant_slider_explain":{"message":"移動滑塊以調整框架大小"},"assistant_extended_settings":{"message":"進階設定"},"assistant_apply_rule_to_all_sites":{"message":"對所有的網站套用該規則"},"assistant_block_by_reference":{"message":"按照參考連結封鎖"},"assistant_block_similar":{"message":"封鎖相似之物"},"assistant_another_element":{"message":"選擇不同的元件"},"assistant_preview":{"message":"預覽"},"assistant_block":{"message":"封鎖"},"assistant_settings":{"message":"助理設定"},"assistant_preview_header":{"message":"預覽已封鎖元件"},"assistant_preview_header_info":{"message":"檢查該元件是否被正確封鎖"},"assistant_preview_end":{"message":"離開預覽"},"wot_unknown_description":{"message":"此網站的信譽未被 $1 界定"},"wot_bad_description":{"message":"根據 $1,\\n此網站有非常壞的信譽"},"wot_poor_description":{"message":"根據 $1,\\n此網站有壞的信譽"},"wot_unsatisfactory_description":{"message":"根據 $1,\\n此網站有不好的信譽"},"wot_good_description":{"message":"根據 $1,\\n此網站有好的信譽"},"wot_excellent_description":{"message":"根據 $1,\\n此網站有極好的信譽"},"settings_choose_size_and_position":{"message":"調整 AdGuard 助理尺寸和位置"},"settings_icon_size":{"message":"圖示尺寸:"},"settings_small":{"message":"小的"},"settings_big":{"message":"大的"},"settings_position":{"message":"位置:"},"settings_left_top":{"message":"左上角"},"settings_right_top":{"message":"右上角"},"settings_left_bottom":{"message":"左下角"},"settings_right_bottom":{"message":"右下角"},"settings_cancel":{"message":"取消"},"settings_save":{"message":"儲存更改"}}'); + +/***/ }, + +/***/ 1066 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"AdGuard 助理","description":"提供簡單的且方便的方法以直接地從該瀏覽器管理過濾"}}}'); + +/***/ }, + +/***/ 9161 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"settings_position_save":"网站","settings_position_save_all":"所有网站","settings_position_save_this":"此网站","assistant_select_element_start":"开始","assistant_select_element_text":"选择要拦截的网页元素。要取消元素拦截模式,请刷新网页。","menu_filtration_status":{"message":"对此网站进行过滤"},"menu_do_not_filter_30_sec":{"message":"暂停过滤 30 秒"},"menu_block_ad_on_site":{"message":"拦截此网站上的广告"},"menu_report_abuse":{"message":"报告此网站"},"menu_site_report":{"message":"网站安全报告"},"menu_settings":{"message":"助手设置"},"menu_wot_reputation_indicator":{"message":"网站声誉指标"},"menu_wot_reputation_confidence_level":{"message":"声望置信度"},"assistant_select_element":{"message":"拦截元素"},"assistant_select_element_ext":{"message":"点击想要拦截的元素。AdGuard 将创建一条用户规则。"},"assistant_select_element_cancel":{"message":"取消"},"assistant_block_element":{"message":"拦截元素"},"assistant_block_element_explain":{"message":"创建元素拦截规则"},"assistant_slider_explain":{"message":"移动滑块以调整框架大小"},"assistant_extended_settings":{"message":"高级设置"},"assistant_apply_rule_to_all_sites":{"message":"应用规则至所有网站"},"assistant_block_by_reference":{"message":"通过参考链接进行拦截"},"assistant_block_similar":{"message":"拦截类似元素"},"assistant_another_element":{"message":"选择其它元素"},"assistant_preview":{"message":"预览"},"assistant_block":{"message":"拦截"},"assistant_settings":{"message":"AdGuard 助手设置"},"assistant_preview_header":{"message":"预览已拦截元素"},"assistant_preview_header_info":{"message":"检查该元素是否被正确拦截"},"assistant_preview_end":{"message":"退出预览"},"wot_unknown_description":{"message":"声望尚未定义"},"wot_bad_description":{"message":"此网站在以下数据库中声望极低"},"wot_poor_description":{"message":"此网站在以下数据库中声望低下 "},"wot_unsatisfactory_description":{"message":"此网站在以下数据库中声望不佳 "},"wot_good_description":{"message":"此网站在以下数据库中声望良好 "},"wot_excellent_description":{"message":"此网站在以下数据库中声望极佳 "},"settings_choose_size_and_position":{"message":"调整 AdGuard 助手的大小与位置"},"settings_icon_size":{"message":"图标大小:"},"settings_small":{"message":"小"},"settings_big":{"message":"大"},"settings_position":{"message":"位置:"},"settings_left_top":{"message":"左上角"},"settings_right_top":{"message":"右上角"},"settings_left_bottom":{"message":"左下角"},"settings_right_bottom":{"message":"右下角"},"settings_cancel":{"message":"取消"},"settings_save":{"message":"保存更改"}}'); + +/***/ }, + +/***/ 3492 +(module) { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"extension":{"assistant":{"name":"使用 AdGuard 助手","description":"提供简单方便的方法来管理浏览器筛选"}}}'); + +/***/ } + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_553913__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_553913__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_553913__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_553913__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __nested_webpack_require_553913__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __nested_webpack_require_553913__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__nested_webpack_require_553913__.o(definition, key) && !__nested_webpack_require_553913__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __nested_webpack_require_553913__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __nested_webpack_require_553913__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ __nested_webpack_require_553913__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 792: 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // no jsonp function +/******/ })(); +/******/ +/************************************************************************/ +var __nested_webpack_exports__ = {}; +// This entry needs to be wrapped in an IIFE because it needs to be in strict mode. +(() => { +"use strict"; +// ESM COMPAT FLAG +__nested_webpack_require_553913__.r(__nested_webpack_exports__); + +// EXPORTS +__nested_webpack_require_553913__.d(__nested_webpack_exports__, { + adguardAssistant: () => (/* binding */ adguardAssistant) +}); + +;// ./src/ioc.js +function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } +function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } +function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } +function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +var getArguments = function getArguments(func) { + // This regex is from require.js + var FN_ARGS = /^function\s*[^(]*\(\s*([^)]*)\)/m; + var args = func.toString().match(FN_ARGS)[1].split(','); + if (args[0] === '') { + return []; + } + return args; +}; +var Ioc = /*#__PURE__*/function () { + function Ioc() { + _classCallCheck(this, Ioc); + this.dependencies = {}; + } + return _createClass(Ioc, [{ + key: "resolveDependencies", + value: function resolveDependencies(func) { + var args = getArguments(func); + var resolved = []; + for (var i = 0; i < args.length; i += 1) { + var depName = args[i].trim(); + var dep = this.dependencies[depName]; + if (!dep) { + throw new Error("Can't find dependency: ".concat(depName)); + } + resolved.push(this.dependencies[depName]); + } + return resolved; + } + }, { + key: "register", + value: function register(qualifier, obj) { + this.dependencies[qualifier] = obj; + } + }, { + key: "get", + value: function get(func) { + if (typeof func === 'string') { + var resolved = this.dependencies[func]; + if (!resolved) { + throw new Error("Can't resolve ".concat(func)); + } + return resolved; + } + var resolvedDependencies = this.resolveDependencies(func); + function FuncWrapper() { + return func.apply(func, resolvedDependencies); + } + FuncWrapper.prototype = func.prototype; + return new FuncWrapper(); + } + }]); +}(); +var ioc = new Ioc(); +/* harmony default export */ const src_ioc = (ioc); +;// ./src/protectedApi.js +/** + * TODO: rewrite to class + * TODO: add relevant jsdoc + * Protected API + * @constructor + */ +function ProtectedApi() { + /** + * Default Trusted Types policy name provided by CoreLibs. + */ + var DEFAULT_POLICY_NAME = 'AGPolicy'; + var win = window; + var functionPType = Function.prototype; + var originalGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var _document = document, + documentMode = _document.documentMode, + documentElement = _document.documentElement; + var originalAppendChild = document.appendChild; + var originalJSON = win.JSON; + var functionApply = functionPType.apply; + var functionBind = functionPType.bind; + var COMPLETE = 'complete'; + var originalAttachShadow = documentElement.attachShadow; + + // eslint-disable-next-line func-names + var apply = typeof Reflect !== 'undefined' ? Reflect.apply : function (target, _this, _arguments) { + return functionApply.call(target, _this, _arguments); + }; + var noop = function noop() {}; + var methodCallerFactory = function methodCallerFactory(owner, prop) { + if (!owner) { + return noop; + } + // Keeps reference to the method, so that it is unaffected + // when `owner` is mutated. + var method = owner[prop]; + // eslint-disable-next-line consistent-return, func-names + return function () { + if (method) { + // eslint-disable-next-line prefer-rest-params + return apply(method, owner, arguments); + } + }; + }; + var getReadyState = function getReadyState() { + // We need to add this hook for tests, because a phantomjs + // doesn't work with Object.getOwnPropertyDescriptor correctly + if (typeof originalGetOwnPropertyDescriptor(Document.prototype, 'readyState') === 'undefined') { + return COMPLETE; + } + var readyStateGetter = originalGetOwnPropertyDescriptor(Document.prototype, 'readyState').get; + return apply(readyStateGetter, document, []); + }; + var addListenerToWindow = methodCallerFactory(win, 'addEventListener'); + var removeListenerFromWindow = methodCallerFactory(win, 'removeEventListener'); + var querySelector = methodCallerFactory(document, 'querySelector'); + var appendChildToElement = function appendChildToElement(elem, child) { + apply(originalAppendChild, elem, [child]); + }; + + /** + * Creating element instead `document.createElement` + * to prevented a custom `document.createElement` + * see: https://github.com/AdguardTeam/AdguardAssistant/issues/165 + * + * And also if browser supports Trusted Types, + * we will use it with default AdGuard policy to create elements from strings. + * see: https://github.com/AdguardTeam/AdguardAssistant/issues/438 + */ + var createElement = function createElement(markup) { + var doc = document.implementation.createHTMLDocument(''); + if (markup && markup[0] !== '<') { + // eslint-disable-next-line no-param-reassign + markup = "<".concat(markup, ">"); + } + try { + if (win.trustedTypes && win.trustedTypes.createPolicy) { + var policy = win.trustedTypes.createPolicy(DEFAULT_POLICY_NAME, { + createHTML: function createHTML(s) { + return s; + } + }); + // eslint-disable-next-line no-param-reassign + markup = policy.createHTML(markup); + } + } catch (e) { + // Do nothing + } + doc.body.innerHTML = markup; + return doc.body.firstChild; + }; + + /** + * Set innerHTML to element. + * + * @param {HTMLElement} element Element to add HTML. + * @param {string} html HTML string. + */ + var setInnerHtml = function setInnerHtml(element, html) { + // Clear existing content + while (element.lastChild) { + element.removeChild(element.lastChild); + } + + // Add new content + element.appendChild(createElement(html)); + }; + var json = { + parse: methodCallerFactory(originalJSON, 'parse'), + stringify: methodCallerFactory(originalJSON, 'stringify') + }; + + /** + * Creating style element + * @param {String} styles css styles in string + * @param {String} nonce attribute for content-security-policy + * @param {String} id to prevent duplicates, can be empty + * @return {Object|false} style tag with styles or false + * if the styles with transferred id is exist + */ + var createStylesElement = function createStylesElement(styles, nonce, id) { + if (id && querySelector("#".concat(id))) { + return false; + } + var tagNode = createElement('style'); + tagNode.setAttribute('type', 'text/css'); + if (id) { + tagNode.setAttribute('id', id); + } + tagNode.setAttribute('nonce', nonce); + if (tagNode.styleSheet) { + tagNode.styleSheet.cssText = styles; + } else { + appendChildToElement(tagNode, document.createTextNode(styles)); + } + return tagNode; + }; + + /** + * Check browser shadow dom support. + * Safari crashes after adding style tag in attachShadow so exclude it + * see: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/974 + */ + var checkShadowDomSupport = function checkShadowDomSupport() { + var SAFARI_UA_REGEX = /^((?!chrome|android).)*safari/i; + var isSafari = window.safari !== undefined || SAFARI_UA_REGEX.test(navigator.userAgent); + return typeof originalAttachShadow !== 'undefined' && !isSafari; + }; + return { + functionBind: functionBind, + addListenerToWindow: addListenerToWindow, + removeListenerFromWindow: removeListenerFromWindow, + getReadyState: getReadyState, + documentMode: documentMode, + appendChildToElement: appendChildToElement, + createElement: createElement, + setInnerHtml: setInnerHtml, + json: json, + createStylesElement: createStylesElement, + checkShadowDomSupport: checkShadowDomSupport + }; +} +var protectedApi = new ProtectedApi(); +/* harmony default export */ const src_protectedApi = (protectedApi); +;// ./src/wot.js +/** + * Object that manages wot data + * @returns {{ + * registerWotEventHandler: Function, + * getWotData: Function, + * getWotScorecardUrl: Function, + * WOT_URL: string + * }} + * @constructor + */ +function Wot() { + var wotUrlScorecardTemplate = 'https://link.adtidy.org/forward.html?action=wot_scorecard&from=main_menu&app=assistant&domain='; + var WOT_URL = 'https://link.adtidy.org/forward.html?action=wot&from=main_menu&app=assistant'; + var wotData = null; + var registerWotEventHandler = function registerWotEventHandler() { + var wotDataCb = function wotDataCb(data) { + wotData = data; + }; + if (window.WotData) { + wotData = window.WotData; + } else { + window.WotData = wotDataCb; + } + }; + var getWotData = function getWotData() { + return wotData; + }; + var getWotScorecardUrl = function getWotScorecardUrl(url) { + return "".concat(wotUrlScorecardTemplate).concat(url); + }; + return { + registerWotEventHandler: registerWotEventHandler, + getWotData: getWotData, + getWotScorecardUrl: getWotScorecardUrl, + WOT_URL: WOT_URL + }; +} +var wot = new Wot(); +/* harmony default export */ const src_wot = (wot); +;// ./src/utils/common-utils.js +var cropDomain = function cropDomain(domain) { + return domain.replace('www.', '').replace(/:\d+/, ''); +}; + +/** + * Force clear the page cache + * see: https://stackoverflow.com/questions/10719505/force-a-reload-of-page-in-chrome-using-javascript-no-cache/27058362#27058362 + * @param callback + */ +var bypassCache = function bypassCache(callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', window.location.href, true); + xhr.setRequestHeader('Pragma', 'no-cache'); + xhr.setRequestHeader('Expires', '-1'); + xhr.setRequestHeader('Cache-Control', 'no-cache'); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4 && callback) { + callback(); + } + }; + xhr.send(); +}; + +/** + * Reload page after bypassing cache + */ +var reloadPageBypassCache = function reloadPageBypassCache() { + bypassCache(function () { + window.location.reload(true); + }); +}; + +/** + * Multiple event handler helper. + * @param {Object} elements element or nodeList. + * @param {String} events multiple events divided by space. + * @param {Function} eventHandler event handler. + * @param {Boolean} useCapture capture. + * @return {Function} add/remove. + */ +var events = { + add: function add(elements, es, eventHandler, useCapture) { + this.addRemoveEvents(true, elements, es, eventHandler, useCapture); + }, + remove: function remove(elements, es, eventHandler, useCapture) { + this.addRemoveEvents(false, elements, es, eventHandler, useCapture); + }, + // eslint-disable-next-line consistent-return + addRemoveEvents: function addRemoveEvents(add, elements, es, eventHandler, useCapture) { + if (!elements || !es || !eventHandler) { + return false; + } + var eventList = es.split(' '); + if (!eventList || eventList.length < 1) { + return false; + } + if (!elements.length) { + // eslint-disable-next-line no-param-reassign + elements = new Array(elements); + } + for (var el = 0; el < elements.length; el += 1) { + for (var evt = 0; evt < eventList.length; evt += 1) { + if (!eventList[evt] || !eventList[evt].length) { + // eslint-disable-next-line no-continue + continue; + } + if (add) { + elements[el].addEventListener(eventList[evt], eventHandler, !!useCapture); + } else { + elements[el].removeEventListener(eventList[evt], eventHandler, !!useCapture); + } + } + } + } +}; + +/** + * Common utils + * @type {{ + * cropDomain: Function, + * bypassCache: Function, + * reloadPageBypassCache: Function, + * events: Object + * }} + */ +var CommonUtils = { + cropDomain: cropDomain, + bypassCache: bypassCache, + reloadPageBypassCache: reloadPageBypassCache, + events: events +}; +/* harmony default export */ const common_utils = ((/* unused pure expression or super */ null && (0))); +;// ./src/log.js +function log_typeof(o) { "@babel/helpers - typeof"; return log_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, log_typeof(o); } +/* global DEBUG */ +/** + * Simple logger with log levels + * @returns {{ + * warn: warn, + * info: info, + * debug: debug, + * error: error + * }} + * @constructor + */ +function Log() { + var currentLevel = false ? 0 : 'ERROR'; + var LogLevels = { + ERROR: 1, + WARN: 2, + INFO: 3, + DEBUG: 4 + }; + var print = function print(level, method, args) { + // check log level + if (LogLevels[currentLevel] < LogLevels[level]) { + return; + } + if (!args || args.length === 0 || !args[0]) { + return; + } + var formatted; + if (log_typeof(args[0]) === 'object') { + // eslint-disable-next-line prefer-destructuring + formatted = args[0]; + } else { + var str = "".concat(args[0]); + // eslint-disable-next-line no-param-reassign + args = Array.prototype.slice.call(args, 1); + formatted = str.replace(/{(\d+)}/g, function (match, number) { + return typeof args[number] !== 'undefined' ? args[number] : match; + }); + if (LogLevels[level] >= LogLevels[currentLevel]) { + var now = new Date(); + formatted = "".concat(now.toISOString(), ": ").concat(formatted); + } + } + // eslint-disable-next-line no-console + console[method](formatted); + }; + var debug = function debug() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + print('DEBUG', 'log', args); + }; + var info = function info() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + print('INFO', 'info', args); + }; + var warn = function warn() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + print('WARN', 'info', args); + }; + var error = function error() { + for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { + args[_key4] = arguments[_key4]; + } + print('ERROR', 'error', args); + }; + return { + debug: debug, + info: info, + warn: warn, + error: error + }; +} +var log = new Log(); +/* harmony default export */ const src_log = (log); +;// ./src/upgradeHelper.js +function upgradeHelper_typeof(o) { "@babel/helpers - typeof"; return upgradeHelper_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, upgradeHelper_typeof(o); } +function upgradeHelper_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function upgradeHelper_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, upgradeHelper_toPropertyKey(o.key), o); } } +function upgradeHelper_createClass(e, r, t) { return r && upgradeHelper_defineProperties(e.prototype, r), t && upgradeHelper_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function upgradeHelper_toPropertyKey(t) { var i = upgradeHelper_toPrimitive(t, "string"); return "symbol" == upgradeHelper_typeof(i) ? i : i + ""; } +function upgradeHelper_toPrimitive(t, r) { if ("object" != upgradeHelper_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != upgradeHelper_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + + + +/* eslint-disable no-param-reassign */ +/** + * Helper for backward compatibility + * @returns {{}} + * @constructor + */ +var UpgradeHelper = /*#__PURE__*/function () { + function UpgradeHelper() { + upgradeHelper_classCallCheck(this, UpgradeHelper); + this.Constants = { + BUTTON_POSITION_ITEM_NAME: '__adbpos' + }; + } + return upgradeHelper_createClass(UpgradeHelper, [{ + key: "getButtonPositionData", + value: function getButtonPositionData() { + try { + var userPosition = localStorage.getItem(this.Constants.BUTTON_POSITION_ITEM_NAME); + if (userPosition) { + return src_protectedApi.json.parse(userPosition); + } + return undefined; + } catch (ex) { + src_log.error(ex); + return undefined; + } + } + }, { + key: "removeUserPositionForButton", + value: function removeUserPositionForButton() { + try { + localStorage.removeItem(this.Constants.BUTTON_POSITION_ITEM_NAME); + } catch (ex) { + src_log.error(ex); + } + } + + // eslint-disable-next-line class-methods-use-this + }, { + key: "upgradeGmStorage", + value: function upgradeGmStorage(settings, version) { + settings.personal = {}; + settings.scriptVersion = version; + settings.personalConfig = true; + return settings; + } + + // Helper for assistant update from 4.1 to 4.2 + }, { + key: "upgradeLocalStorage", + value: function upgradeLocalStorage(settings, sitename) { + var position = this.getButtonPositionData(); + if (position) { + if (!settings.personal[sitename]) { + settings.personal[sitename] = {}; + } + settings.personal[sitename].position = position; + settings.personal[sitename].largeIcon = settings.largeIcon; + } + this.removeUserPositionForButton(); + return settings; + } + }]); +}(); +var upgradeHelper = new UpgradeHelper(); +/* harmony default export */ const src_upgradeHelper = (upgradeHelper); +;// ./src/gm.js +/* harmony default export */ const gm = ({}); +;// ./src/settings.js +function settings_typeof(o) { "@babel/helpers - typeof"; return settings_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, settings_typeof(o); } + + + + + + +/** + * Object that manages user settings. + * @returns {{ + * Constants: { + * MINIMUM_IE_SUPPORTED_VERSION: number, + * MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON: number, + * BUTTON_POSITION_ITEM_NAME: string, + * IFRAME_ID: string, + * PREVIEW_STYLE_ID: string, + * BLOCKED_ELEMENTS_STYLE_ID: string + * }, + * MenuItemsNames: { + * DetailedMenu: string, + * SelectorMenu: string, + * SliderMenu: string, + * BlockPreview: string, + * SettingsMenu: string + * }, + * getSettings: getSettings, + * loadSettings: loadSettings, + * getWotData: getWotData, + * setWotData: setWotData, + * saveSettings: saveSettings, + * getUserPositionForButton: getUserPositionForButton, + * removeUserPositionForButton: removeUserPositionForButton, + * selectedElement: *, + * setAdguardSettings: setAdguardSettings, + * getAdguardSettings: getAdguardSettings + * }} + * @constructor + */ +function Settings() { + var Constants = { + MINIMUM_IE_SUPPORTED_VERSION: 10, + MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON: 250, + IFRAME_ID: 'adguard-assistant-dialog', + PREVIEW_STYLE_ID: 'ag-preview-style-id', + BLOCKED_ELEMENTS_STYLE_ID: 'ag-hide-elements-style-id', + REPORT_URL: 'https://link.adtidy.org/forward.html?action=site_report_page&domain={0}&from=main_menu&app=assistant' + }; + var MenuItemsNames = { + DetailedMenu: 'mainMenu.html', + SelectorMenu: 'selectorMenu.html', + SliderMenu: 'sliderMenu.html', + BlockPreview: 'blockPreview.html', + SettingsMenu: 'settingsMenu.html' + }; + + /** + * Config data stored in GM storage + * @typedef {Object} DefaultConfig + * @property {boolean} buttonPositionTop - Static button position from top. + * @property {boolean} buttonPositionLeft - Static button position from left. + * @property {boolean} smallIcon - Button size. true - small, false - large. + * @property {boolean} personalConfig - Is the settings save for all + * sites or for each site individually. + * @property {number} scriptVersion - Version of scheme. 2 is set since assistant version 4.2. + * @property {object} personal - Object config that may includes the same properties, + * except `scriptVersion`, but for each site individually. + */ + var DefaultConfig = { + buttonPositionTop: false, + buttonPositionLeft: false, + smallIcon: false, + personalConfig: true, + scriptVersion: 2, + personal: {} + }; + var wotData = null; + var Config = null; + var adguardSettings = null; + var SITENAME = window.location.host; + var getSettings = function getSettings() { + return gm.getValue('settings').then(function (config) { + try { + return config && src_protectedApi.json.parse(config); + } catch (ex) { + src_log.error(ex); + return null; + } + }); + }; + var validateSettings = function validateSettings(settings) { + if (!settings) { + src_log.error('Invalid settings object'); + return false; + } + // eslint-disable-next-line no-restricted-syntax, prefer-const + for (var prop in settings) { + // eslint-disable-next-line no-prototype-builtins + if (!settings.hasOwnProperty(prop)) { + // eslint-disable-next-line no-continue + continue; + } + var property = DefaultConfig[prop]; + if (property && settings_typeof(property) !== settings_typeof(settings[prop])) { + src_log.error('Invalid settings object'); + return false; + } + } + if (settings.scriptVersion > DefaultConfig.scriptVersion) { + src_log.error('Invalid settings object'); + return false; + } + if (settings.scriptVersion < DefaultConfig.scriptVersion) { + src_log.info('Settings object is outdated. Updating...'); + // eslint-disable-next-line no-param-reassign + settings = src_upgradeHelper.upgradeGmStorage(settings, DefaultConfig.scriptVersion); + } + + // save to gm store position data from localStorage + // eslint-disable-next-line no-param-reassign + settings = src_upgradeHelper.upgradeLocalStorage(settings, SITENAME); + return settings; + }; + var loadSettings = function loadSettings(showButton) { + src_log.debug('Trying to get settings'); + + // getting config from gm storage + getSettings().then(function (config) { + // check and validate config data for prevent errors and backward compatibility + var checkedConfig = config && validateSettings(config); + if (checkedConfig) { + // saving existing settings to Config variable in the gm storage + Config = checkedConfig; + src_log.debug('Settings parsed successfully'); + } else { + // use default settings without saving + Config = DefaultConfig; + src_log.debug('No settings found'); + } + showButton(); + }); + }; + var saveSettings = function saveSettings(config) { + if (config) { + Config = config; + } + src_log.debug('Update settings...'); + src_log.debug(Config); + gm.setValue('settings', Config); + bypassCache(); + }; + var getWotData = wotData; + var setWotData = function setWotData(data) { + wotData = data; + }; + var setAdguardSettings = function setAdguardSettings(settings) { + if (typeof settings === 'undefined') { + src_log.info('No Adguard API Found'); + return; + } + adguardSettings = settings; + }; + var getAdguardSettings = function getAdguardSettings() { + return adguardSettings; + }; + var getUserPositionForButton = function getUserPositionForButton() { + var userPosition; + if (Config.personalConfig) { + if (Config.personal && Config.personal[SITENAME]) { + userPosition = Config.personal[SITENAME].position; + } + } else { + userPosition = Config.position; + } + if (userPosition) { + return userPosition; + } + return null; + }; + var setUserPositionForButton = function setUserPositionForButton(position) { + if (Config.personalConfig) { + if (!Config.personal[SITENAME]) { + Config.personal[SITENAME] = {}; + } + Config.personal[SITENAME].position = position; + } else { + Config.position = position; + } + saveSettings(Config); + }; + var setIconSize = function setIconSize(smallIcon) { + if (Config.personalConfig) { + Config.personal[SITENAME].smallIcon = smallIcon; + } else { + Config.smallIcon = smallIcon; + } + }; + var getIconSize = function getIconSize() { + if (Config.personalConfig && Config.personal && Config.personal[SITENAME]) { + return Config.personal[SITENAME].smallIcon; + } + return Config.smallIcon; + }; + + /** + * Set the parameters to which corner of the browser + * window the button position is placed by option (not drag) + */ + var setButtonSide = function setButtonSide(buttonSides) { + if (Config.personalConfig) { + delete Config.personal[SITENAME].position; + Config.personal[SITENAME].buttonPositionTop = buttonSides.top; + Config.personal[SITENAME].buttonPositionLeft = buttonSides.left; + } else { + delete Config.position; + Config.buttonPositionTop = buttonSides.top; + Config.buttonPositionLeft = buttonSides.left; + } + }; + + /** + * Save a setting that specifies how to save button settings: for all sites or only on this + */ + var setPersonalParam = function setPersonalParam(personalConfig) { + Config.personalConfig = personalConfig; + if (Config.personalConfig && !Config.personal) { + Config.personal = {}; + } + if (Config.personalConfig && !Config.personal[SITENAME]) { + Config.personal[SITENAME] = {}; + Config.personal[SITENAME].position = Config.position; + } + if (!Config.personalConfig && Config.personal) { + Config.position = Config.personal[SITENAME] && Config.personal[SITENAME].position; + delete Config.personal; + } + }; + + /** + * Get config that specifies how to save button settings: for all sites or only on this + */ + var getPersonalConfig = function getPersonalConfig() { + return Config.personalConfig; + }; + + /** + * Get the option to which corner of the browser window the button position is placed + * @return {Object} + */ + var getButtonSide = function getButtonSide() { + var config = Config; + if (config.personalConfig && config.personal && config.personal[SITENAME]) { + return { + top: config.personal[SITENAME].buttonPositionTop, + left: config.personal[SITENAME].buttonPositionLeft + }; + } + return { + top: config.buttonPositionTop, + left: config.buttonPositionLeft + }; + }; + return { + Constants: Constants, + MenuItemsNames: MenuItemsNames, + getSettings: getSettings, + loadSettings: loadSettings, + getWotData: getWotData, + setWotData: setWotData, + saveSettings: saveSettings, + getUserPositionForButton: getUserPositionForButton, + getButtonSide: getButtonSide, + setIconSize: setIconSize, + setUserPositionForButton: setUserPositionForButton, + setAdguardSettings: setAdguardSettings, + setPersonalParam: setPersonalParam, + setButtonSide: setButtonSide, + getAdguardSettings: getAdguardSettings, + getIconSize: getIconSize, + getPersonalConfig: getPersonalConfig + }; +} +var settings = new Settings(); +/* harmony default export */ const src_settings = (settings); +;// ./src/templates/button.html +// Module +var code = ` `; +// Exports +/* harmony default export */ const templates_button = (code); +;// ./src/templates/mainMenu.html +// Module +var mainMenu_code = ` `; +// Exports +/* harmony default export */ const mainMenu = (mainMenu_code); +;// ./src/templates/selectorMenu.html +// Module +var selectorMenu_code = `
`; +// Exports +/* harmony default export */ const selectorMenu = (selectorMenu_code); +;// ./src/templates/settingsMenu.html +// Module +var settingsMenu_code = `
`; +// Exports +/* harmony default export */ const settingsMenu = (settingsMenu_code); +;// ./src/templates/sliderMenu.html +// Module +var sliderMenu_code = `
`; +// Exports +/* harmony default export */ const sliderMenu = (sliderMenu_code); +;// ./src/templates/blockPreview.html +// Module +var blockPreview_code = `
`; +// Exports +/* harmony default export */ const blockPreview = (blockPreview_code); +;// ./src/templates/mobilePopup.html +// Module +var mobilePopup_code = `

`; +// Exports +/* harmony default export */ const mobilePopup = (mobilePopup_code); +;// ./src/templates/mobileMenu.html +// Module +var mobileMenu_code = ` `; +// Exports +/* harmony default export */ const mobileMenu = (mobileMenu_code); +;// ./src/templates/svgIcons.html +// Module +var svgIcons_code = ` `; +// Exports +/* harmony default export */ const svgIcons = (svgIcons_code); +// EXTERNAL MODULE: ./src/styles/base/base-common.less +var base_common = __nested_webpack_require_553913__(5640); +var base_common_default = /*#__PURE__*/__nested_webpack_require_553913__.n(base_common); +// EXTERNAL MODULE: ./src/styles/button.less +var styles_button = __nested_webpack_require_553913__(3623); +var button_default = /*#__PURE__*/__nested_webpack_require_553913__.n(styles_button); +// EXTERNAL MODULE: ./src/styles/menu.less +var menu = __nested_webpack_require_553913__(6644); +var menu_default = /*#__PURE__*/__nested_webpack_require_553913__.n(menu); +// EXTERNAL MODULE: ./src/styles/selector.less +var selector = __nested_webpack_require_553913__(4898); +var selector_default = /*#__PURE__*/__nested_webpack_require_553913__.n(selector); +// EXTERNAL MODULE: ./src/styles/mobile-style.less +var mobile_style = __nested_webpack_require_553913__(6501); +var mobile_style_default = /*#__PURE__*/__nested_webpack_require_553913__.n(mobile_style); +;// ./src/inline-resources.js + + + + + + + + + + + + + + +var CSS = { + common: (base_common_default()), + button: (button_default()), + iframe: (menu_default()), + selector: (selector_default()), + mobile: (mobile_style_default()) +}; +var HTML = { + button: templates_button, + detailed_menu: mainMenu, + selector_menu: selectorMenu, + settings_menu: settingsMenu, + slider_menu: sliderMenu, + preview: blockPreview, + popup: mobilePopup, + mobile_menu: mobileMenu, + svg_icons: svgIcons +}; +;// ./src/event.js +/** + * Custom event + * @returns {{attach: attach, notify: notify}} + * @constructor + */ +function CustomEvent() { + // jshint ignore:line + var listeners = []; + var attach = function attach(listener) { + listeners.push(listener); + }; + var notify = function notify(args) { + for (var i = 0; i < listeners.length; i += 1) { + listeners[i](args); + } + }; + return { + attach: attach, + notify: notify + }; +} +;// ./src/utils/dom-utils.js +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +/** + * Returns tag name for passed element + * @param {Element} element target element + */ +var getNodeName = function getNodeName(element) { + return element && element.nodeName ? element.nodeName.toUpperCase() : ''; +}; + +/** + * Returns arrays of parents for passed element + * @param {Element} element target element + */ +var getParentsLevel = function getParentsLevel(element) { + var parent = element; + var parentArr = []; + // eslint-disable-next-line no-cond-assign + while ((parent = parent.parentNode) && getNodeName(parent) !== 'BODY') { + parentArr.push(parent); + } + return parentArr; +}; + +/** + * Returns child element if it only one ELEMENT_NODE child + * @param {Element} element target element + */ +// eslint-disable-next-line consistent-return +var getSingleChildren = function getSingleChildren(element) { + var children = element.childNodes; + if (children) { + var count = 0; + var child; + for (var i = 0; i < children.length; i += 1) { + if (children[i].nodeType === 1) { + child = children[i]; + count += 1; + } + } + return count === 1 ? child : null; + } +}; + +/** + * Returns all children for target element + * @param {Element} element target element + */ +var getAllChildren = function getAllChildren(element) { + var childArray = []; + var child = element; + // eslint-disable-next-line no-cond-assign + while (child = getSingleChildren(child)) { + childArray.push(child); + } + return childArray; +}; + +/** + * Converts passed argument to array + * Usually used for transformatin NodeList to simple Array + * @param {any} elems + */ +var toArray = function toArray(elems) { + return elems && elems.length !== undefined ? Array.prototype.slice.call(elems) : [elems]; +}; + +/** + * Adds passed classes to target element + * @param {Element} elem target element + * @param {string} className string where classess must be separeted with space + */ +var addClass = function addClass(elem, className) { + var elems = toArray(elem); + elems.forEach(function (item) { + var classList = item.classList; + classList.add.apply(classList, _toConsumableArray(className.split(/\s/))); + }); +}; + +/** + * Removes passed classes from target element + * @param {Element} elem target element + * @param {string} className string where classess must be separeted with space + */ +var removeClass = function removeClass(elem, className) { + var elems = toArray(elem); + elems.forEach(function (item) { + var classList = item.classList; + classList.remove.apply(classList, _toConsumableArray(className.split(/\s/))); + }); +}; + +/** + * Checks whether class in target element + * @param {Element} elem target element + * @param {string} className target classname + */ +var hasClass = function hasClass(elem, className) { + var elems = toArray(elem); + var _elems = _slicedToArray(elems, 1), + target = _elems[0]; + return !!(target.classList && target.classList.contains(className)); +}; + +/** + * Makes element visible via style.display = block + * @param {Element} elem target element + */ +var show = function show(elem) { + var elems = toArray(elem); + elems.forEach(function (item) { + // eslint-disable-next-line no-param-reassign + item.style.display = 'block'; + }); +}; + +/** + * Makes element invisible via style.display = none + * @param {Element} elem target element + */ +var hide = function hide(elem) { + var elems = toArray(elem); + elems.forEach(function (item) { + // eslint-disable-next-line no-param-reassign + item.style.display = 'none'; + }); +}; + +/** + * Inlines css styles to target element + * @param {Element} elem target element + * @param {string} attr css name + * @param {string} value css value + */ +var addStyle = function addStyle(elem, attr, value) { + var elems = toArray(elem); + elems.forEach(function (item) { + // eslint-disable-next-line no-param-reassign + item.style[attr] = value; + }); +}; +// EXTERNAL MODULE: ./locales/index.js +var locales = __nested_webpack_require_553913__(8591); +;// ./src/localization.js +function localization_typeof(o) { "@babel/helpers - typeof"; return localization_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, localization_typeof(o); } +function localization_slicedToArray(r, e) { return localization_arrayWithHoles(r) || localization_iterableToArrayLimit(r, e) || localization_unsupportedIterableToArray(r, e) || localization_nonIterableRest(); } +function localization_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function localization_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return localization_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? localization_arrayLikeToArray(r, a) : void 0; } } +function localization_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function localization_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function localization_arrayWithHoles(r) { if (Array.isArray(r)) return r; } +/* global AdguardSettings */ + + +var _require = __nested_webpack_require_553913__(6539), + _require2 = localization_slicedToArray(_require, 1), + BASE_LOCALE = _require2[0].base_locale; + +/** + * Object that manages localizations + * @returns {{getMessage: Function, translateElement: Function}} + * @constructor + */ +function Localization() { + var currentLocale = null; + var locale; + + // convert locales keys to lower case + var supportedLocales = Object.keys(locales["default"]).reduce(function (acc, key) { + var lowerCasedKey = key.toLowerCase(); + acc[lowerCasedKey] = locales["default"][key]; + return acc; + }, {}); + + /* + * In Edge, there is undocumented behavior. When you run the script + * through `executeScript`, the Edge browser blocks access to the + * `languages` property of the `navigator` object without displaying + * an error in the console and stopping the processing of the code. + * When you call `navigator.languages` manually from the console, + * there is no error and the correct value is returned. Therefore, + * it is necessary to check `typeof navigator.languages !== 'undefined'`. + * issue: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/983 + */ + if (typeof AdguardSettings !== 'undefined') { + // eslint-disable-next-line prefer-destructuring + locale = AdguardSettings.locale; + } else if (typeof navigator.languages !== 'undefined') { + // eslint-disable-next-line prefer-destructuring + locale = navigator.languages[0]; + } else if (navigator.language) { + locale = navigator.language; + } else if (navigator.browserLanguage) { + locale = navigator.browserLanguage; + } else { + locale = BASE_LOCALE; + } + if (supportedLocales[locale]) { + currentLocale = locale; + } else if (supportedLocales[locale.toLowerCase()]) { + currentLocale = locale.toLowerCase(); + } else { + var langSplit = locale.split('-')[0]; + if (supportedLocales[langSplit]) { + currentLocale = langSplit; + } else { + currentLocale = BASE_LOCALE; + } + } + var getMessage = function getMessage(messageId) { + var message = supportedLocales[currentLocale][messageId]; + if (!message) { + return localization_typeof(supportedLocales[BASE_LOCALE][messageId]) === 'object' ? supportedLocales[BASE_LOCALE][messageId].message : supportedLocales[BASE_LOCALE][messageId] || ''; + } + return supportedLocales[currentLocale][messageId].message || supportedLocales[currentLocale][messageId]; + }; + var createElement = function createElement(tagName, attributes) { + var el = src_protectedApi.createElement(tagName); + if (!attributes) { + return el; + } + var attrs = attributes.split(/([a-z]+='[^']+')/); + for (var i = 0; i < attrs.length; i += 1) { + var attr = attrs[i].trim(); + if (!attr) { + // eslint-disable-next-line no-continue + continue; + } + var index = attr.indexOf('='); + var attrName = void 0; + var attrValue = void 0; + if (index > 0) { + attrName = attr.substring(0, index); + attrValue = attr.substring(index + 2, attr.length - 1); + } + if (attrName && attrValue) { + el.setAttribute(attrName, attrValue); + } + } + return el; + }; + var _processString = function processString(str, element) { + var el; + var match1 = /^([^]*?)<(a|strong|span|i)([^>]*)>(.*?)<\/\2>([^]*)$/m.exec(str); + var match2 = /^([^]*?)<(br|input)([^>]*)\/?>([^]*)$/m.exec(str); + if (match1) { + _processString(match1[1], element); + el = createElement(match1[2], match1[3]); + _processString(match1[4], el); + element.appendChild(el); + _processString(match1[5], element); + } else if (match2) { + _processString(match2[1], element); + el = createElement(match2[2], match2[3]); + element.appendChild(el); + _processString(match2[4], element); + } else { + element.appendChild(document.createTextNode(str.replace(/ /g, "\xA0"))); + } + }; + var translateElement = function translateElement(element, message) { + try { + while (element.lastChild) { + element.removeChild(element.lastChild); + } + _processString(message, element); + } catch (ex) { + // Ignore exceptions + } + }; + return { + getMessage: getMessage, + translateElement: translateElement + }; +} +var localization = new Localization(); +/* harmony default export */ const src_localization = (localization); +;// ./src/controllers/mainMenuController.js + + + + + + + + + +/** + * Main menu controller + * @param iframe + * @returns {{init: init}} + * @constructor + */ +function DetailedMenuController(iframe) { + var contentDocument = null; + var iframeCtrl = iframe; + var domain = null; + var FILTERING_STATE_LS_PROPERTY = '__adfstate'; + var CONFIDENCE_LEVEL = { + ZERO: { + from: 0, + to: 5 + }, + ONE: { + from: 6, + to: 11 + }, + TWO: { + from: 12, + to: 22 + }, + THREE: { + from: 23, + to: 33 + }, + FOUR: { + from: 34, + to: 44 + }, + FIVE: { + from: 45, + to: Infinity + } + }; + var setDomain = function setDomain() { + domain = decodeURIComponent(window.location.hostname); + contentDocument.getElementsByClassName('menu-head_name')[0].textContent = domain || 'unknown'; + }; + var truncateDecimals = function truncateDecimals(number) { + return Math[number < 0 ? 'ceil' : 'floor'](number); + }; + var getWotReputationSettings = function getWotReputationSettings(wotData) { + if (!wotData) { + return null; + } + var prefix = 'adg-wot-'; + var averageWot = wotData.reputation; + var wotRatingText = null; + var wotRating = null; + if (averageWot === 0) { + wotRatingText = src_localization.getMessage('wot_unknown_description'); + wotRating = "".concat(prefix, "unknown"); + return { + text: wotRatingText, + "class": wotRating + }; + } + var wotSettings = { + 0: { + color: 'red', + string: src_localization.getMessage('wot_bad_description') + }, + 1: { + color: 'lightRed', + string: src_localization.getMessage('wot_poor_description') + }, + 2: { + color: 'yellow', + string: src_localization.getMessage('wot_unsatisfactory_description') + }, + 3: { + color: 'lightGreen', + string: src_localization.getMessage('wot_good_description') + }, + 4: { + color: 'green', + string: src_localization.getMessage('wot_excellent_description') + }, + 5: { + color: 'green', + string: src_localization.getMessage('wot_excellent_description') + } + }; + var current = wotSettings[truncateDecimals(averageWot / 20)]; + wotRatingText = current.string; + wotRating = prefix + current.color; + return { + text: wotRatingText, + "class": wotRating + }; + }; + var getWotConfidenceClass = function getWotConfidenceClass(wotData) { + if (!wotData) { + return null; + } + var prefix = 'adg-wot-confidence-'; + var isThisLevel = function isThisLevel(num, level) { + return num >= level.from && num <= level.to; + }; + var confidenceWot = wotData.confidence; + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.ZERO)) { + return "".concat(prefix, "0"); + } + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.ONE)) { + return "".concat(prefix, "1"); + } + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.TWO)) { + return "".concat(prefix, "2"); + } + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.THREE)) { + return "".concat(prefix, "3"); + } + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.FOUR)) { + return "".concat(prefix, "4"); + } + if (isThisLevel(confidenceWot, CONFIDENCE_LEVEL.FIVE)) { + return "".concat(prefix, "5"); + } + return undefined; + }; + var setWotData = function setWotData() { + var wotData = src_wot.getWotData(); + var wotReputationSettings = getWotReputationSettings(wotData); + if (!wotReputationSettings) { + return; + } + var wotIndication = contentDocument.querySelector('#WotIndication'); + addClass(wotIndication, wotReputationSettings["class"]); + wotIndication.dataset.title = src_localization.getMessage('menu_wot_reputation_indicator'); + var wotDescriptionText = contentDocument.querySelector('#WotDescriptionText'); + var wotLogo = ''; + src_protectedApi.setInnerHtml(wotDescriptionText, wotReputationSettings.text.replace('$1', wotLogo)); + var confidenceIndication = contentDocument.querySelector('#ConfidenceIndication'); + var wotConfidenceClass = getWotConfidenceClass(wotData); + addClass(confidenceIndication, wotConfidenceClass); + wotIndication.dataset.title = src_localization.getMessage('menu_wot_reputation_confidence_level'); + var wotLinkElem = contentDocument.querySelector('.wot-indicator'); + wotLinkElem.href = src_wot.getWotScorecardUrl(domain); + removeClass(contentDocument.querySelectorAll('.wot-hide'), 'wot-hide'); + }; + var startAdSelector = function startAdSelector() { + iframeCtrl.showSelectorMenu(); + }; + var goToWotUrl = function goToWotUrl() { + window.open(src_wot.WOT_URL, '_blank'); + }; + var doNotBlock = function doNotBlock() { + gm.ADG_temporaryDontBlock(30, function () { + reloadPageBypassCache(); + }); + }; + var reportAbuse = function reportAbuse() { + gm.ADG_sendAbuse(function () { + iframeCtrl.removeIframe(); + }); + }; + var goToSiteReport = function goToSiteReport() { + var url = src_settings.Constants.REPORT_URL.replace('{0}', domain); + window.open(url, '_blank'); + }; + var showHideBlockAdButton = function showHideBlockAdButton(isFilter) { + var blockAd = contentDocument.querySelector('#block-ad'); + if (isFilter) { + removeClass(blockAd, 'hidden'); + } else { + addClass(blockAd, 'hidden'); + } + iframeCtrl.resizeIframe(); + }; + + /** + * Storing the filtering state for quick initialization + * + * @param {Boolean} state on/off filtering state + */ + // eslint-disable-next-line consistent-return + var setFilteringStateToStore = function setFilteringStateToStore(state) { + try { + localStorage.setItem(FILTERING_STATE_LS_PROPERTY, src_protectedApi.json.stringify({ + state: state + })); + } catch (ex) { + src_log.error(ex); + return null; + } + }; + var onIsFilterChange = function onIsFilterChange() { + var isFilter = contentDocument.getElementById('is-filter').checked; + + // animate class for prevent animation while the state from the application is determined + addClass(contentDocument.querySelectorAll('.menu-filter_label'), 'animate'); + showHideBlockAdButton(isFilter); + setFilteringStateToStore(isFilter); + gm.ADG_changeFilteringState(isFilter, function () { + reloadPageBypassCache(); + }); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.close': iframeCtrl.removeIframe, + '#block-ad': startAdSelector, + '#assistant-settings': iframeCtrl.showSettingsMenu, + '#WotLogo': goToWotUrl, + '#do-not-block-30-sec': doNotBlock, + '#report-abuse': reportAbuse, + '#site-report': goToSiteReport, + '#is-filter': onIsFilterChange + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + }; + + /** + * Getting the filtering state for quick initialization from the localStorage, + * while the state from the application is determined + * + * @returns {Boolean} on/off filtering state + */ + var getFilteringStateFromStore = function getFilteringStateFromStore() { + try { + var state = localStorage.getItem(FILTERING_STATE_LS_PROPERTY); + if (state) { + return src_protectedApi.json.parse(state).state; + } + return false; + } catch (ex) { + src_log.error(ex); + return false; + } + }; + var setInitFilteringState = function setInitFilteringState() { + var input = contentDocument.getElementById('is-filter'); + input.checked = getFilteringStateFromStore(); + gm.ADG_isFiltered(function (isFiltered) { + input.checked = isFiltered; + setFilteringStateToStore(isFiltered); + showHideBlockAdButton(isFiltered); + }); + }; + + /* + Called from IframeController._showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe) { + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + setDomain(); + setWotData(); + bindEvents(); + setInitFilteringState(); + }; + return { + init: init + }; +} +;// ./src/adguard-selector.js +function adguard_selector_typeof(o) { "@babel/helpers - typeof"; return adguard_selector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, adguard_selector_typeof(o); } +/* eslint-disable no-param-reassign, func-names */ + + + +/** + * Adguard selector + * @type {Function} + */ +function AdguardSelector() { + var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var PLACEHOLDER_PREFIX = 'adguard-placeholder'; + var placeholdedElements = null; + var transparentPlaceholdedElement = null; + var restrictedElements = null; + var SELECTED_CLASS = 'adguard_sg_selected'; + var REJECTED_CLASS = 'adguard_sg_rejected'; + var IGNORED_CLASS = 'adguard_sg_ignore'; + var unbound = true; + var onElementSelectedHandler = null; + var ignoreTouchEvent = 0; + var selectionRenderer; + + // PRIVATE METHODS + + var removeClassName = function removeClassName(className) { + var elem = document.querySelectorAll(".".concat(className)); + removeClass(elem, className); + }; + var firstSelectedOrSuggestedParent = function firstSelectedOrSuggestedParent(element) { + if (hasClass(element, SELECTED_CLASS)) { + return element; + } + + // eslint-disable-next-line no-cond-assign, no-param-reassign + while (element.parentNode && (element = element.parentNode)) { + if (restrictedElements.indexOf(element) === -1) { + if (hasClass(element, SELECTED_CLASS)) { + return element; + } + } + } + return null; + }; + var px = function px(p) { + return "".concat(p, "px"); + }; + var getTagPath = function getTagPath(element) { + if (element.parentNode) { + return "".concat(element.parentNode.tagName.toLowerCase(), " ").concat(element.tagName.toLowerCase()); + } + return element.tagName.toLowerCase(); + }; + + /** ******** Events ************** */ + var sgMouseoverHandler = function sgMouseoverHandler(e) { + e.stopPropagation(); + if (unbound) { + return true; + } + if (this === document.documentElement || this === document.documentElement.parentNode) { + return false; + } + var parent = firstSelectedOrSuggestedParent(this); + if (parent !== null && parent !== this) { + selectionRenderer.add(parent); + } else { + selectionRenderer.add(this); + } + return false; + }; + + // e.isTrusted checking for prevent programmatically events + // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134 + var sgMousedownHandler = function sgMousedownHandler(e) { + if (e && e.isTrusted === false) { + return false; + } + if (hasClass(e.target, IGNORED_CLASS)) { + return false; + } + e.preventDefault(); + e.stopImmediatePropagation(); + if (unbound) { + return true; + } + var elem = e.target; + var borders = elem === selectionRenderer.borderTop || elem === selectionRenderer.borderLeft || elem === selectionRenderer.borderRight || elem === selectionRenderer.borderBottom; + if (borders) { + // Clicked on one of our floating borders, target the element that we are bordering. + elem = elem.target_elem || elem; + } + if (elem === document.documentElement || elem === document.documentElement.parentNode) { + return undefined; + } + selectionRenderer.remove(); + onElementSelectedHandler(elem); + return false; + }; + + /** ******** Touch event handlers ************** */ + var touchElementSelectHandler = function touchElementSelectHandler(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + sgMouseoverHandler.call(this, e); + sgMousedownHandler.call(this, e); + }; + var removeElementToPreventEvents = function removeElementToPreventEvents() { + if (!transparentPlaceholdedElement) { + return false; + } + transparentPlaceholdedElement.removeEventListener('click', touchElementSelectHandler); + transparentPlaceholdedElement.removeEventListener('touchstart', touchElementSelectHandler); + transparentPlaceholdedElement.removeEventListener('pointerdown', touchElementSelectHandler); + transparentPlaceholdedElement.parentNode.removeChild(transparentPlaceholdedElement); + transparentPlaceholdedElement = null; + return undefined; + }; + var clearSelected = function clearSelected() { + removeElementToPreventEvents(); + removeClassName(SELECTED_CLASS); + removeClassName(REJECTED_CLASS); + selectionRenderer.remove(); + }; + + /** + * Returns element offset coordinates extended with width and height values. + * + * @param elem + * @returns {{top: number, left: number, outerWidth: number, outerHeight: number}} + */ + var getOffsetExtended = function getOffsetExtended(elem) { + var bodyRect = document.documentElement.getBoundingClientRect(); + var elemRect = elem.getBoundingClientRect(); + var rectTop = elemRect.top - bodyRect.top; + var rectLeft = elemRect.left - bodyRect.left; + return { + top: rectTop, + left: rectLeft, + outerWidth: elem.offsetWidth, + outerHeight: elem.offsetHeight + }; + }; + + /** + * Adds borders to selected element. + * + * Default implementation of selection renderer. + * Can be overwritten with custom implementation as a parameter of init function. + * + * @param element + * @private + */ + // eslint-disable-next-line no-shadow + var BorderSelectionRenderer = function (api) { + var BORDER_WIDTH = 5; + var BORDER_PADDING = 2; + var BORDER_CSS = { + position: 'absolute', + background: 'white', + margin: '0px', + padding: '0px', + display: 'block', + "float": 'none', + border: '0', + outline: '0', + 'background-color': '#13a35e', + 'font-style': 'normal', + 'vertical-align': 'baseline', + 'text-align': 'left', + 'line-height': '12px', + 'box-sizing': 'content-box', + 'min-height': 'auto', + 'max-height': 'auto', + 'min-width': 'auto', + 'max-width': 'auto', + width: 0, + height: 0, + 'z-index': 2147483646, + 'border-radius': 0 + }; + var BORDER_BOTTOM_CSS = { + 'font-size': '10px', + 'font-weight': 'bold', + color: 'white', + padding: '2px 0px 2px 5px', + overflow: 'hidden' + }; + var borderTop = null; + var borderLeft = null; + var borderRight = null; + var borderBottom = null; + var showBorders = function showBorders() { + if (borderTop && borderBottom && borderLeft && borderRight) { + show(borderTop); + show(borderBottom); + show(borderLeft); + show(borderRight); + } + }; + var addBorderToDom = function addBorderToDom() { + document.documentElement.appendChild(borderTop); + document.documentElement.appendChild(borderBottom); + document.documentElement.appendChild(borderLeft); + document.documentElement.appendChild(borderRight); + }; + var addBorderCSS = function addBorderCSS() { + Object.keys(BORDER_CSS).forEach(function (item) { + borderTop.style[item] = BORDER_CSS[item]; + borderBottom.style[item] = BORDER_CSS[item]; + borderLeft.style[item] = BORDER_CSS[item]; + borderRight.style[item] = BORDER_CSS[item]; + }); + Object.keys(BORDER_BOTTOM_CSS).forEach(function (item) { + borderBottom.style[item] = BORDER_BOTTOM_CSS[item]; + }); + }; + var removeBorderFromDom = function removeBorderFromDom() { + if (borderTop) { + var parent = borderTop.parentNode; + if (parent) { + parent.removeChild(borderTop); + parent.removeChild(borderBottom); + parent.removeChild(borderLeft); + parent.removeChild(borderRight); + } + } + borderTop = null; + borderBottom = null; + borderRight = null; + borderLeft = null; + }; + + /** + * Preparing renderer. + */ + api.init = function () { + if (!borderTop) { + var width = px(BORDER_WIDTH); + var bottomHeight = px(BORDER_WIDTH + 6); + borderTop = src_protectedApi.createElement('div'); + borderBottom = src_protectedApi.createElement('div'); + borderLeft = src_protectedApi.createElement('div'); + borderRight = src_protectedApi.createElement('div'); + borderTop.addEventListener('click', sgMousedownHandler); + borderBottom.addEventListener('click', sgMousedownHandler); + borderLeft.addEventListener('click', sgMousedownHandler); + borderRight.addEventListener('click', sgMousedownHandler); + addStyle(borderTop, 'height', width); + addStyle(borderBottom, 'height', bottomHeight); + addStyle(borderLeft, 'width', width); + addStyle(borderRight, 'width', width); + hide(borderTop); + hide(borderBottom); + hide(borderLeft); + hide(borderRight); + + // eslint-disable-next-line prefer-destructuring + api.borderTop = borderTop; + // eslint-disable-next-line prefer-destructuring + api.borderBottom = borderBottom; + // eslint-disable-next-line prefer-destructuring + api.borderLeft = borderLeft; + // eslint-disable-next-line prefer-destructuring + api.borderRight = borderRight; + addBorderCSS(); + addBorderToDom(); + } + }; + + /** + * Clearing DOM and so on. + */ + api.finalize = function () { + removeBorderFromDom(); + }; + + /** + * Adds borders to specified element + * + * @param element + */ + api.add = function (element) { + api.remove(); + if (!element) { + return; + } + var p = getOffsetExtended(element); + var top = p.top; + var left = p.left; + var width = p.outerWidth; + var height = p.outerHeight; + addStyle(borderTop, 'width', px(width + BORDER_PADDING * 2 + BORDER_WIDTH * 2)); + addStyle(borderTop, 'height', px(5)); + addStyle(borderTop, 'top', px(top - BORDER_WIDTH - BORDER_PADDING)); + addStyle(borderTop, 'left', px(left - BORDER_PADDING - BORDER_WIDTH)); + addStyle(borderBottom, 'width', px(width + BORDER_PADDING * 2 + BORDER_WIDTH)); + addStyle(borderBottom, 'height', px(12)); + addStyle(borderBottom, 'top', px(top + height + BORDER_PADDING)); + addStyle(borderBottom, 'left', px(left - BORDER_PADDING - BORDER_WIDTH)); + addStyle(borderLeft, 'height', px(height + BORDER_PADDING * 2)); + addStyle(borderLeft, 'width', px(5)); + addStyle(borderLeft, 'top', px(top - BORDER_PADDING)); + addStyle(borderLeft, 'left', px(left - BORDER_PADDING - BORDER_WIDTH)); + addStyle(borderRight, 'height', px(height + BORDER_PADDING * 2)); + addStyle(borderRight, 'width', px(5)); + addStyle(borderRight, 'top', px(top - BORDER_PADDING)); + addStyle(borderRight, 'left', px(left + width + BORDER_PADDING)); + borderBottom.textContent = getTagPath(element); + borderRight.target_elem = element; + borderLeft.target_elem = element; + borderTop.target_elem = element; + borderBottom.target_elem = element; + showBorders(); + }; + + /** + * Removes borders + */ + api.remove = function () { + if (borderTop && borderBottom && borderLeft && borderRight) { + hide(borderTop); + hide(borderBottom); + hide(borderLeft); + hide(borderRight); + } + }; + return api; + // eslint-disable-next-line no-use-before-define + }(BorderSelectionRenderer || {}); + var linkHelper = src_protectedApi.createElement('a'); + var getHost = function getHost(url) { + if (!url) { + return ''; + } + linkHelper.href = url; + return linkHelper.hostname; + }; + var makePlaceholderImage = function makePlaceholderImage(element) { + var placeHolder = src_protectedApi.createElement('div'); + var style = window.getComputedStyle(element); + placeHolder.style.height = style.height; + placeHolder.style.width = style.width; + placeHolder.style.position = style.position; + placeHolder.style.top = style.top; + placeHolder.style.bottom = style.bottom; + placeHolder.style.left = style.left; + placeHolder.style.right = style.right; + placeHolder.className += "".concat(PLACEHOLDER_PREFIX, " ").concat(IGNORED_CLASS); + var icon = src_protectedApi.createElement('div'); + icon.className += "".concat(PLACEHOLDER_PREFIX, "-icon ").concat(IGNORED_CLASS); + var domain = src_protectedApi.createElement('div'); + domain.textContent = getHost(element.src); + domain.className += "".concat(PLACEHOLDER_PREFIX, "-domain ").concat(IGNORED_CLASS); + icon.appendChild(domain); + placeHolder.appendChild(icon); + return placeHolder; + }; + var removePlaceholders = function removePlaceholders() { + removeElementToPreventEvents(); + if (!placeholdedElements) { + return; + } + var elements = placeholdedElements; + for (var i = 0; i < elements.length; i += 1) { + var current = elements[i]; + var id = PLACEHOLDER_PREFIX + i; + var placeHolder = document.querySelector("#".concat(id)); + if (placeHolder) { + var parent = placeHolder.parentNode; + if (parent) { + parent.replaceChild(current, placeHolder); + } + } + } + placeholdedElements = null; + }; + var placeholderClick = function placeholderClick(element) { + selectionRenderer.remove(); + removePlaceholders(); + onElementSelectedHandler(element); + }; + + /** + * Making top level transparent layer to prevented events on emerging ad. + * see: https://github.com/AdguardTeam/AdguardAssistant/issues/220 + * + * @param element element where ad is added + */ + var preventEvents = function preventEvents(element) { + var placeHolder = src_protectedApi.createElement('div'); + var style = getOffsetExtended(element); + placeHolder.style.height = px(style.outerHeight); + placeHolder.style.width = px(style.outerWidth); + placeHolder.style.top = px(style.top); + placeHolder.style.left = px(style.left); + placeHolder.style.background = 'transparent'; + placeHolder.style.position = 'absolute'; + placeHolder.style['pointer-events'] = 'all'; + placeHolder.style['box-sizing'] = 'content-box'; + placeHolder.style['z-index'] = '2147483646'; + placeHolder.className += IGNORED_CLASS; + transparentPlaceholdedElement = placeHolder; + placeHolder.addEventListener('click', touchElementSelectHandler); + placeHolder.addEventListener('touchstart', touchElementSelectHandler); + placeHolder.addEventListener('pointerdown', touchElementSelectHandler); + document.documentElement.appendChild(placeHolder); + }; + var gestureEndHandler = function gestureEndHandler() { + ignoreTouchEvent = 2; + return true; + }; + var touchMoveHandler = function touchMoveHandler() { + ignoreTouchEvent = 1; + return true; + }; + var needIgnoreTouchEvent = function needIgnoreTouchEvent() { + if (ignoreTouchEvent > 0) { + ignoreTouchEvent -= 1; + return true; + } + return false; + }; + var makeIFrameAndEmbeddedSelector = function makeIFrameAndEmbeddedSelector() { + var iframeElements = document.querySelectorAll("iframe:not(.".concat(IGNORED_CLASS, "),embed,object")); + placeholdedElements = toArray(iframeElements).filter(function (elem) { + var isVisible = elem.style.display !== 'none'; + var isHaveSize = elem.offsetWidth !== 0 && elem.offsetHeight !== 0; + return isVisible && isHaveSize; + }); + var _loop = function _loop(i) { + var current = placeholdedElements[i]; + // eslint-disable-next-line no-shadow + (function (current) { + var placeHolder = makePlaceholderImage(current); + var id = PLACEHOLDER_PREFIX + i; + placeHolder.setAttribute('id', id); + var parent = current.parentNode; + if (parent) { + parent.replaceChild(placeHolder, current); + placeHolder.addEventListener('gestureend', gestureEndHandler); + placeHolder.addEventListener('touchmove', touchMoveHandler); + // eslint-disable-next-line consistent-return + placeHolder.addEventListener('touchend', function (e) { + e.preventDefault(); + if (needIgnoreTouchEvent()) { + return true; + } + placeholderClick(current); + }); + var elems = document.querySelectorAll("#".concat(id)); + toArray(elems).forEach(function (elem) { + elem.addEventListener('click', function (e) { + e.preventDefault(); + placeholderClick(current); + }); + }); + } + })(current); + }; + for (var i = 0; i < placeholdedElements.length; i += 1) { + _loop(i); + } + }; + var sgMouseoutHandler = function sgMouseoutHandler() { + if (unbound) { + return true; + } + if (this === document.documentElement || this === document.documentElement.parentNode) { + return false; + } + selectionRenderer.remove(); + return false; + }; + var elementTouchendHandler = function elementTouchendHandler(e) { + if (hasClass(e.target, IGNORED_CLASS)) { + return false; + } + e.stopPropagation(); + if (needIgnoreTouchEvent()) { + return true; + } + touchElementSelectHandler.call(this, e); + return false; + }; + var emptyEventHandler = function emptyEventHandler(e) { + e.stopPropagation(); + return false; + }; + var setupEventHandlers = function setupEventHandlers() { + makeIFrameAndEmbeddedSelector(); + var elements = document.querySelectorAll("body *:not(.".concat(IGNORED_CLASS, ")")); + toArray(elements).forEach(function (el) { + el.addEventListener('gestureend', gestureEndHandler); + el.addEventListener('touchmove', touchMoveHandler); + el.addEventListener('touchend', elementTouchendHandler, true); + el.addEventListener('touchstart', emptyEventHandler); + el.addEventListener('mouseover', sgMouseoverHandler); + el.addEventListener('mouseout', sgMouseoutHandler); + el.addEventListener('click', sgMousedownHandler, true); + }); + }; + var deleteEventHandlers = function deleteEventHandlers() { + removePlaceholders(); + var elements = document.querySelectorAll('body *'); + toArray(elements).forEach(function (el) { + el.removeEventListener('gestureend', gestureEndHandler); + el.removeEventListener('touchmove', touchMoveHandler); + el.removeEventListener('touchend', elementTouchendHandler, true); + el.removeEventListener('touchstart', emptyEventHandler); + el.removeEventListener('mouseover', sgMouseoverHandler); + el.removeEventListener('mouseout', sgMouseoutHandler); + el.removeEventListener('click', sgMousedownHandler, true); + }); + }; + + // Define default implementation of selection renderer. + selectionRenderer = BorderSelectionRenderer; + + // PUBLIC API + + /** + * Starts selector module. + * + * @param onElementSelected callback function + * @param selectionRenderImpl optional object contains selection presentation implementation + */ + api.init = function (onElementSelected, selectionRenderImpl) { + onElementSelectedHandler = onElementSelected; + if (selectionRenderImpl && adguard_selector_typeof(selectionRenderImpl) === 'object') { + selectionRenderer = selectionRenderImpl; + } + restrictedElements = ['html', 'body', 'head', 'base'].map(function (selector) { + return document.querySelector(selector); + }); + selectionRenderer.init(); + setupEventHandlers(); + unbound = false; + }; + + /** + * Resets state of selector. + * Clears current selection. + */ + api.reset = function () { + clearSelected(); + }; + + /** + * Destroys selector module. + * Removes all selector elements and unbinds event handlers. + */ + api.close = function () { + unbound = true; + selectionRenderer.finalize(); + deleteEventHandlers(); + }; + + /** + * Selects specified element. + * Marks element as selected and holds selection on it. + * + * @param element + */ + api.selectElement = function (element) { + selectionRenderer.add(element); + removePlaceholders(); + unbound = true; + preventEvents(element); + }; + + /** + Returns css class name. + If this class assigns to HTML element, then Adguard Selector ignores it. + */ + // eslint-disable-next-line func-names + api.ignoreClassName = function () { + return IGNORED_CLASS; + }; + return api; +} +var adguard_selector_selector = new AdguardSelector(); +/* harmony default export */ const adguard_selector = (adguard_selector_selector); +;// ./src/controllers/selectorMenuController.js + + + +/** + * Selector menu controller + * @returns {{init: init}} + * @constructor + */ +function SelectorMenuController(iframe) { + var contentDocument = null; + var iframeCtrl = iframe; + var close = function close() { + iframeCtrl.removeIframe(); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.main_close': close, + '.btn-default': close + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + }; + var onElementSelected = function onElementSelected(element) { + iframeCtrl.showSliderMenu(element); + }; + var startSelector = function startSelector() { + adguard_selector.reset(); + adguard_selector.init(onElementSelected); + }; + + /* + Called from IframeController._showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe) { + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + bindEvents(); + startSelector(); + }; + iframeCtrl.onCloseMenu.attach(adguard_selector.close); + return { + init: init, + startSelector: startSelector + }; +} +;// ./src/slider-widget.js + + +/** + * Slider widget + * @type {Function} + */ +function SliderWidget() { + var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var CLUE_CLASS = 'adg-slide_clue'; + var CLUE_MIN_CLASS = "".concat(CLUE_CLASS, " ").concat(CLUE_CLASS, "--min"); + var CLUE_MAX_CLASS = "".concat(CLUE_CLASS, " ").concat(CLUE_CLASS, "--max"); + var TRACK_CLASS = 'adg-slide_track'; + var HANDLE_CLASS = 'adg-slide_handle'; + var TICK_CLASS = 'adg-slide_tick'; + var TICK_ACTIVE_CLASS = "".concat(TICK_CLASS, " ").concat(TICK_CLASS, "--active"); + + // Horizontal padding of the track, should match with .adg-slide_track class in CSS + var TRACK_OFFSET = 28; + var placeholder = null; + var clueMin = null; + var clueMax = null; + var track = null; + var handle = null; + var ticks = null; + var min = 0; + var max = 1; + var value = 0; + var onValueChanged = null; + + /* + * Updates slider UI. + * + * @param {number} newValue Value to set for slider. + */ + var updateSliderUi = function updateSliderUi(newValue) { + // Clamp the new value between min and max + if (newValue < min) { + value = min; + } else if (newValue > max) { + value = max; + } else { + value = newValue; + } + + // Update handle position + var trackWidth = track.offsetWidth - TRACK_OFFSET * 2; + var valueRange = max - min; + var valuePercentage = (value - min) / valueRange; + var handlePosition = valuePercentage * trackWidth + TRACK_OFFSET; + handle.style.left = "".concat(handlePosition, "px"); + + // Activate all ticks up to the new value + for (var i = 0; i < ticks.length; i += 1) { + // Add `min`, because ticks are 0-based, but values are starts from `min` + if (i + min < value) { + ticks[i].setAttribute('class', TICK_ACTIVE_CLASS); + } else { + ticks[i].setAttribute('class', TICK_CLASS); + } + } + }; + + /* + * Checks if value changed, updates slider and fires value changed event. + * + * @param {number} newValue Value to set for slider. + */ + var activateValue = function activateValue(newValue) { + // Do nothing if the value is the same + if (newValue === value) { + return; + } + updateSliderUi(newValue); + onValueChanged(value); + }; + var render = function render() { + // Render clue min + clueMin = src_protectedApi.createElement('div'); + clueMin.setAttribute('class', CLUE_MIN_CLASS); + clueMin.textContent = 'Min'; + placeholder.appendChild(clueMin); + + // Render clue max + clueMax = src_protectedApi.createElement('div'); + clueMax.setAttribute('class', CLUE_MAX_CLASS); + clueMax.textContent = 'Max'; + placeholder.appendChild(clueMax); + + // Render handle + handle = src_protectedApi.createElement('div'); + handle.setAttribute('class', HANDLE_CLASS); + + // Render track + track = src_protectedApi.createElement('div'); + track.setAttribute('class', TRACK_CLASS); + track.appendChild(handle); + placeholder.appendChild(track); + + // Render ticks + var tickCount = max - min; + ticks = []; + for (var i = 0; i < tickCount; i += 1) { + var tick = src_protectedApi.createElement('div'); + tick.setAttribute('class', TICK_CLASS); + track.appendChild(tick); + ticks.push(tick); + } + }; + var bindEvents = function bindEvents() { + clueMin.addEventListener('click', function () { + activateValue(min); + }); + clueMax.addEventListener('click', function () { + activateValue(max); + }); + + // Track dragging logic using pointer events with pointer capture + track.addEventListener('pointerdown', function (pointerDownEvent) { + // Prevent default behavior to avoid text selection during dragging + pointerDownEvent.preventDefault(); + + // Set pointer capture to the track element + track.setPointerCapture(pointerDownEvent.pointerId); + + // Flag to track active dragging + var isDragging = true; + + // Calculate the value based on pointer position + var calculateValueFromPosition = function calculateValueFromPosition(clientX) { + var trackRect = track.getBoundingClientRect(); + var trackWidth = trackRect.width - TRACK_OFFSET * 2; + var valueRange = max - min; + + // Calculate the offset within the track, accounting for padding + var offsetX = clientX - trackRect.left - TRACK_OFFSET; + + // Keep offset within bounds + if (offsetX < 0) { + offsetX = 0; + } + if (offsetX > trackWidth) { + offsetX = trackWidth; + } + + // Calculate value based on position + var valuePercentage = offsetX / trackWidth; + var newValue = min + valuePercentage * valueRange; + + // Round to nearest value + return Math.round(newValue); + }; + + // Set initial value based on where the user clicked + activateValue(calculateValueFromPosition(pointerDownEvent.clientX)); + + // Handle pointer movement + var handlePointerMove = function handlePointerMove(pointerMoveEvent) { + if (!isDragging) { + return; + } + + // Prevent default to avoid unwanted side effects + pointerMoveEvent.preventDefault(); + + // Update value based on pointer position + activateValue(calculateValueFromPosition(pointerMoveEvent.clientX)); + }; + + // Handle pointer up - cleanup + var _handlePointerUp = function handlePointerUp(pointerUpEvent) { + // Release pointer capture + if (track.hasPointerCapture(pointerUpEvent.pointerId)) { + track.releasePointerCapture(pointerUpEvent.pointerId); + } + + // Set dragging flag to false + isDragging = false; + + // Remove event listeners + track.removeEventListener('pointermove', handlePointerMove); + track.removeEventListener('pointerup', _handlePointerUp); + track.removeEventListener('pointercancel', _handlePointerUp); + track.removeEventListener('pointerleave', _handlePointerUp); + }; + + // Add pointer event listeners + track.addEventListener('pointermove', handlePointerMove); + track.addEventListener('pointerup', _handlePointerUp); + track.addEventListener('pointercancel', _handlePointerUp); + track.addEventListener('pointerleave', _handlePointerUp); + }); + }; + + /** + * @param placeholderElement + * @param options + */ + // eslint-disable-next-line no-param-reassign + api.init = function (placeholderElement, options) { + placeholder = placeholderElement; + // eslint-disable-next-line prefer-destructuring + min = options.min; + // eslint-disable-next-line prefer-destructuring + max = options.max; + // eslint-disable-next-line prefer-destructuring + value = options.value; + // eslint-disable-next-line prefer-destructuring + onValueChanged = options.onValueChanged; + render(); + bindEvents(); + + // Defer visual update to ensure DOM is fully rendered + requestAnimationFrame(function () { + updateSliderUi(value); + }); + }; + + // eslint-disable-next-line no-param-reassign + api.getValue = function () { + return value; + }; + return api; +} +var sliderWidget = new SliderWidget(); +/* harmony default export */ const slider_widget = (sliderWidget); +;// ./src/libs/css.escape.js +/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */ + +// https://drafts.csswg.org/cssom/#serialize-an-identifier +function cssEscape(value) { + if (arguments.length === 0) { + throw new TypeError('`CSS.escape` requires an argument.'); + } + var string = String(value); + var length = string.length; + var index = -1; + var codeUnit; + var result = ''; + var firstCodeUnit = string.charCodeAt(0); + // eslint-disable-next-line no-plusplus + while (++index < length) { + codeUnit = string.charCodeAt(index); + // Note: there’s no need to special-case astral symbols, surrogate + // pairs, or lone surrogates. + + // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER + // (U+FFFD). + if (codeUnit === 0x0000) { + result += "\uFFFD"; + // eslint-disable-next-line no-continue + continue; + } + if ( + // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is + // U+007F, […] + // eslint-disable-next-line eqeqeq + codeUnit >= 0x0001 && codeUnit <= 0x001F || codeUnit == 0x007F + // If the character is the first character and is in the range [0-9] + // (U+0030 to U+0039), […] + || index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039 + // If the character is the second character and is in the range [0-9] + // (U+0030 to U+0039) and the first character is a `-` (U+002D), […] + || index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 + // eslint-disable-next-line eqeqeq + && firstCodeUnit == 0x002D) { + // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point + result += "\\".concat(codeUnit.toString(16), " "); + // eslint-disable-next-line no-continue + continue; + } + if ( + // If the character is the first character and is a `-` (U+002D), and + // there is no second character, […] + index === 0 && length === 1 + // eslint-disable-next-line eqeqeq + && codeUnit == 0x002D) { + result += "\\".concat(string.charAt(index)); + // eslint-disable-next-line no-continue + continue; + } + + // If the character is not handled by one of the above rules and is + // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or + // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to + // U+005A), or [a-z] (U+0061 to U+007A), […] + if (codeUnit >= 0x0080 + // eslint-disable-next-line eqeqeq + || codeUnit == 0x002D + // eslint-disable-next-line eqeqeq + || codeUnit == 0x005F || codeUnit >= 0x0030 && codeUnit <= 0x0039 || codeUnit >= 0x0041 && codeUnit <= 0x005A || codeUnit >= 0x0061 && codeUnit <= 0x007A) { + // the character itself + result += string.charAt(index); + // eslint-disable-next-line no-continue + continue; + } + + // Otherwise, the escaped character. + // https://drafts.csswg.org/cssom/#escape-a-character + result += "\\".concat(string.charAt(index)); + } + return result; +} +;// ./src/adguard-rules-constructor.js + + + +/** + * Adguard rules constructor + * @type {Function} + */ +function AdguardRulesConstructorLib() { + var api = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var CSS_RULE_MARK = '##'; + var RULE_OPTIONS_MARK = '$'; + var URLBLOCK_ATTRIBUTES = ['src', 'data']; + var linkHelper = src_protectedApi.createElement('a'); + + /** + * Constructs css selector by combining classes by AND + * @param classList + * @returns {string} + */ + var constructClassCssSelectorByAND = function constructClassCssSelectorByAND(classList) { + var selectors = []; + if (classList) { + for (var i = 0; i < classList.length; i += 1) { + selectors.push(".".concat(cssEscape(classList[i]))); + } + } + return selectors.join(''); + }; + + /** + * Constructs css selector for element using tag name, + * id and classed, like: tagName#id.class1.class2 + * + * @param element Element + * @param classList Override element classes + * (If classList is null, element classes will be used) + * @param excludeTagName Omit tag name in selector + * @param excludeId Omit element id in selector + * @returns {string} + */ + var makeDefaultCssFilter = function makeDefaultCssFilter(element, classList, excludeTagName, excludeId) { + var cssSelector = excludeTagName ? '' : element.tagName.toLowerCase(); + if (element.id && !excludeId) { + cssSelector += "#".concat(cssEscape(element.id)); + } + cssSelector += constructClassCssSelectorByAND(classList || element.classList); + return cssSelector; + }; + + /** + * Constructs css selector for element using parent elements + * and nth-child (first-child, last-child) pseudo classes. + * + * @param element Element + * @param options Construct options. + * For example: {excludeTagName: false, excludeId: false, classList: []} + * @returns {string} + */ + var makeCssNthChildFilter = function makeCssNthChildFilter(element, options) { + // eslint-disable-next-line no-param-reassign + options = options || {}; + var _options = options, + classList = _options.classList, + excludeTagName = _options.excludeTagName, + excludeId = _options.excludeId; + var excludeTagNameOverride = 'excludeTagName' in options; + var excludeIdOverride = 'excludeId' in options; + var path = []; + var el = element; + while (el.parentNode) { + var nodeName = el && el.nodeName ? el.nodeName.toUpperCase() : ''; + if (nodeName === 'BODY') { + break; + } + if (el.id) { + /** + * Be default we don't include tag name and classes + * to selector for element with id attribute + */ + var cssSelector = ''; + if (el === element) { + cssSelector = makeDefaultCssFilter(el, classList || [], excludeTagNameOverride ? excludeTagName : true, excludeIdOverride ? excludeId : false); + } else { + cssSelector = makeDefaultCssFilter(el, [], true, false); + } + path.unshift(cssSelector); + break; + } else { + var c = 1; + for (var e = el; e.previousSibling; e = e.previousSibling) { + if (e.previousSibling.nodeType === 1) { + c += 1; + } + } + var cldCount = 0; + for (var i = 0; el.parentNode && i < el.parentNode.childNodes.length; i += 1) { + cldCount += el.parentNode.childNodes[i].nodeType === 1 ? 1 : 0; + } + var ch = void 0; + if (cldCount === 0 || cldCount === 1) { + ch = ''; + } else if (c === 1) { + ch = ':first-child'; + } else if (c === cldCount) { + ch = ':last-child'; + } else { + ch = ":nth-child(".concat(c, ")"); + } + + /** + * By default we include tag name and + * element classes to selector for element without id attribute + */ + if (el === element) { + var p = makeDefaultCssFilter(el, classList, excludeId, excludeTagNameOverride ? excludeTagName : false); + p += ch; + path.unshift(p); + } else { + path.unshift(makeDefaultCssFilter(el, el.classList, false, false) + ch); + } + el = el.parentNode; + } + } + return path.join(' > '); + }; + + /** + * Constructs css selector by combining classes by OR + * @param classList + * @returns {string} + */ + var constructClassCssSelectorByOR = function constructClassCssSelectorByOR(classList) { + var selectors = []; + if (classList) { + for (var i = 0; i < classList.length; i += 1) { + selectors.push(".".concat(cssEscape(classList[i]))); + } + } + return selectors.join(', '); + }; + + /** + * Constructs element selector for matching elements + * that contain any of classes in original element. + * For example => .cl1, .cl2, .cl3 + * + * @param element Element + * @param classList Override element classes + * (If classList is null, element classes will be used) + * @returns {string} + */ + var makeSimilarCssFilter = function makeSimilarCssFilter(element, classList) { + return constructClassCssSelectorByOR(classList || element.classList); + }; + + /** + * Creates css rule text + * @param element Element + * @param options Construct options. + * For example: { + * cssSelectorType: 'STRICT_FULL', + * excludeTagName: false, + * excludeId: false, classList: [] + * } + * @returns {string} + */ + var constructCssRuleText = function constructCssRuleText(element, options) { + if (!element) { + return; + } + + // eslint-disable-next-line no-param-reassign + options = options || {}; + var cssSelectorType = options.cssSelectorType || 'STRICT_FULL'; + var selector; + switch (cssSelectorType) { + case 'STRICT_FULL': + selector = makeCssNthChildFilter(element, options); + break; + case 'STRICT': + selector = makeDefaultCssFilter(element, options.classList, options.excludeTagName, options.excludeId); + break; + case 'SIMILAR': + selector = makeSimilarCssFilter(element, options.classList, true); + break; + default: + break; + } + + // eslint-disable-next-line consistent-return + return selector ? CSS_RULE_MARK + selector : ''; + }; + var constructUrlBlockRuleText = function constructUrlBlockRuleText(element, urlBlockAttribute, oneDomain, domain) { + if (!urlBlockAttribute) { + return null; + } + var blockUrlRuleText = urlBlockAttribute.replace(/^http:\/\/(www\.)?/, '||'); + if (blockUrlRuleText.indexOf('.') === 0) { + blockUrlRuleText = blockUrlRuleText.substring(1); + } + if (!oneDomain) { + blockUrlRuleText = "".concat(blockUrlRuleText).concat(RULE_OPTIONS_MARK, "domain=").concat(domain); + } + return blockUrlRuleText; + }; + var isValidUrl = function isValidUrl(value) { + if (value) { + linkHelper.href = value; + if (linkHelper.hostname) { + return true; + } + } + return false; + }; + var getUrlBlockAttribute = function getUrlBlockAttribute(element) { + if (!element || !element.getAttribute) { + return null; + } + for (var i = 0; i < URLBLOCK_ATTRIBUTES.length; i += 1) { + var attr = URLBLOCK_ATTRIBUTES[i]; + var value = element.getAttribute(attr); + if (isValidUrl(value)) { + return value; + } + } + return null; + }; + var haveUrlBlockParameter = function haveUrlBlockParameter(element) { + var value = getUrlBlockAttribute(element); + return value && value !== ''; + }; + var haveClassAttribute = function haveClassAttribute(element) { + return element.classList && element.classList.length > 0; + }; + var haveIdAttribute = function haveIdAttribute(element) { + return element.id && element.id.trim() !== ''; + }; + var getUrl = function getUrl(url) { + var pattern = '^(([^:/\\?#]+):)?(//(([^:/\\?#]*)(?::([^/\\?#]*))?))?([^\\?#]*)(\\?([^#]*))?(#(.*))?$'; + var rx = new RegExp(pattern); + var parts = rx.exec(url); + return { + host: parts[4] || '', + path: parts[7] || '' + }; + }; + var cropDomain = function cropDomain(url) { + var domain = getUrl(url).host; + return domain.replace('www.', '').replace(/:\d+/, ''); + }; + + /** + * Utility method + * + * @param element + * @returns {string} + */ + // eslint-disable-next-line no-param-reassign + api.makeCssNthChildFilter = makeCssNthChildFilter; + + /** + * Returns detailed element info + * + * @param element + */ + // eslint-disable-next-line no-param-reassign + api.getElementInfo = function (element) { + // Convert attributes to array + var attributes = []; + var elementAttributes = element.attributes; + if (elementAttributes) { + for (var i = 0; i < elementAttributes.length; i += 1) { + var attr = elementAttributes[i]; + attributes.push({ + name: attr.name, + value: attr.value + }); + } + } + return { + tagName: element.tagName, + attributes: attributes, + urlBlockAttributeValue: getUrlBlockAttribute(element), + haveUrlBlockParameter: haveUrlBlockParameter(element), + haveClassAttribute: haveClassAttribute(element), + haveIdAttribute: haveIdAttribute(element) + }; + }; + + /** + * Constructs css selector for specified rule + * + * @param ruleText rule text + * @returns {string} css style selector + */ + // eslint-disable-next-line no-param-reassign + api.constructRuleCssSelector = function (ruleText) { + if (!ruleText) { + return null; + } + var index = ruleText.indexOf(CSS_RULE_MARK); + var optionsIndex = ruleText.indexOf(RULE_OPTIONS_MARK); + if (index >= 0) { + return ruleText.substring(index + CSS_RULE_MARK.length, optionsIndex >= 0 ? optionsIndex : ruleText.length); + } + var s = ruleText.substring(0, optionsIndex); + s = s.replace(/[|]|[\^]/g, ''); + if (isValidUrl(s)) { + return "[src*=\"".concat(s, "\"]"); + } + return null; + }; + + /** + * Constructs adguard rule text from element node and specified options + * + * const options = { + * urlMask: url block attributes, + * isBlockOneDomain: boolean, + * url: url, + * attributes: attributesSelectorText, + * ruleType: (URL, CSS) + * cssSelectorType: (STRICT_FULL, STRICT, SIMILAR), + * excludeTagName: false, (Exclude element tag name from selector) + * excludeId: false, (Exclude element identifier from selector) + * classList: [] + * (Override element classes (If classList is null, element classes will be used)) + * } + * + * @param element + * @param options + * @returns {*} + */ + // eslint-disable-next-line no-param-reassign + api.constructRuleText = function (element, options) { + var croppedDomain = cropDomain(options.url); + var ruleType = options.ruleType; + if (ruleType === 'URL') { + var blockUrlRuleText = constructUrlBlockRuleText(element, options.urlMask, options.isBlockOneDomain, croppedDomain); + if (blockUrlRuleText) { + return blockUrlRuleText; + } + } + var result; + if (ruleType === 'CSS') { + result = constructCssRuleText(element, options); + + // Append html attributes to css selector + if (options.attributes) { + result = (result || CSS_RULE_MARK + result) + options.attributes; + } + } + if (!options.isBlockOneDomain) { + result = croppedDomain + result; + } + return result; + }; + return api; +} +var adguardRulesConstructor = new AdguardRulesConstructorLib(); +/* harmony default export */ const adguard_rules_constructor = (adguardRulesConstructor); +;// ./src/controllers/sliderMenuController.js + + + + + + +/** + * Slider menu controller + * @param addRule + * @returns {{init: init}} + * @constructor + */ +function SliderMenuController(addRule, iframe) { + var contentDocument = null; + var selectedElement = null; + var startElement = null; + var currentElement = null; + var iframeCtrl = iframe; + var getFilterRuleInputText = function getFilterRuleInputText() { + return contentDocument.getElementById('filter-rule').value; + }; + var close = function close() { + iframeCtrl.removeIframe(); + }; + var expandAdvanced = function expandAdvanced() { + var advancedSettings = contentDocument.querySelector('#advanced-settings'); + var extendedSettingsText = contentDocument.querySelector('#ExtendedSettingsText'); + var extendedSettingsTextMobile = contentDocument.querySelector('#ExtendedSettingsTextMobile'); + var hidden = !hasClass(advancedSettings, 'open'); + if (hidden) { + addClass(advancedSettings, 'open'); + addClass(extendedSettingsText, 'active'); + addClass(extendedSettingsTextMobile, 'active'); + iframeCtrl.resizeSliderMenuToAdvanced(); + } else { + removeClass(advancedSettings, 'open'); + removeClass(extendedSettingsText, 'active'); + removeClass(extendedSettingsTextMobile, 'active'); + iframeCtrl.resizeSliderMenuToNormal(); + } + }; + var showPreview = function showPreview() { + var options = { + isBlockByUrl: contentDocument.getElementById('block-by-url-checkbox').checked, + isBlockSimilar: contentDocument.getElementById('block-similar-checkbox').checked, + isBlockOneDomain: contentDocument.getElementById('one-domain-checkbox').checked, + // Slider widget value is inverted + sliderValue: slider_widget.getValue() + }; + iframeCtrl.showBlockPreview(selectedElement, getFilterRuleInputText(), startElement, options); + }; + var blockElement = function blockElement() { + var path = getFilterRuleInputText(); + iframeCtrl.blockElement(path, addRule); + }; + var handleShowBlockSettings = function handleShowBlockSettings(showBlockByUrl, showBlockSimilar) { + var blockByUrlBlock = contentDocument.querySelector('#block-by-url-checkbox-block'); + var blockSimilarBlock = contentDocument.querySelector('#block-similar-checkbox-block'); + if (showBlockByUrl) { + show(blockByUrlBlock); + } else { + contentDocument.getElementById('block-by-url-checkbox').checked = false; + hide(blockByUrlBlock); + } + if (showBlockSimilar) { + show(blockSimilarBlock); + } else { + contentDocument.getElementById('block-similar-checkbox').checked = false; + hide(blockSimilarBlock); + } + }; + var getUrlBlockAttribute = function getUrlBlockAttribute(element) { + var urlBlockAttributes = ['src', 'data']; + for (var i = 0; i < urlBlockAttributes.length; i += 1) { + var attr = urlBlockAttributes[i]; + var value = element.getAttribute(attr); + if (value) { + return value; + } + } + return null; + }; + var haveUrlBlockParameter = function haveUrlBlockParameter(element) { + var value = getUrlBlockAttribute(element); + return value && value !== ''; + }; + var haveClassAttribute = function haveClassAttribute(element) { + var className = element.className; + return className && typeof className === 'string' && className.trim() !== ''; + }; + var setFilterRuleInputText = function setFilterRuleInputText(ruleText) { + contentDocument.getElementById('filter-rule').value = ruleText; + }; + var onScopeChange = function onScopeChange() { + var isBlockByUrl = contentDocument.getElementById('block-by-url-checkbox').checked; + var isBlockSimilar = contentDocument.getElementById('block-similar-checkbox').checked; + var isBlockOneDomain = contentDocument.getElementById('one-domain-checkbox').checked; + handleShowBlockSettings(haveUrlBlockParameter(selectedElement) && !isBlockSimilar, haveClassAttribute(selectedElement) && !isBlockByUrl); + var options = { + urlMask: getUrlBlockAttribute(selectedElement), + cssSelectorType: isBlockSimilar ? 'SIMILAR' : 'STRICT_FULL', + isBlockOneDomain: isBlockOneDomain, + url: document.location, + ruleType: isBlockByUrl ? 'URL' : 'CSS' + }; + var ruleText = adguard_rules_constructor.constructRuleText(selectedElement, options); + setFilterRuleInputText(ruleText); + iframeCtrl.resizeIframe(); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.main_close': close, + '#ExtendedSettingsText': expandAdvanced, + '#ExtendedSettingsTextMobile': expandAdvanced, + '#adg-cancel': iframeCtrl.showSelectorMenu, + '#adg-preview': showPreview, + '#adg-accept': blockElement, + '#block-by-url-checkbox-block': onScopeChange, + '#one-domain-checkbox-block': onScopeChange, + '#block-similar-checkbox-block': onScopeChange + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + }; + var makeDefaultCheckboxesForDetailedMenu = function makeDefaultCheckboxesForDetailedMenu(options) { + contentDocument.getElementById('block-by-url-checkbox').checked = options && options.isBlockByUrl; + contentDocument.getElementById('block-similar-checkbox').checked = options && options.isBlockSimilar; + contentDocument.getElementById('one-domain-checkbox').checked = options && options.isBlockOneDomain; + if (options && (options.isBlockByUrl || options.isBlockSimilar)) { + handleShowBlockSettings(options.isBlockByUrl, options.isBlockSimilar); + } + }; + var onSliderMove = function onSliderMove(element) { + selectedElement = element; + adguard_selector.selectElement(element); + makeDefaultCheckboxesForDetailedMenu(); + onScopeChange(); + handleShowBlockSettings(haveUrlBlockParameter(element), haveClassAttribute(element)); + }; + var createSlider = function createSlider(setElement, savedSliderValue) { + var parents = getParentsLevel(selectedElement); + var children = getAllChildren(selectedElement); + var value = Math.abs(parents.length + 1); + var max = parents.length + children.length + 1; + var min = 1; + var options = { + value: value, + min: min, + max: max + }; + var slider = contentDocument.querySelector('#slider'); + if (min === max) { + // hide slider text + hide(slider); + hide(contentDocument.querySelectorAll('.element-rule_text')); + expandAdvanced(); + } + options.onSliderMove = function (delta) { + var elem; + if (delta > 0) { + elem = parents[delta - 1]; + } + if (delta === 0) { + elem = startElement; + } + if (delta < 0) { + elem = children[Math.abs(delta + 1)]; + } + onSliderMove(elem); + }; + var currentVal = options.value; + var isReversedValue = false; + + // set slider position after returning from preview mode + if (savedSliderValue !== undefined && savedSliderValue !== null) { + currentVal = savedSliderValue; + // savedSliderValue comes from getValue() which returns the UI value (already reversed) + isReversedValue = true; + } else if (setElement) { + var setElementParents = getParentsLevel(setElement); + currentVal = setElementParents.length + 1; + } + + // Convert to reversed slider value (slider is inverted) only if not already reversed + var reversedValue = isReversedValue ? currentVal : options.max - currentVal + options.min; + slider_widget.init(slider, { + min: options.min, + max: options.max, + value: reversedValue, + // eslint-disable-next-line no-shadow + onValueChanged: function onValueChanged(value) { + // max - value + min is because we have reversed slider + var delta = options.value - (options.max - value + options.min); + options.onSliderMove(delta); + } + }); + }; + + /* + Called from IframeController._showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe, options) { + selectedElement = options.element; + startElement = selectedElement; + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + // eslint-disable-next-line prefer-destructuring + currentElement = options.currentElement; + bindEvents(); + var savedSliderValue = options.options && options.options.sliderValue; + createSlider(currentElement, savedSliderValue); + onScopeChange(); + adguard_selector.selectElement(selectedElement); + + // select current element after returning from preview mode + if (currentElement) { + onSliderMove(currentElement); + } + + // make input clickable with right mouse button for text editing + events.add(contentDocument.getElementById('filter-rule'), 'contextmenu', function (e) { + e.stopPropagation(); + }); + if (options.path) { + setFilterRuleInputText(options.path); + expandAdvanced(); + } + if (options.options) { + makeDefaultCheckboxesForDetailedMenu(options.options); + } + }; + return { + init: init + }; +} +;// ./src/controllers/blockPreviewController.js + + + + + +/** + * Block preview controller + * @param addRule + * @param iframe + * @returns {{init: init}} + * @constructor + */ +function BlockPreviewController(addRule, iframe) { + var contentDocument = null; + var currentElement = null; + var selectedElement = null; + var selectedPath = null; + var optionsState = null; + var iframeCtrl = iframe; + var previewStyleID = src_settings.Constants.PREVIEW_STYLE_ID; + var showElement = function showElement() { + iframeCtrl.showHiddenElements(previewStyleID); + }; + var close = function close() { + showElement(); + iframeCtrl.removeIframe(); + }; + var selectAnotherElement = function selectAnotherElement() { + showElement(); + iframeCtrl.showSelectorMenu(); + }; + var blockElement = function blockElement(e) { + e.stopPropagation(); + // NOTE: preview style cleanup is handled inside iframeCtrl.blockElement + // → removeIframe() → showHiddenElements(previewStyleID), which runs + // synchronously right before hideElementsByPath re-hides the element. + // Calling showElement() here would remove the preview style now, making + // the element visible until the async GM callback re-hides it (flash). + iframeCtrl.blockElement(selectedPath, addRule); + }; + var showDetailedMenu = function showDetailedMenu() { + showElement(); + iframeCtrl.showSliderMenu(currentElement, selectedElement, selectedPath, optionsState); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.main_close': close, + '#select-another-element': selectAnotherElement, + '#end-preview': showDetailedMenu, + '#block-element': blockElement + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + }; + var hideElement = function hideElement() { + if (!selectedPath) { + src_log.error('Can`t block element: `selector` path is empty'); + return; + } + iframeCtrl.hideElementsByPath(selectedPath, previewStyleID); + }; + + /* + Called from IframeController.showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe, options) { + selectedElement = options.element; + selectedPath = options.path; + // eslint-disable-next-line prefer-destructuring + currentElement = options.currentElement; + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + optionsState = options.options; + adguard_selector.reset(); + bindEvents(); + hideElement(); + }; + return { + init: init + }; +} +;// ./src/utils/ui-validation-utils.js + + + +/** + * Utils that checks environment for compatibility with assistant + * @returns {{ + * checkVisibleAreaSize: checkVisibleAreaSize, + * validateBrowser: validateBrowser, + * validatePage: validatePage, + * getViewPort: getViewPort + * }} + * @constructor + */ +function UIValidationUtils() { + var _window = window, + document = _window.document; + var getViewPort = function getViewPort() { + var width = window.innerWidth; + var height = window.innerHeight; + return { + width: width, + height: height + }; + }; + + /** + * Check if visible area are enough to show menu. + * @returns boolean. True if area enough + */ + var checkVisibleAreaSize = function checkVisibleAreaSize() { + var viewPort = getViewPort(); + // eslint-disable-next-line max-len + var visibleAreaSize = viewPort.height > src_settings.Constants.MINIMUM_VISIBLE_HEIGHT_TO_SHOW_BUTTON; + if (!visibleAreaSize) { + src_log.error("Viewport height is too small: ".concat(viewPort.height)); + } + return visibleAreaSize; + }; + + /** + * Checks if browser is valid for Adguard assistant + * @returns boolean. True if browser valid + */ + var validateBrowser = function validateBrowser() { + var valid = !document.documentMode || document.documentMode > src_settings.Constants.MINIMUM_IE_SUPPORTED_VERSION; + if (!valid) { + src_log.error("IE version is ".concat(document.documentMode)); + } + return valid; + }; + + /** + * Checks if page is valid for Adguard assistant to work here. + */ + var validatePage = function validatePage() { + // Assistant do not work in iframes + if (window.window !== window.top) { + return false; + } + return true; + }; + return { + checkVisibleAreaSize: checkVisibleAreaSize, + validateBrowser: validateBrowser, + validatePage: validatePage, + getViewPort: getViewPort + }; +} +var uiValidationUtils = new UIValidationUtils(); +/* harmony default export */ const ui_validation_utils = (uiValidationUtils); +;// ./src/utils/ui-utils.js + + + + +/** + * UI utils + * @returns {{ + * makeElementDraggable: Function, + * makeIframeDraggable: Function, + * moveElementTo: Function, +`* setAnchorPosition: Function, + * checkElementPosition: Function, + * }} + * @constructor + */ +function UIUtils() { + var elWidth; + var elHeight; + var windowWidth; + var windowHeight; + + // Stored button anchor position + var storedAnchor = {}; + + /** + * Get original event object for touch + * devices to getting current coordinates + * @param {Object} + * @returns {Object} + */ + var getOriginalEvent = function getOriginalEvent(e) { + return e.targetTouches ? e.targetTouches[0] : e; + }; + var outsidePosition = { + top: function top(pos) { + return storedAnchor.top && (pos.y + elHeight > windowHeight || pos.y < 0); + }, + bottom: function bottom(pos) { + return !storedAnchor.top && (Math.abs(pos.y) + elHeight > windowHeight || pos.y > 0); + }, + left: function left(pos) { + return storedAnchor.left && (pos.x + elWidth > windowWidth || pos.x < 0); + }, + right: function right(pos) { + return !storedAnchor.left && (Math.abs(pos.x) + elWidth > windowWidth || pos.x > 0); + } + }; + + /** + * Set transition css property for drag + * translate3d is for better rendering performance + * see: https://www.html5rocks.com/en/tutorials/speed/layers/ + */ + var moveElementTo = function moveElementTo(el, x, y) { + var transform = "translate3d(".concat(x, "px,").concat(y, "px, 0px)"); + // eslint-disable-next-line no-param-reassign + el.style.webkitTransform = transform; + // eslint-disable-next-line no-param-reassign + el.style.mozTransform = transform; + // eslint-disable-next-line no-param-reassign + el.style.msTransform = transform; + // eslint-disable-next-line no-param-reassign + el.style.oTransform = transform; + // eslint-disable-next-line no-param-reassign + el.style.transform = transform; + }; + + // getting screen width and height without scroll bars + var getWindowSize = function getWindowSize() { + return { + width: Math.min(document.documentElement.clientWidth, window.innerWidth || window.screen.width), + height: Math.min(document.documentElement.clientHeight, window.innerHeight || window.screen.height) + }; + }; + + /** + * Functions for saving left/top anchors and setting class position + * + * @param {Object} element button element + * @param {Boolean} anchor anchors positions `true` for top/left or `false` for bottom/right + */ + var setAnchorPosition = { + positionY: function positionY(element, anchor) { + storedAnchor.top = anchor; + if (storedAnchor.top) { + addClass(element, 'adguard-assistant-button-top'); + removeClass(element, 'adguard-assistant-button-bottom'); + } else { + addClass(element, 'adguard-assistant-button-bottom'); + removeClass(element, 'adguard-assistant-button-top'); + } + }, + positionX: function positionX(element, anchor) { + storedAnchor.left = anchor; + if (storedAnchor.left) { + addClass(element, 'adguard-assistant-button-left'); + removeClass(element, 'adguard-assistant-button-right'); + } else { + addClass(element, 'adguard-assistant-button-right'); + removeClass(element, 'adguard-assistant-button-left'); + } + } + }; + + /** + * Make element draggable + * @param element + * @param onDragEnd + * @param onClick + */ + function makeElementDraggable(element, onDragEnd, onClick) { + var coords; + var shiftX; + var shiftY; + + /** + * Prevent text selection + * With cursor drag + */ + var pauseEvent = function pauseEvent(e) { + e.stopPropagation(); + e.preventDefault(); + e.cancelBubble = true; + e.returnValue = false; + return false; + }; + var onMouseMove = function onMouseMove(e) { + pauseEvent(e); + // eslint-disable-next-line no-use-before-define + moveAt(e); + }; + var preventedEvent = function preventedEvent(e) { + e.preventDefault(); + }; + var getCoords = function getCoords(elem) { + var box = elem.getBoundingClientRect(); + return { + top: box.top, + left: box.left, + bottom: box.bottom, + right: box.right + }; + }; + + /** + * On mouse up event + * @param {Object} e event object + * @param {Boolean|undefined} doNotOpenIframe do not open the iframe if true. + * This is necessary when the cursor is out of bounds + */ + var _onMouseUp = function onMouseUp(e, doNotOpenIframe) { + e.stopPropagation(); + + // make scroll availalbe + events.remove(document.documentElement, 'wheel mousewheel', preventedEvent); + + // When a user finishes dragging icon, we set icon anchor + // depending on the icon position, i.e. which quarter + // of the screen it belongs. + var lastX; + var lastY; + var lastCoords = getCoords(element); + var topHalf = lastCoords.top < windowHeight / 2; + var leftHalf = lastCoords.left < windowWidth / 2; + setAnchorPosition.positionY(element, topHalf); + setAnchorPosition.positionX(element, leftHalf); + if (topHalf) { + lastY = lastCoords.top; + } else { + lastY = lastCoords.bottom - windowHeight; + } + if (leftHalf) { + lastX = lastCoords.left; + } else { + lastX = lastCoords.right - windowWidth; + } + moveElementTo(element, lastX, lastY); + + // Open the frame if the button has been shifted by no more than 5 pixels + if (Math.abs(coords.left - lastCoords.left) > 5 || Math.abs(coords.top - lastCoords.top) > 5) { + if (onDragEnd) { + var store = { + x: lastX, + y: lastY, + storedAnchor: storedAnchor + }; + onDragEnd(store); + } + } else if (onClick && !doNotOpenIframe) { + onClick(e); + } + events.remove(document.documentElement, 'mouseup touchend pointerup', _onMouseUp); + events.remove(document.documentElement, 'mousemove touchmove pointermove', onMouseMove); + }; + var moveAt = function moveAt(e) { + var position = { + x: getOriginalEvent(e).pageX - shiftX, + y: getOriginalEvent(e).pageY - shiftY + }; + + // disable mousemove if button element outside the screen + var out = outsidePosition.top(position) || outsidePosition.left(position) || outsidePosition.bottom(position) || outsidePosition.right(position); + if (out) { + _onMouseUp(e, true); + } else { + moveElementTo(element, position.x, position.y); + } + }; + var mouseDown = function mouseDown(e) { + pauseEvent(e); + + // prevent browser scroll + events.add(document.documentElement, 'wheel mousewheel', preventedEvent); + + // prevent right button mousedown + if (e.button > 0) return; + elWidth = element.clientWidth; + elHeight = element.clientWidth; + windowWidth = getWindowSize().width; + windowHeight = getWindowSize().height; + coords = getCoords(element); + if (storedAnchor.top) { + shiftY = getOriginalEvent(e).pageY - coords.top; + } else { + shiftY = windowHeight - (coords.bottom - getOriginalEvent(e).pageY); + } + if (storedAnchor.left) { + shiftX = getOriginalEvent(e).pageX - coords.left; + } else { + shiftX = windowWidth - (coords.right - getOriginalEvent(e).pageX); + } + + /** + * binding both mouse and touch/pointer events simultaneously + * see: http://www.html5rocks.com/en/mobile/touchandmouse/ + */ + events.add(document.documentElement, 'mouseup touchend pointerup', _onMouseUp); + events.add(document.documentElement, 'mousemove touchmove pointermove', onMouseMove); + }; + events.add(element, 'mousedown touchstart', src_protectedApi.functionBind.call(mouseDown, this)); + events.add(element, 'dragstart', function () {}); + } + + /** + * Makes iframe draggable + * + * @param iframe + * @param handleElement + */ + var makeIframeDraggable = function makeIframeDraggable(iframe, handleElement) { + var iframeDoc = iframe.contentDocument; + var offset = Object.create(null); + + /** + * Function that does actual "dragging" + * + * @param x + * @param y + */ + var drag = function drag(x, y) { + // eslint-disable-next-line no-param-reassign + iframe.style.left = "".concat(x, "px"); + // eslint-disable-next-line no-param-reassign + iframe.style.top = "".concat(y, "px"); + }; + var cancelIFrameSelection = function cancelIFrameSelection(e) { + e.preventDefault(); + e.stopPropagation(); + }; + var onMouseMove = function onMouseMove(e) { + var eventPosition = getOriginalEvent(e); + drag(eventPosition.screenX + offset.x, eventPosition.screenY + offset.y); + }; + var onMouseDown = function onMouseDown(e) { + var eventPosition = getOriginalEvent(e); + var rect = iframe.getBoundingClientRect(); + offset.x = rect.left + handleElement.offsetLeft - eventPosition.screenX; + offset.y = rect.top + handleElement.offsetTop - eventPosition.screenY; + events.add(iframeDoc, 'mousemove touchmove pointermove', onMouseMove); + events.add(iframeDoc, 'selectstart', cancelIFrameSelection); + }; + var onMouseUp = function onMouseUp() { + events.remove(iframeDoc, 'mousemove touchmove pointermove', onMouseMove); + events.remove(iframeDoc, 'selectstart', cancelIFrameSelection); + }; + + // prevent iframe dragging while browser tabs is switching + document.addEventListener('visibilitychange', onMouseUp); + events.add(handleElement, 'mousedown touchstart', onMouseDown); + events.add(iframeDoc, 'mouseup touchend pointerup', onMouseUp); + events.add(iframeDoc, 'contextmenu', function (e) { + e.preventDefault(); + return false; + }); + }; + var checkElementPosition = function checkElementPosition(element, pos) { + var position = pos; + windowWidth = getWindowSize().width; + windowHeight = getWindowSize().height; + elWidth = element.clientWidth; + elHeight = element.clientHeight; + if (outsidePosition.top(position)) position.y = windowHeight - 60; + if (outsidePosition.bottom(position)) position.y = -windowHeight + 60; + if (outsidePosition.left(position)) position.x = windowWidth - 60; + if (outsidePosition.right(position)) position.x = -windowWidth + 60; + moveElementTo(element, position.x, position.y); + }; + return { + makeElementDraggable: makeElementDraggable, + makeIframeDraggable: makeIframeDraggable, + moveElementTo: moveElementTo, + setAnchorPosition: setAnchorPosition, + checkElementPosition: checkElementPosition + }; +} +var uiUtils = new UIUtils(); +/* harmony default export */ const ui_utils = (uiUtils); +;// ./src/button.js + + + + + + + + + +/** + * Adguard assistant button + * @returns {{show: show, remove: remove}} + * @constructor + */ +function UIButton() { + var button = null; + var buttonElement = null; + var isFullScreenEventsRegistered = false; + var iframeController = null; + + // Important attribute for all inline stylesheets. + // It needs for Content-Security-Policy. + var getStyleNonce = function getStyleNonce() { + var adgSettings = src_settings.getAdguardSettings(); + if (adgSettings === null) { + return ''; + } + return adgSettings.nonce; + }; + var isButtonAlreadyInDOM = function isButtonAlreadyInDOM() { + var alert = document.querySelector('.adguard-alert'); + if (alert) { + src_log.error('Assistant button is already in DOM'); + return true; + } + return false; + }; + + /** + * Checking browser and other requirements. + * @private + */ + var checkRequirements = function checkRequirements() { + if (!ui_validation_utils.validateBrowser()) { + return false; + } + if (!ui_validation_utils.validatePage()) { + return false; + } + if (!ui_validation_utils.checkVisibleAreaSize()) { + return false; + } + if (isButtonAlreadyInDOM()) { + return false; + } + return true; + }; + + /** + * Set a special classes for the pages on which + * under the button there are important elements + * issue: https://github.com/AdguardTeam/AdguardAssistant/issues/32 + */ + var respectPageElements = function respectPageElements(btn) { + var buttonInRightBottom = hasClass(btn, 'adguard-assistant-button-bottom') && hasClass(btn, 'adguard-assistant-button-right'); + if (buttonInRightBottom && document.location.hostname.indexOf('vk.com') >= 0) { + addClass(btn, 'adguard-assistant-button-respect adguard-assistant-button-respect-vk'); + } + if (buttonInRightBottom && document.location.hostname.indexOf('facebook.com') >= 0) { + addClass(btn, 'adguard-assistant-button-respect adguard-assistant-button-respect-fb'); + } + return false; + }; + var setPositionSettingsToButton = function setPositionSettingsToButton(btn) { + var position = src_settings.getUserPositionForButton(); + if (src_settings.getIconSize()) { + addClass(btn, 'logo-small'); + } + + // The anchor determines from which side of the + // browser the positions of `position.x`, `position.y`. + // If `position` parameter is not defined, + // so the position of the button is set in the corners of the browser + if (position && position.storedAnchor) { + ui_utils.setAnchorPosition.positionY(btn, position.storedAnchor.top); + ui_utils.setAnchorPosition.positionX(btn, position.storedAnchor.left); + ui_utils.moveElementTo(btn, position.x, position.y); + ui_utils.checkElementPosition(btn, position); + return false; + } + + // Getting the corner of the browser where the button is placed + var side = src_settings.getButtonSide(); + if (side) { + ui_utils.setAnchorPosition.positionY(btn, side.top); + ui_utils.setAnchorPosition.positionX(btn, side.left); + respectPageElements(btn); + } + return undefined; + }; + + /** + * Get center button position + * @returns {{left: *, top: *}} + * @private + */ + var getButtonPosition = function getButtonPosition(btn) { + var box = btn.getBoundingClientRect(); + return { + top: box.top + btn.offsetHeight / 2, + left: box.left + btn.offsetWidth / 2 + }; + }; + var hideButton = function hideButton() { + if (!button) { + return; + } + button.style.setProperty('display', 'none', 'important'); + }; + var showButton = function showButton() { + if (!button) { + return; + } + button.style.setProperty('display', 'block', 'important'); + }; + var hideRestoreOnFullScreen = function hideRestoreOnFullScreen() { + if (isFullScreenEventsRegistered) { + return; + } + var isFullScreen = false; + var onFullScreen = function onFullScreen() { + if (!isFullScreen) { + hideButton(); + isFullScreen = true; + } else { + showButton(); + isFullScreen = false; + } + }; + document.addEventListener('webkitfullscreenchange', onFullScreen); + document.addEventListener('mozfullscreenchange', onFullScreen); + document.addEventListener('fullscreenchange', onFullScreen); + isFullScreenEventsRegistered = true; + }; + var registerEvents = function registerEvents(btn) { + var onDragEnd = function onDragEnd(data) { + src_settings.setUserPositionForButton(data); + }; + var openMenu = function openMenu() { + iframeController.setButtonPosition(getButtonPosition(btn)); + iframeController.showDetailedMenu(); + }; + ui_utils.makeElementDraggable(btn, onDragEnd, openMenu); + hideRestoreOnFullScreen(); + }; + + /** + * Shows Adguard initial button + */ + var show = function show() { + // TODO: get rid of it + iframeController = src_ioc.get('iframeController'); + iframeController.onCloseMenu.attach(showButton); + iframeController.onShowMenuItem.attach(hideButton); + if (!checkRequirements()) { + src_log.info('Environment doesn\'t satisfy requirements, so don\'t show Adguard'); + return; + } + if (button) { + return; + } + src_log.debug('Requirements checked, all ok'); + buttonElement = src_protectedApi.createElement('div'); + src_protectedApi.setInnerHtml(buttonElement, HTML.button); + button = buttonElement.firstChild; + var adgStylesButton; + if (src_protectedApi.checkShadowDomSupport()) { + var shadowbuttonElement = buttonElement.attachShadow({ + mode: 'closed' + }); + adgStylesButton = src_protectedApi.createStylesElement(CSS.common + CSS.button, getStyleNonce()); + shadowbuttonElement.appendChild(adgStylesButton); + shadowbuttonElement.appendChild(button); + document.documentElement.appendChild(buttonElement); + } else { + adgStylesButton = src_protectedApi.createStylesElement(CSS.button, getStyleNonce(), 'adg-styles-button'); + if (adgStylesButton) { + document.documentElement.appendChild(adgStylesButton); + } + document.documentElement.appendChild(button); + buttonElement = button; + } + setPositionSettingsToButton(button); + registerEvents(button); + }; + var removeButton = function removeButton() { + if (!button) { + return; + } + document.documentElement.removeChild(buttonElement); + button = null; + }; + return { + show: show, + remove: removeButton + }; +} +var button_button = new UIButton(); +/* harmony default export */ const src_button = (button_button); +;// ./src/controllers/settingsMenuController.js + + + + +/** + * Settings menu controller + * @returns {{init: init}} + * @constructor + */ +function SettingsMenuController(iframe) { + var contentDocument = null; + var iframeCtrl = iframe; + var buttonSides = { + 'position-bottom-right': { + top: false, + left: false + }, + 'position-bottom-left': { + top: false, + left: true + }, + 'position-top-right': { + top: true, + left: false + }, + 'position-top-left': { + top: true, + left: true + } + }; + var close = function close() { + iframeCtrl.removeIframe(); + }; + var setIconSize = function setIconSize() { + var smallIcon = contentDocument.getElementById('size-small').checked; + src_settings.setIconSize(smallIcon); + }; + var setPersonalParam = function setPersonalParam() { + var personalConfig = contentDocument.getElementById('this-site').checked; + src_settings.setPersonalParam(personalConfig); + }; + var setButtonSide = function setButtonSide() { + var sideItem = null; + Object.keys(buttonSides).forEach(function (item) { + if (contentDocument.getElementById(item).checked) { + sideItem = item; + } + }); + if (sideItem) { + src_settings.setButtonSide(buttonSides[sideItem]); + } + }; + var setDefaultSettings = function setDefaultSettings() { + if (src_settings.getIconSize()) { + contentDocument.getElementById('size-small').checked = true; + } else { + contentDocument.getElementById('size-big').checked = true; + } + if (src_settings.getPersonalConfig()) { + contentDocument.getElementById('this-site').checked = true; + } else { + contentDocument.getElementById('all-site').checked = true; + } + var position = src_settings.getUserPositionForButton(); + if (position) { + return; + } + var sideFromSettings = src_settings.getButtonSide(); + Object.keys(buttonSides).forEach(function (item) { + var sideItem = buttonSides[item]; + if (sideItem.left === sideFromSettings.left && sideItem.top === sideFromSettings.top) { + contentDocument.getElementById(item).checked = true; + } + }); + }; + var saveSettings = function saveSettings() { + setPersonalParam(); + setIconSize(); + setButtonSide(); + src_settings.saveSettings(); + close(); + src_button.remove(); + src_button.show(); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.close': close, + '#cancel': iframeCtrl.showDetailedMenu, + '#save-settings': saveSettings + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + }; + + /* + Called from IframeController._showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe) { + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + bindEvents(); + setDefaultSettings(); + }; + return { + init: init + }; +} +;// ./src/iframe.js + + + + + + + + + + + + + + + + + + +/** + * Manages iframe and it's content + * @returns {{ + * showDetailedMenu: showDetailedMenu, + * showSelectorMenu: showSelectorMenu, + * showSliderMenu: showSliderMenu, + * showBlockPreview: showBlockPreview, + * showSettingsMenu: showSettingsMenu, + * setButtonPosition: setButtonPosition, + * onCloseMenu: CustomEvent, + * onShowMenuItem: CustomEvent, + * removeIframe: removeIframe, + * resizeSliderMenuToAdvanced: resizeSliderMenuToAdvanced, + * resizeSliderMenuToNormal: resizeSliderMenuToNormal + * }} + * @constructor + */ +function IframeController() { + var iframe = null; + var iframeAnchor = null; + var currentItem = null; + var iframeMaxWidth = 320; + var iframeMaxHeight = 407; + var menuMaxWidth = 600; + var menuMaxHeight = 640; + var menuInitialHeight = 252; + var detailedMenuInitialHeight = 355; + var settingsMaxWidth = 458; + var iframePositionOffset = 20; + var buttonPosition = null; + var blockedElementsStyleID = src_settings.Constants.BLOCKED_ELEMENTS_STYLE_ID; + var previewStyleID = src_settings.Constants.PREVIEW_STYLE_ID; + var views = {}; + views[src_settings.MenuItemsNames.DetailedMenu] = HTML.detailed_menu; + views[src_settings.MenuItemsNames.SelectorMenu] = HTML.selector_menu; + views[src_settings.MenuItemsNames.SliderMenu] = HTML.slider_menu; + views[src_settings.MenuItemsNames.BlockPreview] = HTML.preview; + views[src_settings.MenuItemsNames.SettingsMenu] = HTML.settings_menu; + if (window.innerWidth < menuMaxWidth) menuMaxWidth = window.innerWidth; + if (window.innerWidth < settingsMaxWidth) settingsMaxWidth = window.innerWidth; + var onCloseMenu = new CustomEvent(); + var onShowMenuItem = new CustomEvent(); + + // Important attribute for all inline stylesheets. + // It needs for Content-Security-Policy. + var getStyleNonce = function getStyleNonce() { + var adgSettings = src_settings.getAdguardSettings(); + if (adgSettings === null) { + return ''; + } + return adgSettings.nonce; + }; + var createShadowRootElement = function createShadowRootElement(iframeAnc) { + var shadowiframeAnchor = iframeAnc.attachShadow({ + mode: 'closed' + }); + var stylesElement = src_protectedApi.createStylesElement(CSS.common + CSS.iframe, getStyleNonce()); + shadowiframeAnchor.appendChild(stylesElement); + return shadowiframeAnchor; + }; + var createIframe = function createIframe(onIframeLoadCallback) { + src_log.debug('Creating iframe'); + iframe = src_protectedApi.createElement('iframe'); + + // IE hack for prevent access denied error + // see: https://stackoverflow.com/questions/1886547/access-is-denied-javascript-error-when-trying-to-access-the-document-object-of + if (navigator.userAgent.match(/msie/i)) { + iframe.src = "javascript:''"); + } + var attributes = { + id: src_settings.Constants.IFRAME_ID, + "class": adguard_selector.ignoreClassName(), + frameBorder: 0, + allowTransparency: 'true' + }; + Object.keys(attributes).forEach(function (item) { + iframe.setAttribute(item, attributes[item]); + }); + var iframeAlreadyLoaded = false; + iframe.addEventListener('load', function () { + if (iframeAlreadyLoaded) { + // IE calls load each time when we use document.close + return; + } + iframeAlreadyLoaded = true; + onIframeLoadCallback(); + }); + if (src_protectedApi.checkShadowDomSupport()) { + iframeAnchor = src_protectedApi.createElement('div'); + createShadowRootElement(iframeAnchor).appendChild(iframe); + } else { + iframeAnchor = iframe; + } + document.documentElement.appendChild(iframeAnchor); + }; + var getIframePosition = function getIframePosition() { + var maxHeight = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iframeMaxHeight; + var viewPort = ui_validation_utils.getViewPort(); + if (!buttonPosition) { + return { + left: iframe.offsetLeft <= 0 ? window.innerWidth : iframe.offsetLeft, + top: parseInt(iframe.style.top, 10) || iframePositionOffset + }; + } + var defaultPosition = { + left: buttonPosition.left, + top: buttonPosition.top + }; + var sides = [{ + // left top + left: buttonPosition.left - iframeMaxWidth - iframePositionOffset, + top: buttonPosition.top - maxHeight - iframePositionOffset + }, { + // right top + left: buttonPosition.left + iframePositionOffset, + checkLeft: buttonPosition.left + iframeMaxWidth + iframePositionOffset, + top: buttonPosition.top - maxHeight - iframePositionOffset + }, { + // bottom right + left: buttonPosition.left + iframePositionOffset, + checkLeft: buttonPosition.left + iframeMaxWidth + iframePositionOffset, + checkTop: buttonPosition.top + maxHeight + iframePositionOffset, + top: buttonPosition.top + iframePositionOffset + }, { + // bottom left + left: buttonPosition.left - iframeMaxWidth - iframePositionOffset, + checkTop: buttonPosition.top + maxHeight + iframePositionOffset, + top: buttonPosition.top + iframePositionOffset + }]; + for (var i = 0; i < sides.length; i += 1) { + var currentSide = sides[i]; + var left = currentSide.checkLeft ? currentSide.checkLeft : currentSide.left; + var top = currentSide.checkTop ? currentSide.checkTop : currentSide.top; + if (left < 0 || left > viewPort.width) { + // eslint-disable-next-line no-continue + continue; + } + if (top < 0 || top > viewPort.height) { + // eslint-disable-next-line no-continue + continue; + } + return currentSide; + } + return defaultPosition; + }; + var specifyIframePosition = function specifyIframePosition() { + var viewPort = ui_validation_utils.getViewPort(); + if (iframe.offsetLeft + iframe.offsetWidth > viewPort.width) { + iframe.style.left = "".concat(Math.max(0, viewPort.width - iframe.offsetWidth - iframePositionOffset), "px"); + } + if (iframe.offsetLeft < 0) { + iframe.style.left = "".concat(iframePositionOffset, "px"); + } + if (iframe.offsetTop + iframe.offsetHeight > viewPort.height) { + iframe.style.top = "".concat(Math.max(0, viewPort.height - iframe.offsetHeight - iframePositionOffset), "px"); + } + if (iframe.offsetHeight < 0) { + iframe.style.top = "".concat(iframePositionOffset, "px"); + } + }; + var appendContent = function appendContent(view) { + var body = iframe.contentDocument.body; + for (var i = 0; i < body.children.length; i += 1) { + body.removeChild(body.children[i]); + } + body.appendChild(view); + }; + var localize = function localize() { + var elements = iframe.contentDocument.querySelectorAll('[i18n]'); + for (var i = 0; i < elements.length; i += 1) { + var message = src_localization.getMessage(elements[i].getAttribute('i18n')); + src_localization.translateElement(elements[i], message); + } + }; + var resizeIframe = function resizeIframe(width, height) { + var frame = iframe; + + // setting iframe height dynamically based on inner content + if (height === 'auto' || !height) { + // eslint-disable-next-line no-param-reassign + height = frame.contentWindow.document.body.querySelector('.main').clientHeight || iframeMaxHeight; + } + if (width) { + frame.width = width; + frame.style.setProperty('width', "".concat(width, "px"), 'important'); + } + if (height) { + frame.height = height; + frame.style.setProperty('height', "".concat(height, "px"), 'important'); + } + }; + var showMenuItem = function showMenuItem(viewName, controller, width, height, options) { + src_log.debug("Showing menu item: ".concat(viewName)); + if (currentItem === viewName) { + return; + } + var onIframeLoad = function onIframeLoad() { + var frameElement = iframe; + var view = src_protectedApi.createElement(views[viewName]); + var stylesElement = src_protectedApi.createStylesElement(CSS.common + CSS.button + CSS.iframe, getStyleNonce()); + view.appendChild(stylesElement); + appendContent(view); + localize(); + if (!options) { + // eslint-disable-next-line no-param-reassign + options = {}; + } + // eslint-disable-next-line no-param-reassign + options.iframeAnchor = iframeAnchor; + controller.init(frameElement, options); + currentItem = viewName; + onShowMenuItem.notify(); + if (options.dragElement) { + ui_utils.makeIframeDraggable(iframe, iframe.contentDocument.querySelector(options.dragElement)); + } + if (options.includeSvgIcons) { + var icons = src_protectedApi.createElement(HTML.svg_icons); + view.appendChild(icons); + } + + // make iframe size as like internal content size + resizeIframe(width, height); + var iframePosition = getIframePosition(options.maxHeight || iframeMaxHeight); + iframe.style.left = "".concat(iframePosition.left, "px"); + iframe.style.top = "".concat(iframePosition.top, "px"); + + // fixing iframe position after resize, to avoid iframe outside of the viewport + specifyIframePosition(); + }; + if (!iframe) { + var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, getStyleNonce(), 'adg-styles-selector'); + if (adgStylesSelector) { + document.documentElement.appendChild(adgStylesSelector); + } + createIframe(onIframeLoad); + return; + } + onIframeLoad(); + }; + var setButtonPosition = function setButtonPosition(coords) { + buttonPosition = coords; + }; + + /** + * Removes a style element that was hiding elements by path. + * @param {string} [styleID] Style element ID. Defaults to the + * blocked-elements style so previously blocked elements reappear. + */ + var showHiddenElements = function showHiddenElements() { + var styleID = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : blockedElementsStyleID; + var stylesElement = document.documentElement.querySelector("#".concat(styleID)); + if (stylesElement) { + stylesElement.parentNode.removeChild(stylesElement); + } + }; + + // e.isTrusted checking for prevent programmatically events + // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134 + var _removeIframe = function removeIframe(e) { + if (e && e.isTrusted === false) { + return false; + } + if (!iframeAnchor) { + return false; + } + document.removeEventListener('click', _removeIframe); + + // Remove the preview style so an unblocked previewed element reappears. + // NOTE: the blocked-elements style is intentionally kept so blocked + // elements stay hidden until the extension filter takes over. + showHiddenElements(previewStyleID); + document.documentElement.removeChild(iframeAnchor); + iframe = null; + iframeAnchor = null; + currentItem = null; + adguard_selector.close(); + onCloseMenu.notify(); + return undefined; + }; + var setCloseEventIfNotHitIframe = function setCloseEventIfNotHitIframe(setEvent) { + document.removeEventListener('click', _removeIframe); + if (setEvent) { + window.setTimeout(function () { + document.addEventListener('click', _removeIframe); + }, 150); + } + }; + var showDetailedMenu = function showDetailedMenu() { + var controller = new DetailedMenuController(src_ioc.get('iframeController')); + var options = { + dragElement: '.menu-head', + maxHeight: detailedMenuInitialHeight + }; + showMenuItem(src_settings.MenuItemsNames.DetailedMenu, controller, iframeMaxWidth, 'auto', options); + setCloseEventIfNotHitIframe(true); + }; + var showSelectorMenu = function showSelectorMenu() { + var controller = new SelectorMenuController(src_ioc.get('iframeController')); + var options = { + dragElement: '.head', + includeSvgIcons: true, + maxHeight: menuMaxHeight + }; + showMenuItem(src_settings.MenuItemsNames.SelectorMenu, controller, menuMaxWidth, menuInitialHeight, options); + setCloseEventIfNotHitIframe(false); + }; + var showSliderMenu = function showSliderMenu(initElement, currentElement, path, optionsState) { + var controller = new SliderMenuController(src_ioc.get('addRule'), src_ioc.get('iframeController')); + var options = { + path: path, + currentElement: currentElement, + element: initElement, + dragElement: '.head', + options: optionsState, + includeSvgIcons: true, + maxHeight: menuMaxHeight + }; + showMenuItem(src_settings.MenuItemsNames.SliderMenu, controller, menuMaxWidth, 'auto', options); + setCloseEventIfNotHitIframe(true); + }; + var showBlockPreview = function showBlockPreview(initElement, path, currentElement, optionsState) { + var controller = new BlockPreviewController(src_ioc.get('addRule'), src_ioc.get('iframeController')); + var options = { + path: path, + currentElement: currentElement, + element: initElement, + dragElement: '.head', + options: optionsState, + includeSvgIcons: true, + maxHeight: menuMaxHeight + }; + showMenuItem(src_settings.MenuItemsNames.BlockPreview, controller, menuMaxWidth, 'auto', options); + setCloseEventIfNotHitIframe(true); + }; + var showSettingsMenu = function showSettingsMenu() { + var controller = new SettingsMenuController(src_ioc.get('iframeController')); + var options = { + dragElement: '.head' + }; + showMenuItem(src_settings.MenuItemsNames.SettingsMenu, controller, 400, 468, options); + setCloseEventIfNotHitIframe(true); + }; + var resizeSliderMenuToAdvanced = function resizeSliderMenuToAdvanced() { + resizeIframe(null, null); + }; + var resizeSliderMenuToNormal = function resizeSliderMenuToNormal() { + resizeIframe(null, null); + }; + var hideElementsByPath = function hideElementsByPath(selectedPath) { + var styleID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blockedElementsStyleID; + if (!selectedPath) { + return false; + } + var slctr; + var style; + if (selectedPath.indexOf('://') > 0) { + // all images by src + slctr = "[src*=\"".concat(selectedPath.split('$domain=')[0], "\"]"); + } else { + // eslint-disable-next-line prefer-destructuring + slctr = selectedPath.split('##')[1]; + } + if (slctr) { + style = "".concat(slctr, "{display:none!important}"); + } else { + src_log.error('Can`t block element: `selector` path is empty'); + return false; + } + var stylesElement = document.documentElement.querySelector("#".concat(styleID)); + if (stylesElement) { + stylesElement.appendChild(document.createTextNode(" ".concat(style))); + } else { + document.documentElement.appendChild(src_protectedApi.createStylesElement(style, getStyleNonce(), styleID)); + } + + // do not hide assistant div if the user wrote a rule + // that blocks all div or iframe elements + if (iframeAnchor) { + iframeAnchor.style.setProperty('display', 'block', 'important'); + } + return undefined; + }; + var blockElement = function blockElement(path, addRule) { + if (gm.ADG_addRule) { + gm.ADG_addRule(path, function () { + _removeIframe(); + hideElementsByPath(path); + bypassCache(); + }); + } else { + if (!addRule) { + src_log.error('Callback function `addRule` can\'t be undefined!'); + } + addRule(path); + _removeIframe(); + hideElementsByPath(path); + bypassCache(); + } + }; + return { + showDetailedMenu: showDetailedMenu, + showSelectorMenu: showSelectorMenu, + showSliderMenu: showSliderMenu, + showBlockPreview: showBlockPreview, + showSettingsMenu: showSettingsMenu, + setButtonPosition: setButtonPosition, + onCloseMenu: onCloseMenu, + onShowMenuItem: onShowMenuItem, + removeIframe: _removeIframe, + resizeSliderMenuToAdvanced: resizeSliderMenuToAdvanced, + resizeSliderMenuToNormal: resizeSliderMenuToNormal, + resizeIframe: resizeIframe, + hideElementsByPath: hideElementsByPath, + showHiddenElements: showHiddenElements, + blockElement: blockElement + }; +} +/* harmony default export */ const iframe = (IframeController); +;// ./src/controllers/sliderMenuControllerMobile.js + + + + +/** + * Slider menu controller mobile + * @param addRule + * @param iframe + * @returns {{init: init}} + * @constructor + */ +function SliderMenuControllerMobile(addRule, iframe) { + var contentDocument = null; + var selectedElement = null; + var iframeCtrl = iframe; + var nodeParentsCount = 0; + var nodeChildsCount = 0; + var parents; + var children; + var nodeNumber = 0; + function showPreview() { + adguard_selector.reset(); + if (this.classList.contains('active')) { + removeClass(selectedElement, 'sg_hide_element'); + removeClass(this, 'active'); + adguard_selector.selectElement(selectedElement); + contentDocument.querySelector('.adg-plus').removeAttribute('disabled'); + contentDocument.querySelector('.adg-minus').removeAttribute('disabled'); + contentDocument.querySelector('.adg-close').removeAttribute('disabled'); + } else { + addClass(selectedElement, 'sg_hide_element'); + addClass(this, 'active'); + contentDocument.querySelector('.adg-plus').setAttribute('disabled', 'disabled'); + contentDocument.querySelector('.adg-minus').setAttribute('disabled', 'disabled'); + contentDocument.querySelector('.adg-close').setAttribute('disabled', 'disabled'); + } + } + var getUrlBlockAttribute = function getUrlBlockAttribute(element) { + var urlBlockAttributes = ['src', 'data']; + for (var i = 0; i < urlBlockAttributes.length; i += 1) { + var attr = urlBlockAttributes[i]; + var value = element.getAttribute(attr); + if (value) { + return value; + } + } + return null; + }; + var getFilterText = function getFilterText() { + var options = { + urlMask: getUrlBlockAttribute(selectedElement), + cssSelectorType: 'STRICT_FULL', + isBlockOneDomain: false, + url: document.location, + ruleType: 'CSS' + }; + return adguard_rules_constructor.constructRuleText(selectedElement, options); + }; + var blockElement = function blockElement() { + selectedElement.classList.remove('sg_hide_element'); + selectedElement.style.display = 'none'; + addRule(getFilterText()); + iframeCtrl.removeIframe(); + }; + var onSliderMove = function onSliderMove(element) { + selectedElement = element; + adguard_selector.selectElement(element); + }; + var plus = function plus() { + nodeNumber = nodeNumber + 1 > nodeParentsCount ? nodeNumber : nodeNumber + 1; + if (nodeNumber >= 0) { + if (parents[nodeNumber]) onSliderMove(parents[nodeNumber]); + // eslint-disable-next-line no-bitwise + } else if (children[~nodeNumber]) onSliderMove(children[~nodeNumber]); + }; + var minus = function minus() { + // TODO: rewrite this + // eslint-disable-next-line no-unused-expressions, no-self-assign + nodeNumber <= -nodeChildsCount ? nodeNumber = nodeNumber : nodeNumber -= 1; + if (nodeNumber >= 0) { + if (parents[nodeNumber]) onSliderMove(parents[nodeNumber]); + // eslint-disable-next-line no-bitwise + } else if (children[~nodeNumber]) onSliderMove(children[~nodeNumber]); + }; + var bindEvents = function bindEvents() { + var menuEvents = { + '.adg-close': iframeCtrl.showSelectorMenu, + '.adg-preview': showPreview, + '.adg-accept': blockElement, + '.adg-plus': plus, + '.adg-minus': minus + }; + Object.keys(menuEvents).forEach(function (item) { + var elems = contentDocument.querySelectorAll(item); + toArray(elems).forEach(function (elem) { + return elem.addEventListener('click', menuEvents[item]); + }); + }); + window.addEventListener('orientationchange', iframeCtrl.showSelectorMenu); + }; + + /* + Called from IframeController._showMenuItem to initialize view + */ + // eslint-disable-next-line no-shadow + var init = function init(iframe, options) { + selectedElement = options.element; + // eslint-disable-next-line prefer-destructuring + contentDocument = iframe.contentDocument; + bindEvents(); + adguard_selector.selectElement(selectedElement); + children = getAllChildren(selectedElement); + parents = getParentsLevel(selectedElement); + parents.splice(0, 0, selectedElement); + nodeParentsCount = parents.length; + nodeChildsCount = children.length; + }; + return { + init: init + }; +} +;// ./package.json +const package_namespaceObject = {"rE":"4.4.13"}; +;// ./src/iframe.mobile.js +function iframe_mobile_typeof(o) { "@babel/helpers - typeof"; return iframe_mobile_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iframe_mobile_typeof(o); } +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function _defineProperty(e, r, t) { return (r = iframe_mobile_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function iframe_mobile_toPropertyKey(t) { var i = iframe_mobile_toPrimitive(t, "string"); return "symbol" == iframe_mobile_typeof(i) ? i : i + ""; } +function iframe_mobile_toPrimitive(t, r) { if ("object" != iframe_mobile_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != iframe_mobile_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } + + + + + + + + + + + +/** + * Manages iframe and it's content + * @returns {{ + * showSelectorMenu: showSelectorMenu, + * showSliderMenu: showSliderMenu, + * setButtonPosition: setButtonPosition, + * onCloseMenu: CustomEvent, + * onShowMenuItem: CustomEvent, + * removeIframe: removeIframe + * }} + * @constructor + */ +function IframeControllerMobile() { + var iframe = null; + var iframeElement = null; + var currentItem = null; + var onCloseMenu = new CustomEvent(); + var onShowMenuItem = new CustomEvent(); + var views = {}; + views['mobilePopup.html'] = HTML.popup; + views['mobileMenu.html'] = HTML.mobile_menu; + var defaultCSS = { + clip: 'auto', + 'z-index': 2147483647 + }; + var defaultAttributes = { + "class": adguard_selector.ignoreClassName(), + frameBorder: 0, + allowTransparency: 'true', + id: 'iframe-x2eRYVVQRsG9' + }; + var updateIframeAttrs = function updateIframeAttrs(attrs) { + iframe.removeAttribute('style'); + iframe.removeAttribute('height'); + var attributes = _objectSpread(_objectSpread({}, defaultAttributes), attrs); + Object.keys(attributes).forEach(function (item) { + iframe.setAttribute(item, attributes[item]); + }); + }; + var updateIframeStyles = function updateIframeStyles(styles) { + var css = _objectSpread(_objectSpread({}, defaultCSS), styles); + Object.keys(css).forEach(function (item) { + iframe.style[item] = css[item]; + }); + }; + var createIframe = function createIframe(onIframeLoadCallback, styles, attrs) { + src_log.debug('Creating iframe'); + if (document.querySelector("#".concat(defaultAttributes.id))) { + src_log.error('Iframe already added'); + return; + } + iframe = src_protectedApi.createElement('iframe'); + iframe.addEventListener('load', function () { + onIframeLoadCallback(); + updateIframeAttrs(attrs); + updateIframeStyles(styles); + }); + iframeElement = iframe; + var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, 'adg-styles-selector'); + if (adgStylesSelector) { + document.documentElement.appendChild(adgStylesSelector); + } + document.documentElement.appendChild(iframeElement); + }; + var appendContent = function appendContent(view) { + var body = iframe.contentDocument.body; + for (var i = 0; i < body.children.length; i += 1) { + body.removeChild(body.children[i]); + } + body.appendChild(view); + }; + var localize = function localize() { + var elements = iframe.contentDocument.querySelectorAll('[i18n]'); + for (var i = 0; i < elements.length; i += 1) { + var message = src_localization.getMessage(elements[i].getAttribute('i18n')); + src_localization.translateElement(elements[i], message); + } + var elementsWithTitle = iframe.contentDocument.querySelectorAll('[i18n-title]'); + for (var j = 0; j < elementsWithTitle.length; j += 1) { + var title = src_localization.getMessage(elementsWithTitle[j].getAttribute('i18n-title')); + elementsWithTitle[j].setAttribute('title', title); + } + }; + var hideIframe = function hideIframe() { + if (iframe) { + iframe.style.display = 'none'; + } + }; + var showIframe = function showIframe() { + if (iframe) { + iframe.style.display = 'block'; + } + }; + var showMenuItem = function showMenuItem(viewName, controller, options, styles, attrs) { + if (currentItem === viewName) { + return; + } + var onIframeLoad = function onIframeLoad() { + var frameElement = iframe; + var view = src_protectedApi.createElement(views[viewName]); + var iframeStyles = CSS.common + CSS.mobile; + view.appendChild(src_protectedApi.createStylesElement(iframeStyles)); + appendContent(view); + localize(); + if (!options) { + // eslint-disable-next-line no-param-reassign + options = {}; + } + if (controller) { + controller.init(frameElement, options); + } + updateIframeAttrs(attrs); + updateIframeStyles(styles); + currentItem = viewName; + onShowMenuItem.notify(); + showIframe(); + }; + if (!iframe) { + var adgStylesSelector = src_protectedApi.createStylesElement(CSS.selector, 'adg-styles-selector'); + if (adgStylesSelector) { + document.documentElement.appendChild(adgStylesSelector); + } + createIframe(onIframeLoad, styles, attrs); + return; + } + onIframeLoad(); + }; + var startSelect = function startSelect() { + hideIframe(); + var controller = new SelectorMenuController(src_ioc.get('iframeController')); + controller.startSelector(); + }; + var showSelectorMenu = function showSelectorMenu() { + hideIframe(); + adguard_selector.close(); + var styles = { + position: 'fixed', + left: 0, + top: 0, + right: 0, + bottom: 0, + margin: 'auto', + 'border-radius': '2px', + background: 'transparent', + width: '40vmax', + height: '40vmax' + }; + + // eslint-disable-next-line no-use-before-define + showMenuItem('mobilePopup.html', mobilePopupButtonsInit(), null, styles); + }; + + // e.isTrusted checking for prevent programmatically events + // see: https://github.com/AdguardTeam/AdguardAssistant/issues/134 + var _removeIframe = function removeIframe(e) { + if (e && e.isTrusted === false) { + return false; + } + if (!iframeElement) { + return false; + } + document.removeEventListener('click', _removeIframe); + window.removeEventListener('orientationchange', showSelectorMenu); + document.documentElement.removeChild(iframeElement); + iframe = null; + iframeElement = null; + currentItem = null; + adguard_selector.close(); + onCloseMenu.notify(); + return undefined; + }; + var mobilePopupButtonsInit = function mobilePopupButtonsInit() { + return { + init: function init() { + var startSelectMode = iframe.contentDocument.querySelector('.start-select-mode'); + var cancelSelectMode = iframe.contentDocument.querySelector('.cancel-select-mode'); + var appVersionElem = iframe.contentDocument.querySelector('#appVersion'); + startSelectMode.addEventListener('click', startSelect); + cancelSelectMode.addEventListener('click', _removeIframe); + appVersionElem.innerText = "v".concat(package_namespaceObject.rE); + } + }; + }; + var showSliderMenu = function showSliderMenu(element) { + var controller = new SliderMenuControllerMobile(src_ioc.get('addRule'), src_ioc.get('iframeController')); + var options = { + element: element + }; + var styles = { + position: 'fixed', + bottom: 0, + left: '50%', + transform: 'translateX(-50%)', + width: '70vw', + height: '27vw' + }; + showMenuItem('mobileMenu.html', controller, options, styles); + }; + return { + showSelectorMenu: showSelectorMenu, + showSliderMenu: showSliderMenu, + onCloseMenu: onCloseMenu, + onShowMenuItem: onShowMenuItem, + removeIframe: _removeIframe, + startSelect: startSelect + }; +} +;// ./src/embedded.js +/* global AdguardSettings */ + + + + + + + + +/* embedded script for extensions */ +/* + * adguardAssistantExtended main function is for desktop browsers + */ +function adguardAssistantExtended() { + var adguardSettings = typeof AdguardSettings === 'undefined' ? null : AdguardSettings; + src_wot.registerWotEventHandler(); + src_settings.setAdguardSettings(adguardSettings); + var iframeController = new iframe(); + src_ioc.register('iframeController', iframeController); + return { + start: function start(element, callback) { + src_ioc.register('addRule', src_protectedApi.functionBind.call(callback, this)); + if (element) { + iframeController.showSelectorMenu(); + iframeController.showSliderMenu(element); + } else { + iframeController.showSelectorMenu(); + } + }, + close: function close() { + iframeController.removeIframe(); + } + }; +} + +/* + * adguardAssistantMini function is for mobile browsers + */ +function adguardAssistantMini() { + var iframeController = new IframeControllerMobile(); + src_ioc.register('iframeController', iframeController); + return { + start: function start(element, callback) { + src_ioc.register('addRule', src_protectedApi.functionBind.call(callback, this)); + if (element) { + iframeController.showSelectorMenu(); + iframeController.showSliderMenu(element); + } else { + iframeController.showSelectorMenu(); + } + }, + close: function close() { + iframeController.removeIframe(); + } + }; +} +;// ./src/helpers.js +// eslint-disable-next-line max-len +var mobileReg = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i; +var isMobile = function isMobile(ua) { + return mobileReg.test(ua); +}; +;// ./src/index.js + + +var adguardAssistant = isMobile(navigator.userAgent) ? adguardAssistantMini : adguardAssistantExtended; +})(); + +/******/ return __nested_webpack_exports__; +/******/ })() +; +}); + +}, +28467(module, __unused_webpack_exports, __webpack_require__) { +/* module decorator */ module = __webpack_require__.nmd(module); +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("webextension-polyfill", ["module"], factory); + } else if (true) { + factory(module); + } else { var mod } +})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (module) { + /* webextension-polyfill - v0.12.0 - Tue May 14 2024 18:01:29 */ + /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ + /* vim: set sts=2 sw=2 et tw=80: */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + "use strict"; + + if (!(globalThis.chrome && globalThis.chrome.runtime && globalThis.chrome.runtime.id)) { + throw new Error("This script should only be loaded in a browser extension."); + } + if (!(globalThis.browser && globalThis.browser.runtime && globalThis.browser.runtime.id)) { + const CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE = "The message port closed before a response was received."; + + // Wrapping the bulk of this polyfill in a one-time-use function is a minor + // optimization for Firefox. Since Spidermonkey does not fully parse the + // contents of a function until the first time it's called, and since it will + // never actually need to be called, this allows the polyfill to be included + // in Firefox nearly for free. + const wrapAPIs = extensionAPIs => { + // NOTE: apiMetadata is associated to the content of the api-metadata.json file + // at build time by replacing the following "include" with the content of the + // JSON file. + const apiMetadata = { + "alarms": { + "clear": { + "minArgs": 0, + "maxArgs": 1 + }, + "clearAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "get": { + "minArgs": 0, + "maxArgs": 1 + }, + "getAll": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "bookmarks": { + "create": { + "minArgs": 1, + "maxArgs": 1 + }, + "get": { + "minArgs": 1, + "maxArgs": 1 + }, + "getChildren": { + "minArgs": 1, + "maxArgs": 1 + }, + "getRecent": { + "minArgs": 1, + "maxArgs": 1 + }, + "getSubTree": { + "minArgs": 1, + "maxArgs": 1 + }, + "getTree": { + "minArgs": 0, + "maxArgs": 0 + }, + "move": { + "minArgs": 2, + "maxArgs": 2 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeTree": { + "minArgs": 1, + "maxArgs": 1 + }, + "search": { + "minArgs": 1, + "maxArgs": 1 + }, + "update": { + "minArgs": 2, + "maxArgs": 2 + } + }, + "browserAction": { + "disable": { + "minArgs": 0, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "enable": { + "minArgs": 0, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "getBadgeBackgroundColor": { + "minArgs": 1, + "maxArgs": 1 + }, + "getBadgeText": { + "minArgs": 1, + "maxArgs": 1 + }, + "getPopup": { + "minArgs": 1, + "maxArgs": 1 + }, + "getTitle": { + "minArgs": 1, + "maxArgs": 1 + }, + "openPopup": { + "minArgs": 0, + "maxArgs": 0 + }, + "setBadgeBackgroundColor": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "setBadgeText": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "setIcon": { + "minArgs": 1, + "maxArgs": 1 + }, + "setPopup": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "setTitle": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + } + }, + "browsingData": { + "remove": { + "minArgs": 2, + "maxArgs": 2 + }, + "removeCache": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeCookies": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeDownloads": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeFormData": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeHistory": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeLocalStorage": { + "minArgs": 1, + "maxArgs": 1 + }, + "removePasswords": { + "minArgs": 1, + "maxArgs": 1 + }, + "removePluginData": { + "minArgs": 1, + "maxArgs": 1 + }, + "settings": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "commands": { + "getAll": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "contextMenus": { + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "update": { + "minArgs": 2, + "maxArgs": 2 + } + }, + "cookies": { + "get": { + "minArgs": 1, + "maxArgs": 1 + }, + "getAll": { + "minArgs": 1, + "maxArgs": 1 + }, + "getAllCookieStores": { + "minArgs": 0, + "maxArgs": 0 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "set": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "devtools": { + "inspectedWindow": { + "eval": { + "minArgs": 1, + "maxArgs": 2, + "singleCallbackArg": false + } + }, + "panels": { + "create": { + "minArgs": 3, + "maxArgs": 3, + "singleCallbackArg": true + }, + "elements": { + "createSidebarPane": { + "minArgs": 1, + "maxArgs": 1 + } + } + } + }, + "downloads": { + "cancel": { + "minArgs": 1, + "maxArgs": 1 + }, + "download": { + "minArgs": 1, + "maxArgs": 1 + }, + "erase": { + "minArgs": 1, + "maxArgs": 1 + }, + "getFileIcon": { + "minArgs": 1, + "maxArgs": 2 + }, + "open": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "pause": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeFile": { + "minArgs": 1, + "maxArgs": 1 + }, + "resume": { + "minArgs": 1, + "maxArgs": 1 + }, + "search": { + "minArgs": 1, + "maxArgs": 1 + }, + "show": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + } + }, + "extension": { + "isAllowedFileSchemeAccess": { + "minArgs": 0, + "maxArgs": 0 + }, + "isAllowedIncognitoAccess": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "history": { + "addUrl": { + "minArgs": 1, + "maxArgs": 1 + }, + "deleteAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "deleteRange": { + "minArgs": 1, + "maxArgs": 1 + }, + "deleteUrl": { + "minArgs": 1, + "maxArgs": 1 + }, + "getVisits": { + "minArgs": 1, + "maxArgs": 1 + }, + "search": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "i18n": { + "detectLanguage": { + "minArgs": 1, + "maxArgs": 1 + }, + "getAcceptLanguages": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "identity": { + "launchWebAuthFlow": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "idle": { + "queryState": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "management": { + "get": { + "minArgs": 1, + "maxArgs": 1 + }, + "getAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "getSelf": { + "minArgs": 0, + "maxArgs": 0 + }, + "setEnabled": { + "minArgs": 2, + "maxArgs": 2 + }, + "uninstallSelf": { + "minArgs": 0, + "maxArgs": 1 + } + }, + "notifications": { + "clear": { + "minArgs": 1, + "maxArgs": 1 + }, + "create": { + "minArgs": 1, + "maxArgs": 2 + }, + "getAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "getPermissionLevel": { + "minArgs": 0, + "maxArgs": 0 + }, + "update": { + "minArgs": 2, + "maxArgs": 2 + } + }, + "pageAction": { + "getPopup": { + "minArgs": 1, + "maxArgs": 1 + }, + "getTitle": { + "minArgs": 1, + "maxArgs": 1 + }, + "hide": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "setIcon": { + "minArgs": 1, + "maxArgs": 1 + }, + "setPopup": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "setTitle": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + }, + "show": { + "minArgs": 1, + "maxArgs": 1, + "fallbackToNoCallback": true + } + }, + "permissions": { + "contains": { + "minArgs": 1, + "maxArgs": 1 + }, + "getAll": { + "minArgs": 0, + "maxArgs": 0 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "request": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "runtime": { + "getBackgroundPage": { + "minArgs": 0, + "maxArgs": 0 + }, + "getPlatformInfo": { + "minArgs": 0, + "maxArgs": 0 + }, + "openOptionsPage": { + "minArgs": 0, + "maxArgs": 0 + }, + "requestUpdateCheck": { + "minArgs": 0, + "maxArgs": 0 + }, + "sendMessage": { + "minArgs": 1, + "maxArgs": 3 + }, + "sendNativeMessage": { + "minArgs": 2, + "maxArgs": 2 + }, + "setUninstallURL": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "sessions": { + "getDevices": { + "minArgs": 0, + "maxArgs": 1 + }, + "getRecentlyClosed": { + "minArgs": 0, + "maxArgs": 1 + }, + "restore": { + "minArgs": 0, + "maxArgs": 1 + } + }, + "storage": { + "local": { + "clear": { + "minArgs": 0, + "maxArgs": 0 + }, + "get": { + "minArgs": 0, + "maxArgs": 1 + }, + "getBytesInUse": { + "minArgs": 0, + "maxArgs": 1 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "set": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "managed": { + "get": { + "minArgs": 0, + "maxArgs": 1 + }, + "getBytesInUse": { + "minArgs": 0, + "maxArgs": 1 + } + }, + "sync": { + "clear": { + "minArgs": 0, + "maxArgs": 0 + }, + "get": { + "minArgs": 0, + "maxArgs": 1 + }, + "getBytesInUse": { + "minArgs": 0, + "maxArgs": 1 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "set": { + "minArgs": 1, + "maxArgs": 1 + } + } + }, + "tabs": { + "captureVisibleTab": { + "minArgs": 0, + "maxArgs": 2 + }, + "create": { + "minArgs": 1, + "maxArgs": 1 + }, + "detectLanguage": { + "minArgs": 0, + "maxArgs": 1 + }, + "discard": { + "minArgs": 0, + "maxArgs": 1 + }, + "duplicate": { + "minArgs": 1, + "maxArgs": 1 + }, + "executeScript": { + "minArgs": 1, + "maxArgs": 2 + }, + "get": { + "minArgs": 1, + "maxArgs": 1 + }, + "getCurrent": { + "minArgs": 0, + "maxArgs": 0 + }, + "getZoom": { + "minArgs": 0, + "maxArgs": 1 + }, + "getZoomSettings": { + "minArgs": 0, + "maxArgs": 1 + }, + "goBack": { + "minArgs": 0, + "maxArgs": 1 + }, + "goForward": { + "minArgs": 0, + "maxArgs": 1 + }, + "highlight": { + "minArgs": 1, + "maxArgs": 1 + }, + "insertCSS": { + "minArgs": 1, + "maxArgs": 2 + }, + "move": { + "minArgs": 2, + "maxArgs": 2 + }, + "query": { + "minArgs": 1, + "maxArgs": 1 + }, + "reload": { + "minArgs": 0, + "maxArgs": 2 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "removeCSS": { + "minArgs": 1, + "maxArgs": 2 + }, + "sendMessage": { + "minArgs": 2, + "maxArgs": 3 + }, + "setZoom": { + "minArgs": 1, + "maxArgs": 2 + }, + "setZoomSettings": { + "minArgs": 1, + "maxArgs": 2 + }, + "update": { + "minArgs": 1, + "maxArgs": 2 + } + }, + "topSites": { + "get": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "webNavigation": { + "getAllFrames": { + "minArgs": 1, + "maxArgs": 1 + }, + "getFrame": { + "minArgs": 1, + "maxArgs": 1 + } + }, + "webRequest": { + "handlerBehaviorChanged": { + "minArgs": 0, + "maxArgs": 0 + } + }, + "windows": { + "create": { + "minArgs": 0, + "maxArgs": 1 + }, + "get": { + "minArgs": 1, + "maxArgs": 2 + }, + "getAll": { + "minArgs": 0, + "maxArgs": 1 + }, + "getCurrent": { + "minArgs": 0, + "maxArgs": 1 + }, + "getLastFocused": { + "minArgs": 0, + "maxArgs": 1 + }, + "remove": { + "minArgs": 1, + "maxArgs": 1 + }, + "update": { + "minArgs": 2, + "maxArgs": 2 + } + } + }; + if (Object.keys(apiMetadata).length === 0) { + throw new Error("api-metadata.json has not been included in browser-polyfill"); + } + + /** + * A WeakMap subclass which creates and stores a value for any key which does + * not exist when accessed, but behaves exactly as an ordinary WeakMap + * otherwise. + * + * @param {function} createItem + * A function which will be called in order to create the value for any + * key which does not exist, the first time it is accessed. The + * function receives, as its only argument, the key being created. + */ + class DefaultWeakMap extends WeakMap { + constructor(createItem, items = undefined) { + super(items); + this.createItem = createItem; + } + get(key) { + if (!this.has(key)) { + this.set(key, this.createItem(key)); + } + return super.get(key); + } + } + + /** + * Returns true if the given object is an object with a `then` method, and can + * therefore be assumed to behave as a Promise. + * + * @param {*} value The value to test. + * @returns {boolean} True if the value is thenable. + */ + const isThenable = value => { + return value && typeof value === "object" && typeof value.then === "function"; + }; + + /** + * Creates and returns a function which, when called, will resolve or reject + * the given promise based on how it is called: + * + * - If, when called, `chrome.runtime.lastError` contains a non-null object, + * the promise is rejected with that value. + * - If the function is called with exactly one argument, the promise is + * resolved to that value. + * - Otherwise, the promise is resolved to an array containing all of the + * function's arguments. + * + * @param {object} promise + * An object containing the resolution and rejection functions of a + * promise. + * @param {function} promise.resolve + * The promise's resolution function. + * @param {function} promise.reject + * The promise's rejection function. + * @param {object} metadata + * Metadata about the wrapped method which has created the callback. + * @param {boolean} metadata.singleCallbackArg + * Whether or not the promise is resolved with only the first + * argument of the callback, alternatively an array of all the + * callback arguments is resolved. By default, if the callback + * function is invoked with only a single argument, that will be + * resolved to the promise, while all arguments will be resolved as + * an array if multiple are given. + * + * @returns {function} + * The generated callback function. + */ + const makeCallback = (promise, metadata) => { + return (...callbackArgs) => { + if (extensionAPIs.runtime.lastError) { + promise.reject(new Error(extensionAPIs.runtime.lastError.message)); + } else if (metadata.singleCallbackArg || callbackArgs.length <= 1 && metadata.singleCallbackArg !== false) { + promise.resolve(callbackArgs[0]); + } else { + promise.resolve(callbackArgs); + } + }; + }; + const pluralizeArguments = numArgs => numArgs == 1 ? "argument" : "arguments"; + + /** + * Creates a wrapper function for a method with the given name and metadata. + * + * @param {string} name + * The name of the method which is being wrapped. + * @param {object} metadata + * Metadata about the method being wrapped. + * @param {integer} metadata.minArgs + * The minimum number of arguments which must be passed to the + * function. If called with fewer than this number of arguments, the + * wrapper will raise an exception. + * @param {integer} metadata.maxArgs + * The maximum number of arguments which may be passed to the + * function. If called with more than this number of arguments, the + * wrapper will raise an exception. + * @param {boolean} metadata.singleCallbackArg + * Whether or not the promise is resolved with only the first + * argument of the callback, alternatively an array of all the + * callback arguments is resolved. By default, if the callback + * function is invoked with only a single argument, that will be + * resolved to the promise, while all arguments will be resolved as + * an array if multiple are given. + * + * @returns {function(object, ...*)} + * The generated wrapper function. + */ + const wrapAsyncFunction = (name, metadata) => { + return function asyncFunctionWrapper(target, ...args) { + if (args.length < metadata.minArgs) { + throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`); + } + if (args.length > metadata.maxArgs) { + throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`); + } + return new Promise((resolve, reject) => { + if (metadata.fallbackToNoCallback) { + // This API method has currently no callback on Chrome, but it return a promise on Firefox, + // and so the polyfill will try to call it with a callback first, and it will fallback + // to not passing the callback if the first call fails. + try { + target[name](...args, makeCallback({ + resolve, + reject + }, metadata)); + } catch (cbError) { + console.warn(`${name} API method doesn't seem to support the callback parameter, ` + "falling back to call it without a callback: ", cbError); + target[name](...args); + + // Update the API method metadata, so that the next API calls will not try to + // use the unsupported callback anymore. + metadata.fallbackToNoCallback = false; + metadata.noCallback = true; + resolve(); + } + } else if (metadata.noCallback) { + target[name](...args); + resolve(); + } else { + target[name](...args, makeCallback({ + resolve, + reject + }, metadata)); + } + }); + }; + }; + + /** + * Wraps an existing method of the target object, so that calls to it are + * intercepted by the given wrapper function. The wrapper function receives, + * as its first argument, the original `target` object, followed by each of + * the arguments passed to the original method. + * + * @param {object} target + * The original target object that the wrapped method belongs to. + * @param {function} method + * The method being wrapped. This is used as the target of the Proxy + * object which is created to wrap the method. + * @param {function} wrapper + * The wrapper function which is called in place of a direct invocation + * of the wrapped method. + * + * @returns {Proxy} + * A Proxy object for the given method, which invokes the given wrapper + * method in its place. + */ + const wrapMethod = (target, method, wrapper) => { + return new Proxy(method, { + apply(targetMethod, thisObj, args) { + return wrapper.call(thisObj, target, ...args); + } + }); + }; + let hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); + + /** + * Wraps an object in a Proxy which intercepts and wraps certain methods + * based on the given `wrappers` and `metadata` objects. + * + * @param {object} target + * The target object to wrap. + * + * @param {object} [wrappers = {}] + * An object tree containing wrapper functions for special cases. Any + * function present in this object tree is called in place of the + * method in the same location in the `target` object tree. These + * wrapper methods are invoked as described in {@see wrapMethod}. + * + * @param {object} [metadata = {}] + * An object tree containing metadata used to automatically generate + * Promise-based wrapper functions for asynchronous. Any function in + * the `target` object tree which has a corresponding metadata object + * in the same location in the `metadata` tree is replaced with an + * automatically-generated wrapper function, as described in + * {@see wrapAsyncFunction} + * + * @returns {Proxy} + */ + const wrapObject = (target, wrappers = {}, metadata = {}) => { + let cache = Object.create(null); + let handlers = { + has(proxyTarget, prop) { + return prop in target || prop in cache; + }, + get(proxyTarget, prop, receiver) { + if (prop in cache) { + return cache[prop]; + } + if (!(prop in target)) { + return undefined; + } + let value = target[prop]; + if (typeof value === "function") { + // This is a method on the underlying object. Check if we need to do + // any wrapping. + + if (typeof wrappers[prop] === "function") { + // We have a special-case wrapper for this method. + value = wrapMethod(target, target[prop], wrappers[prop]); + } else if (hasOwnProperty(metadata, prop)) { + // This is an async method that we have metadata for. Create a + // Promise wrapper for it. + let wrapper = wrapAsyncFunction(prop, metadata[prop]); + value = wrapMethod(target, target[prop], wrapper); + } else { + // This is a method that we don't know or care about. Return the + // original method, bound to the underlying object. + value = value.bind(target); + } + } else if (typeof value === "object" && value !== null && (hasOwnProperty(wrappers, prop) || hasOwnProperty(metadata, prop))) { + // This is an object that we need to do some wrapping for the children + // of. Create a sub-object wrapper for it with the appropriate child + // metadata. + value = wrapObject(value, wrappers[prop], metadata[prop]); + } else if (hasOwnProperty(metadata, "*")) { + // Wrap all properties in * namespace. + value = wrapObject(value, wrappers[prop], metadata["*"]); + } else { + // We don't need to do any wrapping for this property, + // so just forward all access to the underlying object. + Object.defineProperty(cache, prop, { + configurable: true, + enumerable: true, + get() { + return target[prop]; + }, + set(value) { + target[prop] = value; + } + }); + return value; + } + cache[prop] = value; + return value; + }, + set(proxyTarget, prop, value, receiver) { + if (prop in cache) { + cache[prop] = value; + } else { + target[prop] = value; + } + return true; + }, + defineProperty(proxyTarget, prop, desc) { + return Reflect.defineProperty(cache, prop, desc); + }, + deleteProperty(proxyTarget, prop) { + return Reflect.deleteProperty(cache, prop); + } + }; + + // Per contract of the Proxy API, the "get" proxy handler must return the + // original value of the target if that value is declared read-only and + // non-configurable. For this reason, we create an object with the + // prototype set to `target` instead of using `target` directly. + // Otherwise we cannot return a custom object for APIs that + // are declared read-only and non-configurable, such as `chrome.devtools`. + // + // The proxy handlers themselves will still use the original `target` + // instead of the `proxyTarget`, so that the methods and properties are + // dereferenced via the original targets. + let proxyTarget = Object.create(target); + return new Proxy(proxyTarget, handlers); + }; + + /** + * Creates a set of wrapper functions for an event object, which handles + * wrapping of listener functions that those messages are passed. + * + * A single wrapper is created for each listener function, and stored in a + * map. Subsequent calls to `addListener`, `hasListener`, or `removeListener` + * retrieve the original wrapper, so that attempts to remove a + * previously-added listener work as expected. + * + * @param {DefaultWeakMap} wrapperMap + * A DefaultWeakMap object which will create the appropriate wrapper + * for a given listener function when one does not exist, and retrieve + * an existing one when it does. + * + * @returns {object} + */ + const wrapEvent = wrapperMap => ({ + addListener(target, listener, ...args) { + target.addListener(wrapperMap.get(listener), ...args); + }, + hasListener(target, listener) { + return target.hasListener(wrapperMap.get(listener)); + }, + removeListener(target, listener) { + target.removeListener(wrapperMap.get(listener)); + } + }); + const onRequestFinishedWrappers = new DefaultWeakMap(listener => { + if (typeof listener !== "function") { + return listener; + } + + /** + * Wraps an onRequestFinished listener function so that it will return a + * `getContent()` property which returns a `Promise` rather than using a + * callback API. + * + * @param {object} req + * The HAR entry object representing the network request. + */ + return function onRequestFinished(req) { + const wrappedReq = wrapObject(req, {} /* wrappers */, { + getContent: { + minArgs: 0, + maxArgs: 0 + } + }); + listener(wrappedReq); + }; + }); + const onMessageWrappers = new DefaultWeakMap(listener => { + if (typeof listener !== "function") { + return listener; + } + + /** + * Wraps a message listener function so that it may send responses based on + * its return value, rather than by returning a sentinel value and calling a + * callback. If the listener function returns a Promise, the response is + * sent when the promise either resolves or rejects. + * + * @param {*} message + * The message sent by the other end of the channel. + * @param {object} sender + * Details about the sender of the message. + * @param {function(*)} sendResponse + * A callback which, when called with an arbitrary argument, sends + * that value as a response. + * @returns {boolean} + * True if the wrapped listener returned a Promise, which will later + * yield a response. False otherwise. + */ + return function onMessage(message, sender, sendResponse) { + let didCallSendResponse = false; + let wrappedSendResponse; + let sendResponsePromise = new Promise(resolve => { + wrappedSendResponse = function (response) { + didCallSendResponse = true; + resolve(response); + }; + }); + let result; + try { + result = listener(message, sender, wrappedSendResponse); + } catch (err) { + result = Promise.reject(err); + } + const isResultThenable = result !== true && isThenable(result); + + // If the listener didn't returned true or a Promise, or called + // wrappedSendResponse synchronously, we can exit earlier + // because there will be no response sent from this listener. + if (result !== true && !isResultThenable && !didCallSendResponse) { + return false; + } + + // A small helper to send the message if the promise resolves + // and an error if the promise rejects (a wrapped sendMessage has + // to translate the message into a resolved promise or a rejected + // promise). + const sendPromisedResult = promise => { + promise.then(msg => { + // send the message value. + sendResponse(msg); + }, error => { + // Send a JSON representation of the error if the rejected value + // is an instance of error, or the object itself otherwise. + let message; + if (error && (error instanceof Error || typeof error.message === "string")) { + message = error.message; + } else { + message = "An unexpected error occurred"; + } + sendResponse({ + __mozWebExtensionPolyfillReject__: true, + message + }); + }).catch(err => { + // Print an error on the console if unable to send the response. + console.error("Failed to send onMessage rejected reply", err); + }); + }; + + // If the listener returned a Promise, send the resolved value as a + // result, otherwise wait the promise related to the wrappedSendResponse + // callback to resolve and send it as a response. + if (isResultThenable) { + sendPromisedResult(result); + } else { + sendPromisedResult(sendResponsePromise); + } + + // Let Chrome know that the listener is replying. + return true; + }; + }); + const wrappedSendMessageCallback = ({ + reject, + resolve + }, reply) => { + if (extensionAPIs.runtime.lastError) { + // Detect when none of the listeners replied to the sendMessage call and resolve + // the promise to undefined as in Firefox. + // See https://github.com/mozilla/webextension-polyfill/issues/130 + if (extensionAPIs.runtime.lastError.message === CHROME_SEND_MESSAGE_CALLBACK_NO_RESPONSE_MESSAGE) { + resolve(); + } else { + reject(new Error(extensionAPIs.runtime.lastError.message)); + } + } else if (reply && reply.__mozWebExtensionPolyfillReject__) { + // Convert back the JSON representation of the error into + // an Error instance. + reject(new Error(reply.message)); + } else { + resolve(reply); + } + }; + const wrappedSendMessage = (name, metadata, apiNamespaceObj, ...args) => { + if (args.length < metadata.minArgs) { + throw new Error(`Expected at least ${metadata.minArgs} ${pluralizeArguments(metadata.minArgs)} for ${name}(), got ${args.length}`); + } + if (args.length > metadata.maxArgs) { + throw new Error(`Expected at most ${metadata.maxArgs} ${pluralizeArguments(metadata.maxArgs)} for ${name}(), got ${args.length}`); + } + return new Promise((resolve, reject) => { + const wrappedCb = wrappedSendMessageCallback.bind(null, { + resolve, + reject + }); + args.push(wrappedCb); + apiNamespaceObj.sendMessage(...args); + }); + }; + const staticWrappers = { + devtools: { + network: { + onRequestFinished: wrapEvent(onRequestFinishedWrappers) + } + }, + runtime: { + onMessage: wrapEvent(onMessageWrappers), + onMessageExternal: wrapEvent(onMessageWrappers), + sendMessage: wrappedSendMessage.bind(null, "sendMessage", { + minArgs: 1, + maxArgs: 3 + }) + }, + tabs: { + sendMessage: wrappedSendMessage.bind(null, "sendMessage", { + minArgs: 2, + maxArgs: 3 + }) + } + }; + const settingMetadata = { + clear: { + minArgs: 1, + maxArgs: 1 + }, + get: { + minArgs: 1, + maxArgs: 1 + }, + set: { + minArgs: 1, + maxArgs: 1 + } + }; + apiMetadata.privacy = { + network: { + "*": settingMetadata + }, + services: { + "*": settingMetadata + }, + websites: { + "*": settingMetadata + } + }; + return wrapObject(extensionAPIs, staticWrappers, apiMetadata); + }; + + // The build process adds a UMD wrapper around this file, which makes the + // `module` variable available. + module.exports = wrapAPIs(chrome); + } else { + module.exports = globalThis.browser; + } +}); + + +}, + +}); +// The module cache +var __webpack_module_cache__ = {}; + +// The require function +function __webpack_require__(moduleId) { + +// Check if module is in cache +var cachedModule = __webpack_module_cache__[moduleId]; +if (cachedModule !== undefined) { +return cachedModule.exports; +} +// Create a new module (and put it into the cache) +var module = (__webpack_module_cache__[moduleId] = { +id: moduleId, +loaded: false, +exports: {} +}); +// Execute the module function +__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +// Flag the module as loaded +module.loaded = true; +// Return the exports of the module +return module.exports; + +} + +// webpack/runtime/node_module_decorator +(() => { +__webpack_require__.nmd = (module) => { + module.paths = []; + if (!module.children) module.children = []; + return module; +}; +})(); +// webpack/runtime/rspack_version +(() => { +__webpack_require__.rv = () => ("1.6.6") +})(); +// webpack/runtime/rspack_unique_id +(() => { +__webpack_require__.ruid = "bundler=rspack@1.6.6"; +})(); +// This entry needs to be wrapped in an IIFE because it needs to be in strict mode. +(() => { +"use strict"; + +// EXTERNAL MODULE: ./node_modules/.pnpm/webextension-polyfill@0.12.0/node_modules/webextension-polyfill/dist/browser-polyfill.js +var browser_polyfill = __webpack_require__(28467); +// EXTERNAL MODULE: ./node_modules/.pnpm/@adguard+assistant@4.4.13/node_modules/@adguard/assistant/dist/assistant.js +var assistant = __webpack_require__(37190); +;// CONCATENATED MODULE: ./node_modules/.pnpm/@adguard+tswebextension@5.0.3_@adguard+re2-wasm@1.2.0_typescript@5.6.3/node_modules/@adguard/tswebextension/dist/common/message-constants.js +/** + * @file + * This file contains constants for communication between background and content scripts. + * This constants are separated from message.ts to reduce bundle size, + * because rollup cannot tree-shake tswebextension library code. + */ +/** + * Name of the message handler. + * It is needed for determining specific tswebextension message from other messages. + */ +const MESSAGE_HANDLER_NAME = 'tsWebExtension'; +/** + * Message types for communication between background and content scripts. + */ +var message_constants_MessageType; +(function (MessageType) { + MessageType["ProcessShouldCollapse"] = "processShouldCollapse"; + MessageType["GetCosmeticData"] = "getCosmeticData"; + MessageType["GetCookieRules"] = "getCookieRules"; + MessageType["SaveCookieLogEvent"] = "saveCookieLogEvent"; + MessageType["InitAssistant"] = "initAssistant"; + MessageType["CloseAssistant"] = "closeAssistant"; + MessageType["AssistantCreateRule"] = "assistantCreateRule"; + MessageType["SaveCssHitsStats"] = "saveCssHitsStats"; +})(message_constants_MessageType || (message_constants_MessageType = {})); + + + +;// CONCATENATED MODULE: ./node_modules/.pnpm/@adguard+logger@2.0.0/node_modules/@adguard/logger/dist/es/index.mjs +/** + * Checks if error has message. + * + * @param error Error object. + * + * @returns True if error has message. + */ +function isErrorWithMessage(error) { + return (typeof error === 'object' + && error !== null + && 'message' in error + && typeof error.message === 'string'); +} +/** + * Converts error to the error with a message. + * + * @param maybeError Possible error. + * + * @returns Error with a message. + */ +function toErrorWithMessage(maybeError) { + if (isErrorWithMessage(maybeError)) { + return maybeError; + } + try { + return new Error(JSON.stringify(maybeError)); + } + catch { + // fallback in case there's an error stringifying the maybeError + // like with circular references, for example. + return new Error(String(maybeError)); + } +} +/** + * Converts an error object to an error with a message. This method might be helpful to handle thrown errors. + * + * @param error Error object. + * + * @returns Message of the error. + */ +function getErrorMessage(error) { + return toErrorWithMessage(error).message; +} + +/** + * Pads a number with leading zeros. + * + * @param num The number to pad. + * @param size The number of digits to pad to. + * + * @returns The padded number. + */ +const pad = (num, size = 2) => { + return num.toString().padStart(size, '0'); +}; +/** + * Formats a date into an ISO 8601-like string with milliseconds. + * + * @param {Date|number} date The date object or timestamp to format. + * + * @returns {string} The formatted date string. + */ +const formatTime = (date) => { + const d = (date instanceof Date) ? date : new Date(date); + const year = d.getFullYear(); + const month = pad(d.getMonth() + 1); // Months are 0-based + const day = pad(d.getDate()); + const hour = pad(d.getHours()); + const minute = pad(d.getMinutes()); + const second = pad(d.getSeconds()); + const millisecond = pad(d.getMilliseconds(), 3); // Milliseconds are 3 digits + return `${year}-${month}-${day}T${hour}:${minute}:${second}:${millisecond}`; +}; + +/** + * String presentation of log levels, for convenient users usage. + * Ordered in the same way as LogLevelNumeric. + * + * First three levels will be shown to users, and the last two are for developers. + */ +var es_LogLevel; +(function (LogLevel) { + /** + * For errors. + */ + LogLevel["Error"] = "error"; + /** + * For not critical errors. + */ + LogLevel["Warn"] = "warn"; + /** + * For important information. + * Use for general operational messages. + */ + LogLevel["Info"] = "info"; + /** + * For debugging purposes, e.g. Inside conditions, loops or some edge cases. + */ + LogLevel["Debug"] = "debug"; + /** + * For ultra-detailed, step-by-step traces (like stack traces or flow tracking). + */ + LogLevel["Verbose"] = "verbose"; +})(es_LogLevel || (es_LogLevel = {})); +/** + * Log levels map, which maps number level to string level. + * Ordered in the same way as LogLevelNumeric. + */ +const levelMapNumToString = { + [1 /* LogLevelNumeric.Error */]: es_LogLevel.Error, + [2 /* LogLevelNumeric.Warn */]: es_LogLevel.Warn, + [3 /* LogLevelNumeric.Info */]: es_LogLevel.Info, + [4 /* LogLevelNumeric.Debug */]: es_LogLevel.Debug, + [5 /* LogLevelNumeric.Verbose */]: es_LogLevel.Verbose, +}; +/** + * Log levels map, which maps string level to number level. + */ +const levelMapStringToNum = Object.entries(levelMapNumToString) + .reduce((acc, [key, value]) => { + // Here, key is originally a string since Object.entries() returns [string, string][]. + // We need to cast the key to LogLevelNumeric correctly without causing type mismatches. + const numericKey = Number(key); + if (!Number.isNaN(numericKey)) { + acc[value] = numericKey; + } + return acc; +}, {}); +/** + * Methods supported by console. Used to manage levels. + * Ordered in the same way as LogLevelNumeric. + */ +var es_LogMethod; +(function (LogMethod) { + LogMethod["Error"] = "error"; + LogMethod["Warn"] = "warn"; + LogMethod["Info"] = "info"; + LogMethod["Debug"] = "debug"; + LogMethod["Trace"] = "trace"; +})(es_LogMethod || (es_LogMethod = {})); +/** + * Simple logger with log levels. + */ +class Logger { + currentLevelValue = 3 /* LogLevelNumeric.Info */; + writer; + /** + * Constructor. + * + * @param writer Writer object. + */ + constructor(writer = console) { + this.writer = writer; + // bind the logging methods to avoid losing context + this.error = this.error.bind(this); + this.warn = this.warn.bind(this); + this.info = this.info.bind(this); + this.debug = this.debug.bind(this); + this.trace = this.trace.bind(this); + } + /** + * Print error messages. + * Use when something went wrong. + * + * @param args Printed arguments. + */ + error(...args) { + this.print(1 /* LogLevelNumeric.Error */, es_LogMethod.Error, args); + } + /** + * Print warn messages. + * Use when Something might go wrong. + * + * @param args Printed arguments. + */ + warn(...args) { + this.print(2 /* LogLevelNumeric.Warn */, es_LogMethod.Warn, args); + } + /** + * Print messages you want to disclose to users. + * Use for general operational messages. + * + * @param args Printed arguments. + */ + info(...args) { + this.print(3 /* LogLevelNumeric.Info */, es_LogMethod.Info, args); + } + /** + * Print debug messages. Usually used for technical information. + * + * @param args Printed arguments. + */ + debug(...args) { + this.print(4 /* LogLevelNumeric.Debug */, es_LogMethod.Debug, args); + } + /** + * Print trace messages. + * Ultra-detailed, step-by-step traces (like stack traces or flow tracking). + * + * @param args Printed arguments. + */ + trace(...args) { + this.print(5 /* LogLevelNumeric.Verbose */, es_LogMethod.Trace, args); + } + /** + * Getter for log level. + * + * @returns Logger level. + */ + get currentLevel() { + return levelMapNumToString[this.currentLevelValue]; + } + /** + * Setter for log level. With this method log level can be updated dynamically. + * + * @param logLevel Logger level. + * + * @throws Error if log level is not supported. + */ + set currentLevel(logLevel) { + const level = levelMapStringToNum[logLevel]; + if (level === undefined) { + throw new Error(`Logger supports only the following levels: ${[Object.values(es_LogLevel).join(', ')]}`); + } + this.currentLevelValue = level; + } + /** + * Converts error to string, and adds stack trace. + * + * @param error Error to print. + * + * @returns Error message. + */ + static errorToString(error) { + const message = getErrorMessage(error); + return `${message}\nStack trace:\n${error.stack}`; + } + /** + * Prints error message with stack trace. + * It prints the message with the stack trace in a collapsed group. + * This is useful for debugging purposes, as it allows to see the stack trace + * without cluttering the console with too many messages. + * + * @param formattedTime Formatted time. + * @param formattedArgs Formatted arguments. + */ + printWithStackTrace(formattedTime, formattedArgs) { + // If grouping is not supported, print just expanded trace, but this + // leads to a lot of dirty logs in the console, since the stack trace + // will be printed for every message. + if (!this.writer.groupCollapsed || !this.writer.groupEnd) { + // Print expanded trace + this.writer.trace(formattedTime, ...formattedArgs); + return; + } + // Print collapsed trace to make logs more readable and access to stack + // trace by clicking on the group. + this.writer.groupCollapsed(formattedTime, ...formattedArgs); + this.writer.trace(); + this.writer.groupEnd(); + } + /** + * Wrapper over log methods. + * + * @param level Logger level. + * @param method Logger method. + * @param args Printed arguments. + */ + print(level, method, args) { + // Skip writing if the basic conditions are not met. + if (this.currentLevelValue < level) { + return; + } + // Do not print if no arguments are passed. + if (!args || args.length === 0 || !args[0]) { + return; + } + const formattedArgs = args.map((value) => { + if (value instanceof Error) { + return Logger.errorToString(value); + } + if (value && typeof value.message === 'string') { + return value.message; + } + if (typeof value === 'object' && value !== null) { + return JSON.stringify(value); + } + return String(value); + }); + const formattedTime = `${formatTime(new Date())}:`; + /** + * If current log level is Debug or Verbose, print all channels with stack + * trace via using writer.trace method to help identify the location of the + * log. + * + * Exception is Error method, because it is already contains build-in + * stack trace. + */ + if (this.currentLevelValue >= levelMapStringToNum[es_LogLevel.Debug] + && method !== es_LogMethod.Error) { + this.printWithStackTrace(formattedTime, formattedArgs); + return; + } + // Otherwise just print with requested method of writer. + this.writer[method](formattedTime, ...formattedArgs); + } +} + + + +;// CONCATENATED MODULE: ./node_modules/.pnpm/@adguard+tswebextension@5.0.3_@adguard+re2-wasm@1.2.0_typescript@5.6.3/node_modules/@adguard/tswebextension/dist/common/logger.js + + +/** + * Export logger implementation. + */ +const logger = new Logger(console); +/** + * Stringify object via JSON.stringify without specified keys. + * + * @param obj Object to stringify. + * @param excludedKeys Keys to exclude. + * + * @returns Stringified object without excludedKeys (checking nested keys too). + */ +const stringifyObjectWithoutKeys = (obj, excludedKeys) => { + return JSON.stringify(obj, (key, value) => (excludedKeys.includes(key) ? undefined : value), 2); +}; + + + +;// CONCATENATED MODULE: ./node_modules/.pnpm/@adguard+tswebextension@5.0.3_@adguard+re2-wasm@1.2.0_typescript@5.6.3/node_modules/@adguard/tswebextension/dist/common/send-app-message.js + + + +// TODO check if we can return typed message here +/** + * Sends message to the background page. + * + * @param message Message to send. + * @param message.payload Payload of the message. + * @param message.type Message type. + * + * @returns Promise resolved with response from the background page. + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const sendAppMessage = async (message) => { + return browser_polyfill.runtime.sendMessage({ handlerName: MESSAGE_HANDLER_NAME, ...message }); +}; + + + +;// CONCATENATED MODULE: ./node_modules/.pnpm/@adguard+tswebextension@5.0.3_@adguard+re2-wasm@1.2.0_typescript@5.6.3/node_modules/@adguard/tswebextension/dist/assistant-inject.js + + + + + + + +/** + * @file Contains simple type guards to prevent bundle zod library, because + * content-script should be as tiny as possible to fastest injection. + */ +/** + * Checks if the given message has a 'type' field. + * + * @param message The message to check. + * + * @returns `true` if the message is an object with a 'type' field, otherwise `false`. + */ +const hasTypeField = (message) => { + return typeof message === 'object' && message !== null && 'type' in message; +}; +/** + * Checks if the given message has a 'handlerName' field matching {@link MESSAGE_HANDLER_NAME}. + * + * @param message The message to check. + * + * @returns `true` if the message has the expected handlerName, otherwise `false`. + */ +const isAssistantMessage = (message) => { + return typeof message === 'object' + && message !== null + && 'handlerName' in message + && message.handlerName === MESSAGE_HANDLER_NAME; +}; + +/** + * @typedef {import('./assistant').Assistant} AssistantRef + */ +/** + * @file + * IMPORTANT: This file should be listed inside 'sideEffects' field + * in the package.json, because it has side effects: we do not export anything + * from it outside, just evaluate the code (via injection). + * + * In the content script, we need access to @adguard/assistant only when + * the user clicks 'block ad manually'. + * Therefore, we exclude @adguard/assistant from the bundled content-script code + * and load it on-demand. We also added a required field to the configuration + * object to ensure the assistant is bundled inside the final extension, + * allowing tswebextension to load it on-demand. + * + * Schema: + * - Buildtime: + * -- [tswebext] Script to inject assistant from the URL provided by the extension. <--- current file. + * -- [tswebext] Assistant management script for interacting with the assistant. + * -- [extension] Entry point script for injecting the assistant + * - Runtime: + * -- [tswebext] Content script injects into every new tab without the assistant. + * -- [tswebext] On-demand content script dynamically injects the assistant and creates a message listener. + * -- [tswebext] After injection, the content script interacts with the assistant. + * + * Reference code: ASSISTANT_INJECT. + * + * Injection will be done by {@link AssistantRef.openAssistant}. + */ +/** + * Creates handlers for assistant messages. + * + * Safe to call multiple times: checks for old listener before adding + * a new one so that re-injection of the dynamically loaded assistant always + * results in a working message channel. + */ +const createAssistantMessageListener = () => { + // Check, that script executed in the top frame + if (window.top !== window || !(document.documentElement instanceof HTMLElement)) { + return; + } + // If the listener is present on previous isolated world it won't be visible here. + if (window.assistantMessageListener) { + return; + } + const listener = async (message) => { + if (!isAssistantMessage(message)) { + // silently ignore messages that are not assistant messages + return; + } + if (!hasTypeField(message)) { + logger.warn('[tsweb.assistant-inject]: message does not contain required field "type": ', message); + return; + } + switch (message.type) { + case message_constants_MessageType.InitAssistant: { + // If there is no assistant on the window after execute + // loading script - throw error. + if (window.adguardAssistant === undefined) { + throw new Error('adguardAssistant not found in the window object.'); + } + else { + window.adguardAssistant.close(); + } + window.adguardAssistant.start(null, async (ruleText) => { + const res = await sendAppMessage({ + type: message_constants_MessageType.AssistantCreateRule, + payload: { ruleText }, + }); + if (!res) { + logger.warn(`[tsweb.assistant-inject]: rule '${ruleText}' has not been applied.`); + } + }); + break; + } + case message_constants_MessageType.CloseAssistant: { + if (window.adguardAssistant) { + window.adguardAssistant.close(); + } + break; + } + default: { + logger.error(`[tsweb.assistant-inject]: not found handler for message type '${message.type}'`); + } + } + }; + browser_polyfill.runtime.onMessage.addListener(listener); + window.assistantMessageListener = listener; +}; +if (!window.adguardAssistant) { + window.adguardAssistant = (0,assistant.adguardAssistant)(); +} +/** + * Register the listener on every injection so that it works even when + * the assistant is re-injected into a new isolated world (e.g. after + * an extension update on already-open tabs). + */ +createAssistantMessageListener(); + +;// CONCATENATED MODULE: ./Extension/pages/assistant-inject/index.ts +/** + * Copyright (c) 2015-2026 Adguard Software Ltd. + * + * @file + * This file is part of AdGuard Browser Extension (https://github.com/AdguardTeam/AdguardBrowserExtension). + * + * AdGuard Browser Extension is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AdGuard Browser Extension is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AdGuard Browser Extension. If not, see . + */ /** + * In the content script of tswebextension, we need access to @adguard/assistant + * only when the user clicks 'block ad manually'. + * Therefore, we exclude @adguard/assistant from the bundled content-script code + * and load it on-demand. We also added a required field to the configuration + * object to ensure the assistant is bundled inside the final extension, + * allowing tswebextension to load it on-demand. + * + * Schema: + * - Buildtime: + * -- [tswebext] Script to inject assistant from the URL provided by the extension. + * -- [tswebext] Assistant management script for interacting with the assistant. + * -- [tswebext] Assistant messages listener on the content-script side. + * -- [extension] Entry point script for injecting the assistant <--- current file. + * - Runtime: + * -- [tswebext] Content script injects into every new tab without the assistant. + * -- [tswebext] On-demand content script dynamically injects the assistant. + * -- [tswebext] After injection, the content script interacts with the assistant. + * + * Reference code: ASSISTANT_INJECT. + */ + +})(); + +})() +; \ No newline at end of file diff --git a/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/background.js b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/background.js new file mode 100644 index 0000000..6f5a204 --- /dev/null +++ b/raveos-app-installer/data/configs/vivaldi/Default/Extensions/bgnkhhnnamicmpeenaelnjfhikgbkllg/5.5.2.40_0/pages/background.js @@ -0,0 +1,208132 @@ +(() => { +var __webpack_modules__ = ({ +82500(__unused_webpack_module, exports, __webpack_require__) { +var asn1 = exports; + +asn1.bignum = __webpack_require__(91939); + +asn1.define = (__webpack_require__(73903)/* .define */.define); +asn1.base = __webpack_require__(70373); +asn1.constants = __webpack_require__(48205); +asn1.decoders = __webpack_require__(55889); +asn1.encoders = __webpack_require__(40137); + + +}, +73903(__unused_webpack_module, exports, __webpack_require__) { +var asn1 = __webpack_require__(82500); +var inherits = __webpack_require__(86040); + +var api = exports; + +api.define = function define(name, body) { + return new Entity(name, body); +}; + +function Entity(name, body) { + this.name = name; + this.body = body; + + this.decoders = {}; + this.encoders = {}; +}; + +Entity.prototype._createNamed = function createNamed(base) { + var named; + try { + named = (__webpack_require__(46879)/* .runInThisContext */.runInThisContext)( + '(function ' + this.name + '(entity) {\n' + + ' this._initNamed(entity);\n' + + '})' + ); + } catch (e) { + named = function (entity) { + this._initNamed(entity); + }; + } + inherits(named, base); + named.prototype._initNamed = function initnamed(entity) { + base.call(this, entity); + }; + + return new named(this); +}; + +Entity.prototype._getDecoder = function _getDecoder(enc) { + enc = enc || 'der'; + // Lazily create decoder + if (!this.decoders.hasOwnProperty(enc)) + this.decoders[enc] = this._createNamed(asn1.decoders[enc]); + return this.decoders[enc]; +}; + +Entity.prototype.decode = function decode(data, enc, options) { + return this._getDecoder(enc).decode(data, options); +}; + +Entity.prototype._getEncoder = function _getEncoder(enc) { + enc = enc || 'der'; + // Lazily create encoder + if (!this.encoders.hasOwnProperty(enc)) + this.encoders[enc] = this._createNamed(asn1.encoders[enc]); + return this.encoders[enc]; +}; + +Entity.prototype.encode = function encode(data, enc, /* internal */ reporter) { + return this._getEncoder(enc).encode(data, reporter); +}; + + +}, +32407(__unused_webpack_module, exports, __webpack_require__) { +var inherits = __webpack_require__(86040); +var Reporter = (__webpack_require__(70373)/* .Reporter */.Reporter); +var Buffer = (__webpack_require__(75334)/* .Buffer */.Buffer); + +function DecoderBuffer(base, options) { + Reporter.call(this, options); + if (!Buffer.isBuffer(base)) { + this.error('Input not Buffer'); + return; + } + + this.base = base; + this.offset = 0; + this.length = base.length; +} +inherits(DecoderBuffer, Reporter); +exports.DecoderBuffer = DecoderBuffer; + +DecoderBuffer.prototype.save = function save() { + return { offset: this.offset, reporter: Reporter.prototype.save.call(this) }; +}; + +DecoderBuffer.prototype.restore = function restore(save) { + // Return skipped data + var res = new DecoderBuffer(this.base); + res.offset = save.offset; + res.length = this.offset; + + this.offset = save.offset; + Reporter.prototype.restore.call(this, save.reporter); + + return res; +}; + +DecoderBuffer.prototype.isEmpty = function isEmpty() { + return this.offset === this.length; +}; + +DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) { + if (this.offset + 1 <= this.length) + return this.base.readUInt8(this.offset++, true); + else + return this.error(fail || 'DecoderBuffer overrun'); +} + +DecoderBuffer.prototype.skip = function skip(bytes, fail) { + if (!(this.offset + bytes <= this.length)) + return this.error(fail || 'DecoderBuffer overrun'); + + var res = new DecoderBuffer(this.base); + + // Share reporter state + res._reporterState = this._reporterState; + + res.offset = this.offset; + res.length = this.offset + bytes; + this.offset += bytes; + return res; +} + +DecoderBuffer.prototype.raw = function raw(save) { + return this.base.slice(save ? save.offset : this.offset, this.length); +} + +function EncoderBuffer(value, reporter) { + if (Array.isArray(value)) { + this.length = 0; + this.value = value.map(function(item) { + if (!(item instanceof EncoderBuffer)) + item = new EncoderBuffer(item, reporter); + this.length += item.length; + return item; + }, this); + } else if (typeof value === 'number') { + if (!(0 <= value && value <= 0xff)) + return reporter.error('non-byte EncoderBuffer value'); + this.value = value; + this.length = 1; + } else if (typeof value === 'string') { + this.value = value; + this.length = Buffer.byteLength(value); + } else if (Buffer.isBuffer(value)) { + this.value = value; + this.length = value.length; + } else { + return reporter.error('Unsupported type: ' + typeof value); + } +} +exports.EncoderBuffer = EncoderBuffer; + +EncoderBuffer.prototype.join = function join(out, offset) { + if (!out) + out = new Buffer(this.length); + if (!offset) + offset = 0; + + if (this.length === 0) + return out; + + if (Array.isArray(this.value)) { + this.value.forEach(function(item) { + item.join(out, offset); + offset += item.length; + }); + } else { + if (typeof this.value === 'number') + out[offset] = this.value; + else if (typeof this.value === 'string') + out.write(this.value, offset); + else if (Buffer.isBuffer(this.value)) + this.value.copy(out, offset); + offset += this.length; + } + + return out; +}; + + +}, +70373(__unused_webpack_module, exports, __webpack_require__) { +var base = exports; + +base.Reporter = (__webpack_require__(23968)/* .Reporter */.Reporter); +base.DecoderBuffer = (__webpack_require__(32407)/* .DecoderBuffer */.DecoderBuffer); +base.EncoderBuffer = (__webpack_require__(32407)/* .EncoderBuffer */.EncoderBuffer); +base.Node = __webpack_require__(88877); + + +}, +88877(module, __unused_webpack_exports, __webpack_require__) { +var Reporter = (__webpack_require__(70373)/* .Reporter */.Reporter); +var EncoderBuffer = (__webpack_require__(70373)/* .EncoderBuffer */.EncoderBuffer); +var DecoderBuffer = (__webpack_require__(70373)/* .DecoderBuffer */.DecoderBuffer); +var assert = __webpack_require__(77285); + +// Supported tags +var tags = [ + 'seq', 'seqof', 'set', 'setof', 'objid', 'bool', + 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', + 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', + 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr' +]; + +// Public methods list +var methods = [ + 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', + 'any', 'contains' +].concat(tags); + +// Overrided methods list +var overrided = [ + '_peekTag', '_decodeTag', '_use', + '_decodeStr', '_decodeObjid', '_decodeTime', + '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', + + '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', + '_encodeNull', '_encodeInt', '_encodeBool' +]; + +function Node(enc, parent) { + var state = {}; + this._baseState = state; + + state.enc = enc; + + state.parent = parent || null; + state.children = null; + + // State + state.tag = null; + state.args = null; + state.reverseArgs = null; + state.choice = null; + state.optional = false; + state.any = false; + state.obj = false; + state.use = null; + state.useDecoder = null; + state.key = null; + state['default'] = null; + state.explicit = null; + state.implicit = null; + state.contains = null; + + // Should create new instance on each method + if (!state.parent) { + state.children = []; + this._wrap(); + } +} +module.exports = Node; + +var stateProps = [ + 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', + 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', + 'implicit', 'contains' +]; + +Node.prototype.clone = function clone() { + var state = this._baseState; + var cstate = {}; + stateProps.forEach(function(prop) { + cstate[prop] = state[prop]; + }); + var res = new this.constructor(cstate.parent); + res._baseState = cstate; + return res; +}; + +Node.prototype._wrap = function wrap() { + var state = this._baseState; + methods.forEach(function(method) { + this[method] = function _wrappedMethod() { + var clone = new this.constructor(this); + state.children.push(clone); + return clone[method].apply(clone, arguments); + }; + }, this); +}; + +Node.prototype._init = function init(body) { + var state = this._baseState; + + assert(state.parent === null); + body.call(this); + + // Filter children + state.children = state.children.filter(function(child) { + return child._baseState.parent === this; + }, this); + assert.equal(state.children.length, 1, 'Root node can have only one child'); +}; + +Node.prototype._useArgs = function useArgs(args) { + var state = this._baseState; + + // Filter children and args + var children = args.filter(function(arg) { + return arg instanceof this.constructor; + }, this); + args = args.filter(function(arg) { + return !(arg instanceof this.constructor); + }, this); + + if (children.length !== 0) { + assert(state.children === null); + state.children = children; + + // Replace parent to maintain backward link + children.forEach(function(child) { + child._baseState.parent = this; + }, this); + } + if (args.length !== 0) { + assert(state.args === null); + state.args = args; + state.reverseArgs = args.map(function(arg) { + if (typeof arg !== 'object' || arg.constructor !== Object) + return arg; + + var res = {}; + Object.keys(arg).forEach(function(key) { + if (key == (key | 0)) + key |= 0; + var value = arg[key]; + res[value] = key; + }); + return res; + }); + } +}; + +// +// Overrided methods +// + +overrided.forEach(function(method) { + Node.prototype[method] = function _overrided() { + var state = this._baseState; + throw new Error(method + ' not implemented for encoding: ' + state.enc); + }; +}); + +// +// Public methods +// + +tags.forEach(function(tag) { + Node.prototype[tag] = function _tagMethod() { + var state = this._baseState; + var args = Array.prototype.slice.call(arguments); + + assert(state.tag === null); + state.tag = tag; + + this._useArgs(args); + + return this; + }; +}); + +Node.prototype.use = function use(item) { + assert(item); + var state = this._baseState; + + assert(state.use === null); + state.use = item; + + return this; +}; + +Node.prototype.optional = function optional() { + var state = this._baseState; + + state.optional = true; + + return this; +}; + +Node.prototype.def = function def(val) { + var state = this._baseState; + + assert(state['default'] === null); + state['default'] = val; + state.optional = true; + + return this; +}; + +Node.prototype.explicit = function explicit(num) { + var state = this._baseState; + + assert(state.explicit === null && state.implicit === null); + state.explicit = num; + + return this; +}; + +Node.prototype.implicit = function implicit(num) { + var state = this._baseState; + + assert(state.explicit === null && state.implicit === null); + state.implicit = num; + + return this; +}; + +Node.prototype.obj = function obj() { + var state = this._baseState; + var args = Array.prototype.slice.call(arguments); + + state.obj = true; + + if (args.length !== 0) + this._useArgs(args); + + return this; +}; + +Node.prototype.key = function key(newKey) { + var state = this._baseState; + + assert(state.key === null); + state.key = newKey; + + return this; +}; + +Node.prototype.any = function any() { + var state = this._baseState; + + state.any = true; + + return this; +}; + +Node.prototype.choice = function choice(obj) { + var state = this._baseState; + + assert(state.choice === null); + state.choice = obj; + this._useArgs(Object.keys(obj).map(function(key) { + return obj[key]; + })); + + return this; +}; + +Node.prototype.contains = function contains(item) { + var state = this._baseState; + + assert(state.use === null); + state.contains = item; + + return this; +}; + +// +// Decoding +// + +Node.prototype._decode = function decode(input, options) { + var state = this._baseState; + + // Decode root node + if (state.parent === null) + return input.wrapResult(state.children[0]._decode(input, options)); + + var result = state['default']; + var present = true; + + var prevKey = null; + if (state.key !== null) + prevKey = input.enterKey(state.key); + + // Check if tag is there + if (state.optional) { + var tag = null; + if (state.explicit !== null) + tag = state.explicit; + else if (state.implicit !== null) + tag = state.implicit; + else if (state.tag !== null) + tag = state.tag; + + if (tag === null && !state.any) { + // Trial and Error + var save = input.save(); + try { + if (state.choice === null) + this._decodeGeneric(state.tag, input, options); + else + this._decodeChoice(input, options); + present = true; + } catch (e) { + present = false; + } + input.restore(save); + } else { + present = this._peekTag(input, tag, state.any); + + if (input.isError(present)) + return present; + } + } + + // Push object on stack + var prevObj; + if (state.obj && present) + prevObj = input.enterObject(); + + if (present) { + // Unwrap explicit values + if (state.explicit !== null) { + var explicit = this._decodeTag(input, state.explicit); + if (input.isError(explicit)) + return explicit; + input = explicit; + } + + var start = input.offset; + + // Unwrap implicit and normal values + if (state.use === null && state.choice === null) { + if (state.any) + var save = input.save(); + var body = this._decodeTag( + input, + state.implicit !== null ? state.implicit : state.tag, + state.any + ); + if (input.isError(body)) + return body; + + if (state.any) + result = input.raw(save); + else + input = body; + } + + if (options && options.track && state.tag !== null) + options.track(input.path(), start, input.length, 'tagged'); + + if (options && options.track && state.tag !== null) + options.track(input.path(), input.offset, input.length, 'content'); + + // Select proper method for tag + if (state.any) + result = result; + else if (state.choice === null) + result = this._decodeGeneric(state.tag, input, options); + else + result = this._decodeChoice(input, options); + + if (input.isError(result)) + return result; + + // Decode children + if (!state.any && state.choice === null && state.children !== null) { + state.children.forEach(function decodeChildren(child) { + // NOTE: We are ignoring errors here, to let parser continue with other + // parts of encoded data + child._decode(input, options); + }); + } + + // Decode contained/encoded by schema, only in bit or octet strings + if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) { + var data = new DecoderBuffer(result); + result = this._getUse(state.contains, input._reporterState.obj) + ._decode(data, options); + } + } + + // Pop object + if (state.obj && present) + result = input.leaveObject(prevObj); + + // Set key + if (state.key !== null && (result !== null || present === true)) + input.leaveKey(prevKey, state.key, result); + else if (prevKey !== null) + input.exitKey(prevKey); + + return result; +}; + +Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) { + var state = this._baseState; + + if (tag === 'seq' || tag === 'set') + return null; + if (tag === 'seqof' || tag === 'setof') + return this._decodeList(input, tag, state.args[0], options); + else if (/str$/.test(tag)) + return this._decodeStr(input, tag, options); + else if (tag === 'objid' && state.args) + return this._decodeObjid(input, state.args[0], state.args[1], options); + else if (tag === 'objid') + return this._decodeObjid(input, null, null, options); + else if (tag === 'gentime' || tag === 'utctime') + return this._decodeTime(input, tag, options); + else if (tag === 'null_') + return this._decodeNull(input, options); + else if (tag === 'bool') + return this._decodeBool(input, options); + else if (tag === 'objDesc') + return this._decodeStr(input, tag, options); + else if (tag === 'int' || tag === 'enum') + return this._decodeInt(input, state.args && state.args[0], options); + + if (state.use !== null) { + return this._getUse(state.use, input._reporterState.obj) + ._decode(input, options); + } else { + return input.error('unknown tag: ' + tag); + } +}; + +Node.prototype._getUse = function _getUse(entity, obj) { + + var state = this._baseState; + // Create altered use decoder if implicit is set + state.useDecoder = this._use(entity, obj); + assert(state.useDecoder._baseState.parent === null); + state.useDecoder = state.useDecoder._baseState.children[0]; + if (state.implicit !== state.useDecoder._baseState.implicit) { + state.useDecoder = state.useDecoder.clone(); + state.useDecoder._baseState.implicit = state.implicit; + } + return state.useDecoder; +}; + +Node.prototype._decodeChoice = function decodeChoice(input, options) { + var state = this._baseState; + var result = null; + var match = false; + + Object.keys(state.choice).some(function(key) { + var save = input.save(); + var node = state.choice[key]; + try { + var value = node._decode(input, options); + if (input.isError(value)) + return false; + + result = { type: key, value: value }; + match = true; + } catch (e) { + input.restore(save); + return false; + } + return true; + }, this); + + if (!match) + return input.error('Choice not matched'); + + return result; +}; + +// +// Encoding +// + +Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) { + return new EncoderBuffer(data, this.reporter); +}; + +Node.prototype._encode = function encode(data, reporter, parent) { + var state = this._baseState; + if (state['default'] !== null && state['default'] === data) + return; + + var result = this._encodeValue(data, reporter, parent); + if (result === undefined) + return; + + if (this._skipDefault(result, reporter, parent)) + return; + + return result; +}; + +Node.prototype._encodeValue = function encode(data, reporter, parent) { + var state = this._baseState; + + // Decode root node + if (state.parent === null) + return state.children[0]._encode(data, reporter || new Reporter()); + + var result = null; + + // Set reporter to share it with a child class + this.reporter = reporter; + + // Check if data is there + if (state.optional && data === undefined) { + if (state['default'] !== null) + data = state['default'] + else + return; + } + + // Encode children first + var content = null; + var primitive = false; + if (state.any) { + // Anything that was given is translated to buffer + result = this._createEncoderBuffer(data); + } else if (state.choice) { + result = this._encodeChoice(data, reporter); + } else if (state.contains) { + content = this._getUse(state.contains, parent)._encode(data, reporter); + primitive = true; + } else if (state.children) { + content = state.children.map(function(child) { + if (child._baseState.tag === 'null_') + return child._encode(null, reporter, data); + + if (child._baseState.key === null) + return reporter.error('Child should have a key'); + var prevKey = reporter.enterKey(child._baseState.key); + + if (typeof data !== 'object') + return reporter.error('Child expected, but input is not object'); + + var res = child._encode(data[child._baseState.key], reporter, data); + reporter.leaveKey(prevKey); + + return res; + }, this).filter(function(child) { + return child; + }); + content = this._createEncoderBuffer(content); + } else { + if (state.tag === 'seqof' || state.tag === 'setof') { + // TODO(indutny): this should be thrown on DSL level + if (!(state.args && state.args.length === 1)) + return reporter.error('Too many args for : ' + state.tag); + + if (!Array.isArray(data)) + return reporter.error('seqof/setof, but data is not Array'); + + var child = this.clone(); + child._baseState.implicit = null; + content = this._createEncoderBuffer(data.map(function(item) { + var state = this._baseState; + + return this._getUse(state.args[0], data)._encode(item, reporter); + }, child)); + } else if (state.use !== null) { + result = this._getUse(state.use, parent)._encode(data, reporter); + } else { + content = this._encodePrimitive(state.tag, data); + primitive = true; + } + } + + // Encode data itself + var result; + if (!state.any && state.choice === null) { + var tag = state.implicit !== null ? state.implicit : state.tag; + var cls = state.implicit === null ? 'universal' : 'context'; + + if (tag === null) { + if (state.use === null) + reporter.error('Tag could be omitted only for .use()'); + } else { + if (state.use === null) + result = this._encodeComposite(tag, primitive, cls, content); + } + } + + // Wrap in explicit + if (state.explicit !== null) + result = this._encodeComposite(state.explicit, false, 'context', result); + + return result; +}; + +Node.prototype._encodeChoice = function encodeChoice(data, reporter) { + var state = this._baseState; + + var node = state.choice[data.type]; + if (!node) { + assert( + false, + data.type + ' not found in ' + + JSON.stringify(Object.keys(state.choice))); + } + return node._encode(data.value, reporter); +}; + +Node.prototype._encodePrimitive = function encodePrimitive(tag, data) { + var state = this._baseState; + + if (/str$/.test(tag)) + return this._encodeStr(data, tag); + else if (tag === 'objid' && state.args) + return this._encodeObjid(data, state.reverseArgs[0], state.args[1]); + else if (tag === 'objid') + return this._encodeObjid(data, null, null); + else if (tag === 'gentime' || tag === 'utctime') + return this._encodeTime(data, tag); + else if (tag === 'null_') + return this._encodeNull(); + else if (tag === 'int' || tag === 'enum') + return this._encodeInt(data, state.args && state.reverseArgs[0]); + else if (tag === 'bool') + return this._encodeBool(data); + else if (tag === 'objDesc') + return this._encodeStr(data, tag); + else + throw new Error('Unsupported tag: ' + tag); +}; + +Node.prototype._isNumstr = function isNumstr(str) { + return /^[0-9 ]*$/.test(str); +}; + +Node.prototype._isPrintstr = function isPrintstr(str) { + return /^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str); +}; + + +}, +23968(__unused_webpack_module, exports, __webpack_require__) { +var inherits = __webpack_require__(86040); + +function Reporter(options) { + this._reporterState = { + obj: null, + path: [], + options: options || {}, + errors: [] + }; +} +exports.Reporter = Reporter; + +Reporter.prototype.isError = function isError(obj) { + return obj instanceof ReporterError; +}; + +Reporter.prototype.save = function save() { + var state = this._reporterState; + + return { obj: state.obj, pathLen: state.path.length }; +}; + +Reporter.prototype.restore = function restore(data) { + var state = this._reporterState; + + state.obj = data.obj; + state.path = state.path.slice(0, data.pathLen); +}; + +Reporter.prototype.enterKey = function enterKey(key) { + return this._reporterState.path.push(key); +}; + +Reporter.prototype.exitKey = function exitKey(index) { + var state = this._reporterState; + + state.path = state.path.slice(0, index - 1); +}; + +Reporter.prototype.leaveKey = function leaveKey(index, key, value) { + var state = this._reporterState; + + this.exitKey(index); + if (state.obj !== null) + state.obj[key] = value; +}; + +Reporter.prototype.path = function path() { + return this._reporterState.path.join('/'); +}; + +Reporter.prototype.enterObject = function enterObject() { + var state = this._reporterState; + + var prev = state.obj; + state.obj = {}; + return prev; +}; + +Reporter.prototype.leaveObject = function leaveObject(prev) { + var state = this._reporterState; + + var now = state.obj; + state.obj = prev; + return now; +}; + +Reporter.prototype.error = function error(msg) { + var err; + var state = this._reporterState; + + var inherited = msg instanceof ReporterError; + if (inherited) { + err = msg; + } else { + err = new ReporterError(state.path.map(function(elem) { + return '[' + JSON.stringify(elem) + ']'; + }).join(''), msg.message || msg, msg.stack); + } + + if (!state.options.partial) + throw err; + + if (!inherited) + state.errors.push(err); + + return err; +}; + +Reporter.prototype.wrapResult = function wrapResult(result) { + var state = this._reporterState; + if (!state.options.partial) + return result; + + return { + result: this.isError(result) ? null : result, + errors: state.errors + }; +}; + +function ReporterError(path, msg) { + this.path = path; + this.rethrow(msg); +}; +inherits(ReporterError, Error); + +ReporterError.prototype.rethrow = function rethrow(msg) { + this.message = msg + ' at: ' + (this.path || '(shallow)'); + if (Error.captureStackTrace) + Error.captureStackTrace(this, ReporterError); + + if (!this.stack) { + try { + // IE only adds stack when thrown + throw new Error(this.message); + } catch (e) { + this.stack = e.stack; + } + } + return this; +}; + + +}, +38418(__unused_webpack_module, exports, __webpack_require__) { +var constants = __webpack_require__(48205); + +exports.tagClass = { + 0: 'universal', + 1: 'application', + 2: 'context', + 3: 'private' +}; +exports.tagClassByName = constants._reverse(exports.tagClass); + +exports.tag = { + 0x00: 'end', + 0x01: 'bool', + 0x02: 'int', + 0x03: 'bitstr', + 0x04: 'octstr', + 0x05: 'null_', + 0x06: 'objid', + 0x07: 'objDesc', + 0x08: 'external', + 0x09: 'real', + 0x0a: 'enum', + 0x0b: 'embed', + 0x0c: 'utf8str', + 0x0d: 'relativeOid', + 0x10: 'seq', + 0x11: 'set', + 0x12: 'numstr', + 0x13: 'printstr', + 0x14: 't61str', + 0x15: 'videostr', + 0x16: 'ia5str', + 0x17: 'utctime', + 0x18: 'gentime', + 0x19: 'graphstr', + 0x1a: 'iso646str', + 0x1b: 'genstr', + 0x1c: 'unistr', + 0x1d: 'charstr', + 0x1e: 'bmpstr' +}; +exports.tagByName = constants._reverse(exports.tag); + + +}, +48205(__unused_webpack_module, exports, __webpack_require__) { +var constants = exports; + +// Helper +constants._reverse = function reverse(map) { + var res = {}; + + Object.keys(map).forEach(function(key) { + // Convert key to integer if it is stringified + if ((key | 0) == key) + key = key | 0; + + var value = map[key]; + res[value] = key; + }); + + return res; +}; + +constants.der = __webpack_require__(38418); + + +}, +70398(module, __unused_webpack_exports, __webpack_require__) { +var inherits = __webpack_require__(86040); + +var asn1 = __webpack_require__(82500); +var base = asn1.base; +var bignum = asn1.bignum; + +// Import DER constants +var der = asn1.constants.der; + +function DERDecoder(entity) { + this.enc = 'der'; + this.name = entity.name; + this.entity = entity; + + // Construct base tree + this.tree = new DERNode(); + this.tree._init(entity.body); +}; +module.exports = DERDecoder; + +DERDecoder.prototype.decode = function decode(data, options) { + if (!(data instanceof base.DecoderBuffer)) + data = new base.DecoderBuffer(data, options); + + return this.tree._decode(data, options); +}; + +// Tree methods + +function DERNode(parent) { + base.Node.call(this, 'der', parent); +} +inherits(DERNode, base.Node); + +DERNode.prototype._peekTag = function peekTag(buffer, tag, any) { + if (buffer.isEmpty()) + return false; + + var state = buffer.save(); + var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"'); + if (buffer.isError(decodedTag)) + return decodedTag; + + buffer.restore(state); + + return decodedTag.tag === tag || decodedTag.tagStr === tag || + (decodedTag.tagStr + 'of') === tag || any; +}; + +DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) { + var decodedTag = derDecodeTag(buffer, + 'Failed to decode tag of "' + tag + '"'); + if (buffer.isError(decodedTag)) + return decodedTag; + + var len = derDecodeLen(buffer, + decodedTag.primitive, + 'Failed to get length of "' + tag + '"'); + + // Failure + if (buffer.isError(len)) + return len; + + if (!any && + decodedTag.tag !== tag && + decodedTag.tagStr !== tag && + decodedTag.tagStr + 'of' !== tag) { + return buffer.error('Failed to match tag: "' + tag + '"'); + } + + if (decodedTag.primitive || len !== null) + return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); + + // Indefinite length... find END tag + var state = buffer.save(); + var res = this._skipUntilEnd( + buffer, + 'Failed to skip indefinite length body: "' + this.tag + '"'); + if (buffer.isError(res)) + return res; + + len = buffer.offset - state.offset; + buffer.restore(state); + return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); +}; + +DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) { + while (true) { + var tag = derDecodeTag(buffer, fail); + if (buffer.isError(tag)) + return tag; + var len = derDecodeLen(buffer, tag.primitive, fail); + if (buffer.isError(len)) + return len; + + var res; + if (tag.primitive || len !== null) + res = buffer.skip(len) + else + res = this._skipUntilEnd(buffer, fail); + + // Failure + if (buffer.isError(res)) + return res; + + if (tag.tagStr === 'end') + break; + } +}; + +DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, + options) { + var result = []; + while (!buffer.isEmpty()) { + var possibleEnd = this._peekTag(buffer, 'end'); + if (buffer.isError(possibleEnd)) + return possibleEnd; + + var res = decoder.decode(buffer, 'der', options); + if (buffer.isError(res) && possibleEnd) + break; + result.push(res); + } + return result; +}; + +DERNode.prototype._decodeStr = function decodeStr(buffer, tag) { + if (tag === 'bitstr') { + var unused = buffer.readUInt8(); + if (buffer.isError(unused)) + return unused; + return { unused: unused, data: buffer.raw() }; + } else if (tag === 'bmpstr') { + var raw = buffer.raw(); + if (raw.length % 2 === 1) + return buffer.error('Decoding of string type: bmpstr length mismatch'); + + var str = ''; + for (var i = 0; i < raw.length / 2; i++) { + str += String.fromCharCode(raw.readUInt16BE(i * 2)); + } + return str; + } else if (tag === 'numstr') { + var numstr = buffer.raw().toString('ascii'); + if (!this._isNumstr(numstr)) { + return buffer.error('Decoding of string type: ' + + 'numstr unsupported characters'); + } + return numstr; + } else if (tag === 'octstr') { + return buffer.raw(); + } else if (tag === 'objDesc') { + return buffer.raw(); + } else if (tag === 'printstr') { + var printstr = buffer.raw().toString('ascii'); + if (!this._isPrintstr(printstr)) { + return buffer.error('Decoding of string type: ' + + 'printstr unsupported characters'); + } + return printstr; + } else if (/str$/.test(tag)) { + return buffer.raw().toString(); + } else { + return buffer.error('Decoding of string type: ' + tag + ' unsupported'); + } +}; + +DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) { + var result; + var identifiers = []; + var ident = 0; + while (!buffer.isEmpty()) { + var subident = buffer.readUInt8(); + ident <<= 7; + ident |= subident & 0x7f; + if ((subident & 0x80) === 0) { + identifiers.push(ident); + ident = 0; + } + } + if (subident & 0x80) + identifiers.push(ident); + + var first = (identifiers[0] / 40) | 0; + var second = identifiers[0] % 40; + + if (relative) + result = identifiers; + else + result = [first, second].concat(identifiers.slice(1)); + + if (values) { + var tmp = values[result.join(' ')]; + if (tmp === undefined) + tmp = values[result.join('.')]; + if (tmp !== undefined) + result = tmp; + } + + return result; +}; + +DERNode.prototype._decodeTime = function decodeTime(buffer, tag) { + var str = buffer.raw().toString(); + if (tag === 'gentime') { + var year = str.slice(0, 4) | 0; + var mon = str.slice(4, 6) | 0; + var day = str.slice(6, 8) | 0; + var hour = str.slice(8, 10) | 0; + var min = str.slice(10, 12) | 0; + var sec = str.slice(12, 14) | 0; + } else if (tag === 'utctime') { + var year = str.slice(0, 2) | 0; + var mon = str.slice(2, 4) | 0; + var day = str.slice(4, 6) | 0; + var hour = str.slice(6, 8) | 0; + var min = str.slice(8, 10) | 0; + var sec = str.slice(10, 12) | 0; + if (year < 70) + year = 2000 + year; + else + year = 1900 + year; + } else { + return buffer.error('Decoding ' + tag + ' time is not supported yet'); + } + + return Date.UTC(year, mon - 1, day, hour, min, sec, 0); +}; + +DERNode.prototype._decodeNull = function decodeNull(buffer) { + return null; +}; + +DERNode.prototype._decodeBool = function decodeBool(buffer) { + var res = buffer.readUInt8(); + if (buffer.isError(res)) + return res; + else + return res !== 0; +}; + +DERNode.prototype._decodeInt = function decodeInt(buffer, values) { + // Bigint, return as it is (assume big endian) + var raw = buffer.raw(); + var res = new bignum(raw); + + if (values) + res = values[res.toString(10)] || res; + + return res; +}; + +DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === 'function') + entity = entity(obj); + return entity._getDecoder('der').tree; +}; + +// Utility methods + +function derDecodeTag(buf, fail) { + var tag = buf.readUInt8(fail); + if (buf.isError(tag)) + return tag; + + var cls = der.tagClass[tag >> 6]; + var primitive = (tag & 0x20) === 0; + + // Multi-octet tag - load + if ((tag & 0x1f) === 0x1f) { + var oct = tag; + tag = 0; + while ((oct & 0x80) === 0x80) { + oct = buf.readUInt8(fail); + if (buf.isError(oct)) + return oct; + + tag <<= 7; + tag |= oct & 0x7f; + } + } else { + tag &= 0x1f; + } + var tagStr = der.tag[tag]; + + return { + cls: cls, + primitive: primitive, + tag: tag, + tagStr: tagStr + }; +} + +function derDecodeLen(buf, primitive, fail) { + var len = buf.readUInt8(fail); + if (buf.isError(len)) + return len; + + // Indefinite form + if (!primitive && len === 0x80) + return null; + + // Definite form + if ((len & 0x80) === 0) { + // Short form + return len; + } + + // Long form + var num = len & 0x7f; + if (num > 4) + return buf.error('length octect is too long'); + + len = 0; + for (var i = 0; i < num; i++) { + len <<= 8; + var j = buf.readUInt8(fail); + if (buf.isError(j)) + return j; + len |= j; + } + + return len; +} + + +}, +55889(__unused_webpack_module, exports, __webpack_require__) { +var decoders = exports; + +decoders.der = __webpack_require__(70398); +decoders.pem = __webpack_require__(58667); + + +}, +58667(module, __unused_webpack_exports, __webpack_require__) { +var inherits = __webpack_require__(86040); +var Buffer = (__webpack_require__(75334)/* .Buffer */.Buffer); + +var DERDecoder = __webpack_require__(70398); + +function PEMDecoder(entity) { + DERDecoder.call(this, entity); + this.enc = 'pem'; +}; +inherits(PEMDecoder, DERDecoder); +module.exports = PEMDecoder; + +PEMDecoder.prototype.decode = function decode(data, options) { + var lines = data.toString().split(/[\r\n]+/g); + + var label = options.label.toUpperCase(); + + var re = /^-----(BEGIN|END) ([^-]+)-----$/; + var start = -1; + var end = -1; + for (var i = 0; i < lines.length; i++) { + var match = lines[i].match(re); + if (match === null) + continue; + + if (match[2] !== label) + continue; + + if (start === -1) { + if (match[1] !== 'BEGIN') + break; + start = i; + } else { + if (match[1] !== 'END') + break; + end = i; + break; + } + } + if (start === -1 || end === -1) + throw new Error('PEM section not found for: ' + label); + + var base64 = lines.slice(start + 1, end).join(''); + // Remove excessive symbols + base64.replace(/[^a-z0-9\+\/=]+/gi, ''); + + var input = new Buffer(base64, 'base64'); + return DERDecoder.prototype.decode.call(this, input, options); +}; + + +}, +44422(module, __unused_webpack_exports, __webpack_require__) { +var inherits = __webpack_require__(86040); +var Buffer = (__webpack_require__(75334)/* .Buffer */.Buffer); + +var asn1 = __webpack_require__(82500); +var base = asn1.base; + +// Import DER constants +var der = asn1.constants.der; + +function DEREncoder(entity) { + this.enc = 'der'; + this.name = entity.name; + this.entity = entity; + + // Construct base tree + this.tree = new DERNode(); + this.tree._init(entity.body); +}; +module.exports = DEREncoder; + +DEREncoder.prototype.encode = function encode(data, reporter) { + return this.tree._encode(data, reporter).join(); +}; + +// Tree methods + +function DERNode(parent) { + base.Node.call(this, 'der', parent); +} +inherits(DERNode, base.Node); + +DERNode.prototype._encodeComposite = function encodeComposite(tag, + primitive, + cls, + content) { + var encodedTag = encodeTag(tag, primitive, cls, this.reporter); + + // Short form + if (content.length < 0x80) { + var header = new Buffer(2); + header[0] = encodedTag; + header[1] = content.length; + return this._createEncoderBuffer([ header, content ]); + } + + // Long form + // Count octets required to store length + var lenOctets = 1; + for (var i = content.length; i >= 0x100; i >>= 8) + lenOctets++; + + var header = new Buffer(1 + 1 + lenOctets); + header[0] = encodedTag; + header[1] = 0x80 | lenOctets; + + for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) + header[i] = j & 0xff; + + return this._createEncoderBuffer([ header, content ]); +}; + +DERNode.prototype._encodeStr = function encodeStr(str, tag) { + if (tag === 'bitstr') { + return this._createEncoderBuffer([ str.unused | 0, str.data ]); + } else if (tag === 'bmpstr') { + var buf = new Buffer(str.length * 2); + for (var i = 0; i < str.length; i++) { + buf.writeUInt16BE(str.charCodeAt(i), i * 2); + } + return this._createEncoderBuffer(buf); + } else if (tag === 'numstr') { + if (!this._isNumstr(str)) { + return this.reporter.error('Encoding of string type: numstr supports ' + + 'only digits and space'); + } + return this._createEncoderBuffer(str); + } else if (tag === 'printstr') { + if (!this._isPrintstr(str)) { + return this.reporter.error('Encoding of string type: printstr supports ' + + 'only latin upper and lower case letters, ' + + 'digits, space, apostrophe, left and rigth ' + + 'parenthesis, plus sign, comma, hyphen, ' + + 'dot, slash, colon, equal sign, ' + + 'question mark'); + } + return this._createEncoderBuffer(str); + } else if (/str$/.test(tag)) { + return this._createEncoderBuffer(str); + } else if (tag === 'objDesc') { + return this._createEncoderBuffer(str); + } else { + return this.reporter.error('Encoding of string type: ' + tag + + ' unsupported'); + } +}; + +DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) { + if (typeof id === 'string') { + if (!values) + return this.reporter.error('string objid given, but no values map found'); + if (!values.hasOwnProperty(id)) + return this.reporter.error('objid not found in values map'); + id = values[id].split(/[\s\.]+/g); + for (var i = 0; i < id.length; i++) + id[i] |= 0; + } else if (Array.isArray(id)) { + id = id.slice(); + for (var i = 0; i < id.length; i++) + id[i] |= 0; + } + + if (!Array.isArray(id)) { + return this.reporter.error('objid() should be either array or string, ' + + 'got: ' + JSON.stringify(id)); + } + + if (!relative) { + if (id[1] >= 40) + return this.reporter.error('Second objid identifier OOB'); + id.splice(0, 2, id[0] * 40 + id[1]); + } + + // Count number of octets + var size = 0; + for (var i = 0; i < id.length; i++) { + var ident = id[i]; + for (size++; ident >= 0x80; ident >>= 7) + size++; + } + + var objid = new Buffer(size); + var offset = objid.length - 1; + for (var i = id.length - 1; i >= 0; i--) { + var ident = id[i]; + objid[offset--] = ident & 0x7f; + while ((ident >>= 7) > 0) + objid[offset--] = 0x80 | (ident & 0x7f); + } + + return this._createEncoderBuffer(objid); +}; + +function two(num) { + if (num < 10) + return '0' + num; + else + return num; +} + +DERNode.prototype._encodeTime = function encodeTime(time, tag) { + var str; + var date = new Date(time); + + if (tag === 'gentime') { + str = [ + two(date.getFullYear()), + two(date.getUTCMonth() + 1), + two(date.getUTCDate()), + two(date.getUTCHours()), + two(date.getUTCMinutes()), + two(date.getUTCSeconds()), + 'Z' + ].join(''); + } else if (tag === 'utctime') { + str = [ + two(date.getFullYear() % 100), + two(date.getUTCMonth() + 1), + two(date.getUTCDate()), + two(date.getUTCHours()), + two(date.getUTCMinutes()), + two(date.getUTCSeconds()), + 'Z' + ].join(''); + } else { + this.reporter.error('Encoding ' + tag + ' time is not supported yet'); + } + + return this._encodeStr(str, 'octstr'); +}; + +DERNode.prototype._encodeNull = function encodeNull() { + return this._createEncoderBuffer(''); +}; + +DERNode.prototype._encodeInt = function encodeInt(num, values) { + if (typeof num === 'string') { + if (!values) + return this.reporter.error('String int or enum given, but no values map'); + if (!values.hasOwnProperty(num)) { + return this.reporter.error('Values map doesn\'t contain: ' + + JSON.stringify(num)); + } + num = values[num]; + } + + // Bignum, assume big endian + if (typeof num !== 'number' && !Buffer.isBuffer(num)) { + var numArray = num.toArray(); + if (!num.sign && numArray[0] & 0x80) { + numArray.unshift(0); + } + num = new Buffer(numArray); + } + + if (Buffer.isBuffer(num)) { + var size = num.length; + if (num.length === 0) + size++; + + var out = new Buffer(size); + num.copy(out); + if (num.length === 0) + out[0] = 0 + return this._createEncoderBuffer(out); + } + + if (num < 0x80) + return this._createEncoderBuffer(num); + + if (num < 0x100) + return this._createEncoderBuffer([0, num]); + + var size = 1; + for (var i = num; i >= 0x100; i >>= 8) + size++; + + var out = new Array(size); + for (var i = out.length - 1; i >= 0; i--) { + out[i] = num & 0xff; + num >>= 8; + } + if(out[0] & 0x80) { + out.unshift(0); + } + + return this._createEncoderBuffer(new Buffer(out)); +}; + +DERNode.prototype._encodeBool = function encodeBool(value) { + return this._createEncoderBuffer(value ? 0xff : 0); +}; + +DERNode.prototype._use = function use(entity, obj) { + if (typeof entity === 'function') + entity = entity(obj); + return entity._getEncoder('der').tree; +}; + +DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) { + var state = this._baseState; + var i; + if (state['default'] === null) + return false; + + var data = dataBuffer.join(); + if (state.defaultBuffer === undefined) + state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join(); + + if (data.length !== state.defaultBuffer.length) + return false; + + for (i=0; i < data.length; i++) + if (data[i] !== state.defaultBuffer[i]) + return false; + + return true; +}; + +// Utility methods + +function encodeTag(tag, primitive, cls, reporter) { + var res; + + if (tag === 'seqof') + tag = 'seq'; + else if (tag === 'setof') + tag = 'set'; + + if (der.tagByName.hasOwnProperty(tag)) + res = der.tagByName[tag]; + else if (typeof tag === 'number' && (tag | 0) === tag) + res = tag; + else + return reporter.error('Unknown tag: ' + tag); + + if (res >= 0x1f) + return reporter.error('Multi-octet tag encoding unsupported'); + + if (!primitive) + res |= 0x20; + + res |= (der.tagClassByName[cls || 'universal'] << 6); + + return res; +} + + +}, +40137(__unused_webpack_module, exports, __webpack_require__) { +var encoders = exports; + +encoders.der = __webpack_require__(44422); +encoders.pem = __webpack_require__(15299); + + +}, +15299(module, __unused_webpack_exports, __webpack_require__) { +var inherits = __webpack_require__(86040); + +var DEREncoder = __webpack_require__(44422); + +function PEMEncoder(entity) { + DEREncoder.call(this, entity); + this.enc = 'pem'; +}; +inherits(PEMEncoder, DEREncoder); +module.exports = PEMEncoder; + +PEMEncoder.prototype.encode = function encode(data, options) { + var buf = DEREncoder.prototype.encode.call(this, data); + + var p = buf.toString('base64'); + var out = [ '-----BEGIN ' + options.label + '-----' ]; + for (var i = 0; i < p.length; i += 64) + out.push(p.slice(i, i + 64)); + out.push('-----END ' + options.label + '-----'); + return out.join('\n'); +}; + + +}, +8910(__unused_webpack_module, exports) { +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +// Support decoding URL-safe base64 strings, as Node.js does. +// See: https://en.wikipedia.org/wiki/Base64#URL_applications +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function getLens (b64) { + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + + return [validLen, placeHoldersLen] +} + +// base64 is 4/3 + up to two characters of the original data +function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } + + return parts.join('') +} + + +}, +91939(module, __unused_webpack_exports, __webpack_require__) { +/* module decorator */ module = __webpack_require__.nmd(module); +(function (module, exports) { + 'use strict'; + + // Utils + function assert (val, msg) { + if (!val) throw new Error(msg || 'Assertion failed'); + } + + // Could use `inherits` module, but don't want to move from single file + // architecture yet. + function inherits (ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + + // BN + + function BN (number, base, endian) { + if (BN.isBN(number)) { + return number; + } + + this.negative = 0; + this.words = null; + this.length = 0; + + // Reduction context + this.red = null; + + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base; + base = 10; + } + + this._init(number || 0, base || 10, endian || 'be'); + } + } + if (typeof module === 'object') { + module.exports = BN; + } else { + exports.BN = BN; + } + + BN.BN = BN; + BN.wordSize = 26; + + var Buffer; + try { + if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') { + Buffer = window.Buffer; + } else { + Buffer = (__webpack_require__(97316)/* .Buffer */.Buffer); + } + } catch (e) { + } + + BN.isBN = function isBN (num) { + if (num instanceof BN) { + return true; + } + + return num !== null && typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + + BN.max = function max (left, right) { + if (left.cmp(right) > 0) return left; + return right; + }; + + BN.min = function min (left, right) { + if (left.cmp(right) < 0) return left; + return right; + }; + + BN.prototype._init = function init (number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian); + } + + if (typeof number === 'object') { + return this._initArray(number, base, endian); + } + + if (base === 'hex') { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + + number = number.toString().replace(/\s+/g, ''); + var start = 0; + if (number[0] === '-') { + start++; + this.negative = 1; + } + + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === 'le') { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + + BN.prototype._initNumber = function _initNumber (number, base, endian) { + if (number < 0) { + this.negative = 1; + number = -number; + } + if (number < 0x4000000) { + this.words = [ number & 0x3ffffff ]; + this.length = 1; + } else if (number < 0x10000000000000) { + this.words = [ + number & 0x3ffffff, + (number / 0x4000000) & 0x3ffffff + ]; + this.length = 2; + } else { + assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) + this.words = [ + number & 0x3ffffff, + (number / 0x4000000) & 0x3ffffff, + 1 + ]; + this.length = 3; + } + + if (endian !== 'le') return; + + // Reverse the bytes + this._initArray(this.toArray(), base, endian); + }; + + BN.prototype._initArray = function _initArray (number, base, endian) { + // Perhaps a Uint8Array + assert(typeof number.length === 'number'); + if (number.length <= 0) { + this.words = [ 0 ]; + this.length = 1; + return this; + } + + this.length = Math.ceil(number.length / 3); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + + var j, w; + var off = 0; + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } + return this.strip(); + }; + + function parseHex4Bits (string, index) { + var c = string.charCodeAt(index); + // 'A' - 'F' + if (c >= 65 && c <= 70) { + return c - 55; + // 'a' - 'f' + } else if (c >= 97 && c <= 102) { + return c - 87; + // '0' - '9' + } else { + return (c - 48) & 0xf; + } + } + + function parseHexByte (string, lowerBound, index) { + var r = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r |= parseHex4Bits(string, index - 1) << 4; + } + return r; + } + + BN.prototype._parseHex = function _parseHex (number, start, endian) { + // Create possibly bigger array to ensure that it fits the number + this.length = Math.ceil((number.length - start) / 6); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + + // 24-bits chunks + var off = 0; + var j = 0; + + var w; + if (endian === 'be') { + for (i = number.length - 1; i >= start; i -= 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 0x3ffffff; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 0x3ffffff; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } + + this.strip(); + }; + + function parseBase (str, start, end, mul) { + var r = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; + + r *= mul; + + // 'a' + if (c >= 49) { + r += c - 49 + 0xa; + + // 'A' + } else if (c >= 17) { + r += c - 17 + 0xa; + + // '0' - '9' + } else { + r += c; + } + } + return r; + } + + BN.prototype._parseBase = function _parseBase (number, base, start) { + // Initialize as zero + this.words = [ 0 ]; + this.length = 1; + + // Find length of limb in base + for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = (limbPow / base) | 0; + + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + + var word = 0; + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base); + + this.imuln(limbPow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i, number.length, base); + + for (i = 0; i < mod; i++) { + pow *= base; + } + + this.imuln(pow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + + this.strip(); + }; + + BN.prototype.copy = function copy (dest) { + dest.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i]; + } + dest.length = this.length; + dest.negative = this.negative; + dest.red = this.red; + }; + + BN.prototype.clone = function clone () { + var r = new BN(null); + this.copy(r); + return r; + }; + + BN.prototype._expand = function _expand (size) { + while (this.length < size) { + this.words[this.length++] = 0; + } + return this; + }; + + // Remove leading `0` from `this` + BN.prototype.strip = function strip () { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length--; + } + return this._normSign(); + }; + + BN.prototype._normSign = function _normSign () { + // -0 = 0 + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0; + } + return this; + }; + + BN.prototype.inspect = function inspect () { + return (this.red ? ''; + }; + + /* + + var zeros = []; + var groupSizes = []; + var groupBases = []; + + var s = ''; + var i = -1; + while (++i < BN.wordSize) { + zeros[i] = s; + s += '0'; + } + groupSizes[0] = 0; + groupSizes[1] = 0; + groupBases[0] = 0; + groupBases[1] = 0; + var base = 2 - 1; + while (++base < 36 + 1) { + var groupSize = 0; + var groupBase = 1; + while (groupBase < (1 << BN.wordSize) / base) { + groupBase *= base; + groupSize += 1; + } + groupSizes[base] = groupSize; + groupBases[base] = groupBase; + } + + */ + + var zeros = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ]; + + var groupSizes = [ + 0, 0, + 25, 16, 12, 11, 10, 9, 8, + 8, 7, 7, 7, 7, 6, 6, + 6, 6, 6, 6, 6, 5, 5, + 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5 + ]; + + var groupBases = [ + 0, 0, + 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, + 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, + 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, + 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, + 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ]; + + BN.prototype.toString = function toString (base, padding) { + base = base || 10; + padding = padding | 0 || 1; + + var out; + if (base === 16 || base === 'hex') { + out = ''; + var off = 0; + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = this.words[i]; + var word = (((w << off) | carry) & 0xffffff).toString(16); + carry = (w >>> (24 - off)) & 0xffffff; + off += 2; + if (off >= 26) { + off -= 26; + i--; + } + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } + + if (base === (base | 0) && base >= 2 && base <= 36) { + // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); + var groupSize = groupSizes[base]; + // var groupBase = Math.pow(base, groupSize); + var groupBase = groupBases[base]; + out = ''; + var c = this.clone(); + c.negative = 0; + while (!c.isZero()) { + var r = c.modn(groupBase).toString(base); + c = c.idivn(groupBase); + + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out; + } else { + out = r + out; + } + } + if (this.isZero()) { + out = '0' + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } + + assert(false, 'Base should be between 2 and 36'); + }; + + BN.prototype.toNumber = function toNumber () { + var ret = this.words[0]; + if (this.length === 2) { + ret += this.words[1] * 0x4000000; + } else if (this.length === 3 && this.words[2] === 0x01) { + // NOTE: at this stage it is known that the top bit is set + ret += 0x10000000000000 + (this.words[1] * 0x4000000); + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits'); + } + return (this.negative !== 0) ? -ret : ret; + }; + + BN.prototype.toJSON = function toJSON () { + return this.toString(16); + }; + + BN.prototype.toBuffer = function toBuffer (endian, length) { + assert(typeof Buffer !== 'undefined'); + return this.toArrayLike(Buffer, endian, length); + }; + + BN.prototype.toArray = function toArray (endian, length) { + return this.toArrayLike(Array, endian, length); + }; + + BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, 'byte array longer than desired length'); + assert(reqLength > 0, 'Requested array length <= 0'); + + this.strip(); + var littleEndian = endian === 'le'; + var res = new ArrayType(reqLength); + + var b, i; + var q = this.clone(); + if (!littleEndian) { + // Assume big-endian + for (i = 0; i < reqLength - byteLength; i++) { + res[i] = 0; + } + + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); + + res[reqLength - i - 1] = b; + } + } else { + for (i = 0; !q.isZero(); i++) { + b = q.andln(0xff); + q.iushrn(8); + + res[i] = b; + } + + for (; i < reqLength; i++) { + res[i] = 0; + } + } + + return res; + }; + + if (Math.clz32) { + BN.prototype._countBits = function _countBits (w) { + return 32 - Math.clz32(w); + }; + } else { + BN.prototype._countBits = function _countBits (w) { + var t = w; + var r = 0; + if (t >= 0x1000) { + r += 13; + t >>>= 13; + } + if (t >= 0x40) { + r += 7; + t >>>= 7; + } + if (t >= 0x8) { + r += 4; + t >>>= 4; + } + if (t >= 0x02) { + r += 2; + t >>>= 2; + } + return r + t; + }; + } + + BN.prototype._zeroBits = function _zeroBits (w) { + // Short-cut + if (w === 0) return 26; + + var t = w; + var r = 0; + if ((t & 0x1fff) === 0) { + r += 13; + t >>>= 13; + } + if ((t & 0x7f) === 0) { + r += 7; + t >>>= 7; + } + if ((t & 0xf) === 0) { + r += 4; + t >>>= 4; + } + if ((t & 0x3) === 0) { + r += 2; + t >>>= 2; + } + if ((t & 0x1) === 0) { + r++; + } + return r; + }; + + // Return number of used bits in a BN + BN.prototype.bitLength = function bitLength () { + var w = this.words[this.length - 1]; + var hi = this._countBits(w); + return (this.length - 1) * 26 + hi; + }; + + function toBitArray (num) { + var w = new Array(num.bitLength()); + + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0; + var wbit = bit % 26; + + w[bit] = (num.words[off] & (1 << wbit)) >>> wbit; + } + + return w; + } + + // Number of trailing zero bits + BN.prototype.zeroBits = function zeroBits () { + if (this.isZero()) return 0; + + var r = 0; + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]); + r += b; + if (b !== 26) break; + } + return r; + }; + + BN.prototype.byteLength = function byteLength () { + return Math.ceil(this.bitLength() / 8); + }; + + BN.prototype.toTwos = function toTwos (width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + + BN.prototype.fromTwos = function fromTwos (width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + + BN.prototype.isNeg = function isNeg () { + return this.negative !== 0; + }; + + // Return negative clone of `this` + BN.prototype.neg = function neg () { + return this.clone().ineg(); + }; + + BN.prototype.ineg = function ineg () { + if (!this.isZero()) { + this.negative ^= 1; + } + + return this; + }; + + // Or `num` with `this` in-place + BN.prototype.iuor = function iuor (num) { + while (this.length < num.length) { + this.words[this.length++] = 0; + } + + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i]; + } + + return this.strip(); + }; + + BN.prototype.ior = function ior (num) { + assert((this.negative | num.negative) === 0); + return this.iuor(num); + }; + + // Or `num` with `this` + BN.prototype.or = function or (num) { + if (this.length > num.length) return this.clone().ior(num); + return num.clone().ior(this); + }; + + BN.prototype.uor = function uor (num) { + if (this.length > num.length) return this.clone().iuor(num); + return num.clone().iuor(this); + }; + + // And `num` with `this` in-place + BN.prototype.iuand = function iuand (num) { + // b = min-length(num, this) + var b; + if (this.length > num.length) { + b = num; + } else { + b = this; + } + + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i]; + } + + this.length = b.length; + + return this.strip(); + }; + + BN.prototype.iand = function iand (num) { + assert((this.negative | num.negative) === 0); + return this.iuand(num); + }; + + // And `num` with `this` + BN.prototype.and = function and (num) { + if (this.length > num.length) return this.clone().iand(num); + return num.clone().iand(this); + }; + + BN.prototype.uand = function uand (num) { + if (this.length > num.length) return this.clone().iuand(num); + return num.clone().iuand(this); + }; + + // Xor `num` with `this` in-place + BN.prototype.iuxor = function iuxor (num) { + // a.length > b.length + var a; + var b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i]; + } + + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + this.length = a.length; + + return this.strip(); + }; + + BN.prototype.ixor = function ixor (num) { + assert((this.negative | num.negative) === 0); + return this.iuxor(num); + }; + + // Xor `num` with `this` + BN.prototype.xor = function xor (num) { + if (this.length > num.length) return this.clone().ixor(num); + return num.clone().ixor(this); + }; + + BN.prototype.uxor = function uxor (num) { + if (this.length > num.length) return this.clone().iuxor(num); + return num.clone().iuxor(this); + }; + + // Not ``this`` with ``width`` bitwidth + BN.prototype.inotn = function inotn (width) { + assert(typeof width === 'number' && width >= 0); + + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + + // Extend the buffer with leading zeroes + this._expand(bytesNeeded); + + if (bitsLeft > 0) { + bytesNeeded--; + } + + // Handle complete words + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 0x3ffffff; + } + + // Handle the residue + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); + } + + // And remove leading zeroes + return this.strip(); + }; + + BN.prototype.notn = function notn (width) { + return this.clone().inotn(width); + }; + + // Set `bit` of `this` + BN.prototype.setn = function setn (bit, val) { + assert(typeof bit === 'number' && bit >= 0); + + var off = (bit / 26) | 0; + var wbit = bit % 26; + + this._expand(off + 1); + + if (val) { + this.words[off] = this.words[off] | (1 << wbit); + } else { + this.words[off] = this.words[off] & ~(1 << wbit); + } + + return this.strip(); + }; + + // Add `num` to `this` in-place + BN.prototype.iadd = function iadd (num) { + var r; + + // negative + positive + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0; + r = this.isub(num); + this.negative ^= 1; + return this._normSign(); + + // positive + negative + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0; + r = this.isub(num); + num.negative = 1; + return r._normSign(); + } + + // a.length > b.length + var a, b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + + this.length = a.length; + if (carry !== 0) { + this.words[this.length] = carry; + this.length++; + // Copy the rest of the words + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + return this; + }; + + // Add `num` to `this` + BN.prototype.add = function add (num) { + var res; + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0; + res = num.sub(this); + this.negative = 1; + return res; + } + + if (this.length > num.length) return this.clone().iadd(num); + + return num.clone().iadd(this); + }; + + // Subtract `num` from `this` in-place + BN.prototype.isub = function isub (num) { + // this - (-num) = this + num + if (num.negative !== 0) { + num.negative = 0; + var r = this.iadd(num); + num.negative = 1; + return r._normSign(); + + // -this - num = -(this + num) + } else if (this.negative !== 0) { + this.negative = 0; + this.iadd(num); + this.negative = 1; + return this._normSign(); + } + + // At this point both numbers are positive + var cmp = this.cmp(num); + + // Optimization - zeroify + if (cmp === 0) { + this.negative = 0; + this.length = 1; + this.words[0] = 0; + return this; + } + + // a > b + var a, b; + if (cmp > 0) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + + // Copy rest of the words + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + this.length = Math.max(this.length, i); + + if (a !== this) { + this.negative = 1; + } + + return this.strip(); + }; + + // Subtract `num` from `this` + BN.prototype.sub = function sub (num) { + return this.clone().isub(num); + }; + + function smallMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + var len = (self.length + num.length) | 0; + out.length = len; + len = (len - 1) | 0; + + // Peel one iteration (compiler can't do it, because of code complexity) + var a = self.words[0] | 0; + var b = num.words[0] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + var carry = (r / 0x4000000) | 0; + out.words[0] = lo; + + for (var k = 1; k < len; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = carry >>> 26; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0; + a = self.words[i] | 0; + b = num.words[j] | 0; + r = a * b + rword; + ncarry += (r / 0x4000000) | 0; + rword = r & 0x3ffffff; + } + out.words[k] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k] = carry | 0; + } else { + out.length--; + } + + return out.strip(); + } + + // TODO(indutny): it may be reasonable to omit it for users who don't need + // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit + // multiplication (like elliptic secp256k1). + var comb10MulTo = function comb10MulTo (self, num, out) { + var a = self.words; + var b = num.words; + var o = out.words; + var c = 0; + var lo; + var mid; + var hi; + var a0 = a[0] | 0; + var al0 = a0 & 0x1fff; + var ah0 = a0 >>> 13; + var a1 = a[1] | 0; + var al1 = a1 & 0x1fff; + var ah1 = a1 >>> 13; + var a2 = a[2] | 0; + var al2 = a2 & 0x1fff; + var ah2 = a2 >>> 13; + var a3 = a[3] | 0; + var al3 = a3 & 0x1fff; + var ah3 = a3 >>> 13; + var a4 = a[4] | 0; + var al4 = a4 & 0x1fff; + var ah4 = a4 >>> 13; + var a5 = a[5] | 0; + var al5 = a5 & 0x1fff; + var ah5 = a5 >>> 13; + var a6 = a[6] | 0; + var al6 = a6 & 0x1fff; + var ah6 = a6 >>> 13; + var a7 = a[7] | 0; + var al7 = a7 & 0x1fff; + var ah7 = a7 >>> 13; + var a8 = a[8] | 0; + var al8 = a8 & 0x1fff; + var ah8 = a8 >>> 13; + var a9 = a[9] | 0; + var al9 = a9 & 0x1fff; + var ah9 = a9 >>> 13; + var b0 = b[0] | 0; + var bl0 = b0 & 0x1fff; + var bh0 = b0 >>> 13; + var b1 = b[1] | 0; + var bl1 = b1 & 0x1fff; + var bh1 = b1 >>> 13; + var b2 = b[2] | 0; + var bl2 = b2 & 0x1fff; + var bh2 = b2 >>> 13; + var b3 = b[3] | 0; + var bl3 = b3 & 0x1fff; + var bh3 = b3 >>> 13; + var b4 = b[4] | 0; + var bl4 = b4 & 0x1fff; + var bh4 = b4 >>> 13; + var b5 = b[5] | 0; + var bl5 = b5 & 0x1fff; + var bh5 = b5 >>> 13; + var b6 = b[6] | 0; + var bl6 = b6 & 0x1fff; + var bh6 = b6 >>> 13; + var b7 = b[7] | 0; + var bl7 = b7 & 0x1fff; + var bh7 = b7 >>> 13; + var b8 = b[8] | 0; + var bl8 = b8 & 0x1fff; + var bh8 = b8 >>> 13; + var b9 = b[9] | 0; + var bl9 = b9 & 0x1fff; + var bh9 = b9 >>> 13; + + out.negative = self.negative ^ num.negative; + out.length = 19; + /* k = 0 */ + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = (mid + Math.imul(ah0, bl0)) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; + w0 &= 0x3ffffff; + /* k = 1 */ + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = (mid + Math.imul(ah1, bl0)) | 0; + hi = Math.imul(ah1, bh0); + lo = (lo + Math.imul(al0, bl1)) | 0; + mid = (mid + Math.imul(al0, bh1)) | 0; + mid = (mid + Math.imul(ah0, bl1)) | 0; + hi = (hi + Math.imul(ah0, bh1)) | 0; + var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; + w1 &= 0x3ffffff; + /* k = 2 */ + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = (mid + Math.imul(ah2, bl0)) | 0; + hi = Math.imul(ah2, bh0); + lo = (lo + Math.imul(al1, bl1)) | 0; + mid = (mid + Math.imul(al1, bh1)) | 0; + mid = (mid + Math.imul(ah1, bl1)) | 0; + hi = (hi + Math.imul(ah1, bh1)) | 0; + lo = (lo + Math.imul(al0, bl2)) | 0; + mid = (mid + Math.imul(al0, bh2)) | 0; + mid = (mid + Math.imul(ah0, bl2)) | 0; + hi = (hi + Math.imul(ah0, bh2)) | 0; + var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; + w2 &= 0x3ffffff; + /* k = 3 */ + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = (mid + Math.imul(ah3, bl0)) | 0; + hi = Math.imul(ah3, bh0); + lo = (lo + Math.imul(al2, bl1)) | 0; + mid = (mid + Math.imul(al2, bh1)) | 0; + mid = (mid + Math.imul(ah2, bl1)) | 0; + hi = (hi + Math.imul(ah2, bh1)) | 0; + lo = (lo + Math.imul(al1, bl2)) | 0; + mid = (mid + Math.imul(al1, bh2)) | 0; + mid = (mid + Math.imul(ah1, bl2)) | 0; + hi = (hi + Math.imul(ah1, bh2)) | 0; + lo = (lo + Math.imul(al0, bl3)) | 0; + mid = (mid + Math.imul(al0, bh3)) | 0; + mid = (mid + Math.imul(ah0, bl3)) | 0; + hi = (hi + Math.imul(ah0, bh3)) | 0; + var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; + w3 &= 0x3ffffff; + /* k = 4 */ + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = (mid + Math.imul(ah4, bl0)) | 0; + hi = Math.imul(ah4, bh0); + lo = (lo + Math.imul(al3, bl1)) | 0; + mid = (mid + Math.imul(al3, bh1)) | 0; + mid = (mid + Math.imul(ah3, bl1)) | 0; + hi = (hi + Math.imul(ah3, bh1)) | 0; + lo = (lo + Math.imul(al2, bl2)) | 0; + mid = (mid + Math.imul(al2, bh2)) | 0; + mid = (mid + Math.imul(ah2, bl2)) | 0; + hi = (hi + Math.imul(ah2, bh2)) | 0; + lo = (lo + Math.imul(al1, bl3)) | 0; + mid = (mid + Math.imul(al1, bh3)) | 0; + mid = (mid + Math.imul(ah1, bl3)) | 0; + hi = (hi + Math.imul(ah1, bh3)) | 0; + lo = (lo + Math.imul(al0, bl4)) | 0; + mid = (mid + Math.imul(al0, bh4)) | 0; + mid = (mid + Math.imul(ah0, bl4)) | 0; + hi = (hi + Math.imul(ah0, bh4)) | 0; + var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; + w4 &= 0x3ffffff; + /* k = 5 */ + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = (mid + Math.imul(ah5, bl0)) | 0; + hi = Math.imul(ah5, bh0); + lo = (lo + Math.imul(al4, bl1)) | 0; + mid = (mid + Math.imul(al4, bh1)) | 0; + mid = (mid + Math.imul(ah4, bl1)) | 0; + hi = (hi + Math.imul(ah4, bh1)) | 0; + lo = (lo + Math.imul(al3, bl2)) | 0; + mid = (mid + Math.imul(al3, bh2)) | 0; + mid = (mid + Math.imul(ah3, bl2)) | 0; + hi = (hi + Math.imul(ah3, bh2)) | 0; + lo = (lo + Math.imul(al2, bl3)) | 0; + mid = (mid + Math.imul(al2, bh3)) | 0; + mid = (mid + Math.imul(ah2, bl3)) | 0; + hi = (hi + Math.imul(ah2, bh3)) | 0; + lo = (lo + Math.imul(al1, bl4)) | 0; + mid = (mid + Math.imul(al1, bh4)) | 0; + mid = (mid + Math.imul(ah1, bl4)) | 0; + hi = (hi + Math.imul(ah1, bh4)) | 0; + lo = (lo + Math.imul(al0, bl5)) | 0; + mid = (mid + Math.imul(al0, bh5)) | 0; + mid = (mid + Math.imul(ah0, bl5)) | 0; + hi = (hi + Math.imul(ah0, bh5)) | 0; + var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; + w5 &= 0x3ffffff; + /* k = 6 */ + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = (mid + Math.imul(ah6, bl0)) | 0; + hi = Math.imul(ah6, bh0); + lo = (lo + Math.imul(al5, bl1)) | 0; + mid = (mid + Math.imul(al5, bh1)) | 0; + mid = (mid + Math.imul(ah5, bl1)) | 0; + hi = (hi + Math.imul(ah5, bh1)) | 0; + lo = (lo + Math.imul(al4, bl2)) | 0; + mid = (mid + Math.imul(al4, bh2)) | 0; + mid = (mid + Math.imul(ah4, bl2)) | 0; + hi = (hi + Math.imul(ah4, bh2)) | 0; + lo = (lo + Math.imul(al3, bl3)) | 0; + mid = (mid + Math.imul(al3, bh3)) | 0; + mid = (mid + Math.imul(ah3, bl3)) | 0; + hi = (hi + Math.imul(ah3, bh3)) | 0; + lo = (lo + Math.imul(al2, bl4)) | 0; + mid = (mid + Math.imul(al2, bh4)) | 0; + mid = (mid + Math.imul(ah2, bl4)) | 0; + hi = (hi + Math.imul(ah2, bh4)) | 0; + lo = (lo + Math.imul(al1, bl5)) | 0; + mid = (mid + Math.imul(al1, bh5)) | 0; + mid = (mid + Math.imul(ah1, bl5)) | 0; + hi = (hi + Math.imul(ah1, bh5)) | 0; + lo = (lo + Math.imul(al0, bl6)) | 0; + mid = (mid + Math.imul(al0, bh6)) | 0; + mid = (mid + Math.imul(ah0, bl6)) | 0; + hi = (hi + Math.imul(ah0, bh6)) | 0; + var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; + w6 &= 0x3ffffff; + /* k = 7 */ + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = (mid + Math.imul(ah7, bl0)) | 0; + hi = Math.imul(ah7, bh0); + lo = (lo + Math.imul(al6, bl1)) | 0; + mid = (mid + Math.imul(al6, bh1)) | 0; + mid = (mid + Math.imul(ah6, bl1)) | 0; + hi = (hi + Math.imul(ah6, bh1)) | 0; + lo = (lo + Math.imul(al5, bl2)) | 0; + mid = (mid + Math.imul(al5, bh2)) | 0; + mid = (mid + Math.imul(ah5, bl2)) | 0; + hi = (hi + Math.imul(ah5, bh2)) | 0; + lo = (lo + Math.imul(al4, bl3)) | 0; + mid = (mid + Math.imul(al4, bh3)) | 0; + mid = (mid + Math.imul(ah4, bl3)) | 0; + hi = (hi + Math.imul(ah4, bh3)) | 0; + lo = (lo + Math.imul(al3, bl4)) | 0; + mid = (mid + Math.imul(al3, bh4)) | 0; + mid = (mid + Math.imul(ah3, bl4)) | 0; + hi = (hi + Math.imul(ah3, bh4)) | 0; + lo = (lo + Math.imul(al2, bl5)) | 0; + mid = (mid + Math.imul(al2, bh5)) | 0; + mid = (mid + Math.imul(ah2, bl5)) | 0; + hi = (hi + Math.imul(ah2, bh5)) | 0; + lo = (lo + Math.imul(al1, bl6)) | 0; + mid = (mid + Math.imul(al1, bh6)) | 0; + mid = (mid + Math.imul(ah1, bl6)) | 0; + hi = (hi + Math.imul(ah1, bh6)) | 0; + lo = (lo + Math.imul(al0, bl7)) | 0; + mid = (mid + Math.imul(al0, bh7)) | 0; + mid = (mid + Math.imul(ah0, bl7)) | 0; + hi = (hi + Math.imul(ah0, bh7)) | 0; + var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; + w7 &= 0x3ffffff; + /* k = 8 */ + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = (mid + Math.imul(ah8, bl0)) | 0; + hi = Math.imul(ah8, bh0); + lo = (lo + Math.imul(al7, bl1)) | 0; + mid = (mid + Math.imul(al7, bh1)) | 0; + mid = (mid + Math.imul(ah7, bl1)) | 0; + hi = (hi + Math.imul(ah7, bh1)) | 0; + lo = (lo + Math.imul(al6, bl2)) | 0; + mid = (mid + Math.imul(al6, bh2)) | 0; + mid = (mid + Math.imul(ah6, bl2)) | 0; + hi = (hi + Math.imul(ah6, bh2)) | 0; + lo = (lo + Math.imul(al5, bl3)) | 0; + mid = (mid + Math.imul(al5, bh3)) | 0; + mid = (mid + Math.imul(ah5, bl3)) | 0; + hi = (hi + Math.imul(ah5, bh3)) | 0; + lo = (lo + Math.imul(al4, bl4)) | 0; + mid = (mid + Math.imul(al4, bh4)) | 0; + mid = (mid + Math.imul(ah4, bl4)) | 0; + hi = (hi + Math.imul(ah4, bh4)) | 0; + lo = (lo + Math.imul(al3, bl5)) | 0; + mid = (mid + Math.imul(al3, bh5)) | 0; + mid = (mid + Math.imul(ah3, bl5)) | 0; + hi = (hi + Math.imul(ah3, bh5)) | 0; + lo = (lo + Math.imul(al2, bl6)) | 0; + mid = (mid + Math.imul(al2, bh6)) | 0; + mid = (mid + Math.imul(ah2, bl6)) | 0; + hi = (hi + Math.imul(ah2, bh6)) | 0; + lo = (lo + Math.imul(al1, bl7)) | 0; + mid = (mid + Math.imul(al1, bh7)) | 0; + mid = (mid + Math.imul(ah1, bl7)) | 0; + hi = (hi + Math.imul(ah1, bh7)) | 0; + lo = (lo + Math.imul(al0, bl8)) | 0; + mid = (mid + Math.imul(al0, bh8)) | 0; + mid = (mid + Math.imul(ah0, bl8)) | 0; + hi = (hi + Math.imul(ah0, bh8)) | 0; + var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; + w8 &= 0x3ffffff; + /* k = 9 */ + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = (mid + Math.imul(ah9, bl0)) | 0; + hi = Math.imul(ah9, bh0); + lo = (lo + Math.imul(al8, bl1)) | 0; + mid = (mid + Math.imul(al8, bh1)) | 0; + mid = (mid + Math.imul(ah8, bl1)) | 0; + hi = (hi + Math.imul(ah8, bh1)) | 0; + lo = (lo + Math.imul(al7, bl2)) | 0; + mid = (mid + Math.imul(al7, bh2)) | 0; + mid = (mid + Math.imul(ah7, bl2)) | 0; + hi = (hi + Math.imul(ah7, bh2)) | 0; + lo = (lo + Math.imul(al6, bl3)) | 0; + mid = (mid + Math.imul(al6, bh3)) | 0; + mid = (mid + Math.imul(ah6, bl3)) | 0; + hi = (hi + Math.imul(ah6, bh3)) | 0; + lo = (lo + Math.imul(al5, bl4)) | 0; + mid = (mid + Math.imul(al5, bh4)) | 0; + mid = (mid + Math.imul(ah5, bl4)) | 0; + hi = (hi + Math.imul(ah5, bh4)) | 0; + lo = (lo + Math.imul(al4, bl5)) | 0; + mid = (mid + Math.imul(al4, bh5)) | 0; + mid = (mid + Math.imul(ah4, bl5)) | 0; + hi = (hi + Math.imul(ah4, bh5)) | 0; + lo = (lo + Math.imul(al3, bl6)) | 0; + mid = (mid + Math.imul(al3, bh6)) | 0; + mid = (mid + Math.imul(ah3, bl6)) | 0; + hi = (hi + Math.imul(ah3, bh6)) | 0; + lo = (lo + Math.imul(al2, bl7)) | 0; + mid = (mid + Math.imul(al2, bh7)) | 0; + mid = (mid + Math.imul(ah2, bl7)) | 0; + hi = (hi + Math.imul(ah2, bh7)) | 0; + lo = (lo + Math.imul(al1, bl8)) | 0; + mid = (mid + Math.imul(al1, bh8)) | 0; + mid = (mid + Math.imul(ah1, bl8)) | 0; + hi = (hi + Math.imul(ah1, bh8)) | 0; + lo = (lo + Math.imul(al0, bl9)) | 0; + mid = (mid + Math.imul(al0, bh9)) | 0; + mid = (mid + Math.imul(ah0, bl9)) | 0; + hi = (hi + Math.imul(ah0, bh9)) | 0; + var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; + w9 &= 0x3ffffff; + /* k = 10 */ + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = (mid + Math.imul(ah9, bl1)) | 0; + hi = Math.imul(ah9, bh1); + lo = (lo + Math.imul(al8, bl2)) | 0; + mid = (mid + Math.imul(al8, bh2)) | 0; + mid = (mid + Math.imul(ah8, bl2)) | 0; + hi = (hi + Math.imul(ah8, bh2)) | 0; + lo = (lo + Math.imul(al7, bl3)) | 0; + mid = (mid + Math.imul(al7, bh3)) | 0; + mid = (mid + Math.imul(ah7, bl3)) | 0; + hi = (hi + Math.imul(ah7, bh3)) | 0; + lo = (lo + Math.imul(al6, bl4)) | 0; + mid = (mid + Math.imul(al6, bh4)) | 0; + mid = (mid + Math.imul(ah6, bl4)) | 0; + hi = (hi + Math.imul(ah6, bh4)) | 0; + lo = (lo + Math.imul(al5, bl5)) | 0; + mid = (mid + Math.imul(al5, bh5)) | 0; + mid = (mid + Math.imul(ah5, bl5)) | 0; + hi = (hi + Math.imul(ah5, bh5)) | 0; + lo = (lo + Math.imul(al4, bl6)) | 0; + mid = (mid + Math.imul(al4, bh6)) | 0; + mid = (mid + Math.imul(ah4, bl6)) | 0; + hi = (hi + Math.imul(ah4, bh6)) | 0; + lo = (lo + Math.imul(al3, bl7)) | 0; + mid = (mid + Math.imul(al3, bh7)) | 0; + mid = (mid + Math.imul(ah3, bl7)) | 0; + hi = (hi + Math.imul(ah3, bh7)) | 0; + lo = (lo + Math.imul(al2, bl8)) | 0; + mid = (mid + Math.imul(al2, bh8)) | 0; + mid = (mid + Math.imul(ah2, bl8)) | 0; + hi = (hi + Math.imul(ah2, bh8)) | 0; + lo = (lo + Math.imul(al1, bl9)) | 0; + mid = (mid + Math.imul(al1, bh9)) | 0; + mid = (mid + Math.imul(ah1, bl9)) | 0; + hi = (hi + Math.imul(ah1, bh9)) | 0; + var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; + w10 &= 0x3ffffff; + /* k = 11 */ + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = (mid + Math.imul(ah9, bl2)) | 0; + hi = Math.imul(ah9, bh2); + lo = (lo + Math.imul(al8, bl3)) | 0; + mid = (mid + Math.imul(al8, bh3)) | 0; + mid = (mid + Math.imul(ah8, bl3)) | 0; + hi = (hi + Math.imul(ah8, bh3)) | 0; + lo = (lo + Math.imul(al7, bl4)) | 0; + mid = (mid + Math.imul(al7, bh4)) | 0; + mid = (mid + Math.imul(ah7, bl4)) | 0; + hi = (hi + Math.imul(ah7, bh4)) | 0; + lo = (lo + Math.imul(al6, bl5)) | 0; + mid = (mid + Math.imul(al6, bh5)) | 0; + mid = (mid + Math.imul(ah6, bl5)) | 0; + hi = (hi + Math.imul(ah6, bh5)) | 0; + lo = (lo + Math.imul(al5, bl6)) | 0; + mid = (mid + Math.imul(al5, bh6)) | 0; + mid = (mid + Math.imul(ah5, bl6)) | 0; + hi = (hi + Math.imul(ah5, bh6)) | 0; + lo = (lo + Math.imul(al4, bl7)) | 0; + mid = (mid + Math.imul(al4, bh7)) | 0; + mid = (mid + Math.imul(ah4, bl7)) | 0; + hi = (hi + Math.imul(ah4, bh7)) | 0; + lo = (lo + Math.imul(al3, bl8)) | 0; + mid = (mid + Math.imul(al3, bh8)) | 0; + mid = (mid + Math.imul(ah3, bl8)) | 0; + hi = (hi + Math.imul(ah3, bh8)) | 0; + lo = (lo + Math.imul(al2, bl9)) | 0; + mid = (mid + Math.imul(al2, bh9)) | 0; + mid = (mid + Math.imul(ah2, bl9)) | 0; + hi = (hi + Math.imul(ah2, bh9)) | 0; + var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; + w11 &= 0x3ffffff; + /* k = 12 */ + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = (mid + Math.imul(ah9, bl3)) | 0; + hi = Math.imul(ah9, bh3); + lo = (lo + Math.imul(al8, bl4)) | 0; + mid = (mid + Math.imul(al8, bh4)) | 0; + mid = (mid + Math.imul(ah8, bl4)) | 0; + hi = (hi + Math.imul(ah8, bh4)) | 0; + lo = (lo + Math.imul(al7, bl5)) | 0; + mid = (mid + Math.imul(al7, bh5)) | 0; + mid = (mid + Math.imul(ah7, bl5)) | 0; + hi = (hi + Math.imul(ah7, bh5)) | 0; + lo = (lo + Math.imul(al6, bl6)) | 0; + mid = (mid + Math.imul(al6, bh6)) | 0; + mid = (mid + Math.imul(ah6, bl6)) | 0; + hi = (hi + Math.imul(ah6, bh6)) | 0; + lo = (lo + Math.imul(al5, bl7)) | 0; + mid = (mid + Math.imul(al5, bh7)) | 0; + mid = (mid + Math.imul(ah5, bl7)) | 0; + hi = (hi + Math.imul(ah5, bh7)) | 0; + lo = (lo + Math.imul(al4, bl8)) | 0; + mid = (mid + Math.imul(al4, bh8)) | 0; + mid = (mid + Math.imul(ah4, bl8)) | 0; + hi = (hi + Math.imul(ah4, bh8)) | 0; + lo = (lo + Math.imul(al3, bl9)) | 0; + mid = (mid + Math.imul(al3, bh9)) | 0; + mid = (mid + Math.imul(ah3, bl9)) | 0; + hi = (hi + Math.imul(ah3, bh9)) | 0; + var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; + w12 &= 0x3ffffff; + /* k = 13 */ + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = (mid + Math.imul(ah9, bl4)) | 0; + hi = Math.imul(ah9, bh4); + lo = (lo + Math.imul(al8, bl5)) | 0; + mid = (mid + Math.imul(al8, bh5)) | 0; + mid = (mid + Math.imul(ah8, bl5)) | 0; + hi = (hi + Math.imul(ah8, bh5)) | 0; + lo = (lo + Math.imul(al7, bl6)) | 0; + mid = (mid + Math.imul(al7, bh6)) | 0; + mid = (mid + Math.imul(ah7, bl6)) | 0; + hi = (hi + Math.imul(ah7, bh6)) | 0; + lo = (lo + Math.imul(al6, bl7)) | 0; + mid = (mid + Math.imul(al6, bh7)) | 0; + mid = (mid + Math.imul(ah6, bl7)) | 0; + hi = (hi + Math.imul(ah6, bh7)) | 0; + lo = (lo + Math.imul(al5, bl8)) | 0; + mid = (mid + Math.imul(al5, bh8)) | 0; + mid = (mid + Math.imul(ah5, bl8)) | 0; + hi = (hi + Math.imul(ah5, bh8)) | 0; + lo = (lo + Math.imul(al4, bl9)) | 0; + mid = (mid + Math.imul(al4, bh9)) | 0; + mid = (mid + Math.imul(ah4, bl9)) | 0; + hi = (hi + Math.imul(ah4, bh9)) | 0; + var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; + w13 &= 0x3ffffff; + /* k = 14 */ + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = (mid + Math.imul(ah9, bl5)) | 0; + hi = Math.imul(ah9, bh5); + lo = (lo + Math.imul(al8, bl6)) | 0; + mid = (mid + Math.imul(al8, bh6)) | 0; + mid = (mid + Math.imul(ah8, bl6)) | 0; + hi = (hi + Math.imul(ah8, bh6)) | 0; + lo = (lo + Math.imul(al7, bl7)) | 0; + mid = (mid + Math.imul(al7, bh7)) | 0; + mid = (mid + Math.imul(ah7, bl7)) | 0; + hi = (hi + Math.imul(ah7, bh7)) | 0; + lo = (lo + Math.imul(al6, bl8)) | 0; + mid = (mid + Math.imul(al6, bh8)) | 0; + mid = (mid + Math.imul(ah6, bl8)) | 0; + hi = (hi + Math.imul(ah6, bh8)) | 0; + lo = (lo + Math.imul(al5, bl9)) | 0; + mid = (mid + Math.imul(al5, bh9)) | 0; + mid = (mid + Math.imul(ah5, bl9)) | 0; + hi = (hi + Math.imul(ah5, bh9)) | 0; + var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; + w14 &= 0x3ffffff; + /* k = 15 */ + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = (mid + Math.imul(ah9, bl6)) | 0; + hi = Math.imul(ah9, bh6); + lo = (lo + Math.imul(al8, bl7)) | 0; + mid = (mid + Math.imul(al8, bh7)) | 0; + mid = (mid + Math.imul(ah8, bl7)) | 0; + hi = (hi + Math.imul(ah8, bh7)) | 0; + lo = (lo + Math.imul(al7, bl8)) | 0; + mid = (mid + Math.imul(al7, bh8)) | 0; + mid = (mid + Math.imul(ah7, bl8)) | 0; + hi = (hi + Math.imul(ah7, bh8)) | 0; + lo = (lo + Math.imul(al6, bl9)) | 0; + mid = (mid + Math.imul(al6, bh9)) | 0; + mid = (mid + Math.imul(ah6, bl9)) | 0; + hi = (hi + Math.imul(ah6, bh9)) | 0; + var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; + w15 &= 0x3ffffff; + /* k = 16 */ + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = (mid + Math.imul(ah9, bl7)) | 0; + hi = Math.imul(ah9, bh7); + lo = (lo + Math.imul(al8, bl8)) | 0; + mid = (mid + Math.imul(al8, bh8)) | 0; + mid = (mid + Math.imul(ah8, bl8)) | 0; + hi = (hi + Math.imul(ah8, bh8)) | 0; + lo = (lo + Math.imul(al7, bl9)) | 0; + mid = (mid + Math.imul(al7, bh9)) | 0; + mid = (mid + Math.imul(ah7, bl9)) | 0; + hi = (hi + Math.imul(ah7, bh9)) | 0; + var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; + w16 &= 0x3ffffff; + /* k = 17 */ + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = (mid + Math.imul(ah9, bl8)) | 0; + hi = Math.imul(ah9, bh8); + lo = (lo + Math.imul(al8, bl9)) | 0; + mid = (mid + Math.imul(al8, bh9)) | 0; + mid = (mid + Math.imul(ah8, bl9)) | 0; + hi = (hi + Math.imul(ah8, bh9)) | 0; + var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; + w17 &= 0x3ffffff; + /* k = 18 */ + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = (mid + Math.imul(ah9, bl9)) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; + w18 &= 0x3ffffff; + o[0] = w0; + o[1] = w1; + o[2] = w2; + o[3] = w3; + o[4] = w4; + o[5] = w5; + o[6] = w6; + o[7] = w7; + o[8] = w8; + o[9] = w9; + o[10] = w10; + o[11] = w11; + o[12] = w12; + o[13] = w13; + o[14] = w14; + o[15] = w15; + o[16] = w16; + o[17] = w17; + o[18] = w18; + if (c !== 0) { + o[19] = c; + out.length++; + } + return out; + }; + + // Polyfill comb + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + + function bigMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + out.length = self.length + num.length; + + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; + lo = (lo + rword) | 0; + rword = lo & 0x3ffffff; + ncarry = (ncarry + (lo >>> 26)) | 0; + + hncarry += ncarry >>> 26; + ncarry &= 0x3ffffff; + } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; + } + + return out.strip(); + } + + function jumboMulTo (self, num, out) { + var fftm = new FFTM(); + return fftm.mulp(self, num, out); + } + + BN.prototype.mulTo = function mulTo (num, out) { + var res; + var len = this.length + num.length; + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out); + } else if (len < 63) { + res = smallMulTo(this, num, out); + } else if (len < 1024) { + res = bigMulTo(this, num, out); + } else { + res = jumboMulTo(this, num, out); + } + + return res; + }; + + // Cooley-Tukey algorithm for FFT + // slightly revisited to rely on looping instead of recursion + + function FFTM (x, y) { + this.x = x; + this.y = y; + } + + FFTM.prototype.makeRBT = function makeRBT (N) { + var t = new Array(N); + var l = BN.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } + + return t; + }; + + // Returns binary-reversed representation of `x` + FFTM.prototype.revBin = function revBin (x, l, N) { + if (x === 0 || x === N - 1) return x; + + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1); + x >>= 1; + } + + return rb; + }; + + // Performs "tweedling" phase, therefore 'emulating' + // behaviour of the recursive algorithm + FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; + + FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); + + for (var s = 1; s < N; s <<= 1) { + var l = s << 1; + + var rtwdf = Math.cos(2 * Math.PI / l); + var itwdf = Math.sin(2 * Math.PI / l); + + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + + for (var j = 0; j < s; j++) { + var re = rtws[p + j]; + var ie = itws[p + j]; + + var ro = rtws[p + j + s]; + var io = itws[p + j + s]; + + var rx = rtwdf_ * ro - itwdf_ * io; + + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + + rtws[p + j] = re + ro; + itws[p + j] = ie + io; + + rtws[p + j + s] = re - ro; + itws[p + j + s] = ie - io; + + /* jshint maxdepth : false */ + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + + FFTM.prototype.guessLen13b = function guessLen13b (n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } + + return 1 << i + 1 + odd; + }; + + FFTM.prototype.conjugate = function conjugate (rws, iws, N) { + if (N <= 1) return; + + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; + + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; + + t = iws[i]; + + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; + + FFTM.prototype.normalize13b = function normalize13b (ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + + Math.round(ws[2 * i] / N) + + carry; + + ws[i] = w & 0x3ffffff; + + if (w < 0x4000000) { + carry = 0; + } else { + carry = w / 0x4000000 | 0; + } + } + + return ws; + }; + + FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); + + rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; + rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + } + + // Pad with zeroes + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } + + assert(carry === 0); + assert((carry & ~0x1fff) === 0); + }; + + FFTM.prototype.stub = function stub (N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } + + return ph; + }; + + FFTM.prototype.mulp = function mulp (x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); + + var rbt = this.makeRBT(N); + + var _ = this.stub(N); + + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); + + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); + + var rmws = out.words; + rmws.length = N; + + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); + + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); + + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; + rwst[i] = rx; + } + + this.conjugate(rwst, iwst, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); + + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out.strip(); + }; + + // Multiply `this` by `num` + BN.prototype.mul = function mul (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; + + // Multiply employing FFT + BN.prototype.mulf = function mulf (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; + + // In-place Multiplication + BN.prototype.imul = function imul (num) { + return this.clone().mulTo(num, this); + }; + + BN.prototype.imuln = function imuln (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + + // Carry + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); + carry >>= 26; + carry += (w / 0x4000000) | 0; + // NOTE: lo is 27bit maximum + carry += lo >>> 26; + this.words[i] = lo & 0x3ffffff; + } + + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + + return this; + }; + + BN.prototype.muln = function muln (num) { + return this.clone().imuln(num); + }; + + // `this` * `this` + BN.prototype.sqr = function sqr () { + return this.mul(this); + }; + + // `this` * `this` in-place + BN.prototype.isqr = function isqr () { + return this.imul(this.clone()); + }; + + // Math.pow(`this`, `num`) + BN.prototype.pow = function pow (num) { + var w = toBitArray(num); + if (w.length === 0) return new BN(1); + + // Skip leading zeroes + var res = this; + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break; + } + + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue; + + res = res.mul(q); + } + } + + return res; + }; + + // Shift-left in-place + BN.prototype.iushln = function iushln (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); + var i; + + if (r !== 0) { + var carry = 0; + + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = ((this.words[i] | 0) - newCarry) << r; + this.words[i] = c | carry; + carry = newCarry >>> (26 - r); + } + + if (carry) { + this.words[i] = carry; + this.length++; + } + } + + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i]; + } + + for (i = 0; i < s; i++) { + this.words[i] = 0; + } + + this.length += s; + } + + return this.strip(); + }; + + BN.prototype.ishln = function ishln (bits) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushln(bits); + }; + + // Shift-right in-place + // NOTE: `hint` is a lowest bit before trailing zeroes + // NOTE: if `extended` is present - it will be filled with destroyed bits + BN.prototype.iushrn = function iushrn (bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0); + var h; + if (hint) { + h = (hint - (hint % 26)) / 26; + } else { + h = 0; + } + + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + var maskedWords = extended; + + h -= s; + h = Math.max(0, h); + + // Extended mode, copy masked part + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } + + if (s === 0) { + // No-op, we should not move anything at all + } else if (this.length > s) { + this.length -= s; + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s]; + } + } else { + this.words[0] = 0; + this.length = 1; + } + + var carry = 0; + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0; + this.words[i] = (carry << (26 - r)) | (word >>> r); + carry = word & mask; + } + + // Push carried bits as a mask + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; + } + + return this.strip(); + }; + + BN.prototype.ishrn = function ishrn (bits, hint, extended) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; + + // Shift-left + BN.prototype.shln = function shln (bits) { + return this.clone().ishln(bits); + }; + + BN.prototype.ushln = function ushln (bits) { + return this.clone().iushln(bits); + }; + + // Shift-right + BN.prototype.shrn = function shrn (bits) { + return this.clone().ishrn(bits); + }; + + BN.prototype.ushrn = function ushrn (bits) { + return this.clone().iushrn(bits); + }; + + // Test if n bit is set + BN.prototype.testn = function testn (bit) { + assert(typeof bit === 'number' && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) return false; + + // Check bit and return + var w = this.words[s]; + + return !!(w & q); + }; + + // Return only lowers bits of number (in-place) + BN.prototype.imaskn = function imaskn (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + + assert(this.negative === 0, 'imaskn works only with positive numbers'); + + if (this.length <= s) { + return this; + } + + if (r !== 0) { + s++; + } + this.length = Math.min(s, this.length); + + if (r !== 0) { + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + this.words[this.length - 1] &= mask; + } + + return this.strip(); + }; + + // Return only lowers bits of number + BN.prototype.maskn = function maskn (bits) { + return this.clone().imaskn(bits); + }; + + // Add plain number `num` to `this` + BN.prototype.iaddn = function iaddn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.isubn(-num); + + // Possible sign change + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) < num) { + this.words[0] = num - (this.words[0] | 0); + this.negative = 0; + return this; + } + + this.negative = 0; + this.isubn(num); + this.negative = 1; + return this; + } + + // Add without checks + return this._iaddn(num); + }; + + BN.prototype._iaddn = function _iaddn (num) { + this.words[0] += num; + + // Carry + for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { + this.words[i] -= 0x4000000; + if (i === this.length - 1) { + this.words[i + 1] = 1; + } else { + this.words[i + 1]++; + } + } + this.length = Math.max(this.length, i + 1); + + return this; + }; + + // Subtract plain number `num` from `this` + BN.prototype.isubn = function isubn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.iaddn(-num); + + if (this.negative !== 0) { + this.negative = 0; + this.iaddn(num); + this.negative = 1; + return this; + } + + this.words[0] -= num; + + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0]; + this.negative = 1; + } else { + // Carry + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 0x4000000; + this.words[i + 1] -= 1; + } + } + + return this.strip(); + }; + + BN.prototype.addn = function addn (num) { + return this.clone().iaddn(num); + }; + + BN.prototype.subn = function subn (num) { + return this.clone().isubn(num); + }; + + BN.prototype.iabs = function iabs () { + this.negative = 0; + + return this; + }; + + BN.prototype.abs = function abs () { + return this.clone().iabs(); + }; + + BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { + var len = num.length + shift; + var i; + + this._expand(len); + + var w; + var carry = 0; + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry; + var right = (num.words[i] | 0) * mul; + w -= right & 0x3ffffff; + carry = (w >> 26) - ((right / 0x4000000) | 0); + this.words[i + shift] = w & 0x3ffffff; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 0x3ffffff; + } + + if (carry === 0) return this.strip(); + + // Subtraction overflow + assert(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 0x3ffffff; + } + this.negative = 1; + + return this.strip(); + }; + + BN.prototype._wordDiv = function _wordDiv (num, mode) { + var shift = this.length - num.length; + + var a = this.clone(); + var b = num; + + // Normalize + var bhi = b.words[b.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b = b.ushln(shift); + a.iushln(shift); + bhi = b.words[b.length - 1] | 0; + } + + // Initialize quotient + var m = a.length - b.length; + var q; + + if (mode !== 'mod') { + q = new BN(null); + q.length = m + 1; + q.words = new Array(q.length); + for (var i = 0; i < q.length; i++) { + q.words[i] = 0; + } + } + + var diff = a.clone()._ishlnsubmul(b, 1, m); + if (diff.negative === 0) { + a = diff; + if (q) { + q.words[m] = 1; + } + } + + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 0x4000000 + + (a.words[b.length + j - 1] | 0); + + // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max + // (0x7ffffff) + qj = Math.min((qj / bhi) | 0, 0x3ffffff); + + a._ishlnsubmul(b, qj, j); + while (a.negative !== 0) { + qj--; + a.negative = 0; + a._ishlnsubmul(b, 1, j); + if (!a.isZero()) { + a.negative ^= 1; + } + } + if (q) { + q.words[j] = qj; + } + } + if (q) { + q.strip(); + } + a.strip(); + + // Denormalize + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift); + } + + return { + div: q || null, + mod: a + }; + }; + + // NOTE: 1) `mode` can be set to `mod` to request mod only, + // to `div` to request div only, or be absent to + // request both div & mod + // 2) `positive` is true if unsigned mod is requested + BN.prototype.divmod = function divmod (num, mode, positive) { + assert(!num.isZero()); + + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + + if (mode !== 'mod') { + div = res.div.neg(); + } + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + + return { + div: div, + mod: mod + }; + } + + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + + if (mode !== 'mod') { + div = res.div.neg(); + } + + return { + div: div, + mod: res.mod + }; + } + + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + + return { + div: res.div, + mod: mod + }; + } + + // Both numbers are positive at this point + + // Strip both numbers to approximate shift value + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this + }; + } + + // Very short reduction + if (num.length === 1) { + if (mode === 'div') { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + + if (mode === 'mod') { + return { + div: null, + mod: new BN(this.modn(num.words[0])) + }; + } + + return { + div: this.divn(num.words[0]), + mod: new BN(this.modn(num.words[0])) + }; + } + + return this._wordDiv(num, mode); + }; + + // Find `this` / `num` + BN.prototype.div = function div (num) { + return this.divmod(num, 'div', false).div; + }; + + // Find `this` % `num` + BN.prototype.mod = function mod (num) { + return this.divmod(num, 'mod', false).mod; + }; + + BN.prototype.umod = function umod (num) { + return this.divmod(num, 'mod', true).mod; + }; + + // Find Round(`this` / `num`) + BN.prototype.divRound = function divRound (num) { + var dm = this.divmod(num); + + // Fast case - exact division + if (dm.mod.isZero()) return dm.div; + + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + + var half = num.ushrn(1); + var r2 = num.andln(1); + var cmp = mod.cmp(half); + + // Round down + if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; + + // Round up + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + + BN.prototype.modn = function modn (num) { + assert(num <= 0x3ffffff); + var p = (1 << 26) % num; + + var acc = 0; + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num; + } + + return acc; + }; + + // In-place division by number + BN.prototype.idivn = function idivn (num) { + assert(num <= 0x3ffffff); + + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 0x4000000; + this.words[i] = (w / num) | 0; + carry = w % num; + } + + return this.strip(); + }; + + BN.prototype.divn = function divn (num) { + return this.clone().idivn(num); + }; + + BN.prototype.egcd = function egcd (p) { + assert(p.negative === 0); + assert(!p.isZero()); + + var x = this; + var y = p.clone(); + + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } + + // A * x + B * y = x + var A = new BN(1); + var B = new BN(0); + + // C * x + D * y = y + var C = new BN(0); + var D = new BN(1); + + var g = 0; + + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } + + var yp = y.clone(); + var xp = x.clone(); + + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i); + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp); + B.isub(xp); + } + + A.iushrn(1); + B.iushrn(1); + } + } + + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j); + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp); + D.isub(xp); + } + + C.iushrn(1); + D.iushrn(1); + } + } + + if (x.cmp(y) >= 0) { + x.isub(y); + A.isub(C); + B.isub(D); + } else { + y.isub(x); + C.isub(A); + D.isub(B); + } + } + + return { + a: C, + b: D, + gcd: y.iushln(g) + }; + }; + + // This is reduced incarnation of the binary EEA + // above, designated to invert members of the + // _prime_ fields F(p) at a maximal speed + BN.prototype._invmp = function _invmp (p) { + assert(p.negative === 0); + assert(!p.isZero()); + + var a = this; + var b = p.clone(); + + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); + } + + var x1 = new BN(1); + var x2 = new BN(0); + + var delta = b.clone(); + + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i); + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + + x1.iushrn(1); + } + } + + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j); + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta); + } + + x2.iushrn(1); + } + } + + if (a.cmp(b) >= 0) { + a.isub(b); + x1.isub(x2); + } else { + b.isub(a); + x2.isub(x1); + } + } + + var res; + if (a.cmpn(1) === 0) { + res = x1; + } else { + res = x2; + } + + if (res.cmpn(0) < 0) { + res.iadd(p); + } + + return res; + }; + + BN.prototype.gcd = function gcd (num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); + + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; + + // Remove common factor of two + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); + } + + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } + + var r = a.cmp(b); + if (r < 0) { + // Swap `a` and `b` to make `a` always bigger than `b` + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } + + a.isub(b); + } while (true); + + return b.iushln(shift); + }; + + // Invert number in the field F(num) + BN.prototype.invm = function invm (num) { + return this.egcd(num).a.umod(num); + }; + + BN.prototype.isEven = function isEven () { + return (this.words[0] & 1) === 0; + }; + + BN.prototype.isOdd = function isOdd () { + return (this.words[0] & 1) === 1; + }; + + // And first word and num + BN.prototype.andln = function andln (num) { + return this.words[0] & num; + }; + + // Increment at the bit position in-line + BN.prototype.bincn = function bincn (bit) { + assert(typeof bit === 'number'); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; + } + + // Add bit and propagate, if needed + var carry = q; + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0; + w += carry; + carry = w >>> 26; + w &= 0x3ffffff; + this.words[i] = w; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return this; + }; + + BN.prototype.isZero = function isZero () { + return this.length === 1 && this.words[0] === 0; + }; + + BN.prototype.cmpn = function cmpn (num) { + var negative = num < 0; + + if (this.negative !== 0 && !negative) return -1; + if (this.negative === 0 && negative) return 1; + + this.strip(); + + var res; + if (this.length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + + assert(num <= 0x3ffffff, 'Number is too big'); + + var w = this.words[0] | 0; + res = w === num ? 0 : w < num ? -1 : 1; + } + if (this.negative !== 0) return -res | 0; + return res; + }; + + // Compare two numbers and return: + // 1 - if `this` > `num` + // 0 - if `this` == `num` + // -1 - if `this` < `num` + BN.prototype.cmp = function cmp (num) { + if (this.negative !== 0 && num.negative === 0) return -1; + if (this.negative === 0 && num.negative !== 0) return 1; + + var res = this.ucmp(num); + if (this.negative !== 0) return -res | 0; + return res; + }; + + // Unsigned comparison + BN.prototype.ucmp = function ucmp (num) { + // At this point both numbers have the same sign + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; + + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; + + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; + } + return res; + }; + + BN.prototype.gtn = function gtn (num) { + return this.cmpn(num) === 1; + }; + + BN.prototype.gt = function gt (num) { + return this.cmp(num) === 1; + }; + + BN.prototype.gten = function gten (num) { + return this.cmpn(num) >= 0; + }; + + BN.prototype.gte = function gte (num) { + return this.cmp(num) >= 0; + }; + + BN.prototype.ltn = function ltn (num) { + return this.cmpn(num) === -1; + }; + + BN.prototype.lt = function lt (num) { + return this.cmp(num) === -1; + }; + + BN.prototype.lten = function lten (num) { + return this.cmpn(num) <= 0; + }; + + BN.prototype.lte = function lte (num) { + return this.cmp(num) <= 0; + }; + + BN.prototype.eqn = function eqn (num) { + return this.cmpn(num) === 0; + }; + + BN.prototype.eq = function eq (num) { + return this.cmp(num) === 0; + }; + + // + // A reduce context, could be using montgomery or something better, depending + // on the `m` itself. + // + BN.red = function red (num) { + return new Red(num); + }; + + BN.prototype.toRed = function toRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + assert(this.negative === 0, 'red works only with positives'); + return ctx.convertTo(this)._forceRed(ctx); + }; + + BN.prototype.fromRed = function fromRed () { + assert(this.red, 'fromRed works only with numbers in reduction context'); + return this.red.convertFrom(this); + }; + + BN.prototype._forceRed = function _forceRed (ctx) { + this.red = ctx; + return this; + }; + + BN.prototype.forceRed = function forceRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + return this._forceRed(ctx); + }; + + BN.prototype.redAdd = function redAdd (num) { + assert(this.red, 'redAdd works only with red numbers'); + return this.red.add(this, num); + }; + + BN.prototype.redIAdd = function redIAdd (num) { + assert(this.red, 'redIAdd works only with red numbers'); + return this.red.iadd(this, num); + }; + + BN.prototype.redSub = function redSub (num) { + assert(this.red, 'redSub works only with red numbers'); + return this.red.sub(this, num); + }; + + BN.prototype.redISub = function redISub (num) { + assert(this.red, 'redISub works only with red numbers'); + return this.red.isub(this, num); + }; + + BN.prototype.redShl = function redShl (num) { + assert(this.red, 'redShl works only with red numbers'); + return this.red.shl(this, num); + }; + + BN.prototype.redMul = function redMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; + + BN.prototype.redIMul = function redIMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.imul(this, num); + }; + + BN.prototype.redSqr = function redSqr () { + assert(this.red, 'redSqr works only with red numbers'); + this.red._verify1(this); + return this.red.sqr(this); + }; + + BN.prototype.redISqr = function redISqr () { + assert(this.red, 'redISqr works only with red numbers'); + this.red._verify1(this); + return this.red.isqr(this); + }; + + // Square root over p + BN.prototype.redSqrt = function redSqrt () { + assert(this.red, 'redSqrt works only with red numbers'); + this.red._verify1(this); + return this.red.sqrt(this); + }; + + BN.prototype.redInvm = function redInvm () { + assert(this.red, 'redInvm works only with red numbers'); + this.red._verify1(this); + return this.red.invm(this); + }; + + // Return negative clone of `this` % `red modulo` + BN.prototype.redNeg = function redNeg () { + assert(this.red, 'redNeg works only with red numbers'); + this.red._verify1(this); + return this.red.neg(this); + }; + + BN.prototype.redPow = function redPow (num) { + assert(this.red && !num.red, 'redPow(normalNum)'); + this.red._verify1(this); + return this.red.pow(this, num); + }; + + // Prime numbers with efficient reduction + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + + // Pseudo-Mersenne prime + function MPrime (name, p) { + // P = 2 ^ N - K + this.name = name; + this.p = new BN(p, 16); + this.n = this.p.bitLength(); + this.k = new BN(1).iushln(this.n).isub(this.p); + + this.tmp = this._tmp(); + } + + MPrime.prototype._tmp = function _tmp () { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; + + MPrime.prototype.ireduce = function ireduce (num) { + // Assumes that `num` is less than `P^2` + // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) + var r = num; + var rlen; + + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); + + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + if (r.strip !== undefined) { + // r is BN v4 instance + r.strip(); + } else { + // r is BN v5 instance + r._strip(); + } + } + + return r; + }; + + MPrime.prototype.split = function split (input, out) { + input.iushrn(this.n, 0, out); + }; + + MPrime.prototype.imulK = function imulK (num) { + return num.imul(this.k); + }; + + function K256 () { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + } + inherits(K256, MPrime); + + K256.prototype.split = function split (input, output) { + // 256 = 9 * 26 + 22 + var mask = 0x3fffff; + + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; + } + output.length = outLen; + + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + + // Shift by 9 limbs + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0; + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); + prev = next; + } + prev >>>= 22; + input.words[i - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + + K256.prototype.imulK = function imulK (num) { + // K = 0x1000003d1 = [ 0x40, 0x3d1 ] + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + + // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 0x3d1; + num.words[i] = lo & 0x3ffffff; + lo = w * 0x40 + ((lo / 0x4000000) | 0); + } + + // Fast length reduction + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + + function P224 () { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + } + inherits(P224, MPrime); + + function P192 () { + MPrime.call( + this, + 'p192', + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + } + inherits(P192, MPrime); + + function P25519 () { + // 2 ^ 255 - 19 + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + } + inherits(P25519, MPrime); + + P25519.prototype.imulK = function imulK (num) { + // K = 0x13 + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 0x13 + carry; + var lo = hi & 0x3ffffff; + hi >>>= 26; + + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + + // Exported mostly for testing purposes, use plain name instead + BN._prime = function prime (name) { + // Cached version of prime + if (primes[name]) return primes[name]; + + var prime; + if (name === 'k256') { + prime = new K256(); + } else if (name === 'p224') { + prime = new P224(); + } else if (name === 'p192') { + prime = new P192(); + } else if (name === 'p25519') { + prime = new P25519(); + } else { + throw new Error('Unknown prime ' + name); + } + primes[name] = prime; + + return prime; + }; + + // + // Base reduction engine + // + function Red (m) { + if (typeof m === 'string') { + var prime = BN._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert(m.gtn(1), 'modulus must be greater than 1'); + this.m = m; + this.prime = null; + } + } + + Red.prototype._verify1 = function _verify1 (a) { + assert(a.negative === 0, 'red works only with positives'); + assert(a.red, 'red works only with red numbers'); + }; + + Red.prototype._verify2 = function _verify2 (a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives'); + assert(a.red && a.red === b.red, + 'red works only with red numbers'); + }; + + Red.prototype.imod = function imod (a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this); + return a.umod(this.m)._forceRed(this); + }; + + Red.prototype.neg = function neg (a) { + if (a.isZero()) { + return a.clone(); + } + + return this.m.sub(a)._forceRed(this); + }; + + Red.prototype.add = function add (a, b) { + this._verify2(a, b); + + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.iadd = function iadd (a, b) { + this._verify2(a, b); + + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res; + }; + + Red.prototype.sub = function sub (a, b) { + this._verify2(a, b); + + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.isub = function isub (a, b) { + this._verify2(a, b); + + var res = a.isub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res; + }; + + Red.prototype.shl = function shl (a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); + }; + + Red.prototype.imul = function imul (a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); + }; + + Red.prototype.mul = function mul (a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); + }; + + Red.prototype.isqr = function isqr (a) { + return this.imul(a, a.clone()); + }; + + Red.prototype.sqr = function sqr (a) { + return this.mul(a, a); + }; + + Red.prototype.sqrt = function sqrt (a) { + if (a.isZero()) return a.clone(); + + var mod3 = this.m.andln(3); + assert(mod3 % 2 === 1); + + // Fast case + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2); + return this.pow(a, pow); + } + + // Tonelli-Shanks algorithm (Totally unoptimized and slow) + // + // Find Q and S, that Q * 2 ^ S = (P - 1) + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert(!q.isZero()); + + var one = new BN(1).toRed(this); + var nOne = one.redNeg(); + + // Find quadratic non-residue + // NOTE: Max is such because of generalized Riemann hypothesis. + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN(2 * z * z).toRed(this); + + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); + } + + var c = this.pow(z, q); + var r = this.pow(a, q.addn(1).iushrn(1)); + var t = this.pow(a, q); + var m = s; + while (t.cmp(one) !== 0) { + var tmp = t; + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr(); + } + assert(i < m); + var b = this.pow(c, new BN(1).iushln(m - i - 1)); + + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; + } + + return r; + }; + + Red.prototype.invm = function invm (a) { + var inv = a._invmp(this.m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + + Red.prototype.pow = function pow (a, num) { + if (num.isZero()) return new BN(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); + + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } + + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i]; + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + + return res; + }; + + Red.prototype.convertTo = function convertTo (num) { + var r = num.umod(this.m); + + return r === num ? r.clone() : r; + }; + + Red.prototype.convertFrom = function convertFrom (num) { + var res = num.clone(); + res.red = null; + return res; + }; + + // + // Montgomery method engine + // + + BN.mont = function mont (num) { + return new Mont(num); + }; + + function Mont (m) { + Red.call(this, m); + + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26); + } + + this.r = new BN(1).iushln(this.shift); + this.r2 = this.imod(this.r.sqr()); + this.rinv = this.r._invmp(this.m); + + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); + this.minv = this.minv.umod(this.r); + this.minv = this.r.sub(this.minv); + } + inherits(Mont, Red); + + Mont.prototype.convertTo = function convertTo (num) { + return this.imod(num.ushln(this.shift)); + }; + + Mont.prototype.convertFrom = function convertFrom (num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; + }; + + Mont.prototype.imul = function imul (a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } + + var t = a.imul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.mul = function mul (a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); + + var t = a.mul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.invm = function invm (a) { + // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); + }; +})( false || module, this); + + +}, +79657(module, __unused_webpack_exports, __webpack_require__) { +/* module decorator */ module = __webpack_require__.nmd(module); +(function (module, exports) { + 'use strict'; + + // Utils + function assert (val, msg) { + if (!val) throw new Error(msg || 'Assertion failed'); + } + + // Could use `inherits` module, but don't want to move from single file + // architecture yet. + function inherits (ctor, superCtor) { + ctor.super_ = superCtor; + var TempCtor = function () {}; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + + // BN + + function BN (number, base, endian) { + if (BN.isBN(number)) { + return number; + } + + this.negative = 0; + this.words = null; + this.length = 0; + + // Reduction context + this.red = null; + + if (number !== null) { + if (base === 'le' || base === 'be') { + endian = base; + base = 10; + } + + this._init(number || 0, base || 10, endian || 'be'); + } + } + if (typeof module === 'object') { + module.exports = BN; + } else { + exports.BN = BN; + } + + BN.BN = BN; + BN.wordSize = 26; + + var Buffer; + try { + if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') { + Buffer = window.Buffer; + } else { + Buffer = (__webpack_require__(94950)/* .Buffer */.Buffer); + } + } catch (e) { + } + + BN.isBN = function isBN (num) { + if (num instanceof BN) { + return true; + } + + return num !== null && typeof num === 'object' && + num.constructor.wordSize === BN.wordSize && Array.isArray(num.words); + }; + + BN.max = function max (left, right) { + if (left.cmp(right) > 0) return left; + return right; + }; + + BN.min = function min (left, right) { + if (left.cmp(right) < 0) return left; + return right; + }; + + BN.prototype._init = function init (number, base, endian) { + if (typeof number === 'number') { + return this._initNumber(number, base, endian); + } + + if (typeof number === 'object') { + return this._initArray(number, base, endian); + } + + if (base === 'hex') { + base = 16; + } + assert(base === (base | 0) && base >= 2 && base <= 36); + + number = number.toString().replace(/\s+/g, ''); + var start = 0; + if (number[0] === '-') { + start++; + this.negative = 1; + } + + if (start < number.length) { + if (base === 16) { + this._parseHex(number, start, endian); + } else { + this._parseBase(number, base, start); + if (endian === 'le') { + this._initArray(this.toArray(), base, endian); + } + } + } + }; + + BN.prototype._initNumber = function _initNumber (number, base, endian) { + if (number < 0) { + this.negative = 1; + number = -number; + } + if (number < 0x4000000) { + this.words = [number & 0x3ffffff]; + this.length = 1; + } else if (number < 0x10000000000000) { + this.words = [ + number & 0x3ffffff, + (number / 0x4000000) & 0x3ffffff + ]; + this.length = 2; + } else { + assert(number < 0x20000000000000); // 2 ^ 53 (unsafe) + this.words = [ + number & 0x3ffffff, + (number / 0x4000000) & 0x3ffffff, + 1 + ]; + this.length = 3; + } + + if (endian !== 'le') return; + + // Reverse the bytes + this._initArray(this.toArray(), base, endian); + }; + + BN.prototype._initArray = function _initArray (number, base, endian) { + // Perhaps a Uint8Array + assert(typeof number.length === 'number'); + if (number.length <= 0) { + this.words = [0]; + this.length = 1; + return this; + } + + this.length = Math.ceil(number.length / 3); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + + var j, w; + var off = 0; + if (endian === 'be') { + for (i = number.length - 1, j = 0; i >= 0; i -= 3) { + w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } else if (endian === 'le') { + for (i = 0, j = 0; i < number.length; i += 3) { + w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16); + this.words[j] |= (w << off) & 0x3ffffff; + this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff; + off += 24; + if (off >= 26) { + off -= 26; + j++; + } + } + } + return this._strip(); + }; + + function parseHex4Bits (string, index) { + var c = string.charCodeAt(index); + // '0' - '9' + if (c >= 48 && c <= 57) { + return c - 48; + // 'A' - 'F' + } else if (c >= 65 && c <= 70) { + return c - 55; + // 'a' - 'f' + } else if (c >= 97 && c <= 102) { + return c - 87; + } else { + assert(false, 'Invalid character in ' + string); + } + } + + function parseHexByte (string, lowerBound, index) { + var r = parseHex4Bits(string, index); + if (index - 1 >= lowerBound) { + r |= parseHex4Bits(string, index - 1) << 4; + } + return r; + } + + BN.prototype._parseHex = function _parseHex (number, start, endian) { + // Create possibly bigger array to ensure that it fits the number + this.length = Math.ceil((number.length - start) / 6); + this.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + this.words[i] = 0; + } + + // 24-bits chunks + var off = 0; + var j = 0; + + var w; + if (endian === 'be') { + for (i = number.length - 1; i >= start; i -= 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 0x3ffffff; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } else { + var parseLength = number.length - start; + for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) { + w = parseHexByte(number, start, i) << off; + this.words[j] |= w & 0x3ffffff; + if (off >= 18) { + off -= 18; + j += 1; + this.words[j] |= w >>> 26; + } else { + off += 8; + } + } + } + + this._strip(); + }; + + function parseBase (str, start, end, mul) { + var r = 0; + var b = 0; + var len = Math.min(str.length, end); + for (var i = start; i < len; i++) { + var c = str.charCodeAt(i) - 48; + + r *= mul; + + // 'a' + if (c >= 49) { + b = c - 49 + 0xa; + + // 'A' + } else if (c >= 17) { + b = c - 17 + 0xa; + + // '0' - '9' + } else { + b = c; + } + assert(c >= 0 && b < mul, 'Invalid character'); + r += b; + } + return r; + } + + BN.prototype._parseBase = function _parseBase (number, base, start) { + // Initialize as zero + this.words = [0]; + this.length = 1; + + // Find length of limb in base + for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) { + limbLen++; + } + limbLen--; + limbPow = (limbPow / base) | 0; + + var total = number.length - start; + var mod = total % limbLen; + var end = Math.min(total, total - mod) + start; + + var word = 0; + for (var i = start; i < end; i += limbLen) { + word = parseBase(number, i, i + limbLen, base); + + this.imuln(limbPow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + + if (mod !== 0) { + var pow = 1; + word = parseBase(number, i, number.length, base); + + for (i = 0; i < mod; i++) { + pow *= base; + } + + this.imuln(pow); + if (this.words[0] + word < 0x4000000) { + this.words[0] += word; + } else { + this._iaddn(word); + } + } + + this._strip(); + }; + + BN.prototype.copy = function copy (dest) { + dest.words = new Array(this.length); + for (var i = 0; i < this.length; i++) { + dest.words[i] = this.words[i]; + } + dest.length = this.length; + dest.negative = this.negative; + dest.red = this.red; + }; + + function move (dest, src) { + dest.words = src.words; + dest.length = src.length; + dest.negative = src.negative; + dest.red = src.red; + } + + BN.prototype._move = function _move (dest) { + move(dest, this); + }; + + BN.prototype.clone = function clone () { + var r = new BN(null); + this.copy(r); + return r; + }; + + BN.prototype._expand = function _expand (size) { + while (this.length < size) { + this.words[this.length++] = 0; + } + return this; + }; + + // Remove leading `0` from `this` + BN.prototype._strip = function strip () { + while (this.length > 1 && this.words[this.length - 1] === 0) { + this.length--; + } + return this._normSign(); + }; + + BN.prototype._normSign = function _normSign () { + // -0 = 0 + if (this.length === 1 && this.words[0] === 0) { + this.negative = 0; + } + return this; + }; + + // Check Symbol.for because not everywhere where Symbol defined + // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility + if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') { + try { + BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect; + } catch (e) { + BN.prototype.inspect = inspect; + } + } else { + BN.prototype.inspect = inspect; + } + + function inspect () { + return (this.red ? ''; + } + + /* + + var zeros = []; + var groupSizes = []; + var groupBases = []; + + var s = ''; + var i = -1; + while (++i < BN.wordSize) { + zeros[i] = s; + s += '0'; + } + groupSizes[0] = 0; + groupSizes[1] = 0; + groupBases[0] = 0; + groupBases[1] = 0; + var base = 2 - 1; + while (++base < 36 + 1) { + var groupSize = 0; + var groupBase = 1; + while (groupBase < (1 << BN.wordSize) / base) { + groupBase *= base; + groupSize += 1; + } + groupSizes[base] = groupSize; + groupBases[base] = groupBase; + } + + */ + + var zeros = [ + '', + '0', + '00', + '000', + '0000', + '00000', + '000000', + '0000000', + '00000000', + '000000000', + '0000000000', + '00000000000', + '000000000000', + '0000000000000', + '00000000000000', + '000000000000000', + '0000000000000000', + '00000000000000000', + '000000000000000000', + '0000000000000000000', + '00000000000000000000', + '000000000000000000000', + '0000000000000000000000', + '00000000000000000000000', + '000000000000000000000000', + '0000000000000000000000000' + ]; + + var groupSizes = [ + 0, 0, + 25, 16, 12, 11, 10, 9, 8, + 8, 7, 7, 7, 7, 6, 6, + 6, 6, 6, 6, 6, 5, 5, + 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5 + ]; + + var groupBases = [ + 0, 0, + 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, + 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, + 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, + 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, + 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176 + ]; + + BN.prototype.toString = function toString (base, padding) { + base = base || 10; + padding = padding | 0 || 1; + + var out; + if (base === 16 || base === 'hex') { + out = ''; + var off = 0; + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = this.words[i]; + var word = (((w << off) | carry) & 0xffffff).toString(16); + carry = (w >>> (24 - off)) & 0xffffff; + off += 2; + if (off >= 26) { + off -= 26; + i--; + } + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } + } + if (carry !== 0) { + out = carry.toString(16) + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } + + if (base === (base | 0) && base >= 2 && base <= 36) { + // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base)); + var groupSize = groupSizes[base]; + // var groupBase = Math.pow(base, groupSize); + var groupBase = groupBases[base]; + out = ''; + var c = this.clone(); + c.negative = 0; + while (!c.isZero()) { + var r = c.modrn(groupBase).toString(base); + c = c.idivn(groupBase); + + if (!c.isZero()) { + out = zeros[groupSize - r.length] + r + out; + } else { + out = r + out; + } + } + if (this.isZero()) { + out = '0' + out; + } + while (out.length % padding !== 0) { + out = '0' + out; + } + if (this.negative !== 0) { + out = '-' + out; + } + return out; + } + + assert(false, 'Base should be between 2 and 36'); + }; + + BN.prototype.toNumber = function toNumber () { + var ret = this.words[0]; + if (this.length === 2) { + ret += this.words[1] * 0x4000000; + } else if (this.length === 3 && this.words[2] === 0x01) { + // NOTE: at this stage it is known that the top bit is set + ret += 0x10000000000000 + (this.words[1] * 0x4000000); + } else if (this.length > 2) { + assert(false, 'Number can only safely store up to 53 bits'); + } + return (this.negative !== 0) ? -ret : ret; + }; + + BN.prototype.toJSON = function toJSON () { + return this.toString(16, 2); + }; + + if (Buffer) { + BN.prototype.toBuffer = function toBuffer (endian, length) { + return this.toArrayLike(Buffer, endian, length); + }; + } + + BN.prototype.toArray = function toArray (endian, length) { + return this.toArrayLike(Array, endian, length); + }; + + var allocate = function allocate (ArrayType, size) { + if (ArrayType.allocUnsafe) { + return ArrayType.allocUnsafe(size); + } + return new ArrayType(size); + }; + + BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) { + this._strip(); + + var byteLength = this.byteLength(); + var reqLength = length || Math.max(1, byteLength); + assert(byteLength <= reqLength, 'byte array longer than desired length'); + assert(reqLength > 0, 'Requested array length <= 0'); + + var res = allocate(ArrayType, reqLength); + var postfix = endian === 'le' ? 'LE' : 'BE'; + this['_toArrayLike' + postfix](res, byteLength); + return res; + }; + + BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) { + var position = 0; + var carry = 0; + + for (var i = 0, shift = 0; i < this.length; i++) { + var word = (this.words[i] << shift) | carry; + + res[position++] = word & 0xff; + if (position < res.length) { + res[position++] = (word >> 8) & 0xff; + } + if (position < res.length) { + res[position++] = (word >> 16) & 0xff; + } + + if (shift === 6) { + if (position < res.length) { + res[position++] = (word >> 24) & 0xff; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + + if (position < res.length) { + res[position++] = carry; + + while (position < res.length) { + res[position++] = 0; + } + } + }; + + BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) { + var position = res.length - 1; + var carry = 0; + + for (var i = 0, shift = 0; i < this.length; i++) { + var word = (this.words[i] << shift) | carry; + + res[position--] = word & 0xff; + if (position >= 0) { + res[position--] = (word >> 8) & 0xff; + } + if (position >= 0) { + res[position--] = (word >> 16) & 0xff; + } + + if (shift === 6) { + if (position >= 0) { + res[position--] = (word >> 24) & 0xff; + } + carry = 0; + shift = 0; + } else { + carry = word >>> 24; + shift += 2; + } + } + + if (position >= 0) { + res[position--] = carry; + + while (position >= 0) { + res[position--] = 0; + } + } + }; + + if (Math.clz32) { + BN.prototype._countBits = function _countBits (w) { + return 32 - Math.clz32(w); + }; + } else { + BN.prototype._countBits = function _countBits (w) { + var t = w; + var r = 0; + if (t >= 0x1000) { + r += 13; + t >>>= 13; + } + if (t >= 0x40) { + r += 7; + t >>>= 7; + } + if (t >= 0x8) { + r += 4; + t >>>= 4; + } + if (t >= 0x02) { + r += 2; + t >>>= 2; + } + return r + t; + }; + } + + BN.prototype._zeroBits = function _zeroBits (w) { + // Short-cut + if (w === 0) return 26; + + var t = w; + var r = 0; + if ((t & 0x1fff) === 0) { + r += 13; + t >>>= 13; + } + if ((t & 0x7f) === 0) { + r += 7; + t >>>= 7; + } + if ((t & 0xf) === 0) { + r += 4; + t >>>= 4; + } + if ((t & 0x3) === 0) { + r += 2; + t >>>= 2; + } + if ((t & 0x1) === 0) { + r++; + } + return r; + }; + + // Return number of used bits in a BN + BN.prototype.bitLength = function bitLength () { + var w = this.words[this.length - 1]; + var hi = this._countBits(w); + return (this.length - 1) * 26 + hi; + }; + + function toBitArray (num) { + var w = new Array(num.bitLength()); + + for (var bit = 0; bit < w.length; bit++) { + var off = (bit / 26) | 0; + var wbit = bit % 26; + + w[bit] = (num.words[off] >>> wbit) & 0x01; + } + + return w; + } + + // Number of trailing zero bits + BN.prototype.zeroBits = function zeroBits () { + if (this.isZero()) return 0; + + var r = 0; + for (var i = 0; i < this.length; i++) { + var b = this._zeroBits(this.words[i]); + r += b; + if (b !== 26) break; + } + return r; + }; + + BN.prototype.byteLength = function byteLength () { + return Math.ceil(this.bitLength() / 8); + }; + + BN.prototype.toTwos = function toTwos (width) { + if (this.negative !== 0) { + return this.abs().inotn(width).iaddn(1); + } + return this.clone(); + }; + + BN.prototype.fromTwos = function fromTwos (width) { + if (this.testn(width - 1)) { + return this.notn(width).iaddn(1).ineg(); + } + return this.clone(); + }; + + BN.prototype.isNeg = function isNeg () { + return this.negative !== 0; + }; + + // Return negative clone of `this` + BN.prototype.neg = function neg () { + return this.clone().ineg(); + }; + + BN.prototype.ineg = function ineg () { + if (!this.isZero()) { + this.negative ^= 1; + } + + return this; + }; + + // Or `num` with `this` in-place + BN.prototype.iuor = function iuor (num) { + while (this.length < num.length) { + this.words[this.length++] = 0; + } + + for (var i = 0; i < num.length; i++) { + this.words[i] = this.words[i] | num.words[i]; + } + + return this._strip(); + }; + + BN.prototype.ior = function ior (num) { + assert((this.negative | num.negative) === 0); + return this.iuor(num); + }; + + // Or `num` with `this` + BN.prototype.or = function or (num) { + if (this.length > num.length) return this.clone().ior(num); + return num.clone().ior(this); + }; + + BN.prototype.uor = function uor (num) { + if (this.length > num.length) return this.clone().iuor(num); + return num.clone().iuor(this); + }; + + // And `num` with `this` in-place + BN.prototype.iuand = function iuand (num) { + // b = min-length(num, this) + var b; + if (this.length > num.length) { + b = num; + } else { + b = this; + } + + for (var i = 0; i < b.length; i++) { + this.words[i] = this.words[i] & num.words[i]; + } + + this.length = b.length; + + return this._strip(); + }; + + BN.prototype.iand = function iand (num) { + assert((this.negative | num.negative) === 0); + return this.iuand(num); + }; + + // And `num` with `this` + BN.prototype.and = function and (num) { + if (this.length > num.length) return this.clone().iand(num); + return num.clone().iand(this); + }; + + BN.prototype.uand = function uand (num) { + if (this.length > num.length) return this.clone().iuand(num); + return num.clone().iuand(this); + }; + + // Xor `num` with `this` in-place + BN.prototype.iuxor = function iuxor (num) { + // a.length > b.length + var a; + var b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + for (var i = 0; i < b.length; i++) { + this.words[i] = a.words[i] ^ b.words[i]; + } + + if (this !== a) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + this.length = a.length; + + return this._strip(); + }; + + BN.prototype.ixor = function ixor (num) { + assert((this.negative | num.negative) === 0); + return this.iuxor(num); + }; + + // Xor `num` with `this` + BN.prototype.xor = function xor (num) { + if (this.length > num.length) return this.clone().ixor(num); + return num.clone().ixor(this); + }; + + BN.prototype.uxor = function uxor (num) { + if (this.length > num.length) return this.clone().iuxor(num); + return num.clone().iuxor(this); + }; + + // Not ``this`` with ``width`` bitwidth + BN.prototype.inotn = function inotn (width) { + assert(typeof width === 'number' && width >= 0); + + var bytesNeeded = Math.ceil(width / 26) | 0; + var bitsLeft = width % 26; + + // Extend the buffer with leading zeroes + this._expand(bytesNeeded); + + if (bitsLeft > 0) { + bytesNeeded--; + } + + // Handle complete words + for (var i = 0; i < bytesNeeded; i++) { + this.words[i] = ~this.words[i] & 0x3ffffff; + } + + // Handle the residue + if (bitsLeft > 0) { + this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft)); + } + + // And remove leading zeroes + return this._strip(); + }; + + BN.prototype.notn = function notn (width) { + return this.clone().inotn(width); + }; + + // Set `bit` of `this` + BN.prototype.setn = function setn (bit, val) { + assert(typeof bit === 'number' && bit >= 0); + + var off = (bit / 26) | 0; + var wbit = bit % 26; + + this._expand(off + 1); + + if (val) { + this.words[off] = this.words[off] | (1 << wbit); + } else { + this.words[off] = this.words[off] & ~(1 << wbit); + } + + return this._strip(); + }; + + // Add `num` to `this` in-place + BN.prototype.iadd = function iadd (num) { + var r; + + // negative + positive + if (this.negative !== 0 && num.negative === 0) { + this.negative = 0; + r = this.isub(num); + this.negative ^= 1; + return this._normSign(); + + // positive + negative + } else if (this.negative === 0 && num.negative !== 0) { + num.negative = 0; + r = this.isub(num); + num.negative = 1; + return r._normSign(); + } + + // a.length > b.length + var a, b; + if (this.length > num.length) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) + (b.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + this.words[i] = r & 0x3ffffff; + carry = r >>> 26; + } + + this.length = a.length; + if (carry !== 0) { + this.words[this.length] = carry; + this.length++; + // Copy the rest of the words + } else if (a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + return this; + }; + + // Add `num` to `this` + BN.prototype.add = function add (num) { + var res; + if (num.negative !== 0 && this.negative === 0) { + num.negative = 0; + res = this.sub(num); + num.negative ^= 1; + return res; + } else if (num.negative === 0 && this.negative !== 0) { + this.negative = 0; + res = num.sub(this); + this.negative = 1; + return res; + } + + if (this.length > num.length) return this.clone().iadd(num); + + return num.clone().iadd(this); + }; + + // Subtract `num` from `this` in-place + BN.prototype.isub = function isub (num) { + // this - (-num) = this + num + if (num.negative !== 0) { + num.negative = 0; + var r = this.iadd(num); + num.negative = 1; + return r._normSign(); + + // -this - num = -(this + num) + } else if (this.negative !== 0) { + this.negative = 0; + this.iadd(num); + this.negative = 1; + return this._normSign(); + } + + // At this point both numbers are positive + var cmp = this.cmp(num); + + // Optimization - zeroify + if (cmp === 0) { + this.negative = 0; + this.length = 1; + this.words[0] = 0; + return this; + } + + // a > b + var a, b; + if (cmp > 0) { + a = this; + b = num; + } else { + a = num; + b = this; + } + + var carry = 0; + for (var i = 0; i < b.length; i++) { + r = (a.words[i] | 0) - (b.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + for (; carry !== 0 && i < a.length; i++) { + r = (a.words[i] | 0) + carry; + carry = r >> 26; + this.words[i] = r & 0x3ffffff; + } + + // Copy rest of the words + if (carry === 0 && i < a.length && a !== this) { + for (; i < a.length; i++) { + this.words[i] = a.words[i]; + } + } + + this.length = Math.max(this.length, i); + + if (a !== this) { + this.negative = 1; + } + + return this._strip(); + }; + + // Subtract `num` from `this` + BN.prototype.sub = function sub (num) { + return this.clone().isub(num); + }; + + function smallMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + var len = (self.length + num.length) | 0; + out.length = len; + len = (len - 1) | 0; + + // Peel one iteration (compiler can't do it, because of code complexity) + var a = self.words[0] | 0; + var b = num.words[0] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + var carry = (r / 0x4000000) | 0; + out.words[0] = lo; + + for (var k = 1; k < len; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = carry >>> 26; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = (k - j) | 0; + a = self.words[i] | 0; + b = num.words[j] | 0; + r = a * b + rword; + ncarry += (r / 0x4000000) | 0; + rword = r & 0x3ffffff; + } + out.words[k] = rword | 0; + carry = ncarry | 0; + } + if (carry !== 0) { + out.words[k] = carry | 0; + } else { + out.length--; + } + + return out._strip(); + } + + // TODO(indutny): it may be reasonable to omit it for users who don't need + // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit + // multiplication (like elliptic secp256k1). + var comb10MulTo = function comb10MulTo (self, num, out) { + var a = self.words; + var b = num.words; + var o = out.words; + var c = 0; + var lo; + var mid; + var hi; + var a0 = a[0] | 0; + var al0 = a0 & 0x1fff; + var ah0 = a0 >>> 13; + var a1 = a[1] | 0; + var al1 = a1 & 0x1fff; + var ah1 = a1 >>> 13; + var a2 = a[2] | 0; + var al2 = a2 & 0x1fff; + var ah2 = a2 >>> 13; + var a3 = a[3] | 0; + var al3 = a3 & 0x1fff; + var ah3 = a3 >>> 13; + var a4 = a[4] | 0; + var al4 = a4 & 0x1fff; + var ah4 = a4 >>> 13; + var a5 = a[5] | 0; + var al5 = a5 & 0x1fff; + var ah5 = a5 >>> 13; + var a6 = a[6] | 0; + var al6 = a6 & 0x1fff; + var ah6 = a6 >>> 13; + var a7 = a[7] | 0; + var al7 = a7 & 0x1fff; + var ah7 = a7 >>> 13; + var a8 = a[8] | 0; + var al8 = a8 & 0x1fff; + var ah8 = a8 >>> 13; + var a9 = a[9] | 0; + var al9 = a9 & 0x1fff; + var ah9 = a9 >>> 13; + var b0 = b[0] | 0; + var bl0 = b0 & 0x1fff; + var bh0 = b0 >>> 13; + var b1 = b[1] | 0; + var bl1 = b1 & 0x1fff; + var bh1 = b1 >>> 13; + var b2 = b[2] | 0; + var bl2 = b2 & 0x1fff; + var bh2 = b2 >>> 13; + var b3 = b[3] | 0; + var bl3 = b3 & 0x1fff; + var bh3 = b3 >>> 13; + var b4 = b[4] | 0; + var bl4 = b4 & 0x1fff; + var bh4 = b4 >>> 13; + var b5 = b[5] | 0; + var bl5 = b5 & 0x1fff; + var bh5 = b5 >>> 13; + var b6 = b[6] | 0; + var bl6 = b6 & 0x1fff; + var bh6 = b6 >>> 13; + var b7 = b[7] | 0; + var bl7 = b7 & 0x1fff; + var bh7 = b7 >>> 13; + var b8 = b[8] | 0; + var bl8 = b8 & 0x1fff; + var bh8 = b8 >>> 13; + var b9 = b[9] | 0; + var bl9 = b9 & 0x1fff; + var bh9 = b9 >>> 13; + + out.negative = self.negative ^ num.negative; + out.length = 19; + /* k = 0 */ + lo = Math.imul(al0, bl0); + mid = Math.imul(al0, bh0); + mid = (mid + Math.imul(ah0, bl0)) | 0; + hi = Math.imul(ah0, bh0); + var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0; + w0 &= 0x3ffffff; + /* k = 1 */ + lo = Math.imul(al1, bl0); + mid = Math.imul(al1, bh0); + mid = (mid + Math.imul(ah1, bl0)) | 0; + hi = Math.imul(ah1, bh0); + lo = (lo + Math.imul(al0, bl1)) | 0; + mid = (mid + Math.imul(al0, bh1)) | 0; + mid = (mid + Math.imul(ah0, bl1)) | 0; + hi = (hi + Math.imul(ah0, bh1)) | 0; + var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0; + w1 &= 0x3ffffff; + /* k = 2 */ + lo = Math.imul(al2, bl0); + mid = Math.imul(al2, bh0); + mid = (mid + Math.imul(ah2, bl0)) | 0; + hi = Math.imul(ah2, bh0); + lo = (lo + Math.imul(al1, bl1)) | 0; + mid = (mid + Math.imul(al1, bh1)) | 0; + mid = (mid + Math.imul(ah1, bl1)) | 0; + hi = (hi + Math.imul(ah1, bh1)) | 0; + lo = (lo + Math.imul(al0, bl2)) | 0; + mid = (mid + Math.imul(al0, bh2)) | 0; + mid = (mid + Math.imul(ah0, bl2)) | 0; + hi = (hi + Math.imul(ah0, bh2)) | 0; + var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0; + w2 &= 0x3ffffff; + /* k = 3 */ + lo = Math.imul(al3, bl0); + mid = Math.imul(al3, bh0); + mid = (mid + Math.imul(ah3, bl0)) | 0; + hi = Math.imul(ah3, bh0); + lo = (lo + Math.imul(al2, bl1)) | 0; + mid = (mid + Math.imul(al2, bh1)) | 0; + mid = (mid + Math.imul(ah2, bl1)) | 0; + hi = (hi + Math.imul(ah2, bh1)) | 0; + lo = (lo + Math.imul(al1, bl2)) | 0; + mid = (mid + Math.imul(al1, bh2)) | 0; + mid = (mid + Math.imul(ah1, bl2)) | 0; + hi = (hi + Math.imul(ah1, bh2)) | 0; + lo = (lo + Math.imul(al0, bl3)) | 0; + mid = (mid + Math.imul(al0, bh3)) | 0; + mid = (mid + Math.imul(ah0, bl3)) | 0; + hi = (hi + Math.imul(ah0, bh3)) | 0; + var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0; + w3 &= 0x3ffffff; + /* k = 4 */ + lo = Math.imul(al4, bl0); + mid = Math.imul(al4, bh0); + mid = (mid + Math.imul(ah4, bl0)) | 0; + hi = Math.imul(ah4, bh0); + lo = (lo + Math.imul(al3, bl1)) | 0; + mid = (mid + Math.imul(al3, bh1)) | 0; + mid = (mid + Math.imul(ah3, bl1)) | 0; + hi = (hi + Math.imul(ah3, bh1)) | 0; + lo = (lo + Math.imul(al2, bl2)) | 0; + mid = (mid + Math.imul(al2, bh2)) | 0; + mid = (mid + Math.imul(ah2, bl2)) | 0; + hi = (hi + Math.imul(ah2, bh2)) | 0; + lo = (lo + Math.imul(al1, bl3)) | 0; + mid = (mid + Math.imul(al1, bh3)) | 0; + mid = (mid + Math.imul(ah1, bl3)) | 0; + hi = (hi + Math.imul(ah1, bh3)) | 0; + lo = (lo + Math.imul(al0, bl4)) | 0; + mid = (mid + Math.imul(al0, bh4)) | 0; + mid = (mid + Math.imul(ah0, bl4)) | 0; + hi = (hi + Math.imul(ah0, bh4)) | 0; + var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0; + w4 &= 0x3ffffff; + /* k = 5 */ + lo = Math.imul(al5, bl0); + mid = Math.imul(al5, bh0); + mid = (mid + Math.imul(ah5, bl0)) | 0; + hi = Math.imul(ah5, bh0); + lo = (lo + Math.imul(al4, bl1)) | 0; + mid = (mid + Math.imul(al4, bh1)) | 0; + mid = (mid + Math.imul(ah4, bl1)) | 0; + hi = (hi + Math.imul(ah4, bh1)) | 0; + lo = (lo + Math.imul(al3, bl2)) | 0; + mid = (mid + Math.imul(al3, bh2)) | 0; + mid = (mid + Math.imul(ah3, bl2)) | 0; + hi = (hi + Math.imul(ah3, bh2)) | 0; + lo = (lo + Math.imul(al2, bl3)) | 0; + mid = (mid + Math.imul(al2, bh3)) | 0; + mid = (mid + Math.imul(ah2, bl3)) | 0; + hi = (hi + Math.imul(ah2, bh3)) | 0; + lo = (lo + Math.imul(al1, bl4)) | 0; + mid = (mid + Math.imul(al1, bh4)) | 0; + mid = (mid + Math.imul(ah1, bl4)) | 0; + hi = (hi + Math.imul(ah1, bh4)) | 0; + lo = (lo + Math.imul(al0, bl5)) | 0; + mid = (mid + Math.imul(al0, bh5)) | 0; + mid = (mid + Math.imul(ah0, bl5)) | 0; + hi = (hi + Math.imul(ah0, bh5)) | 0; + var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0; + w5 &= 0x3ffffff; + /* k = 6 */ + lo = Math.imul(al6, bl0); + mid = Math.imul(al6, bh0); + mid = (mid + Math.imul(ah6, bl0)) | 0; + hi = Math.imul(ah6, bh0); + lo = (lo + Math.imul(al5, bl1)) | 0; + mid = (mid + Math.imul(al5, bh1)) | 0; + mid = (mid + Math.imul(ah5, bl1)) | 0; + hi = (hi + Math.imul(ah5, bh1)) | 0; + lo = (lo + Math.imul(al4, bl2)) | 0; + mid = (mid + Math.imul(al4, bh2)) | 0; + mid = (mid + Math.imul(ah4, bl2)) | 0; + hi = (hi + Math.imul(ah4, bh2)) | 0; + lo = (lo + Math.imul(al3, bl3)) | 0; + mid = (mid + Math.imul(al3, bh3)) | 0; + mid = (mid + Math.imul(ah3, bl3)) | 0; + hi = (hi + Math.imul(ah3, bh3)) | 0; + lo = (lo + Math.imul(al2, bl4)) | 0; + mid = (mid + Math.imul(al2, bh4)) | 0; + mid = (mid + Math.imul(ah2, bl4)) | 0; + hi = (hi + Math.imul(ah2, bh4)) | 0; + lo = (lo + Math.imul(al1, bl5)) | 0; + mid = (mid + Math.imul(al1, bh5)) | 0; + mid = (mid + Math.imul(ah1, bl5)) | 0; + hi = (hi + Math.imul(ah1, bh5)) | 0; + lo = (lo + Math.imul(al0, bl6)) | 0; + mid = (mid + Math.imul(al0, bh6)) | 0; + mid = (mid + Math.imul(ah0, bl6)) | 0; + hi = (hi + Math.imul(ah0, bh6)) | 0; + var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0; + w6 &= 0x3ffffff; + /* k = 7 */ + lo = Math.imul(al7, bl0); + mid = Math.imul(al7, bh0); + mid = (mid + Math.imul(ah7, bl0)) | 0; + hi = Math.imul(ah7, bh0); + lo = (lo + Math.imul(al6, bl1)) | 0; + mid = (mid + Math.imul(al6, bh1)) | 0; + mid = (mid + Math.imul(ah6, bl1)) | 0; + hi = (hi + Math.imul(ah6, bh1)) | 0; + lo = (lo + Math.imul(al5, bl2)) | 0; + mid = (mid + Math.imul(al5, bh2)) | 0; + mid = (mid + Math.imul(ah5, bl2)) | 0; + hi = (hi + Math.imul(ah5, bh2)) | 0; + lo = (lo + Math.imul(al4, bl3)) | 0; + mid = (mid + Math.imul(al4, bh3)) | 0; + mid = (mid + Math.imul(ah4, bl3)) | 0; + hi = (hi + Math.imul(ah4, bh3)) | 0; + lo = (lo + Math.imul(al3, bl4)) | 0; + mid = (mid + Math.imul(al3, bh4)) | 0; + mid = (mid + Math.imul(ah3, bl4)) | 0; + hi = (hi + Math.imul(ah3, bh4)) | 0; + lo = (lo + Math.imul(al2, bl5)) | 0; + mid = (mid + Math.imul(al2, bh5)) | 0; + mid = (mid + Math.imul(ah2, bl5)) | 0; + hi = (hi + Math.imul(ah2, bh5)) | 0; + lo = (lo + Math.imul(al1, bl6)) | 0; + mid = (mid + Math.imul(al1, bh6)) | 0; + mid = (mid + Math.imul(ah1, bl6)) | 0; + hi = (hi + Math.imul(ah1, bh6)) | 0; + lo = (lo + Math.imul(al0, bl7)) | 0; + mid = (mid + Math.imul(al0, bh7)) | 0; + mid = (mid + Math.imul(ah0, bl7)) | 0; + hi = (hi + Math.imul(ah0, bh7)) | 0; + var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0; + w7 &= 0x3ffffff; + /* k = 8 */ + lo = Math.imul(al8, bl0); + mid = Math.imul(al8, bh0); + mid = (mid + Math.imul(ah8, bl0)) | 0; + hi = Math.imul(ah8, bh0); + lo = (lo + Math.imul(al7, bl1)) | 0; + mid = (mid + Math.imul(al7, bh1)) | 0; + mid = (mid + Math.imul(ah7, bl1)) | 0; + hi = (hi + Math.imul(ah7, bh1)) | 0; + lo = (lo + Math.imul(al6, bl2)) | 0; + mid = (mid + Math.imul(al6, bh2)) | 0; + mid = (mid + Math.imul(ah6, bl2)) | 0; + hi = (hi + Math.imul(ah6, bh2)) | 0; + lo = (lo + Math.imul(al5, bl3)) | 0; + mid = (mid + Math.imul(al5, bh3)) | 0; + mid = (mid + Math.imul(ah5, bl3)) | 0; + hi = (hi + Math.imul(ah5, bh3)) | 0; + lo = (lo + Math.imul(al4, bl4)) | 0; + mid = (mid + Math.imul(al4, bh4)) | 0; + mid = (mid + Math.imul(ah4, bl4)) | 0; + hi = (hi + Math.imul(ah4, bh4)) | 0; + lo = (lo + Math.imul(al3, bl5)) | 0; + mid = (mid + Math.imul(al3, bh5)) | 0; + mid = (mid + Math.imul(ah3, bl5)) | 0; + hi = (hi + Math.imul(ah3, bh5)) | 0; + lo = (lo + Math.imul(al2, bl6)) | 0; + mid = (mid + Math.imul(al2, bh6)) | 0; + mid = (mid + Math.imul(ah2, bl6)) | 0; + hi = (hi + Math.imul(ah2, bh6)) | 0; + lo = (lo + Math.imul(al1, bl7)) | 0; + mid = (mid + Math.imul(al1, bh7)) | 0; + mid = (mid + Math.imul(ah1, bl7)) | 0; + hi = (hi + Math.imul(ah1, bh7)) | 0; + lo = (lo + Math.imul(al0, bl8)) | 0; + mid = (mid + Math.imul(al0, bh8)) | 0; + mid = (mid + Math.imul(ah0, bl8)) | 0; + hi = (hi + Math.imul(ah0, bh8)) | 0; + var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0; + w8 &= 0x3ffffff; + /* k = 9 */ + lo = Math.imul(al9, bl0); + mid = Math.imul(al9, bh0); + mid = (mid + Math.imul(ah9, bl0)) | 0; + hi = Math.imul(ah9, bh0); + lo = (lo + Math.imul(al8, bl1)) | 0; + mid = (mid + Math.imul(al8, bh1)) | 0; + mid = (mid + Math.imul(ah8, bl1)) | 0; + hi = (hi + Math.imul(ah8, bh1)) | 0; + lo = (lo + Math.imul(al7, bl2)) | 0; + mid = (mid + Math.imul(al7, bh2)) | 0; + mid = (mid + Math.imul(ah7, bl2)) | 0; + hi = (hi + Math.imul(ah7, bh2)) | 0; + lo = (lo + Math.imul(al6, bl3)) | 0; + mid = (mid + Math.imul(al6, bh3)) | 0; + mid = (mid + Math.imul(ah6, bl3)) | 0; + hi = (hi + Math.imul(ah6, bh3)) | 0; + lo = (lo + Math.imul(al5, bl4)) | 0; + mid = (mid + Math.imul(al5, bh4)) | 0; + mid = (mid + Math.imul(ah5, bl4)) | 0; + hi = (hi + Math.imul(ah5, bh4)) | 0; + lo = (lo + Math.imul(al4, bl5)) | 0; + mid = (mid + Math.imul(al4, bh5)) | 0; + mid = (mid + Math.imul(ah4, bl5)) | 0; + hi = (hi + Math.imul(ah4, bh5)) | 0; + lo = (lo + Math.imul(al3, bl6)) | 0; + mid = (mid + Math.imul(al3, bh6)) | 0; + mid = (mid + Math.imul(ah3, bl6)) | 0; + hi = (hi + Math.imul(ah3, bh6)) | 0; + lo = (lo + Math.imul(al2, bl7)) | 0; + mid = (mid + Math.imul(al2, bh7)) | 0; + mid = (mid + Math.imul(ah2, bl7)) | 0; + hi = (hi + Math.imul(ah2, bh7)) | 0; + lo = (lo + Math.imul(al1, bl8)) | 0; + mid = (mid + Math.imul(al1, bh8)) | 0; + mid = (mid + Math.imul(ah1, bl8)) | 0; + hi = (hi + Math.imul(ah1, bh8)) | 0; + lo = (lo + Math.imul(al0, bl9)) | 0; + mid = (mid + Math.imul(al0, bh9)) | 0; + mid = (mid + Math.imul(ah0, bl9)) | 0; + hi = (hi + Math.imul(ah0, bh9)) | 0; + var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0; + w9 &= 0x3ffffff; + /* k = 10 */ + lo = Math.imul(al9, bl1); + mid = Math.imul(al9, bh1); + mid = (mid + Math.imul(ah9, bl1)) | 0; + hi = Math.imul(ah9, bh1); + lo = (lo + Math.imul(al8, bl2)) | 0; + mid = (mid + Math.imul(al8, bh2)) | 0; + mid = (mid + Math.imul(ah8, bl2)) | 0; + hi = (hi + Math.imul(ah8, bh2)) | 0; + lo = (lo + Math.imul(al7, bl3)) | 0; + mid = (mid + Math.imul(al7, bh3)) | 0; + mid = (mid + Math.imul(ah7, bl3)) | 0; + hi = (hi + Math.imul(ah7, bh3)) | 0; + lo = (lo + Math.imul(al6, bl4)) | 0; + mid = (mid + Math.imul(al6, bh4)) | 0; + mid = (mid + Math.imul(ah6, bl4)) | 0; + hi = (hi + Math.imul(ah6, bh4)) | 0; + lo = (lo + Math.imul(al5, bl5)) | 0; + mid = (mid + Math.imul(al5, bh5)) | 0; + mid = (mid + Math.imul(ah5, bl5)) | 0; + hi = (hi + Math.imul(ah5, bh5)) | 0; + lo = (lo + Math.imul(al4, bl6)) | 0; + mid = (mid + Math.imul(al4, bh6)) | 0; + mid = (mid + Math.imul(ah4, bl6)) | 0; + hi = (hi + Math.imul(ah4, bh6)) | 0; + lo = (lo + Math.imul(al3, bl7)) | 0; + mid = (mid + Math.imul(al3, bh7)) | 0; + mid = (mid + Math.imul(ah3, bl7)) | 0; + hi = (hi + Math.imul(ah3, bh7)) | 0; + lo = (lo + Math.imul(al2, bl8)) | 0; + mid = (mid + Math.imul(al2, bh8)) | 0; + mid = (mid + Math.imul(ah2, bl8)) | 0; + hi = (hi + Math.imul(ah2, bh8)) | 0; + lo = (lo + Math.imul(al1, bl9)) | 0; + mid = (mid + Math.imul(al1, bh9)) | 0; + mid = (mid + Math.imul(ah1, bl9)) | 0; + hi = (hi + Math.imul(ah1, bh9)) | 0; + var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0; + w10 &= 0x3ffffff; + /* k = 11 */ + lo = Math.imul(al9, bl2); + mid = Math.imul(al9, bh2); + mid = (mid + Math.imul(ah9, bl2)) | 0; + hi = Math.imul(ah9, bh2); + lo = (lo + Math.imul(al8, bl3)) | 0; + mid = (mid + Math.imul(al8, bh3)) | 0; + mid = (mid + Math.imul(ah8, bl3)) | 0; + hi = (hi + Math.imul(ah8, bh3)) | 0; + lo = (lo + Math.imul(al7, bl4)) | 0; + mid = (mid + Math.imul(al7, bh4)) | 0; + mid = (mid + Math.imul(ah7, bl4)) | 0; + hi = (hi + Math.imul(ah7, bh4)) | 0; + lo = (lo + Math.imul(al6, bl5)) | 0; + mid = (mid + Math.imul(al6, bh5)) | 0; + mid = (mid + Math.imul(ah6, bl5)) | 0; + hi = (hi + Math.imul(ah6, bh5)) | 0; + lo = (lo + Math.imul(al5, bl6)) | 0; + mid = (mid + Math.imul(al5, bh6)) | 0; + mid = (mid + Math.imul(ah5, bl6)) | 0; + hi = (hi + Math.imul(ah5, bh6)) | 0; + lo = (lo + Math.imul(al4, bl7)) | 0; + mid = (mid + Math.imul(al4, bh7)) | 0; + mid = (mid + Math.imul(ah4, bl7)) | 0; + hi = (hi + Math.imul(ah4, bh7)) | 0; + lo = (lo + Math.imul(al3, bl8)) | 0; + mid = (mid + Math.imul(al3, bh8)) | 0; + mid = (mid + Math.imul(ah3, bl8)) | 0; + hi = (hi + Math.imul(ah3, bh8)) | 0; + lo = (lo + Math.imul(al2, bl9)) | 0; + mid = (mid + Math.imul(al2, bh9)) | 0; + mid = (mid + Math.imul(ah2, bl9)) | 0; + hi = (hi + Math.imul(ah2, bh9)) | 0; + var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0; + w11 &= 0x3ffffff; + /* k = 12 */ + lo = Math.imul(al9, bl3); + mid = Math.imul(al9, bh3); + mid = (mid + Math.imul(ah9, bl3)) | 0; + hi = Math.imul(ah9, bh3); + lo = (lo + Math.imul(al8, bl4)) | 0; + mid = (mid + Math.imul(al8, bh4)) | 0; + mid = (mid + Math.imul(ah8, bl4)) | 0; + hi = (hi + Math.imul(ah8, bh4)) | 0; + lo = (lo + Math.imul(al7, bl5)) | 0; + mid = (mid + Math.imul(al7, bh5)) | 0; + mid = (mid + Math.imul(ah7, bl5)) | 0; + hi = (hi + Math.imul(ah7, bh5)) | 0; + lo = (lo + Math.imul(al6, bl6)) | 0; + mid = (mid + Math.imul(al6, bh6)) | 0; + mid = (mid + Math.imul(ah6, bl6)) | 0; + hi = (hi + Math.imul(ah6, bh6)) | 0; + lo = (lo + Math.imul(al5, bl7)) | 0; + mid = (mid + Math.imul(al5, bh7)) | 0; + mid = (mid + Math.imul(ah5, bl7)) | 0; + hi = (hi + Math.imul(ah5, bh7)) | 0; + lo = (lo + Math.imul(al4, bl8)) | 0; + mid = (mid + Math.imul(al4, bh8)) | 0; + mid = (mid + Math.imul(ah4, bl8)) | 0; + hi = (hi + Math.imul(ah4, bh8)) | 0; + lo = (lo + Math.imul(al3, bl9)) | 0; + mid = (mid + Math.imul(al3, bh9)) | 0; + mid = (mid + Math.imul(ah3, bl9)) | 0; + hi = (hi + Math.imul(ah3, bh9)) | 0; + var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0; + w12 &= 0x3ffffff; + /* k = 13 */ + lo = Math.imul(al9, bl4); + mid = Math.imul(al9, bh4); + mid = (mid + Math.imul(ah9, bl4)) | 0; + hi = Math.imul(ah9, bh4); + lo = (lo + Math.imul(al8, bl5)) | 0; + mid = (mid + Math.imul(al8, bh5)) | 0; + mid = (mid + Math.imul(ah8, bl5)) | 0; + hi = (hi + Math.imul(ah8, bh5)) | 0; + lo = (lo + Math.imul(al7, bl6)) | 0; + mid = (mid + Math.imul(al7, bh6)) | 0; + mid = (mid + Math.imul(ah7, bl6)) | 0; + hi = (hi + Math.imul(ah7, bh6)) | 0; + lo = (lo + Math.imul(al6, bl7)) | 0; + mid = (mid + Math.imul(al6, bh7)) | 0; + mid = (mid + Math.imul(ah6, bl7)) | 0; + hi = (hi + Math.imul(ah6, bh7)) | 0; + lo = (lo + Math.imul(al5, bl8)) | 0; + mid = (mid + Math.imul(al5, bh8)) | 0; + mid = (mid + Math.imul(ah5, bl8)) | 0; + hi = (hi + Math.imul(ah5, bh8)) | 0; + lo = (lo + Math.imul(al4, bl9)) | 0; + mid = (mid + Math.imul(al4, bh9)) | 0; + mid = (mid + Math.imul(ah4, bl9)) | 0; + hi = (hi + Math.imul(ah4, bh9)) | 0; + var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0; + w13 &= 0x3ffffff; + /* k = 14 */ + lo = Math.imul(al9, bl5); + mid = Math.imul(al9, bh5); + mid = (mid + Math.imul(ah9, bl5)) | 0; + hi = Math.imul(ah9, bh5); + lo = (lo + Math.imul(al8, bl6)) | 0; + mid = (mid + Math.imul(al8, bh6)) | 0; + mid = (mid + Math.imul(ah8, bl6)) | 0; + hi = (hi + Math.imul(ah8, bh6)) | 0; + lo = (lo + Math.imul(al7, bl7)) | 0; + mid = (mid + Math.imul(al7, bh7)) | 0; + mid = (mid + Math.imul(ah7, bl7)) | 0; + hi = (hi + Math.imul(ah7, bh7)) | 0; + lo = (lo + Math.imul(al6, bl8)) | 0; + mid = (mid + Math.imul(al6, bh8)) | 0; + mid = (mid + Math.imul(ah6, bl8)) | 0; + hi = (hi + Math.imul(ah6, bh8)) | 0; + lo = (lo + Math.imul(al5, bl9)) | 0; + mid = (mid + Math.imul(al5, bh9)) | 0; + mid = (mid + Math.imul(ah5, bl9)) | 0; + hi = (hi + Math.imul(ah5, bh9)) | 0; + var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0; + w14 &= 0x3ffffff; + /* k = 15 */ + lo = Math.imul(al9, bl6); + mid = Math.imul(al9, bh6); + mid = (mid + Math.imul(ah9, bl6)) | 0; + hi = Math.imul(ah9, bh6); + lo = (lo + Math.imul(al8, bl7)) | 0; + mid = (mid + Math.imul(al8, bh7)) | 0; + mid = (mid + Math.imul(ah8, bl7)) | 0; + hi = (hi + Math.imul(ah8, bh7)) | 0; + lo = (lo + Math.imul(al7, bl8)) | 0; + mid = (mid + Math.imul(al7, bh8)) | 0; + mid = (mid + Math.imul(ah7, bl8)) | 0; + hi = (hi + Math.imul(ah7, bh8)) | 0; + lo = (lo + Math.imul(al6, bl9)) | 0; + mid = (mid + Math.imul(al6, bh9)) | 0; + mid = (mid + Math.imul(ah6, bl9)) | 0; + hi = (hi + Math.imul(ah6, bh9)) | 0; + var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0; + w15 &= 0x3ffffff; + /* k = 16 */ + lo = Math.imul(al9, bl7); + mid = Math.imul(al9, bh7); + mid = (mid + Math.imul(ah9, bl7)) | 0; + hi = Math.imul(ah9, bh7); + lo = (lo + Math.imul(al8, bl8)) | 0; + mid = (mid + Math.imul(al8, bh8)) | 0; + mid = (mid + Math.imul(ah8, bl8)) | 0; + hi = (hi + Math.imul(ah8, bh8)) | 0; + lo = (lo + Math.imul(al7, bl9)) | 0; + mid = (mid + Math.imul(al7, bh9)) | 0; + mid = (mid + Math.imul(ah7, bl9)) | 0; + hi = (hi + Math.imul(ah7, bh9)) | 0; + var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0; + w16 &= 0x3ffffff; + /* k = 17 */ + lo = Math.imul(al9, bl8); + mid = Math.imul(al9, bh8); + mid = (mid + Math.imul(ah9, bl8)) | 0; + hi = Math.imul(ah9, bh8); + lo = (lo + Math.imul(al8, bl9)) | 0; + mid = (mid + Math.imul(al8, bh9)) | 0; + mid = (mid + Math.imul(ah8, bl9)) | 0; + hi = (hi + Math.imul(ah8, bh9)) | 0; + var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0; + w17 &= 0x3ffffff; + /* k = 18 */ + lo = Math.imul(al9, bl9); + mid = Math.imul(al9, bh9); + mid = (mid + Math.imul(ah9, bl9)) | 0; + hi = Math.imul(ah9, bh9); + var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0; + c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0; + w18 &= 0x3ffffff; + o[0] = w0; + o[1] = w1; + o[2] = w2; + o[3] = w3; + o[4] = w4; + o[5] = w5; + o[6] = w6; + o[7] = w7; + o[8] = w8; + o[9] = w9; + o[10] = w10; + o[11] = w11; + o[12] = w12; + o[13] = w13; + o[14] = w14; + o[15] = w15; + o[16] = w16; + o[17] = w17; + o[18] = w18; + if (c !== 0) { + o[19] = c; + out.length++; + } + return out; + }; + + // Polyfill comb + if (!Math.imul) { + comb10MulTo = smallMulTo; + } + + function bigMulTo (self, num, out) { + out.negative = num.negative ^ self.negative; + out.length = self.length + num.length; + + var carry = 0; + var hncarry = 0; + for (var k = 0; k < out.length - 1; k++) { + // Sum all words with the same `i + j = k` and accumulate `ncarry`, + // note that ncarry could be >= 0x3ffffff + var ncarry = hncarry; + hncarry = 0; + var rword = carry & 0x3ffffff; + var maxJ = Math.min(k, num.length - 1); + for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) { + var i = k - j; + var a = self.words[i] | 0; + var b = num.words[j] | 0; + var r = a * b; + + var lo = r & 0x3ffffff; + ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0; + lo = (lo + rword) | 0; + rword = lo & 0x3ffffff; + ncarry = (ncarry + (lo >>> 26)) | 0; + + hncarry += ncarry >>> 26; + ncarry &= 0x3ffffff; + } + out.words[k] = rword; + carry = ncarry; + ncarry = hncarry; + } + if (carry !== 0) { + out.words[k] = carry; + } else { + out.length--; + } + + return out._strip(); + } + + function jumboMulTo (self, num, out) { + // Temporary disable, see https://github.com/indutny/bn.js/issues/211 + // var fftm = new FFTM(); + // return fftm.mulp(self, num, out); + return bigMulTo(self, num, out); + } + + BN.prototype.mulTo = function mulTo (num, out) { + var res; + var len = this.length + num.length; + if (this.length === 10 && num.length === 10) { + res = comb10MulTo(this, num, out); + } else if (len < 63) { + res = smallMulTo(this, num, out); + } else if (len < 1024) { + res = bigMulTo(this, num, out); + } else { + res = jumboMulTo(this, num, out); + } + + return res; + }; + + // Cooley-Tukey algorithm for FFT + // slightly revisited to rely on looping instead of recursion + + function FFTM (x, y) { + this.x = x; + this.y = y; + } + + FFTM.prototype.makeRBT = function makeRBT (N) { + var t = new Array(N); + var l = BN.prototype._countBits(N) - 1; + for (var i = 0; i < N; i++) { + t[i] = this.revBin(i, l, N); + } + + return t; + }; + + // Returns binary-reversed representation of `x` + FFTM.prototype.revBin = function revBin (x, l, N) { + if (x === 0 || x === N - 1) return x; + + var rb = 0; + for (var i = 0; i < l; i++) { + rb |= (x & 1) << (l - i - 1); + x >>= 1; + } + + return rb; + }; + + // Performs "tweedling" phase, therefore 'emulating' + // behaviour of the recursive algorithm + FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) { + for (var i = 0; i < N; i++) { + rtws[i] = rws[rbt[i]]; + itws[i] = iws[rbt[i]]; + } + }; + + FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) { + this.permute(rbt, rws, iws, rtws, itws, N); + + for (var s = 1; s < N; s <<= 1) { + var l = s << 1; + + var rtwdf = Math.cos(2 * Math.PI / l); + var itwdf = Math.sin(2 * Math.PI / l); + + for (var p = 0; p < N; p += l) { + var rtwdf_ = rtwdf; + var itwdf_ = itwdf; + + for (var j = 0; j < s; j++) { + var re = rtws[p + j]; + var ie = itws[p + j]; + + var ro = rtws[p + j + s]; + var io = itws[p + j + s]; + + var rx = rtwdf_ * ro - itwdf_ * io; + + io = rtwdf_ * io + itwdf_ * ro; + ro = rx; + + rtws[p + j] = re + ro; + itws[p + j] = ie + io; + + rtws[p + j + s] = re - ro; + itws[p + j + s] = ie - io; + + /* jshint maxdepth : false */ + if (j !== l) { + rx = rtwdf * rtwdf_ - itwdf * itwdf_; + + itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; + rtwdf_ = rx; + } + } + } + } + }; + + FFTM.prototype.guessLen13b = function guessLen13b (n, m) { + var N = Math.max(m, n) | 1; + var odd = N & 1; + var i = 0; + for (N = N / 2 | 0; N; N = N >>> 1) { + i++; + } + + return 1 << i + 1 + odd; + }; + + FFTM.prototype.conjugate = function conjugate (rws, iws, N) { + if (N <= 1) return; + + for (var i = 0; i < N / 2; i++) { + var t = rws[i]; + + rws[i] = rws[N - i - 1]; + rws[N - i - 1] = t; + + t = iws[i]; + + iws[i] = -iws[N - i - 1]; + iws[N - i - 1] = -t; + } + }; + + FFTM.prototype.normalize13b = function normalize13b (ws, N) { + var carry = 0; + for (var i = 0; i < N / 2; i++) { + var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + + Math.round(ws[2 * i] / N) + + carry; + + ws[i] = w & 0x3ffffff; + + if (w < 0x4000000) { + carry = 0; + } else { + carry = w / 0x4000000 | 0; + } + } + + return ws; + }; + + FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) { + var carry = 0; + for (var i = 0; i < len; i++) { + carry = carry + (ws[i] | 0); + + rws[2 * i] = carry & 0x1fff; carry = carry >>> 13; + rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13; + } + + // Pad with zeroes + for (i = 2 * len; i < N; ++i) { + rws[i] = 0; + } + + assert(carry === 0); + assert((carry & ~0x1fff) === 0); + }; + + FFTM.prototype.stub = function stub (N) { + var ph = new Array(N); + for (var i = 0; i < N; i++) { + ph[i] = 0; + } + + return ph; + }; + + FFTM.prototype.mulp = function mulp (x, y, out) { + var N = 2 * this.guessLen13b(x.length, y.length); + + var rbt = this.makeRBT(N); + + var _ = this.stub(N); + + var rws = new Array(N); + var rwst = new Array(N); + var iwst = new Array(N); + + var nrws = new Array(N); + var nrwst = new Array(N); + var niwst = new Array(N); + + var rmws = out.words; + rmws.length = N; + + this.convert13b(x.words, x.length, rws, N); + this.convert13b(y.words, y.length, nrws, N); + + this.transform(rws, _, rwst, iwst, N, rbt); + this.transform(nrws, _, nrwst, niwst, N, rbt); + + for (var i = 0; i < N; i++) { + var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; + iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; + rwst[i] = rx; + } + + this.conjugate(rwst, iwst, N); + this.transform(rwst, iwst, rmws, _, N, rbt); + this.conjugate(rmws, _, N); + this.normalize13b(rmws, N); + + out.negative = x.negative ^ y.negative; + out.length = x.length + y.length; + return out._strip(); + }; + + // Multiply `this` by `num` + BN.prototype.mul = function mul (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return this.mulTo(num, out); + }; + + // Multiply employing FFT + BN.prototype.mulf = function mulf (num) { + var out = new BN(null); + out.words = new Array(this.length + num.length); + return jumboMulTo(this, num, out); + }; + + // In-place Multiplication + BN.prototype.imul = function imul (num) { + return this.clone().mulTo(num, this); + }; + + BN.prototype.imuln = function imuln (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(typeof num === 'number'); + assert(num < 0x4000000); + + // Carry + var carry = 0; + for (var i = 0; i < this.length; i++) { + var w = (this.words[i] | 0) * num; + var lo = (w & 0x3ffffff) + (carry & 0x3ffffff); + carry >>= 26; + carry += (w / 0x4000000) | 0; + // NOTE: lo is 27bit maximum + carry += lo >>> 26; + this.words[i] = lo & 0x3ffffff; + } + + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + + return isNegNum ? this.ineg() : this; + }; + + BN.prototype.muln = function muln (num) { + return this.clone().imuln(num); + }; + + // `this` * `this` + BN.prototype.sqr = function sqr () { + return this.mul(this); + }; + + // `this` * `this` in-place + BN.prototype.isqr = function isqr () { + return this.imul(this.clone()); + }; + + // Math.pow(`this`, `num`) + BN.prototype.pow = function pow (num) { + var w = toBitArray(num); + if (w.length === 0) return new BN(1); + + // Skip leading zeroes + var res = this; + for (var i = 0; i < w.length; i++, res = res.sqr()) { + if (w[i] !== 0) break; + } + + if (++i < w.length) { + for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { + if (w[i] === 0) continue; + + res = res.mul(q); + } + } + + return res; + }; + + // Shift-left in-place + BN.prototype.iushln = function iushln (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r); + var i; + + if (r !== 0) { + var carry = 0; + + for (i = 0; i < this.length; i++) { + var newCarry = this.words[i] & carryMask; + var c = ((this.words[i] | 0) - newCarry) << r; + this.words[i] = c | carry; + carry = newCarry >>> (26 - r); + } + + if (carry) { + this.words[i] = carry; + this.length++; + } + } + + if (s !== 0) { + for (i = this.length - 1; i >= 0; i--) { + this.words[i + s] = this.words[i]; + } + + for (i = 0; i < s; i++) { + this.words[i] = 0; + } + + this.length += s; + } + + return this._strip(); + }; + + BN.prototype.ishln = function ishln (bits) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushln(bits); + }; + + // Shift-right in-place + // NOTE: `hint` is a lowest bit before trailing zeroes + // NOTE: if `extended` is present - it will be filled with destroyed bits + BN.prototype.iushrn = function iushrn (bits, hint, extended) { + assert(typeof bits === 'number' && bits >= 0); + var h; + if (hint) { + h = (hint - (hint % 26)) / 26; + } else { + h = 0; + } + + var r = bits % 26; + var s = Math.min((bits - r) / 26, this.length); + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + var maskedWords = extended; + + h -= s; + h = Math.max(0, h); + + // Extended mode, copy masked part + if (maskedWords) { + for (var i = 0; i < s; i++) { + maskedWords.words[i] = this.words[i]; + } + maskedWords.length = s; + } + + if (s === 0) { + // No-op, we should not move anything at all + } else if (this.length > s) { + this.length -= s; + for (i = 0; i < this.length; i++) { + this.words[i] = this.words[i + s]; + } + } else { + this.words[0] = 0; + this.length = 1; + } + + var carry = 0; + for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { + var word = this.words[i] | 0; + this.words[i] = (carry << (26 - r)) | (word >>> r); + carry = word & mask; + } + + // Push carried bits as a mask + if (maskedWords && carry !== 0) { + maskedWords.words[maskedWords.length++] = carry; + } + + if (this.length === 0) { + this.words[0] = 0; + this.length = 1; + } + + return this._strip(); + }; + + BN.prototype.ishrn = function ishrn (bits, hint, extended) { + // TODO(indutny): implement me + assert(this.negative === 0); + return this.iushrn(bits, hint, extended); + }; + + // Shift-left + BN.prototype.shln = function shln (bits) { + return this.clone().ishln(bits); + }; + + BN.prototype.ushln = function ushln (bits) { + return this.clone().iushln(bits); + }; + + // Shift-right + BN.prototype.shrn = function shrn (bits) { + return this.clone().ishrn(bits); + }; + + BN.prototype.ushrn = function ushrn (bits) { + return this.clone().iushrn(bits); + }; + + // Test if n bit is set + BN.prototype.testn = function testn (bit) { + assert(typeof bit === 'number' && bit >= 0); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) return false; + + // Check bit and return + var w = this.words[s]; + + return !!(w & q); + }; + + // Return only lowers bits of number (in-place) + BN.prototype.imaskn = function imaskn (bits) { + assert(typeof bits === 'number' && bits >= 0); + var r = bits % 26; + var s = (bits - r) / 26; + + assert(this.negative === 0, 'imaskn works only with positive numbers'); + + if (this.length <= s) { + return this; + } + + if (r !== 0) { + s++; + } + this.length = Math.min(s, this.length); + + if (r !== 0) { + var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r); + this.words[this.length - 1] &= mask; + } + + return this._strip(); + }; + + // Return only lowers bits of number + BN.prototype.maskn = function maskn (bits) { + return this.clone().imaskn(bits); + }; + + // Add plain number `num` to `this` + BN.prototype.iaddn = function iaddn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.isubn(-num); + + // Possible sign change + if (this.negative !== 0) { + if (this.length === 1 && (this.words[0] | 0) <= num) { + this.words[0] = num - (this.words[0] | 0); + this.negative = 0; + return this; + } + + this.negative = 0; + this.isubn(num); + this.negative = 1; + return this; + } + + // Add without checks + return this._iaddn(num); + }; + + BN.prototype._iaddn = function _iaddn (num) { + this.words[0] += num; + + // Carry + for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) { + this.words[i] -= 0x4000000; + if (i === this.length - 1) { + this.words[i + 1] = 1; + } else { + this.words[i + 1]++; + } + } + this.length = Math.max(this.length, i + 1); + + return this; + }; + + // Subtract plain number `num` from `this` + BN.prototype.isubn = function isubn (num) { + assert(typeof num === 'number'); + assert(num < 0x4000000); + if (num < 0) return this.iaddn(-num); + + if (this.negative !== 0) { + this.negative = 0; + this.iaddn(num); + this.negative = 1; + return this; + } + + this.words[0] -= num; + + if (this.length === 1 && this.words[0] < 0) { + this.words[0] = -this.words[0]; + this.negative = 1; + } else { + // Carry + for (var i = 0; i < this.length && this.words[i] < 0; i++) { + this.words[i] += 0x4000000; + this.words[i + 1] -= 1; + } + } + + return this._strip(); + }; + + BN.prototype.addn = function addn (num) { + return this.clone().iaddn(num); + }; + + BN.prototype.subn = function subn (num) { + return this.clone().isubn(num); + }; + + BN.prototype.iabs = function iabs () { + this.negative = 0; + + return this; + }; + + BN.prototype.abs = function abs () { + return this.clone().iabs(); + }; + + BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) { + var len = num.length + shift; + var i; + + this._expand(len); + + var w; + var carry = 0; + for (i = 0; i < num.length; i++) { + w = (this.words[i + shift] | 0) + carry; + var right = (num.words[i] | 0) * mul; + w -= right & 0x3ffffff; + carry = (w >> 26) - ((right / 0x4000000) | 0); + this.words[i + shift] = w & 0x3ffffff; + } + for (; i < this.length - shift; i++) { + w = (this.words[i + shift] | 0) + carry; + carry = w >> 26; + this.words[i + shift] = w & 0x3ffffff; + } + + if (carry === 0) return this._strip(); + + // Subtraction overflow + assert(carry === -1); + carry = 0; + for (i = 0; i < this.length; i++) { + w = -(this.words[i] | 0) + carry; + carry = w >> 26; + this.words[i] = w & 0x3ffffff; + } + this.negative = 1; + + return this._strip(); + }; + + BN.prototype._wordDiv = function _wordDiv (num, mode) { + var shift = this.length - num.length; + + var a = this.clone(); + var b = num; + + // Normalize + var bhi = b.words[b.length - 1] | 0; + var bhiBits = this._countBits(bhi); + shift = 26 - bhiBits; + if (shift !== 0) { + b = b.ushln(shift); + a.iushln(shift); + bhi = b.words[b.length - 1] | 0; + } + + // Initialize quotient + var m = a.length - b.length; + var q; + + if (mode !== 'mod') { + q = new BN(null); + q.length = m + 1; + q.words = new Array(q.length); + for (var i = 0; i < q.length; i++) { + q.words[i] = 0; + } + } + + var diff = a.clone()._ishlnsubmul(b, 1, m); + if (diff.negative === 0) { + a = diff; + if (q) { + q.words[m] = 1; + } + } + + for (var j = m - 1; j >= 0; j--) { + var qj = (a.words[b.length + j] | 0) * 0x4000000 + + (a.words[b.length + j - 1] | 0); + + // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max + // (0x7ffffff) + qj = Math.min((qj / bhi) | 0, 0x3ffffff); + + a._ishlnsubmul(b, qj, j); + while (a.negative !== 0) { + qj--; + a.negative = 0; + a._ishlnsubmul(b, 1, j); + if (!a.isZero()) { + a.negative ^= 1; + } + } + if (q) { + q.words[j] = qj; + } + } + if (q) { + q._strip(); + } + a._strip(); + + // Denormalize + if (mode !== 'div' && shift !== 0) { + a.iushrn(shift); + } + + return { + div: q || null, + mod: a + }; + }; + + // NOTE: 1) `mode` can be set to `mod` to request mod only, + // to `div` to request div only, or be absent to + // request both div & mod + // 2) `positive` is true if unsigned mod is requested + BN.prototype.divmod = function divmod (num, mode, positive) { + assert(!num.isZero()); + + if (this.isZero()) { + return { + div: new BN(0), + mod: new BN(0) + }; + } + + var div, mod, res; + if (this.negative !== 0 && num.negative === 0) { + res = this.neg().divmod(num, mode); + + if (mode !== 'mod') { + div = res.div.neg(); + } + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.iadd(num); + } + } + + return { + div: div, + mod: mod + }; + } + + if (this.negative === 0 && num.negative !== 0) { + res = this.divmod(num.neg(), mode); + + if (mode !== 'mod') { + div = res.div.neg(); + } + + return { + div: div, + mod: res.mod + }; + } + + if ((this.negative & num.negative) !== 0) { + res = this.neg().divmod(num.neg(), mode); + + if (mode !== 'div') { + mod = res.mod.neg(); + if (positive && mod.negative !== 0) { + mod.isub(num); + } + } + + return { + div: res.div, + mod: mod + }; + } + + // Both numbers are positive at this point + + // Strip both numbers to approximate shift value + if (num.length > this.length || this.cmp(num) < 0) { + return { + div: new BN(0), + mod: this + }; + } + + // Very short reduction + if (num.length === 1) { + if (mode === 'div') { + return { + div: this.divn(num.words[0]), + mod: null + }; + } + + if (mode === 'mod') { + return { + div: null, + mod: new BN(this.modrn(num.words[0])) + }; + } + + return { + div: this.divn(num.words[0]), + mod: new BN(this.modrn(num.words[0])) + }; + } + + return this._wordDiv(num, mode); + }; + + // Find `this` / `num` + BN.prototype.div = function div (num) { + return this.divmod(num, 'div', false).div; + }; + + // Find `this` % `num` + BN.prototype.mod = function mod (num) { + return this.divmod(num, 'mod', false).mod; + }; + + BN.prototype.umod = function umod (num) { + return this.divmod(num, 'mod', true).mod; + }; + + // Find Round(`this` / `num`) + BN.prototype.divRound = function divRound (num) { + var dm = this.divmod(num); + + // Fast case - exact division + if (dm.mod.isZero()) return dm.div; + + var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; + + var half = num.ushrn(1); + var r2 = num.andln(1); + var cmp = mod.cmp(half); + + // Round down + if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div; + + // Round up + return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); + }; + + BN.prototype.modrn = function modrn (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(num <= 0x3ffffff); + var p = (1 << 26) % num; + + var acc = 0; + for (var i = this.length - 1; i >= 0; i--) { + acc = (p * acc + (this.words[i] | 0)) % num; + } + + return isNegNum ? -acc : acc; + }; + + // WARNING: DEPRECATED + BN.prototype.modn = function modn (num) { + return this.modrn(num); + }; + + // In-place division by number + BN.prototype.idivn = function idivn (num) { + var isNegNum = num < 0; + if (isNegNum) num = -num; + + assert(num <= 0x3ffffff); + + var carry = 0; + for (var i = this.length - 1; i >= 0; i--) { + var w = (this.words[i] | 0) + carry * 0x4000000; + this.words[i] = (w / num) | 0; + carry = w % num; + } + + this._strip(); + return isNegNum ? this.ineg() : this; + }; + + BN.prototype.divn = function divn (num) { + return this.clone().idivn(num); + }; + + BN.prototype.egcd = function egcd (p) { + assert(p.negative === 0); + assert(!p.isZero()); + + var x = this; + var y = p.clone(); + + if (x.negative !== 0) { + x = x.umod(p); + } else { + x = x.clone(); + } + + // A * x + B * y = x + var A = new BN(1); + var B = new BN(0); + + // C * x + D * y = y + var C = new BN(0); + var D = new BN(1); + + var g = 0; + + while (x.isEven() && y.isEven()) { + x.iushrn(1); + y.iushrn(1); + ++g; + } + + var yp = y.clone(); + var xp = x.clone(); + + while (!x.isZero()) { + for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + x.iushrn(i); + while (i-- > 0) { + if (A.isOdd() || B.isOdd()) { + A.iadd(yp); + B.isub(xp); + } + + A.iushrn(1); + B.iushrn(1); + } + } + + for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + y.iushrn(j); + while (j-- > 0) { + if (C.isOdd() || D.isOdd()) { + C.iadd(yp); + D.isub(xp); + } + + C.iushrn(1); + D.iushrn(1); + } + } + + if (x.cmp(y) >= 0) { + x.isub(y); + A.isub(C); + B.isub(D); + } else { + y.isub(x); + C.isub(A); + D.isub(B); + } + } + + return { + a: C, + b: D, + gcd: y.iushln(g) + }; + }; + + // This is reduced incarnation of the binary EEA + // above, designated to invert members of the + // _prime_ fields F(p) at a maximal speed + BN.prototype._invmp = function _invmp (p) { + assert(p.negative === 0); + assert(!p.isZero()); + + var a = this; + var b = p.clone(); + + if (a.negative !== 0) { + a = a.umod(p); + } else { + a = a.clone(); + } + + var x1 = new BN(1); + var x2 = new BN(0); + + var delta = b.clone(); + + while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { + for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1); + if (i > 0) { + a.iushrn(i); + while (i-- > 0) { + if (x1.isOdd()) { + x1.iadd(delta); + } + + x1.iushrn(1); + } + } + + for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1); + if (j > 0) { + b.iushrn(j); + while (j-- > 0) { + if (x2.isOdd()) { + x2.iadd(delta); + } + + x2.iushrn(1); + } + } + + if (a.cmp(b) >= 0) { + a.isub(b); + x1.isub(x2); + } else { + b.isub(a); + x2.isub(x1); + } + } + + var res; + if (a.cmpn(1) === 0) { + res = x1; + } else { + res = x2; + } + + if (res.cmpn(0) < 0) { + res.iadd(p); + } + + return res; + }; + + BN.prototype.gcd = function gcd (num) { + if (this.isZero()) return num.abs(); + if (num.isZero()) return this.abs(); + + var a = this.clone(); + var b = num.clone(); + a.negative = 0; + b.negative = 0; + + // Remove common factor of two + for (var shift = 0; a.isEven() && b.isEven(); shift++) { + a.iushrn(1); + b.iushrn(1); + } + + do { + while (a.isEven()) { + a.iushrn(1); + } + while (b.isEven()) { + b.iushrn(1); + } + + var r = a.cmp(b); + if (r < 0) { + // Swap `a` and `b` to make `a` always bigger than `b` + var t = a; + a = b; + b = t; + } else if (r === 0 || b.cmpn(1) === 0) { + break; + } + + a.isub(b); + } while (true); + + return b.iushln(shift); + }; + + // Invert number in the field F(num) + BN.prototype.invm = function invm (num) { + return this.egcd(num).a.umod(num); + }; + + BN.prototype.isEven = function isEven () { + return (this.words[0] & 1) === 0; + }; + + BN.prototype.isOdd = function isOdd () { + return (this.words[0] & 1) === 1; + }; + + // And first word and num + BN.prototype.andln = function andln (num) { + return this.words[0] & num; + }; + + // Increment at the bit position in-line + BN.prototype.bincn = function bincn (bit) { + assert(typeof bit === 'number'); + var r = bit % 26; + var s = (bit - r) / 26; + var q = 1 << r; + + // Fast case: bit is much higher than all existing words + if (this.length <= s) { + this._expand(s + 1); + this.words[s] |= q; + return this; + } + + // Add bit and propagate, if needed + var carry = q; + for (var i = s; carry !== 0 && i < this.length; i++) { + var w = this.words[i] | 0; + w += carry; + carry = w >>> 26; + w &= 0x3ffffff; + this.words[i] = w; + } + if (carry !== 0) { + this.words[i] = carry; + this.length++; + } + return this; + }; + + BN.prototype.isZero = function isZero () { + return this.length === 1 && this.words[0] === 0; + }; + + BN.prototype.cmpn = function cmpn (num) { + var negative = num < 0; + + if (this.negative !== 0 && !negative) return -1; + if (this.negative === 0 && negative) return 1; + + this._strip(); + + var res; + if (this.length > 1) { + res = 1; + } else { + if (negative) { + num = -num; + } + + assert(num <= 0x3ffffff, 'Number is too big'); + + var w = this.words[0] | 0; + res = w === num ? 0 : w < num ? -1 : 1; + } + if (this.negative !== 0) return -res | 0; + return res; + }; + + // Compare two numbers and return: + // 1 - if `this` > `num` + // 0 - if `this` == `num` + // -1 - if `this` < `num` + BN.prototype.cmp = function cmp (num) { + if (this.negative !== 0 && num.negative === 0) return -1; + if (this.negative === 0 && num.negative !== 0) return 1; + + var res = this.ucmp(num); + if (this.negative !== 0) return -res | 0; + return res; + }; + + // Unsigned comparison + BN.prototype.ucmp = function ucmp (num) { + // At this point both numbers have the same sign + if (this.length > num.length) return 1; + if (this.length < num.length) return -1; + + var res = 0; + for (var i = this.length - 1; i >= 0; i--) { + var a = this.words[i] | 0; + var b = num.words[i] | 0; + + if (a === b) continue; + if (a < b) { + res = -1; + } else if (a > b) { + res = 1; + } + break; + } + return res; + }; + + BN.prototype.gtn = function gtn (num) { + return this.cmpn(num) === 1; + }; + + BN.prototype.gt = function gt (num) { + return this.cmp(num) === 1; + }; + + BN.prototype.gten = function gten (num) { + return this.cmpn(num) >= 0; + }; + + BN.prototype.gte = function gte (num) { + return this.cmp(num) >= 0; + }; + + BN.prototype.ltn = function ltn (num) { + return this.cmpn(num) === -1; + }; + + BN.prototype.lt = function lt (num) { + return this.cmp(num) === -1; + }; + + BN.prototype.lten = function lten (num) { + return this.cmpn(num) <= 0; + }; + + BN.prototype.lte = function lte (num) { + return this.cmp(num) <= 0; + }; + + BN.prototype.eqn = function eqn (num) { + return this.cmpn(num) === 0; + }; + + BN.prototype.eq = function eq (num) { + return this.cmp(num) === 0; + }; + + // + // A reduce context, could be using montgomery or something better, depending + // on the `m` itself. + // + BN.red = function red (num) { + return new Red(num); + }; + + BN.prototype.toRed = function toRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + assert(this.negative === 0, 'red works only with positives'); + return ctx.convertTo(this)._forceRed(ctx); + }; + + BN.prototype.fromRed = function fromRed () { + assert(this.red, 'fromRed works only with numbers in reduction context'); + return this.red.convertFrom(this); + }; + + BN.prototype._forceRed = function _forceRed (ctx) { + this.red = ctx; + return this; + }; + + BN.prototype.forceRed = function forceRed (ctx) { + assert(!this.red, 'Already a number in reduction context'); + return this._forceRed(ctx); + }; + + BN.prototype.redAdd = function redAdd (num) { + assert(this.red, 'redAdd works only with red numbers'); + return this.red.add(this, num); + }; + + BN.prototype.redIAdd = function redIAdd (num) { + assert(this.red, 'redIAdd works only with red numbers'); + return this.red.iadd(this, num); + }; + + BN.prototype.redSub = function redSub (num) { + assert(this.red, 'redSub works only with red numbers'); + return this.red.sub(this, num); + }; + + BN.prototype.redISub = function redISub (num) { + assert(this.red, 'redISub works only with red numbers'); + return this.red.isub(this, num); + }; + + BN.prototype.redShl = function redShl (num) { + assert(this.red, 'redShl works only with red numbers'); + return this.red.shl(this, num); + }; + + BN.prototype.redMul = function redMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.mul(this, num); + }; + + BN.prototype.redIMul = function redIMul (num) { + assert(this.red, 'redMul works only with red numbers'); + this.red._verify2(this, num); + return this.red.imul(this, num); + }; + + BN.prototype.redSqr = function redSqr () { + assert(this.red, 'redSqr works only with red numbers'); + this.red._verify1(this); + return this.red.sqr(this); + }; + + BN.prototype.redISqr = function redISqr () { + assert(this.red, 'redISqr works only with red numbers'); + this.red._verify1(this); + return this.red.isqr(this); + }; + + // Square root over p + BN.prototype.redSqrt = function redSqrt () { + assert(this.red, 'redSqrt works only with red numbers'); + this.red._verify1(this); + return this.red.sqrt(this); + }; + + BN.prototype.redInvm = function redInvm () { + assert(this.red, 'redInvm works only with red numbers'); + this.red._verify1(this); + return this.red.invm(this); + }; + + // Return negative clone of `this` % `red modulo` + BN.prototype.redNeg = function redNeg () { + assert(this.red, 'redNeg works only with red numbers'); + this.red._verify1(this); + return this.red.neg(this); + }; + + BN.prototype.redPow = function redPow (num) { + assert(this.red && !num.red, 'redPow(normalNum)'); + this.red._verify1(this); + return this.red.pow(this, num); + }; + + // Prime numbers with efficient reduction + var primes = { + k256: null, + p224: null, + p192: null, + p25519: null + }; + + // Pseudo-Mersenne prime + function MPrime (name, p) { + // P = 2 ^ N - K + this.name = name; + this.p = new BN(p, 16); + this.n = this.p.bitLength(); + this.k = new BN(1).iushln(this.n).isub(this.p); + + this.tmp = this._tmp(); + } + + MPrime.prototype._tmp = function _tmp () { + var tmp = new BN(null); + tmp.words = new Array(Math.ceil(this.n / 13)); + return tmp; + }; + + MPrime.prototype.ireduce = function ireduce (num) { + // Assumes that `num` is less than `P^2` + // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P) + var r = num; + var rlen; + + do { + this.split(r, this.tmp); + r = this.imulK(r); + r = r.iadd(this.tmp); + rlen = r.bitLength(); + } while (rlen > this.n); + + var cmp = rlen < this.n ? -1 : r.ucmp(this.p); + if (cmp === 0) { + r.words[0] = 0; + r.length = 1; + } else if (cmp > 0) { + r.isub(this.p); + } else { + if (r.strip !== undefined) { + // r is a BN v4 instance + r.strip(); + } else { + // r is a BN v5 instance + r._strip(); + } + } + + return r; + }; + + MPrime.prototype.split = function split (input, out) { + input.iushrn(this.n, 0, out); + }; + + MPrime.prototype.imulK = function imulK (num) { + return num.imul(this.k); + }; + + function K256 () { + MPrime.call( + this, + 'k256', + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f'); + } + inherits(K256, MPrime); + + K256.prototype.split = function split (input, output) { + // 256 = 9 * 26 + 22 + var mask = 0x3fffff; + + var outLen = Math.min(input.length, 9); + for (var i = 0; i < outLen; i++) { + output.words[i] = input.words[i]; + } + output.length = outLen; + + if (input.length <= 9) { + input.words[0] = 0; + input.length = 1; + return; + } + + // Shift by 9 limbs + var prev = input.words[9]; + output.words[output.length++] = prev & mask; + + for (i = 10; i < input.length; i++) { + var next = input.words[i] | 0; + input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22); + prev = next; + } + prev >>>= 22; + input.words[i - 10] = prev; + if (prev === 0 && input.length > 10) { + input.length -= 10; + } else { + input.length -= 9; + } + }; + + K256.prototype.imulK = function imulK (num) { + // K = 0x1000003d1 = [ 0x40, 0x3d1 ] + num.words[num.length] = 0; + num.words[num.length + 1] = 0; + num.length += 2; + + // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390 + var lo = 0; + for (var i = 0; i < num.length; i++) { + var w = num.words[i] | 0; + lo += w * 0x3d1; + num.words[i] = lo & 0x3ffffff; + lo = w * 0x40 + ((lo / 0x4000000) | 0); + } + + // Fast length reduction + if (num.words[num.length - 1] === 0) { + num.length--; + if (num.words[num.length - 1] === 0) { + num.length--; + } + } + return num; + }; + + function P224 () { + MPrime.call( + this, + 'p224', + 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001'); + } + inherits(P224, MPrime); + + function P192 () { + MPrime.call( + this, + 'p192', + 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff'); + } + inherits(P192, MPrime); + + function P25519 () { + // 2 ^ 255 - 19 + MPrime.call( + this, + '25519', + '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed'); + } + inherits(P25519, MPrime); + + P25519.prototype.imulK = function imulK (num) { + // K = 0x13 + var carry = 0; + for (var i = 0; i < num.length; i++) { + var hi = (num.words[i] | 0) * 0x13 + carry; + var lo = hi & 0x3ffffff; + hi >>>= 26; + + num.words[i] = lo; + carry = hi; + } + if (carry !== 0) { + num.words[num.length++] = carry; + } + return num; + }; + + // Exported mostly for testing purposes, use plain name instead + BN._prime = function prime (name) { + // Cached version of prime + if (primes[name]) return primes[name]; + + var prime; + if (name === 'k256') { + prime = new K256(); + } else if (name === 'p224') { + prime = new P224(); + } else if (name === 'p192') { + prime = new P192(); + } else if (name === 'p25519') { + prime = new P25519(); + } else { + throw new Error('Unknown prime ' + name); + } + primes[name] = prime; + + return prime; + }; + + // + // Base reduction engine + // + function Red (m) { + if (typeof m === 'string') { + var prime = BN._prime(m); + this.m = prime.p; + this.prime = prime; + } else { + assert(m.gtn(1), 'modulus must be greater than 1'); + this.m = m; + this.prime = null; + } + } + + Red.prototype._verify1 = function _verify1 (a) { + assert(a.negative === 0, 'red works only with positives'); + assert(a.red, 'red works only with red numbers'); + }; + + Red.prototype._verify2 = function _verify2 (a, b) { + assert((a.negative | b.negative) === 0, 'red works only with positives'); + assert(a.red && a.red === b.red, + 'red works only with red numbers'); + }; + + Red.prototype.imod = function imod (a) { + if (this.prime) return this.prime.ireduce(a)._forceRed(this); + + move(a, a.umod(this.m)._forceRed(this)); + return a; + }; + + Red.prototype.neg = function neg (a) { + if (a.isZero()) { + return a.clone(); + } + + return this.m.sub(a)._forceRed(this); + }; + + Red.prototype.add = function add (a, b) { + this._verify2(a, b); + + var res = a.add(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.iadd = function iadd (a, b) { + this._verify2(a, b); + + var res = a.iadd(b); + if (res.cmp(this.m) >= 0) { + res.isub(this.m); + } + return res; + }; + + Red.prototype.sub = function sub (a, b) { + this._verify2(a, b); + + var res = a.sub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res._forceRed(this); + }; + + Red.prototype.isub = function isub (a, b) { + this._verify2(a, b); + + var res = a.isub(b); + if (res.cmpn(0) < 0) { + res.iadd(this.m); + } + return res; + }; + + Red.prototype.shl = function shl (a, num) { + this._verify1(a); + return this.imod(a.ushln(num)); + }; + + Red.prototype.imul = function imul (a, b) { + this._verify2(a, b); + return this.imod(a.imul(b)); + }; + + Red.prototype.mul = function mul (a, b) { + this._verify2(a, b); + return this.imod(a.mul(b)); + }; + + Red.prototype.isqr = function isqr (a) { + return this.imul(a, a.clone()); + }; + + Red.prototype.sqr = function sqr (a) { + return this.mul(a, a); + }; + + Red.prototype.sqrt = function sqrt (a) { + if (a.isZero()) return a.clone(); + + var mod3 = this.m.andln(3); + assert(mod3 % 2 === 1); + + // Fast case + if (mod3 === 3) { + var pow = this.m.add(new BN(1)).iushrn(2); + return this.pow(a, pow); + } + + // Tonelli-Shanks algorithm (Totally unoptimized and slow) + // + // Find Q and S, that Q * 2 ^ S = (P - 1) + var q = this.m.subn(1); + var s = 0; + while (!q.isZero() && q.andln(1) === 0) { + s++; + q.iushrn(1); + } + assert(!q.isZero()); + + var one = new BN(1).toRed(this); + var nOne = one.redNeg(); + + // Find quadratic non-residue + // NOTE: Max is such because of generalized Riemann hypothesis. + var lpow = this.m.subn(1).iushrn(1); + var z = this.m.bitLength(); + z = new BN(2 * z * z).toRed(this); + + while (this.pow(z, lpow).cmp(nOne) !== 0) { + z.redIAdd(nOne); + } + + var c = this.pow(z, q); + var r = this.pow(a, q.addn(1).iushrn(1)); + var t = this.pow(a, q); + var m = s; + while (t.cmp(one) !== 0) { + var tmp = t; + for (var i = 0; tmp.cmp(one) !== 0; i++) { + tmp = tmp.redSqr(); + } + assert(i < m); + var b = this.pow(c, new BN(1).iushln(m - i - 1)); + + r = r.redMul(b); + c = b.redSqr(); + t = t.redMul(c); + m = i; + } + + return r; + }; + + Red.prototype.invm = function invm (a) { + var inv = a._invmp(this.m); + if (inv.negative !== 0) { + inv.negative = 0; + return this.imod(inv).redNeg(); + } else { + return this.imod(inv); + } + }; + + Red.prototype.pow = function pow (a, num) { + if (num.isZero()) return new BN(1).toRed(this); + if (num.cmpn(1) === 0) return a.clone(); + + var windowSize = 4; + var wnd = new Array(1 << windowSize); + wnd[0] = new BN(1).toRed(this); + wnd[1] = a; + for (var i = 2; i < wnd.length; i++) { + wnd[i] = this.mul(wnd[i - 1], a); + } + + var res = wnd[0]; + var current = 0; + var currentLen = 0; + var start = num.bitLength() % 26; + if (start === 0) { + start = 26; + } + + for (i = num.length - 1; i >= 0; i--) { + var word = num.words[i]; + for (var j = start - 1; j >= 0; j--) { + var bit = (word >> j) & 1; + if (res !== wnd[0]) { + res = this.sqr(res); + } + + if (bit === 0 && current === 0) { + currentLen = 0; + continue; + } + + current <<= 1; + current |= bit; + currentLen++; + if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue; + + res = this.mul(res, wnd[current]); + currentLen = 0; + current = 0; + } + start = 26; + } + + return res; + }; + + Red.prototype.convertTo = function convertTo (num) { + var r = num.umod(this.m); + + return r === num ? r.clone() : r; + }; + + Red.prototype.convertFrom = function convertFrom (num) { + var res = num.clone(); + res.red = null; + return res; + }; + + // + // Montgomery method engine + // + + BN.mont = function mont (num) { + return new Mont(num); + }; + + function Mont (m) { + Red.call(this, m); + + this.shift = this.m.bitLength(); + if (this.shift % 26 !== 0) { + this.shift += 26 - (this.shift % 26); + } + + this.r = new BN(1).iushln(this.shift); + this.r2 = this.imod(this.r.sqr()); + this.rinv = this.r._invmp(this.m); + + this.minv = this.rinv.mul(this.r).isubn(1).div(this.m); + this.minv = this.minv.umod(this.r); + this.minv = this.r.sub(this.minv); + } + inherits(Mont, Red); + + Mont.prototype.convertTo = function convertTo (num) { + return this.imod(num.ushln(this.shift)); + }; + + Mont.prototype.convertFrom = function convertFrom (num) { + var r = this.imod(num.mul(this.rinv)); + r.red = null; + return r; + }; + + Mont.prototype.imul = function imul (a, b) { + if (a.isZero() || b.isZero()) { + a.words[0] = 0; + a.length = 1; + return a; + } + + var t = a.imul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.mul = function mul (a, b) { + if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this); + + var t = a.mul(b); + var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); + var u = t.isub(c).iushrn(this.shift); + var res = u; + if (u.cmp(this.m) >= 0) { + res = u.isub(this.m); + } else if (u.cmpn(0) < 0) { + res = u.iadd(this.m); + } + + return res._forceRed(this); + }; + + Mont.prototype.invm = function invm (a) { + // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R + var res = this.imod(a._invmp(this.m).mul(this.r2)); + return res._forceRed(this); + }; +})( false || module, this); + + +}, +17656(module) { +!function(e,t){ true?module.exports=t():0}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){"use strict";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})})); + +}, +93705(module, __unused_webpack_exports, __webpack_require__) { +var r; + +module.exports = function rand(len) { + if (!r) + r = new Rand(null); + + return r.generate(len); +}; + +function Rand(rand) { + this.rand = rand; +} +module.exports.Rand = Rand; + +Rand.prototype.generate = function generate(len) { + return this._rand(len); +}; + +// Emulate crypto API using randy +Rand.prototype._rand = function _rand(n) { + if (this.rand.getBytes) + return this.rand.getBytes(n); + + var res = new Uint8Array(n); + for (var i = 0; i < res.length; i++) + res[i] = this.rand.getByte(); + return res; +}; + +if (typeof self === 'object') { + if (self.crypto && self.crypto.getRandomValues) { + // Modern browsers + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n); + self.crypto.getRandomValues(arr); + return arr; + }; + } else if (self.msCrypto && self.msCrypto.getRandomValues) { + // IE + Rand.prototype._rand = function _rand(n) { + var arr = new Uint8Array(n); + self.msCrypto.getRandomValues(arr); + return arr; + }; + + // Safari's WebWorkers do not have `crypto` + } else if (typeof window === 'object') { + // Old junk + Rand.prototype._rand = function() { + throw new Error('Not implemented yet'); + }; + } +} else { + // Node.js or Web worker with no crypto support + try { + var crypto = __webpack_require__(76283); + if (typeof crypto.randomBytes !== 'function') + throw new Error('Not supported'); + + Rand.prototype._rand = function _rand(n) { + return crypto.randomBytes(n); + }; + } catch (e) { + } +} + + +}, +22643(module, __unused_webpack_exports, __webpack_require__) { +// based on the aes implimentation in triple sec +// https://github.com/keybase/triplesec +// which is in turn based on the one from crypto-js +// https://code.google.com/p/crypto-js/ + +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) + +function asUInt32Array (buf) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) + + var len = (buf.length / 4) | 0 + var out = new Array(len) + + for (var i = 0; i < len; i++) { + out[i] = buf.readUInt32BE(i * 4) + } + + return out +} + +function scrubVec (v) { + for (var i = 0; i < v.length; v++) { + v[i] = 0 + } +} + +function cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) { + var SUB_MIX0 = SUB_MIX[0] + var SUB_MIX1 = SUB_MIX[1] + var SUB_MIX2 = SUB_MIX[2] + var SUB_MIX3 = SUB_MIX[3] + + var s0 = M[0] ^ keySchedule[0] + var s1 = M[1] ^ keySchedule[1] + var s2 = M[2] ^ keySchedule[2] + var s3 = M[3] ^ keySchedule[3] + var t0, t1, t2, t3 + var ksRow = 4 + + for (var round = 1; round < nRounds; round++) { + t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++] + t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++] + t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++] + t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++] + s0 = t0 + s1 = t1 + s2 = t2 + s3 = t3 + } + + t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++] + t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++] + t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++] + t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++] + t0 = t0 >>> 0 + t1 = t1 >>> 0 + t2 = t2 >>> 0 + t3 = t3 >>> 0 + + return [t0, t1, t2, t3] +} + +// AES constants +var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36] +var G = (function () { + // Compute double table + var d = new Array(256) + for (var j = 0; j < 256; j++) { + if (j < 128) { + d[j] = j << 1 + } else { + d[j] = (j << 1) ^ 0x11b + } + } + + var SBOX = [] + var INV_SBOX = [] + var SUB_MIX = [[], [], [], []] + var INV_SUB_MIX = [[], [], [], []] + + // Walk GF(2^8) + var x = 0 + var xi = 0 + for (var i = 0; i < 256; ++i) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4) + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63 + SBOX[x] = sx + INV_SBOX[sx] = x + + // Compute multiplication + var x2 = d[x] + var x4 = d[x2] + var x8 = d[x4] + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100) + SUB_MIX[0][x] = (t << 24) | (t >>> 8) + SUB_MIX[1][x] = (t << 16) | (t >>> 16) + SUB_MIX[2][x] = (t << 8) | (t >>> 24) + SUB_MIX[3][x] = t + + // Compute inv sub bytes, inv mix columns tables + t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100) + INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8) + INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16) + INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24) + INV_SUB_MIX[3][sx] = t + + if (x === 0) { + x = xi = 1 + } else { + x = x2 ^ d[d[d[x8 ^ x2]]] + xi ^= d[d[xi]] + } + } + + return { + SBOX: SBOX, + INV_SBOX: INV_SBOX, + SUB_MIX: SUB_MIX, + INV_SUB_MIX: INV_SUB_MIX + } +})() + +function AES (key) { + this._key = asUInt32Array(key) + this._reset() +} + +AES.blockSize = 4 * 4 +AES.keySize = 256 / 8 +AES.prototype.blockSize = AES.blockSize +AES.prototype.keySize = AES.keySize +AES.prototype._reset = function () { + var keyWords = this._key + var keySize = keyWords.length + var nRounds = keySize + 6 + var ksRows = (nRounds + 1) * 4 + + var keySchedule = [] + for (var k = 0; k < keySize; k++) { + keySchedule[k] = keyWords[k] + } + + for (k = keySize; k < ksRows; k++) { + var t = keySchedule[k - 1] + + if (k % keySize === 0) { + t = (t << 8) | (t >>> 24) + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) + + t ^= RCON[(k / keySize) | 0] << 24 + } else if (keySize > 6 && k % keySize === 4) { + t = + (G.SBOX[t >>> 24] << 24) | + (G.SBOX[(t >>> 16) & 0xff] << 16) | + (G.SBOX[(t >>> 8) & 0xff] << 8) | + (G.SBOX[t & 0xff]) + } + + keySchedule[k] = keySchedule[k - keySize] ^ t + } + + var invKeySchedule = [] + for (var ik = 0; ik < ksRows; ik++) { + var ksR = ksRows - ik + var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)] + + if (ik < 4 || ksR <= 4) { + invKeySchedule[ik] = tt + } else { + invKeySchedule[ik] = + G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ + G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^ + G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^ + G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]] + } + } + + this._nRounds = nRounds + this._keySchedule = keySchedule + this._invKeySchedule = invKeySchedule +} + +AES.prototype.encryptBlockRaw = function (M) { + M = asUInt32Array(M) + return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds) +} + +AES.prototype.encryptBlock = function (M) { + var out = this.encryptBlockRaw(M) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[1], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[3], 12) + return buf +} + +AES.prototype.decryptBlock = function (M) { + M = asUInt32Array(M) + + // swap + var m1 = M[1] + M[1] = M[3] + M[3] = m1 + + var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds) + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0], 0) + buf.writeUInt32BE(out[3], 4) + buf.writeUInt32BE(out[2], 8) + buf.writeUInt32BE(out[1], 12) + return buf +} + +AES.prototype.scrub = function () { + scrubVec(this._keySchedule) + scrubVec(this._invKeySchedule) + scrubVec(this._key) +} + +module.exports.AES = AES + + +}, +15407(module, __unused_webpack_exports, __webpack_require__) { +var aes = __webpack_require__(22643) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var Transform = __webpack_require__(27416) +var inherits = __webpack_require__(86040) +var GHASH = __webpack_require__(20841) +var xor = __webpack_require__(56483) +var incr32 = __webpack_require__(6129) + +function xorTest (a, b) { + var out = 0 + if (a.length !== b.length) out++ + + var len = Math.min(a.length, b.length) + for (var i = 0; i < len; ++i) { + out += (a[i] ^ b[i]) + } + + return out +} + +function calcIv (self, iv, ck) { + if (iv.length === 12) { + self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]) + return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]) + } + var ghash = new GHASH(ck) + var len = iv.length + var toPad = len % 16 + ghash.update(iv) + if (toPad) { + toPad = 16 - toPad + ghash.update(Buffer.alloc(toPad, 0)) + } + ghash.update(Buffer.alloc(8, 0)) + var ivBits = len * 8 + var tail = Buffer.alloc(8) + tail.writeUIntBE(ivBits, 0, 8) + ghash.update(tail) + self._finID = ghash.state + var out = Buffer.from(self._finID) + incr32(out) + return out +} +function StreamCipher (mode, key, iv, decrypt) { + Transform.call(this) + + var h = Buffer.alloc(4, 0) + + this._cipher = new aes.AES(key) + var ck = this._cipher.encryptBlock(h) + this._ghash = new GHASH(ck) + iv = calcIv(this, iv, ck) + + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._alen = 0 + this._len = 0 + this._mode = mode + + this._authTag = null + this._called = false +} + +inherits(StreamCipher, Transform) + +StreamCipher.prototype._update = function (chunk) { + if (!this._called && this._alen) { + var rump = 16 - (this._alen % 16) + if (rump < 16) { + rump = Buffer.alloc(rump, 0) + this._ghash.update(rump) + } + } + + this._called = true + var out = this._mode.encrypt(this, chunk) + if (this._decrypt) { + this._ghash.update(chunk) + } else { + this._ghash.update(out) + } + this._len += chunk.length + return out +} + +StreamCipher.prototype._final = function () { + if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data') + + var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID)) + if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data') + + this._authTag = tag + this._cipher.scrub() +} + +StreamCipher.prototype.getAuthTag = function getAuthTag () { + if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state') + + return this._authTag +} + +StreamCipher.prototype.setAuthTag = function setAuthTag (tag) { + if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state') + + this._authTag = tag +} + +StreamCipher.prototype.setAAD = function setAAD (buf) { + if (this._called) throw new Error('Attempting to set AAD in unsupported state') + + this._ghash.update(buf) + this._alen += buf.length +} + +module.exports = StreamCipher + + +}, +43528(__unused_webpack_module, exports, __webpack_require__) { +var ciphers = __webpack_require__(55442) +var deciphers = __webpack_require__(32586) +var modes = __webpack_require__(39072) + +function getCiphers () { + return Object.keys(modes) +} + +exports.createCipher = exports.Cipher = ciphers.createCipher +exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv +exports.createDecipher = exports.Decipher = deciphers.createDecipher +exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv +exports.listCiphers = exports.getCiphers = getCiphers + + +}, +32586(__unused_webpack_module, exports, __webpack_require__) { +var AuthCipher = __webpack_require__(15407) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var MODES = __webpack_require__(3579) +var StreamCipher = __webpack_require__(27017) +var Transform = __webpack_require__(27416) +var aes = __webpack_require__(22643) +var ebtk = __webpack_require__(43563) +var inherits = __webpack_require__(86040) + +function Decipher (mode, key, iv) { + Transform.call(this) + + this._cache = new Splitter() + this._last = void 0 + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true +} + +inherits(Decipher, Transform) + +Decipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] + while ((chunk = this._cache.get(this._autopadding))) { + thing = this._mode.decrypt(this, chunk) + out.push(thing) + } + return Buffer.concat(out) +} + +Decipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + return unpad(this._mode.decrypt(this, chunk)) + } else if (chunk) { + throw new Error('data not multiple of block length') + } +} + +Decipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this +} + +function Splitter () { + this.cache = Buffer.allocUnsafe(0) +} + +Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) +} + +Splitter.prototype.get = function (autoPadding) { + var out + if (autoPadding) { + if (this.cache.length > 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + } else { + if (this.cache.length >= 16) { + out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + } + + return null +} + +Splitter.prototype.flush = function () { + if (this.cache.length) return this.cache +} + +function unpad (last) { + var padded = last[15] + if (padded < 1 || padded > 16) { + throw new Error('unable to decrypt data') + } + var i = -1 + while (++i < padded) { + if (last[(i + (16 - padded))] !== padded) { + throw new Error('unable to decrypt data') + } + } + if (padded === 16) return + + return last.slice(0, 16 - padded) +} + +function createDecipheriv (suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) + + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) + + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv, true) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv, true) + } + + return new Decipher(config.module, password, iv) +} + +function createDecipher (suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + + var keys = ebtk(password, false, config.key, config.iv) + return createDecipheriv(suite, keys.key, keys.iv) +} + +exports.createDecipher = createDecipher +exports.createDecipheriv = createDecipheriv + + +}, +55442(__unused_webpack_module, exports, __webpack_require__) { +var MODES = __webpack_require__(3579) +var AuthCipher = __webpack_require__(15407) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var StreamCipher = __webpack_require__(27017) +var Transform = __webpack_require__(27416) +var aes = __webpack_require__(22643) +var ebtk = __webpack_require__(43563) +var inherits = __webpack_require__(86040) + +function Cipher (mode, key, iv) { + Transform.call(this) + + this._cache = new Splitter() + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._mode = mode + this._autopadding = true +} + +inherits(Cipher, Transform) + +Cipher.prototype._update = function (data) { + this._cache.add(data) + var chunk + var thing + var out = [] + + while ((chunk = this._cache.get())) { + thing = this._mode.encrypt(this, chunk) + out.push(thing) + } + + return Buffer.concat(out) +} + +var PADDING = Buffer.alloc(16, 0x10) + +Cipher.prototype._final = function () { + var chunk = this._cache.flush() + if (this._autopadding) { + chunk = this._mode.encrypt(this, chunk) + this._cipher.scrub() + return chunk + } + + if (!chunk.equals(PADDING)) { + this._cipher.scrub() + throw new Error('data not multiple of block length') + } +} + +Cipher.prototype.setAutoPadding = function (setTo) { + this._autopadding = !!setTo + return this +} + +function Splitter () { + this.cache = Buffer.allocUnsafe(0) +} + +Splitter.prototype.add = function (data) { + this.cache = Buffer.concat([this.cache, data]) +} + +Splitter.prototype.get = function () { + if (this.cache.length > 15) { + var out = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + return out + } + return null +} + +Splitter.prototype.flush = function () { + var len = 16 - this.cache.length + var padBuff = Buffer.allocUnsafe(len) + + var i = -1 + while (++i < len) { + padBuff.writeUInt8(len, i) + } + + return Buffer.concat([this.cache, padBuff]) +} + +function createCipheriv (suite, password, iv) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + + if (typeof password === 'string') password = Buffer.from(password) + if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length) + + if (typeof iv === 'string') iv = Buffer.from(iv) + if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length) + + if (config.type === 'stream') { + return new StreamCipher(config.module, password, iv) + } else if (config.type === 'auth') { + return new AuthCipher(config.module, password, iv) + } + + return new Cipher(config.module, password, iv) +} + +function createCipher (suite, password) { + var config = MODES[suite.toLowerCase()] + if (!config) throw new TypeError('invalid suite type') + + var keys = ebtk(password, false, config.key, config.iv) + return createCipheriv(suite, keys.key, keys.iv) +} + +exports.createCipheriv = createCipheriv +exports.createCipher = createCipher + + +}, +20841(module, __unused_webpack_exports, __webpack_require__) { +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var ZEROES = Buffer.alloc(16, 0) + +function toArray (buf) { + return [ + buf.readUInt32BE(0), + buf.readUInt32BE(4), + buf.readUInt32BE(8), + buf.readUInt32BE(12) + ] +} + +function fromArray (out) { + var buf = Buffer.allocUnsafe(16) + buf.writeUInt32BE(out[0] >>> 0, 0) + buf.writeUInt32BE(out[1] >>> 0, 4) + buf.writeUInt32BE(out[2] >>> 0, 8) + buf.writeUInt32BE(out[3] >>> 0, 12) + return buf +} + +function GHASH (key) { + this.h = key + this.state = Buffer.alloc(16, 0) + this.cache = Buffer.allocUnsafe(0) +} + +// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html +// by Juho Vähä-Herttua +GHASH.prototype.ghash = function (block) { + var i = -1 + while (++i < block.length) { + this.state[i] ^= block[i] + } + this._multiply() +} + +GHASH.prototype._multiply = function () { + var Vi = toArray(this.h) + var Zi = [0, 0, 0, 0] + var j, xi, lsbVi + var i = -1 + while (++i < 128) { + xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0 + if (xi) { + // Z_i+1 = Z_i ^ V_i + Zi[0] ^= Vi[0] + Zi[1] ^= Vi[1] + Zi[2] ^= Vi[2] + Zi[3] ^= Vi[3] + } + + // Store the value of LSB(V_i) + lsbVi = (Vi[3] & 1) !== 0 + + // V_i+1 = V_i >> 1 + for (j = 3; j > 0; j--) { + Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31) + } + Vi[0] = Vi[0] >>> 1 + + // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R + if (lsbVi) { + Vi[0] = Vi[0] ^ (0xe1 << 24) + } + } + this.state = fromArray(Zi) +} + +GHASH.prototype.update = function (buf) { + this.cache = Buffer.concat([this.cache, buf]) + var chunk + while (this.cache.length >= 16) { + chunk = this.cache.slice(0, 16) + this.cache = this.cache.slice(16) + this.ghash(chunk) + } +} + +GHASH.prototype.final = function (abl, bl) { + if (this.cache.length) { + this.ghash(Buffer.concat([this.cache, ZEROES], 16)) + } + + this.ghash(fromArray([0, abl, 0, bl])) + return this.state +} + +module.exports = GHASH + + +}, +6129(module) { +function incr32 (iv) { + var len = iv.length + var item + while (len--) { + item = iv.readUInt8(len) + if (item === 255) { + iv.writeUInt8(0, len) + } else { + item++ + iv.writeUInt8(item, len) + break + } + } +} +module.exports = incr32 + + +}, +30401(__unused_webpack_module, exports, __webpack_require__) { +var xor = __webpack_require__(56483) + +exports.encrypt = function (self, block) { + var data = xor(block, self._prev) + + self._prev = self._cipher.encryptBlock(data) + return self._prev +} + +exports.decrypt = function (self, block) { + var pad = self._prev + + self._prev = block + var out = self._cipher.decryptBlock(block) + + return xor(out, pad) +} + + +}, +14809(__unused_webpack_module, exports, __webpack_require__) { +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var xor = __webpack_require__(56483) + +function encryptStart (self, data, decrypt) { + var len = data.length + var out = xor(data, self._cache) + self._cache = self._cache.slice(len) + self._prev = Buffer.concat([self._prev, decrypt ? data : out]) + return out +} + +exports.encrypt = function (self, data, decrypt) { + var out = Buffer.allocUnsafe(0) + var len + + while (data.length) { + if (self._cache.length === 0) { + self._cache = self._cipher.encryptBlock(self._prev) + self._prev = Buffer.allocUnsafe(0) + } + + if (self._cache.length <= data.length) { + len = self._cache.length + out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]) + data = data.slice(len) + } else { + out = Buffer.concat([out, encryptStart(self, data, decrypt)]) + break + } + } + + return out +} + + +}, +64043(__unused_webpack_module, exports, __webpack_require__) { +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) + +function encryptByte (self, byteParam, decrypt) { + var pad + var i = -1 + var len = 8 + var out = 0 + var bit, value + while (++i < len) { + pad = self._cipher.encryptBlock(self._prev) + bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0 + value = pad[0] ^ bit + out += ((value & 0x80) >> (i % 8)) + self._prev = shiftIn(self._prev, decrypt ? bit : value) + } + return out +} + +function shiftIn (buffer, value) { + var len = buffer.length + var i = -1 + var out = Buffer.allocUnsafe(buffer.length) + buffer = Buffer.concat([buffer, Buffer.from([value])]) + + while (++i < len) { + out[i] = buffer[i] << 1 | buffer[i + 1] >> (7) + } + + return out +} + +exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 + + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) + } + + return out +} + + +}, +48380(__unused_webpack_module, exports, __webpack_require__) { +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) + +function encryptByte (self, byteParam, decrypt) { + var pad = self._cipher.encryptBlock(self._prev) + var out = pad[0] ^ byteParam + + self._prev = Buffer.concat([ + self._prev.slice(1), + Buffer.from([decrypt ? byteParam : out]) + ]) + + return out +} + +exports.encrypt = function (self, chunk, decrypt) { + var len = chunk.length + var out = Buffer.allocUnsafe(len) + var i = -1 + + while (++i < len) { + out[i] = encryptByte(self, chunk[i], decrypt) + } + + return out +} + + +}, +49924(__unused_webpack_module, exports, __webpack_require__) { +var xor = __webpack_require__(56483) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var incr32 = __webpack_require__(6129) + +function getBlock (self) { + var out = self._cipher.encryptBlockRaw(self._prev) + incr32(self._prev) + return out +} + +var blockSize = 16 +exports.encrypt = function (self, chunk) { + var chunkNum = Math.ceil(chunk.length / blockSize) + var start = self._cache.length + self._cache = Buffer.concat([ + self._cache, + Buffer.allocUnsafe(chunkNum * blockSize) + ]) + for (var i = 0; i < chunkNum; i++) { + var out = getBlock(self) + var offset = start + i * blockSize + self._cache.writeUInt32BE(out[0], offset + 0) + self._cache.writeUInt32BE(out[1], offset + 4) + self._cache.writeUInt32BE(out[2], offset + 8) + self._cache.writeUInt32BE(out[3], offset + 12) + } + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) +} + + +}, +63917(__unused_webpack_module, exports) { +exports.encrypt = function (self, block) { + return self._cipher.encryptBlock(block) +} + +exports.decrypt = function (self, block) { + return self._cipher.decryptBlock(block) +} + + +}, +3579(module, __unused_webpack_exports, __webpack_require__) { +var modeModules = { + ECB: __webpack_require__(63917), + CBC: __webpack_require__(30401), + CFB: __webpack_require__(14809), + CFB8: __webpack_require__(48380), + CFB1: __webpack_require__(64043), + OFB: __webpack_require__(68194), + CTR: __webpack_require__(49924), + GCM: __webpack_require__(49924) +} + +var modes = __webpack_require__(39072) + +for (var key in modes) { + modes[key].module = modeModules[modes[key].mode] +} + +module.exports = modes + + +}, +68194(__unused_webpack_module, exports, __webpack_require__) { +var xor = __webpack_require__(56483) + +function getBlock (self) { + self._prev = self._cipher.encryptBlock(self._prev) + return self._prev +} + +exports.encrypt = function (self, chunk) { + while (self._cache.length < chunk.length) { + self._cache = Buffer.concat([self._cache, getBlock(self)]) + } + + var pad = self._cache.slice(0, chunk.length) + self._cache = self._cache.slice(chunk.length) + return xor(chunk, pad) +} + + +}, +27017(module, __unused_webpack_exports, __webpack_require__) { +var aes = __webpack_require__(22643) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var Transform = __webpack_require__(27416) +var inherits = __webpack_require__(86040) + +function StreamCipher (mode, key, iv, decrypt) { + Transform.call(this) + + this._cipher = new aes.AES(key) + this._prev = Buffer.from(iv) + this._cache = Buffer.allocUnsafe(0) + this._secCache = Buffer.allocUnsafe(0) + this._decrypt = decrypt + this._mode = mode +} + +inherits(StreamCipher, Transform) + +StreamCipher.prototype._update = function (chunk) { + return this._mode.encrypt(this, chunk, this._decrypt) +} + +StreamCipher.prototype._final = function () { + this._cipher.scrub() +} + +module.exports = StreamCipher + + +}, +13925(__unused_webpack_module, exports, __webpack_require__) { +var DES = __webpack_require__(75128) +var aes = __webpack_require__(43528) +var aesModes = __webpack_require__(3579) +var desModes = __webpack_require__(44552) +var ebtk = __webpack_require__(43563) + +function createCipher (suite, password) { + suite = suite.toLowerCase() + + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') + } + + var keys = ebtk(password, false, keyLen, ivLen) + return createCipheriv(suite, keys.key, keys.iv) +} + +function createDecipher (suite, password) { + suite = suite.toLowerCase() + + var keyLen, ivLen + if (aesModes[suite]) { + keyLen = aesModes[suite].key + ivLen = aesModes[suite].iv + } else if (desModes[suite]) { + keyLen = desModes[suite].key * 8 + ivLen = desModes[suite].iv + } else { + throw new TypeError('invalid suite type') + } + + var keys = ebtk(password, false, keyLen, ivLen) + return createDecipheriv(suite, keys.key, keys.iv) +} + +function createCipheriv (suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createCipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite }) + + throw new TypeError('invalid suite type') +} + +function createDecipheriv (suite, key, iv) { + suite = suite.toLowerCase() + if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv) + if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true }) + + throw new TypeError('invalid suite type') +} + +function getCiphers () { + return Object.keys(desModes).concat(aes.getCiphers()) +} + +exports.createCipher = exports.Cipher = createCipher +exports.createCipheriv = exports.Cipheriv = createCipheriv +exports.createDecipher = exports.Decipher = createDecipher +exports.createDecipheriv = exports.Decipheriv = createDecipheriv +exports.listCiphers = exports.getCiphers = getCiphers + + +}, +75128(module, __unused_webpack_exports, __webpack_require__) { +var CipherBase = __webpack_require__(27416) +var des = __webpack_require__(88833) +var inherits = __webpack_require__(86040) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) + +var modes = { + 'des-ede3-cbc': des.CBC.instantiate(des.EDE), + 'des-ede3': des.EDE, + 'des-ede-cbc': des.CBC.instantiate(des.EDE), + 'des-ede': des.EDE, + 'des-cbc': des.CBC.instantiate(des.DES), + 'des-ecb': des.DES +} +modes.des = modes['des-cbc'] +modes.des3 = modes['des-ede3-cbc'] +module.exports = DES +inherits(DES, CipherBase) +function DES (opts) { + CipherBase.call(this) + var modeName = opts.mode.toLowerCase() + var mode = modes[modeName] + var type + if (opts.decrypt) { + type = 'decrypt' + } else { + type = 'encrypt' + } + var key = opts.key + if (!Buffer.isBuffer(key)) { + key = Buffer.from(key) + } + if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { + key = Buffer.concat([key, key.slice(0, 8)]) + } + var iv = opts.iv + if (!Buffer.isBuffer(iv)) { + iv = Buffer.from(iv) + } + this._des = mode.create({ + key: key, + iv: iv, + type: type + }) +} +DES.prototype._update = function (data) { + return Buffer.from(this._des.update(data)) +} +DES.prototype._final = function () { + return Buffer.from(this._des.final()) +} + + +}, +44552(__unused_webpack_module, exports) { +exports["des-ecb"] = { + key: 8, + iv: 0 +} +exports["des-cbc"] = exports.des = { + key: 8, + iv: 8 +} +exports["des-ede3-cbc"] = exports.des3 = { + key: 24, + iv: 8 +} +exports["des-ede3"] = { + key: 24, + iv: 0 +} +exports["des-ede-cbc"] = { + key: 16, + iv: 8 +} +exports["des-ede"] = { + key: 16, + iv: 0 +} + + +}, +3657(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(79657); +var randomBytes = __webpack_require__(31734); +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer); + +function getr(priv) { + var len = priv.modulus.byteLength(); + var r; + do { + r = new BN(randomBytes(len)); + } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)); + return r; +} + +function blind(priv) { + var r = getr(priv); + var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed(); + return { blinder: blinder, unblinder: r.invm(priv.modulus) }; +} + +function crt(msg, priv) { + var blinds = blind(priv); + var len = priv.modulus.byteLength(); + var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus); + var c1 = blinded.toRed(BN.mont(priv.prime1)); + var c2 = blinded.toRed(BN.mont(priv.prime2)); + var qinv = priv.coefficient; + var p = priv.prime1; + var q = priv.prime2; + var m1 = c1.redPow(priv.exponent1).fromRed(); + var m2 = c2.redPow(priv.exponent2).fromRed(); + var h = m1.isub(m2).imul(qinv).umod(p).imul(q); + return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len); +} +crt.getr = getr; + +module.exports = crt; + + +}, +72040(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +module.exports = __webpack_require__(76178); + + +}, +20007(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer); +var createHash = __webpack_require__(73752); +var stream = __webpack_require__(27581); +var inherits = __webpack_require__(86040); +var sign = __webpack_require__(18158); +var verify = __webpack_require__(34786); + +var algorithms = __webpack_require__(76178); +Object.keys(algorithms).forEach(function (key) { + algorithms[key].id = Buffer.from(algorithms[key].id, 'hex'); + algorithms[key.toLowerCase()] = algorithms[key]; +}); + +function Sign(algorithm) { + stream.Writable.call(this); + + var data = algorithms[algorithm]; + if (!data) { throw new Error('Unknown message digest'); } + + this._hashType = data.hash; + this._hash = createHash(data.hash); + this._tag = data.id; + this._signType = data.sign; +} +inherits(Sign, stream.Writable); + +Sign.prototype._write = function _write(data, _, done) { + this._hash.update(data); + done(); +}; + +Sign.prototype.update = function update(data, enc) { + this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data); + + return this; +}; + +Sign.prototype.sign = function signMethod(key, enc) { + this.end(); + var hash = this._hash.digest(); + var sig = sign(hash, key, this._hashType, this._signType, this._tag); + + return enc ? sig.toString(enc) : sig; +}; + +function Verify(algorithm) { + stream.Writable.call(this); + + var data = algorithms[algorithm]; + if (!data) { throw new Error('Unknown message digest'); } + + this._hash = createHash(data.hash); + this._tag = data.id; + this._signType = data.sign; +} +inherits(Verify, stream.Writable); + +Verify.prototype._write = function _write(data, _, done) { + this._hash.update(data); + done(); +}; + +Verify.prototype.update = function update(data, enc) { + this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data); + + return this; +}; + +Verify.prototype.verify = function verifyMethod(key, sig, enc) { + var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig; + + this.end(); + var hash = this._hash.digest(); + return verify(sigBuffer, hash, key, this._signType, this._tag); +}; + +function createSign(algorithm) { + return new Sign(algorithm); +} + +function createVerify(algorithm) { + return new Verify(algorithm); +} + +module.exports = { + Sign: createSign, + Verify: createVerify, + createSign: createSign, + createVerify: createVerify +}; + + +}, +18158(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer); +var createHmac = __webpack_require__(65870); +var crt = __webpack_require__(3657); +var EC = (__webpack_require__(92090)/* .ec */.ec); +var BN = __webpack_require__(79657); +var parseKeys = __webpack_require__(580); +var curves = __webpack_require__(69644); + +var RSA_PKCS1_PADDING = 1; + +function sign(hash, key, hashType, signType, tag) { + var priv = parseKeys(key); + if (priv.curve) { + // rsa keys can be interpreted as ecdsa ones in openssl + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); } + return ecSign(hash, priv); + } else if (priv.type === 'dsa') { + if (signType !== 'dsa') { throw new Error('wrong private key type'); } + return dsaSign(hash, priv, hashType); + } + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); } + if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); } + + hash = Buffer.concat([tag, hash]); + var len = priv.modulus.byteLength(); + var pad = [0, 1]; + while (hash.length + pad.length + 1 < len) { pad.push(0xff); } + pad.push(0x00); + var i = -1; + while (++i < hash.length) { pad.push(hash[i]); } + + var out = crt(pad, priv); + return out; +} + +function ecSign(hash, priv) { + var curveId = curves[priv.curve.join('.')]; + if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); } + + var curve = new EC(curveId); + var key = curve.keyFromPrivate(priv.privateKey); + var out = key.sign(hash); + + return Buffer.from(out.toDER()); +} + +function dsaSign(hash, priv, algo) { + var x = priv.params.priv_key; + var p = priv.params.p; + var q = priv.params.q; + var g = priv.params.g; + var r = new BN(0); + var k; + var H = bits2int(hash, q).mod(q); + var s = false; + var kv = getKey(x, q, hash, algo); + while (s === false) { + k = makeKey(q, kv, algo); + r = makeR(g, k, p, q); + s = k.invm(q).imul(H.add(x.mul(r))).mod(q); + if (s.cmpn(0) === 0) { + s = false; + r = new BN(0); + } + } + return toDER(r, s); +} + +function toDER(r, s) { + r = r.toArray(); + s = s.toArray(); + + // Pad values + if (r[0] & 0x80) { r = [0].concat(r); } + if (s[0] & 0x80) { s = [0].concat(s); } + + var total = r.length + s.length + 4; + var res = [ + 0x30, total, 0x02, r.length + ]; + res = res.concat(r, [0x02, s.length], s); + return Buffer.from(res); +} + +function getKey(x, q, hash, algo) { + x = Buffer.from(x.toArray()); + if (x.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - x.length); + x = Buffer.concat([zeros, x]); + } + var hlen = hash.length; + var hbits = bits2octets(hash, q); + var v = Buffer.alloc(hlen); + v.fill(1); + var k = Buffer.alloc(hlen); + k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest(); + v = createHmac(algo, k).update(v).digest(); + k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest(); + v = createHmac(algo, k).update(v).digest(); + return { k: k, v: v }; +} + +function bits2int(obits, q) { + var bits = new BN(obits); + var shift = (obits.length << 3) - q.bitLength(); + if (shift > 0) { bits.ishrn(shift); } + return bits; +} + +function bits2octets(bits, q) { + bits = bits2int(bits, q); + bits = bits.mod(q); + var out = Buffer.from(bits.toArray()); + if (out.length < q.byteLength()) { + var zeros = Buffer.alloc(q.byteLength() - out.length); + out = Buffer.concat([zeros, out]); + } + return out; +} + +function makeKey(q, kv, algo) { + var t; + var k; + + do { + t = Buffer.alloc(0); + + while (t.length * 8 < q.bitLength()) { + kv.v = createHmac(algo, kv.k).update(kv.v).digest(); + t = Buffer.concat([t, kv.v]); + } + + k = bits2int(t, q); + kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest(); + kv.v = createHmac(algo, kv.k).update(kv.v).digest(); + } while (k.cmp(q) !== -1); + + return k; +} + +function makeR(g, k, p, q) { + return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q); +} + +module.exports = sign; +module.exports.getKey = getKey; +module.exports.makeKey = makeKey; + + +}, +34786(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer); +var BN = __webpack_require__(79657); +var EC = (__webpack_require__(92090)/* .ec */.ec); +var parseKeys = __webpack_require__(580); +var curves = __webpack_require__(69644); + +function verify(sig, hash, key, signType, tag) { + var pub = parseKeys(key); + if (pub.type === 'ec') { + // rsa keys can be interpreted as ecdsa ones in openssl + if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); } + return ecVerify(sig, hash, pub); + } else if (pub.type === 'dsa') { + if (signType !== 'dsa') { throw new Error('wrong public key type'); } + return dsaVerify(sig, hash, pub); + } + if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); } + + hash = Buffer.concat([tag, hash]); + var len = pub.modulus.byteLength(); + var pad = [1]; + var padNum = 0; + while (hash.length + pad.length + 2 < len) { + pad.push(0xff); + padNum += 1; + } + pad.push(0x00); + var i = -1; + while (++i < hash.length) { + pad.push(hash[i]); + } + pad = Buffer.from(pad); + var red = BN.mont(pub.modulus); + sig = new BN(sig).toRed(red); + + sig = sig.redPow(new BN(pub.publicExponent)); + sig = Buffer.from(sig.fromRed().toArray()); + var out = padNum < 8 ? 1 : 0; + len = Math.min(sig.length, pad.length); + if (sig.length !== pad.length) { out = 1; } + + i = -1; + while (++i < len) { out |= sig[i] ^ pad[i]; } + return out === 0; +} + +function ecVerify(sig, hash, pub) { + var curveId = curves[pub.data.algorithm.curve.join('.')]; + if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); } + + var curve = new EC(curveId); + var pubkey = pub.data.subjectPrivateKey.data; + + return curve.verify(hash, sig, pubkey); +} + +function dsaVerify(sig, hash, pub) { + var p = pub.data.p; + var q = pub.data.q; + var g = pub.data.g; + var y = pub.data.pub_key; + var unpacked = parseKeys.signature.decode(sig, 'der'); + var s = unpacked.s; + var r = unpacked.r; + checkValue(s, q); + checkValue(r, q); + var montp = BN.mont(p); + var w = s.invm(q); + var v = g.toRed(montp) + .redPow(new BN(hash).mul(w).mod(q)) + .fromRed() + .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()) + .mod(p) + .mod(q); + return v.cmp(r) === 0; +} + +function checkValue(b, q) { + if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); } + if (b.cmp(q) >= 0) { throw new Error('invalid sig'); } +} + +module.exports = verify; + + +}, +56483(module) { +module.exports = function xor (a, b) { + var length = Math.min(a.length, b.length) + var buffer = new Buffer(length) + + for (var i = 0; i < length; ++i) { + buffer[i] = a[i] ^ b[i] + } + + return buffer +} + + +}, +75334(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + + + +const base64 = __webpack_require__(8910) +const ieee754 = __webpack_require__(17299) +const customInspectSymbol = + (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation + ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation + : null + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +const K_MAX_LENGTH = 0x7fffffff +exports.kMaxLength = K_MAX_LENGTH + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && + typeof console.error === 'function') { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ) +} + +function typedArraySupport () { + // Can typed array instances can be augmented? + try { + const arr = new Uint8Array(1) + const proto = { foo: function () { return 42 } } + Object.setPrototypeOf(proto, Uint8Array.prototype) + Object.setPrototypeOf(arr, proto) + return arr.foo() === 42 + } catch (e) { + return false + } +} + +Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } +}) + +Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset + } +}) + +function createBuffer (length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') + } + // Return an augmented `Uint8Array` instance + const buf = new Uint8Array(length) + Object.setPrototypeOf(buf, Buffer.prototype) + return buf +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +function from (value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } + + if (ArrayBuffer.isView(value)) { + return fromArrayView(value) + } + + if (value == null) { + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } + + if (isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + + if (typeof SharedArrayBuffer !== 'undefined' && + (isInstance(value, SharedArrayBuffer) || + (value && isInstance(value.buffer, SharedArrayBuffer)))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } + + const valueOf = value.valueOf && value.valueOf() + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } + + const b = fromObject(value) + if (b) return b + + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length) + } + + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) +} + +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype) +Object.setPrototypeOf(Buffer, Uint8Array) + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } +} + +function alloc (size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpreted as a start offset. + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) +} + +function allocUnsafe (size) { + assertSize(size) + return createBuffer(size < 0 ? 0 : checked(size) | 0) +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) +} + +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + + const length = byteLength(string, encoding) | 0 + let buf = createBuffer(length) + + const actual = buf.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function fromArrayLike (array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0 + const buf = createBuffer(length) + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} + +function fromArrayView (arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy = new Uint8Array(arrayView) + return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength) + } + return fromArrayLike(arrayView) +} + +function fromArrayBuffer (array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } + + let buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(buf, Buffer.prototype) + + return buf +} + +function fromObject (obj) { + if (Buffer.isBuffer(obj)) { + const len = checked(obj.length) | 0 + const buf = createBuffer(len) + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len) + return buf + } + + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } +} + +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return b != null && b._isBuffer === true && + b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false +} + +Buffer.compare = function compare (a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } + + if (a === b) return 0 + + let x = a.length + let y = b.length + + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + let i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + const buffer = Buffer.allocUnsafe(length) + let pos = 0 + for (i = 0; i < list.length; ++i) { + let buf = list[i] + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer.length) { + if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf) + buf.copy(buffer, pos) + } else { + Uint8Array.prototype.set.call( + buffer, + buf, + pos + ) + } + } else if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } else { + buf.copy(buffer, pos) + } + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + typeof string + ) + } + + const len = string.length + const mustMatch = (arguments.length > 2 && arguments[2] === true) + if (!mustMatch && len === 0) return 0 + + // Use a for loop to avoid recursion + let loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 + } + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + let loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coercion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + const i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + const len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + const len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + const len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + const length = this.length + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.toLocaleString = Buffer.prototype.toString + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + let str = '' + const max = exports.INSPECT_MAX_BYTES + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() + if (this.length > max) str += ' ... ' + return '' +} +if (customInspectSymbol) { + Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength) + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + (typeof target) + ) + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + let x = thisEnd - thisStart + let y = end - start + const len = Math.min(x, y) + + const thisCopy = this.slice(thisStart, thisEnd) + const targetCopy = target.slice(start, end) + + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + let indexSize = 1 + let arrLength = arr.length + let valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + let i + if (dir) { + let foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + let found = true + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + const remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + const strLen = string.length + + if (length > strLen / 2) { + length = strLen / 2 + } + let i + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16) + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0 + if (isFinite(length)) { + length = length >>> 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + const remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + let loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + case 'latin1': + case 'binary': + return asciiWrite(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + const res = [] + + let i = start + while (i < end) { + const firstByte = buf[i] + let codePoint = null + let bytesPerSequence = (firstByte > 0xEF) + ? 4 + : (firstByte > 0xDF) + ? 3 + : (firstByte > 0xBF) + ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +const MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + const len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + let res = '' + let i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + let ret = '' + end = Math.min(buf.length, end) + + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + let ret = '' + end = Math.min(buf.length, end) + + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + const len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + let out = '' + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]] + } + return out +} + +function utf16leSlice (buf, start, end) { + const bytes = buf.slice(start, end) + let res = '' + // If bytes.length is odd, the last 8 bits must be ignored (same as node.js) + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + const len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + const newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(newBuf, Buffer.prototype) + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUintLE = +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + let val = this[offset] + let mul = 1 + let i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUintBE = +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + let val = this[offset + --byteLength] + let mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUint8 = +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUint16LE = +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUint16BE = +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUint32LE = +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUint32BE = +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } + + const lo = first + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 24 + + const hi = this[++offset] + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + last * 2 ** 24 + + return BigInt(lo) + (BigInt(hi) << BigInt(32)) +}) + +Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } + + const hi = first * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + this[++offset] + + const lo = this[++offset] * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + last + + return (BigInt(hi) << BigInt(32)) + BigInt(lo) +}) + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + let val = this[offset] + let mul = 1 + let i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + let i = byteLength + let mul = 1 + let val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + const val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + const val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } + + const val = this[offset + 4] + + this[offset + 5] * 2 ** 8 + + this[offset + 6] * 2 ** 16 + + (last << 24) // Overflow + + return (BigInt(val) << BigInt(32)) + + BigInt(first + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 24) +}) + +Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) { + offset = offset >>> 0 + validateNumber(offset, 'offset') + const first = this[offset] + const last = this[offset + 7] + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8) + } + + const val = (first << 24) + // Overflow + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + this[++offset] + + return (BigInt(val) << BigInt(32)) + + BigInt(this[++offset] * 2 ** 24 + + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + last) +}) + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUintLE = +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + let mul = 1 + let i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUintBE = +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + let i = byteLength - 1 + let mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUint8 = +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeUint16LE = +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} + +Buffer.prototype.writeUint16BE = +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} + +Buffer.prototype.writeUint32LE = +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + return offset + 4 +} + +Buffer.prototype.writeUint32BE = +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} + +function wrtBigUInt64LE (buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7) + + let lo = Number(value & BigInt(0xffffffff)) + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + lo = lo >> 8 + buf[offset++] = lo + let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + hi = hi >> 8 + buf[offset++] = hi + return offset +} + +function wrtBigUInt64BE (buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7) + + let lo = Number(value & BigInt(0xffffffff)) + buf[offset + 7] = lo + lo = lo >> 8 + buf[offset + 6] = lo + lo = lo >> 8 + buf[offset + 5] = lo + lo = lo >> 8 + buf[offset + 4] = lo + let hi = Number(value >> BigInt(32) & BigInt(0xffffffff)) + buf[offset + 3] = hi + hi = hi >> 8 + buf[offset + 2] = hi + hi = hi >> 8 + buf[offset + 1] = hi + hi = hi >> 8 + buf[offset] = hi + return offset + 8 +} + +Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) +}) + +Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff')) +}) + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + const limit = Math.pow(2, (8 * byteLength) - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + let i = 0 + let mul = 1 + let sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + const limit = Math.pow(2, (8 * byteLength) - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + let i = byteLength - 1 + let mul = 1 + let sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} + +Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) +}) + +Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff')) +}) + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + const len = end - start + + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end) + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + const code = val.charCodeAt(0) + if ((encoding === 'utf8' && code < 128) || + encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } else if (typeof val === 'boolean') { + val = Number(val) + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + let i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + const bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val, encoding) + const len = bytes.length + if (len === 0) { + throw new TypeError('The value "' + val + + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// CUSTOM ERRORS +// ============= + +// Simplified versions from Node, changed for Buffer-only usage +const errors = {} +function E (sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor () { + super() + + Object.defineProperty(this, 'message', { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }) + + // Add the error code to the name to include it in the stack trace. + this.name = `${this.name} [${sym}]` + // Access the stack to generate the error message including the error code + // from the name. + this.stack // eslint-disable-line no-unused-expressions + // Reset the name to the actual name. + delete this.name + } + + get code () { + return sym + } + + set code (value) { + Object.defineProperty(this, 'code', { + configurable: true, + enumerable: true, + value, + writable: true + }) + } + + toString () { + return `${this.name} [${sym}]: ${this.message}` + } + } +} + +E('ERR_BUFFER_OUT_OF_BOUNDS', + function (name) { + if (name) { + return `${name} is outside of buffer bounds` + } + + return 'Attempt to access memory outside buffer bounds' + }, RangeError) +E('ERR_INVALID_ARG_TYPE', + function (name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}` + }, TypeError) +E('ERR_OUT_OF_RANGE', + function (str, range, input) { + let msg = `The value of "${str}" is out of range.` + let received = input + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)) + } else if (typeof input === 'bigint') { + received = String(input) + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received) + } + received += 'n' + } + msg += ` It must be ${range}. Received ${received}` + return msg + }, RangeError) + +function addNumericalSeparator (val) { + let res = '' + let i = val.length + const start = val[0] === '-' ? 1 : 0 + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}` + } + return `${val.slice(0, i)}${res}` +} + +// CHECK FUNCTIONS +// =============== + +function checkBounds (buf, offset, byteLength) { + validateNumber(offset, 'offset') + if (buf[offset] === undefined || buf[offset + byteLength] === undefined) { + boundsError(offset, buf.length - (byteLength + 1)) + } +} + +function checkIntBI (value, min, max, buf, offset, byteLength) { + if (value > max || value < min) { + const n = typeof min === 'bigint' ? 'n' : '' + let range + if (byteLength > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}` + } else { + range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + + `${(byteLength + 1) * 8 - 1}${n}` + } + } else { + range = `>= ${min}${n} and <= ${max}${n}` + } + throw new errors.ERR_OUT_OF_RANGE('value', range, value) + } + checkBounds(buf, offset, byteLength) +} + +function validateNumber (value, name) { + if (typeof value !== 'number') { + throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value) + } +} + +function boundsError (value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type) + throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value) + } + + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS() + } + + throw new errors.ERR_OUT_OF_RANGE(type || 'offset', + `>= ${type ? 1 : 0} and <= ${length}`, + value) +} + +// HELPER FUNCTIONS +// ================ + +const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0] + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function utf8ToBytes (string, units) { + units = units || Infinity + let codePoint + const length = string.length + let leadSurrogate = null + const bytes = [] + + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + const byteArray = [] + for (let i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + let c, hi, lo + const byteArray = [] + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + let i + for (i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance (obj, type) { + return obj instanceof type || + (obj != null && obj.constructor != null && obj.constructor.name != null && + obj.constructor.name === type.name) +} +function numberIsNaN (obj) { + // For IE11 support + return obj !== obj // eslint-disable-line no-self-compare +} + +// Create lookup table for `toString('hex')` +// See: https://github.com/feross/buffer/issues/219 +const hexSliceLookupTable = (function () { + const alphabet = '0123456789abcdef' + const table = new Array(256) + for (let i = 0; i < 16; ++i) { + const i16 = i * 16 + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j] + } + } + return table +})() + +// Return not function with Error if BigInt not supported +function defineBigIntMethod (fn) { + return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn +} + +function BufferBigIntNotDefined () { + throw new Error('BigInt not supported') +} + + +}, +70488(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +const ipRegex = __webpack_require__(22576); + +const defaultOpts = {exact: false}; + +const v4str = `${ipRegex.v4().source}\\/(3[0-2]|[12]?[0-9])`; +const v6str = `${ipRegex.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`; + +// can not precompile the non-exact regexes because global flag makes the regex object stateful +// which would require the user to reset .lastIndex on subsequent calls +const v4exact = new RegExp(`^${v4str}$`); +const v6exact = new RegExp(`^${v6str}$`); +const v46exact = new RegExp(`(?:^${v4str}$)|(?:^${v6str}$)`); + +module.exports = ({exact} = defaultOpts) => exact ? v46exact : new RegExp(`(?:${v4str})|(?:${v6str})`, "g"); +module.exports.v4 = ({exact} = defaultOpts) => exact ? v4exact : new RegExp(v4str, "g"); +module.exports.v6 = ({exact} = defaultOpts) => exact ? v6exact : new RegExp(v6str, "g"); + + +}, +27416(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer); +var Transform = (__webpack_require__(28280)/* .Transform */.Transform); +var StringDecoder = (__webpack_require__(33345)/* .StringDecoder */.StringDecoder); +var inherits = __webpack_require__(86040); + +function CipherBase(hashMode) { + Transform.call(this); + this.hashMode = typeof hashMode === 'string'; + if (this.hashMode) { + this[hashMode] = this._finalOrDigest; + } else { + this['final'] = this._finalOrDigest; + } + if (this._final) { + this.__final = this._final; + this._final = null; + } + this._decoder = null; + this._encoding = null; +} +inherits(CipherBase, Transform); + +var useUint8Array = typeof Uint8Array !== 'undefined'; +var useArrayBuffer = typeof ArrayBuffer !== 'undefined' + && typeof Uint8Array !== 'undefined' + && ArrayBuffer.isView + && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT); + +function toBuffer(data, encoding) { + /* + * No need to do anything for exact instance + * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed + */ + if (data instanceof Buffer) { + return data; + } + + // Convert strings to Buffer + if (typeof data === 'string') { + return Buffer.from(data, encoding); + } + + /* + * Wrap any TypedArray instances and DataViews + * Makes sense only on engines with full TypedArray support -- let Buffer detect that + */ + if (useArrayBuffer && ArrayBuffer.isView(data)) { + // Bug in Node.js <6.3.1, which treats this as out-of-bounds + if (data.byteLength === 0) { + return Buffer.alloc(0); + } + + var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength); + /* + * Recheck result size, as offset/length doesn't work on Node.js <5.10 + * We just go to Uint8Array case if this fails + */ + if (res.byteLength === data.byteLength) { + return res; + } + } + + /* + * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over + * Doesn't make sense with other TypedArray instances + */ + if (useUint8Array && data instanceof Uint8Array) { + return Buffer.from(data); + } + + /* + * Old Buffer polyfill on an engine that doesn't have TypedArray support + * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed + * Convert to our current Buffer implementation + */ + if ( + Buffer.isBuffer(data) + && data.constructor + && typeof data.constructor.isBuffer === 'function' + && data.constructor.isBuffer(data) + ) { + return Buffer.from(data); + } + + throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.'); +} + +CipherBase.prototype.update = function (data, inputEnc, outputEnc) { + var bufferData = toBuffer(data, inputEnc); // asserts correct input type + var outData = this._update(bufferData); + if (this.hashMode) { + return this; + } + + if (outputEnc) { + outData = this._toString(outData, outputEnc); + } + + return outData; +}; + +CipherBase.prototype.setAutoPadding = function () {}; +CipherBase.prototype.getAuthTag = function () { + throw new Error('trying to get auth tag in unsupported state'); +}; + +CipherBase.prototype.setAuthTag = function () { + throw new Error('trying to set auth tag in unsupported state'); +}; + +CipherBase.prototype.setAAD = function () { + throw new Error('trying to set aad in unsupported state'); +}; + +CipherBase.prototype._transform = function (data, _, next) { + var err; + try { + if (this.hashMode) { + this._update(data); + } else { + this.push(this._update(data)); + } + } catch (e) { + err = e; + } finally { + next(err); + } +}; +CipherBase.prototype._flush = function (done) { + var err; + try { + this.push(this.__final()); + } catch (e) { + err = e; + } + + done(err); +}; +CipherBase.prototype._finalOrDigest = function (outputEnc) { + var outData = this.__final() || Buffer.alloc(0); + if (outputEnc) { + outData = this._toString(outData, outputEnc, true); + } + return outData; +}; + +CipherBase.prototype._toString = function (value, enc, fin) { + if (!this._decoder) { + this._decoder = new StringDecoder(enc); + this._encoding = enc; + } + + if (this._encoding !== enc) { + throw new Error('can’t switch encodings'); + } + + var out = this._decoder.write(value); + if (fin) { + out += this._decoder.end(); + } + + return out; +}; + +module.exports = CipherBase; + + +}, +98518(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +/** + * Module dependenices + */ + +const clone = __webpack_require__(2595); +const typeOf = __webpack_require__(44456); +const isPlainObject = __webpack_require__(92153); + +function cloneDeep(val, instanceClone) { + switch (typeOf(val)) { + case 'object': + return cloneObjectDeep(val, instanceClone); + case 'array': + return cloneArrayDeep(val, instanceClone); + default: { + return clone(val); + } + } +} + +function cloneObjectDeep(val, instanceClone) { + if (typeof instanceClone === 'function') { + return instanceClone(val); + } + if (instanceClone || isPlainObject(val)) { + const res = new val.constructor(); + for (let key in val) { + res[key] = cloneDeep(val[key], instanceClone); + } + return res; + } + return val; +} + +function cloneArrayDeep(val, instanceClone) { + const res = new val.constructor(val.length); + for (let i = 0; i < val.length; i++) { + res[i] = cloneDeep(val[i], instanceClone); + } + return res; +} + +/** + * Expose `cloneDeep` + */ + +module.exports = cloneDeep; + + +}, +93495(__unused_webpack_module, exports, __webpack_require__) { +// 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. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +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 objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (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 = __webpack_require__(75334)/* .Buffer.isBuffer */.Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +}, +56995(module, __unused_webpack_exports, __webpack_require__) { +var elliptic = __webpack_require__(92090) +var BN = __webpack_require__(91939) + +module.exports = function createECDH (curve) { + return new ECDH(curve) +} + +var aliases = { + secp256k1: { + name: 'secp256k1', + byteLength: 32 + }, + secp224r1: { + name: 'p224', + byteLength: 28 + }, + prime256v1: { + name: 'p256', + byteLength: 32 + }, + prime192v1: { + name: 'p192', + byteLength: 24 + }, + ed25519: { + name: 'ed25519', + byteLength: 32 + }, + secp384r1: { + name: 'p384', + byteLength: 48 + }, + secp521r1: { + name: 'p521', + byteLength: 66 + } +} + +aliases.p224 = aliases.secp224r1 +aliases.p256 = aliases.secp256r1 = aliases.prime256v1 +aliases.p192 = aliases.secp192r1 = aliases.prime192v1 +aliases.p384 = aliases.secp384r1 +aliases.p521 = aliases.secp521r1 + +function ECDH (curve) { + this.curveType = aliases[curve] + if (!this.curveType) { + this.curveType = { + name: curve + } + } + this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap + this.keys = void 0 +} + +ECDH.prototype.generateKeys = function (enc, format) { + this.keys = this.curve.genKeyPair() + return this.getPublicKey(enc, format) +} + +ECDH.prototype.computeSecret = function (other, inenc, enc) { + inenc = inenc || 'utf8' + if (!Buffer.isBuffer(other)) { + other = new Buffer(other, inenc) + } + var otherPub = this.curve.keyFromPublic(other).getPublic() + var out = otherPub.mul(this.keys.getPrivate()).getX() + return formatReturnValue(out, enc, this.curveType.byteLength) +} + +ECDH.prototype.getPublicKey = function (enc, format) { + var key = this.keys.getPublic(format === 'compressed', true) + if (format === 'hybrid') { + if (key[key.length - 1] % 2) { + key[0] = 7 + } else { + key[0] = 6 + } + } + return formatReturnValue(key, enc) +} + +ECDH.prototype.getPrivateKey = function (enc) { + return formatReturnValue(this.keys.getPrivate(), enc) +} + +ECDH.prototype.setPublicKey = function (pub, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(pub)) { + pub = new Buffer(pub, enc) + } + this.keys._importPublic(pub) + return this +} + +ECDH.prototype.setPrivateKey = function (priv, enc) { + enc = enc || 'utf8' + if (!Buffer.isBuffer(priv)) { + priv = new Buffer(priv, enc) + } + + var _priv = new BN(priv) + _priv = _priv.toString(16) + this.keys = this.curve.genKeyPair() + this.keys._importPrivate(_priv) + return this +} + +function formatReturnValue (bn, enc, len) { + if (!Array.isArray(bn)) { + bn = bn.toArray() + } + var buf = new Buffer(bn) + if (len && buf.length < len) { + var zeros = new Buffer(len - buf.length) + zeros.fill(0) + buf = Buffer.concat([zeros, buf]) + } + if (!enc) { + return buf + } else { + return buf.toString(enc) + } +} + + +}, +73752(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + +var inherits = __webpack_require__(86040) +var MD5 = __webpack_require__(52164) +var RIPEMD160 = __webpack_require__(8785) +var sha = __webpack_require__(8993) +var Base = __webpack_require__(27416) + +function Hash (hash) { + Base.call(this, 'digest') + + this._hash = hash +} + +inherits(Hash, Base) + +Hash.prototype._update = function (data) { + this._hash.update(data) +} + +Hash.prototype._final = function () { + return this._hash.digest() +} + +module.exports = function createHash (alg) { + alg = alg.toLowerCase() + if (alg === 'md5') return new MD5() + if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160() + + return new Hash(sha(alg)) +} + + +}, +99124(module, __unused_webpack_exports, __webpack_require__) { +var MD5 = __webpack_require__(52164) + +module.exports = function (buffer) { + return new MD5().update(buffer).digest() +} + + +}, +65870(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + +var inherits = __webpack_require__(86040) +var Legacy = __webpack_require__(44087) +var Base = __webpack_require__(27416) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) +var md5 = __webpack_require__(99124) +var RIPEMD160 = __webpack_require__(8785) + +var sha = __webpack_require__(8993) + +var ZEROS = Buffer.alloc(128) + +function Hmac (alg, key) { + Base.call(this, 'digest') + if (typeof key === 'string') { + key = Buffer.from(key) + } + + var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 + + this._alg = alg + this._key = key + if (key.length > blocksize) { + var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) + key = hash.update(key).digest() + } else if (key.length < blocksize) { + key = Buffer.concat([key, ZEROS], blocksize) + } + + var ipad = this._ipad = Buffer.allocUnsafe(blocksize) + var opad = this._opad = Buffer.allocUnsafe(blocksize) + + for (var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 0x36 + opad[i] = key[i] ^ 0x5C + } + this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) + this._hash.update(ipad) +} + +inherits(Hmac, Base) + +Hmac.prototype._update = function (data) { + this._hash.update(data) +} + +Hmac.prototype._final = function () { + var h = this._hash.digest() + var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) + return hash.update(this._opad).update(h).digest() +} + +module.exports = function createHmac (alg, key) { + alg = alg.toLowerCase() + if (alg === 'rmd160' || alg === 'ripemd160') { + return new Hmac('rmd160', key) + } + if (alg === 'md5') { + return new Legacy(md5, key) + } + return new Hmac(alg, key) +} + + +}, +44087(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + +var inherits = __webpack_require__(86040) +var Buffer = (__webpack_require__(46279)/* .Buffer */.Buffer) + +var Base = __webpack_require__(27416) + +var ZEROS = Buffer.alloc(128) +var blocksize = 64 + +function Hmac (alg, key) { + Base.call(this, 'digest') + if (typeof key === 'string') { + key = Buffer.from(key) + } + + this._alg = alg + this._key = key + + if (key.length > blocksize) { + key = alg(key) + } else if (key.length < blocksize) { + key = Buffer.concat([key, ZEROS], blocksize) + } + + var ipad = this._ipad = Buffer.allocUnsafe(blocksize) + var opad = this._opad = Buffer.allocUnsafe(blocksize) + + for (var i = 0; i < blocksize; i++) { + ipad[i] = key[i] ^ 0x36 + opad[i] = key[i] ^ 0x5C + } + + this._hash = [ipad] +} + +inherits(Hmac, Base) + +Hmac.prototype._update = function (data) { + this._hash.push(data) +} + +Hmac.prototype._final = function () { + var h = this._alg(Buffer.concat(this._hash)) + return this._alg(Buffer.concat([this._opad, h])) +} +module.exports = Hmac + + +}, +86015(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(31734) +exports.createHash = exports.Hash = __webpack_require__(73752) +exports.createHmac = exports.Hmac = __webpack_require__(65870) + +var algos = __webpack_require__(72040) +var algoKeys = Object.keys(algos) +var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys) +exports.getHashes = function () { + return hashes +} + +var p = __webpack_require__(44085) +exports.pbkdf2 = p.pbkdf2 +exports.pbkdf2Sync = p.pbkdf2Sync + +var aes = __webpack_require__(13925) + +exports.Cipher = aes.Cipher +exports.createCipher = aes.createCipher +exports.Cipheriv = aes.Cipheriv +exports.createCipheriv = aes.createCipheriv +exports.Decipher = aes.Decipher +exports.createDecipher = aes.createDecipher +exports.Decipheriv = aes.Decipheriv +exports.createDecipheriv = aes.createDecipheriv +exports.getCiphers = aes.getCiphers +exports.listCiphers = aes.listCiphers + +var dh = __webpack_require__(84119) + +exports.DiffieHellmanGroup = dh.DiffieHellmanGroup +exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup +exports.getDiffieHellman = dh.getDiffieHellman +exports.createDiffieHellman = dh.createDiffieHellman +exports.DiffieHellman = dh.DiffieHellman + +var sign = __webpack_require__(20007) + +exports.createSign = sign.createSign +exports.Sign = sign.Sign +exports.createVerify = sign.createVerify +exports.Verify = sign.Verify + +exports.createECDH = __webpack_require__(56995) + +var publicEncrypt = __webpack_require__(23772) + +exports.publicEncrypt = publicEncrypt.publicEncrypt +exports.privateEncrypt = publicEncrypt.privateEncrypt +exports.publicDecrypt = publicEncrypt.publicDecrypt +exports.privateDecrypt = publicEncrypt.privateDecrypt + +// the least I can do is make error messages for the rest of the node.js/crypto api. +// ;[ +// 'createCredentials' +// ].forEach(function (name) { +// exports[name] = function () { +// throw new Error([ +// 'sorry, ' + name + ' is not implemented yet', +// 'we accept pull requests', +// 'https://github.com/crypto-browserify/crypto-browserify' +// ].join('\n')) +// } +// }) + +var rf = __webpack_require__(75238) + +exports.randomFill = rf.randomFill +exports.randomFillSync = rf.randomFillSync + +exports.createCredentials = function () { + throw new Error([ + 'sorry, createCredentials is not implemented yet', + 'we accept pull requests', + 'https://github.com/crypto-browserify/crypto-browserify' + ].join('\n')) +} + +exports.constants = { + 'DH_CHECK_P_NOT_SAFE_PRIME': 2, + 'DH_CHECK_P_NOT_PRIME': 1, + 'DH_UNABLE_TO_CHECK_GENERATOR': 4, + 'DH_NOT_SUITABLE_GENERATOR': 8, + 'NPN_ENABLED': 1, + 'ALPN_ENABLED': 1, + 'RSA_PKCS1_PADDING': 1, + 'RSA_SSLV23_PADDING': 2, + 'RSA_NO_PADDING': 3, + 'RSA_PKCS1_OAEP_PADDING': 4, + 'RSA_X931_PADDING': 5, + 'RSA_PKCS1_PSS_PADDING': 6, + 'POINT_CONVERSION_COMPRESSED': 2, + 'POINT_CONVERSION_UNCOMPRESSED': 4, + 'POINT_CONVERSION_HYBRID': 6 +} + + +}, +81742(module, exports, __webpack_require__) { +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(); + } + else {} +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.crypto) { + crypto = __webpack_require__.g.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && 'function' === 'function') { + try { + crypto = __webpack_require__(15703); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + return CryptoJS; + +})); + +}, +68405(module, exports, __webpack_require__) { +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(81742)); + } + else {} +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + return CryptoJS.MD5; + +})); + +}, +37254(module, exports, __webpack_require__) { +;(function (root, factory) { + if (true) { + // CommonJS + module.exports = exports = factory(__webpack_require__(81742)); + } + else {} +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + return CryptoJS.SHA256; + +})); + +}, +88833(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +exports.utils = __webpack_require__(62827); +exports.Cipher = __webpack_require__(8887); +exports.DES = __webpack_require__(30386); +exports.CBC = __webpack_require__(63596); +exports.EDE = __webpack_require__(34366); + + +}, +63596(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +var assert = __webpack_require__(77285); +var inherits = __webpack_require__(86040); + +var proto = {}; + +function CBCState(iv) { + assert.equal(iv.length, 8, 'Invalid IV length'); + + this.iv = new Array(8); + for (var i = 0; i < this.iv.length; i++) + this.iv[i] = iv[i]; +} + +function instantiate(Base) { + function CBC(options) { + Base.call(this, options); + this._cbcInit(); + } + inherits(CBC, Base); + + var keys = Object.keys(proto); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + CBC.prototype[key] = proto[key]; + } + + CBC.create = function create(options) { + return new CBC(options); + }; + + return CBC; +} + +exports.instantiate = instantiate; + +proto._cbcInit = function _cbcInit() { + var state = new CBCState(this.options.iv); + this._cbcState = state; +}; + +proto._update = function _update(inp, inOff, out, outOff) { + var state = this._cbcState; + var superProto = this.constructor.super_.prototype; + + var iv = state.iv; + if (this.type === 'encrypt') { + for (var i = 0; i < this.blockSize; i++) + iv[i] ^= inp[inOff + i]; + + superProto._update.call(this, iv, 0, out, outOff); + + for (var i = 0; i < this.blockSize; i++) + iv[i] = out[outOff + i]; + } else { + superProto._update.call(this, inp, inOff, out, outOff); + + for (var i = 0; i < this.blockSize; i++) + out[outOff + i] ^= iv[i]; + + for (var i = 0; i < this.blockSize; i++) + iv[i] = inp[inOff + i]; + } +}; + + +}, +8887(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var assert = __webpack_require__(77285); + +function Cipher(options) { + this.options = options; + + this.type = this.options.type; + this.blockSize = 8; + this._init(); + + this.buffer = new Array(this.blockSize); + this.bufferOff = 0; + this.padding = options.padding !== false +} +module.exports = Cipher; + +Cipher.prototype._init = function _init() { + // Might be overrided +}; + +Cipher.prototype.update = function update(data) { + if (data.length === 0) + return []; + + if (this.type === 'decrypt') + return this._updateDecrypt(data); + else + return this._updateEncrypt(data); +}; + +Cipher.prototype._buffer = function _buffer(data, off) { + // Append data to buffer + var min = Math.min(this.buffer.length - this.bufferOff, data.length - off); + for (var i = 0; i < min; i++) + this.buffer[this.bufferOff + i] = data[off + i]; + this.bufferOff += min; + + // Shift next + return min; +}; + +Cipher.prototype._flushBuffer = function _flushBuffer(out, off) { + this._update(this.buffer, 0, out, off); + this.bufferOff = 0; + return this.blockSize; +}; + +Cipher.prototype._updateEncrypt = function _updateEncrypt(data) { + var inputOff = 0; + var outputOff = 0; + + var count = ((this.bufferOff + data.length) / this.blockSize) | 0; + var out = new Array(count * this.blockSize); + + if (this.bufferOff !== 0) { + inputOff += this._buffer(data, inputOff); + + if (this.bufferOff === this.buffer.length) + outputOff += this._flushBuffer(out, outputOff); + } + + // Write blocks + var max = data.length - ((data.length - inputOff) % this.blockSize); + for (; inputOff < max; inputOff += this.blockSize) { + this._update(data, inputOff, out, outputOff); + outputOff += this.blockSize; + } + + // Queue rest + for (; inputOff < data.length; inputOff++, this.bufferOff++) + this.buffer[this.bufferOff] = data[inputOff]; + + return out; +}; + +Cipher.prototype._updateDecrypt = function _updateDecrypt(data) { + var inputOff = 0; + var outputOff = 0; + + var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1; + var out = new Array(count * this.blockSize); + + // TODO(indutny): optimize it, this is far from optimal + for (; count > 0; count--) { + inputOff += this._buffer(data, inputOff); + outputOff += this._flushBuffer(out, outputOff); + } + + // Buffer rest of the input + inputOff += this._buffer(data, inputOff); + + return out; +}; + +Cipher.prototype.final = function final(buffer) { + var first; + if (buffer) + first = this.update(buffer); + + var last; + if (this.type === 'encrypt') + last = this._finalEncrypt(); + else + last = this._finalDecrypt(); + + if (first) + return first.concat(last); + else + return last; +}; + +Cipher.prototype._pad = function _pad(buffer, off) { + if (off === 0) + return false; + + while (off < buffer.length) + buffer[off++] = 0; + + return true; +}; + +Cipher.prototype._finalEncrypt = function _finalEncrypt() { + if (!this._pad(this.buffer, this.bufferOff)) + return []; + + var out = new Array(this.blockSize); + this._update(this.buffer, 0, out, 0); + return out; +}; + +Cipher.prototype._unpad = function _unpad(buffer) { + return buffer; +}; + +Cipher.prototype._finalDecrypt = function _finalDecrypt() { + assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt'); + var out = new Array(this.blockSize); + this._flushBuffer(out, 0); + + return this._unpad(out); +}; + + +}, +30386(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var assert = __webpack_require__(77285); +var inherits = __webpack_require__(86040); + +var utils = __webpack_require__(62827); +var Cipher = __webpack_require__(8887); + +function DESState() { + this.tmp = new Array(2); + this.keys = null; +} + +function DES(options) { + Cipher.call(this, options); + + var state = new DESState(); + this._desState = state; + + this.deriveKeys(state, options.key); +} +inherits(DES, Cipher); +module.exports = DES; + +DES.create = function create(options) { + return new DES(options); +}; + +var shiftTable = [ + 1, 1, 2, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 1 +]; + +DES.prototype.deriveKeys = function deriveKeys(state, key) { + state.keys = new Array(16 * 2); + + assert.equal(key.length, this.blockSize, 'Invalid key length'); + + var kL = utils.readUInt32BE(key, 0); + var kR = utils.readUInt32BE(key, 4); + + utils.pc1(kL, kR, state.tmp, 0); + kL = state.tmp[0]; + kR = state.tmp[1]; + for (var i = 0; i < state.keys.length; i += 2) { + var shift = shiftTable[i >>> 1]; + kL = utils.r28shl(kL, shift); + kR = utils.r28shl(kR, shift); + utils.pc2(kL, kR, state.keys, i); + } +}; + +DES.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._desState; + + var l = utils.readUInt32BE(inp, inOff); + var r = utils.readUInt32BE(inp, inOff + 4); + + // Initial Permutation + utils.ip(l, r, state.tmp, 0); + l = state.tmp[0]; + r = state.tmp[1]; + + if (this.type === 'encrypt') + this._encrypt(state, l, r, state.tmp, 0); + else + this._decrypt(state, l, r, state.tmp, 0); + + l = state.tmp[0]; + r = state.tmp[1]; + + utils.writeUInt32BE(out, l, outOff); + utils.writeUInt32BE(out, r, outOff + 4); +}; + +DES.prototype._pad = function _pad(buffer, off) { + if (this.padding === false) { + return false; + } + + var value = buffer.length - off; + for (var i = off; i < buffer.length; i++) + buffer[i] = value; + + return true; +}; + +DES.prototype._unpad = function _unpad(buffer) { + if (this.padding === false) { + return buffer; + } + + var pad = buffer[buffer.length - 1]; + for (var i = buffer.length - pad; i < buffer.length; i++) + assert.equal(buffer[i], pad); + + return buffer.slice(0, buffer.length - pad); +}; + +DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) { + var l = lStart; + var r = rStart; + + // Apply f() x16 times + for (var i = 0; i < state.keys.length; i += 2) { + var keyL = state.keys[i]; + var keyR = state.keys[i + 1]; + + // f(r, k) + utils.expand(r, state.tmp, 0); + + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s = utils.substitute(keyL, keyR); + var f = utils.permute(s); + + var t = r; + r = (l ^ f) >>> 0; + l = t; + } + + // Reverse Initial Permutation + utils.rip(r, l, out, off); +}; + +DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) { + var l = rStart; + var r = lStart; + + // Apply f() x16 times + for (var i = state.keys.length - 2; i >= 0; i -= 2) { + var keyL = state.keys[i]; + var keyR = state.keys[i + 1]; + + // f(r, k) + utils.expand(l, state.tmp, 0); + + keyL ^= state.tmp[0]; + keyR ^= state.tmp[1]; + var s = utils.substitute(keyL, keyR); + var f = utils.permute(s); + + var t = l; + l = (r ^ f) >>> 0; + r = t; + } + + // Reverse Initial Permutation + utils.rip(l, r, out, off); +}; + + +}, +34366(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var assert = __webpack_require__(77285); +var inherits = __webpack_require__(86040); + +var Cipher = __webpack_require__(8887); +var DES = __webpack_require__(30386); + +function EDEState(type, key) { + assert.equal(key.length, 24, 'Invalid key length'); + + var k1 = key.slice(0, 8); + var k2 = key.slice(8, 16); + var k3 = key.slice(16, 24); + + if (type === 'encrypt') { + this.ciphers = [ + DES.create({ type: 'encrypt', key: k1 }), + DES.create({ type: 'decrypt', key: k2 }), + DES.create({ type: 'encrypt', key: k3 }) + ]; + } else { + this.ciphers = [ + DES.create({ type: 'decrypt', key: k3 }), + DES.create({ type: 'encrypt', key: k2 }), + DES.create({ type: 'decrypt', key: k1 }) + ]; + } +} + +function EDE(options) { + Cipher.call(this, options); + + var state = new EDEState(this.type, this.options.key); + this._edeState = state; +} +inherits(EDE, Cipher); + +module.exports = EDE; + +EDE.create = function create(options) { + return new EDE(options); +}; + +EDE.prototype._update = function _update(inp, inOff, out, outOff) { + var state = this._edeState; + + state.ciphers[0]._update(inp, inOff, out, outOff); + state.ciphers[1]._update(out, outOff, out, outOff); + state.ciphers[2]._update(out, outOff, out, outOff); +}; + +EDE.prototype._pad = DES.prototype._pad; +EDE.prototype._unpad = DES.prototype._unpad; + + +}, +62827(__unused_webpack_module, exports) { +"use strict"; + + +exports.readUInt32BE = function readUInt32BE(bytes, off) { + var res = (bytes[0 + off] << 24) | + (bytes[1 + off] << 16) | + (bytes[2 + off] << 8) | + bytes[3 + off]; + return res >>> 0; +}; + +exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) { + bytes[0 + off] = value >>> 24; + bytes[1 + off] = (value >>> 16) & 0xff; + bytes[2 + off] = (value >>> 8) & 0xff; + bytes[3 + off] = value & 0xff; +}; + +exports.ip = function ip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + + for (var i = 6; i >= 0; i -= 2) { + for (var j = 0; j <= 24; j += 8) { + outL <<= 1; + outL |= (inR >>> (j + i)) & 1; + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1; + outL |= (inL >>> (j + i)) & 1; + } + } + + for (var i = 6; i >= 0; i -= 2) { + for (var j = 1; j <= 25; j += 8) { + outR <<= 1; + outR |= (inR >>> (j + i)) & 1; + } + for (var j = 1; j <= 25; j += 8) { + outR <<= 1; + outR |= (inL >>> (j + i)) & 1; + } + } + + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; +}; + +exports.rip = function rip(inL, inR, out, off) { + var outL = 0; + var outR = 0; + + for (var i = 0; i < 4; i++) { + for (var j = 24; j >= 0; j -= 8) { + outL <<= 1; + outL |= (inR >>> (j + i)) & 1; + outL <<= 1; + outL |= (inL >>> (j + i)) & 1; + } + } + for (var i = 4; i < 8; i++) { + for (var j = 24; j >= 0; j -= 8) { + outR <<= 1; + outR |= (inR >>> (j + i)) & 1; + outR <<= 1; + outR |= (inL >>> (j + i)) & 1; + } + } + + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; +}; + +exports.pc1 = function pc1(inL, inR, out, off) { + var outL = 0; + var outR = 0; + + // 7, 15, 23, 31, 39, 47, 55, 63 + // 6, 14, 22, 30, 39, 47, 55, 63 + // 5, 13, 21, 29, 39, 47, 55, 63 + // 4, 12, 20, 28 + for (var i = 7; i >= 5; i--) { + for (var j = 0; j <= 24; j += 8) { + outL <<= 1; + outL |= (inR >> (j + i)) & 1; + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1; + outL |= (inL >> (j + i)) & 1; + } + } + for (var j = 0; j <= 24; j += 8) { + outL <<= 1; + outL |= (inR >> (j + i)) & 1; + } + + // 1, 9, 17, 25, 33, 41, 49, 57 + // 2, 10, 18, 26, 34, 42, 50, 58 + // 3, 11, 19, 27, 35, 43, 51, 59 + // 36, 44, 52, 60 + for (var i = 1; i <= 3; i++) { + for (var j = 0; j <= 24; j += 8) { + outR <<= 1; + outR |= (inR >> (j + i)) & 1; + } + for (var j = 0; j <= 24; j += 8) { + outR <<= 1; + outR |= (inL >> (j + i)) & 1; + } + } + for (var j = 0; j <= 24; j += 8) { + outR <<= 1; + outR |= (inL >> (j + i)) & 1; + } + + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; +}; + +exports.r28shl = function r28shl(num, shift) { + return ((num << shift) & 0xfffffff) | (num >>> (28 - shift)); +}; + +var pc2table = [ + // inL => outL + 14, 11, 17, 4, 27, 23, 25, 0, + 13, 22, 7, 18, 5, 9, 16, 24, + 2, 20, 12, 21, 1, 8, 15, 26, + + // inR => outR + 15, 4, 25, 19, 9, 1, 26, 16, + 5, 11, 23, 8, 12, 7, 17, 0, + 22, 3, 10, 14, 6, 20, 27, 24 +]; + +exports.pc2 = function pc2(inL, inR, out, off) { + var outL = 0; + var outR = 0; + + var len = pc2table.length >>> 1; + for (var i = 0; i < len; i++) { + outL <<= 1; + outL |= (inL >>> pc2table[i]) & 0x1; + } + for (var i = len; i < pc2table.length; i++) { + outR <<= 1; + outR |= (inR >>> pc2table[i]) & 0x1; + } + + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; +}; + +exports.expand = function expand(r, out, off) { + var outL = 0; + var outR = 0; + + outL = ((r & 1) << 5) | (r >>> 27); + for (var i = 23; i >= 15; i -= 4) { + outL <<= 6; + outL |= (r >>> i) & 0x3f; + } + for (var i = 11; i >= 3; i -= 4) { + outR |= (r >>> i) & 0x3f; + outR <<= 6; + } + outR |= ((r & 0x1f) << 1) | (r >>> 31); + + out[off + 0] = outL >>> 0; + out[off + 1] = outR >>> 0; +}; + +var sTable = [ + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, + 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, + 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, + 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, + + 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, + 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, + 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, + 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, + + 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, + 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, + 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, + 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, + + 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, + 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, + 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, + + 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, + 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, + 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, + 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, + + 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, + 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, + 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, + 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, + + 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, + 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, + 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, + 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, + + 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, + 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, + 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, + 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 +]; + +exports.substitute = function substitute(inL, inR) { + var out = 0; + for (var i = 0; i < 4; i++) { + var b = (inL >>> (18 - i * 6)) & 0x3f; + var sb = sTable[i * 0x40 + b]; + + out <<= 4; + out |= sb; + } + for (var i = 0; i < 4; i++) { + var b = (inR >>> (18 - i * 6)) & 0x3f; + var sb = sTable[4 * 0x40 + i * 0x40 + b]; + + out <<= 4; + out |= sb; + } + return out >>> 0; +}; + +var permuteTable = [ + 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, + 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7 +]; + +exports.permute = function permute(num) { + var out = 0; + for (var i = 0; i < permuteTable.length; i++) { + out <<= 1; + out |= (num >>> permuteTable[i]) & 0x1; + } + return out >>> 0; +}; + +exports.padSplit = function padSplit(num, size, group) { + var str = num.toString(2); + while (str.length < size) + str = '0' + str; + + var out = []; + for (var i = 0; i < size; i += group) + out.push(str.slice(i, i + group)); + return out.join(' '); +}; + + +}, +84119(__unused_webpack_module, exports, __webpack_require__) { +var generatePrime = __webpack_require__(94829) +var primes = __webpack_require__(54828) + +var DH = __webpack_require__(94235) + +function getDiffieHellman (mod) { + var prime = new Buffer(primes[mod].prime, 'hex') + var gen = new Buffer(primes[mod].gen, 'hex') + + return new DH(prime, gen) +} + +var ENCODINGS = { + 'binary': true, 'hex': true, 'base64': true +} + +function createDiffieHellman (prime, enc, generator, genc) { + if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) { + return createDiffieHellman(prime, 'binary', enc, generator) + } + + enc = enc || 'binary' + genc = genc || 'binary' + generator = generator || new Buffer([2]) + + if (!Buffer.isBuffer(generator)) { + generator = new Buffer(generator, genc) + } + + if (typeof prime === 'number') { + return new DH(generatePrime(prime, generator), generator, true) + } + + if (!Buffer.isBuffer(prime)) { + prime = new Buffer(prime, enc) + } + + return new DH(prime, generator, true) +} + +exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman +exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman + + +}, +94235(module, __unused_webpack_exports, __webpack_require__) { +var BN = __webpack_require__(91939); +var MillerRabin = __webpack_require__(31607); +var millerRabin = new MillerRabin(); +var TWENTYFOUR = new BN(24); +var ELEVEN = new BN(11); +var TEN = new BN(10); +var THREE = new BN(3); +var SEVEN = new BN(7); +var primes = __webpack_require__(94829); +var randomBytes = __webpack_require__(31734); +module.exports = DH; + +function setPublicKey(pub, enc) { + enc = enc || 'utf8'; + if (!Buffer.isBuffer(pub)) { + pub = new Buffer(pub, enc); + } + this._pub = new BN(pub); + return this; +} + +function setPrivateKey(priv, enc) { + enc = enc || 'utf8'; + if (!Buffer.isBuffer(priv)) { + priv = new Buffer(priv, enc); + } + this._priv = new BN(priv); + return this; +} + +var primeCache = {}; +function checkPrime(prime, generator) { + var gen = generator.toString('hex'); + var hex = [gen, prime.toString(16)].join('_'); + if (hex in primeCache) { + return primeCache[hex]; + } + var error = 0; + + if (prime.isEven() || + !primes.simpleSieve || + !primes.fermatTest(prime) || + !millerRabin.test(prime)) { + //not a prime so +1 + error += 1; + + if (gen === '02' || gen === '05') { + // we'd be able to check the generator + // it would fail so +8 + error += 8; + } else { + //we wouldn't be able to test the generator + // so +4 + error += 4; + } + primeCache[hex] = error; + return error; + } + if (!millerRabin.test(prime.shrn(1))) { + //not a safe prime + error += 2; + } + var rem; + switch (gen) { + case '02': + if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) { + // unsuidable generator + error += 8; + } + break; + case '05': + rem = prime.mod(TEN); + if (rem.cmp(THREE) && rem.cmp(SEVEN)) { + // prime mod 10 needs to equal 3 or 7 + error += 8; + } + break; + default: + error += 4; + } + primeCache[hex] = error; + return error; +} + +function DH(prime, generator, malleable) { + this.setGenerator(generator); + this.__prime = new BN(prime); + this._prime = BN.mont(this.__prime); + this._primeLen = prime.length; + this._pub = undefined; + this._priv = undefined; + this._primeCode = undefined; + if (malleable) { + this.setPublicKey = setPublicKey; + this.setPrivateKey = setPrivateKey; + } else { + this._primeCode = 8; + } +} +Object.defineProperty(DH.prototype, 'verifyError', { + enumerable: true, + get: function () { + if (typeof this._primeCode !== 'number') { + this._primeCode = checkPrime(this.__prime, this.__gen); + } + return this._primeCode; + } +}); +DH.prototype.generateKeys = function () { + if (!this._priv) { + this._priv = new BN(randomBytes(this._primeLen)); + } + this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed(); + return this.getPublicKey(); +}; + +DH.prototype.computeSecret = function (other) { + other = new BN(other); + other = other.toRed(this._prime); + var secret = other.redPow(this._priv).fromRed(); + var out = new Buffer(secret.toArray()); + var prime = this.getPrime(); + if (out.length < prime.length) { + var front = new Buffer(prime.length - out.length); + front.fill(0); + out = Buffer.concat([front, out]); + } + return out; +}; + +DH.prototype.getPublicKey = function getPublicKey(enc) { + return formatReturnValue(this._pub, enc); +}; + +DH.prototype.getPrivateKey = function getPrivateKey(enc) { + return formatReturnValue(this._priv, enc); +}; + +DH.prototype.getPrime = function (enc) { + return formatReturnValue(this.__prime, enc); +}; + +DH.prototype.getGenerator = function (enc) { + return formatReturnValue(this._gen, enc); +}; + +DH.prototype.setGenerator = function (gen, enc) { + enc = enc || 'utf8'; + if (!Buffer.isBuffer(gen)) { + gen = new Buffer(gen, enc); + } + this.__gen = gen; + this._gen = new BN(gen); + return this; +}; + +function formatReturnValue(bn, enc) { + var buf = new Buffer(bn.toArray()); + if (!enc) { + return buf; + } else { + return buf.toString(enc); + } +} + + +}, +94829(module, __unused_webpack_exports, __webpack_require__) { +var randomBytes = __webpack_require__(31734); +module.exports = findPrime; +findPrime.simpleSieve = simpleSieve; +findPrime.fermatTest = fermatTest; +var BN = __webpack_require__(91939); +var TWENTYFOUR = new BN(24); +var MillerRabin = __webpack_require__(31607); +var millerRabin = new MillerRabin(); +var ONE = new BN(1); +var TWO = new BN(2); +var FIVE = new BN(5); +var SIXTEEN = new BN(16); +var EIGHT = new BN(8); +var TEN = new BN(10); +var THREE = new BN(3); +var SEVEN = new BN(7); +var ELEVEN = new BN(11); +var FOUR = new BN(4); +var TWELVE = new BN(12); +var primes = null; + +function _getPrimes() { + if (primes !== null) + return primes; + + var limit = 0x100000; + var res = []; + res[0] = 2; + for (var i = 1, k = 3; k < limit; k += 2) { + var sqrt = Math.ceil(Math.sqrt(k)); + for (var j = 0; j < i && res[j] <= sqrt; j++) + if (k % res[j] === 0) + break; + + if (i !== j && res[j] <= sqrt) + continue; + + res[i++] = k; + } + primes = res; + return res; +} + +function simpleSieve(p) { + var primes = _getPrimes(); + + for (var i = 0; i < primes.length; i++) + if (p.modn(primes[i]) === 0) { + if (p.cmpn(primes[i]) === 0) { + return true; + } else { + return false; + } + } + + return true; +} + +function fermatTest(p) { + var red = BN.mont(p); + return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0; +} + +function findPrime(bits, gen) { + if (bits < 16) { + // this is what openssl does + if (gen === 2 || gen === 5) { + return new BN([0x8c, 0x7b]); + } else { + return new BN([0x8c, 0x27]); + } + } + gen = new BN(gen); + + var num, n2; + + while (true) { + num = new BN(randomBytes(Math.ceil(bits / 8))); + while (num.bitLength() > bits) { + num.ishrn(1); + } + if (num.isEven()) { + num.iadd(ONE); + } + if (!num.testn(1)) { + num.iadd(TWO); + } + if (!gen.cmp(TWO)) { + while (num.mod(TWENTYFOUR).cmp(ELEVEN)) { + num.iadd(FOUR); + } + } else if (!gen.cmp(FIVE)) { + while (num.mod(TEN).cmp(THREE)) { + num.iadd(FOUR); + } + } + n2 = num.shrn(1); + if (simpleSieve(n2) && simpleSieve(num) && + fermatTest(n2) && fermatTest(num) && + millerRabin.test(n2) && millerRabin.test(num)) { + return num; + } + } + +} + + +}, +92090(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +var elliptic = exports; + +elliptic.version = (__webpack_require__(13453)/* .version */.rE); +elliptic.utils = __webpack_require__(67156); +elliptic.rand = __webpack_require__(93705); +elliptic.curve = __webpack_require__(32765); +elliptic.curves = __webpack_require__(88261); + +// Protocols +elliptic.ec = __webpack_require__(97646); +elliptic.eddsa = __webpack_require__(73241); + + +}, +68024(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); +var utils = __webpack_require__(67156); +var getNAF = utils.getNAF; +var getJSF = utils.getJSF; +var assert = utils.assert; + +function BaseCurve(type, conf) { + this.type = type; + this.p = new BN(conf.p, 16); + + // Use Montgomery, when there is no fast reduction for the prime + this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); + + // Useful for many curves + this.zero = new BN(0).toRed(this.red); + this.one = new BN(1).toRed(this.red); + this.two = new BN(2).toRed(this.red); + + // Curve configuration, optional + this.n = conf.n && new BN(conf.n, 16); + this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); + + // Temporary arrays + this._wnafT1 = new Array(4); + this._wnafT2 = new Array(4); + this._wnafT3 = new Array(4); + this._wnafT4 = new Array(4); + + this._bitLength = this.n ? this.n.bitLength() : 0; + + // Generalized Greg Maxwell's trick + var adjustCount = this.n && this.p.div(this.n); + if (!adjustCount || adjustCount.cmpn(100) > 0) { + this.redN = null; + } else { + this._maxwellTrick = true; + this.redN = this.n.toRed(this.red); + } +} +module.exports = BaseCurve; + +BaseCurve.prototype.point = function point() { + throw new Error('Not implemented'); +}; + +BaseCurve.prototype.validate = function validate() { + throw new Error('Not implemented'); +}; + +BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { + assert(p.precomputed); + var doubles = p._getDoubles(); + + var naf = getNAF(k, 1, this._bitLength); + var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1); + I /= 3; + + // Translate into more windowed form + var repr = []; + var j; + var nafW; + for (j = 0; j < naf.length; j += doubles.step) { + nafW = 0; + for (var l = j + doubles.step - 1; l >= j; l--) + nafW = (nafW << 1) + naf[l]; + repr.push(nafW); + } + + var a = this.jpoint(null, null, null); + var b = this.jpoint(null, null, null); + for (var i = I; i > 0; i--) { + for (j = 0; j < repr.length; j++) { + nafW = repr[j]; + if (nafW === i) + b = b.mixedAdd(doubles.points[j]); + else if (nafW === -i) + b = b.mixedAdd(doubles.points[j].neg()); + } + a = a.add(b); + } + return a.toP(); +}; + +BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { + var w = 4; + + // Precompute window + var nafPoints = p._getNAFPoints(w); + w = nafPoints.wnd; + var wnd = nafPoints.points; + + // Get NAF form + var naf = getNAF(k, w, this._bitLength); + + // Add `this`*(N+1) for every w-NAF index + var acc = this.jpoint(null, null, null); + for (var i = naf.length - 1; i >= 0; i--) { + // Count zeroes + for (var l = 0; i >= 0 && naf[i] === 0; i--) + l++; + if (i >= 0) + l++; + acc = acc.dblp(l); + + if (i < 0) + break; + var z = naf[i]; + assert(z !== 0); + if (p.type === 'affine') { + // J +- P + if (z > 0) + acc = acc.mixedAdd(wnd[(z - 1) >> 1]); + else + acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg()); + } else { + // J +- J + if (z > 0) + acc = acc.add(wnd[(z - 1) >> 1]); + else + acc = acc.add(wnd[(-z - 1) >> 1].neg()); + } + } + return p.type === 'affine' ? acc.toP() : acc; +}; + +BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, + points, + coeffs, + len, + jacobianResult) { + var wndWidth = this._wnafT1; + var wnd = this._wnafT2; + var naf = this._wnafT3; + + // Fill all arrays + var max = 0; + var i; + var j; + var p; + for (i = 0; i < len; i++) { + p = points[i]; + var nafPoints = p._getNAFPoints(defW); + wndWidth[i] = nafPoints.wnd; + wnd[i] = nafPoints.points; + } + + // Comb small window NAFs + for (i = len - 1; i >= 1; i -= 2) { + var a = i - 1; + var b = i; + if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { + naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength); + naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength); + max = Math.max(naf[a].length, max); + max = Math.max(naf[b].length, max); + continue; + } + + var comb = [ + points[a], /* 1 */ + null, /* 3 */ + null, /* 5 */ + points[b], /* 7 */ + ]; + + // Try to avoid Projective points, if possible + if (points[a].y.cmp(points[b].y) === 0) { + comb[1] = points[a].add(points[b]); + comb[2] = points[a].toJ().mixedAdd(points[b].neg()); + } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { + comb[1] = points[a].toJ().mixedAdd(points[b]); + comb[2] = points[a].add(points[b].neg()); + } else { + comb[1] = points[a].toJ().mixedAdd(points[b]); + comb[2] = points[a].toJ().mixedAdd(points[b].neg()); + } + + var index = [ + -3, /* -1 -1 */ + -1, /* -1 0 */ + -5, /* -1 1 */ + -7, /* 0 -1 */ + 0, /* 0 0 */ + 7, /* 0 1 */ + 5, /* 1 -1 */ + 1, /* 1 0 */ + 3, /* 1 1 */ + ]; + + var jsf = getJSF(coeffs[a], coeffs[b]); + max = Math.max(jsf[0].length, max); + naf[a] = new Array(max); + naf[b] = new Array(max); + for (j = 0; j < max; j++) { + var ja = jsf[0][j] | 0; + var jb = jsf[1][j] | 0; + + naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; + naf[b][j] = 0; + wnd[a] = comb; + } + } + + var acc = this.jpoint(null, null, null); + var tmp = this._wnafT4; + for (i = max; i >= 0; i--) { + var k = 0; + + while (i >= 0) { + var zero = true; + for (j = 0; j < len; j++) { + tmp[j] = naf[j][i] | 0; + if (tmp[j] !== 0) + zero = false; + } + if (!zero) + break; + k++; + i--; + } + if (i >= 0) + k++; + acc = acc.dblp(k); + if (i < 0) + break; + + for (j = 0; j < len; j++) { + var z = tmp[j]; + p; + if (z === 0) + continue; + else if (z > 0) + p = wnd[j][(z - 1) >> 1]; + else if (z < 0) + p = wnd[j][(-z - 1) >> 1].neg(); + + if (p.type === 'affine') + acc = acc.mixedAdd(p); + else + acc = acc.add(p); + } + } + // Zeroify references + for (i = 0; i < len; i++) + wnd[i] = null; + + if (jacobianResult) + return acc; + else + return acc.toP(); +}; + +function BasePoint(curve, type) { + this.curve = curve; + this.type = type; + this.precomputed = null; +} +BaseCurve.BasePoint = BasePoint; + +BasePoint.prototype.eq = function eq(/*other*/) { + throw new Error('Not implemented'); +}; + +BasePoint.prototype.validate = function validate() { + return this.curve.validate(this); +}; + +BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + bytes = utils.toArray(bytes, enc); + + var len = this.p.byteLength(); + + // uncompressed, hybrid-odd, hybrid-even + if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && + bytes.length - 1 === 2 * len) { + if (bytes[0] === 0x06) + assert(bytes[bytes.length - 1] % 2 === 0); + else if (bytes[0] === 0x07) + assert(bytes[bytes.length - 1] % 2 === 1); + + var res = this.point(bytes.slice(1, 1 + len), + bytes.slice(1 + len, 1 + 2 * len)); + + return res; + } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && + bytes.length - 1 === len) { + return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); + } + throw new Error('Unknown point format'); +}; + +BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { + return this.encode(enc, true); +}; + +BasePoint.prototype._encode = function _encode(compact) { + var len = this.curve.p.byteLength(); + var x = this.getX().toArray('be', len); + + if (compact) + return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x); + + return [ 0x04 ].concat(x, this.getY().toArray('be', len)); +}; + +BasePoint.prototype.encode = function encode(enc, compact) { + return utils.encode(this._encode(compact), enc); +}; + +BasePoint.prototype.precompute = function precompute(power) { + if (this.precomputed) + return this; + + var precomputed = { + doubles: null, + naf: null, + beta: null, + }; + precomputed.naf = this._getNAFPoints(8); + precomputed.doubles = this._getDoubles(4, power); + precomputed.beta = this._getBeta(); + this.precomputed = precomputed; + + return this; +}; + +BasePoint.prototype._hasDoubles = function _hasDoubles(k) { + if (!this.precomputed) + return false; + + var doubles = this.precomputed.doubles; + if (!doubles) + return false; + + return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); +}; + +BasePoint.prototype._getDoubles = function _getDoubles(step, power) { + if (this.precomputed && this.precomputed.doubles) + return this.precomputed.doubles; + + var doubles = [ this ]; + var acc = this; + for (var i = 0; i < power; i += step) { + for (var j = 0; j < step; j++) + acc = acc.dbl(); + doubles.push(acc); + } + return { + step: step, + points: doubles, + }; +}; + +BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { + if (this.precomputed && this.precomputed.naf) + return this.precomputed.naf; + + var res = [ this ]; + var max = (1 << wnd) - 1; + var dbl = max === 1 ? null : this.dbl(); + for (var i = 1; i < max; i++) + res[i] = res[i - 1].add(dbl); + return { + wnd: wnd, + points: res, + }; +}; + +BasePoint.prototype._getBeta = function _getBeta() { + return null; +}; + +BasePoint.prototype.dblp = function dblp(k) { + var r = this; + for (var i = 0; i < k; i++) + r = r.dbl(); + return r; +}; + + +}, +41309(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var utils = __webpack_require__(67156); +var BN = __webpack_require__(91939); +var inherits = __webpack_require__(86040); +var Base = __webpack_require__(68024); + +var assert = utils.assert; + +function EdwardsCurve(conf) { + // NOTE: Important as we are creating point in Base.call() + this.twisted = (conf.a | 0) !== 1; + this.mOneA = this.twisted && (conf.a | 0) === -1; + this.extended = this.mOneA; + + Base.call(this, 'edwards', conf); + + this.a = new BN(conf.a, 16).umod(this.red.m); + this.a = this.a.toRed(this.red); + this.c = new BN(conf.c, 16).toRed(this.red); + this.c2 = this.c.redSqr(); + this.d = new BN(conf.d, 16).toRed(this.red); + this.dd = this.d.redAdd(this.d); + + assert(!this.twisted || this.c.fromRed().cmpn(1) === 0); + this.oneC = (conf.c | 0) === 1; +} +inherits(EdwardsCurve, Base); +module.exports = EdwardsCurve; + +EdwardsCurve.prototype._mulA = function _mulA(num) { + if (this.mOneA) + return num.redNeg(); + else + return this.a.redMul(num); +}; + +EdwardsCurve.prototype._mulC = function _mulC(num) { + if (this.oneC) + return num; + else + return this.c.redMul(num); +}; + +// Just for compatibility with Short curve +EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) { + return this.point(x, y, z, t); +}; + +EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) { + x = new BN(x, 16); + if (!x.red) + x = x.toRed(this.red); + + var x2 = x.redSqr(); + var rhs = this.c2.redSub(this.a.redMul(x2)); + var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2)); + + var y2 = rhs.redMul(lhs.redInvm()); + var y = y2.redSqrt(); + if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) + throw new Error('invalid point'); + + var isOdd = y.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y = y.redNeg(); + + return this.point(x, y); +}; + +EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) { + y = new BN(y, 16); + if (!y.red) + y = y.toRed(this.red); + + // x^2 = (y^2 - c^2) / (c^2 d y^2 - a) + var y2 = y.redSqr(); + var lhs = y2.redSub(this.c2); + var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a); + var x2 = lhs.redMul(rhs.redInvm()); + + if (x2.cmp(this.zero) === 0) { + if (odd) + throw new Error('invalid point'); + else + return this.point(this.zero, y); + } + + var x = x2.redSqrt(); + if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) + throw new Error('invalid point'); + + if (x.fromRed().isOdd() !== odd) + x = x.redNeg(); + + return this.point(x, y); +}; + +EdwardsCurve.prototype.validate = function validate(point) { + if (point.isInfinity()) + return true; + + // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2) + point.normalize(); + + var x2 = point.x.redSqr(); + var y2 = point.y.redSqr(); + var lhs = x2.redMul(this.a).redAdd(y2); + var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2))); + + return lhs.cmp(rhs) === 0; +}; + +function Point(curve, x, y, z, t) { + Base.BasePoint.call(this, curve, 'projective'); + if (x === null && y === null && z === null) { + this.x = this.curve.zero; + this.y = this.curve.one; + this.z = this.curve.one; + this.t = this.curve.zero; + this.zOne = true; + } else { + this.x = new BN(x, 16); + this.y = new BN(y, 16); + this.z = z ? new BN(z, 16) : this.curve.one; + this.t = t && new BN(t, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + if (this.t && !this.t.red) + this.t = this.t.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; + + // Use extended coordinates + if (this.curve.extended && !this.t) { + this.t = this.x.redMul(this.y); + if (!this.zOne) + this.t = this.t.redMul(this.z.redInvm()); + } + } +} +inherits(Point, Base.BasePoint); + +EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); +}; + +EdwardsCurve.prototype.point = function point(x, y, z, t) { + return new Point(this, x, y, z, t); +}; + +Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1], obj[2]); +}; + +Point.prototype.inspect = function inspect() { + if (this.isInfinity()) + return ''; + return ''; +}; + +Point.prototype.isInfinity = function isInfinity() { + // XXX This code assumes that zero is always zero in red + return this.x.cmpn(0) === 0 && + (this.y.cmp(this.z) === 0 || + (this.zOne && this.y.cmp(this.curve.c) === 0)); +}; + +Point.prototype._extDbl = function _extDbl() { + // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html + // #doubling-dbl-2008-hwcd + // 4M + 4S + + // A = X1^2 + var a = this.x.redSqr(); + // B = Y1^2 + var b = this.y.redSqr(); + // C = 2 * Z1^2 + var c = this.z.redSqr(); + c = c.redIAdd(c); + // D = a * A + var d = this.curve._mulA(a); + // E = (X1 + Y1)^2 - A - B + var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); + // G = D + B + var g = d.redAdd(b); + // F = G - C + var f = g.redSub(c); + // H = D - B + var h = d.redSub(b); + // X3 = E * F + var nx = e.redMul(f); + // Y3 = G * H + var ny = g.redMul(h); + // T3 = E * H + var nt = e.redMul(h); + // Z3 = F * G + var nz = f.redMul(g); + return this.curve.point(nx, ny, nz, nt); +}; + +Point.prototype._projDbl = function _projDbl() { + // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html + // #doubling-dbl-2008-bbjlp + // #doubling-dbl-2007-bl + // and others + // Generally 3M + 4S or 2M + 4S + + // B = (X1 + Y1)^2 + var b = this.x.redAdd(this.y).redSqr(); + // C = X1^2 + var c = this.x.redSqr(); + // D = Y1^2 + var d = this.y.redSqr(); + + var nx; + var ny; + var nz; + var e; + var h; + var j; + if (this.curve.twisted) { + // E = a * C + e = this.curve._mulA(c); + // F = E + D + var f = e.redAdd(d); + if (this.zOne) { + // X3 = (B - C - D) * (F - 2) + nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); + // Y3 = F * (E - D) + ny = f.redMul(e.redSub(d)); + // Z3 = F^2 - 2 * F + nz = f.redSqr().redSub(f).redSub(f); + } else { + // H = Z1^2 + h = this.z.redSqr(); + // J = F - 2 * H + j = f.redSub(h).redISub(h); + // X3 = (B-C-D)*J + nx = b.redSub(c).redISub(d).redMul(j); + // Y3 = F * (E - D) + ny = f.redMul(e.redSub(d)); + // Z3 = F * J + nz = f.redMul(j); + } + } else { + // E = C + D + e = c.redAdd(d); + // H = (c * Z1)^2 + h = this.curve._mulC(this.z).redSqr(); + // J = E - 2 * H + j = e.redSub(h).redSub(h); + // X3 = c * (B - E) * J + nx = this.curve._mulC(b.redISub(e)).redMul(j); + // Y3 = c * E * (C - D) + ny = this.curve._mulC(e).redMul(c.redISub(d)); + // Z3 = E * J + nz = e.redMul(j); + } + return this.curve.point(nx, ny, nz); +}; + +Point.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + + // Double in extended coordinates + if (this.curve.extended) + return this._extDbl(); + else + return this._projDbl(); +}; + +Point.prototype._extAdd = function _extAdd(p) { + // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html + // #addition-add-2008-hwcd-3 + // 8M + + // A = (Y1 - X1) * (Y2 - X2) + var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); + // B = (Y1 + X1) * (Y2 + X2) + var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); + // C = T1 * k * T2 + var c = this.t.redMul(this.curve.dd).redMul(p.t); + // D = Z1 * 2 * Z2 + var d = this.z.redMul(p.z.redAdd(p.z)); + // E = B - A + var e = b.redSub(a); + // F = D - C + var f = d.redSub(c); + // G = D + C + var g = d.redAdd(c); + // H = B + A + var h = b.redAdd(a); + // X3 = E * F + var nx = e.redMul(f); + // Y3 = G * H + var ny = g.redMul(h); + // T3 = E * H + var nt = e.redMul(h); + // Z3 = F * G + var nz = f.redMul(g); + return this.curve.point(nx, ny, nz, nt); +}; + +Point.prototype._projAdd = function _projAdd(p) { + // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html + // #addition-add-2008-bbjlp + // #addition-add-2007-bl + // 10M + 1S + + // A = Z1 * Z2 + var a = this.z.redMul(p.z); + // B = A^2 + var b = a.redSqr(); + // C = X1 * X2 + var c = this.x.redMul(p.x); + // D = Y1 * Y2 + var d = this.y.redMul(p.y); + // E = d * C * D + var e = this.curve.d.redMul(c).redMul(d); + // F = B - E + var f = b.redSub(e); + // G = B + E + var g = b.redAdd(e); + // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D) + var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d); + var nx = a.redMul(f).redMul(tmp); + var ny; + var nz; + if (this.curve.twisted) { + // Y3 = A * G * (D - a * C) + ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); + // Z3 = F * G + nz = f.redMul(g); + } else { + // Y3 = A * G * (D - C) + ny = a.redMul(g).redMul(d.redSub(c)); + // Z3 = c * F * G + nz = this.curve._mulC(f).redMul(g); + } + return this.curve.point(nx, ny, nz); +}; + +Point.prototype.add = function add(p) { + if (this.isInfinity()) + return p; + if (p.isInfinity()) + return this; + + if (this.curve.extended) + return this._extAdd(p); + else + return this._projAdd(p); +}; + +Point.prototype.mul = function mul(k) { + if (this._hasDoubles(k)) + return this.curve._fixedNafMul(this, k); + else + return this.curve._wnafMul(this, k); +}; + +Point.prototype.mulAdd = function mulAdd(k1, p, k2) { + return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false); +}; + +Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) { + return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true); +}; + +Point.prototype.normalize = function normalize() { + if (this.zOne) + return this; + + // Normalize coordinates + var zi = this.z.redInvm(); + this.x = this.x.redMul(zi); + this.y = this.y.redMul(zi); + if (this.t) + this.t = this.t.redMul(zi); + this.z = this.curve.one; + this.zOne = true; + return this; +}; + +Point.prototype.neg = function neg() { + return this.curve.point(this.x.redNeg(), + this.y, + this.z, + this.t && this.t.redNeg()); +}; + +Point.prototype.getX = function getX() { + this.normalize(); + return this.x.fromRed(); +}; + +Point.prototype.getY = function getY() { + this.normalize(); + return this.y.fromRed(); +}; + +Point.prototype.eq = function eq(other) { + return this === other || + this.getX().cmp(other.getX()) === 0 && + this.getY().cmp(other.getY()) === 0; +}; + +Point.prototype.eqXToP = function eqXToP(x) { + var rx = x.toRed(this.curve.red).redMul(this.z); + if (this.x.cmp(rx) === 0) + return true; + + var xc = x.clone(); + var t = this.curve.redN.redMul(this.z); + for (;;) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + + rx.redIAdd(t); + if (this.x.cmp(rx) === 0) + return true; + } +}; + +// Compatibility with BaseCurve +Point.prototype.toP = Point.prototype.normalize; +Point.prototype.mixedAdd = Point.prototype.add; + + +}, +32765(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +var curve = exports; + +curve.base = __webpack_require__(68024); +curve.short = __webpack_require__(51751); +curve.mont = __webpack_require__(49271); +curve.edwards = __webpack_require__(41309); + + +}, +49271(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); +var inherits = __webpack_require__(86040); +var Base = __webpack_require__(68024); + +var utils = __webpack_require__(67156); + +function MontCurve(conf) { + Base.call(this, 'mont', conf); + + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.i4 = new BN(4).toRed(this.red).redInvm(); + this.two = new BN(2).toRed(this.red); + this.a24 = this.i4.redMul(this.a.redAdd(this.two)); +} +inherits(MontCurve, Base); +module.exports = MontCurve; + +MontCurve.prototype.validate = function validate(point) { + var x = point.normalize().x; + var x2 = x.redSqr(); + var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x); + var y = rhs.redSqrt(); + + return y.redSqr().cmp(rhs) === 0; +}; + +function Point(curve, x, z) { + Base.BasePoint.call(this, curve, 'projective'); + if (x === null && z === null) { + this.x = this.curve.one; + this.z = this.curve.zero; + } else { + this.x = new BN(x, 16); + this.z = new BN(z, 16); + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + } +} +inherits(Point, Base.BasePoint); + +MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + return this.point(utils.toArray(bytes, enc), 1); +}; + +MontCurve.prototype.point = function point(x, z) { + return new Point(this, x, z); +}; + +MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) { + return Point.fromJSON(this, obj); +}; + +Point.prototype.precompute = function precompute() { + // No-op +}; + +Point.prototype._encode = function _encode() { + return this.getX().toArray('be', this.curve.p.byteLength()); +}; + +Point.fromJSON = function fromJSON(curve, obj) { + return new Point(curve, obj[0], obj[1] || curve.one); +}; + +Point.prototype.inspect = function inspect() { + if (this.isInfinity()) + return ''; + return ''; +}; + +Point.prototype.isInfinity = function isInfinity() { + // XXX This code assumes that zero is always zero in red + return this.z.cmpn(0) === 0; +}; + +Point.prototype.dbl = function dbl() { + // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3 + // 2M + 2S + 4A + + // A = X1 + Z1 + var a = this.x.redAdd(this.z); + // AA = A^2 + var aa = a.redSqr(); + // B = X1 - Z1 + var b = this.x.redSub(this.z); + // BB = B^2 + var bb = b.redSqr(); + // C = AA - BB + var c = aa.redSub(bb); + // X3 = AA * BB + var nx = aa.redMul(bb); + // Z3 = C * (BB + A24 * C) + var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c))); + return this.curve.point(nx, nz); +}; + +Point.prototype.add = function add() { + throw new Error('Not supported on Montgomery curve'); +}; + +Point.prototype.diffAdd = function diffAdd(p, diff) { + // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3 + // 4M + 2S + 6A + + // A = X2 + Z2 + var a = this.x.redAdd(this.z); + // B = X2 - Z2 + var b = this.x.redSub(this.z); + // C = X3 + Z3 + var c = p.x.redAdd(p.z); + // D = X3 - Z3 + var d = p.x.redSub(p.z); + // DA = D * A + var da = d.redMul(a); + // CB = C * B + var cb = c.redMul(b); + // X5 = Z1 * (DA + CB)^2 + var nx = diff.z.redMul(da.redAdd(cb).redSqr()); + // Z5 = X1 * (DA - CB)^2 + var nz = diff.x.redMul(da.redISub(cb).redSqr()); + return this.curve.point(nx, nz); +}; + +Point.prototype.mul = function mul(k) { + var t = k.clone(); + var a = this; // (N / 2) * Q + Q + var b = this.curve.point(null, null); // (N / 2) * Q + var c = this; // Q + + for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) + bits.push(t.andln(1)); + + for (var i = bits.length - 1; i >= 0; i--) { + if (bits[i] === 0) { + // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q + a = a.diffAdd(b, c); + // N * Q = 2 * ((N / 2) * Q + Q)) + b = b.dbl(); + } else { + // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q) + b = a.diffAdd(b, c); + // N * Q + Q = 2 * ((N / 2) * Q + Q) + a = a.dbl(); + } + } + return b; +}; + +Point.prototype.mulAdd = function mulAdd() { + throw new Error('Not supported on Montgomery curve'); +}; + +Point.prototype.jumlAdd = function jumlAdd() { + throw new Error('Not supported on Montgomery curve'); +}; + +Point.prototype.eq = function eq(other) { + return this.getX().cmp(other.getX()) === 0; +}; + +Point.prototype.normalize = function normalize() { + this.x = this.x.redMul(this.z.redInvm()); + this.z = this.curve.one; + return this; +}; + +Point.prototype.getX = function getX() { + // Normalize coordinates + this.normalize(); + + return this.x.fromRed(); +}; + + +}, +51751(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var utils = __webpack_require__(67156); +var BN = __webpack_require__(91939); +var inherits = __webpack_require__(86040); +var Base = __webpack_require__(68024); + +var assert = utils.assert; + +function ShortCurve(conf) { + Base.call(this, 'short', conf); + + this.a = new BN(conf.a, 16).toRed(this.red); + this.b = new BN(conf.b, 16).toRed(this.red); + this.tinv = this.two.redInvm(); + + this.zeroA = this.a.fromRed().cmpn(0) === 0; + this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; + + // If the curve is endomorphic, precalculate beta and lambda + this.endo = this._getEndomorphism(conf); + this._endoWnafT1 = new Array(4); + this._endoWnafT2 = new Array(4); +} +inherits(ShortCurve, Base); +module.exports = ShortCurve; + +ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { + // No efficient endomorphism + if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) + return; + + // Compute beta and lambda, that lambda * P = (beta * Px; Py) + var beta; + var lambda; + if (conf.beta) { + beta = new BN(conf.beta, 16).toRed(this.red); + } else { + var betas = this._getEndoRoots(this.p); + // Choose the smallest beta + beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; + beta = beta.toRed(this.red); + } + if (conf.lambda) { + lambda = new BN(conf.lambda, 16); + } else { + // Choose the lambda that is matching selected beta + var lambdas = this._getEndoRoots(this.n); + if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { + lambda = lambdas[0]; + } else { + lambda = lambdas[1]; + assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); + } + } + + // Get basis vectors, used for balanced length-two representation + var basis; + if (conf.basis) { + basis = conf.basis.map(function(vec) { + return { + a: new BN(vec.a, 16), + b: new BN(vec.b, 16), + }; + }); + } else { + basis = this._getEndoBasis(lambda); + } + + return { + beta: beta, + lambda: lambda, + basis: basis, + }; +}; + +ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { + // Find roots of for x^2 + x + 1 in F + // Root = (-1 +- Sqrt(-3)) / 2 + // + var red = num === this.p ? this.red : BN.mont(num); + var tinv = new BN(2).toRed(red).redInvm(); + var ntinv = tinv.redNeg(); + + var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv); + + var l1 = ntinv.redAdd(s).fromRed(); + var l2 = ntinv.redSub(s).fromRed(); + return [ l1, l2 ]; +}; + +ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { + // aprxSqrt >= sqrt(this.n) + var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); + + // 3.74 + // Run EGCD, until r(L + 1) < aprxSqrt + var u = lambda; + var v = this.n.clone(); + var x1 = new BN(1); + var y1 = new BN(0); + var x2 = new BN(0); + var y2 = new BN(1); + + // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) + var a0; + var b0; + // First vector + var a1; + var b1; + // Second vector + var a2; + var b2; + + var prevR; + var i = 0; + var r; + var x; + while (u.cmpn(0) !== 0) { + var q = v.div(u); + r = v.sub(q.mul(u)); + x = x2.sub(q.mul(x1)); + var y = y2.sub(q.mul(y1)); + + if (!a1 && r.cmp(aprxSqrt) < 0) { + a0 = prevR.neg(); + b0 = x1; + a1 = r.neg(); + b1 = x; + } else if (a1 && ++i === 2) { + break; + } + prevR = r; + + v = u; + u = r; + x2 = x1; + x1 = x; + y2 = y1; + y1 = y; + } + a2 = r.neg(); + b2 = x; + + var len1 = a1.sqr().add(b1.sqr()); + var len2 = a2.sqr().add(b2.sqr()); + if (len2.cmp(len1) >= 0) { + a2 = a0; + b2 = b0; + } + + // Normalize signs + if (a1.negative) { + a1 = a1.neg(); + b1 = b1.neg(); + } + if (a2.negative) { + a2 = a2.neg(); + b2 = b2.neg(); + } + + return [ + { a: a1, b: b1 }, + { a: a2, b: b2 }, + ]; +}; + +ShortCurve.prototype._endoSplit = function _endoSplit(k) { + var basis = this.endo.basis; + var v1 = basis[0]; + var v2 = basis[1]; + + var c1 = v2.b.mul(k).divRound(this.n); + var c2 = v1.b.neg().mul(k).divRound(this.n); + + var p1 = c1.mul(v1.a); + var p2 = c2.mul(v2.a); + var q1 = c1.mul(v1.b); + var q2 = c2.mul(v2.b); + + // Calculate answer + var k1 = k.sub(p1).sub(p2); + var k2 = q1.add(q2).neg(); + return { k1: k1, k2: k2 }; +}; + +ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { + x = new BN(x, 16); + if (!x.red) + x = x.toRed(this.red); + + var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); + var y = y2.redSqrt(); + if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) + throw new Error('invalid point'); + + // XXX Is there any way to tell if the number is odd without converting it + // to non-red form? + var isOdd = y.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) + y = y.redNeg(); + + return this.point(x, y); +}; + +ShortCurve.prototype.validate = function validate(point) { + if (point.inf) + return true; + + var x = point.x; + var y = point.y; + + var ax = this.a.redMul(x); + var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); + return y.redSqr().redISub(rhs).cmpn(0) === 0; +}; + +ShortCurve.prototype._endoWnafMulAdd = + function _endoWnafMulAdd(points, coeffs, jacobianResult) { + var npoints = this._endoWnafT1; + var ncoeffs = this._endoWnafT2; + for (var i = 0; i < points.length; i++) { + var split = this._endoSplit(coeffs[i]); + var p = points[i]; + var beta = p._getBeta(); + + if (split.k1.negative) { + split.k1.ineg(); + p = p.neg(true); + } + if (split.k2.negative) { + split.k2.ineg(); + beta = beta.neg(true); + } + + npoints[i * 2] = p; + npoints[i * 2 + 1] = beta; + ncoeffs[i * 2] = split.k1; + ncoeffs[i * 2 + 1] = split.k2; + } + var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); + + // Clean-up references to points and coefficients + for (var j = 0; j < i * 2; j++) { + npoints[j] = null; + ncoeffs[j] = null; + } + return res; + }; + +function Point(curve, x, y, isRed) { + Base.BasePoint.call(this, curve, 'affine'); + if (x === null && y === null) { + this.x = null; + this.y = null; + this.inf = true; + } else { + this.x = new BN(x, 16); + this.y = new BN(y, 16); + // Force redgomery representation when loading from JSON + if (isRed) { + this.x.forceRed(this.curve.red); + this.y.forceRed(this.curve.red); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + this.inf = false; + } +} +inherits(Point, Base.BasePoint); + +ShortCurve.prototype.point = function point(x, y, isRed) { + return new Point(this, x, y, isRed); +}; + +ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { + return Point.fromJSON(this, obj, red); +}; + +Point.prototype._getBeta = function _getBeta() { + if (!this.curve.endo) + return; + + var pre = this.precomputed; + if (pre && pre.beta) + return pre.beta; + + var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); + if (pre) { + var curve = this.curve; + var endoMul = function(p) { + return curve.point(p.x.redMul(curve.endo.beta), p.y); + }; + pre.beta = beta; + beta.precomputed = { + beta: null, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(endoMul), + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(endoMul), + }, + }; + } + return beta; +}; + +Point.prototype.toJSON = function toJSON() { + if (!this.precomputed) + return [ this.x, this.y ]; + + return [ this.x, this.y, this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1), + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1), + }, + } ]; +}; + +Point.fromJSON = function fromJSON(curve, obj, red) { + if (typeof obj === 'string') + obj = JSON.parse(obj); + var res = curve.point(obj[0], obj[1], red); + if (!obj[2]) + return res; + + function obj2point(obj) { + return curve.point(obj[0], obj[1], red); + } + + var pre = obj[2]; + res.precomputed = { + beta: null, + doubles: pre.doubles && { + step: pre.doubles.step, + points: [ res ].concat(pre.doubles.points.map(obj2point)), + }, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: [ res ].concat(pre.naf.points.map(obj2point)), + }, + }; + return res; +}; + +Point.prototype.inspect = function inspect() { + if (this.isInfinity()) + return ''; + return ''; +}; + +Point.prototype.isInfinity = function isInfinity() { + return this.inf; +}; + +Point.prototype.add = function add(p) { + // O + P = P + if (this.inf) + return p; + + // P + O = P + if (p.inf) + return this; + + // P + P = 2P + if (this.eq(p)) + return this.dbl(); + + // P + (-P) = O + if (this.neg().eq(p)) + return this.curve.point(null, null); + + // P + Q = O + if (this.x.cmp(p.x) === 0) + return this.curve.point(null, null); + + var c = this.y.redSub(p.y); + if (c.cmpn(0) !== 0) + c = c.redMul(this.x.redSub(p.x).redInvm()); + var nx = c.redSqr().redISub(this.x).redISub(p.x); + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); +}; + +Point.prototype.dbl = function dbl() { + if (this.inf) + return this; + + // 2P = O + var ys1 = this.y.redAdd(this.y); + if (ys1.cmpn(0) === 0) + return this.curve.point(null, null); + + var a = this.curve.a; + + var x2 = this.x.redSqr(); + var dyinv = ys1.redInvm(); + var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); + + var nx = c.redSqr().redISub(this.x.redAdd(this.x)); + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); +}; + +Point.prototype.getX = function getX() { + return this.x.fromRed(); +}; + +Point.prototype.getY = function getY() { + return this.y.fromRed(); +}; + +Point.prototype.mul = function mul(k) { + k = new BN(k, 16); + if (this.isInfinity()) + return this; + else if (this._hasDoubles(k)) + return this.curve._fixedNafMul(this, k); + else if (this.curve.endo) + return this.curve._endoWnafMulAdd([ this ], [ k ]); + else + return this.curve._wnafMul(this, k); +}; + +Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { + var points = [ this, p2 ]; + var coeffs = [ k1, k2 ]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2); +}; + +Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { + var points = [ this, p2 ]; + var coeffs = [ k1, k2 ]; + if (this.curve.endo) + return this.curve._endoWnafMulAdd(points, coeffs, true); + else + return this.curve._wnafMulAdd(1, points, coeffs, 2, true); +}; + +Point.prototype.eq = function eq(p) { + return this === p || + this.inf === p.inf && + (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); +}; + +Point.prototype.neg = function neg(_precompute) { + if (this.inf) + return this; + + var res = this.curve.point(this.x, this.y.redNeg()); + if (_precompute && this.precomputed) { + var pre = this.precomputed; + var negate = function(p) { + return p.neg(); + }; + res.precomputed = { + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(negate), + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(negate), + }, + }; + } + return res; +}; + +Point.prototype.toJ = function toJ() { + if (this.inf) + return this.curve.jpoint(null, null, null); + + var res = this.curve.jpoint(this.x, this.y, this.curve.one); + return res; +}; + +function JPoint(curve, x, y, z) { + Base.BasePoint.call(this, curve, 'jacobian'); + if (x === null && y === null && z === null) { + this.x = this.curve.one; + this.y = this.curve.one; + this.z = new BN(0); + } else { + this.x = new BN(x, 16); + this.y = new BN(y, 16); + this.z = new BN(z, 16); + } + if (!this.x.red) + this.x = this.x.toRed(this.curve.red); + if (!this.y.red) + this.y = this.y.toRed(this.curve.red); + if (!this.z.red) + this.z = this.z.toRed(this.curve.red); + + this.zOne = this.z === this.curve.one; +} +inherits(JPoint, Base.BasePoint); + +ShortCurve.prototype.jpoint = function jpoint(x, y, z) { + return new JPoint(this, x, y, z); +}; + +JPoint.prototype.toP = function toP() { + if (this.isInfinity()) + return this.curve.point(null, null); + + var zinv = this.z.redInvm(); + var zinv2 = zinv.redSqr(); + var ax = this.x.redMul(zinv2); + var ay = this.y.redMul(zinv2).redMul(zinv); + + return this.curve.point(ax, ay); +}; + +JPoint.prototype.neg = function neg() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); +}; + +JPoint.prototype.add = function add(p) { + // O + P = P + if (this.isInfinity()) + return p; + + // P + O = P + if (p.isInfinity()) + return this; + + // 12M + 4S + 7A + var pz2 = p.z.redSqr(); + var z2 = this.z.redSqr(); + var u1 = this.x.redMul(pz2); + var u2 = p.x.redMul(z2); + var s1 = this.y.redMul(pz2.redMul(p.z)); + var s2 = p.y.redMul(z2.redMul(this.z)); + + var h = u1.redSub(u2); + var r = s1.redSub(s2); + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + + var h2 = h.redSqr(); + var h3 = h2.redMul(h); + var v = u1.redMul(h2); + + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); + var nz = this.z.redMul(p.z).redMul(h); + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.mixedAdd = function mixedAdd(p) { + // O + P = P + if (this.isInfinity()) + return p.toJ(); + + // P + O = P + if (p.isInfinity()) + return this; + + // 8M + 3S + 7A + var z2 = this.z.redSqr(); + var u1 = this.x; + var u2 = p.x.redMul(z2); + var s1 = this.y; + var s2 = p.y.redMul(z2).redMul(this.z); + + var h = u1.redSub(u2); + var r = s1.redSub(s2); + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) + return this.curve.jpoint(null, null, null); + else + return this.dbl(); + } + + var h2 = h.redSqr(); + var h3 = h2.redMul(h); + var v = u1.redMul(h2); + + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); + var nz = this.z.redMul(h); + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.dblp = function dblp(pow) { + if (pow === 0) + return this; + if (this.isInfinity()) + return this; + if (!pow) + return this.dbl(); + + var i; + if (this.curve.zeroA || this.curve.threeA) { + var r = this; + for (i = 0; i < pow; i++) + r = r.dbl(); + return r; + } + + // 1M + 2S + 1A + N * (4S + 5M + 8A) + // N = 1 => 6M + 6S + 9A + var a = this.curve.a; + var tinv = this.curve.tinv; + + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + + // Reuse results + var jyd = jy.redAdd(jy); + for (i = 0; i < pow; i++) { + var jx2 = jx.redSqr(); + var jyd2 = jyd.redSqr(); + var jyd4 = jyd2.redSqr(); + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); + + var t1 = jx.redMul(jyd2); + var nx = c.redSqr().redISub(t1.redAdd(t1)); + var t2 = t1.redISub(nx); + var dny = c.redMul(t2); + dny = dny.redIAdd(dny).redISub(jyd4); + var nz = jyd.redMul(jz); + if (i + 1 < pow) + jz4 = jz4.redMul(jyd4); + + jx = nx; + jz = nz; + jyd = dny; + } + + return this.curve.jpoint(jx, jyd.redMul(tinv), jz); +}; + +JPoint.prototype.dbl = function dbl() { + if (this.isInfinity()) + return this; + + if (this.curve.zeroA) + return this._zeroDbl(); + else if (this.curve.threeA) + return this._threeDbl(); + else + return this._dbl(); +}; + +JPoint.prototype._zeroDbl = function _zeroDbl() { + var nx; + var ny; + var nz; + // Z = 1 + if (this.zOne) { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html + // #doubling-mdbl-2007-bl + // 1M + 5S + 14A + + // XX = X1^2 + var xx = this.x.redSqr(); + // YY = Y1^2 + var yy = this.y.redSqr(); + // YYYY = YY^2 + var yyyy = yy.redSqr(); + // S = 2 * ((X1 + YY)^2 - XX - YYYY) + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s = s.redIAdd(s); + // M = 3 * XX + a; a = 0 + var m = xx.redAdd(xx).redIAdd(xx); + // T = M ^ 2 - 2*S + var t = m.redSqr().redISub(s).redISub(s); + + // 8 * YYYY + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + + // X3 = T + nx = t; + // Y3 = M * (S - T) - 8 * YYYY + ny = m.redMul(s.redISub(t)).redISub(yyyy8); + // Z3 = 2*Y1 + nz = this.y.redAdd(this.y); + } else { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html + // #doubling-dbl-2009-l + // 2M + 5S + 13A + + // A = X1^2 + var a = this.x.redSqr(); + // B = Y1^2 + var b = this.y.redSqr(); + // C = B^2 + var c = b.redSqr(); + // D = 2 * ((X1 + B)^2 - A - C) + var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); + d = d.redIAdd(d); + // E = 3 * A + var e = a.redAdd(a).redIAdd(a); + // F = E^2 + var f = e.redSqr(); + + // 8 * C + var c8 = c.redIAdd(c); + c8 = c8.redIAdd(c8); + c8 = c8.redIAdd(c8); + + // X3 = F - 2 * D + nx = f.redISub(d).redISub(d); + // Y3 = E * (D - X3) - 8 * C + ny = e.redMul(d.redISub(nx)).redISub(c8); + // Z3 = 2 * Y1 * Z1 + nz = this.y.redMul(this.z); + nz = nz.redIAdd(nz); + } + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype._threeDbl = function _threeDbl() { + var nx; + var ny; + var nz; + // Z = 1 + if (this.zOne) { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html + // #doubling-mdbl-2007-bl + // 1M + 5S + 15A + + // XX = X1^2 + var xx = this.x.redSqr(); + // YY = Y1^2 + var yy = this.y.redSqr(); + // YYYY = YY^2 + var yyyy = yy.redSqr(); + // S = 2 * ((X1 + YY)^2 - XX - YYYY) + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s = s.redIAdd(s); + // M = 3 * XX + a + var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); + // T = M^2 - 2 * S + var t = m.redSqr().redISub(s).redISub(s); + // X3 = T + nx = t; + // Y3 = M * (S - T) - 8 * YYYY + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + ny = m.redMul(s.redISub(t)).redISub(yyyy8); + // Z3 = 2 * Y1 + nz = this.y.redAdd(this.y); + } else { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b + // 3M + 5S + + // delta = Z1^2 + var delta = this.z.redSqr(); + // gamma = Y1^2 + var gamma = this.y.redSqr(); + // beta = X1 * gamma + var beta = this.x.redMul(gamma); + // alpha = 3 * (X1 - delta) * (X1 + delta) + var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); + alpha = alpha.redAdd(alpha).redIAdd(alpha); + // X3 = alpha^2 - 8 * beta + var beta4 = beta.redIAdd(beta); + beta4 = beta4.redIAdd(beta4); + var beta8 = beta4.redAdd(beta4); + nx = alpha.redSqr().redISub(beta8); + // Z3 = (Y1 + Z1)^2 - gamma - delta + nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); + // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 + var ggamma8 = gamma.redSqr(); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); + } + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype._dbl = function _dbl() { + var a = this.curve.a; + + // 4M + 6S + 10A + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + + var jx2 = jx.redSqr(); + var jy2 = jy.redSqr(); + + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); + + var jxd4 = jx.redAdd(jx); + jxd4 = jxd4.redIAdd(jxd4); + var t1 = jxd4.redMul(jy2); + var nx = c.redSqr().redISub(t1.redAdd(t1)); + var t2 = t1.redISub(nx); + + var jyd8 = jy2.redSqr(); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + var ny = c.redMul(t2).redISub(jyd8); + var nz = jy.redAdd(jy).redMul(jz); + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.trpl = function trpl() { + if (!this.curve.zeroA) + return this.dbl().add(this); + + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl + // 5M + 10S + ... + + // XX = X1^2 + var xx = this.x.redSqr(); + // YY = Y1^2 + var yy = this.y.redSqr(); + // ZZ = Z1^2 + var zz = this.z.redSqr(); + // YYYY = YY^2 + var yyyy = yy.redSqr(); + // M = 3 * XX + a * ZZ2; a = 0 + var m = xx.redAdd(xx).redIAdd(xx); + // MM = M^2 + var mm = m.redSqr(); + // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM + var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + e = e.redIAdd(e); + e = e.redAdd(e).redIAdd(e); + e = e.redISub(mm); + // EE = E^2 + var ee = e.redSqr(); + // T = 16*YYYY + var t = yyyy.redIAdd(yyyy); + t = t.redIAdd(t); + t = t.redIAdd(t); + t = t.redIAdd(t); + // U = (M + E)^2 - MM - EE - T + var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); + // X3 = 4 * (X1 * EE - 4 * YY * U) + var yyu4 = yy.redMul(u); + yyu4 = yyu4.redIAdd(yyu4); + yyu4 = yyu4.redIAdd(yyu4); + var nx = this.x.redMul(ee).redISub(yyu4); + nx = nx.redIAdd(nx); + nx = nx.redIAdd(nx); + // Y3 = 8 * Y1 * (U * (T - U) - E * EE) + var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + // Z3 = (Z1 + E)^2 - ZZ - EE + var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.mul = function mul(k, kbase) { + k = new BN(k, kbase); + + return this.curve._wnafMul(this, k); +}; + +JPoint.prototype.eq = function eq(p) { + if (p.type === 'affine') + return this.eq(p.toJ()); + + if (this === p) + return true; + + // x1 * z2^2 == x2 * z1^2 + var z2 = this.z.redSqr(); + var pz2 = p.z.redSqr(); + if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) + return false; + + // y1 * z2^3 == y2 * z1^3 + var z3 = z2.redMul(this.z); + var pz3 = pz2.redMul(p.z); + return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; +}; + +JPoint.prototype.eqXToP = function eqXToP(x) { + var zs = this.z.redSqr(); + var rx = x.toRed(this.curve.red).redMul(zs); + if (this.x.cmp(rx) === 0) + return true; + + var xc = x.clone(); + var t = this.curve.redN.redMul(zs); + for (;;) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) + return false; + + rx.redIAdd(t); + if (this.x.cmp(rx) === 0) + return true; + } +}; + +JPoint.prototype.inspect = function inspect() { + if (this.isInfinity()) + return ''; + return ''; +}; + +JPoint.prototype.isInfinity = function isInfinity() { + // XXX This code assumes that zero is always zero in red + return this.z.cmpn(0) === 0; +}; + + +}, +88261(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +var curves = exports; + +var hash = __webpack_require__(93842); +var curve = __webpack_require__(32765); +var utils = __webpack_require__(67156); + +var assert = utils.assert; + +function PresetCurve(options) { + if (options.type === 'short') + this.curve = new curve.short(options); + else if (options.type === 'edwards') + this.curve = new curve.edwards(options); + else + this.curve = new curve.mont(options); + this.g = this.curve.g; + this.n = this.curve.n; + this.hash = options.hash; + + assert(this.g.validate(), 'Invalid curve'); + assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); +} +curves.PresetCurve = PresetCurve; + +function defineCurve(name, options) { + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + get: function() { + var curve = new PresetCurve(options); + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + value: curve, + }); + return curve; + }, + }); +} + +defineCurve('p192', { + type: 'short', + prime: 'p192', + p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc', + b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1', + n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831', + hash: hash.sha256, + gRed: false, + g: [ + '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', + '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811', + ], +}); + +defineCurve('p224', { + type: 'short', + prime: 'p224', + p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001', + a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe', + b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4', + n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d', + hash: hash.sha256, + gRed: false, + g: [ + 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', + 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34', + ], +}); + +defineCurve('p256', { + type: 'short', + prime: null, + p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff', + a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc', + b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b', + n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551', + hash: hash.sha256, + gRed: false, + g: [ + '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', + '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5', + ], +}); + +defineCurve('p384', { + type: 'short', + prime: null, + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'fffffffe ffffffff 00000000 00000000 ffffffff', + a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'fffffffe ffffffff 00000000 00000000 fffffffc', + b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef', + n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973', + hash: hash.sha384, + gRed: false, + g: [ + 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + + '5502f25d bf55296c 3a545e38 72760ab7', + '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f', + ], +}); + +defineCurve('p521', { + type: 'short', + prime: null, + p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff', + a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff ffffffff ffffffff fffffffc', + b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00', + n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409', + hash: hash.sha512, + gRed: false, + g: [ + '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', + '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + + '3fad0761 353c7086 a272c240 88be9476 9fd16650', + ], +}); + +defineCurve('curve25519', { + type: 'mont', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '1', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash.sha256, + gRed: false, + g: [ + '9', + ], +}); + +defineCurve('ed25519', { + type: 'edwards', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + // -121665 * (121666^(-1)) (mod P) + d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash.sha256, + gRed: false, + g: [ + '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', + + // 4/5 + '6666666666666666666666666666666666666666666666666666666666666658', + ], +}); + +var pre; +try { + pre = __webpack_require__(74236); +} catch (e) { + pre = undefined; +} + +defineCurve('secp256k1', { + type: 'short', + prime: 'k256', + p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f', + a: '0', + b: '7', + n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141', + h: '1', + hash: hash.sha256, + + // Precomputed endomorphism + beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [ + { + a: '3086d221a7d46bcde86c90e49284eb15', + b: '-e4437ed6010e88286f547fa90abfe4c3', + }, + { + a: '114ca50f7a8e2f3f657c1108d9d44cfd8', + b: '3086d221a7d46bcde86c90e49284eb15', + }, + ], + + gRed: false, + g: [ + '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', + '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', + pre, + ], +}); + + +}, +97646(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); +var HmacDRBG = __webpack_require__(42588); +var utils = __webpack_require__(67156); +var curves = __webpack_require__(88261); +var rand = __webpack_require__(93705); +var assert = utils.assert; + +var KeyPair = __webpack_require__(31129); +var Signature = __webpack_require__(51392); + +function EC(options) { + if (!(this instanceof EC)) + return new EC(options); + + // Shortcut `elliptic.ec(curve-name)` + if (typeof options === 'string') { + assert(Object.prototype.hasOwnProperty.call(curves, options), + 'Unknown curve ' + options); + + options = curves[options]; + } + + // Shortcut for `elliptic.ec(elliptic.curves.curveName)` + if (options instanceof curves.PresetCurve) + options = { curve: options }; + + this.curve = options.curve.curve; + this.n = this.curve.n; + this.nh = this.n.ushrn(1); + this.g = this.curve.g; + + // Point on curve + this.g = options.curve.g; + this.g.precompute(options.curve.n.bitLength() + 1); + + // Hash for function for DRBG + this.hash = options.hash || options.curve.hash; +} +module.exports = EC; + +EC.prototype.keyPair = function keyPair(options) { + return new KeyPair(this, options); +}; + +EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { + return KeyPair.fromPrivate(this, priv, enc); +}; + +EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { + return KeyPair.fromPublic(this, pub, enc); +}; + +EC.prototype.genKeyPair = function genKeyPair(options) { + if (!options) + options = {}; + + // Instantiate Hmac_DRBG + var drbg = new HmacDRBG({ + hash: this.hash, + pers: options.pers, + persEnc: options.persEnc || 'utf8', + entropy: options.entropy || rand(this.hash.hmacStrength), + entropyEnc: options.entropy && options.entropyEnc || 'utf8', + nonce: this.n.toArray(), + }); + + var bytes = this.n.byteLength(); + var ns2 = this.n.sub(new BN(2)); + for (;;) { + var priv = new BN(drbg.generate(bytes)); + if (priv.cmp(ns2) > 0) + continue; + + priv.iaddn(1); + return this.keyFromPrivate(priv); + } +}; + +EC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) { + var byteLength; + if (BN.isBN(msg) || typeof msg === 'number') { + msg = new BN(msg, 16); + byteLength = msg.byteLength(); + } else if (typeof msg === 'object') { + // BN assumes an array-like input and asserts length + byteLength = msg.length; + msg = new BN(msg, 16); + } else { + // BN converts the value to string + var str = msg.toString(); + // HEX encoding + byteLength = (str.length + 1) >>> 1; + msg = new BN(str, 16); + } + // Allow overriding + if (typeof bitLength !== 'number') { + bitLength = byteLength * 8; + } + var delta = bitLength - this.n.bitLength(); + if (delta > 0) + msg = msg.ushrn(delta); + if (!truncOnly && msg.cmp(this.n) >= 0) + return msg.sub(this.n); + else + return msg; +}; + +EC.prototype.sign = function sign(msg, key, enc, options) { + if (typeof enc === 'object') { + options = enc; + enc = null; + } + if (!options) + options = {}; + + if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) { + assert(typeof msg === 'object' && msg && typeof msg.length === 'number', + 'Expected message to be an array-like, a hex string, or a BN instance'); + assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer + for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]); + } + + key = this.keyFromPrivate(key, enc); + msg = this._truncateToN(msg, false, options.msgBitLength); + + // Would fail further checks, but let's make the error message clear + assert(!msg.isNeg(), 'Can not sign a negative message'); + + // Zero-extend key to provide enough entropy + var bytes = this.n.byteLength(); + var bkey = key.getPrivate().toArray('be', bytes); + + // Zero-extend nonce to have the same byte size as N + var nonce = msg.toArray('be', bytes); + + // Recheck nonce to be bijective to msg + assert((new BN(nonce)).eq(msg), 'Can not sign message'); + + // Instantiate Hmac_DRBG + var drbg = new HmacDRBG({ + hash: this.hash, + entropy: bkey, + nonce: nonce, + pers: options.pers, + persEnc: options.persEnc || 'utf8', + }); + + // Number of bytes to generate + var ns1 = this.n.sub(new BN(1)); + + for (var iter = 0; ; iter++) { + var k = options.k ? + options.k(iter) : + new BN(drbg.generate(this.n.byteLength())); + k = this._truncateToN(k, true); + if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) + continue; + + var kp = this.g.mul(k); + if (kp.isInfinity()) + continue; + + var kpX = kp.getX(); + var r = kpX.umod(this.n); + if (r.cmpn(0) === 0) + continue; + + var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); + s = s.umod(this.n); + if (s.cmpn(0) === 0) + continue; + + var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | + (kpX.cmp(r) !== 0 ? 2 : 0); + + // Use complement of `s`, if it is > `n / 2` + if (options.canonical && s.cmp(this.nh) > 0) { + s = this.n.sub(s); + recoveryParam ^= 1; + } + + return new Signature({ r: r, s: s, recoveryParam: recoveryParam }); + } +}; + +EC.prototype.verify = function verify(msg, signature, key, enc, options) { + if (!options) + options = {}; + + msg = this._truncateToN(msg, false, options.msgBitLength); + key = this.keyFromPublic(key, enc); + signature = new Signature(signature, 'hex'); + + // Perform primitive values validation + var r = signature.r; + var s = signature.s; + if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) + return false; + if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) + return false; + + // Validate signature + var sinv = s.invm(this.n); + var u1 = sinv.mul(msg).umod(this.n); + var u2 = sinv.mul(r).umod(this.n); + var p; + + if (!this.curve._maxwellTrick) { + p = this.g.mulAdd(u1, key.getPublic(), u2); + if (p.isInfinity()) + return false; + + return p.getX().umod(this.n).cmp(r) === 0; + } + + // NOTE: Greg Maxwell's trick, inspired by: + // https://git.io/vad3K + + p = this.g.jmulAdd(u1, key.getPublic(), u2); + if (p.isInfinity()) + return false; + + // Compare `p.x` of Jacobian point with `r`, + // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the + // inverse of `p.z^2` + return p.eqXToP(r); +}; + +EC.prototype.recoverPubKey = function(msg, signature, j, enc) { + assert((3 & j) === j, 'The recovery param is more than two bits'); + signature = new Signature(signature, enc); + + var n = this.n; + var e = new BN(msg); + var r = signature.r; + var s = signature.s; + + // A set LSB signifies that the y-coordinate is odd + var isYOdd = j & 1; + var isSecondKey = j >> 1; + if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) + throw new Error('Unable to find sencond key candinate'); + + // 1.1. Let x = r + jn. + if (isSecondKey) + r = this.curve.pointFromX(r.add(this.curve.n), isYOdd); + else + r = this.curve.pointFromX(r, isYOdd); + + var rInv = signature.r.invm(n); + var s1 = n.sub(e).mul(rInv).umod(n); + var s2 = s.mul(rInv).umod(n); + + // 1.6.1 Compute Q = r^-1 (sR - eG) + // Q = r^-1 (sR + -eG) + return this.g.mulAdd(s1, r, s2); +}; + +EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { + signature = new Signature(signature, enc); + if (signature.recoveryParam !== null) + return signature.recoveryParam; + + for (var i = 0; i < 4; i++) { + var Qprime; + try { + Qprime = this.recoverPubKey(e, signature, i); + } catch (e) { + continue; + } + + if (Qprime.eq(Q)) + return i; + } + throw new Error('Unable to find valid recovery factor'); +}; + + +}, +31129(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); +var utils = __webpack_require__(67156); +var assert = utils.assert; + +function KeyPair(ec, options) { + this.ec = ec; + this.priv = null; + this.pub = null; + + // KeyPair(ec, { priv: ..., pub: ... }) + if (options.priv) + this._importPrivate(options.priv, options.privEnc); + if (options.pub) + this._importPublic(options.pub, options.pubEnc); +} +module.exports = KeyPair; + +KeyPair.fromPublic = function fromPublic(ec, pub, enc) { + if (pub instanceof KeyPair) + return pub; + + return new KeyPair(ec, { + pub: pub, + pubEnc: enc, + }); +}; + +KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { + if (priv instanceof KeyPair) + return priv; + + return new KeyPair(ec, { + priv: priv, + privEnc: enc, + }); +}; + +KeyPair.prototype.validate = function validate() { + var pub = this.getPublic(); + + if (pub.isInfinity()) + return { result: false, reason: 'Invalid public key' }; + if (!pub.validate()) + return { result: false, reason: 'Public key is not a point' }; + if (!pub.mul(this.ec.curve.n).isInfinity()) + return { result: false, reason: 'Public key * N != O' }; + + return { result: true, reason: null }; +}; + +KeyPair.prototype.getPublic = function getPublic(compact, enc) { + // compact is optional argument + if (typeof compact === 'string') { + enc = compact; + compact = null; + } + + if (!this.pub) + this.pub = this.ec.g.mul(this.priv); + + if (!enc) + return this.pub; + + return this.pub.encode(enc, compact); +}; + +KeyPair.prototype.getPrivate = function getPrivate(enc) { + if (enc === 'hex') + return this.priv.toString(16, 2); + else + return this.priv; +}; + +KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { + this.priv = new BN(key, enc || 16); + + // Ensure that the priv won't be bigger than n, otherwise we may fail + // in fixed multiplication method + this.priv = this.priv.umod(this.ec.curve.n); +}; + +KeyPair.prototype._importPublic = function _importPublic(key, enc) { + if (key.x || key.y) { + // Montgomery points only have an `x` coordinate. + // Weierstrass/Edwards points on the other hand have both `x` and + // `y` coordinates. + if (this.ec.curve.type === 'mont') { + assert(key.x, 'Need x coordinate'); + } else if (this.ec.curve.type === 'short' || + this.ec.curve.type === 'edwards') { + assert(key.x && key.y, 'Need both x and y coordinate'); + } + this.pub = this.ec.curve.point(key.x, key.y); + return; + } + this.pub = this.ec.curve.decodePoint(key, enc); +}; + +// ECDH +KeyPair.prototype.derive = function derive(pub) { + if(!pub.validate()) { + assert(pub.validate(), 'public point not validated'); + } + return pub.mul(this.priv).getX(); +}; + +// ECDSA +KeyPair.prototype.sign = function sign(msg, enc, options) { + return this.ec.sign(msg, this, enc, options); +}; + +KeyPair.prototype.verify = function verify(msg, signature, options) { + return this.ec.verify(msg, signature, this, undefined, options); +}; + +KeyPair.prototype.inspect = function inspect() { + return ''; +}; + + +}, +51392(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); + +var utils = __webpack_require__(67156); +var assert = utils.assert; + +function Signature(options, enc) { + if (options instanceof Signature) + return options; + + if (this._importDER(options, enc)) + return; + + assert(options.r && options.s, 'Signature without r or s'); + this.r = new BN(options.r, 16); + this.s = new BN(options.s, 16); + if (options.recoveryParam === undefined) + this.recoveryParam = null; + else + this.recoveryParam = options.recoveryParam; +} +module.exports = Signature; + +function Position() { + this.place = 0; +} + +function getLength(buf, p) { + var initial = buf[p.place++]; + if (!(initial & 0x80)) { + return initial; + } + var octetLen = initial & 0xf; + + // Indefinite length or overflow + if (octetLen === 0 || octetLen > 4) { + return false; + } + + if(buf[p.place] === 0x00) { + return false; + } + + var val = 0; + for (var i = 0, off = p.place; i < octetLen; i++, off++) { + val <<= 8; + val |= buf[off]; + val >>>= 0; + } + + // Leading zeroes + if (val <= 0x7f) { + return false; + } + + p.place = off; + return val; +} + +function rmPadding(buf) { + var i = 0; + var len = buf.length - 1; + while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { + i++; + } + if (i === 0) { + return buf; + } + return buf.slice(i); +} + +Signature.prototype._importDER = function _importDER(data, enc) { + data = utils.toArray(data, enc); + var p = new Position(); + if (data[p.place++] !== 0x30) { + return false; + } + var len = getLength(data, p); + if (len === false) { + return false; + } + if ((len + p.place) !== data.length) { + return false; + } + if (data[p.place++] !== 0x02) { + return false; + } + var rlen = getLength(data, p); + if (rlen === false) { + return false; + } + if ((data[p.place] & 128) !== 0) { + return false; + } + var r = data.slice(p.place, rlen + p.place); + p.place += rlen; + if (data[p.place++] !== 0x02) { + return false; + } + var slen = getLength(data, p); + if (slen === false) { + return false; + } + if (data.length !== slen + p.place) { + return false; + } + if ((data[p.place] & 128) !== 0) { + return false; + } + var s = data.slice(p.place, slen + p.place); + if (r[0] === 0) { + if (r[1] & 0x80) { + r = r.slice(1); + } else { + // Leading zeroes + return false; + } + } + if (s[0] === 0) { + if (s[1] & 0x80) { + s = s.slice(1); + } else { + // Leading zeroes + return false; + } + } + + this.r = new BN(r); + this.s = new BN(s); + this.recoveryParam = null; + + return true; +}; + +function constructLength(arr, len) { + if (len < 0x80) { + arr.push(len); + return; + } + var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); + arr.push(octets | 0x80); + while (--octets) { + arr.push((len >>> (octets << 3)) & 0xff); + } + arr.push(len); +} + +Signature.prototype.toDER = function toDER(enc) { + var r = this.r.toArray(); + var s = this.s.toArray(); + + // Pad values + if (r[0] & 0x80) + r = [ 0 ].concat(r); + // Pad values + if (s[0] & 0x80) + s = [ 0 ].concat(s); + + r = rmPadding(r); + s = rmPadding(s); + + while (!s[0] && !(s[1] & 0x80)) { + s = s.slice(1); + } + var arr = [ 0x02 ]; + constructLength(arr, r.length); + arr = arr.concat(r); + arr.push(0x02); + constructLength(arr, s.length); + var backHalf = arr.concat(s); + var res = [ 0x30 ]; + constructLength(res, backHalf.length); + res = res.concat(backHalf); + return utils.encode(res, enc); +}; + + +}, +73241(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var hash = __webpack_require__(93842); +var curves = __webpack_require__(88261); +var utils = __webpack_require__(67156); +var assert = utils.assert; +var parseBytes = utils.parseBytes; +var KeyPair = __webpack_require__(97418); +var Signature = __webpack_require__(70591); + +function EDDSA(curve) { + assert(curve === 'ed25519', 'only tested with ed25519 so far'); + + if (!(this instanceof EDDSA)) + return new EDDSA(curve); + + curve = curves[curve].curve; + this.curve = curve; + this.g = curve.g; + this.g.precompute(curve.n.bitLength() + 1); + + this.pointClass = curve.point().constructor; + this.encodingLength = Math.ceil(curve.n.bitLength() / 8); + this.hash = hash.sha512; +} + +module.exports = EDDSA; + +/** +* @param {Array|String} message - message bytes +* @param {Array|String|KeyPair} secret - secret bytes or a keypair +* @returns {Signature} - signature +*/ +EDDSA.prototype.sign = function sign(message, secret) { + message = parseBytes(message); + var key = this.keyFromSecret(secret); + var r = this.hashInt(key.messagePrefix(), message); + var R = this.g.mul(r); + var Rencoded = this.encodePoint(R); + var s_ = this.hashInt(Rencoded, key.pubBytes(), message) + .mul(key.priv()); + var S = r.add(s_).umod(this.curve.n); + return this.makeSignature({ R: R, S: S, Rencoded: Rencoded }); +}; + +/** +* @param {Array} message - message bytes +* @param {Array|String|Signature} sig - sig bytes +* @param {Array|String|Point|KeyPair} pub - public key +* @returns {Boolean} - true if public key matches sig of message +*/ +EDDSA.prototype.verify = function verify(message, sig, pub) { + message = parseBytes(message); + sig = this.makeSignature(sig); + if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) { + return false; + } + var key = this.keyFromPublic(pub); + var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message); + var SG = this.g.mul(sig.S()); + var RplusAh = sig.R().add(key.pub().mul(h)); + return RplusAh.eq(SG); +}; + +EDDSA.prototype.hashInt = function hashInt() { + var hash = this.hash(); + for (var i = 0; i < arguments.length; i++) + hash.update(arguments[i]); + return utils.intFromLE(hash.digest()).umod(this.curve.n); +}; + +EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) { + return KeyPair.fromPublic(this, pub); +}; + +EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) { + return KeyPair.fromSecret(this, secret); +}; + +EDDSA.prototype.makeSignature = function makeSignature(sig) { + if (sig instanceof Signature) + return sig; + return new Signature(this, sig); +}; + +/** +* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2 +* +* EDDSA defines methods for encoding and decoding points and integers. These are +* helper convenience methods, that pass along to utility functions implied +* parameters. +* +*/ +EDDSA.prototype.encodePoint = function encodePoint(point) { + var enc = point.getY().toArray('le', this.encodingLength); + enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0; + return enc; +}; + +EDDSA.prototype.decodePoint = function decodePoint(bytes) { + bytes = utils.parseBytes(bytes); + + var lastIx = bytes.length - 1; + var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80); + var xIsOdd = (bytes[lastIx] & 0x80) !== 0; + + var y = utils.intFromLE(normed); + return this.curve.pointFromY(y, xIsOdd); +}; + +EDDSA.prototype.encodeInt = function encodeInt(num) { + return num.toArray('le', this.encodingLength); +}; + +EDDSA.prototype.decodeInt = function decodeInt(bytes) { + return utils.intFromLE(bytes); +}; + +EDDSA.prototype.isPoint = function isPoint(val) { + return val instanceof this.pointClass; +}; + + +}, +97418(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var utils = __webpack_require__(67156); +var assert = utils.assert; +var parseBytes = utils.parseBytes; +var cachedProperty = utils.cachedProperty; + +/** +* @param {EDDSA} eddsa - instance +* @param {Object} params - public/private key parameters +* +* @param {Array} [params.secret] - secret seed bytes +* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms) +* @param {Array} [params.pub] - public key point encoded as bytes +* +*/ +function KeyPair(eddsa, params) { + this.eddsa = eddsa; + this._secret = parseBytes(params.secret); + if (eddsa.isPoint(params.pub)) + this._pub = params.pub; + else + this._pubBytes = parseBytes(params.pub); +} + +KeyPair.fromPublic = function fromPublic(eddsa, pub) { + if (pub instanceof KeyPair) + return pub; + return new KeyPair(eddsa, { pub: pub }); +}; + +KeyPair.fromSecret = function fromSecret(eddsa, secret) { + if (secret instanceof KeyPair) + return secret; + return new KeyPair(eddsa, { secret: secret }); +}; + +KeyPair.prototype.secret = function secret() { + return this._secret; +}; + +cachedProperty(KeyPair, 'pubBytes', function pubBytes() { + return this.eddsa.encodePoint(this.pub()); +}); + +cachedProperty(KeyPair, 'pub', function pub() { + if (this._pubBytes) + return this.eddsa.decodePoint(this._pubBytes); + return this.eddsa.g.mul(this.priv()); +}); + +cachedProperty(KeyPair, 'privBytes', function privBytes() { + var eddsa = this.eddsa; + var hash = this.hash(); + var lastIx = eddsa.encodingLength - 1; + + var a = hash.slice(0, eddsa.encodingLength); + a[0] &= 248; + a[lastIx] &= 127; + a[lastIx] |= 64; + + return a; +}); + +cachedProperty(KeyPair, 'priv', function priv() { + return this.eddsa.decodeInt(this.privBytes()); +}); + +cachedProperty(KeyPair, 'hash', function hash() { + return this.eddsa.hash().update(this.secret()).digest(); +}); + +cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() { + return this.hash().slice(this.eddsa.encodingLength); +}); + +KeyPair.prototype.sign = function sign(message) { + assert(this._secret, 'KeyPair can only verify'); + return this.eddsa.sign(message, this); +}; + +KeyPair.prototype.verify = function verify(message, sig) { + return this.eddsa.verify(message, sig, this); +}; + +KeyPair.prototype.getSecret = function getSecret(enc) { + assert(this._secret, 'KeyPair is public only'); + return utils.encode(this.secret(), enc); +}; + +KeyPair.prototype.getPublic = function getPublic(enc) { + return utils.encode(this.pubBytes(), enc); +}; + +module.exports = KeyPair; + + +}, +70591(module, __unused_webpack_exports, __webpack_require__) { +"use strict"; + + +var BN = __webpack_require__(91939); +var utils = __webpack_require__(67156); +var assert = utils.assert; +var cachedProperty = utils.cachedProperty; +var parseBytes = utils.parseBytes; + +/** +* @param {EDDSA} eddsa - eddsa instance +* @param {Array|Object} sig - +* @param {Array|Point} [sig.R] - R point as Point or bytes +* @param {Array|bn} [sig.S] - S scalar as bn or bytes +* @param {Array} [sig.Rencoded] - R point encoded +* @param {Array} [sig.Sencoded] - S scalar encoded +*/ +function Signature(eddsa, sig) { + this.eddsa = eddsa; + + if (typeof sig !== 'object') + sig = parseBytes(sig); + + if (Array.isArray(sig)) { + assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size'); + sig = { + R: sig.slice(0, eddsa.encodingLength), + S: sig.slice(eddsa.encodingLength), + }; + } + + assert(sig.R && sig.S, 'Signature without R or S'); + + if (eddsa.isPoint(sig.R)) + this._R = sig.R; + if (sig.S instanceof BN) + this._S = sig.S; + + this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded; + this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded; +} + +cachedProperty(Signature, 'S', function S() { + return this.eddsa.decodeInt(this.Sencoded()); +}); + +cachedProperty(Signature, 'R', function R() { + return this.eddsa.decodePoint(this.Rencoded()); +}); + +cachedProperty(Signature, 'Rencoded', function Rencoded() { + return this.eddsa.encodePoint(this.R()); +}); + +cachedProperty(Signature, 'Sencoded', function Sencoded() { + return this.eddsa.encodeInt(this.S()); +}); + +Signature.prototype.toBytes = function toBytes() { + return this.Rencoded().concat(this.Sencoded()); +}; + +Signature.prototype.toHex = function toHex() { + return utils.encode(this.toBytes(), 'hex').toUpperCase(); +}; + +module.exports = Signature; + + +}, +74236(module) { +module.exports = { + doubles: { + step: 4, + points: [ + [ + 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', + 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821', + ], + [ + '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', + '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf', + ], + [ + '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', + 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695', + ], + [ + '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', + '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9', + ], + [ + '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', + '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36', + ], + [ + '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', + '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f', + ], + [ + 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', + '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999', + ], + [ + '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', + 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09', + ], + [ + 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', + '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d', + ], + [ + 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', + 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088', + ], + [ + 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', + '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d', + ], + [ + '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', + '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8', + ], + [ + '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', + '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a', + ], + [ + '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', + '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453', + ], + [ + '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', + '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160', + ], + [ + '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', + '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0', + ], + [ + '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', + '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6', + ], + [ + '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', + '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589', + ], + [ + '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', + 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17', + ], + [ + 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', + '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda', + ], + [ + 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', + '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd', + ], + [ + '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', + '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2', + ], + [ + '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', + '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6', + ], + [ + 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', + '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f', + ], + [ + '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', + 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01', + ], + [ + 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', + '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3', + ], + [ + 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', + 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f', + ], + [ + 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', + '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7', + ], + [ + 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', + 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78', + ], + [ + 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', + '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1', + ], + [ + '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', + 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150', + ], + [ + '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', + '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82', + ], + [ + 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', + '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc', + ], + [ + '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', + 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b', + ], + [ + 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', + '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51', + ], + [ + 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', + '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45', + ], + [ + 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', + 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120', + ], + [ + '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', + '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84', + ], + [ + '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', + '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d', + ], + [ + '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', + 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d', + ], + [ + '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', + '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8', + ], + [ + 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', + '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8', + ], + [ + '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', + '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac', + ], + [ + '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', + 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f', + ], + [ + '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', + '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962', + ], + [ + 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', + '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907', + ], + [ + '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', + 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec', + ], + [ + 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', + 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d', + ], + [ + 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', + '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414', + ], + [ + '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', + 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd', + ], + [ + '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', + 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0', + ], + [ + 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', + '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811', + ], + [ + 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', + '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1', + ], + [ + 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', + '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c', + ], + [ + '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', + 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73', + ], + [ + '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', + '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd', + ], + [ + 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', + 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405', + ], + [ + '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', + 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589', + ], + [ + '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', + '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e', + ], + [ + '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', + '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27', + ], + [ + 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', + 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1', + ], + [ + '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', + '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482', + ], + [ + '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', + '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945', + ], + [ + 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', + '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573', + ], + [ + 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', + 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82', + ], + ], + }, + naf: { + wnd: 7, + points: [ + [ + 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', + '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672', + ], + [ + '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', + 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6', + ], + [ + '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', + '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da', + ], + [ + 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', + 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37', + ], + [ + '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', + 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b', + ], + [ + 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', + 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81', + ], + [ + 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', + '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58', + ], + [ + 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', + '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77', + ], + [ + '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', + '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a', + ], + [ + '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', + '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c', + ], + [ + '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', + '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67', + ], + [ + '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', + '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402', + ], + [ + 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', + 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55', + ], + [ + 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', + '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482', + ], + [ + '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', + 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82', + ], + [ + '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', + 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396', + ], + [ + '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', + '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49', + ], + [ + '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', + '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf', + ], + [ + '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', + '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a', + ], + [ + '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', + 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7', + ], + [ + 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', + 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933', + ], + [ + '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', + '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a', + ], + [ + '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', + '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6', + ], + [ + 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', + 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37', + ], + [ + '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', + '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e', + ], + [ + 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', + 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6', + ], + [ + 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', + 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476', + ], + [ + '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', + '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40', + ], + [ + '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', + '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61', + ], + [ + '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', + '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683', + ], + [ + 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', + '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5', + ], + [ + '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', + '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b', + ], + [ + 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', + '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417', + ], + [ + '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', + 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868', + ], + [ + '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', + 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a', + ], + [ + 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', + 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6', + ], + [ + '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', + '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996', + ], + [ + '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', + 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e', + ], + [ + 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', + 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d', + ], + [ + '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', + '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2', + ], + [ + '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', + 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e', + ], + [ + '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', + '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437', + ], + [ + '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', + 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311', + ], + [ + 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', + '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4', + ], + [ + '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', + '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575', + ], + [ + '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', + 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d', + ], + [ + '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', + 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d', + ], + [ + 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', + 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629', + ], + [ + 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', + 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06', + ], + [ + '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', + '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374', + ], + [ + '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', + '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee', + ], + [ + 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', + '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1', + ], + [ + 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', + 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b', + ], + [ + '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', + '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661', + ], + [ + '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', + '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6', + ], + [ + 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', + '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e', + ], + [ + '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', + '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d', + ], + [ + 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', + 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc', + ], + [ + '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', + 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4', + ], + [ + '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', + '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c', + ], + [ + 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', + '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b', + ], + [ + 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', + '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913', + ], + [ + '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', + '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154', + ], + [ + '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', + '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865', + ], + [ + '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', + 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc', + ], + [ + '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', + 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224', + ], + [ + '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', + '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e', + ], + [ + '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', + '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6', + ], + [ + '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', + '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511', + ], + [ + '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', + 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b', + ], + [ + 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', + 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2', + ], + [ + '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', + 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c', + ], + [ + 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', + '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3', + ], + [ + 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', + '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d', + ], + [ + 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', + '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700', + ], + [ + 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', + '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4', + ], + [ + '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', + 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196', + ], + [ + '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', + '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4', + ], + [ + '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', + 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257', + ], + [ + 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', + 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13', + ], + [ + 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', + '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096', + ], + [ + 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', + 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38', + ], + [ + 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', + '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f', + ], + [ + '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', + '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448', + ], + [ + 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', + '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a', + ], + [ + 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', + '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4', + ], + [ + '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', + '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437', + ], + [ + '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', + 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7', + ], + [ + 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', + '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d', + ], + [ + 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', + '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a', + ], + [ + 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', + '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54', + ], + [ + '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', + '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77', + ], + [ + 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', + 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517', + ], + [ + '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', + 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10', + ], + [ + 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', + 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125', + ], + [ + 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', + '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e', + ], + [ + '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', + 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1', + ], + [ + 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', + '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2', + ], + [ + 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', + '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423', + ], + [ + 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', + '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8', + ], + [ + '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', + 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758', + ], + [ + '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', + 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375', + ], + [ + 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', + '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d', + ], + [ + '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', + 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec', + ], + [ + '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', + '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0', + ], + [ + '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', + 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c', + ], + [ + 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', + 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4', + ], + [ + '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', + 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f', + ], + [ + '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', + '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649', + ], + [ + '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', + 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826', + ], + [ + '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', + '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5', + ], + [ + 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', + 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87', + ], + [ + '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', + '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b', + ], + [ + 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', + '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc', + ], + [ + '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', + '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c', + ], + [ + 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', + 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f', + ], + [ + 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', + '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a', + ], + [ + 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', + 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46', + ], + [ + '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', + 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f', + ], + [ + '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', + '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03', + ], + [ + '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', + 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08', + ], + [ + '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', + '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8', + ], + [ + '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', + '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373', + ], + [ + '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', + 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3', + ], + [ + '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', + '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8', + ], + [ + '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', + '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1', + ], + [ + '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', + '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9', + ], + ], + }, +}; + + +}, +67156(__unused_webpack_module, exports, __webpack_require__) { +"use strict"; + + +var utils = exports; +var BN = __webpack_require__(91939); +var minAssert = __webpack_require__(77285); +var minUtils = __webpack_require__(6250); + +utils.assert = minAssert; +utils.toArray = minUtils.toArray; +utils.zero2 = minUtils.zero2; +utils.toHex = minUtils.toHex; +utils.encode = minUtils.encode; + +// Represent num in a w-NAF form +function getNAF(num, w, bits) { + var naf = new Array(Math.max(num.bitLength(), bits) + 1); + var i; + for (i = 0; i < naf.length; i += 1) { + naf[i] = 0; + } + + var ws = 1 << (w + 1); + var k = num.clone(); + + for (i = 0; i < naf.length; i++) { + var z; + var mod = k.andln(ws - 1); + if (k.isOdd()) { + if (mod > (ws >> 1) - 1) + z = (ws >> 1) - mod; + else + z = mod; + k.isubn(z); + } else { + z = 0; + } + + naf[i] = z; + k.iushrn(1); + } + + return naf; +} +utils.getNAF = getNAF; + +// Represent k1, k2 in a Joint Sparse Form +function getJSF(k1, k2) { + var jsf = [ + [], + [], + ]; + + k1 = k1.clone(); + k2 = k2.clone(); + var d1 = 0; + var d2 = 0; + var m8; + while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { + // First phase + var m14 = (k1.andln(3) + d1) & 3; + var m24 = (k2.andln(3) + d2) & 3; + if (m14 === 3) + m14 = -1; + if (m24 === 3) + m24 = -1; + var u1; + if ((m14 & 1) === 0) { + u1 = 0; + } else { + m8 = (k1.andln(7) + d1) & 7; + if ((m8 === 3 || m8 === 5) && m24 === 2) + u1 = -m14; + else + u1 = m14; + } + jsf[0].push(u1); + + var u2; + if ((m24 & 1) === 0) { + u2 = 0; + } else { + m8 = (k2.andln(7) + d2) & 7; + if ((m8 === 3 || m8 === 5) && m14 === 2) + u2 = -m24; + else + u2 = m24; + } + jsf[1].push(u2); + + // Second phase + if (2 * d1 === u1 + 1) + d1 = 1 - d1; + if (2 * d2 === u2 + 1) + d2 = 1 - d2; + k1.iushrn(1); + k2.iushrn(1); + } + + return jsf; +} +utils.getJSF = getJSF; + +function cachedProperty(obj, name, computer) { + var key = '_' + name; + obj.prototype[name] = function cachedProperty() { + return this[key] !== undefined ? this[key] : + this[key] = computer.call(this); + }; +} +utils.cachedProperty = cachedProperty; + +function parseBytes(bytes) { + return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : + bytes; +} +utils.parseBytes = parseBytes; + +function intFromLE(bytes) { + return new BN(bytes, 'hex', 'le'); +} +utils.intFromLE = intFromLE; + + + +}, +32932(module) { +(function webpackUniversalModuleDefinition(root, factory) { +/* istanbul ignore next */ + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __nested_webpack_require_583__(moduleId) { + +/******/ // Check if module is in cache +/* istanbul ignore if */ +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_583__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_583__.m = modules; + +/******/ // expose the module cache +/******/ __nested_webpack_require_583__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_583__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_583__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __nested_webpack_require_1808_1827__) { + + "use strict"; + /* + Copyright JS Foundation and other contributors, https://js.foundation/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var comment_handler_1 = __nested_webpack_require_1808_1827__(1); + var jsx_parser_1 = __nested_webpack_require_1808_1827__(3); + var parser_1 = __nested_webpack_require_1808_1827__(8); + var tokenizer_1 = __nested_webpack_require_1808_1827__(15); + function parse(code, options, delegate) { + var commentHandler = null; + var proxyDelegate = function (node, metadata) { + if (delegate) { + delegate(node, metadata); + } + if (commentHandler) { + commentHandler.visit(node, metadata); + } + }; + var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null; + var collectComment = false; + if (options) { + collectComment = (typeof options.comment === 'boolean' && options.comment); + var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment); + if (collectComment || attachComment) { + commentHandler = new comment_handler_1.CommentHandler(); + commentHandler.attach = attachComment; + options.comment = true; + parserDelegate = proxyDelegate; + } + } + var isModule = false; + if (options && typeof options.sourceType === 'string') { + isModule = (options.sourceType === 'module'); + } + var parser; + if (options && typeof options.jsx === 'boolean' && options.jsx) { + parser = new jsx_parser_1.JSXParser(code, options, parserDelegate); + } + else { + parser = new parser_1.Parser(code, options, parserDelegate); + } + var program = isModule ? parser.parseModule() : parser.parseScript(); + var ast = program; + if (collectComment && commentHandler) { + ast.comments = commentHandler.comments; + } + if (parser.config.tokens) { + ast.tokens = parser.tokens; + } + if (parser.config.tolerant) { + ast.errors = parser.errorHandler.errors; + } + return ast; + } + exports.parse = parse; + function parseModule(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = 'module'; + return parse(code, parsingOptions, delegate); + } + exports.parseModule = parseModule; + function parseScript(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = 'script'; + return parse(code, parsingOptions, delegate); + } + exports.parseScript = parseScript; + function tokenize(code, options, delegate) { + var tokenizer = new tokenizer_1.Tokenizer(code, options); + var tokens; + tokens = []; + try { + while (true) { + var token = tokenizer.getNextToken(); + if (!token) { + break; + } + if (delegate) { + token = delegate(token); + } + tokens.push(token); + } + } + catch (e) { + tokenizer.errorHandler.tolerate(e); + } + if (tokenizer.errorHandler.tolerant) { + tokens.errors = tokenizer.errors(); + } + return tokens; + } + exports.tokenize = tokenize; + var syntax_1 = __nested_webpack_require_1808_1827__(2); + exports.Syntax = syntax_1.Syntax; + // Sync with *.json manifests. + exports.version = '4.0.1'; + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __nested_webpack_require_6456_6475__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var syntax_1 = __nested_webpack_require_6456_6475__(2); + var CommentHandler = (function () { + function CommentHandler() { + this.attach = false; + this.comments = []; + this.stack = []; + this.leading = []; + this.trailing = []; + } + CommentHandler.prototype.insertInnerComments = function (node, metadata) { + // innnerComments for properties empty block + // `function a() {/** comments **\/}` + if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) { + var innerComments = []; + for (var i = this.leading.length - 1; i >= 0; --i) { + var entry = this.leading[i]; + if (metadata.end.offset >= entry.start) { + innerComments.unshift(entry.comment); + this.leading.splice(i, 1); + this.trailing.splice(i, 1); + } + } + if (innerComments.length) { + node.innerComments = innerComments; + } + } + }; + CommentHandler.prototype.findTrailingComments = function (metadata) { + var trailingComments = []; + if (this.trailing.length > 0) { + for (var i = this.trailing.length - 1; i >= 0; --i) { + var entry_1 = this.trailing[i]; + if (entry_1.start >= metadata.end.offset) { + trailingComments.unshift(entry_1.comment); + } + } + this.trailing.length = 0; + return trailingComments; + } + var entry = this.stack[this.stack.length - 1]; + if (entry && entry.node.trailingComments) { + var firstComment = entry.node.trailingComments[0]; + if (firstComment && firstComment.range[0] >= metadata.end.offset) { + trailingComments = entry.node.trailingComments; + delete entry.node.trailingComments; + } + } + return trailingComments; + }; + CommentHandler.prototype.findLeadingComments = function (metadata) { + var leadingComments = []; + var target; + while (this.stack.length > 0) { + var entry = this.stack[this.stack.length - 1]; + if (entry && entry.start >= metadata.start.offset) { + target = entry.node; + this.stack.pop(); + } + else { + break; + } + } + if (target) { + var count = target.leadingComments ? target.leadingComments.length : 0; + for (var i = count - 1; i >= 0; --i) { + var comment = target.leadingComments[i]; + if (comment.range[1] <= metadata.start.offset) { + leadingComments.unshift(comment); + target.leadingComments.splice(i, 1); + } + } + if (target.leadingComments && target.leadingComments.length === 0) { + delete target.leadingComments; + } + return leadingComments; + } + for (var i = this.leading.length - 1; i >= 0; --i) { + var entry = this.leading[i]; + if (entry.start <= metadata.start.offset) { + leadingComments.unshift(entry.comment); + this.leading.splice(i, 1); + } + } + return leadingComments; + }; + CommentHandler.prototype.visitNode = function (node, metadata) { + if (node.type === syntax_1.Syntax.Program && node.body.length > 0) { + return; + } + this.insertInnerComments(node, metadata); + var trailingComments = this.findTrailingComments(metadata); + var leadingComments = this.findLeadingComments(metadata); + if (leadingComments.length > 0) { + node.leadingComments = leadingComments; + } + if (trailingComments.length > 0) { + node.trailingComments = trailingComments; + } + this.stack.push({ + node: node, + start: metadata.start.offset + }); + }; + CommentHandler.prototype.visitComment = function (node, metadata) { + var type = (node.type[0] === 'L') ? 'Line' : 'Block'; + var comment = { + type: type, + value: node.value + }; + if (node.range) { + comment.range = node.range; + } + if (node.loc) { + comment.loc = node.loc; + } + this.comments.push(comment); + if (this.attach) { + var entry = { + comment: { + type: type, + value: node.value, + range: [metadata.start.offset, metadata.end.offset] + }, + start: metadata.start.offset + }; + if (node.loc) { + entry.comment.loc = node.loc; + } + node.type = type; + this.leading.push(entry); + this.trailing.push(entry); + } + }; + CommentHandler.prototype.visit = function (node, metadata) { + if (node.type === 'LineComment') { + this.visitComment(node, metadata); + } + else if (node.type === 'BlockComment') { + this.visitComment(node, metadata); + } + else if (this.attach) { + this.visitNode(node, metadata); + } + }; + return CommentHandler; + }()); + exports.CommentHandler = CommentHandler; + + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + AwaitExpression: 'AwaitExpression', + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DoWhileStatement: 'DoWhileStatement', + DebuggerStatement: 'DebuggerStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForOfStatement: 'ForOfStatement', + ForInStatement: 'ForInStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MetaProperty: 'MetaProperty', + MethodDefinition: 'MethodDefinition', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchCase: 'SwitchCase', + SwitchStatement: 'SwitchStatement', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement', + YieldExpression: 'YieldExpression' + }; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __nested_webpack_require_15019_15038__) { + + "use strict"; +/* istanbul ignore next */ + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var character_1 = __nested_webpack_require_15019_15038__(4); + var JSXNode = __nested_webpack_require_15019_15038__(5); + var jsx_syntax_1 = __nested_webpack_require_15019_15038__(6); + var Node = __nested_webpack_require_15019_15038__(7); + var parser_1 = __nested_webpack_require_15019_15038__(8); + var token_1 = __nested_webpack_require_15019_15038__(13); + var xhtml_entities_1 = __nested_webpack_require_15019_15038__(14); + token_1.TokenName[100 /* Identifier */] = 'JSXIdentifier'; + token_1.TokenName[101 /* Text */] = 'JSXText'; + // Fully qualified element name, e.g. returns "svg:path" + function getQualifiedElementName(elementName) { + var qualifiedName; + switch (elementName.type) { + case jsx_syntax_1.JSXSyntax.JSXIdentifier: + var id = elementName; + qualifiedName = id.name; + break; + case jsx_syntax_1.JSXSyntax.JSXNamespacedName: + var ns = elementName; + qualifiedName = getQualifiedElementName(ns.namespace) + ':' + + getQualifiedElementName(ns.name); + break; + case jsx_syntax_1.JSXSyntax.JSXMemberExpression: + var expr = elementName; + qualifiedName = getQualifiedElementName(expr.object) + '.' + + getQualifiedElementName(expr.property); + break; + /* istanbul ignore next */ + default: + break; + } + return qualifiedName; + } + var JSXParser = (function (_super) { + __extends(JSXParser, _super); + function JSXParser(code, options, delegate) { + return _super.call(this, code, options, delegate) || this; + } + JSXParser.prototype.parsePrimaryExpression = function () { + return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this); + }; + JSXParser.prototype.startJSX = function () { + // Unwind the scanner before the lookahead token. + this.scanner.index = this.startMarker.index; + this.scanner.lineNumber = this.startMarker.line; + this.scanner.lineStart = this.startMarker.index - this.startMarker.column; + }; + JSXParser.prototype.finishJSX = function () { + // Prime the next lookahead. + this.nextToken(); + }; + JSXParser.prototype.reenterJSX = function () { + this.startJSX(); + this.expectJSX('}'); + // Pop the closing '}' added from the lookahead. + if (this.config.tokens) { + this.tokens.pop(); + } + }; + JSXParser.prototype.createJSXNode = function () { + this.collectComments(); + return { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + }; + JSXParser.prototype.createJSXChildNode = function () { + return { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + }; + JSXParser.prototype.scanXHTMLEntity = function (quote) { + var result = '&'; + var valid = true; + var terminated = false; + var numeric = false; + var hex = false; + while (!this.scanner.eof() && valid && !terminated) { + var ch = this.scanner.source[this.scanner.index]; + if (ch === quote) { + break; + } + terminated = (ch === ';'); + result += ch; + ++this.scanner.index; + if (!terminated) { + switch (result.length) { + case 2: + // e.g. '{' + numeric = (ch === '#'); + break; + case 3: + if (numeric) { + // e.g. 'A' + hex = (ch === 'x'); + valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0)); + numeric = numeric && !hex; + } + break; + default: + valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0))); + valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0))); + break; + } + } + } + if (valid && terminated && result.length > 2) { + // e.g. 'A' becomes just '#x41' + var str = result.substr(1, result.length - 2); + if (numeric && str.length > 1) { + result = String.fromCharCode(parseInt(str.substr(1), 10)); + } + else if (hex && str.length > 2) { + result = String.fromCharCode(parseInt('0' + str.substr(1), 16)); + } + else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) { + result = xhtml_entities_1.XHTMLEntities[str]; + } + } + return result; + }; + // Scan the next JSX token. This replaces Scanner#lex when in JSX mode. + JSXParser.prototype.lexJSX = function () { + var cp = this.scanner.source.charCodeAt(this.scanner.index); + // < > / : = { } + if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) { + var value = this.scanner.source[this.scanner.index++]; + return { + type: 7 /* Punctuator */, + value: value, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: this.scanner.index - 1, + end: this.scanner.index + }; + } + // " ' + if (cp === 34 || cp === 39) { + var start = this.scanner.index; + var quote = this.scanner.source[this.scanner.index++]; + var str = ''; + while (!this.scanner.eof()) { + var ch = this.scanner.source[this.scanner.index++]; + if (ch === quote) { + break; + } + else if (ch === '&') { + str += this.scanXHTMLEntity(quote); + } + else { + str += ch; + } + } + return { + type: 8 /* StringLiteral */, + value: str, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + // ... or . + if (cp === 46) { + var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1); + var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2); + var value = (n1 === 46 && n2 === 46) ? '...' : '.'; + var start = this.scanner.index; + this.scanner.index += value.length; + return { + type: 7 /* Punctuator */, + value: value, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + // ` + if (cp === 96) { + // Only placeholder, since it will be rescanned as a real assignment expression. + return { + type: 10 /* Template */, + value: '', + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: this.scanner.index, + end: this.scanner.index + }; + } + // Identifer can not contain backslash (char code 92). + if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) { + var start = this.scanner.index; + ++this.scanner.index; + while (!this.scanner.eof()) { + var ch = this.scanner.source.charCodeAt(this.scanner.index); + if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) { + ++this.scanner.index; + } + else if (ch === 45) { + // Hyphen (char code 45) can be part of an identifier. + ++this.scanner.index; + } + else { + break; + } + } + var id = this.scanner.source.slice(start, this.scanner.index); + return { + type: 100 /* Identifier */, + value: id, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + return this.scanner.lex(); + }; + JSXParser.prototype.nextJSXToken = function () { + this.collectComments(); + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + var token = this.lexJSX(); + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + if (this.config.tokens) { + this.tokens.push(this.convertToken(token)); + } + return token; + }; + JSXParser.prototype.nextJSXText = function () { + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + var start = this.scanner.index; + var text = ''; + while (!this.scanner.eof()) { + var ch = this.scanner.source[this.scanner.index]; + if (ch === '{' || ch === '<') { + break; + } + ++this.scanner.index; + text += ch; + if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) { + ++this.scanner.lineNumber; + if (ch === '\r' && this.scanner.source[this.scanner.index] === '\n') { + ++this.scanner.index; + } + this.scanner.lineStart = this.scanner.index; + } + } + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + var token = { + type: 101 /* Text */, + value: text, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + if ((text.length > 0) && this.config.tokens) { + this.tokens.push(this.convertToken(token)); + } + return token; + }; + JSXParser.prototype.peekJSXToken = function () { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.lexJSX(); + this.scanner.restoreState(state); + return next; + }; + // Expect the next JSX token to match the specified punctuator. + // If not, an exception will be thrown. + JSXParser.prototype.expectJSX = function (value) { + var token = this.nextJSXToken(); + if (token.type !== 7 /* Punctuator */ || token.value !== value) { + this.throwUnexpectedToken(token); + } + }; + // Return true if the next JSX token matches the specified punctuator. + JSXParser.prototype.matchJSX = function (value) { + var next = this.peekJSXToken(); + return next.type === 7 /* Punctuator */ && next.value === value; + }; + JSXParser.prototype.parseJSXIdentifier = function () { + var node = this.createJSXNode(); + var token = this.nextJSXToken(); + if (token.type !== 100 /* Identifier */) { + this.throwUnexpectedToken(token); + } + return this.finalize(node, new JSXNode.JSXIdentifier(token.value)); + }; + JSXParser.prototype.parseJSXElementName = function () { + var node = this.createJSXNode(); + var elementName = this.parseJSXIdentifier(); + if (this.matchJSX(':')) { + var namespace = elementName; + this.expectJSX(':'); + var name_1 = this.parseJSXIdentifier(); + elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1)); + } + else if (this.matchJSX('.')) { + while (this.matchJSX('.')) { + var object = elementName; + this.expectJSX('.'); + var property = this.parseJSXIdentifier(); + elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property)); + } + } + return elementName; + }; + JSXParser.prototype.parseJSXAttributeName = function () { + var node = this.createJSXNode(); + var attributeName; + var identifier = this.parseJSXIdentifier(); + if (this.matchJSX(':')) { + var namespace = identifier; + this.expectJSX(':'); + var name_2 = this.parseJSXIdentifier(); + attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2)); + } + else { + attributeName = identifier; + } + return attributeName; + }; + JSXParser.prototype.parseJSXStringLiteralAttribute = function () { + var node = this.createJSXNode(); + var token = this.nextJSXToken(); + if (token.type !== 8 /* StringLiteral */) { + this.throwUnexpectedToken(token); + } + var raw = this.getTokenRaw(token); + return this.finalize(node, new Node.Literal(token.value, raw)); + }; + JSXParser.prototype.parseJSXExpressionAttribute = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + this.finishJSX(); + if (this.match('}')) { + this.tolerateError('JSX attributes must only be assigned a non-empty expression'); + } + var expression = this.parseAssignmentExpression(); + this.reenterJSX(); + return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); + }; + JSXParser.prototype.parseJSXAttributeValue = function () { + return this.matchJSX('{') ? this.parseJSXExpressionAttribute() : + this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute(); + }; + JSXParser.prototype.parseJSXNameValueAttribute = function () { + var node = this.createJSXNode(); + var name = this.parseJSXAttributeName(); + var value = null; + if (this.matchJSX('=')) { + this.expectJSX('='); + value = this.parseJSXAttributeValue(); + } + return this.finalize(node, new JSXNode.JSXAttribute(name, value)); + }; + JSXParser.prototype.parseJSXSpreadAttribute = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + this.expectJSX('...'); + this.finishJSX(); + var argument = this.parseAssignmentExpression(); + this.reenterJSX(); + return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument)); + }; + JSXParser.prototype.parseJSXAttributes = function () { + var attributes = []; + while (!this.matchJSX('/') && !this.matchJSX('>')) { + var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() : + this.parseJSXNameValueAttribute(); + attributes.push(attribute); + } + return attributes; + }; + JSXParser.prototype.parseJSXOpeningElement = function () { + var node = this.createJSXNode(); + this.expectJSX('<'); + var name = this.parseJSXElementName(); + var attributes = this.parseJSXAttributes(); + var selfClosing = this.matchJSX('/'); + if (selfClosing) { + this.expectJSX('/'); + } + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); + }; + JSXParser.prototype.parseJSXBoundaryElement = function () { + var node = this.createJSXNode(); + this.expectJSX('<'); + if (this.matchJSX('/')) { + this.expectJSX('/'); + var name_3 = this.parseJSXElementName(); + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXClosingElement(name_3)); + } + var name = this.parseJSXElementName(); + var attributes = this.parseJSXAttributes(); + var selfClosing = this.matchJSX('/'); + if (selfClosing) { + this.expectJSX('/'); + } + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); + }; + JSXParser.prototype.parseJSXEmptyExpression = function () { + var node = this.createJSXChildNode(); + this.collectComments(); + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + return this.finalize(node, new JSXNode.JSXEmptyExpression()); + }; + JSXParser.prototype.parseJSXExpressionContainer = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + var expression; + if (this.matchJSX('}')) { + expression = this.parseJSXEmptyExpression(); + this.expectJSX('}'); + } + else { + this.finishJSX(); + expression = this.parseAssignmentExpression(); + this.reenterJSX(); + } + return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); + }; + JSXParser.prototype.parseJSXChildren = function () { + var children = []; + while (!this.scanner.eof()) { + var node = this.createJSXChildNode(); + var token = this.nextJSXText(); + if (token.start < token.end) { + var raw = this.getTokenRaw(token); + var child = this.finalize(node, new JSXNode.JSXText(token.value, raw)); + children.push(child); + } + if (this.scanner.source[this.scanner.index] === '{') { + var container = this.parseJSXExpressionContainer(); + children.push(container); + } + else { + break; + } + } + return children; + }; + JSXParser.prototype.parseComplexJSXElement = function (el) { + var stack = []; + while (!this.scanner.eof()) { + el.children = el.children.concat(this.parseJSXChildren()); + var node = this.createJSXChildNode(); + var element = this.parseJSXBoundaryElement(); + if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) { + var opening = element; + if (opening.selfClosing) { + var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null)); + el.children.push(child); + } + else { + stack.push(el); + el = { node: node, opening: opening, closing: null, children: [] }; + } + } + if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) { + el.closing = element; + var open_1 = getQualifiedElementName(el.opening.name); + var close_1 = getQualifiedElementName(el.closing.name); + if (open_1 !== close_1) { + this.tolerateError('Expected corresponding JSX closing tag for %0', open_1); + } + if (stack.length > 0) { + var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing)); + el = stack[stack.length - 1]; + el.children.push(child); + stack.pop(); + } + else { + break; + } + } + } + return el; + }; + JSXParser.prototype.parseJSXElement = function () { + var node = this.createJSXNode(); + var opening = this.parseJSXOpeningElement(); + var children = []; + var closing = null; + if (!opening.selfClosing) { + var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children }); + children = el.children; + closing = el.closing; + } + return this.finalize(node, new JSXNode.JSXElement(opening, children, closing)); + }; + JSXParser.prototype.parseJSXRoot = function () { + // Pop the opening '<' added from the lookahead. + if (this.config.tokens) { + this.tokens.pop(); + } + this.startJSX(); + var element = this.parseJSXElement(); + this.finishJSX(); + return element; + }; + JSXParser.prototype.isStartOfExpression = function () { + return _super.prototype.isStartOfExpression.call(this) || this.match('<'); + }; + return JSXParser; + }(parser_1.Parser)); + exports.JSXParser = JSXParser; + + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // See also tools/generate-unicode-regex.js. + var Regex = { + // Unicode v8.0.0 NonAsciiIdentifierStart: + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, + // Unicode v8.0.0 NonAsciiIdentifierPart: + NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ + }; + exports.Character = { + /* tslint:disable:no-bitwise */ + fromCodePoint: function (cp) { + return (cp < 0x10000) ? String.fromCharCode(cp) : + String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) + + String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023)); + }, + // https://tc39.github.io/ecma262/#sec-white-space + isWhiteSpace: function (cp) { + return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) || + (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0); + }, + // https://tc39.github.io/ecma262/#sec-line-terminators + isLineTerminator: function (cp) { + return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029); + }, + // https://tc39.github.io/ecma262/#sec-names-and-keywords + isIdentifierStart: function (cp) { + return (cp === 0x24) || (cp === 0x5F) || + (cp >= 0x41 && cp <= 0x5A) || + (cp >= 0x61 && cp <= 0x7A) || + (cp === 0x5C) || + ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp))); + }, + isIdentifierPart: function (cp) { + return (cp === 0x24) || (cp === 0x5F) || + (cp >= 0x41 && cp <= 0x5A) || + (cp >= 0x61 && cp <= 0x7A) || + (cp >= 0x30 && cp <= 0x39) || + (cp === 0x5C) || + ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp))); + }, + // https://tc39.github.io/ecma262/#sec-literals-numeric-literals + isDecimalDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x39); // 0..9 + }, + isHexDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x39) || + (cp >= 0x41 && cp <= 0x46) || + (cp >= 0x61 && cp <= 0x66); // a..f + }, + isOctalDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x37); // 0..7 + } + }; + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __nested_webpack_require_54354_54373__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var jsx_syntax_1 = __nested_webpack_require_54354_54373__(6); + /* tslint:disable:max-classes-per-file */ + var JSXClosingElement = (function () { + function JSXClosingElement(name) { + this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement; + this.name = name; + } + return JSXClosingElement; + }()); + exports.JSXClosingElement = JSXClosingElement; + var JSXElement = (function () { + function JSXElement(openingElement, children, closingElement) { + this.type = jsx_syntax_1.JSXSyntax.JSXElement; + this.openingElement = openingElement; + this.children = children; + this.closingElement = closingElement; + } + return JSXElement; + }()); + exports.JSXElement = JSXElement; + var JSXEmptyExpression = (function () { + function JSXEmptyExpression() { + this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression; + } + return JSXEmptyExpression; + }()); + exports.JSXEmptyExpression = JSXEmptyExpression; + var JSXExpressionContainer = (function () { + function JSXExpressionContainer(expression) { + this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer; + this.expression = expression; + } + return JSXExpressionContainer; + }()); + exports.JSXExpressionContainer = JSXExpressionContainer; + var JSXIdentifier = (function () { + function JSXIdentifier(name) { + this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier; + this.name = name; + } + return JSXIdentifier; + }()); + exports.JSXIdentifier = JSXIdentifier; + var JSXMemberExpression = (function () { + function JSXMemberExpression(object, property) { + this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression; + this.object = object; + this.property = property; + } + return JSXMemberExpression; + }()); + exports.JSXMemberExpression = JSXMemberExpression; + var JSXAttribute = (function () { + function JSXAttribute(name, value) { + this.type = jsx_syntax_1.JSXSyntax.JSXAttribute; + this.name = name; + this.value = value; + } + return JSXAttribute; + }()); + exports.JSXAttribute = JSXAttribute; + var JSXNamespacedName = (function () { + function JSXNamespacedName(namespace, name) { + this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName; + this.namespace = namespace; + this.name = name; + } + return JSXNamespacedName; + }()); + exports.JSXNamespacedName = JSXNamespacedName; + var JSXOpeningElement = (function () { + function JSXOpeningElement(name, selfClosing, attributes) { + this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement; + this.name = name; + this.selfClosing = selfClosing; + this.attributes = attributes; + } + return JSXOpeningElement; + }()); + exports.JSXOpeningElement = JSXOpeningElement; + var JSXSpreadAttribute = (function () { + function JSXSpreadAttribute(argument) { + this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute; + this.argument = argument; + } + return JSXSpreadAttribute; + }()); + exports.JSXSpreadAttribute = JSXSpreadAttribute; + var JSXText = (function () { + function JSXText(value, raw) { + this.type = jsx_syntax_1.JSXSyntax.JSXText; + this.value = value; + this.raw = raw; + } + return JSXText; + }()); + exports.JSXText = JSXText; + + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.JSXSyntax = { + JSXAttribute: 'JSXAttribute', + JSXClosingElement: 'JSXClosingElement', + JSXElement: 'JSXElement', + JSXEmptyExpression: 'JSXEmptyExpression', + JSXExpressionContainer: 'JSXExpressionContainer', + JSXIdentifier: 'JSXIdentifier', + JSXMemberExpression: 'JSXMemberExpression', + JSXNamespacedName: 'JSXNamespacedName', + JSXOpeningElement: 'JSXOpeningElement', + JSXSpreadAttribute: 'JSXSpreadAttribute', + JSXText: 'JSXText' + }; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __nested_webpack_require_58416_58435__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var syntax_1 = __nested_webpack_require_58416_58435__(2); + /* tslint:disable:max-classes-per-file */ + var ArrayExpression = (function () { + function ArrayExpression(elements) { + this.type = syntax_1.Syntax.ArrayExpression; + this.elements = elements; + } + return ArrayExpression; + }()); + exports.ArrayExpression = ArrayExpression; + var ArrayPattern = (function () { + function ArrayPattern(elements) { + this.type = syntax_1.Syntax.ArrayPattern; + this.elements = elements; + } + return ArrayPattern; + }()); + exports.ArrayPattern = ArrayPattern; + var ArrowFunctionExpression = (function () { + function ArrowFunctionExpression(params, body, expression) { + this.type = syntax_1.Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.body = body; + this.generator = false; + this.expression = expression; + this.async = false; + } + return ArrowFunctionExpression; + }()); + exports.ArrowFunctionExpression = ArrowFunctionExpression; + var AssignmentExpression = (function () { + function AssignmentExpression(operator, left, right) { + this.type = syntax_1.Syntax.AssignmentExpression; + this.operator = operator; + this.left = left; + this.right = right; + } + return AssignmentExpression; + }()); + exports.AssignmentExpression = AssignmentExpression; + var AssignmentPattern = (function () { + function AssignmentPattern(left, right) { + this.type = syntax_1.Syntax.AssignmentPattern; + this.left = left; + this.right = right; + } + return AssignmentPattern; + }()); + exports.AssignmentPattern = AssignmentPattern; + var AsyncArrowFunctionExpression = (function () { + function AsyncArrowFunctionExpression(params, body, expression) { + this.type = syntax_1.Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.body = body; + this.generator = false; + this.expression = expression; + this.async = true; + } + return AsyncArrowFunctionExpression; + }()); + exports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression; + var AsyncFunctionDeclaration = (function () { + function AsyncFunctionDeclaration(id, params, body) { + this.type = syntax_1.Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.body = body; + this.generator = false; + this.expression = false; + this.async = true; + } + return AsyncFunctionDeclaration; + }()); + exports.AsyncFunctionDeclaration = AsyncFunctionDeclaration; + var AsyncFunctionExpression = (function () { + function AsyncFunctionExpression(id, params, body) { + this.type = syntax_1.Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.body = body; + this.generator = false; + this.expression = false; + this.async = true; + } + return AsyncFunctionExpression; + }()); + exports.AsyncFunctionExpression = AsyncFunctionExpression; + var AwaitExpression = (function () { + function AwaitExpression(argument) { + this.type = syntax_1.Syntax.AwaitExpression; + this.argument = argument; + } + return AwaitExpression; + }()); + exports.AwaitExpression = AwaitExpression; + var BinaryExpression = (function () { + function BinaryExpression(operator, left, right) { + var logical = (operator === '||' || operator === '&&'); + this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression; + this.operator = operator; + this.left = left; + this.right = right; + } + return BinaryExpression; + }()); + exports.BinaryExpression = BinaryExpression; + var BlockStatement = (function () { + function BlockStatement(body) { + this.type = syntax_1.Syntax.BlockStatement; + this.body = body; + } + return BlockStatement; + }()); + exports.BlockStatement = BlockStatement; + var BreakStatement = (function () { + function BreakStatement(label) { + this.type = syntax_1.Syntax.BreakStatement; + this.label = label; + } + return BreakStatement; + }()); + exports.BreakStatement = BreakStatement; + var CallExpression = (function () { + function CallExpression(callee, args) { + this.type = syntax_1.Syntax.CallExpression; + this.callee = callee; + this.arguments = args; + } + return CallExpression; + }()); + exports.CallExpression = CallExpression; + var CatchClause = (function () { + function CatchClause(param, body) { + this.type = syntax_1.Syntax.CatchClause; + this.param = param; + this.body = body; + } + return CatchClause; + }()); + exports.CatchClause = CatchClause; + var ClassBody = (function () { + function ClassBody(body) { + this.type = syntax_1.Syntax.ClassBody; + this.body = body; + } + return ClassBody; + }()); + exports.ClassBody = ClassBody; + var ClassDeclaration = (function () { + function ClassDeclaration(id, superClass, body) { + this.type = syntax_1.Syntax.ClassDeclaration; + this.id = id; + this.superClass = superClass; + this.body = body; + } + return ClassDeclaration; + }()); + exports.ClassDeclaration = ClassDeclaration; + var ClassExpression = (function () { + function ClassExpression(id, superClass, body) { + this.type = syntax_1.Syntax.ClassExpression; + this.id = id; + this.superClass = superClass; + this.body = body; + } + return ClassExpression; + }()); + exports.ClassExpression = ClassExpression; + var ComputedMemberExpression = (function () { + function ComputedMemberExpression(object, property) { + this.type = syntax_1.Syntax.MemberExpression; + this.computed = true; + this.object = object; + this.property = property; + } + return ComputedMemberExpression; + }()); + exports.ComputedMemberExpression = ComputedMemberExpression; + var ConditionalExpression = (function () { + function ConditionalExpression(test, consequent, alternate) { + this.type = syntax_1.Syntax.ConditionalExpression; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + } + return ConditionalExpression; + }()); + exports.ConditionalExpression = ConditionalExpression; + var ContinueStatement = (function () { + function ContinueStatement(label) { + this.type = syntax_1.Syntax.ContinueStatement; + this.label = label; + } + return ContinueStatement; + }()); + exports.ContinueStatement = ContinueStatement; + var DebuggerStatement = (function () { + function DebuggerStatement() { + this.type = syntax_1.Syntax.DebuggerStatement; + } + return DebuggerStatement; + }()); + exports.DebuggerStatement = DebuggerStatement; + var Directive = (function () { + function Directive(expression, directive) { + this.type = syntax_1.Syntax.ExpressionStatement; + this.expression = expression; + this.directive = directive; + } + return Directive; + }()); + exports.Directive = Directive; + var DoWhileStatement = (function () { + function DoWhileStatement(body, test) { + this.type = syntax_1.Syntax.DoWhileStatement; + this.body = body; + this.test = test; + } + return DoWhileStatement; + }()); + exports.DoWhileStatement = DoWhileStatement; + var EmptyStatement = (function () { + function EmptyStatement() { + this.type = syntax_1.Syntax.EmptyStatement; + } + return EmptyStatement; + }()); + exports.EmptyStatement = EmptyStatement; + var ExportAllDeclaration = (function () { + function ExportAllDeclaration(source) { + this.type = syntax_1.Syntax.ExportAllDeclaration; + this.source = source; + } + return ExportAllDeclaration; + }()); + exports.ExportAllDeclaration = ExportAllDeclaration; + var ExportDefaultDeclaration = (function () { + function ExportDefaultDeclaration(declaration) { + this.type = syntax_1.Syntax.ExportDefaultDeclaration; + this.declaration = declaration; + } + return ExportDefaultDeclaration; + }()); + exports.ExportDefaultDeclaration = ExportDefaultDeclaration; + var ExportNamedDeclaration = (function () { + function ExportNamedDeclaration(declaration, specifiers, source) { + this.type = syntax_1.Syntax.ExportNamedDeclaration; + this.declaration = declaration; + this.specifiers = specifiers; + this.source = source; + } + return ExportNamedDeclaration; + }()); + exports.ExportNamedDeclaration = ExportNamedDeclaration; + var ExportSpecifier = (function () { + function ExportSpecifier(local, exported) { + this.type = syntax_1.Syntax.ExportSpecifier; + this.exported = exported; + this.local = local; + } + return ExportSpecifier; + }()); + exports.ExportSpecifier = ExportSpecifier; + var ExpressionStatement = (function () { + function ExpressionStatement(expression) { + this.type = syntax_1.Syntax.ExpressionStatement; + this.expression = expression; + } + return ExpressionStatement; + }()); + exports.ExpressionStatement = ExpressionStatement; + var ForInStatement = (function () { + function ForInStatement(left, right, body) { + this.type = syntax_1.Syntax.ForInStatement; + this.left = left; + this.right = right; + this.body = body; + this.each = false; + } + return ForInStatement; + }()); + exports.ForInStatement = ForInStatement; + var ForOfStatement = (function () { + function ForOfStatement(left, right, body) { + this.type = syntax_1.Syntax.ForOfStatement; + this.left = left; + this.right = right; + this.body = body; + } + return ForOfStatement; + }()); + exports.ForOfStatement = ForOfStatement; + var ForStatement = (function () { + function ForStatement(init, test, update, body) { + this.type = syntax_1.Syntax.ForStatement; + this.init = init; + this.test = test; + this.update = update; + this.body = body; + } + return ForStatement; + }()); + exports.ForStatement = ForStatement; + var FunctionDeclaration = (function () { + function FunctionDeclaration(id, params, body, generator) { + this.type = syntax_1.Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.body = body; + this.generator = generator; + this.expression = false; + this.async = false; + } + return FunctionDeclaration; + }()); + exports.FunctionDeclaration = FunctionDeclaration; + var FunctionExpression = (function () { + function FunctionExpression(id, params, body, generator) { + this.type = syntax_1.Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.body = body; + this.generator = generator; + this.expression = false; + this.async = false; + } + return FunctionExpression; + }()); + exports.FunctionExpression = FunctionExpression; + var Identifier = (function () { + function Identifier(name) { + this.type = syntax_1.Syntax.Identifier; + this.name = name; + } + return Identifier; + }()); + exports.Identifier = Identifier; + var IfStatement = (function () { + function IfStatement(test, consequent, alternate) { + this.type = syntax_1.Syntax.IfStatement; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + } + return IfStatement; + }()); + exports.IfStatement = IfStatement; + var ImportDeclaration = (function () { + function ImportDeclaration(specifiers, source) { + this.type = syntax_1.Syntax.ImportDeclaration; + this.specifiers = specifiers; + this.source = source; + } + return ImportDeclaration; + }()); + exports.ImportDeclaration = ImportDeclaration; + var ImportDefaultSpecifier = (function () { + function ImportDefaultSpecifier(local) { + this.type = syntax_1.Syntax.ImportDefaultSpecifier; + this.local = local; + } + return ImportDefaultSpecifier; + }()); + exports.ImportDefaultSpecifier = ImportDefaultSpecifier; + var ImportNamespaceSpecifier = (function () { + function ImportNamespaceSpecifier(local) { + this.type = syntax_1.Syntax.ImportNamespaceSpecifier; + this.local = local; + } + return ImportNamespaceSpecifier; + }()); + exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; + var ImportSpecifier = (function () { + function ImportSpecifier(local, imported) { + this.type = syntax_1.Syntax.ImportSpecifier; + this.local = local; + this.imported = imported; + } + return ImportSpecifier; + }()); + exports.ImportSpecifier = ImportSpecifier; + var LabeledStatement = (function () { + function LabeledStatement(label, body) { + this.type = syntax_1.Syntax.LabeledStatement; + this.label = label; + this.body = body; + } + return LabeledStatement; + }()); + exports.LabeledStatement = LabeledStatement; + var Literal = (function () { + function Literal(value, raw) { + this.type = syntax_1.Syntax.Literal; + this.value = value; + this.raw = raw; + } + return Literal; + }()); + exports.Literal = Literal; + var MetaProperty = (function () { + function MetaProperty(meta, property) { + this.type = syntax_1.Syntax.MetaProperty; + this.meta = meta; + this.property = property; + } + return MetaProperty; + }()); + exports.MetaProperty = MetaProperty; + var MethodDefinition = (function () { + function MethodDefinition(key, computed, value, kind, isStatic) { + this.type = syntax_1.Syntax.MethodDefinition; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.static = isStatic; + } + return MethodDefinition; + }()); + exports.MethodDefinition = MethodDefinition; + var Module = (function () { + function Module(body) { + this.type = syntax_1.Syntax.Program; + this.body = body; + this.sourceType = 'module'; + } + return Module; + }()); + exports.Module = Module; + var NewExpression = (function () { + function NewExpression(callee, args) { + this.type = syntax_1.Syntax.NewExpression; + this.callee = callee; + this.arguments = args; + } + return NewExpression; + }()); + exports.NewExpression = NewExpression; + var ObjectExpression = (function () { + function ObjectExpression(properties) { + this.type = syntax_1.Syntax.ObjectExpression; + this.properties = properties; + } + return ObjectExpression; + }()); + exports.ObjectExpression = ObjectExpression; + var ObjectPattern = (function () { + function ObjectPattern(properties) { + this.type = syntax_1.Syntax.ObjectPattern; + this.properties = properties; + } + return ObjectPattern; + }()); + exports.ObjectPattern = ObjectPattern; + var Property = (function () { + function Property(kind, key, computed, value, method, shorthand) { + this.type = syntax_1.Syntax.Property; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.method = method; + this.shorthand = shorthand; + } + return Property; + }()); + exports.Property = Property; + var RegexLiteral = (function () { + function RegexLiteral(value, raw, pattern, flags) { + this.type = syntax_1.Syntax.Literal; + this.value = value; + this.raw = raw; + this.regex = { pattern: pattern, flags: flags }; + } + return RegexLiteral; + }()); + exports.RegexLiteral = RegexLiteral; + var RestElement = (function () { + function RestElement(argument) { + this.type = syntax_1.Syntax.RestElement; + this.argument = argument; + } + return RestElement; + }()); + exports.RestElement = RestElement; + var ReturnStatement = (function () { + function ReturnStatement(argument) { + this.type = syntax_1.Syntax.ReturnStatement; + this.argument = argument; + } + return ReturnStatement; + }()); + exports.ReturnStatement = ReturnStatement; + var Script = (function () { + function Script(body) { + this.type = syntax_1.Syntax.Program; + this.body = body; + this.sourceType = 'script'; + } + return Script; + }()); + exports.Script = Script; + var SequenceExpression = (function () { + function SequenceExpression(expressions) { + this.type = syntax_1.Syntax.SequenceExpression; + this.expressions = expressions; + } + return SequenceExpression; + }()); + exports.SequenceExpression = SequenceExpression; + var SpreadElement = (function () { + function SpreadElement(argument) { + this.type = syntax_1.Syntax.SpreadElement; + this.argument = argument; + } + return SpreadElement; + }()); + exports.SpreadElement = SpreadElement; + var StaticMemberExpression = (function () { + function StaticMemberExpression(object, property) { + this.type = syntax_1.Syntax.MemberExpression; + this.computed = false; + this.object = object; + this.property = property; + } + return StaticMemberExpression; + }()); + exports.StaticMemberExpression = StaticMemberExpression; + var Super = (function () { + function Super() { + this.type = syntax_1.Syntax.Super; + } + return Super; + }()); + exports.Super = Super; + var SwitchCase = (function () { + function SwitchCase(test, consequent) { + this.type = syntax_1.Syntax.SwitchCase; + this.test = test; + this.consequent = consequent; + } + return SwitchCase; + }()); + exports.SwitchCase = SwitchCase; + var SwitchStatement = (function () { + function SwitchStatement(discriminant, cases) { + this.type = syntax_1.Syntax.SwitchStatement; + this.discriminant = discriminant; + this.cases = cases; + } + return SwitchStatement; + }()); + exports.SwitchStatement = SwitchStatement; + var TaggedTemplateExpression = (function () { + function TaggedTemplateExpression(tag, quasi) { + this.type = syntax_1.Syntax.TaggedTemplateExpression; + this.tag = tag; + this.quasi = quasi; + } + return TaggedTemplateExpression; + }()); + exports.TaggedTemplateExpression = TaggedTemplateExpression; + var TemplateElement = (function () { + function TemplateElement(value, tail) { + this.type = syntax_1.Syntax.TemplateElement; + this.value = value; + this.tail = tail; + } + return TemplateElement; + }()); + exports.TemplateElement = TemplateElement; + var TemplateLiteral = (function () { + function TemplateLiteral(quasis, expressions) { + this.type = syntax_1.Syntax.TemplateLiteral; + this.quasis = quasis; + this.expressions = expressions; + } + return TemplateLiteral; + }()); + exports.TemplateLiteral = TemplateLiteral; + var ThisExpression = (function () { + function ThisExpression() { + this.type = syntax_1.Syntax.ThisExpression; + } + return ThisExpression; + }()); + exports.ThisExpression = ThisExpression; + var ThrowStatement = (function () { + function ThrowStatement(argument) { + this.type = syntax_1.Syntax.ThrowStatement; + this.argument = argument; + } + return ThrowStatement; + }()); + exports.ThrowStatement = ThrowStatement; + var TryStatement = (function () { + function TryStatement(block, handler, finalizer) { + this.type = syntax_1.Syntax.TryStatement; + this.block = block; + this.handler = handler; + this.finalizer = finalizer; + } + return TryStatement; + }()); + exports.TryStatement = TryStatement; + var UnaryExpression = (function () { + function UnaryExpression(operator, argument) { + this.type = syntax_1.Syntax.UnaryExpression; + this.operator = operator; + this.argument = argument; + this.prefix = true; + } + return UnaryExpression; + }()); + exports.UnaryExpression = UnaryExpression; + var UpdateExpression = (function () { + function UpdateExpression(operator, argument, prefix) { + this.type = syntax_1.Syntax.UpdateExpression; + this.operator = operator; + this.argument = argument; + this.prefix = prefix; + } + return UpdateExpression; + }()); + exports.UpdateExpression = UpdateExpression; + var VariableDeclaration = (function () { + function VariableDeclaration(declarations, kind) { + this.type = syntax_1.Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = kind; + } + return VariableDeclaration; + }()); + exports.VariableDeclaration = VariableDeclaration; + var VariableDeclarator = (function () { + function VariableDeclarator(id, init) { + this.type = syntax_1.Syntax.VariableDeclarator; + this.id = id; + this.init = init; + } + return VariableDeclarator; + }()); + exports.VariableDeclarator = VariableDeclarator; + var WhileStatement = (function () { + function WhileStatement(test, body) { + this.type = syntax_1.Syntax.WhileStatement; + this.test = test; + this.body = body; + } + return WhileStatement; + }()); + exports.WhileStatement = WhileStatement; + var WithStatement = (function () { + function WithStatement(object, body) { + this.type = syntax_1.Syntax.WithStatement; + this.object = object; + this.body = body; + } + return WithStatement; + }()); + exports.WithStatement = WithStatement; + var YieldExpression = (function () { + function YieldExpression(argument, delegate) { + this.type = syntax_1.Syntax.YieldExpression; + this.argument = argument; + this.delegate = delegate; + } + return YieldExpression; + }()); + exports.YieldExpression = YieldExpression; + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __nested_webpack_require_80491_80510__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var assert_1 = __nested_webpack_require_80491_80510__(9); + var error_handler_1 = __nested_webpack_require_80491_80510__(10); + var messages_1 = __nested_webpack_require_80491_80510__(11); + var Node = __nested_webpack_require_80491_80510__(7); + var scanner_1 = __nested_webpack_require_80491_80510__(12); + var syntax_1 = __nested_webpack_require_80491_80510__(2); + var token_1 = __nested_webpack_require_80491_80510__(13); + var ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder'; + var Parser = (function () { + function Parser(code, options, delegate) { + if (options === void 0) { options = {}; } + this.config = { + range: (typeof options.range === 'boolean') && options.range, + loc: (typeof options.loc === 'boolean') && options.loc, + source: null, + tokens: (typeof options.tokens === 'boolean') && options.tokens, + comment: (typeof options.comment === 'boolean') && options.comment, + tolerant: (typeof options.tolerant === 'boolean') && options.tolerant + }; + if (this.config.loc && options.source && options.source !== null) { + this.config.source = String(options.source); + } + this.delegate = delegate; + this.errorHandler = new error_handler_1.ErrorHandler(); + this.errorHandler.tolerant = this.config.tolerant; + this.scanner = new scanner_1.Scanner(code, this.errorHandler); + this.scanner.trackComment = this.config.comment; + this.operatorPrecedence = { + ')': 0, + ';': 0, + ',': 0, + '=': 0, + ']': 0, + '||': 1, + '&&': 2, + '|': 3, + '^': 4, + '&': 5, + '==': 6, + '!=': 6, + '===': 6, + '!==': 6, + '<': 7, + '>': 7, + '<=': 7, + '>=': 7, + '<<': 8, + '>>': 8, + '>>>': 8, + '+': 9, + '-': 9, + '*': 11, + '/': 11, + '%': 11 + }; + this.lookahead = { + type: 2 /* EOF */, + value: '', + lineNumber: this.scanner.lineNumber, + lineStart: 0, + start: 0, + end: 0 + }; + this.hasLineTerminator = false; + this.context = { + isModule: false, + await: false, + allowIn: true, + allowStrictDirective: true, + allowYield: true, + firstCoverInitializedNameError: null, + isAssignmentTarget: false, + isBindingElement: false, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + labelSet: {}, + strict: false + }; + this.tokens = []; + this.startMarker = { + index: 0, + line: this.scanner.lineNumber, + column: 0 + }; + this.lastMarker = { + index: 0, + line: this.scanner.lineNumber, + column: 0 + }; + this.nextToken(); + this.lastMarker = { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + } + Parser.prototype.throwError = function (messageFormat) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { + assert_1.assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + }); + var index = this.lastMarker.index; + var line = this.lastMarker.line; + var column = this.lastMarker.column + 1; + throw this.errorHandler.createError(index, line, column, msg); + }; + Parser.prototype.tolerateError = function (messageFormat) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { + assert_1.assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + }); + var index = this.lastMarker.index; + var line = this.scanner.lineNumber; + var column = this.lastMarker.column + 1; + this.errorHandler.tolerateError(index, line, column, msg); + }; + // Throw an exception because of the token. + Parser.prototype.unexpectedTokenError = function (token, message) { + var msg = message || messages_1.Messages.UnexpectedToken; + var value; + if (token) { + if (!message) { + msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS : + (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier : + (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber : + (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString : + (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate : + messages_1.Messages.UnexpectedToken; + if (token.type === 4 /* Keyword */) { + if (this.scanner.isFutureReservedWord(token.value)) { + msg = messages_1.Messages.UnexpectedReserved; + } + else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) { + msg = messages_1.Messages.StrictReservedWord; + } + } + } + value = token.value; + } + else { + value = 'ILLEGAL'; + } + msg = msg.replace('%0', value); + if (token && typeof token.lineNumber === 'number') { + var index = token.start; + var line = token.lineNumber; + var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column; + var column = token.start - lastMarkerLineStart + 1; + return this.errorHandler.createError(index, line, column, msg); + } + else { + var index = this.lastMarker.index; + var line = this.lastMarker.line; + var column = this.lastMarker.column + 1; + return this.errorHandler.createError(index, line, column, msg); + } + }; + Parser.prototype.throwUnexpectedToken = function (token, message) { + throw this.unexpectedTokenError(token, message); + }; + Parser.prototype.tolerateUnexpectedToken = function (token, message) { + this.errorHandler.tolerate(this.unexpectedTokenError(token, message)); + }; + Parser.prototype.collectComments = function () { + if (!this.config.comment) { + this.scanner.scanComments(); + } + else { + var comments = this.scanner.scanComments(); + if (comments.length > 0 && this.delegate) { + for (var i = 0; i < comments.length; ++i) { + var e = comments[i]; + var node = void 0; + node = { + type: e.multiLine ? 'BlockComment' : 'LineComment', + value: this.scanner.source.slice(e.slice[0], e.slice[1]) + }; + if (this.config.range) { + node.range = e.range; + } + if (this.config.loc) { + node.loc = e.loc; + } + var metadata = { + start: { + line: e.loc.start.line, + column: e.loc.start.column, + offset: e.range[0] + }, + end: { + line: e.loc.end.line, + column: e.loc.end.column, + offset: e.range[1] + } + }; + this.delegate(node, metadata); + } + } + } + }; + // From internal representation to an external structure + Parser.prototype.getTokenRaw = function (token) { + return this.scanner.source.slice(token.start, token.end); + }; + Parser.prototype.convertToken = function (token) { + var t = { + type: token_1.TokenName[token.type], + value: this.getTokenRaw(token) + }; + if (this.config.range) { + t.range = [token.start, token.end]; + } + if (this.config.loc) { + t.loc = { + start: { + line: this.startMarker.line, + column: this.startMarker.column + }, + end: { + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + } + }; + } + if (token.type === 9 /* RegularExpression */) { + var pattern = token.pattern; + var flags = token.flags; + t.regex = { pattern: pattern, flags: flags }; + } + return t; + }; + Parser.prototype.nextToken = function () { + var token = this.lookahead; + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + this.collectComments(); + if (this.scanner.index !== this.startMarker.index) { + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + } + var next = this.scanner.lex(); + this.hasLineTerminator = (token.lineNumber !== next.lineNumber); + if (next && this.context.strict && next.type === 3 /* Identifier */) { + if (this.scanner.isStrictModeReservedWord(next.value)) { + next.type = 4 /* Keyword */; + } + } + this.lookahead = next; + if (this.config.tokens && next.type !== 2 /* EOF */) { + this.tokens.push(this.convertToken(next)); + } + return token; + }; + Parser.prototype.nextRegexToken = function () { + this.collectComments(); + var token = this.scanner.scanRegExp(); + if (this.config.tokens) { + // Pop the previous token, '/' or '/=' + // This is added from the lookahead token. + this.tokens.pop(); + this.tokens.push(this.convertToken(token)); + } + // Prime the next lookahead. + this.lookahead = token; + this.nextToken(); + return token; + }; + Parser.prototype.createNode = function () { + return { + index: this.startMarker.index, + line: this.startMarker.line, + column: this.startMarker.column + }; + }; + Parser.prototype.startNode = function (token, lastLineStart) { + if (lastLineStart === void 0) { lastLineStart = 0; } + var column = token.start - token.lineStart; + var line = token.lineNumber; + if (column < 0) { + column += lastLineStart; + line--; + } + return { + index: token.start, + line: line, + column: column + }; + }; + Parser.prototype.finalize = function (marker, node) { + if (this.config.range) { + node.range = [marker.index, this.lastMarker.index]; + } + if (this.config.loc) { + node.loc = { + start: { + line: marker.line, + column: marker.column, + }, + end: { + line: this.lastMarker.line, + column: this.lastMarker.column + } + }; + if (this.config.source) { + node.loc.source = this.config.source; + } + } + if (this.delegate) { + var metadata = { + start: { + line: marker.line, + column: marker.column, + offset: marker.index + }, + end: { + line: this.lastMarker.line, + column: this.lastMarker.column, + offset: this.lastMarker.index + } + }; + this.delegate(node, metadata); + } + return node; + }; + // Expect the next token to match the specified punctuator. + // If not, an exception will be thrown. + Parser.prototype.expect = function (value) { + var token = this.nextToken(); + if (token.type !== 7 /* Punctuator */ || token.value !== value) { + this.throwUnexpectedToken(token); + } + }; + // Quietly expect a comma when in tolerant mode, otherwise delegates to expect(). + Parser.prototype.expectCommaSeparator = function () { + if (this.config.tolerant) { + var token = this.lookahead; + if (token.type === 7 /* Punctuator */ && token.value === ',') { + this.nextToken(); + } + else if (token.type === 7 /* Punctuator */ && token.value === ';') { + this.nextToken(); + this.tolerateUnexpectedToken(token); + } + else { + this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken); + } + } + else { + this.expect(','); + } + }; + // Expect the next token to match the specified keyword. + // If not, an exception will be thrown. + Parser.prototype.expectKeyword = function (keyword) { + var token = this.nextToken(); + if (token.type !== 4 /* Keyword */ || token.value !== keyword) { + this.throwUnexpectedToken(token); + } + }; + // Return true if the next token matches the specified punctuator. + Parser.prototype.match = function (value) { + return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value; + }; + // Return true if the next token matches the specified keyword + Parser.prototype.matchKeyword = function (keyword) { + return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword; + }; + // Return true if the next token matches the specified contextual keyword + // (where an identifier is sometimes a keyword depending on the context) + Parser.prototype.matchContextualKeyword = function (keyword) { + return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword; + }; + // Return true if the next token is an assignment operator + Parser.prototype.matchAssign = function () { + if (this.lookahead.type !== 7 /* Punctuator */) { + return false; + } + var op = this.lookahead.value; + return op === '=' || + op === '*=' || + op === '**=' || + op === '/=' || + op === '%=' || + op === '+=' || + op === '-=' || + op === '<<=' || + op === '>>=' || + op === '>>>=' || + op === '&=' || + op === '^=' || + op === '|='; + }; + // Cover grammar support. + // + // When an assignment expression position starts with an left parenthesis, the determination of the type + // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) + // or the first comma. This situation also defers the determination of all the expressions nested in the pair. + // + // There are three productions that can be parsed in a parentheses pair that needs to be determined + // after the outermost pair is closed. They are: + // + // 1. AssignmentExpression + // 2. BindingElements + // 3. AssignmentTargets + // + // In order to avoid exponential backtracking, we use two flags to denote if the production can be + // binding element or assignment target. + // + // The three productions have the relationship: + // + // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression + // + // with a single exception that CoverInitializedName when used directly in an Expression, generates + // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the + // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. + // + // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not + // effect the current flags. This means the production the parser parses is only used as an expression. Therefore + // the CoverInitializedName check is conducted. + // + // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates + // the flags outside of the parser. This means the production the parser parses is used as a part of a potential + // pattern. The CoverInitializedName check is deferred. + Parser.prototype.isolateCoverGrammar = function (parseFunction) { + var previousIsBindingElement = this.context.isBindingElement; + var previousIsAssignmentTarget = this.context.isAssignmentTarget; + var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; + this.context.isBindingElement = true; + this.context.isAssignmentTarget = true; + this.context.firstCoverInitializedNameError = null; + var result = parseFunction.call(this); + if (this.context.firstCoverInitializedNameError !== null) { + this.throwUnexpectedToken(this.context.firstCoverInitializedNameError); + } + this.context.isBindingElement = previousIsBindingElement; + this.context.isAssignmentTarget = previousIsAssignmentTarget; + this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError; + return result; + }; + Parser.prototype.inheritCoverGrammar = function (parseFunction) { + var previousIsBindingElement = this.context.isBindingElement; + var previousIsAssignmentTarget = this.context.isAssignmentTarget; + var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; + this.context.isBindingElement = true; + this.context.isAssignmentTarget = true; + this.context.firstCoverInitializedNameError = null; + var result = parseFunction.call(this); + this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement; + this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget; + this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError; + return result; + }; + Parser.prototype.consumeSemicolon = function () { + if (this.match(';')) { + this.nextToken(); + } + else if (!this.hasLineTerminator) { + if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) { + this.throwUnexpectedToken(this.lookahead); + } + this.lastMarker.index = this.startMarker.index; + this.lastMarker.line = this.startMarker.line; + this.lastMarker.column = this.startMarker.column; + } + }; + // https://tc39.github.io/ecma262/#sec-primary-expression + Parser.prototype.parsePrimaryExpression = function () { + var node = this.createNode(); + var expr; + var token, raw; + switch (this.lookahead.type) { + case 3 /* Identifier */: + if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') { + this.tolerateUnexpectedToken(this.lookahead); + } + expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value)); + break; + case 6 /* NumericLiteral */: + case 8 /* StringLiteral */: + if (this.context.strict && this.lookahead.octal) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(token.value, raw)); + break; + case 1 /* BooleanLiteral */: + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(token.value === 'true', raw)); + break; + case 5 /* NullLiteral */: + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(null, raw)); + break; + case 10 /* Template */: + expr = this.parseTemplateLiteral(); + break; + case 7 /* Punctuator */: + switch (this.lookahead.value) { + case '(': + this.context.isBindingElement = false; + expr = this.inheritCoverGrammar(this.parseGroupExpression); + break; + case '[': + expr = this.inheritCoverGrammar(this.parseArrayInitializer); + break; + case '{': + expr = this.inheritCoverGrammar(this.parseObjectInitializer); + break; + case '/': + case '/=': + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + this.scanner.index = this.startMarker.index; + token = this.nextRegexToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags)); + break; + default: + expr = this.throwUnexpectedToken(this.nextToken()); + } + break; + case 4 /* Keyword */: + if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) { + expr = this.parseIdentifierName(); + } + else if (!this.context.strict && this.matchKeyword('let')) { + expr = this.finalize(node, new Node.Identifier(this.nextToken().value)); + } + else { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + if (this.matchKeyword('function')) { + expr = this.parseFunctionExpression(); + } + else if (this.matchKeyword('this')) { + this.nextToken(); + expr = this.finalize(node, new Node.ThisExpression()); + } + else if (this.matchKeyword('class')) { + expr = this.parseClassExpression(); + } + else { + expr = this.throwUnexpectedToken(this.nextToken()); + } + } + break; + default: + expr = this.throwUnexpectedToken(this.nextToken()); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-array-initializer + Parser.prototype.parseSpreadElement = function () { + var node = this.createNode(); + this.expect('...'); + var arg = this.inheritCoverGrammar(this.parseAssignmentExpression); + return this.finalize(node, new Node.SpreadElement(arg)); + }; + Parser.prototype.parseArrayInitializer = function () { + var node = this.createNode(); + var elements = []; + this.expect('['); + while (!this.match(']')) { + if (this.match(',')) { + this.nextToken(); + elements.push(null); + } + else if (this.match('...')) { + var element = this.parseSpreadElement(); + if (!this.match(']')) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + this.expect(','); + } + elements.push(element); + } + else { + elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); + if (!this.match(']')) { + this.expect(','); + } + } + } + this.expect(']'); + return this.finalize(node, new Node.ArrayExpression(elements)); + }; + // https://tc39.github.io/ecma262/#sec-object-initializer + Parser.prototype.parsePropertyMethod = function (params) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = params.simple; + var body = this.isolateCoverGrammar(this.parseFunctionSourceElements); + if (this.context.strict && params.firstRestricted) { + this.tolerateUnexpectedToken(params.firstRestricted, params.message); + } + if (this.context.strict && params.stricted) { + this.tolerateUnexpectedToken(params.stricted, params.message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + return body; + }; + Parser.prototype.parsePropertyMethodFunction = function () { + var isGenerator = false; + var node = this.createNode(); + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var params = this.parseFormalParameters(); + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); + }; + Parser.prototype.parsePropertyMethodAsyncFunction = function () { + var node = this.createNode(); + var previousAllowYield = this.context.allowYield; + var previousAwait = this.context.await; + this.context.allowYield = false; + this.context.await = true; + var params = this.parseFormalParameters(); + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + this.context.await = previousAwait; + return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method)); + }; + Parser.prototype.parseObjectPropertyKey = function () { + var node = this.createNode(); + var token = this.nextToken(); + var key; + switch (token.type) { + case 8 /* StringLiteral */: + case 6 /* NumericLiteral */: + if (this.context.strict && token.octal) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral); + } + var raw = this.getTokenRaw(token); + key = this.finalize(node, new Node.Literal(token.value, raw)); + break; + case 3 /* Identifier */: + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 4 /* Keyword */: + key = this.finalize(node, new Node.Identifier(token.value)); + break; + case 7 /* Punctuator */: + if (token.value === '[') { + key = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.expect(']'); + } + else { + key = this.throwUnexpectedToken(token); + } + break; + default: + key = this.throwUnexpectedToken(token); + } + return key; + }; + Parser.prototype.isPropertyKey = function (key, value) { + return (key.type === syntax_1.Syntax.Identifier && key.name === value) || + (key.type === syntax_1.Syntax.Literal && key.value === value); + }; + Parser.prototype.parseObjectProperty = function (hasProto) { + var node = this.createNode(); + var token = this.lookahead; + var kind; + var key = null; + var value = null; + var computed = false; + var method = false; + var shorthand = false; + var isAsync = false; + if (token.type === 3 /* Identifier */) { + var id = token.value; + this.nextToken(); + computed = this.match('['); + isAsync = !this.hasLineTerminator && (id === 'async') && + !this.match(':') && !this.match('(') && !this.match('*') && !this.match(','); + key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id)); + } + else if (this.match('*')) { + this.nextToken(); + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + } + var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); + if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) { + kind = 'get'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.context.allowYield = false; + value = this.parseGetterMethod(); + } + else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) { + kind = 'set'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseSetterMethod(); + } + else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { + kind = 'init'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseGeneratorMethod(); + method = true; + } + else { + if (!key) { + this.throwUnexpectedToken(this.lookahead); + } + kind = 'init'; + if (this.match(':') && !isAsync) { + if (!computed && this.isPropertyKey(key, '__proto__')) { + if (hasProto.value) { + this.tolerateError(messages_1.Messages.DuplicateProtoProperty); + } + hasProto.value = true; + } + this.nextToken(); + value = this.inheritCoverGrammar(this.parseAssignmentExpression); + } + else if (this.match('(')) { + value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); + method = true; + } + else if (token.type === 3 /* Identifier */) { + var id = this.finalize(node, new Node.Identifier(token.value)); + if (this.match('=')) { + this.context.firstCoverInitializedNameError = this.lookahead; + this.nextToken(); + shorthand = true; + var init = this.isolateCoverGrammar(this.parseAssignmentExpression); + value = this.finalize(node, new Node.AssignmentPattern(id, init)); + } + else { + shorthand = true; + value = id; + } + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + } + return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand)); + }; + Parser.prototype.parseObjectInitializer = function () { + var node = this.createNode(); + this.expect('{'); + var properties = []; + var hasProto = { value: false }; + while (!this.match('}')) { + properties.push(this.parseObjectProperty(hasProto)); + if (!this.match('}')) { + this.expectCommaSeparator(); + } + } + this.expect('}'); + return this.finalize(node, new Node.ObjectExpression(properties)); + }; + // https://tc39.github.io/ecma262/#sec-template-literals + Parser.prototype.parseTemplateHead = function () { + assert_1.assert(this.lookahead.head, 'Template literal must start with a template head'); + var node = this.createNode(); + var token = this.nextToken(); + var raw = token.value; + var cooked = token.cooked; + return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); + }; + Parser.prototype.parseTemplateElement = function () { + if (this.lookahead.type !== 10 /* Template */) { + this.throwUnexpectedToken(); + } + var node = this.createNode(); + var token = this.nextToken(); + var raw = token.value; + var cooked = token.cooked; + return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); + }; + Parser.prototype.parseTemplateLiteral = function () { + var node = this.createNode(); + var expressions = []; + var quasis = []; + var quasi = this.parseTemplateHead(); + quasis.push(quasi); + while (!quasi.tail) { + expressions.push(this.parseExpression()); + quasi = this.parseTemplateElement(); + quasis.push(quasi); + } + return this.finalize(node, new Node.TemplateLiteral(quasis, expressions)); + }; + // https://tc39.github.io/ecma262/#sec-grouping-operator + Parser.prototype.reinterpretExpressionAsPattern = function (expr) { + switch (expr.type) { + case syntax_1.Syntax.Identifier: + case syntax_1.Syntax.MemberExpression: + case syntax_1.Syntax.RestElement: + case syntax_1.Syntax.AssignmentPattern: + break; + case syntax_1.Syntax.SpreadElement: + expr.type = syntax_1.Syntax.RestElement; + this.reinterpretExpressionAsPattern(expr.argument); + break; + case syntax_1.Syntax.ArrayExpression: + expr.type = syntax_1.Syntax.ArrayPattern; + for (var i = 0; i < expr.elements.length; i++) { + if (expr.elements[i] !== null) { + this.reinterpretExpressionAsPattern(expr.elements[i]); + } + } + break; + case syntax_1.Syntax.ObjectExpression: + expr.type = syntax_1.Syntax.ObjectPattern; + for (var i = 0; i < expr.properties.length; i++) { + this.reinterpretExpressionAsPattern(expr.properties[i].value); + } + break; + case syntax_1.Syntax.AssignmentExpression: + expr.type = syntax_1.Syntax.AssignmentPattern; + delete expr.operator; + this.reinterpretExpressionAsPattern(expr.left); + break; + default: + // Allow other node type for tolerant parsing. + break; + } + }; + Parser.prototype.parseGroupExpression = function () { + var expr; + this.expect('('); + if (this.match(')')) { + this.nextToken(); + if (!this.match('=>')) { + this.expect('=>'); + } + expr = { + type: ArrowParameterPlaceHolder, + params: [], + async: false + }; + } + else { + var startToken = this.lookahead; + var params = []; + if (this.match('...')) { + expr = this.parseRestElement(params); + this.expect(')'); + if (!this.match('=>')) { + this.expect('=>'); + } + expr = { + type: ArrowParameterPlaceHolder, + params: [expr], + async: false + }; + } + else { + var arrow = false; + this.context.isBindingElement = true; + expr = this.inheritCoverGrammar(this.parseAssignmentExpression); + if (this.match(',')) { + var expressions = []; + this.context.isAssignmentTarget = false; + expressions.push(expr); + while (this.lookahead.type !== 2 /* EOF */) { + if (!this.match(',')) { + break; + } + this.nextToken(); + if (this.match(')')) { + this.nextToken(); + for (var i = 0; i < expressions.length; i++) { + this.reinterpretExpressionAsPattern(expressions[i]); + } + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: expressions, + async: false + }; + } + else if (this.match('...')) { + if (!this.context.isBindingElement) { + this.throwUnexpectedToken(this.lookahead); + } + expressions.push(this.parseRestElement(params)); + this.expect(')'); + if (!this.match('=>')) { + this.expect('=>'); + } + this.context.isBindingElement = false; + for (var i = 0; i < expressions.length; i++) { + this.reinterpretExpressionAsPattern(expressions[i]); + } + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: expressions, + async: false + }; + } + else { + expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); + } + if (arrow) { + break; + } + } + if (!arrow) { + expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); + } + } + if (!arrow) { + this.expect(')'); + if (this.match('=>')) { + if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') { + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: [expr], + async: false + }; + } + if (!arrow) { + if (!this.context.isBindingElement) { + this.throwUnexpectedToken(this.lookahead); + } + if (expr.type === syntax_1.Syntax.SequenceExpression) { + for (var i = 0; i < expr.expressions.length; i++) { + this.reinterpretExpressionAsPattern(expr.expressions[i]); + } + } + else { + this.reinterpretExpressionAsPattern(expr); + } + var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]); + expr = { + type: ArrowParameterPlaceHolder, + params: parameters, + async: false + }; + } + } + this.context.isBindingElement = false; + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions + Parser.prototype.parseArguments = function () { + this.expect('('); + var args = []; + if (!this.match(')')) { + while (true) { + var expr = this.match('...') ? this.parseSpreadElement() : + this.isolateCoverGrammar(this.parseAssignmentExpression); + args.push(expr); + if (this.match(')')) { + break; + } + this.expectCommaSeparator(); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return args; + }; + Parser.prototype.isIdentifierName = function (token) { + return token.type === 3 /* Identifier */ || + token.type === 4 /* Keyword */ || + token.type === 1 /* BooleanLiteral */ || + token.type === 5 /* NullLiteral */; + }; + Parser.prototype.parseIdentifierName = function () { + var node = this.createNode(); + var token = this.nextToken(); + if (!this.isIdentifierName(token)) { + this.throwUnexpectedToken(token); + } + return this.finalize(node, new Node.Identifier(token.value)); + }; + Parser.prototype.parseNewExpression = function () { + var node = this.createNode(); + var id = this.parseIdentifierName(); + assert_1.assert(id.name === 'new', 'New expression must start with `new`'); + var expr; + if (this.match('.')) { + this.nextToken(); + if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') { + var property = this.parseIdentifierName(); + expr = new Node.MetaProperty(id, property); + } + else { + this.throwUnexpectedToken(this.lookahead); + } + } + else { + var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression); + var args = this.match('(') ? this.parseArguments() : []; + expr = new Node.NewExpression(callee, args); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + return this.finalize(node, expr); + }; + Parser.prototype.parseAsyncArgument = function () { + var arg = this.parseAssignmentExpression(); + this.context.firstCoverInitializedNameError = null; + return arg; + }; + Parser.prototype.parseAsyncArguments = function () { + this.expect('('); + var args = []; + if (!this.match(')')) { + while (true) { + var expr = this.match('...') ? this.parseSpreadElement() : + this.isolateCoverGrammar(this.parseAsyncArgument); + args.push(expr); + if (this.match(')')) { + break; + } + this.expectCommaSeparator(); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return args; + }; + Parser.prototype.parseLeftHandSideExpressionAllowCall = function () { + var startToken = this.lookahead; + var maybeAsync = this.matchContextualKeyword('async'); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + var expr; + if (this.matchKeyword('super') && this.context.inFunctionBody) { + expr = this.createNode(); + this.nextToken(); + expr = this.finalize(expr, new Node.Super()); + if (!this.match('(') && !this.match('.') && !this.match('[')) { + this.throwUnexpectedToken(this.lookahead); + } + } + else { + expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); + } + while (true) { + if (this.match('.')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('.'); + var property = this.parseIdentifierName(); + expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property)); + } + else if (this.match('(')) { + var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber); + this.context.isBindingElement = false; + this.context.isAssignmentTarget = false; + var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments(); + expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args)); + if (asyncArrow && this.match('=>')) { + for (var i = 0; i < args.length; ++i) { + this.reinterpretExpressionAsPattern(args[i]); + } + expr = { + type: ArrowParameterPlaceHolder, + params: args, + async: true + }; + } + } + else if (this.match('[')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('['); + var property = this.isolateCoverGrammar(this.parseExpression); + this.expect(']'); + expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property)); + } + else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { + var quasi = this.parseTemplateLiteral(); + expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi)); + } + else { + break; + } + } + this.context.allowIn = previousAllowIn; + return expr; + }; + Parser.prototype.parseSuper = function () { + var node = this.createNode(); + this.expectKeyword('super'); + if (!this.match('[') && !this.match('.')) { + this.throwUnexpectedToken(this.lookahead); + } + return this.finalize(node, new Node.Super()); + }; + Parser.prototype.parseLeftHandSideExpression = function () { + assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.'); + var node = this.startNode(this.lookahead); + var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() : + this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); + while (true) { + if (this.match('[')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('['); + var property = this.isolateCoverGrammar(this.parseExpression); + this.expect(']'); + expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property)); + } + else if (this.match('.')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('.'); + var property = this.parseIdentifierName(); + expr = this.finalize(node, new Node.StaticMemberExpression(expr, property)); + } + else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { + var quasi = this.parseTemplateLiteral(); + expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi)); + } + else { + break; + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-update-expressions + Parser.prototype.parseUpdateExpression = function () { + var expr; + var startToken = this.lookahead; + if (this.match('++') || this.match('--')) { + var node = this.startNode(startToken); + var token = this.nextToken(); + expr = this.inheritCoverGrammar(this.parseUnaryExpression); + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { + this.tolerateError(messages_1.Messages.StrictLHSPrefix); + } + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + var prefix = true; + expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix)); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else { + expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) { + if (this.match('++') || this.match('--')) { + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { + this.tolerateError(messages_1.Messages.StrictLHSPostfix); + } + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var operator = this.nextToken().value; + var prefix = false; + expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix)); + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-unary-operators + Parser.prototype.parseAwaitExpression = function () { + var node = this.createNode(); + this.nextToken(); + var argument = this.parseUnaryExpression(); + return this.finalize(node, new Node.AwaitExpression(argument)); + }; + Parser.prototype.parseUnaryExpression = function () { + var expr; + if (this.match('+') || this.match('-') || this.match('~') || this.match('!') || + this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) { + var node = this.startNode(this.lookahead); + var token = this.nextToken(); + expr = this.inheritCoverGrammar(this.parseUnaryExpression); + expr = this.finalize(node, new Node.UnaryExpression(token.value, expr)); + if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) { + this.tolerateError(messages_1.Messages.StrictDelete); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else if (this.context.await && this.matchContextualKeyword('await')) { + expr = this.parseAwaitExpression(); + } + else { + expr = this.parseUpdateExpression(); + } + return expr; + }; + Parser.prototype.parseExponentiationExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseUnaryExpression); + if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) { + this.nextToken(); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var left = expr; + var right = this.isolateCoverGrammar(this.parseExponentiationExpression); + expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right)); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-exp-operator + // https://tc39.github.io/ecma262/#sec-multiplicative-operators + // https://tc39.github.io/ecma262/#sec-additive-operators + // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators + // https://tc39.github.io/ecma262/#sec-relational-operators + // https://tc39.github.io/ecma262/#sec-equality-operators + // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators + // https://tc39.github.io/ecma262/#sec-binary-logical-operators + Parser.prototype.binaryPrecedence = function (token) { + var op = token.value; + var precedence; + if (token.type === 7 /* Punctuator */) { + precedence = this.operatorPrecedence[op] || 0; + } + else if (token.type === 4 /* Keyword */) { + precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0; + } + else { + precedence = 0; + } + return precedence; + }; + Parser.prototype.parseBinaryExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseExponentiationExpression); + var token = this.lookahead; + var prec = this.binaryPrecedence(token); + if (prec > 0) { + this.nextToken(); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var markers = [startToken, this.lookahead]; + var left = expr; + var right = this.isolateCoverGrammar(this.parseExponentiationExpression); + var stack = [left, token.value, right]; + var precedences = [prec]; + while (true) { + prec = this.binaryPrecedence(this.lookahead); + if (prec <= 0) { + break; + } + // Reduce: make a binary expression from the three topmost entries. + while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) { + right = stack.pop(); + var operator = stack.pop(); + precedences.pop(); + left = stack.pop(); + markers.pop(); + var node = this.startNode(markers[markers.length - 1]); + stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right))); + } + // Shift. + stack.push(this.nextToken().value); + precedences.push(prec); + markers.push(this.lookahead); + stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression)); + } + // Final reduce to clean-up the stack. + var i = stack.length - 1; + expr = stack[i]; + var lastMarker = markers.pop(); + while (i > 1) { + var marker = markers.pop(); + var lastLineStart = lastMarker && lastMarker.lineStart; + var node = this.startNode(marker, lastLineStart); + var operator = stack[i - 1]; + expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr)); + i -= 2; + lastMarker = marker; + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-conditional-operator + Parser.prototype.parseConditionalExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseBinaryExpression); + if (this.match('?')) { + this.nextToken(); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.context.allowIn = previousAllowIn; + this.expect(':'); + var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression); + expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate)); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-assignment-operators + Parser.prototype.checkPatternParam = function (options, param) { + switch (param.type) { + case syntax_1.Syntax.Identifier: + this.validateParam(options, param, param.name); + break; + case syntax_1.Syntax.RestElement: + this.checkPatternParam(options, param.argument); + break; + case syntax_1.Syntax.AssignmentPattern: + this.checkPatternParam(options, param.left); + break; + case syntax_1.Syntax.ArrayPattern: + for (var i = 0; i < param.elements.length; i++) { + if (param.elements[i] !== null) { + this.checkPatternParam(options, param.elements[i]); + } + } + break; + case syntax_1.Syntax.ObjectPattern: + for (var i = 0; i < param.properties.length; i++) { + this.checkPatternParam(options, param.properties[i].value); + } + break; + default: + break; + } + options.simple = options.simple && (param instanceof Node.Identifier); + }; + Parser.prototype.reinterpretAsCoverFormalsList = function (expr) { + var params = [expr]; + var options; + var asyncArrow = false; + switch (expr.type) { + case syntax_1.Syntax.Identifier: + break; + case ArrowParameterPlaceHolder: + params = expr.params; + asyncArrow = expr.async; + break; + default: + return null; + } + options = { + simple: true, + paramSet: {} + }; + for (var i = 0; i < params.length; ++i) { + var param = params[i]; + if (param.type === syntax_1.Syntax.AssignmentPattern) { + if (param.right.type === syntax_1.Syntax.YieldExpression) { + if (param.right.argument) { + this.throwUnexpectedToken(this.lookahead); + } + param.right.type = syntax_1.Syntax.Identifier; + param.right.name = 'yield'; + delete param.right.argument; + delete param.right.delegate; + } + } + else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') { + this.throwUnexpectedToken(this.lookahead); + } + this.checkPatternParam(options, param); + params[i] = param; + } + if (this.context.strict || !this.context.allowYield) { + for (var i = 0; i < params.length; ++i) { + var param = params[i]; + if (param.type === syntax_1.Syntax.YieldExpression) { + this.throwUnexpectedToken(this.lookahead); + } + } + } + if (options.message === messages_1.Messages.StrictParamDupe) { + var token = this.context.strict ? options.stricted : options.firstRestricted; + this.throwUnexpectedToken(token, options.message); + } + return { + simple: options.simple, + params: params, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + }; + Parser.prototype.parseAssignmentExpression = function () { + var expr; + if (!this.context.allowYield && this.matchKeyword('yield')) { + expr = this.parseYieldExpression(); + } + else { + var startToken = this.lookahead; + var token = startToken; + expr = this.parseConditionalExpression(); + if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') { + if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) { + var arg = this.parsePrimaryExpression(); + this.reinterpretExpressionAsPattern(arg); + expr = { + type: ArrowParameterPlaceHolder, + params: [arg], + async: true + }; + } + } + if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) { + // https://tc39.github.io/ecma262/#sec-arrow-function-definitions + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var isAsync = expr.async; + var list = this.reinterpretAsCoverFormalsList(expr); + if (list) { + if (this.hasLineTerminator) { + this.tolerateUnexpectedToken(this.lookahead); + } + this.context.firstCoverInitializedNameError = null; + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = list.simple; + var previousAllowYield = this.context.allowYield; + var previousAwait = this.context.await; + this.context.allowYield = true; + this.context.await = isAsync; + var node = this.startNode(startToken); + this.expect('=>'); + var body = void 0; + if (this.match('{')) { + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + body = this.parseFunctionSourceElements(); + this.context.allowIn = previousAllowIn; + } + else { + body = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + var expression = body.type !== syntax_1.Syntax.BlockStatement; + if (this.context.strict && list.firstRestricted) { + this.throwUnexpectedToken(list.firstRestricted, list.message); + } + if (this.context.strict && list.stricted) { + this.tolerateUnexpectedToken(list.stricted, list.message); + } + expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) : + this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression)); + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.allowYield = previousAllowYield; + this.context.await = previousAwait; + } + } + else { + if (this.matchAssign()) { + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) { + var id = expr; + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment); + } + if (this.scanner.isStrictModeReservedWord(id.name)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + } + if (!this.match('=')) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else { + this.reinterpretExpressionAsPattern(expr); + } + token = this.nextToken(); + var operator = token.value; + var right = this.isolateCoverGrammar(this.parseAssignmentExpression); + expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right)); + this.context.firstCoverInitializedNameError = null; + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-comma-operator + Parser.prototype.parseExpression = function () { + var startToken = this.lookahead; + var expr = this.isolateCoverGrammar(this.parseAssignmentExpression); + if (this.match(',')) { + var expressions = []; + expressions.push(expr); + while (this.lookahead.type !== 2 /* EOF */) { + if (!this.match(',')) { + break; + } + this.nextToken(); + expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); + } + expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-block + Parser.prototype.parseStatementListItem = function () { + var statement; + this.context.isAssignmentTarget = true; + this.context.isBindingElement = true; + if (this.lookahead.type === 4 /* Keyword */) { + switch (this.lookahead.value) { + case 'export': + if (!this.context.isModule) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration); + } + statement = this.parseExportDeclaration(); + break; + case 'import': + if (!this.context.isModule) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration); + } + statement = this.parseImportDeclaration(); + break; + case 'const': + statement = this.parseLexicalDeclaration({ inFor: false }); + break; + case 'function': + statement = this.parseFunctionDeclaration(); + break; + case 'class': + statement = this.parseClassDeclaration(); + break; + case 'let': + statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement(); + break; + default: + statement = this.parseStatement(); + break; + } + } + else { + statement = this.parseStatement(); + } + return statement; + }; + Parser.prototype.parseBlock = function () { + var node = this.createNode(); + this.expect('{'); + var block = []; + while (true) { + if (this.match('}')) { + break; + } + block.push(this.parseStatementListItem()); + } + this.expect('}'); + return this.finalize(node, new Node.BlockStatement(block)); + }; + // https://tc39.github.io/ecma262/#sec-let-and-const-declarations + Parser.prototype.parseLexicalBinding = function (kind, options) { + var node = this.createNode(); + var params = []; + var id = this.parsePattern(params, kind); + if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateError(messages_1.Messages.StrictVarName); + } + } + var init = null; + if (kind === 'const') { + if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) { + if (this.match('=')) { + this.nextToken(); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + else { + this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const'); + } + } + } + else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) { + this.expect('='); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + return this.finalize(node, new Node.VariableDeclarator(id, init)); + }; + Parser.prototype.parseBindingList = function (kind, options) { + var list = [this.parseLexicalBinding(kind, options)]; + while (this.match(',')) { + this.nextToken(); + list.push(this.parseLexicalBinding(kind, options)); + } + return list; + }; + Parser.prototype.isLexicalDeclaration = function () { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.scanner.lex(); + this.scanner.restoreState(state); + return (next.type === 3 /* Identifier */) || + (next.type === 7 /* Punctuator */ && next.value === '[') || + (next.type === 7 /* Punctuator */ && next.value === '{') || + (next.type === 4 /* Keyword */ && next.value === 'let') || + (next.type === 4 /* Keyword */ && next.value === 'yield'); + }; + Parser.prototype.parseLexicalDeclaration = function (options) { + var node = this.createNode(); + var kind = this.nextToken().value; + assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); + var declarations = this.parseBindingList(kind, options); + this.consumeSemicolon(); + return this.finalize(node, new Node.VariableDeclaration(declarations, kind)); + }; + // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns + Parser.prototype.parseBindingRestElement = function (params, kind) { + var node = this.createNode(); + this.expect('...'); + var arg = this.parsePattern(params, kind); + return this.finalize(node, new Node.RestElement(arg)); + }; + Parser.prototype.parseArrayPattern = function (params, kind) { + var node = this.createNode(); + this.expect('['); + var elements = []; + while (!this.match(']')) { + if (this.match(',')) { + this.nextToken(); + elements.push(null); + } + else { + if (this.match('...')) { + elements.push(this.parseBindingRestElement(params, kind)); + break; + } + else { + elements.push(this.parsePatternWithDefault(params, kind)); + } + if (!this.match(']')) { + this.expect(','); + } + } + } + this.expect(']'); + return this.finalize(node, new Node.ArrayPattern(elements)); + }; + Parser.prototype.parsePropertyPattern = function (params, kind) { + var node = this.createNode(); + var computed = false; + var shorthand = false; + var method = false; + var key; + var value; + if (this.lookahead.type === 3 /* Identifier */) { + var keyToken = this.lookahead; + key = this.parseVariableIdentifier(); + var init = this.finalize(node, new Node.Identifier(keyToken.value)); + if (this.match('=')) { + params.push(keyToken); + shorthand = true; + this.nextToken(); + var expr = this.parseAssignmentExpression(); + value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr)); + } + else if (!this.match(':')) { + params.push(keyToken); + shorthand = true; + value = init; + } + else { + this.expect(':'); + value = this.parsePatternWithDefault(params, kind); + } + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.expect(':'); + value = this.parsePatternWithDefault(params, kind); + } + return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand)); + }; + Parser.prototype.parseObjectPattern = function (params, kind) { + var node = this.createNode(); + var properties = []; + this.expect('{'); + while (!this.match('}')) { + properties.push(this.parsePropertyPattern(params, kind)); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + return this.finalize(node, new Node.ObjectPattern(properties)); + }; + Parser.prototype.parsePattern = function (params, kind) { + var pattern; + if (this.match('[')) { + pattern = this.parseArrayPattern(params, kind); + } + else if (this.match('{')) { + pattern = this.parseObjectPattern(params, kind); + } + else { + if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding); + } + params.push(this.lookahead); + pattern = this.parseVariableIdentifier(kind); + } + return pattern; + }; + Parser.prototype.parsePatternWithDefault = function (params, kind) { + var startToken = this.lookahead; + var pattern = this.parsePattern(params, kind); + if (this.match('=')) { + this.nextToken(); + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var right = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.context.allowYield = previousAllowYield; + pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right)); + } + return pattern; + }; + // https://tc39.github.io/ecma262/#sec-variable-statement + Parser.prototype.parseVariableIdentifier = function (kind) { + var node = this.createNode(); + var token = this.nextToken(); + if (token.type === 4 /* Keyword */ && token.value === 'yield') { + if (this.context.strict) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + else if (!this.context.allowYield) { + this.throwUnexpectedToken(token); + } + } + else if (token.type !== 3 /* Identifier */) { + if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + else { + if (this.context.strict || token.value !== 'let' || kind !== 'var') { + this.throwUnexpectedToken(token); + } + } + } + else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') { + this.tolerateUnexpectedToken(token); + } + return this.finalize(node, new Node.Identifier(token.value)); + }; + Parser.prototype.parseVariableDeclaration = function (options) { + var node = this.createNode(); + var params = []; + var id = this.parsePattern(params, 'var'); + if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateError(messages_1.Messages.StrictVarName); + } + } + var init = null; + if (this.match('=')) { + this.nextToken(); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) { + this.expect('='); + } + return this.finalize(node, new Node.VariableDeclarator(id, init)); + }; + Parser.prototype.parseVariableDeclarationList = function (options) { + var opt = { inFor: options.inFor }; + var list = []; + list.push(this.parseVariableDeclaration(opt)); + while (this.match(',')) { + this.nextToken(); + list.push(this.parseVariableDeclaration(opt)); + } + return list; + }; + Parser.prototype.parseVariableStatement = function () { + var node = this.createNode(); + this.expectKeyword('var'); + var declarations = this.parseVariableDeclarationList({ inFor: false }); + this.consumeSemicolon(); + return this.finalize(node, new Node.VariableDeclaration(declarations, 'var')); + }; + // https://tc39.github.io/ecma262/#sec-empty-statement + Parser.prototype.parseEmptyStatement = function () { + var node = this.createNode(); + this.expect(';'); + return this.finalize(node, new Node.EmptyStatement()); + }; + // https://tc39.github.io/ecma262/#sec-expression-statement + Parser.prototype.parseExpressionStatement = function () { + var node = this.createNode(); + var expr = this.parseExpression(); + this.consumeSemicolon(); + return this.finalize(node, new Node.ExpressionStatement(expr)); + }; + // https://tc39.github.io/ecma262/#sec-if-statement + Parser.prototype.parseIfClause = function () { + if (this.context.strict && this.matchKeyword('function')) { + this.tolerateError(messages_1.Messages.StrictFunction); + } + return this.parseStatement(); + }; + Parser.prototype.parseIfStatement = function () { + var node = this.createNode(); + var consequent; + var alternate = null; + this.expectKeyword('if'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + consequent = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + consequent = this.parseIfClause(); + if (this.matchKeyword('else')) { + this.nextToken(); + alternate = this.parseIfClause(); + } + } + return this.finalize(node, new Node.IfStatement(test, consequent, alternate)); + }; + // https://tc39.github.io/ecma262/#sec-do-while-statement + Parser.prototype.parseDoWhileStatement = function () { + var node = this.createNode(); + this.expectKeyword('do'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + var body = this.parseStatement(); + this.context.inIteration = previousInIteration; + this.expectKeyword('while'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + } + else { + this.expect(')'); + if (this.match(';')) { + this.nextToken(); + } + } + return this.finalize(node, new Node.DoWhileStatement(body, test)); + }; + // https://tc39.github.io/ecma262/#sec-while-statement + Parser.prototype.parseWhileStatement = function () { + var node = this.createNode(); + var body; + this.expectKeyword('while'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + body = this.parseStatement(); + this.context.inIteration = previousInIteration; + } + return this.finalize(node, new Node.WhileStatement(test, body)); + }; + // https://tc39.github.io/ecma262/#sec-for-statement + // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements + Parser.prototype.parseForStatement = function () { + var init = null; + var test = null; + var update = null; + var forIn = true; + var left, right; + var node = this.createNode(); + this.expectKeyword('for'); + this.expect('('); + if (this.match(';')) { + this.nextToken(); + } + else { + if (this.matchKeyword('var')) { + init = this.createNode(); + this.nextToken(); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + var declarations = this.parseVariableDeclarationList({ inFor: true }); + this.context.allowIn = previousAllowIn; + if (declarations.length === 1 && this.matchKeyword('in')) { + var decl = declarations[0]; + if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) { + this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in'); + } + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.nextToken(); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.expect(';'); + } + } + else if (this.matchKeyword('const') || this.matchKeyword('let')) { + init = this.createNode(); + var kind = this.nextToken().value; + if (!this.context.strict && this.lookahead.value === 'in') { + init = this.finalize(init, new Node.Identifier(kind)); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else { + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + var declarations = this.parseBindingList(kind, { inFor: true }); + this.context.allowIn = previousAllowIn; + if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + this.nextToken(); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + this.consumeSemicolon(); + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + } + } + } + else { + var initStartToken = this.lookahead; + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + init = this.inheritCoverGrammar(this.parseAssignmentExpression); + this.context.allowIn = previousAllowIn; + if (this.matchKeyword('in')) { + if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { + this.tolerateError(messages_1.Messages.InvalidLHSInForIn); + } + this.nextToken(); + this.reinterpretExpressionAsPattern(init); + left = init; + right = this.parseExpression(); + init = null; + } + else if (this.matchContextualKeyword('of')) { + if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { + this.tolerateError(messages_1.Messages.InvalidLHSInForLoop); + } + this.nextToken(); + this.reinterpretExpressionAsPattern(init); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + if (this.match(',')) { + var initSeq = [init]; + while (this.match(',')) { + this.nextToken(); + initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); + } + init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq)); + } + this.expect(';'); + } + } + } + if (typeof left === 'undefined') { + if (!this.match(';')) { + test = this.parseExpression(); + } + this.expect(';'); + if (!this.match(')')) { + update = this.parseExpression(); + } + } + var body; + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + body = this.isolateCoverGrammar(this.parseStatement); + this.context.inIteration = previousInIteration; + } + return (typeof left === 'undefined') ? + this.finalize(node, new Node.ForStatement(init, test, update, body)) : + forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) : + this.finalize(node, new Node.ForOfStatement(left, right, body)); + }; + // https://tc39.github.io/ecma262/#sec-continue-statement + Parser.prototype.parseContinueStatement = function () { + var node = this.createNode(); + this.expectKeyword('continue'); + var label = null; + if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { + var id = this.parseVariableIdentifier(); + label = id; + var key = '$' + id.name; + if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.UnknownLabel, id.name); + } + } + this.consumeSemicolon(); + if (label === null && !this.context.inIteration) { + this.throwError(messages_1.Messages.IllegalContinue); + } + return this.finalize(node, new Node.ContinueStatement(label)); + }; + // https://tc39.github.io/ecma262/#sec-break-statement + Parser.prototype.parseBreakStatement = function () { + var node = this.createNode(); + this.expectKeyword('break'); + var label = null; + if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { + var id = this.parseVariableIdentifier(); + var key = '$' + id.name; + if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.UnknownLabel, id.name); + } + label = id; + } + this.consumeSemicolon(); + if (label === null && !this.context.inIteration && !this.context.inSwitch) { + this.throwError(messages_1.Messages.IllegalBreak); + } + return this.finalize(node, new Node.BreakStatement(label)); + }; + // https://tc39.github.io/ecma262/#sec-return-statement + Parser.prototype.parseReturnStatement = function () { + if (!this.context.inFunctionBody) { + this.tolerateError(messages_1.Messages.IllegalReturn); + } + var node = this.createNode(); + this.expectKeyword('return'); + var hasArgument = (!this.match(';') && !this.match('}') && + !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) || + this.lookahead.type === 8 /* StringLiteral */ || + this.lookahead.type === 10 /* Template */; + var argument = hasArgument ? this.parseExpression() : null; + this.consumeSemicolon(); + return this.finalize(node, new Node.ReturnStatement(argument)); + }; + // https://tc39.github.io/ecma262/#sec-with-statement + Parser.prototype.parseWithStatement = function () { + if (this.context.strict) { + this.tolerateError(messages_1.Messages.StrictModeWith); + } + var node = this.createNode(); + var body; + this.expectKeyword('with'); + this.expect('('); + var object = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + body = this.parseStatement(); + } + return this.finalize(node, new Node.WithStatement(object, body)); + }; + // https://tc39.github.io/ecma262/#sec-switch-statement + Parser.prototype.parseSwitchCase = function () { + var node = this.createNode(); + var test; + if (this.matchKeyword('default')) { + this.nextToken(); + test = null; + } + else { + this.expectKeyword('case'); + test = this.parseExpression(); + } + this.expect(':'); + var consequent = []; + while (true) { + if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) { + break; + } + consequent.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.SwitchCase(test, consequent)); + }; + Parser.prototype.parseSwitchStatement = function () { + var node = this.createNode(); + this.expectKeyword('switch'); + this.expect('('); + var discriminant = this.parseExpression(); + this.expect(')'); + var previousInSwitch = this.context.inSwitch; + this.context.inSwitch = true; + var cases = []; + var defaultFound = false; + this.expect('{'); + while (true) { + if (this.match('}')) { + break; + } + var clause = this.parseSwitchCase(); + if (clause.test === null) { + if (defaultFound) { + this.throwError(messages_1.Messages.MultipleDefaultsInSwitch); + } + defaultFound = true; + } + cases.push(clause); + } + this.expect('}'); + this.context.inSwitch = previousInSwitch; + return this.finalize(node, new Node.SwitchStatement(discriminant, cases)); + }; + // https://tc39.github.io/ecma262/#sec-labelled-statements + Parser.prototype.parseLabelledStatement = function () { + var node = this.createNode(); + var expr = this.parseExpression(); + var statement; + if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) { + this.nextToken(); + var id = expr; + var key = '$' + id.name; + if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name); + } + this.context.labelSet[key] = true; + var body = void 0; + if (this.matchKeyword('class')) { + this.tolerateUnexpectedToken(this.lookahead); + body = this.parseClassDeclaration(); + } + else if (this.matchKeyword('function')) { + var token = this.lookahead; + var declaration = this.parseFunctionDeclaration(); + if (this.context.strict) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction); + } + else if (declaration.generator) { + this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext); + } + body = declaration; + } + else { + body = this.parseStatement(); + } + delete this.context.labelSet[key]; + statement = new Node.LabeledStatement(id, body); + } + else { + this.consumeSemicolon(); + statement = new Node.ExpressionStatement(expr); + } + return this.finalize(node, statement); + }; + // https://tc39.github.io/ecma262/#sec-throw-statement + Parser.prototype.parseThrowStatement = function () { + var node = this.createNode(); + this.expectKeyword('throw'); + if (this.hasLineTerminator) { + this.throwError(messages_1.Messages.NewlineAfterThrow); + } + var argument = this.parseExpression(); + this.consumeSemicolon(); + return this.finalize(node, new Node.ThrowStatement(argument)); + }; + // https://tc39.github.io/ecma262/#sec-try-statement + Parser.prototype.parseCatchClause = function () { + var node = this.createNode(); + this.expectKeyword('catch'); + this.expect('('); + if (this.match(')')) { + this.throwUnexpectedToken(this.lookahead); + } + var params = []; + var param = this.parsePattern(params); + var paramMap = {}; + for (var i = 0; i < params.length; i++) { + var key = '$' + params[i].value; + if (Object.prototype.hasOwnProperty.call(paramMap, key)) { + this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value); + } + paramMap[key] = true; + } + if (this.context.strict && param.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(param.name)) { + this.tolerateError(messages_1.Messages.StrictCatchVariable); + } + } + this.expect(')'); + var body = this.parseBlock(); + return this.finalize(node, new Node.CatchClause(param, body)); + }; + Parser.prototype.parseFinallyClause = function () { + this.expectKeyword('finally'); + return this.parseBlock(); + }; + Parser.prototype.parseTryStatement = function () { + var node = this.createNode(); + this.expectKeyword('try'); + var block = this.parseBlock(); + var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null; + var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null; + if (!handler && !finalizer) { + this.throwError(messages_1.Messages.NoCatchOrFinally); + } + return this.finalize(node, new Node.TryStatement(block, handler, finalizer)); + }; + // https://tc39.github.io/ecma262/#sec-debugger-statement + Parser.prototype.parseDebuggerStatement = function () { + var node = this.createNode(); + this.expectKeyword('debugger'); + this.consumeSemicolon(); + return this.finalize(node, new Node.DebuggerStatement()); + }; + // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations + Parser.prototype.parseStatement = function () { + var statement; + switch (this.lookahead.type) { + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 6 /* NumericLiteral */: + case 8 /* StringLiteral */: + case 10 /* Template */: + case 9 /* RegularExpression */: + statement = this.parseExpressionStatement(); + break; + case 7 /* Punctuator */: + var value = this.lookahead.value; + if (value === '{') { + statement = this.parseBlock(); + } + else if (value === '(') { + statement = this.parseExpressionStatement(); + } + else if (value === ';') { + statement = this.parseEmptyStatement(); + } + else { + statement = this.parseExpressionStatement(); + } + break; + case 3 /* Identifier */: + statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement(); + break; + case 4 /* Keyword */: + switch (this.lookahead.value) { + case 'break': + statement = this.parseBreakStatement(); + break; + case 'continue': + statement = this.parseContinueStatement(); + break; + case 'debugger': + statement = this.parseDebuggerStatement(); + break; + case 'do': + statement = this.parseDoWhileStatement(); + break; + case 'for': + statement = this.parseForStatement(); + break; + case 'function': + statement = this.parseFunctionDeclaration(); + break; + case 'if': + statement = this.parseIfStatement(); + break; + case 'return': + statement = this.parseReturnStatement(); + break; + case 'switch': + statement = this.parseSwitchStatement(); + break; + case 'throw': + statement = this.parseThrowStatement(); + break; + case 'try': + statement = this.parseTryStatement(); + break; + case 'var': + statement = this.parseVariableStatement(); + break; + case 'while': + statement = this.parseWhileStatement(); + break; + case 'with': + statement = this.parseWithStatement(); + break; + default: + statement = this.parseExpressionStatement(); + break; + } + break; + default: + statement = this.throwUnexpectedToken(this.lookahead); + } + return statement; + }; + // https://tc39.github.io/ecma262/#sec-function-definitions + Parser.prototype.parseFunctionSourceElements = function () { + var node = this.createNode(); + this.expect('{'); + var body = this.parseDirectivePrologues(); + var previousLabelSet = this.context.labelSet; + var previousInIteration = this.context.inIteration; + var previousInSwitch = this.context.inSwitch; + var previousInFunctionBody = this.context.inFunctionBody; + this.context.labelSet = {}; + this.context.inIteration = false; + this.context.inSwitch = false; + this.context.inFunctionBody = true; + while (this.lookahead.type !== 2 /* EOF */) { + if (this.match('}')) { + break; + } + body.push(this.parseStatementListItem()); + } + this.expect('}'); + this.context.labelSet = previousLabelSet; + this.context.inIteration = previousInIteration; + this.context.inSwitch = previousInSwitch; + this.context.inFunctionBody = previousInFunctionBody; + return this.finalize(node, new Node.BlockStatement(body)); + }; + Parser.prototype.validateParam = function (options, param, name) { + var key = '$' + name; + if (this.context.strict) { + if (this.scanner.isRestrictedWord(name)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamName; + } + if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamDupe; + } + } + else if (!options.firstRestricted) { + if (this.scanner.isRestrictedWord(name)) { + options.firstRestricted = param; + options.message = messages_1.Messages.StrictParamName; + } + else if (this.scanner.isStrictModeReservedWord(name)) { + options.firstRestricted = param; + options.message = messages_1.Messages.StrictReservedWord; + } + else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamDupe; + } + } + /* istanbul ignore next */ + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true }); + } + else { + options.paramSet[key] = true; + } + }; + Parser.prototype.parseRestElement = function (params) { + var node = this.createNode(); + this.expect('...'); + var arg = this.parsePattern(params); + if (this.match('=')) { + this.throwError(messages_1.Messages.DefaultRestParameter); + } + if (!this.match(')')) { + this.throwError(messages_1.Messages.ParameterAfterRestParameter); + } + return this.finalize(node, new Node.RestElement(arg)); + }; + Parser.prototype.parseFormalParameter = function (options) { + var params = []; + var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params); + for (var i = 0; i < params.length; i++) { + this.validateParam(options, params[i], params[i].value); + } + options.simple = options.simple && (param instanceof Node.Identifier); + options.params.push(param); + }; + Parser.prototype.parseFormalParameters = function (firstRestricted) { + var options; + options = { + simple: true, + params: [], + firstRestricted: firstRestricted + }; + this.expect('('); + if (!this.match(')')) { + options.paramSet = {}; + while (this.lookahead.type !== 2 /* EOF */) { + this.parseFormalParameter(options); + if (this.match(')')) { + break; + } + this.expect(','); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return { + simple: options.simple, + params: options.params, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + }; + Parser.prototype.matchAsyncFunction = function () { + var match = this.matchContextualKeyword('async'); + if (match) { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.scanner.lex(); + this.scanner.restoreState(state); + match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function'); + } + return match; + }; + Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) { + var node = this.createNode(); + var isAsync = this.matchContextualKeyword('async'); + if (isAsync) { + this.nextToken(); + } + this.expectKeyword('function'); + var isGenerator = isAsync ? false : this.match('*'); + if (isGenerator) { + this.nextToken(); + } + var message; + var id = null; + var firstRestricted = null; + if (!identifierIsOptional || !this.match('(')) { + var token = this.lookahead; + id = this.parseVariableIdentifier(); + if (this.context.strict) { + if (this.scanner.isRestrictedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); + } + } + else { + if (this.scanner.isRestrictedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictFunctionName; + } + else if (this.scanner.isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictReservedWord; + } + } + } + var previousAllowAwait = this.context.await; + var previousAllowYield = this.context.allowYield; + this.context.await = isAsync; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(firstRestricted); + var params = formalParameters.params; + var stricted = formalParameters.stricted; + firstRestricted = formalParameters.firstRestricted; + if (formalParameters.message) { + message = formalParameters.message; + } + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = formalParameters.simple; + var body = this.parseFunctionSourceElements(); + if (this.context.strict && firstRestricted) { + this.throwUnexpectedToken(firstRestricted, message); + } + if (this.context.strict && stricted) { + this.tolerateUnexpectedToken(stricted, message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.await = previousAllowAwait; + this.context.allowYield = previousAllowYield; + return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) : + this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator)); + }; + Parser.prototype.parseFunctionExpression = function () { + var node = this.createNode(); + var isAsync = this.matchContextualKeyword('async'); + if (isAsync) { + this.nextToken(); + } + this.expectKeyword('function'); + var isGenerator = isAsync ? false : this.match('*'); + if (isGenerator) { + this.nextToken(); + } + var message; + var id = null; + var firstRestricted; + var previousAllowAwait = this.context.await; + var previousAllowYield = this.context.allowYield; + this.context.await = isAsync; + this.context.allowYield = !isGenerator; + if (!this.match('(')) { + var token = this.lookahead; + id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier(); + if (this.context.strict) { + if (this.scanner.isRestrictedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); + } + } + else { + if (this.scanner.isRestrictedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictFunctionName; + } + else if (this.scanner.isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictReservedWord; + } + } + } + var formalParameters = this.parseFormalParameters(firstRestricted); + var params = formalParameters.params; + var stricted = formalParameters.stricted; + firstRestricted = formalParameters.firstRestricted; + if (formalParameters.message) { + message = formalParameters.message; + } + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = formalParameters.simple; + var body = this.parseFunctionSourceElements(); + if (this.context.strict && firstRestricted) { + this.throwUnexpectedToken(firstRestricted, message); + } + if (this.context.strict && stricted) { + this.tolerateUnexpectedToken(stricted, message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.await = previousAllowAwait; + this.context.allowYield = previousAllowYield; + return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) : + this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator)); + }; + // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive + Parser.prototype.parseDirective = function () { + var token = this.lookahead; + var node = this.createNode(); + var expr = this.parseExpression(); + var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null; + this.consumeSemicolon(); + return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr)); + }; + Parser.prototype.parseDirectivePrologues = function () { + var firstRestricted = null; + var body = []; + while (true) { + var token = this.lookahead; + if (token.type !== 8 /* StringLiteral */) { + break; + } + var statement = this.parseDirective(); + body.push(statement); + var directive = statement.directive; + if (typeof directive !== 'string') { + break; + } + if (directive === 'use strict') { + this.context.strict = true; + if (firstRestricted) { + this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral); + } + if (!this.context.allowStrictDirective) { + this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective); + } + } + else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + return body; + }; + // https://tc39.github.io/ecma262/#sec-method-definitions + Parser.prototype.qualifiedPropertyName = function (token) { + switch (token.type) { + case 3 /* Identifier */: + case 8 /* StringLiteral */: + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 6 /* NumericLiteral */: + case 4 /* Keyword */: + return true; + case 7 /* Punctuator */: + return token.value === '['; + default: + break; + } + return false; + }; + Parser.prototype.parseGetterMethod = function () { + var node = this.createNode(); + var isGenerator = false; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(); + if (formalParameters.params.length > 0) { + this.tolerateError(messages_1.Messages.BadGetterArity); + } + var method = this.parsePropertyMethod(formalParameters); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); + }; + Parser.prototype.parseSetterMethod = function () { + var node = this.createNode(); + var isGenerator = false; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(); + if (formalParameters.params.length !== 1) { + this.tolerateError(messages_1.Messages.BadSetterArity); + } + else if (formalParameters.params[0] instanceof Node.RestElement) { + this.tolerateError(messages_1.Messages.BadSetterRestParameter); + } + var method = this.parsePropertyMethod(formalParameters); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); + }; + Parser.prototype.parseGeneratorMethod = function () { + var node = this.createNode(); + var isGenerator = true; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var params = this.parseFormalParameters(); + this.context.allowYield = false; + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); + }; + // https://tc39.github.io/ecma262/#sec-generator-function-definitions + Parser.prototype.isStartOfExpression = function () { + var start = true; + var value = this.lookahead.value; + switch (this.lookahead.type) { + case 7 /* Punctuator */: + start = (value === '[') || (value === '(') || (value === '{') || + (value === '+') || (value === '-') || + (value === '!') || (value === '~') || + (value === '++') || (value === '--') || + (value === '/') || (value === '/='); // regular expression literal + break; + case 4 /* Keyword */: + start = (value === 'class') || (value === 'delete') || + (value === 'function') || (value === 'let') || (value === 'new') || + (value === 'super') || (value === 'this') || (value === 'typeof') || + (value === 'void') || (value === 'yield'); + break; + default: + break; + } + return start; + }; + Parser.prototype.parseYieldExpression = function () { + var node = this.createNode(); + this.expectKeyword('yield'); + var argument = null; + var delegate = false; + if (!this.hasLineTerminator) { + var previousAllowYield = this.context.allowYield; + this.context.allowYield = false; + delegate = this.match('*'); + if (delegate) { + this.nextToken(); + argument = this.parseAssignmentExpression(); + } + else if (this.isStartOfExpression()) { + argument = this.parseAssignmentExpression(); + } + this.context.allowYield = previousAllowYield; + } + return this.finalize(node, new Node.YieldExpression(argument, delegate)); + }; + // https://tc39.github.io/ecma262/#sec-class-definitions + Parser.prototype.parseClassElement = function (hasConstructor) { + var token = this.lookahead; + var node = this.createNode(); + var kind = ''; + var key = null; + var value = null; + var computed = false; + var method = false; + var isStatic = false; + var isAsync = false; + if (this.match('*')) { + this.nextToken(); + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + var id = key; + if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) { + token = this.lookahead; + isStatic = true; + computed = this.match('['); + if (this.match('*')) { + this.nextToken(); + } + else { + key = this.parseObjectPropertyKey(); + } + } + if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) { + var punctuator = this.lookahead.value; + if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') { + isAsync = true; + token = this.lookahead; + key = this.parseObjectPropertyKey(); + if (token.type === 3 /* Identifier */ && token.value === 'constructor') { + this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync); + } + } + } + } + var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); + if (token.type === 3 /* Identifier */) { + if (token.value === 'get' && lookaheadPropertyKey) { + kind = 'get'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.context.allowYield = false; + value = this.parseGetterMethod(); + } + else if (token.value === 'set' && lookaheadPropertyKey) { + kind = 'set'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseSetterMethod(); + } + } + else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { + kind = 'init'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseGeneratorMethod(); + method = true; + } + if (!kind && key && this.match('(')) { + kind = 'init'; + value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); + method = true; + } + if (!kind) { + this.throwUnexpectedToken(this.lookahead); + } + if (kind === 'init') { + kind = 'method'; + } + if (!computed) { + if (isStatic && this.isPropertyKey(key, 'prototype')) { + this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype); + } + if (!isStatic && this.isPropertyKey(key, 'constructor')) { + if (kind !== 'method' || !method || (value && value.generator)) { + this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod); + } + if (hasConstructor.value) { + this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor); + } + else { + hasConstructor.value = true; + } + kind = 'constructor'; + } + } + return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic)); + }; + Parser.prototype.parseClassElementList = function () { + var body = []; + var hasConstructor = { value: false }; + this.expect('{'); + while (!this.match('}')) { + if (this.match(';')) { + this.nextToken(); + } + else { + body.push(this.parseClassElement(hasConstructor)); + } + } + this.expect('}'); + return body; + }; + Parser.prototype.parseClassBody = function () { + var node = this.createNode(); + var elementList = this.parseClassElementList(); + return this.finalize(node, new Node.ClassBody(elementList)); + }; + Parser.prototype.parseClassDeclaration = function (identifierIsOptional) { + var node = this.createNode(); + var previousStrict = this.context.strict; + this.context.strict = true; + this.expectKeyword('class'); + var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier(); + var superClass = null; + if (this.matchKeyword('extends')) { + this.nextToken(); + superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + } + var classBody = this.parseClassBody(); + this.context.strict = previousStrict; + return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody)); + }; + Parser.prototype.parseClassExpression = function () { + var node = this.createNode(); + var previousStrict = this.context.strict; + this.context.strict = true; + this.expectKeyword('class'); + var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null; + var superClass = null; + if (this.matchKeyword('extends')) { + this.nextToken(); + superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + } + var classBody = this.parseClassBody(); + this.context.strict = previousStrict; + return this.finalize(node, new Node.ClassExpression(id, superClass, classBody)); + }; + // https://tc39.github.io/ecma262/#sec-scripts + // https://tc39.github.io/ecma262/#sec-modules + Parser.prototype.parseModule = function () { + this.context.strict = true; + this.context.isModule = true; + this.scanner.isModule = true; + var node = this.createNode(); + var body = this.parseDirectivePrologues(); + while (this.lookahead.type !== 2 /* EOF */) { + body.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.Module(body)); + }; + Parser.prototype.parseScript = function () { + var node = this.createNode(); + var body = this.parseDirectivePrologues(); + while (this.lookahead.type !== 2 /* EOF */) { + body.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.Script(body)); + }; + // https://tc39.github.io/ecma262/#sec-imports + Parser.prototype.parseModuleSpecifier = function () { + var node = this.createNode(); + if (this.lookahead.type !== 8 /* StringLiteral */) { + this.throwError(messages_1.Messages.InvalidModuleSpecifier); + } + var token = this.nextToken(); + var raw = this.getTokenRaw(token); + return this.finalize(node, new Node.Literal(token.value, raw)); + }; + // import {} ...; + Parser.prototype.parseImportSpecifier = function () { + var node = this.createNode(); + var imported; + var local; + if (this.lookahead.type === 3 /* Identifier */) { + imported = this.parseVariableIdentifier(); + local = imported; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + local = this.parseVariableIdentifier(); + } + } + else { + imported = this.parseIdentifierName(); + local = imported; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + local = this.parseVariableIdentifier(); + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + } + return this.finalize(node, new Node.ImportSpecifier(local, imported)); + }; + // {foo, bar as bas} + Parser.prototype.parseNamedImports = function () { + this.expect('{'); + var specifiers = []; + while (!this.match('}')) { + specifiers.push(this.parseImportSpecifier()); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + return specifiers; + }; + // import ...; + Parser.prototype.parseImportDefaultSpecifier = function () { + var node = this.createNode(); + var local = this.parseIdentifierName(); + return this.finalize(node, new Node.ImportDefaultSpecifier(local)); + }; + // import <* as foo> ...; + Parser.prototype.parseImportNamespaceSpecifier = function () { + var node = this.createNode(); + this.expect('*'); + if (!this.matchContextualKeyword('as')) { + this.throwError(messages_1.Messages.NoAsAfterImportNamespace); + } + this.nextToken(); + var local = this.parseIdentifierName(); + return this.finalize(node, new Node.ImportNamespaceSpecifier(local)); + }; + Parser.prototype.parseImportDeclaration = function () { + if (this.context.inFunctionBody) { + this.throwError(messages_1.Messages.IllegalImportDeclaration); + } + var node = this.createNode(); + this.expectKeyword('import'); + var src; + var specifiers = []; + if (this.lookahead.type === 8 /* StringLiteral */) { + // import 'foo'; + src = this.parseModuleSpecifier(); + } + else { + if (this.match('{')) { + // import {bar} + specifiers = specifiers.concat(this.parseNamedImports()); + } + else if (this.match('*')) { + // import * as foo + specifiers.push(this.parseImportNamespaceSpecifier()); + } + else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) { + // import foo + specifiers.push(this.parseImportDefaultSpecifier()); + if (this.match(',')) { + this.nextToken(); + if (this.match('*')) { + // import foo, * as foo + specifiers.push(this.parseImportNamespaceSpecifier()); + } + else if (this.match('{')) { + // import foo, {bar} + specifiers = specifiers.concat(this.parseNamedImports()); + } + else { + this.throwUnexpectedToken(this.lookahead); + } + } + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + if (!this.matchContextualKeyword('from')) { + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + this.nextToken(); + src = this.parseModuleSpecifier(); + } + this.consumeSemicolon(); + return this.finalize(node, new Node.ImportDeclaration(specifiers, src)); + }; + // https://tc39.github.io/ecma262/#sec-exports + Parser.prototype.parseExportSpecifier = function () { + var node = this.createNode(); + var local = this.parseIdentifierName(); + var exported = local; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + exported = this.parseIdentifierName(); + } + return this.finalize(node, new Node.ExportSpecifier(local, exported)); + }; + Parser.prototype.parseExportDeclaration = function () { + if (this.context.inFunctionBody) { + this.throwError(messages_1.Messages.IllegalExportDeclaration); + } + var node = this.createNode(); + this.expectKeyword('export'); + var exportDeclaration; + if (this.matchKeyword('default')) { + // export default ... + this.nextToken(); + if (this.matchKeyword('function')) { + // export default function foo () {} + // export default function () {} + var declaration = this.parseFunctionDeclaration(true); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else if (this.matchKeyword('class')) { + // export default class foo {} + var declaration = this.parseClassDeclaration(true); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else if (this.matchContextualKeyword('async')) { + // export default async function f () {} + // export default async function () {} + // export default async x => x + var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression(); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else { + if (this.matchContextualKeyword('from')) { + this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value); + } + // export default {}; + // export default []; + // export default (1 + 2); + var declaration = this.match('{') ? this.parseObjectInitializer() : + this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression(); + this.consumeSemicolon(); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + } + else if (this.match('*')) { + // export * from 'foo'; + this.nextToken(); + if (!this.matchContextualKeyword('from')) { + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + this.nextToken(); + var src = this.parseModuleSpecifier(); + this.consumeSemicolon(); + exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src)); + } + else if (this.lookahead.type === 4 /* Keyword */) { + // export var f = 1; + var declaration = void 0; + switch (this.lookahead.value) { + case 'let': + case 'const': + declaration = this.parseLexicalDeclaration({ inFor: false }); + break; + case 'var': + case 'class': + case 'function': + declaration = this.parseStatementListItem(); + break; + default: + this.throwUnexpectedToken(this.lookahead); + } + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); + } + else if (this.matchAsyncFunction()) { + var declaration = this.parseFunctionDeclaration(); + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); + } + else { + var specifiers = []; + var source = null; + var isExportFromIdentifier = false; + this.expect('{'); + while (!this.match('}')) { + isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default'); + specifiers.push(this.parseExportSpecifier()); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + if (this.matchContextualKeyword('from')) { + // export {default} from 'foo'; + // export {foo} from 'foo'; + this.nextToken(); + source = this.parseModuleSpecifier(); + this.consumeSemicolon(); + } + else if (isExportFromIdentifier) { + // export {default}; // missing fromClause + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + else { + // export {foo}; + this.consumeSemicolon(); + } + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source)); + } + return exportDeclaration; + }; + return Parser; + }()); + exports.Parser = Parser; + + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + "use strict"; + // Ensure the condition is true, otherwise throw an error. + // This is only to have a better contract semantic, i.e. another safety net + // to catch a logic error. The condition shall be fulfilled in normal case. + // Do NOT use this to enforce a certain condition on any user input. + Object.defineProperty(exports, "__esModule", { value: true }); + function assert(condition, message) { + /* istanbul ignore if */ + if (!condition) { + throw new Error('ASSERT: ' + message); + } + } + exports.assert = assert; + + +/***/ }, +/* 10 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable:max-classes-per-file */ + Object.defineProperty(exports, "__esModule", { value: true }); + var ErrorHandler = (function () { + function ErrorHandler() { + this.errors = []; + this.tolerant = false; + } + ErrorHandler.prototype.recordError = function (error) { + this.errors.push(error); + }; + ErrorHandler.prototype.tolerate = function (error) { + if (this.tolerant) { + this.recordError(error); + } + else { + throw error; + } + }; + ErrorHandler.prototype.constructError = function (msg, column) { + var error = new Error(msg); + try { + throw error; + } + catch (base) { + /* istanbul ignore else */ + if (Object.create && Object.defineProperty) { + error = Object.create(base); + Object.defineProperty(error, 'column', { value: column }); + } + } + /* istanbul ignore next */ + return error; + }; + ErrorHandler.prototype.createError = function (index, line, col, description) { + var msg = 'Line ' + line + ': ' + description; + var error = this.constructError(msg, col); + error.index = index; + error.lineNumber = line; + error.description = description; + return error; + }; + ErrorHandler.prototype.throwError = function (index, line, col, description) { + throw this.createError(index, line, col, description); + }; + ErrorHandler.prototype.tolerateError = function (index, line, col, description) { + var error = this.createError(index, line, col, description); + if (this.tolerant) { + this.recordError(error); + } + else { + throw error; + } + }; + return ErrorHandler; + }()); + exports.ErrorHandler = ErrorHandler; + + +/***/ }, +/* 11 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // Error messages should be identical to V8. + exports.Messages = { + BadGetterArity: 'Getter must not have any formal parameters', + BadSetterArity: 'Setter must have exactly one formal parameter', + BadSetterRestParameter: 'Setter function argument must not be a rest parameter', + ConstructorIsAsync: 'Class constructor may not be an async method', + ConstructorSpecialMethod: 'Class constructor may not be an accessor', + DeclarationMissingInitializer: 'Missing initializer in %0 declaration', + DefaultRestParameter: 'Unexpected token =', + DuplicateBinding: 'Duplicate binding %0', + DuplicateConstructor: 'A class may only have one constructor', + DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', + ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer', + GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts', + IllegalBreak: 'Illegal break statement', + IllegalContinue: 'Illegal continue statement', + IllegalExportDeclaration: 'Unexpected token', + IllegalImportDeclaration: 'Unexpected token', + IllegalLanguageModeDirective: 'Illegal \'use strict\' directive in function with non-simple parameter list', + IllegalReturn: 'Illegal return statement', + InvalidEscapedReservedWord: 'Keyword must not contain escaped characters', + InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence', + InvalidLHSInAssignment: 'Invalid left-hand side in assignment', + InvalidLHSInForIn: 'Invalid left-hand side in for-in', + InvalidLHSInForLoop: 'Invalid left-hand side in for-loop', + InvalidModuleSpecifier: 'Unexpected token', + InvalidRegExp: 'Invalid regular expression', + LetInLexicalBinding: 'let is disallowed as a lexically bound name', + MissingFromClause: 'Unexpected token', + MultipleDefaultsInSwitch: 'More than one default clause in switch statement', + NewlineAfterThrow: 'Illegal newline after throw', + NoAsAfterImportNamespace: 'Unexpected token', + NoCatchOrFinally: 'Missing catch or finally after try', + ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', + Redeclaration: '%0 \'%1\' has already been declared', + StaticPrototype: 'Classes may not have static property named prototype', + StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', + StrictDelete: 'Delete of an unqualified identifier in strict mode.', + StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block', + StrictFunctionName: 'Function name may not be eval or arguments in strict mode', + StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', + StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', + StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', + StrictModeWith: 'Strict mode code may not include a with statement', + StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', + StrictParamDupe: 'Strict mode function may not have duplicate parameter names', + StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', + StrictReservedWord: 'Use of future reserved word in strict mode', + StrictVarName: 'Variable name may not be eval or arguments in strict mode', + TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', + UnexpectedEOS: 'Unexpected end of input', + UnexpectedIdentifier: 'Unexpected identifier', + UnexpectedNumber: 'Unexpected number', + UnexpectedReserved: 'Unexpected reserved word', + UnexpectedString: 'Unexpected string', + UnexpectedTemplate: 'Unexpected quasi %0', + UnexpectedToken: 'Unexpected token %0', + UnexpectedTokenIllegal: 'Unexpected token ILLEGAL', + UnknownLabel: 'Undefined label \'%0\'', + UnterminatedRegExp: 'Invalid regular expression: missing /' + }; + + +/***/ }, +/* 12 */ +/***/ function(module, exports, __nested_webpack_require_226599_226618__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var assert_1 = __nested_webpack_require_226599_226618__(9); + var character_1 = __nested_webpack_require_226599_226618__(4); + var messages_1 = __nested_webpack_require_226599_226618__(11); + function hexValue(ch) { + return '0123456789abcdef'.indexOf(ch.toLowerCase()); + } + function octalValue(ch) { + return '01234567'.indexOf(ch); + } + var Scanner = (function () { + function Scanner(code, handler) { + this.source = code; + this.errorHandler = handler; + this.trackComment = false; + this.isModule = false; + this.length = code.length; + this.index = 0; + this.lineNumber = (code.length > 0) ? 1 : 0; + this.lineStart = 0; + this.curlyStack = []; + } + Scanner.prototype.saveState = function () { + return { + index: this.index, + lineNumber: this.lineNumber, + lineStart: this.lineStart + }; + }; + Scanner.prototype.restoreState = function (state) { + this.index = state.index; + this.lineNumber = state.lineNumber; + this.lineStart = state.lineStart; + }; + Scanner.prototype.eof = function () { + return this.index >= this.length; + }; + Scanner.prototype.throwUnexpectedToken = function (message) { + if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } + return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); + }; + Scanner.prototype.tolerateUnexpectedToken = function (message) { + if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } + this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); + }; + // https://tc39.github.io/ecma262/#sec-comments + Scanner.prototype.skipSingleLineComment = function (offset) { + var comments = []; + var start, loc; + if (this.trackComment) { + comments = []; + start = this.index - offset; + loc = { + start: { + line: this.lineNumber, + column: this.index - this.lineStart - offset + }, + end: {} + }; + } + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + ++this.index; + if (character_1.Character.isLineTerminator(ch)) { + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart - 1 + }; + var entry = { + multiLine: false, + slice: [start + offset, this.index - 1], + range: [start, this.index - 1], + loc: loc + }; + comments.push(entry); + } + if (ch === 13 && this.source.charCodeAt(this.index) === 10) { + ++this.index; + } + ++this.lineNumber; + this.lineStart = this.index; + return comments; + } + } + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: false, + slice: [start + offset, this.index], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + return comments; + }; + Scanner.prototype.skipMultiLineComment = function () { + var comments = []; + var start, loc; + if (this.trackComment) { + comments = []; + start = this.index - 2; + loc = { + start: { + line: this.lineNumber, + column: this.index - this.lineStart - 2 + }, + end: {} + }; + } + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + if (character_1.Character.isLineTerminator(ch)) { + if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) { + ++this.index; + } + ++this.lineNumber; + ++this.index; + this.lineStart = this.index; + } + else if (ch === 0x2A) { + // Block comment ends with '*/'. + if (this.source.charCodeAt(this.index + 1) === 0x2F) { + this.index += 2; + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: true, + slice: [start + 2, this.index - 2], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + return comments; + } + ++this.index; + } + else { + ++this.index; + } + } + // Ran off the end of the file - the whole thing is a comment + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: true, + slice: [start + 2, this.index], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + this.tolerateUnexpectedToken(); + return comments; + }; + Scanner.prototype.scanComments = function () { + var comments; + if (this.trackComment) { + comments = []; + } + var start = (this.index === 0); + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + if (character_1.Character.isWhiteSpace(ch)) { + ++this.index; + } + else if (character_1.Character.isLineTerminator(ch)) { + ++this.index; + if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) { + ++this.index; + } + ++this.lineNumber; + this.lineStart = this.index; + start = true; + } + else if (ch === 0x2F) { + ch = this.source.charCodeAt(this.index + 1); + if (ch === 0x2F) { + this.index += 2; + var comment = this.skipSingleLineComment(2); + if (this.trackComment) { + comments = comments.concat(comment); + } + start = true; + } + else if (ch === 0x2A) { + this.index += 2; + var comment = this.skipMultiLineComment(); + if (this.trackComment) { + comments = comments.concat(comment); + } + } + else { + break; + } + } + else if (start && ch === 0x2D) { + // U+003E is '>' + if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) { + // '-->' is a single-line comment + this.index += 3; + var comment = this.skipSingleLineComment(3); + if (this.trackComment) { + comments = comments.concat(comment); + } + } + else { + break; + } + } + else if (ch === 0x3C && !this.isModule) { + if (this.source.slice(this.index + 1, this.index + 4) === '!--') { + this.index += 4; // `/g, "")); + } + }); + Object.defineProperty(Window.prototype.toString, "e781468d8e503942bd8a2b5d75e820e3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e781468d8e503942bd8a2b5d75e820e3" due to: ' + e); + } + }, + '(()=>{const t=window.Map.prototype.values,a={apply:(a,e,p)=>{try{const a=Array.from(t.call(e))[0];(a?.parentElement?.matches(".supbar")||a?.matches?.(".rotator"))&&(e=new Map)}catch(t){}return Reflect.apply(a,e,p)}};window.Map.prototype.values=new Proxy(window.Map.prototype.values,a)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d64b4dac3a9d8fa9ed65b3d8c658a01f === e) return; + (()=>{ + const e = window.Map.prototype.values, t = { + apply: (t, a, r)=>{ + try { + var _t_parentElement, _t_matches; + const t = Array.from(e.call(a))[0]; + ((t === null || t === void 0 ? void 0 : (_t_parentElement = t.parentElement) === null || _t_parentElement === void 0 ? void 0 : _t_parentElement.matches(".supbar")) || (t === null || t === void 0 ? void 0 : (_t_matches = t.matches) === null || _t_matches === void 0 ? void 0 : _t_matches.call(t, ".rotator"))) && (a = new Map); + } catch (e) {} + return Reflect.apply(t, a, r); + } + }; + window.Map.prototype.values = new Proxy(window.Map.prototype.values, t); + })(); + Object.defineProperty(Window.prototype.toString, "d64b4dac3a9d8fa9ed65b3d8c658a01f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d64b4dac3a9d8fa9ed65b3d8c658a01f" due to: ' + e); + } + }, + "(function() { var isSet = false; Object.defineProperty(window, 'vas', { get: function() { return isSet ? false : undefined; }, set: function() { isSet = false; } }); })();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d818588d2f70a2feaf95e6d52f17ccbe === e) return; + !function() { + var e = !1; + Object.defineProperty(window, "vas", { + get: function() { + return !e && void 0; + }, + set: function() { + e = !1; + } + }); + }(); + Object.defineProperty(Window.prototype.toString, "d818588d2f70a2feaf95e6d52f17ccbe", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d818588d2f70a2feaf95e6d52f17ccbe" due to: ' + e); + } + }, + "window.trckd = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9694a84d652f8dc20c14bac2f5d04885"] === e) return; + window.trckd = !0; + Object.defineProperty(Window.prototype.toString, "9694a84d652f8dc20c14bac2f5d04885", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9694a84d652f8dc20c14bac2f5d04885" due to: ' + e); + } + }, + "window.ab = false;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4b8a3a3cee481368c865f50cdb63083f"] === e) return; + window.ab = !1; + Object.defineProperty(Window.prototype.toString, "4b8a3a3cee481368c865f50cdb63083f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4b8a3a3cee481368c865f50cdb63083f" due to: ' + e); + } + }, + "window.aadnet = {};": ()=>{ + try { + const d = "done"; + if (Window.prototype.toString["723ed96afa36adad6fac95f60ddc793d"] === d) return; + window.aadnet = {}; + Object.defineProperty(Window.prototype.toString, "723ed96afa36adad6fac95f60ddc793d", { + value: d, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (d) { + console.error('Error executing AG js rule with uniqueId "723ed96afa36adad6fac95f60ddc793d" due to: ' + d); + } + }, + "var isadblock=1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0528f2e6eabb867d601e3b5619e18249"] === e) return; + var isadblock = 1; + Object.defineProperty(Window.prototype.toString, "0528f2e6eabb867d601e3b5619e18249", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0528f2e6eabb867d601e3b5619e18249" due to: ' + e); + } + }, + "function setTimeout() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2fe08ac469bce8e0959ec04f0f994427"] === e) return; + function setTimeout1() {} + Object.defineProperty(Window.prototype.toString, "2fe08ac469bce8e0959ec04f0f994427", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "2fe08ac469bce8e0959ec04f0f994427" due to: ' + t); + } + }, + "var block = false;": ()=>{ + try { + const a = "done"; + if (Window.prototype.toString["84381f8c4a4c9c214a07baa32a8b8a38"] === a) return; + var block = !1; + Object.defineProperty(Window.prototype.toString, "84381f8c4a4c9c214a07baa32a8b8a38", { + value: a, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (a) { + console.error('Error executing AG js rule with uniqueId "84381f8c4a4c9c214a07baa32a8b8a38" due to: ' + a); + } + }, + "window.setTimeout=function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["61f2a933309703d6e7d9383e4428a8e6"] === e) return; + window.setTimeout = function() {}; + Object.defineProperty(Window.prototype.toString, "61f2a933309703d6e7d9383e4428a8e6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "61f2a933309703d6e7d9383e4428a8e6" due to: ' + e); + } + }, + "var canRunAds = true;": ()=>{ + try { + const c = "done"; + if (Window.prototype.toString["8a68886c66c8ca4dccac563705f5891c"] === c) return; + var canRunAds = !0; + Object.defineProperty(Window.prototype.toString, "8a68886c66c8ca4dccac563705f5891c", { + value: c, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (c) { + console.error('Error executing AG js rule with uniqueId "8a68886c66c8ca4dccac563705f5891c" due to: ' + c); + } + }, + "Element.prototype.attachShadow = function(){};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["34432d844bc8123e149136a1ccd4dca3"] === e) return; + Element.prototype.attachShadow = function() {}; + Object.defineProperty(Window.prototype.toString, "34432d844bc8123e149136a1ccd4dca3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "34432d844bc8123e149136a1ccd4dca3" due to: ' + e); + } + }, + "window.atob = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["1dd67b659846dea638d69419abe06c73"] === e) return; + window.atob = function() {}; + Object.defineProperty(Window.prototype.toString, "1dd67b659846dea638d69419abe06c73", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "1dd67b659846dea638d69419abe06c73" due to: ' + e); + } + }, + "(function() { var intervalId = 0; var blockAds = function() { try { if (typeof BeSeedRotator != 'undefined' && BeSeedRotator.Container.player) { clearInterval(intervalId); BeSeedRotator.showDismissButton(); BeSeedRotator.reCache(); } } catch (ex) {} }; intervalId = setInterval(blockAds, 100); })();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["52c186b38202f876b11210bbe1307dcf"] === e) return; + !function() { + var e = 0; + e = setInterval(function() { + try { + if ("undefined" != typeof BeSeedRotator && BeSeedRotator.Container.player) { + clearInterval(e); + BeSeedRotator.showDismissButton(); + BeSeedRotator.reCache(); + } + } catch (e) {} + }, 100); + }(); + Object.defineProperty(Window.prototype.toString, "52c186b38202f876b11210bbe1307dcf", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "52c186b38202f876b11210bbe1307dcf" due to: ' + e); + } + }, + '(function(){var getElementsByTagName=document.getElementsByTagName;document.getElementsByTagName=function(tagName){if(tagName=="script")return[];return getElementsByTagName.call(this,tagName)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b1d2d1ecc236da7e56f0c6627c80f309 === e) return; + !function() { + var e = document.getElementsByTagName; + document.getElementsByTagName = function(t) { + return "script" == t ? [] : e.call(this, t); + }; + }(); + Object.defineProperty(Window.prototype.toString, "b1d2d1ecc236da7e56f0c6627c80f309", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b1d2d1ecc236da7e56f0c6627c80f309" due to: ' + e); + } + }, + '(function(){var b={};(function(a,c,d){"undefined"!==typeof window[a]?window[a][c]=d:Object.defineProperty(window,a,{get:function(){return b[a]},set:function(e){b[a]=e;e[c]=d}})})("authConfig","adfox",[])})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f08e1e484fb2ed477eff5477b270c3ab === e) return; + !function() { + var e, o, t, n1 = {}; + e = "authConfig", o = "adfox", t = [], void 0 !== window[e] ? window[e][o] = t : Object.defineProperty(window, e, { + get: function() { + return n1[e]; + }, + set: function(r) { + n1[e] = r; + r[o] = t; + } + }); + }(); + Object.defineProperty(Window.prototype.toString, "f08e1e484fb2ed477eff5477b270c3ab", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f08e1e484fb2ed477eff5477b270c3ab" due to: ' + e); + } + }, + "document.addEventListener('click',function(e){var t=e.target.closest('.click_coupons_code');if(!t)return;e.stopPropagation();e.preventDefault();var u=t.dataset.hrefAlt||null;if(u)location.href=u},true);": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.dd29b63b5d4d49aaa50e088388b6539b === e) return; + document.addEventListener("click", function(e) { + var t = e.target.closest(".click_coupons_code"); + if (t) { + e.stopPropagation(); + e.preventDefault(); + var o = t.dataset.hrefAlt || null; + o && (location.href = o); + } + }, !0); + Object.defineProperty(Window.prototype.toString, "dd29b63b5d4d49aaa50e088388b6539b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "dd29b63b5d4d49aaa50e088388b6539b" due to: ' + e); + } + }, + "(function(){var i=setInterval(function(){var f=window.CashbackOpenCouponGlobal;if(f){window.CashbackOpenCouponGlobal=function(a){if(a&&a.IS_CODE){try{Cookies.set('CASHBACK_OPEN_OFFER',a.ID,{expires:new Date(Date.now()+1800000)});Cookies.set('CASHBACK_SCROLL_TOP',window.scrollY,{expires:new Date(Date.now()+1800000)})}catch(e){}var u=new URL(location.href);u.hash='';u.searchParams.delete('ncc');u.searchParams.delete('pr');u.searchParams.set('ncc','1');location.href=u.toString();return}return f(a)};clearInterval(i)}},5)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e80c2ebcba2ebb31126bf54b39c993de === e) return; + !function() { + var e = setInterval(function() { + var o = window.CashbackOpenCouponGlobal; + if (o) { + window.CashbackOpenCouponGlobal = function(e) { + if (!e || !e.IS_CODE) return o(e); + try { + Cookies.set("CASHBACK_OPEN_OFFER", e.ID, { + expires: new Date(Date.now() + 18e5) + }); + Cookies.set("CASHBACK_SCROLL_TOP", window.scrollY, { + expires: new Date(Date.now() + 18e5) + }); + } catch (e) {} + var r = new URL(location.href); + r.hash = ""; + r.searchParams.delete("ncc"); + r.searchParams.delete("pr"); + r.searchParams.set("ncc", "1"); + location.href = r.toString(); + }; + clearInterval(e); + } + }, 5); + }(); + Object.defineProperty(Window.prototype.toString, "e80c2ebcba2ebb31126bf54b39c993de", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e80c2ebcba2ebb31126bf54b39c993de" due to: ' + e); + } + }, + '!function(){const p={apply:(p,e,n)=>{const r=Reflect.apply(p,e,n),s=r?.[0]?.props?.data;return s&&null===s.user&&(r[0].props.data.user="guest"),r}};window.JSON.parse=new Proxy(window.JSON.parse,p)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ff8cf9783100a66d151550ce6ced34a2 === e) return; + !function() { + const e = { + apply: (e, r, t)=>{ + var _o__props, _o_; + const o = Reflect.apply(e, r, t), n1 = o === null || o === void 0 ? void 0 : (_o_ = o[0]) === null || _o_ === void 0 ? void 0 : (_o__props = _o_.props) === null || _o__props === void 0 ? void 0 : _o__props.data; + return n1 && null === n1.user && (o[0].props.data.user = "guest"), o; + } + }; + window.JSON.parse = new Proxy(window.JSON.parse, e); + }(); + Object.defineProperty(Window.prototype.toString, "ff8cf9783100a66d151550ce6ced34a2", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ff8cf9783100a66d151550ce6ced34a2" due to: ' + e); + } + }, + "(()=>{const a={apply:(a,t,r)=>{try{!0===r[0]?.parameters?.[1]?.autoplay&&(r[0].parameters[1].autoplay=!1)}catch(a){console.trace(a)}return Reflect.apply(a,t,r)}};window.JSON.stringify=new Proxy(window.JSON.stringify,a)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4f79921d4ac95552f4af81dfd58692a0"] === e) return; + (()=>{ + const e = { + apply: (e, r, t)=>{ + try { + var _t__parameters_, _t__parameters, _t_; + !0 === ((_t_ = t[0]) === null || _t_ === void 0 ? void 0 : (_t__parameters = _t_.parameters) === null || _t__parameters === void 0 ? void 0 : (_t__parameters_ = _t__parameters[1]) === null || _t__parameters_ === void 0 ? void 0 : _t__parameters_.autoplay) && (t[0].parameters[1].autoplay = !1); + } catch (e) { + console.trace(e); + } + return Reflect.apply(e, r, t); + } + }; + window.JSON.stringify = new Proxy(window.JSON.stringify, e); + })(); + Object.defineProperty(Window.prototype.toString, "4f79921d4ac95552f4af81dfd58692a0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4f79921d4ac95552f4af81dfd58692a0" due to: ' + e); + } + }, + '(()=>{const a=(a,b,c)=>{const d=Reflect.apply(a,b,c),e="div[id^=\'atf\']:empty { display: none !important; }";if("adoptedStyleSheets"in document){const a=new CSSStyleSheet;a.replaceSync(e),d.adoptedStyleSheets=[a]}else{const a=document.createElement("style");a.innerText=e,d.appendChild(a)}return d};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,{apply:a})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b8fa834f4adf06d6a85a989a38de37be === e) return; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, { + apply: (e, t, a)=>{ + const o = Reflect.apply(e, t, a), n1 = "div[id^='atf']:empty { display: none !important; }"; + if ("adoptedStyleSheets" in document) { + const e = new CSSStyleSheet; + e.replaceSync(n1), o.adoptedStyleSheets = [ + e + ]; + } else { + const e = document.createElement("style"); + e.innerText = n1, o.appendChild(e); + } + return o; + } + }); + Object.defineProperty(Window.prototype.toString, "b8fa834f4adf06d6a85a989a38de37be", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b8fa834f4adf06d6a85a989a38de37be" due to: ' + e); + } + }, + "window.samDetected = false;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c377d77d43a05809c9a0d8a9ceab3d41 === e) return; + window.samDetected = !1; + Object.defineProperty(Window.prototype.toString, "c377d77d43a05809c9a0d8a9ceab3d41", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c377d77d43a05809c9a0d8a9ceab3d41" due to: ' + e); + } + }, + "var _amw1 = 1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["18c5b42ee23d66b2e421249a57fa79b6"] === e) return; + var _amw1 = 1; + Object.defineProperty(Window.prototype.toString, "18c5b42ee23d66b2e421249a57fa79b6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "18c5b42ee23d66b2e421249a57fa79b6" due to: ' + e); + } + }, + "var AdmostClient = 1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["68f39c1ee25950ec0093a17497f1746a"] === e) return; + var AdmostClient = 1; + Object.defineProperty(Window.prototype.toString, "68f39c1ee25950ec0093a17497f1746a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "68f39c1ee25950ec0093a17497f1746a" due to: ' + e); + } + }, + "var advertisement_not_blocked = 1;": ()=>{ + try { + const d = "done"; + if (Window.prototype.toString["7d86fff0df182d87d917f92dd5565564"] === d) return; + var advertisement_not_blocked = 1; + Object.defineProperty(Window.prototype.toString, "7d86fff0df182d87d917f92dd5565564", { + value: d, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (d) { + console.error('Error executing AG js rule with uniqueId "7d86fff0df182d87d917f92dd5565564" due to: ' + d); + } + }, + "var criteo_medyanet_loaded = 1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["36a1a7ba76fefd6b56dea5d5a3260cf4"] === e) return; + var criteo_medyanet_loaded = 1; + Object.defineProperty(Window.prototype.toString, "36a1a7ba76fefd6b56dea5d5a3260cf4", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "36a1a7ba76fefd6b56dea5d5a3260cf4" due to: ' + e); + } + }, + '(function(){var b=window.setTimeout;window.setTimeout=function(a,c){if(!/RTCPeerConnection[\\s\\S]*?new MouseEvent\\("click"/.test(a.toString()))return b(a,c)};})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ad3cc2fb594ccbd52529466a1f774118 === e) return; + !function() { + var e = window.setTimeout; + window.setTimeout = function(t, o) { + if (!/RTCPeerConnection[\s\S]*?new MouseEvent\("click"/.test(t.toString())) return e(t, o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "ad3cc2fb594ccbd52529466a1f774118", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ad3cc2fb594ccbd52529466a1f774118" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{"function"==typeof load_3rdparties&&load_3rdparties()}));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d32c830c0e926685887f2481f9379565 === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + "function" == typeof load_3rdparties && load_3rdparties(); + }); + Object.defineProperty(Window.prototype.toString, "d32c830c0e926685887f2481f9379565", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d32c830c0e926685887f2481f9379565" due to: ' + e); + } + }, + '!function(){if(-1{ + try { + const o = "done"; + if (Window.prototype.toString["8286156f54f298badd47131511830b06"] === o) return; + !function() { + if (-1 < window.location.href.indexOf("/?u=aHR0c")) { + var o = location.href.split("/?u="); + if (o[1]) try { + window.location = atob(o[1]); + } catch (o) {} + } + }(); + Object.defineProperty(Window.prototype.toString, "8286156f54f298badd47131511830b06", { + value: o, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (o) { + console.error('Error executing AG js rule with uniqueId "8286156f54f298badd47131511830b06" due to: ' + o); + } + }, + 'document.cookie="modalads=yes; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["48f46432b0c186dccc332dff0c8a87fe"] === e) return; + document.cookie = "modalads=yes; path=/;"; + Object.defineProperty(Window.prototype.toString, "48f46432b0c186dccc332dff0c8a87fe", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "48f46432b0c186dccc332dff0c8a87fe" due to: ' + e); + } + }, + "if(window.sessionStorage) { window.sessionStorage.pageCount = 0; }": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["96c1872f8a0322e86045b358d415f5c4"] === e) return; + window.sessionStorage && (window.sessionStorage.pageCount = 0); + Object.defineProperty(Window.prototype.toString, "96c1872f8a0322e86045b358d415f5c4", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "96c1872f8a0322e86045b358d415f5c4" due to: ' + e); + } + }, + 'setTimeout ("HideFloatAdBanner()", 1000);': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["56182d371d85af85aa5af8cbd48e5b34"] === e) return; + setTimeout("HideFloatAdBanner()", 1e3); + Object.defineProperty(Window.prototype.toString, "56182d371d85af85aa5af8cbd48e5b34", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "56182d371d85af85aa5af8cbd48e5b34" due to: ' + e); + } + }, + '!function(){const e={apply:(e,t,n)=>(n&&n[1]&&"useAdBlockerDetector"===n[1]&&n[2]&&n[2].get&&(n[2].get=function(){return function(){return!1}}),Reflect.apply(e,t,n))};window.Object.defineProperty=new Proxy(window.Object.defineProperty,e)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["121f6100a828e1c169bfff6bafc69bfd"] === e) return; + !function() { + const e = { + apply: (e, t, r)=>(r && r[1] && "useAdBlockerDetector" === r[1] && r[2] && r[2].get && (r[2].get = function() { + return function() { + return !1; + }; + }), Reflect.apply(e, t, r)) + }; + window.Object.defineProperty = new Proxy(window.Object.defineProperty, e); + }(); + Object.defineProperty(Window.prototype.toString, "121f6100a828e1c169bfff6bafc69bfd", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "121f6100a828e1c169bfff6bafc69bfd" due to: ' + e); + } + }, + "window.google_tag_manager = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["62de8ad86c59d0b7297a578a18ec0db3"] === e) return; + window.google_tag_manager = function() {}; + Object.defineProperty(Window.prototype.toString, "62de8ad86c59d0b7297a578a18ec0db3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "62de8ad86c59d0b7297a578a18ec0db3" due to: ' + e); + } + }, + "(()=>{const e=function(){};window.tC={privacy:{getOptinCategories:e,cookieData:[]},addConsentChangeListener:e,removeConsentChangeListener:e,container:{reload:e}},window.tc_events_global=e})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["3e6ad3ca98205e8e015d731852c14ada"] === e) return; + (()=>{ + const e = function() {}; + window.tC = { + privacy: { + getOptinCategories: e, + cookieData: [] + }, + addConsentChangeListener: e, + removeConsentChangeListener: e, + container: { + reload: e + } + }, window.tc_events_global = e; + })(); + Object.defineProperty(Window.prototype.toString, "3e6ad3ca98205e8e015d731852c14ada", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "3e6ad3ca98205e8e015d731852c14ada" due to: ' + e); + } + }, + '(()=>{window.TATM=window.TATM||{},TATM.init=()=>{},TATM.initAdUnits=()=>{},TATM.pageReady=()=>{},TATM.getVast=function(n){return new Promise((n=>{n()}))},TATM.push=function(n){if("function"==typeof n)try{n()}catch(n){console.debug(n)}};})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["103de1b5e23e730a477b9b7da10564a4"] === e) return; + window.TATM = window.TATM || {}, TATM.init = ()=>{}, TATM.initAdUnits = ()=>{}, TATM.pageReady = ()=>{}, TATM.getVast = function(e) { + return new Promise((e)=>{ + e(); + }); + }, TATM.push = function(e) { + if ("function" == typeof e) try { + e(); + } catch (e) { + console.debug(e); + } + }; + Object.defineProperty(Window.prototype.toString, "103de1b5e23e730a477b9b7da10564a4", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "103de1b5e23e730a477b9b7da10564a4" due to: ' + e); + } + }, + '(()=>{document.location.href.includes("/pop_advisor")&&window.addEventListener("load",()=>{const e=new CustomEvent("visibilitychange"),t=t=>{Object.defineProperty(t.view.top.document,"hidden",{value:!0,writable:!0}),t.view.top.document.dispatchEvent(e),setTimeout((()=>{Object.defineProperty(t.view.top.document,"hidden",{value:!1,writable:!0}),t.view.top.document.dispatchEvent(e)}),100)},n=document.querySelector("button.btn-continu");n&&n.addEventListener("click",t)});})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["962185cb0a55f058eae7c7389bbc7327"] === e) return; + document.location.href.includes("/pop_advisor") && window.addEventListener("load", ()=>{ + const e = new CustomEvent("visibilitychange"), t = document.querySelector("button.btn-continu"); + t && t.addEventListener("click", (t)=>{ + Object.defineProperty(t.view.top.document, "hidden", { + value: !0, + writable: !0 + }), t.view.top.document.dispatchEvent(e), setTimeout(()=>{ + Object.defineProperty(t.view.top.document, "hidden", { + value: !1, + writable: !0 + }), t.view.top.document.dispatchEvent(e); + }, 100); + }); + }); + Object.defineProperty(Window.prototype.toString, "962185cb0a55f058eae7c7389bbc7327", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "962185cb0a55f058eae7c7389bbc7327" due to: ' + e); + } + }, + '(()=>{document.location.href.includes("/iframe_ad")&&window.addEventListener("load",(()=>{const e=new CustomEvent("visibilitychange"),t=()=>{Object.defineProperty(document,"hidden",{value:!0,writable:!0}),document.dispatchEvent(e),setTimeout((()=>{Object.defineProperty(document,"hidden",{value:!1,writable:!0}),document.dispatchEvent(e)}),100)},n=document.querySelector("a.btn-ad-iframe");n&&n.addEventListener("click",t)}));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a715b406996eaeeeaf44515461187620 === e) return; + document.location.href.includes("/iframe_ad") && window.addEventListener("load", ()=>{ + const e = new CustomEvent("visibilitychange"), t = document.querySelector("a.btn-ad-iframe"); + t && t.addEventListener("click", ()=>{ + Object.defineProperty(document, "hidden", { + value: !0, + writable: !0 + }), document.dispatchEvent(e), setTimeout(()=>{ + Object.defineProperty(document, "hidden", { + value: !1, + writable: !0 + }), document.dispatchEvent(e); + }, 100); + }); + }); + Object.defineProperty(Window.prototype.toString, "a715b406996eaeeeaf44515461187620", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a715b406996eaeeeaf44515461187620" due to: ' + e); + } + }, + '(function(){var a={cmd:[],public:{getVideoAdUrl:function(){},createNewPosition:function(){},refreshAds:function(){},setTargetingOnPosition:function(){},getDailymotionAdsParamsForScript:function(c,a){if("function"==typeof a)try{if(1===a.length){a({})}}catch(a){}}}};a.cmd.push=function(b){let a=function(){try{"function"==typeof b&&b()}catch(a){}};"complete"===document.readyState?a():window.addEventListener("load",()=>{a()})},window.jad=a})();': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["176456e95ac0c8ff1ac49bbf30461c8b"] === t) return; + !function() { + var t = { + cmd: [], + public: { + getVideoAdUrl: function() {}, + createNewPosition: function() {}, + refreshAds: function() {}, + setTargetingOnPosition: function() {}, + getDailymotionAdsParamsForScript: function(t, e) { + if ("function" == typeof e) try { + 1 === e.length && e({}); + } catch (e) {} + } + } + }; + t.cmd.push = function(t) { + let e = function() { + try { + "function" == typeof t && t(); + } catch (t) {} + }; + "complete" === document.readyState ? e() : window.addEventListener("load", ()=>{ + e(); + }); + }, window.jad = t; + }(); + Object.defineProperty(Window.prototype.toString, "176456e95ac0c8ff1ac49bbf30461c8b", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "176456e95ac0c8ff1ac49bbf30461c8b" due to: ' + t); + } + }, + "var _st = window.setTimeout; window.setTimeout = function(a, b) { if(!/target_url/.test(a)){ _st(a,b);}};": ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["315672b76833d426a2a0b83c85c50797"] === t) return; + var _st = window.setTimeout; + window.setTimeout = function(t, e) { + /target_url/.test(t) || _st(t, e); + }; + Object.defineProperty(Window.prototype.toString, "315672b76833d426a2a0b83c85c50797", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "315672b76833d426a2a0b83c85c50797" due to: ' + t); + } + }, + '(function(){let callCounter=0;const nativeJSONParse=JSON.parse;const handler={apply(){callCounter++;const obj=Reflect.apply(...arguments);if(callCounter<=10){if(obj.hasOwnProperty("appName")){if(obj.applaunch?.data?.player?.features?.ad?.enabled){obj.applaunch.data.player.features.ad.enabled=false}if(obj.applaunch?.data?.player?.features?.ad?.dai?.enabled){obj.applaunch.data.player.features.ad.dai.enabled=false}}}else{JSON.parse=nativeJSONParse}return obj}};JSON.parse=new Proxy(JSON.parse,handler)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["03b60dbf8e3b5b8f2423393210afcf06"] === e) return; + !function() { + let e = 0; + const a = JSON.parse, r = { + apply () { + e++; + const r = Reflect.apply(...arguments); + if (e <= 10) { + if (r.hasOwnProperty("appName")) { + var _r_applaunch_data_player_features_ad, _r_applaunch_data_player_features, _r_applaunch_data_player, _r_applaunch_data, _r_applaunch, _r_applaunch_data_player_features_ad_dai, _r_applaunch_data_player_features_ad1, _r_applaunch_data_player_features1, _r_applaunch_data_player1, _r_applaunch_data1, _r_applaunch1; + ((_r_applaunch = r.applaunch) === null || _r_applaunch === void 0 ? void 0 : (_r_applaunch_data = _r_applaunch.data) === null || _r_applaunch_data === void 0 ? void 0 : (_r_applaunch_data_player = _r_applaunch_data.player) === null || _r_applaunch_data_player === void 0 ? void 0 : (_r_applaunch_data_player_features = _r_applaunch_data_player.features) === null || _r_applaunch_data_player_features === void 0 ? void 0 : (_r_applaunch_data_player_features_ad = _r_applaunch_data_player_features.ad) === null || _r_applaunch_data_player_features_ad === void 0 ? void 0 : _r_applaunch_data_player_features_ad.enabled) && (r.applaunch.data.player.features.ad.enabled = !1); + ((_r_applaunch1 = r.applaunch) === null || _r_applaunch1 === void 0 ? void 0 : (_r_applaunch_data1 = _r_applaunch1.data) === null || _r_applaunch_data1 === void 0 ? void 0 : (_r_applaunch_data_player1 = _r_applaunch_data1.player) === null || _r_applaunch_data_player1 === void 0 ? void 0 : (_r_applaunch_data_player_features1 = _r_applaunch_data_player1.features) === null || _r_applaunch_data_player_features1 === void 0 ? void 0 : (_r_applaunch_data_player_features_ad1 = _r_applaunch_data_player_features1.ad) === null || _r_applaunch_data_player_features_ad1 === void 0 ? void 0 : (_r_applaunch_data_player_features_ad_dai = _r_applaunch_data_player_features_ad1.dai) === null || _r_applaunch_data_player_features_ad_dai === void 0 ? void 0 : _r_applaunch_data_player_features_ad_dai.enabled) && (r.applaunch.data.player.features.ad.dai.enabled = !1); + } + } else JSON.parse = a; + return r; + } + }; + JSON.parse = new Proxy(JSON.parse, r); + }(); + Object.defineProperty(Window.prototype.toString, "03b60dbf8e3b5b8f2423393210afcf06", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "03b60dbf8e3b5b8f2423393210afcf06" due to: ' + e); + } + }, + "(function(){let callCounter=0;const nativeJSONParse=JSON.parse;const handler={apply(){callCounter++;const obj=Reflect.apply(...arguments);if(callCounter<=10){if(obj.hasOwnProperty('env')&&obj.env.hasOwnProperty('origin')){if(!obj.hasOwnProperty('ads')){obj.ads={};}obj.ads.enable=false;obj.ads._prerolls=false;obj.ads._midrolls=false;}}else{JSON.parse=nativeJSONParse;}return obj;}};JSON.parse=new Proxy(JSON.parse,handler);})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["076ec28f8d5bd40b7dc4be56dc82b841"] === e) return; + !function() { + let e = 0; + const r = JSON.parse, o = { + apply () { + e++; + const o = Reflect.apply(...arguments); + if (e <= 10) { + if (o.hasOwnProperty("env") && o.env.hasOwnProperty("origin")) { + o.hasOwnProperty("ads") || (o.ads = {}); + o.ads.enable = !1; + o.ads._prerolls = !1; + o.ads._midrolls = !1; + } + } else JSON.parse = r; + return o; + } + }; + JSON.parse = new Proxy(JSON.parse, o); + }(); + Object.defineProperty(Window.prototype.toString, "076ec28f8d5bd40b7dc4be56dc82b841", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "076ec28f8d5bd40b7dc4be56dc82b841" due to: ' + e); + } + }, + '(()=>{if(location.href.includes("cdn.sirdata.eu/load_with_tcf.php?url=https")){const a=new URLSearchParams(location.search).get("url");a&&location.assign(a)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ca7a8176701e7a23e0d4c73706555161 === e) return; + (()=>{ + if (location.href.includes("cdn.sirdata.eu/load_with_tcf.php?url=https")) { + const e = new URLSearchParams(location.search).get("url"); + e && location.assign(e); + } + })(); + Object.defineProperty(Window.prototype.toString, "ca7a8176701e7a23e0d4c73706555161", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ca7a8176701e7a23e0d4c73706555161" due to: ' + e); + } + }, + '(()=>{window.patroniteGdprData={google_recaptcha:"allow"}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.fc25d8c99ebbbc3be6aedb39d0c00819 === e) return; + window.patroniteGdprData = { + google_recaptcha: "allow" + }; + Object.defineProperty(Window.prototype.toString, "fc25d8c99ebbbc3be6aedb39d0c00819", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "fc25d8c99ebbbc3be6aedb39d0c00819" due to: ' + e); + } + }, + '(()=>{let t,e=!1;const o=new MutationObserver(((e,o)=>{const c=t?.querySelector(\'cmp-button[variant="primary"]\');c&&(c.click(),o.disconnect())})),c={apply:(c,n,a)=>{const r=Reflect.apply(c,n,a);return!e&&n.matches("cmp-dialog")&&(e=!0,t=r),o.observe(r,{subtree:!0,childList:!0}),r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9318631bdeb75b748ea1cad12107b17a"] === e) return; + (()=>{ + let e, t = !1; + const o = new MutationObserver((t, o)=>{ + const r = e === null || e === void 0 ? void 0 : e.querySelector('cmp-button[variant="primary"]'); + r && (r.click(), o.disconnect()); + }), r = { + apply: (r, a, n1)=>{ + const c = Reflect.apply(r, a, n1); + return !t && a.matches("cmp-dialog") && (t = !0, e = c), o.observe(c, { + subtree: !0, + childList: !0 + }), c; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, r); + })(); + Object.defineProperty(Window.prototype.toString, "9318631bdeb75b748ea1cad12107b17a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9318631bdeb75b748ea1cad12107b17a" due to: ' + e); + } + }, + '(()=>{let t;const e=new MutationObserver(((e,o)=>{const n=t?.querySelector(\'button[data-testid="button-agree"]\');n&&(setTimeout((()=>{n.click()}),500),o.disconnect())})),o={apply:(o,n,c)=>{const a=Reflect.apply(o,n,c);return n.matches(".szn-cmp-dialog-container")&&(t=a),e.observe(a,{subtree:!0,childList:!0}),a}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,o)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2bca593aa0d901f23a66e9e0ba973abc"] === e) return; + (()=>{ + let e; + const t = new MutationObserver((t, a)=>{ + const o = e === null || e === void 0 ? void 0 : e.querySelector('button[data-testid="button-agree"]'); + o && (setTimeout(()=>{ + o.click(); + }, 500), a.disconnect()); + }), a = { + apply: (a, o, r)=>{ + const n1 = Reflect.apply(a, o, r); + return o.matches(".szn-cmp-dialog-container") && (e = n1), t.observe(n1, { + subtree: !0, + childList: !0 + }), n1; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, a); + })(); + Object.defineProperty(Window.prototype.toString, "2bca593aa0d901f23a66e9e0ba973abc", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2bca593aa0d901f23a66e9e0ba973abc" due to: ' + e); + } + }, + '(function(){var noopFunc=function(){};var tcData={eventStatus:"tcloaded",gdprApplies:!1,listenerId:noopFunc,vendor:{consents:{967:true}},purpose:{consents:[]}};window.__tcfapi=function(command,version,callback){"function"==typeof callback&&"removeEventListener"!==command&&callback(tcData,!0)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["905285a22b2c90f963ab16245e1f463b"] === e) return; + !function() { + var e = { + eventStatus: "tcloaded", + gdprApplies: !1, + listenerId: function() {}, + vendor: { + consents: { + 967: !0 + } + }, + purpose: { + consents: [] + } + }; + window.__tcfapi = function(t, n1, o) { + "function" == typeof o && "removeEventListener" !== t && o(e, !0); + }; + }(); + Object.defineProperty(Window.prototype.toString, "905285a22b2c90f963ab16245e1f463b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "905285a22b2c90f963ab16245e1f463b" due to: ' + e); + } + }, + 'document.cookie="PostAnalytics=inactive; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["8dd64e0e5c7cfb7ada0186747714df1b"] === e) return; + document.cookie = "PostAnalytics=inactive; path=/;"; + Object.defineProperty(Window.prototype.toString, "8dd64e0e5c7cfb7ada0186747714df1b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "8dd64e0e5c7cfb7ada0186747714df1b" due to: ' + e); + } + }, + "document.cookie='cmplz_consented_services={\"youtube\":true};path=/;';": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["8cbd0cd2ffcfd41b8dd501b4861c18e3"] === e) return; + document.cookie = 'cmplz_consented_services={"youtube":true};path=/;'; + Object.defineProperty(Window.prototype.toString, "8cbd0cd2ffcfd41b8dd501b4861c18e3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "8cbd0cd2ffcfd41b8dd501b4861c18e3" due to: ' + e); + } + }, + '(function(){if(!document.cookie.includes("CookieInformationConsent=")){var a=encodeURIComponent(\'{"website_uuid":"","timestamp":"","consent_url":"","consent_website":"jysk.nl","consent_domain":"jysk.nl","user_uid":"","consents_approved":["cookie_cat_necessary","cookie_cat_functional","cookie_cat_statistic"],"consents_denied":[],"user_agent":""}\');document.cookie="CookieInformationConsent="+a+"; path=/;"}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4e7a66fe06a58f87f9deb67cb85b8a2c"] === e) return; + !function() { + if (!document.cookie.includes("CookieInformationConsent=")) { + var e = encodeURIComponent('{"website_uuid":"","timestamp":"","consent_url":"","consent_website":"jysk.nl","consent_domain":"jysk.nl","user_uid":"","consents_approved":["cookie_cat_necessary","cookie_cat_functional","cookie_cat_statistic"],"consents_denied":[],"user_agent":""}'); + document.cookie = "CookieInformationConsent=" + e + "; path=/;"; + } + }(); + Object.defineProperty(Window.prototype.toString, "4e7a66fe06a58f87f9deb67cb85b8a2c", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4e7a66fe06a58f87f9deb67cb85b8a2c" due to: ' + e); + } + }, + 'document.cookie=\'cookie_consent_level={"functionality":true,"strictly-necessary":true,"targeting":false,"tracking":false}; path=/;\';': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.bee65ec0755ccff706db52148c4173c7 === e) return; + document.cookie = 'cookie_consent_level={"functionality":true,"strictly-necessary":true,"targeting":false,"tracking":false}; path=/;'; + Object.defineProperty(Window.prototype.toString, "bee65ec0755ccff706db52148c4173c7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "bee65ec0755ccff706db52148c4173c7" due to: ' + e); + } + }, + '(function(){try{var a=location.pathname.split("/")[1],b="dra_cookie_consent_allowed_"+a,c=new RegExp(/[a-z]+_[a-z]+/);if(!document.cookie.includes(b)&&c.test(a)){var d=encodeURIComponent("v=1&t=1&f=1&s=0&m=0");document.cookie=b+"="+d+"; path=/;"}}catch(e){}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["89284264a9e746e269120c04d8e07578"] === e) return; + !function() { + try { + var e = location.pathname.split("/")[1], o = "dra_cookie_consent_allowed_" + e, t = new RegExp(/[a-z]+_[a-z]+/); + if (!document.cookie.includes(o) && t.test(e)) { + var n1 = encodeURIComponent("v=1&t=1&f=1&s=0&m=0"); + document.cookie = o + "=" + n1 + "; path=/;"; + } + } catch (e) {} + }(); + Object.defineProperty(Window.prototype.toString, "89284264a9e746e269120c04d8e07578", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "89284264a9e746e269120c04d8e07578" due to: ' + e); + } + }, + 'document.cookie="dw_cookies_accepted=D; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["65ddec250513cfa895af9e691c980515"] === e) return; + document.cookie = "dw_cookies_accepted=D; path=/;"; + Object.defineProperty(Window.prototype.toString, "65ddec250513cfa895af9e691c980515", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "65ddec250513cfa895af9e691c980515" due to: ' + e); + } + }, + '(function(){document.cookie.includes("cookies-consents")||(document.cookie=\'cookies-consents={"ad_storage":false,"analytics_storage":false}\')})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ccaa77db2be3c96b3a11b73a501af1f1 === e) return; + document.cookie.includes("cookies-consents") || (document.cookie = 'cookies-consents={"ad_storage":false,"analytics_storage":false}'); + Object.defineProperty(Window.prototype.toString, "ccaa77db2be3c96b3a11b73a501af1f1", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ccaa77db2be3c96b3a11b73a501af1f1" due to: ' + e); + } + }, + 'document.cookie="ubCmpSettings=eyJnZW1laW5kZW5fc2VsZWN0ZWRfdmFsdWUiOnRydWUsImdvb2dsZV9hbmFseXRpY3MiOmZhbHNlLCJhZF90cmFja2luZyI6ZmFsc2UsInNvY2lhbF9lbWJlZHMiOnRydWV9;path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["58bc9348bcf4f1f2b6163529b3298384"] === e) return; + document.cookie = "ubCmpSettings=eyJnZW1laW5kZW5fc2VsZWN0ZWRfdmFsdWUiOnRydWUsImdvb2dsZV9hbmFseXRpY3MiOmZhbHNlLCJhZF90cmFja2luZyI6ZmFsc2UsInNvY2lhbF9lbWJlZHMiOnRydWV9;path=/;"; + Object.defineProperty(Window.prototype.toString, "58bc9348bcf4f1f2b6163529b3298384", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "58bc9348bcf4f1f2b6163529b3298384" due to: ' + e); + } + }, + 'document.cookie="cookieconsent_status=allow; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["95e24d457a7de10b441b7cbe6b509b42"] === e) return; + document.cookie = "cookieconsent_status=allow; path=/;"; + Object.defineProperty(Window.prototype.toString, "95e24d457a7de10b441b7cbe6b509b42", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "95e24d457a7de10b441b7cbe6b509b42" due to: ' + e); + } + }, + 'document.cookie="cookieConsentLevel=functional; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["787f6ec1d270f080d84075658a3154bd"] === e) return; + document.cookie = "cookieConsentLevel=functional; path=/;"; + Object.defineProperty(Window.prototype.toString, "787f6ec1d270f080d84075658a3154bd", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "787f6ec1d270f080d84075658a3154bd" due to: ' + e); + } + }, + 'document.cookie="cookies_accept=all; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["25fbbc330687fea937e26e0888468fc1"] === e) return; + document.cookie = "cookies_accept=all; path=/;"; + Object.defineProperty(Window.prototype.toString, "25fbbc330687fea937e26e0888468fc1", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "25fbbc330687fea937e26e0888468fc1" due to: ' + e); + } + }, + 'document.cookie="waconcookiemanagement=min; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0898665962f7d4da16a3e93e72148415"] === e) return; + document.cookie = "waconcookiemanagement=min; path=/;"; + Object.defineProperty(Window.prototype.toString, "0898665962f7d4da16a3e93e72148415", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0898665962f7d4da16a3e93e72148415" due to: ' + e); + } + }, + 'document.cookie="apcAcceptedTrackingCookie3=1111000; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ebce46e2aa13a6690a7be922ea601529 === e) return; + document.cookie = "apcAcceptedTrackingCookie3=1111000; path=/;"; + Object.defineProperty(Window.prototype.toString, "ebce46e2aa13a6690a7be922ea601529", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ebce46e2aa13a6690a7be922ea601529" due to: ' + e); + } + }, + 'document.cookie="bbDatenstufe=stufe3; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9d2c1d25c86235dc271dab2c2b2e99b2"] === e) return; + document.cookie = "bbDatenstufe=stufe3; path=/;"; + Object.defineProperty(Window.prototype.toString, "9d2c1d25c86235dc271dab2c2b2e99b2", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9d2c1d25c86235dc271dab2c2b2e99b2" due to: ' + e); + } + }, + 'document.cookie="newsletter-signup=viewed; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0cee21006fa668615b19188582a82e34"] === e) return; + document.cookie = "newsletter-signup=viewed; path=/;"; + Object.defineProperty(Window.prototype.toString, "0cee21006fa668615b19188582a82e34", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0cee21006fa668615b19188582a82e34" due to: ' + e); + } + }, + 'document.cookie="user_cookie_consent=essential; path=/";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["00c1162ebf92fa57d12e33c78f9ab876"] === e) return; + document.cookie = "user_cookie_consent=essential; path=/"; + Object.defineProperty(Window.prototype.toString, "00c1162ebf92fa57d12e33c78f9ab876", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "00c1162ebf92fa57d12e33c78f9ab876" due to: ' + e); + } + }, + 'document.cookie="cookiebanner=closed; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["64b6a01f2a020125dffd898bafb19615"] === e) return; + document.cookie = "cookiebanner=closed; path=/;"; + Object.defineProperty(Window.prototype.toString, "64b6a01f2a020125dffd898bafb19615", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "64b6a01f2a020125dffd898bafb19615" due to: ' + e); + } + }, + 'document.cookie=\'allow_cookies={"essential":"1","functional":{"all":"1"},"marketing":{"all":"0"}}; path=/;\';': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d61d4bd09c7716fa4e2f0235b892e274 === e) return; + document.cookie = 'allow_cookies={"essential":"1","functional":{"all":"1"},"marketing":{"all":"0"}}; path=/;'; + Object.defineProperty(Window.prototype.toString, "d61d4bd09c7716fa4e2f0235b892e274", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d61d4bd09c7716fa4e2f0235b892e274" due to: ' + e); + } + }, + '(function(){-1==document.cookie.indexOf("GPRD")&&(document.cookie="GPRD=128; path=/;",location.reload())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.dcadc5846fed7b2f033974e6075c5fed === e) return; + -1 == document.cookie.indexOf("GPRD") && (document.cookie = "GPRD=128; path=/;", location.reload()); + Object.defineProperty(Window.prototype.toString, "dcadc5846fed7b2f033974e6075c5fed", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "dcadc5846fed7b2f033974e6075c5fed" due to: ' + e); + } + }, + 'document.cookie="acceptRodoSie=hide; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d52e913bca352f639daec5b240f07513 === e) return; + document.cookie = "acceptRodoSie=hide; path=/;"; + Object.defineProperty(Window.prototype.toString, "d52e913bca352f639daec5b240f07513", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d52e913bca352f639daec5b240f07513" due to: ' + e); + } + }, + '(function(){-1==document.cookie.indexOf("cookie-functional")&&(document.cookie="cookie-functional=1; path=/;",document.cookie="popupek=1; path=/;",location.reload())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["23d2c0ec8e7bc0167527c1acc5bb5355"] === e) return; + -1 == document.cookie.indexOf("cookie-functional") && (document.cookie = "cookie-functional=1; path=/;", document.cookie = "popupek=1; path=/;", location.reload()); + Object.defineProperty(Window.prototype.toString, "23d2c0ec8e7bc0167527c1acc5bb5355", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "23d2c0ec8e7bc0167527c1acc5bb5355" due to: ' + e); + } + }, + '(function(){-1==document.cookie.indexOf("ccb")&&(document.cookie="ccb=facebookAccepted=0&googleAnalyticsAccepted=0&commonCookies=1; path=/;",location.reload())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f2aea7e44ba000bb61336ea707125580 === e) return; + -1 == document.cookie.indexOf("ccb") && (document.cookie = "ccb=facebookAccepted=0&googleAnalyticsAccepted=0&commonCookies=1; path=/;", location.reload()); + Object.defineProperty(Window.prototype.toString, "f2aea7e44ba000bb61336ea707125580", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f2aea7e44ba000bb61336ea707125580" due to: ' + e); + } + }, + "(function(){-1===document.cookie.indexOf(\"CookieConsent\")&&(document.cookie='CookieConsent=mandatory|osm; path=/;')})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f7a28a06b7a2a2e94cb072030083586d === e) return; + -1 === document.cookie.indexOf("CookieConsent") && (document.cookie = "CookieConsent=mandatory|osm; path=/;"); + Object.defineProperty(Window.prototype.toString, "f7a28a06b7a2a2e94cb072030083586d", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f7a28a06b7a2a2e94cb072030083586d" due to: ' + e); + } + }, + '(function(){-1===document.cookie.indexOf("CookieControl")&&(document.cookie=\'CookieControl={"necessaryCookies":["wordpress_*","wordpress_logged_in_*","CookieControl"],"optionalCookies":{"functional_cookies":"accepted"}}\')})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["06ad4ed929d84e1793e13be6c4a31b38"] === e) return; + -1 === document.cookie.indexOf("CookieControl") && (document.cookie = 'CookieControl={"necessaryCookies":["wordpress_*","wordpress_logged_in_*","CookieControl"],"optionalCookies":{"functional_cookies":"accepted"}}'); + Object.defineProperty(Window.prototype.toString, "06ad4ed929d84e1793e13be6c4a31b38", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "06ad4ed929d84e1793e13be6c4a31b38" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("CONSENT")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="CONSENT=301212NN; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2f7b46464b7a29f89080a98e454b73a8"] === e) return; + !function() { + if (-1 == document.cookie.indexOf("CONSENT")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "CONSENT=301212NN; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "2f7b46464b7a29f89080a98e454b73a8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2f7b46464b7a29f89080a98e454b73a8" due to: ' + e); + } + }, + 'document.cookie="dsgvo=basic; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c8f808a7e878f97d64286800484605d0 === e) return; + document.cookie = "dsgvo=basic; path=/;"; + Object.defineProperty(Window.prototype.toString, "c8f808a7e878f97d64286800484605d0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c8f808a7e878f97d64286800484605d0" due to: ' + e); + } + }, + '(function(){if(!document.cookie.includes("CookieInformationConsent=")){var a=encodeURIComponent(\'{"website_uuid":"","timestamp":"","consent_url":"","consent_website":"elkjop.no","consent_domain":"elkjop.no","user_uid":"","consents_approved":["cookie_cat_necessary","cookie_cat_functional","cookie_cat_statistic"],"consents_denied":[],"user_agent":""}\');document.cookie="CookieInformationConsent="+a+"; path=/;"}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6051620f594fcf9636bd68b417cb0e5b"] === e) return; + !function() { + if (!document.cookie.includes("CookieInformationConsent=")) { + var e = encodeURIComponent('{"website_uuid":"","timestamp":"","consent_url":"","consent_website":"elkjop.no","consent_domain":"elkjop.no","user_uid":"","consents_approved":["cookie_cat_necessary","cookie_cat_functional","cookie_cat_statistic"],"consents_denied":[],"user_agent":""}'); + document.cookie = "CookieInformationConsent=" + e + "; path=/;"; + } + }(); + Object.defineProperty(Window.prototype.toString, "6051620f594fcf9636bd68b417cb0e5b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6051620f594fcf9636bd68b417cb0e5b" due to: ' + e); + } + }, + '(function(){var a={timestamp:(new Date).getTime(),choice:2,version:"1.0"};document.cookie="mxp="+JSON.stringify(a)+"; path=/"})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4cdd2100913b4096462563fee10f5daa"] === e) return; + !function() { + var e = { + timestamp: (new Date).getTime(), + choice: 2, + version: "1.0" + }; + document.cookie = "mxp=" + JSON.stringify(e) + "; path=/"; + }(); + Object.defineProperty(Window.prototype.toString, "4cdd2100913b4096462563fee10f5daa", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4cdd2100913b4096462563fee10f5daa" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("_chorus_privacy_consent")&&document.location.hostname.includes("bavarianfootballworks.com")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="_chorus_privacy_consent="+d+"; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["504f6b7ac8c9c857fc49addc0eb518fd"] === e) return; + !function() { + if (-1 == document.cookie.indexOf("_chorus_privacy_consent") && document.location.hostname.includes("bavarianfootballworks.com")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "_chorus_privacy_consent=" + e + "; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "504f6b7ac8c9c857fc49addc0eb518fd", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "504f6b7ac8c9c857fc49addc0eb518fd" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("_chorus_privacy_consent")&&document.location.hostname.includes("goldenstateofmind.com")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="_chorus_privacy_consent="+d+"; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["62fd4c05daebdd55280e0b23009cc9aa"] === e) return; + !function() { + if (-1 == document.cookie.indexOf("_chorus_privacy_consent") && document.location.hostname.includes("goldenstateofmind.com")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "_chorus_privacy_consent=" + e + "; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "62fd4c05daebdd55280e0b23009cc9aa", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "62fd4c05daebdd55280e0b23009cc9aa" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("_chorus_privacy_consent")&&document.location.hostname.includes("mmafighting.com")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="_chorus_privacy_consent="+d+"; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["1a42ed4d4e4e6922f6fda946f00f4816"] === e) return; + !function() { + if (-1 == document.cookie.indexOf("_chorus_privacy_consent") && document.location.hostname.includes("mmafighting.com")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "_chorus_privacy_consent=" + e + "; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "1a42ed4d4e4e6922f6fda946f00f4816", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "1a42ed4d4e4e6922f6fda946f00f4816" due to: ' + e); + } + }, + '(function(){-1==document.cookie.indexOf("cms_cookies")&&(document.cookie="cms_cookies=6; path=/;",document.cookie="cms_cookies_saved=true; path=/;",location.reload())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c69eca07b387ee449234ff30bf5ce30e === e) return; + -1 == document.cookie.indexOf("cms_cookies") && (document.cookie = "cms_cookies=6; path=/;", document.cookie = "cms_cookies_saved=true; path=/;", location.reload()); + Object.defineProperty(Window.prototype.toString, "c69eca07b387ee449234ff30bf5ce30e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c69eca07b387ee449234ff30bf5ce30e" due to: ' + e); + } + }, + 'document.cookie="erlaubte_cookies=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.fa4fb1ef63a96ddb1e25a44e7d9cfcfe === e) return; + document.cookie = "erlaubte_cookies=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "fa4fb1ef63a96ddb1e25a44e7d9cfcfe", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "fa4fb1ef63a96ddb1e25a44e7d9cfcfe" due to: ' + e); + } + }, + 'document.cookie="klaviano_police=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0625bed2a838c73f77094993c60b81cc"] === e) return; + document.cookie = "klaviano_police=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "0625bed2a838c73f77094993c60b81cc", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0625bed2a838c73f77094993c60b81cc" due to: ' + e); + } + }, + 'document.cookie=\'cookieConsent={"statistical":0,"personalization":0,"targeting":0}; path=/;\';': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f5b9b753afe5738b6731ee8166dcd891 === e) return; + document.cookie = 'cookieConsent={"statistical":0,"personalization":0,"targeting":0}; path=/;'; + Object.defineProperty(Window.prototype.toString, "f5b9b753afe5738b6731ee8166dcd891", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f5b9b753afe5738b6731ee8166dcd891" due to: ' + e); + } + }, + 'document.cookie="allowTracking=false; path=/;"; document.cookie="trackingSettings={%22ads%22:false%2C%22performance%22:false}; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["380715610fe9f7be74ee211b5df06559"] === e) return; + document.cookie = "allowTracking=false; path=/;"; + document.cookie = "trackingSettings={%22ads%22:false%2C%22performance%22:false}; path=/;"; + Object.defineProperty(Window.prototype.toString, "380715610fe9f7be74ee211b5df06559", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "380715610fe9f7be74ee211b5df06559" due to: ' + e); + } + }, + 'document.cookie="userConsent=%7B%22marketing%22%3Afalse%2C%22version%22%3A%221%22%7D; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["967efe0b8b7e9d602d9c0ecdf20fc0cf"] === e) return; + document.cookie = "userConsent=%7B%22marketing%22%3Afalse%2C%22version%22%3A%221%22%7D; path=/;"; + Object.defineProperty(Window.prototype.toString, "967efe0b8b7e9d602d9c0ecdf20fc0cf", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "967efe0b8b7e9d602d9c0ecdf20fc0cf" due to: ' + e); + } + }, + 'document.cookie="sendgb_cookiewarning=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["190bccd6dfb21f403e2765c76b59110f"] === e) return; + document.cookie = "sendgb_cookiewarning=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "190bccd6dfb21f403e2765c76b59110f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "190bccd6dfb21f403e2765c76b59110f" due to: ' + e); + } + }, + 'document.cookie="rodopop=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9ed981f72e0e18755c3a1ffe09bbd2ba"] === e) return; + document.cookie = "rodopop=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "9ed981f72e0e18755c3a1ffe09bbd2ba", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9ed981f72e0e18755c3a1ffe09bbd2ba" due to: ' + e); + } + }, + 'document.cookie="gdprAccepted=true; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2c12d864ca83dfdf8bc7e1c395c19fef"] === e) return; + document.cookie = "gdprAccepted=true; path=/;"; + Object.defineProperty(Window.prototype.toString, "2c12d864ca83dfdf8bc7e1c395c19fef", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2c12d864ca83dfdf8bc7e1c395c19fef" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("BCPermissionLevel")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="BCPermissionLevel=PERSONAL; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["29fd06a58b635f18a26d675807f87ee7"] === e) return; + !function() { + if (-1 == document.cookie.indexOf("BCPermissionLevel")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "BCPermissionLevel=PERSONAL; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "29fd06a58b635f18a26d675807f87ee7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "29fd06a58b635f18a26d675807f87ee7" due to: ' + e); + } + }, + '(function(){if(-1==document.cookie.indexOf("_chorus_privacy_consent")){var c=new Date, d=c.getTime(), date = new Date(d + 365 * 60 * 60 * 1000); document.cookie="_chorus_privacy_consent="+d+"; path=/; expires=" + date.toUTCString(), location.reload()}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e7ea60642fa9501751b42fd2fe95103b === e) return; + !function() { + if (-1 == document.cookie.indexOf("_chorus_privacy_consent")) { + var e = (new Date).getTime(), o = new Date(e + 1314e6); + document.cookie = "_chorus_privacy_consent=" + e + "; path=/; expires=" + o.toUTCString(), location.reload(); + } + }(); + Object.defineProperty(Window.prototype.toString, "e7ea60642fa9501751b42fd2fe95103b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e7ea60642fa9501751b42fd2fe95103b" due to: ' + e); + } + }, + "!function(a,b,c,f,g,d,e){e=a[c]||a['WebKit'+c]||a['Moz'+c],e&&(d=new e(function(){b[f].contains(g)&&(b[f].remove(g),d.disconnect())}),d.observe(b,{attributes:!0,attributeFilter:['class']}))}(window,document.documentElement,'MutationObserver','classList','layer_cookie__visible');": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["61e6ac2655edf1e9450373c1fd849cd0"] === e) return; + !function(e, t, o, n1, r, c, i1) { + (i1 = e[o] || e["WebKit" + o] || e["Moz" + o]) && (c = new i1(function() { + t[n1].contains(r) && (t[n1].remove(r), c.disconnect()); + })).observe(t, { + attributes: !0, + attributeFilter: [ + "class" + ] + }); + }(window, document.documentElement, "MutationObserver", "classList", "layer_cookie__visible"); + Object.defineProperty(Window.prototype.toString, "61e6ac2655edf1e9450373c1fd849cd0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "61e6ac2655edf1e9450373c1fd849cd0" due to: ' + e); + } + }, + 'var cw;Object.defineProperty(window,"cookieWallSettings",{get:function(){return cw},set:function(a){document.cookie="rtlcookieconsent="+a.version.toString()+";";cw=a}});': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b32831777a037cfe79fc602cdef09ab7 === e) return; + var cw; + Object.defineProperty(window, "cookieWallSettings", { + get: function() { + return cw; + }, + set: function(e) { + document.cookie = "rtlcookieconsent=" + e.version.toString() + ";"; + cw = e; + } + }); + Object.defineProperty(Window.prototype.toString, "b32831777a037cfe79fc602cdef09ab7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b32831777a037cfe79fc602cdef09ab7" due to: ' + e); + } + }, + '(()=>{const e=document,t=new MutationObserver((()=>{const e=document.querySelector("#onetrust-accept-btn-handler");e&&(e.click(),t.disconnect())}));t.observe(e,{attributes:!0,childList:!0,subtree:!0}),setTimeout((()=>{t.disconnect()}),1e4)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["47331811da7c3ac0cbfb198884a715c9"] === e) return; + (()=>{ + const e = document, t = new MutationObserver(()=>{ + const e = document.querySelector("#onetrust-accept-btn-handler"); + e && (e.click(), t.disconnect()); + }); + t.observe(e, { + attributes: !0, + childList: !0, + subtree: !0 + }), setTimeout(()=>{ + t.disconnect(); + }, 1e4); + })(); + Object.defineProperty(Window.prototype.toString, "47331811da7c3ac0cbfb198884a715c9", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "47331811da7c3ac0cbfb198884a715c9" due to: ' + e); + } + }, + '(()=>{const e=document,t=new MutationObserver((()=>{const e=document.querySelector("#onetrust-reject-all-handler");e&&(e.click(),t.disconnect())}));t.observe(e,{attributes:!0,childList:!0,subtree:!0}),setTimeout((()=>{t.disconnect()}),1e4)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.bc95dd84ae7c7899b8fef815cd1b8299 === e) return; + (()=>{ + const e = document, t = new MutationObserver(()=>{ + const e = document.querySelector("#onetrust-reject-all-handler"); + e && (e.click(), t.disconnect()); + }); + t.observe(e, { + attributes: !0, + childList: !0, + subtree: !0 + }), setTimeout(()=>{ + t.disconnect(); + }, 1e4); + })(); + Object.defineProperty(Window.prototype.toString, "bc95dd84ae7c7899b8fef815cd1b8299", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "bc95dd84ae7c7899b8fef815cd1b8299" due to: ' + e); + } + }, + "(()=>{const t=document.documentElement,o=new MutationObserver((()=>{const t=document.querySelector('#mms-consent-portal-container button[data-test=\"pwa-consent-layer-deny-all\"]');if(t&&typeof t.click !== 'undefined'){t.click();}}));o.observe(t,{attributes:!0,childList:!0,subtree:!0})})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["46276a98537643ca503c6ce94ff988f1"] === e) return; + (()=>{ + const e = document.documentElement, t = new MutationObserver(()=>{ + const e = document.querySelector('#mms-consent-portal-container button[data-test="pwa-consent-layer-deny-all"]'); + e && void 0 !== e.click && e.click(); + }); + t.observe(e, { + attributes: !0, + childList: !0, + subtree: !0 + }); + })(); + Object.defineProperty(Window.prototype.toString, "46276a98537643ca503c6ce94ff988f1", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "46276a98537643ca503c6ce94ff988f1" due to: ' + e); + } + }, + '(()=>{if(!location.pathname.includes("/search"))return;const t={attributes:!0,childList:!0,subtree:!0},e=(t,e)=>{for(const n of t){const t=n.target.querySelector(".privacy-statement + .get-started-btn-wrapper > button.inline-explicit");t&&(t.click(),e.disconnect())}},n={apply:(n,o,c)=>{const r=Reflect.apply(n,o,c);if(o&&o.matches("cib-muid-consent")){new MutationObserver(e).observe(r,t)}return r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,n)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["36fc3a243e85a682dd99c26376ad6c57"] === e) return; + (()=>{ + if (!location.pathname.includes("/search")) return; + const e = { + attributes: !0, + childList: !0, + subtree: !0 + }, t = (e, t)=>{ + for (const o of e){ + const e = o.target.querySelector(".privacy-statement + .get-started-btn-wrapper > button.inline-explicit"); + e && (e.click(), t.disconnect()); + } + }, o = { + apply: (o, r, n1)=>{ + const c = Reflect.apply(o, r, n1); + r && r.matches("cib-muid-consent") && new MutationObserver(t).observe(c, e); + return c; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, o); + })(); + Object.defineProperty(Window.prototype.toString, "36fc3a243e85a682dd99c26376ad6c57", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "36fc3a243e85a682dd99c26376ad6c57" due to: ' + e); + } + }, + '(()=>{let t,e=!1;const o=new MutationObserver(((e,o)=>{const c=t?.querySelector("button.uc-deny-button");c&&(c.click(),o.disconnect())})),c={apply:(c,n,p)=>{const r=Reflect.apply(c,n,p);return!e&&n.matches("#usercentrics-cmp-ui")&&(e=!0,t=r),o.observe(r,{subtree:!0,childList:!0}),r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7d2a68c5db67d5c0b987bcc67516ef8e"] === e) return; + (()=>{ + let e, t = !1; + const c = new MutationObserver((t, c)=>{ + const o = e === null || e === void 0 ? void 0 : e.querySelector("button.uc-deny-button"); + o && (o.click(), c.disconnect()); + }), o = { + apply: (o, r, n1)=>{ + const d = Reflect.apply(o, r, n1); + return !t && r.matches("#usercentrics-cmp-ui") && (t = !0, e = d), c.observe(d, { + subtree: !0, + childList: !0 + }), d; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, o); + })(); + Object.defineProperty(Window.prototype.toString, "7d2a68c5db67d5c0b987bcc67516ef8e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7d2a68c5db67d5c0b987bcc67516ef8e" due to: ' + e); + } + }, + '(()=>{let t,e=!1;const o=new MutationObserver(((e,o)=>{const c=t?.querySelector(\'button[data-testid="uc-accept-all-button"]\');c&&(c.click(),o.disconnect())})),c={apply:(c,n,p)=>{const r=Reflect.apply(c,n,p);return!e&&n.matches("#usercentrics-root")&&(e=!0,t=r),o.observe(r,{subtree:!0,childList:!0}),r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c3fa9bec7cb9559b8965f87071a37fc6 === e) return; + (()=>{ + let e, t = !1; + const c = new MutationObserver((t, c)=>{ + const o = e === null || e === void 0 ? void 0 : e.querySelector('button[data-testid="uc-accept-all-button"]'); + o && (o.click(), c.disconnect()); + }), o = { + apply: (o, r, n1)=>{ + const a = Reflect.apply(o, r, n1); + return !t && r.matches("#usercentrics-root") && (t = !0, e = a), c.observe(a, { + subtree: !0, + childList: !0 + }), a; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, o); + })(); + Object.defineProperty(Window.prototype.toString, "c3fa9bec7cb9559b8965f87071a37fc6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c3fa9bec7cb9559b8965f87071a37fc6" due to: ' + e); + } + }, + '(()=>{let t,e=!1;const o=new MutationObserver(((e,o)=>{const c=t?.querySelector(\'button[data-testid="uc-deny-all-button"]\');c&&(c.click(),o.disconnect())})),c={apply:(c,n,p)=>{const r=Reflect.apply(c,n,p);return!e&&n.matches("#usercentrics-root")&&(e=!0,t=r),o.observe(r,{subtree:!0,childList:!0}),r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7924c03c0efcdc958073d4f764522f33"] === e) return; + (()=>{ + let e, t = !1; + const o = new MutationObserver((t, o)=>{ + const c = e === null || e === void 0 ? void 0 : e.querySelector('button[data-testid="uc-deny-all-button"]'); + c && (c.click(), o.disconnect()); + }), c = { + apply: (c, r, n1)=>{ + const d = Reflect.apply(c, r, n1); + return !t && r.matches("#usercentrics-root") && (t = !0, e = d), o.observe(d, { + subtree: !0, + childList: !0 + }), d; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, c); + })(); + Object.defineProperty(Window.prototype.toString, "7924c03c0efcdc958073d4f764522f33", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7924c03c0efcdc958073d4f764522f33" due to: ' + e); + } + }, + '(()=>{let t,e=!1;const o=new MutationObserver(((e,o)=>{const c=t?.querySelector("#cmpbox a.cmptxt_btn_yes");c&&(c.click(),o.disconnect())})),c={apply:(c,n,p)=>{const r=Reflect.apply(c,n,p);return!e&&n.matches("#cmpwrapper")&&(e=!0,t=r),o.observe(r,{subtree:!0,childList:!0}),r}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9c5d8cfc5b5533f486ab90d24d15e42c"] === e) return; + (()=>{ + let e, t = !1; + const c = new MutationObserver((t, c)=>{ + const o = e === null || e === void 0 ? void 0 : e.querySelector("#cmpbox a.cmptxt_btn_yes"); + o && (o.click(), c.disconnect()); + }), o = { + apply: (o, r, n1)=>{ + const d = Reflect.apply(o, r, n1); + return !t && r.matches("#cmpwrapper") && (t = !0, e = d), c.observe(d, { + subtree: !0, + childList: !0 + }), d; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, o); + })(); + Object.defineProperty(Window.prototype.toString, "9c5d8cfc5b5533f486ab90d24d15e42c", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9c5d8cfc5b5533f486ab90d24d15e42c" due to: ' + e); + } + }, + '(function(o){function a(a){return{get:function(){return a},set:b}}function b(){}function c(){throw"Adguard: stopped a script execution.";}var d={},e=a(function(a){a(!1)}),f={},g=EventTarget.prototype.addEventListener;o(d,{spid_control_callback:a(b),content_control_callback:a(b),vid_control_callback:a(b)});o(f,{config:a(d),_setSpKey:{get:c,set:c},checkState:e,isAdBlocking:e,getSafeUri:a(function(a){return a}),pageChange:a(b),setupSmartBeacons:a(b)});Object.defineProperty(window,"_sp_",a(f));EventTarget.prototype.addEventListener=function(a){"sp.blocking"!=a&&"sp.not_blocking"!=a&&g.apply(this,arguments)}})(Object.defineProperties);': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a1233e00aac3b1e9bd547e64ca938543 === e) return; + !function(e) { + function t(e) { + return { + get: function() { + return e; + }, + set: n1 + }; + } + function n1() {} + function o() { + throw "Adguard: stopped a script execution."; + } + var r = {}, c = t(function(e) { + e(!1); + }), a = {}, i1 = EventTarget.prototype.addEventListener; + e(r, { + spid_control_callback: t(n1), + content_control_callback: t(n1), + vid_control_callback: t(n1) + }); + e(a, { + config: t(r), + _setSpKey: { + get: o, + set: o + }, + checkState: c, + isAdBlocking: c, + getSafeUri: t(function(e) { + return e; + }), + pageChange: t(n1), + setupSmartBeacons: t(n1) + }); + Object.defineProperty(window, "_sp_", t(a)); + EventTarget.prototype.addEventListener = function(e) { + "sp.blocking" != e && "sp.not_blocking" != e && i1.apply(this, arguments); + }; + }(Object.defineProperties); + Object.defineProperty(Window.prototype.toString, "a1233e00aac3b1e9bd547e64ca938543", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a1233e00aac3b1e9bd547e64ca938543" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,l)=>{try{const e=(new Error).stack;if(e?.includes?.("initAdBlockDetection")&&4===l[0]?.length)return Promise.resolve()}catch(e){}return Reflect.apply(e,t,l)}};window.Promise.allSettled=new Proxy(window.Promise.allSettled,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c2e008a1d6491e8fa4125943a91eb8b8 === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + try { + var _e_includes, _r_; + const e = (new Error).stack; + if ((e === null || e === void 0 ? void 0 : (_e_includes = e.includes) === null || _e_includes === void 0 ? void 0 : _e_includes.call(e, "initAdBlockDetection")) && 4 === ((_r_ = r[0]) === null || _r_ === void 0 ? void 0 : _r_.length)) return Promise.resolve(); + } catch (e) {} + return Reflect.apply(e, t, r); + } + }; + window.Promise.allSettled = new Proxy(window.Promise.allSettled, e); + })(); + Object.defineProperty(Window.prototype.toString, "c2e008a1d6491e8fa4125943a91eb8b8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c2e008a1d6491e8fa4125943a91eb8b8" due to: ' + e); + } + }, + '(()=>{const d={getUserConsentStatusForVendor:()=>!0};window.didomiOnReady=window.didomiOnReady||[],window.didomiOnReady.push=n=>{"function"==typeof n&&n(d)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4f42a63fdc8f353f50712cbd342cc7be"] === e) return; + (()=>{ + const e = { + getUserConsentStatusForVendor: ()=>!0 + }; + window.didomiOnReady = window.didomiOnReady || [], window.didomiOnReady.push = (o)=>{ + "function" == typeof o && o(e); + }; + })(); + Object.defineProperty(Window.prototype.toString, "4f42a63fdc8f353f50712cbd342cc7be", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4f42a63fdc8f353f50712cbd342cc7be" due to: ' + e); + } + }, + '(()=>{const e={apply:async(e,t,a)=>{if(a[0]&&a[0]?.match(/adsbygoogle|doubleclick|googlesyndication|static\\.cloudflareinsights\\.com\\/beacon\\.min\\.js/)){const e=(e="{}",t="",a="opaque")=>{const n=new Response(e,{statusText:"OK"}),o=String((s=50800,r=50900,Math.floor(Math.random()*(r-s+1)+s)));var s,r;return n.headers.set("Content-Length",o),Object.defineProperties(n,{type:{value:a},status:{value:0},statusText:{value:""},url:{value:""}}),Promise.resolve(n)};return e("{}",a[0])}return Reflect.apply(e,t,a)}};window.fetch=new Proxy(window.fetch,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9dbd26c8d0d4dcb61410c72cac73374e"] === e) return; + (()=>{ + const e = { + apply: async (e, t, o)=>{ + var _o_; + if (o[0] && ((_o_ = o[0]) === null || _o_ === void 0 ? void 0 : _o_.match(/adsbygoogle|doubleclick|googlesyndication|static\.cloudflareinsights\.com\/beacon\.min\.js/))) { + const e = (e = "{}", t = "", o = "opaque")=>{ + const c = new Response(e, { + statusText: "OK" + }), n1 = String(Math.floor(101 * Math.random() + 50800)); + return c.headers.set("Content-Length", n1), Object.defineProperties(c, { + type: { + value: o + }, + status: { + value: 0 + }, + statusText: { + value: "" + }, + url: { + value: "" + } + }), Promise.resolve(c); + }; + return e("{}", o[0]); + } + return Reflect.apply(e, t, o); + } + }; + window.fetch = new Proxy(window.fetch, e); + })(); + Object.defineProperty(Window.prototype.toString, "9dbd26c8d0d4dcb61410c72cac73374e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9dbd26c8d0d4dcb61410c72cac73374e" due to: ' + e); + } + }, + "window.ad_allowed = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["049921132ffe411b4692a70bec90d335"] === e) return; + window.ad_allowed = !0; + Object.defineProperty(Window.prototype.toString, "049921132ffe411b4692a70bec90d335", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "049921132ffe411b4692a70bec90d335" due to: ' + e); + } + }, + "(function(){var b=window.setTimeout;window.setTimeout=function(a,c){if(!/google_ads_frame/.test(a.toString()))return b(a,c)};})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["47f456fa4a14a6df26efb37ac4b35e9a"] === e) return; + !function() { + var e = window.setTimeout; + window.setTimeout = function(t, o) { + if (!/google_ads_frame/.test(t.toString())) return e(t, o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "47f456fa4a14a6df26efb37ac4b35e9a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "47f456fa4a14a6df26efb37ac4b35e9a" due to: ' + e); + } + }, + 'var _st = window.setTimeout; window.setTimeout = function(a, b) { if(!/var ad = document\\.querySelector\\("ins\\.adsbygoogle"\\);/.test(a)){ _st(a,b);}};': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["8468c20094b47b4c6230a90bb0cf2d54"] === e) return; + var _st = window.setTimeout; + window.setTimeout = function(e, t) { + /var ad = document\.querySelector\("ins\.adsbygoogle"\);/.test(e) || _st(e, t); + }; + Object.defineProperty(Window.prototype.toString, "8468c20094b47b4c6230a90bb0cf2d54", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "8468c20094b47b4c6230a90bb0cf2d54" due to: ' + e); + } + }, + "document.avp_ready = 1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["1cd8368bac9abff3d844c605b628fee9"] === e) return; + document.avp_ready = 1; + Object.defineProperty(Window.prototype.toString, "1cd8368bac9abff3d844c605b628fee9", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "1cd8368bac9abff3d844c605b628fee9" due to: ' + e); + } + }, + "window.ADTECH = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e42f31b21c3855d599c00a3f8701ede6 === e) return; + window.ADTECH = function() {}; + Object.defineProperty(Window.prototype.toString, "e42f31b21c3855d599c00a3f8701ede6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e42f31b21c3855d599c00a3f8701ede6" due to: ' + e); + } + }, + "fuckAdBlock = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["5c3f48e3f24ff8813da9609a53a72433"] === e) return; + fuckAdBlock = function() {}; + Object.defineProperty(Window.prototype.toString, "5c3f48e3f24ff8813da9609a53a72433", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "5c3f48e3f24ff8813da9609a53a72433" due to: ' + e); + } + }, + "window.IM = [1,2,3];": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6e0b841e576ac763f81d5c219813906b"] === e) return; + window.IM = [ + 1, + 2, + 3 + ]; + Object.defineProperty(Window.prototype.toString, "6e0b841e576ac763f81d5c219813906b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6e0b841e576ac763f81d5c219813906b" due to: ' + e); + } + }, + "window.google_jobrunner = function() { };": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c155982f45f07c347701b45fce31f5d3 === e) return; + window.google_jobrunner = function() {}; + Object.defineProperty(Window.prototype.toString, "c155982f45f07c347701b45fce31f5d3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c155982f45f07c347701b45fce31f5d3" due to: ' + e); + } + }, + "(function(){var c=window.setTimeout;window.setTimeout=function(f,g){return !Number.isNaN(g)&&/\\$\\('#l'\\+|#linkdiv/.test(f.toString())&&(g*=0.01),c.apply(this,arguments)}.bind(window)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["009922e6198163d89edac4a47ce341c7"] === e) return; + !function() { + var e = window.setTimeout; + window.setTimeout = (function(t, o) { + return !Number.isNaN(o) && /\$\('#l'\+|#linkdiv/.test(t.toString()) && (o *= .01), e.apply(this, arguments); + }).bind(window); + }(); + Object.defineProperty(Window.prototype.toString, "009922e6198163d89edac4a47ce341c7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "009922e6198163d89edac4a47ce341c7" due to: ' + e); + } + }, + "window.blockAdBlock = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7b0fe49ca4878b71af2e77dfe4259f5a"] === e) return; + window.blockAdBlock = function() {}; + Object.defineProperty(Window.prototype.toString, "7b0fe49ca4878b71af2e77dfe4259f5a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7b0fe49ca4878b71af2e77dfe4259f5a" due to: ' + e); + } + }, + '(()=>{let t;const e={apply:(e,o,c)=>{try{const r=c[0],l=c[1];let y;try{y=t?.getNitroStateValue()}catch{return Reflect.apply(e,o,c)}if(y&&"object"==typeof r&&null!==r&&1===Object.keys(r).length&&"number"==typeof Object.values(r)[0]&&"object"==typeof l&&null!==l&&(n=l,Object.values(n).some((t=>{if("function"==typeof t&&t.toString().includes("]:!0}"))return!0})))){const[t]=Object.keys(r);void 0!==t&&Reflect.set(r,t,y+1)}}catch(t){}var n;return Reflect.apply(e,o,c)}};window.Object.is=new Proxy(window.Object.is,e);const o={apply:(e,o,c)=>{try{const e=c[0],o=c[1];!t&&e&&o&&"object"==typeof e&&"Module"===e[Symbol.toStringTag]&&"string"==typeof o&&"NitroScript"===o&&(t=e)}catch(t){}return Reflect.apply(e,o,c)}};window.Object.defineProperty=new Proxy(window.Object.defineProperty,o)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b990af6625716f6d6fe45948d5a5b4fa === e) return; + (()=>{ + let e; + const t = { + apply: (t, o, r)=>{ + try { + const c = r[0], f = r[1]; + let i1; + try { + i1 = e === null || e === void 0 ? void 0 : e.getNitroStateValue(); + } catch { + return Reflect.apply(t, o, r); + } + if (i1 && "object" == typeof c && null !== c && 1 === Object.keys(c).length && "number" == typeof Object.values(c)[0] && "object" == typeof f && null !== f && (n1 = f, Object.values(n1).some((e)=>{ + if ("function" == typeof e && e.toString().includes("]:!0}")) return !0; + }))) { + const [e] = Object.keys(c); + void 0 !== e && Reflect.set(c, e, i1 + 1); + } + } catch (e) {} + var n1; + return Reflect.apply(t, o, r); + } + }; + window.Object.is = new Proxy(window.Object.is, t); + const o = { + apply: (t, o, r)=>{ + try { + const t = r[0], o = r[1]; + !e && t && o && "object" == typeof t && "Module" === t[Symbol.toStringTag] && "string" == typeof o && "NitroScript" === o && (e = t); + } catch (e) {} + return Reflect.apply(t, o, r); + } + }; + window.Object.defineProperty = new Proxy(window.Object.defineProperty, o); + })(); + Object.defineProperty(Window.prototype.toString, "b990af6625716f6d6fe45948d5a5b4fa", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b990af6625716f6d6fe45948d5a5b4fa" due to: ' + e); + } + }, + '!function(){const e={apply:(e,t,o)=>{const i=o[1];if(!i||"object"!=typeof i.QiyiPlayerProphetData)return Reflect.apply(e,t,o)}};window.Object.defineProperties=new Proxy(window.Object.defineProperties,e)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["545a0289c2a1afd8dd9039c82074c2b7"] === e) return; + !function() { + const e = { + apply: (e, t, o)=>{ + const r = o[1]; + if (!r || "object" != typeof r.QiyiPlayerProphetData) return Reflect.apply(e, t, o); + } + }; + window.Object.defineProperties = new Proxy(window.Object.defineProperties, e); + }(); + Object.defineProperty(Window.prototype.toString, "545a0289c2a1afd8dd9039c82074c2b7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "545a0289c2a1afd8dd9039c82074c2b7" due to: ' + e); + } + }, + "!function(){const s={apply:(c,e,n)=>(n[0]?.adSlots&&(n[0].adSlots=[]),n[1]?.success&&(n[1].success=new Proxy(n[1].success,s)),Reflect.apply(c,e,n))};window.Object.assign=new Proxy(window.Object.assign,s)}();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7c9eb641391ed7a82e455b87f3672582"] === e) return; + !function() { + const e = { + apply: (o, t, n1)=>{ + var _n_, _n_1; + return ((_n_ = n1[0]) === null || _n_ === void 0 ? void 0 : _n_.adSlots) && (n1[0].adSlots = []), ((_n_1 = n1[1]) === null || _n_1 === void 0 ? void 0 : _n_1.success) && (n1[1].success = new Proxy(n1[1].success, e)), Reflect.apply(o, t, n1); + } + }; + window.Object.assign = new Proxy(window.Object.assign, e); + }(); + Object.defineProperty(Window.prototype.toString, "7c9eb641391ed7a82e455b87f3672582", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7c9eb641391ed7a82e455b87f3672582" due to: ' + e); + } + }, + "\"use strict\"; window.MutationObserver = new Proxy(window.MutationObserver, { construct(Target, Args) { let Stringified = Args[0].toString(); if (Stringified.includes('cs:') && Stringified.includes('gl:') && Stringified.includes('ne:') && Stringified.includes('dg:')) { return Reflect.construct(Target, [() => {}]); } return Reflect.construct(Target, Args); } });": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c287d35369268f7ace0d483cc8ca2199 === e) return; + window.MutationObserver = new Proxy(window.MutationObserver, { + construct (e, c) { + let t = c[0].toString(); + return t.includes("cs:") && t.includes("gl:") && t.includes("ne:") && t.includes("dg:") ? Reflect.construct(e, [ + ()=>{} + ]) : Reflect.construct(e, c); + } + }); + Object.defineProperty(Window.prototype.toString, "c287d35369268f7ace0d483cc8ca2199", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c287d35369268f7ace0d483cc8ca2199" due to: ' + e); + } + }, + '(()=>{const e=document.documentElement;new MutationObserver((()=>{const e=document.querySelector(\'body > div[role="dialog"].neon-border-purple > p.text-center + button.neon-button-purple\');e&&e.textContent.includes("I Understand")&&e.click()})).observe(e,{attributes:!0,childList:!0,subtree:!0})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7ff1ec00ee1e83864c8bcaba82126a50"] === e) return; + (()=>{ + const e = document.documentElement; + new MutationObserver(()=>{ + const e = document.querySelector('body > div[role="dialog"].neon-border-purple > p.text-center + button.neon-button-purple'); + e && e.textContent.includes("I Understand") && e.click(); + }).observe(e, { + attributes: !0, + childList: !0, + subtree: !0 + }); + })(); + Object.defineProperty(Window.prototype.toString, "7ff1ec00ee1e83864c8bcaba82126a50", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7ff1ec00ee1e83864c8bcaba82126a50" due to: ' + e); + } + }, + 'document.cookie="popup=9999999999999; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.dd5fb4eeed8b7505e5767b7045cb23cc === e) return; + document.cookie = "popup=9999999999999; path=/;"; + Object.defineProperty(Window.prototype.toString, "dd5fb4eeed8b7505e5767b7045cb23cc", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "dd5fb4eeed8b7505e5767b7045cb23cc" due to: ' + e); + } + }, + 'document.cookie="overlay-geschenk=donotshowfor7days; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c244d6b503d07944e92dae676220ac14 === e) return; + document.cookie = "overlay-geschenk=donotshowfor7days; path=/;"; + Object.defineProperty(Window.prototype.toString, "c244d6b503d07944e92dae676220ac14", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c244d6b503d07944e92dae676220ac14" due to: ' + e); + } + }, + 'document.cookie="popupSubscription=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["07e3ab9b26da8896b57fb83067364723"] === e) return; + document.cookie = "popupSubscription=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "07e3ab9b26da8896b57fb83067364723", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "07e3ab9b26da8896b57fb83067364723" due to: ' + e); + } + }, + 'document.cookie="hide_footer_login_layer=T; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6610b2172699f352e936bdda56179645"] === e) return; + document.cookie = "hide_footer_login_layer=T; path=/;"; + Object.defineProperty(Window.prototype.toString, "6610b2172699f352e936bdda56179645", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6610b2172699f352e936bdda56179645" due to: ' + e); + } + }, + "(()=>{const t=document,e=new MutationObserver((()=>{const t=document.querySelector('fluent-button[data-test-id=\"continue-reading-button\"]');t&&(t.click(),e.disconnect())}));e.observe(t,{attributes:!0,childList:!0,subtree:!0}),setTimeout((()=>{e.disconnect()}),1e4)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b74fcea5833a534a963b7d4a15fb3a8f === e) return; + (()=>{ + const e = document, t = new MutationObserver(()=>{ + const e = document.querySelector('fluent-button[data-test-id="continue-reading-button"]'); + e && (e.click(), t.disconnect()); + }); + t.observe(e, { + attributes: !0, + childList: !0, + subtree: !0 + }), setTimeout(()=>{ + t.disconnect(); + }, 1e4); + })(); + Object.defineProperty(Window.prototype.toString, "b74fcea5833a534a963b7d4a15fb3a8f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b74fcea5833a534a963b7d4a15fb3a8f" due to: ' + e); + } + }, + '!function(){const t={apply:(t,e,n)=>{if(n[0]&&"function"==typeof n[0])try{if(n[0].toString().includes("LOGIN_FORCE_TIME"))return}catch(t){console.trace(t)}return Reflect.apply(t,e,n)}},e=new Proxy(window.setTimeout,t);Object.defineProperty(window,"setTimeout",{set:function(){},get:function(){return e}})}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.af15a185bba3bf6f247f74549465a83e === e) return; + !function() { + const e = { + apply: (e, t, n1)=>{ + if (n1[0] && "function" == typeof n1[0]) try { + if (n1[0].toString().includes("LOGIN_FORCE_TIME")) return; + } catch (e) { + console.trace(e); + } + return Reflect.apply(e, t, n1); + } + }, t = new Proxy(window.setTimeout, e); + Object.defineProperty(window, "setTimeout", { + set: function() {}, + get: function() { + return t; + } + }); + }(); + Object.defineProperty(Window.prototype.toString, "af15a185bba3bf6f247f74549465a83e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "af15a185bba3bf6f247f74549465a83e" due to: ' + e); + } + }, + "(function(){window.setTimeout=new Proxy(window.setTimeout,{apply:(a,b,c)=>c&&c[0]&&/SkipMsg\\(\\)/.test(c[0].toString())&&c[1]?(c[1]=1,Reflect.apply(a,b,c)):Reflect.apply(a,b,c)})})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ddae51deac37af19fec2771965b890e1 === e) return; + window.setTimeout = new Proxy(window.setTimeout, { + apply: (e, t, o)=>o && o[0] && /SkipMsg\(\)/.test(o[0].toString()) && o[1] ? (o[1] = 1, Reflect.apply(e, t, o)) : Reflect.apply(e, t, o) + }); + Object.defineProperty(Window.prototype.toString, "ddae51deac37af19fec2771965b890e1", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ddae51deac37af19fec2771965b890e1" due to: ' + e); + } + }, + '(function(){var a=new Date,b=a.getTime();document.cookie="ips4_bacalltoactionpopup="+b})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["21f664952df8e1eaf1fb9a92db8b174e"] === e) return; + !function() { + var e = (new Date).getTime(); + document.cookie = "ips4_bacalltoactionpopup=" + e; + }(); + Object.defineProperty(Window.prototype.toString, "21f664952df8e1eaf1fb9a92db8b174e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "21f664952df8e1eaf1fb9a92db8b174e" due to: ' + e); + } + }, + "if (window.PushManager) { window.PushManager.prototype.subscribe = function () { return { then: function (func) { } }; }; }": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f271f5a04b96c738d8491cb877889952 === e) return; + window.PushManager && (window.PushManager.prototype.subscribe = function() { + return { + then: function(e) {} + }; + }); + Object.defineProperty(Window.prototype.toString, "f271f5a04b96c738d8491cb877889952", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f271f5a04b96c738d8491cb877889952" due to: ' + e); + } + }, + '(()=>{const t={construct:(t,e,n)=>{const r=e[0],o=r?.toString(),c=o?.includes("e[0].intersectionRatio");return c&&(e[0]=()=>{}),Reflect.construct(t,e,n)}};window.IntersectionObserver=new Proxy(window.IntersectionObserver,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c12b1283487b21a0e823718579c18ede === e) return; + (()=>{ + const e = { + construct: (e, t, r)=>{ + const n1 = t[0], o = n1 === null || n1 === void 0 ? void 0 : n1.toString(), c = o === null || o === void 0 ? void 0 : o.includes("e[0].intersectionRatio"); + return c && (t[0] = ()=>{}), Reflect.construct(e, t, r); + } + }; + window.IntersectionObserver = new Proxy(window.IntersectionObserver, e); + })(); + Object.defineProperty(Window.prototype.toString, "c12b1283487b21a0e823718579c18ede", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c12b1283487b21a0e823718579c18ede" due to: ' + e); + } + }, + '(function(){var b=document.addEventListener;document.addEventListener=function(c,a,d){if(a&&-1==a.toString().indexOf("adsBlocked"))return b(c,a,d)}.bind(window)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["62c4837e2d6ffab7f90fde5590cc73ab"] === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, n1, r) { + if (n1 && -1 == n1.toString().indexOf("adsBlocked")) return e(t, n1, r); + }).bind(window); + }(); + Object.defineProperty(Window.prototype.toString, "62c4837e2d6ffab7f90fde5590cc73ab", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "62c4837e2d6ffab7f90fde5590cc73ab" due to: ' + e); + } + }, + '(function(b){Object.defineProperty(Element.prototype,"innerHTML",{get:function(){return b.get.call(this)},set:function(a){/^(?:<([abisuq]) id="[^"]*"><\\/\\1>)*$/.test(a)||b.set.call(this,a)},enumerable:!0,configurable:!0})})(Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML"));': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a45ed61db8e971a6cfde1b21ffc65573 === e) return; + !function(e) { + Object.defineProperty(Element.prototype, "innerHTML", { + get: function() { + return e.get.call(this); + }, + set: function(t) { + /^(?:<([abisuq]) id="[^"]*"><\/\1>)*$/.test(t) || e.set.call(this, t); + }, + enumerable: !0, + configurable: !0 + }); + }(Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML")); + Object.defineProperty(Window.prototype.toString, "a45ed61db8e971a6cfde1b21ffc65573", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a45ed61db8e971a6cfde1b21ffc65573" due to: ' + e); + } + }, + '(function(a){Object.defineProperty(window,"upManager",{get:function(){return{push:a,register:a,fireNow:a,start:a}},set:function(a){if(!(a instanceof Error))throw Error();}})})(function(){});': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e7cde92d3ed85b2159f3eefcc50b7ab6 === e) return; + !function(e) { + Object.defineProperty(window, "upManager", { + get: function() { + return { + push: e, + register: e, + fireNow: e, + start: e + }; + }, + set: function(e) { + if (!(e instanceof Error)) throw Error(); + } + }); + }(function() {}); + Object.defineProperty(Window.prototype.toString, "e7cde92d3ed85b2159f3eefcc50b7ab6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e7cde92d3ed85b2159f3eefcc50b7ab6" due to: ' + e); + } + }, + '(function(){var b=XMLHttpRequest.prototype.open,c=/[/.@](piguiqproxy\\.com|rcdn\\.pro|amgload\\.net|dsn-fishki\\.ru|v6t39t\\.ru|greencuttlefish\\.com|rgy1wk\\.ru|vt4dlx\\.ru|d38dub\\.ru)[:/]/i;XMLHttpRequest.prototype.open=function(d,a){if("GET"===d&&c.test(a))this.send=function(){return null},this.setRequestHeader=function(){return null},console.log("AG has blocked request: ",a);else return b.apply(this,arguments)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["8d3f556a4543374ea8319bc03583025f"] === e) return; + !function() { + var e = XMLHttpRequest.prototype.open, t = /[/.@](piguiqproxy\.com|rcdn\.pro|amgload\.net|dsn-fishki\.ru|v6t39t\.ru|greencuttlefish\.com|rgy1wk\.ru|vt4dlx\.ru|d38dub\.ru)[:/]/i; + XMLHttpRequest.prototype.open = function(r, o) { + if ("GET" !== r || !t.test(o)) return e.apply(this, arguments); + this.send = function() { + return null; + }, this.setRequestHeader = function() { + return null; + }, console.log("AG has blocked request: ", o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "8d3f556a4543374ea8319bc03583025f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "8d3f556a4543374ea8319bc03583025f" due to: ' + e); + } + }, + '(function(){var b=XMLHttpRequest.prototype.open,c=/[/.@](piguiqproxy\\.com|rcdn\\.pro|amgload\\.net|dsn-fishki\\.ru|v6t39t\\.ru|greencuttlefish\\.com|rgy1wk\\.ru|vt4dlx\\.ru|d38dub\\.ru|csp-oz66pp\\.ru|ok9ydq\\.ru|kingoablc\\.com)[:/]/i;XMLHttpRequest.prototype.open=function(d,a){if("GET"===d&&c.test(a))this.send=function(){return null},this.setRequestHeader=function(){return null},console.log("AG has blocked request: ",a);else return b.apply(this,arguments)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["22514194ad8441cc56e68716b1f75f69"] === e) return; + !function() { + var e = XMLHttpRequest.prototype.open, t = /[/.@](piguiqproxy\.com|rcdn\.pro|amgload\.net|dsn-fishki\.ru|v6t39t\.ru|greencuttlefish\.com|rgy1wk\.ru|vt4dlx\.ru|d38dub\.ru|csp-oz66pp\.ru|ok9ydq\.ru|kingoablc\.com)[:/]/i; + XMLHttpRequest.prototype.open = function(r, o) { + if ("GET" !== r || !t.test(o)) return e.apply(this, arguments); + this.send = function() { + return null; + }, this.setRequestHeader = function() { + return null; + }, console.log("AG has blocked request: ", o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "22514194ad8441cc56e68716b1f75f69", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "22514194ad8441cc56e68716b1f75f69" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,n)=>{const o=Reflect.apply(e,t,n);try{o instanceof HTMLIFrameElement&&""===o.src&&o.contentWindow&&(o.contentWindow.fetch=window.fetch,o.contentWindow.getComputedStyle=window.getComputedStyle)}catch(e){}return o}};Node.prototype.appendChild=new Proxy(Node.prototype.appendChild,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["67bc47480648ae9a1b1c43e313bc2166"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + const n1 = Reflect.apply(e, t, o); + try { + n1 instanceof HTMLIFrameElement && "" === n1.src && n1.contentWindow && (n1.contentWindow.fetch = window.fetch, n1.contentWindow.getComputedStyle = window.getComputedStyle); + } catch (e) {} + return n1; + } + }; + Node.prototype.appendChild = new Proxy(Node.prototype.appendChild, e); + })(); + Object.defineProperty(Window.prototype.toString, "67bc47480648ae9a1b1c43e313bc2166", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "67bc47480648ae9a1b1c43e313bc2166" due to: ' + e); + } + }, + '(()=>{const e=()=>{},t=function(){return this},n=()=>null,o=()=>[],r=new Map,i=new Map,s=new Map,a=new Map,d=new Map,l=new Map,g=function(e,t){return d.has(e)||d.set(e,new Set),d.get(e).add(t),this},c=function(e,t){return!!d.has(e)&&d.get(e).delete(t)},p=(e,t)=>new Promise((n=>{requestAnimationFrame((()=>{const o=[0,0],r=d.get(e)||[],i=Array.from(r);for(let e=0;e{if(!e)return;const t=e.getSlotElementId();if(!document.getElementById(t))return p("rewardedSlotGranted",e),void setTimeout((()=>p("rewardedSlotClosed",e)),5e3);const n=document.getElementById(t);n&&n.appendChild(document.createElement("div")),(e=>{const t=document.getElementById(e.getSlotElementId());for(;t?.lastChild;)t.lastChild.remove()})(e),(e=>{const t=`google_ads_iframe_${e.getId()}`;document.getElementById(t)?.remove();const n=document.getElementById(e.getSlotElementId());if(n){const e=document.createElement("iframe");e.id=t,e.srcdoc="",e.style="position:absolute; width:0; height:0; left:0; right:0; z-index:-1; border:0",e.setAttribute("width",0),e.setAttribute("height",0),e.setAttribute("data-load-complete",!0),e.setAttribute("data-google-container-id",!0),e.setAttribute("sandbox",""),n.appendChild(e)}})(e),p("slotRenderEnded",e),p("slotRequested",e),p("slotResponseReceived",e),p("slotOnload",e),p("impressionViewable",e)},u={addEventListener:g,removeEventListener:c,enableSyncLoading:e,setRefreshUnfilledSlots:e,getSlots:o},y={addEventListener:g,removeEventListener:c,setContent:e};function f(){}function E(){}f.prototype.display=e,f.prototype.get=n,f.prototype.set=t,f.prototype.setClickUrl=t,f.prototype.setTagForChildDirectedTreatment=t,f.prototype.setTargeting=t,f.prototype.updateTargetingFromMap=t,E.prototype.addSize=t,E.prototype.build=n;const h=e=>{if("string"==typeof e)return[e];try{return Array.prototype.flat.call(e)}catch{}return[]},b=(e,n,o)=>{if(i.has(o))return document.getElementById(o)?.remove(),i.get(o);const d=new Map,g=new Map,c=new Set,p={advertiserId:void 0,campaignId:void 0,creativeId:void 0,creativeTemplateId:void 0,lineItemId:void 0},m=[{getHeight:()=>2,getWidth:()=>2}],u=(s.get(e)||0)+1;s.set(e,u);const y=`${e}_${u}`;let f="",E=null;const b=new Set,S={addService:e=>(b.add(e),S),clearCategoryExclusions:t,clearTargeting(e){void 0===e?g.clear():g.delete(e)},defineSizeMapping(e){return a.set(o,e),this},get:e=>d.get(e),getAdUnitPath:()=>e,getAttributeKeys:()=>Array.from(d.keys()),getCategoryExclusions:()=>Array.from(c),getClickUrl:()=>f,getCollapseEmptyDiv:()=>E,getContentUrl:()=>"",getDivStartsCollapsed:()=>null,getDomId:()=>o,getEscapedQemQueryId:()=>"",getFirstLook:()=>0,getId:()=>y,getHtml:()=>"",getName:()=>y,getOutOfPage:()=>!1,getResponseInformation:()=>p,getServices:()=>Array.from(b),getSizes:()=>m,getSlotElementId:()=>o,getSlotId:()=>S,getTargeting:e=>g.get(e)||l.get(e)||[],getTargetingKeys:()=>Array.from(new Set(Array.of(...l.keys(),...g.keys()))),getTargetingMap:()=>Object.assign(Object.fromEntries(l.entries()),Object.fromEntries(g.entries())),set:(e,t)=>(d.set(e,t),S),setCategoryExclusion:e=>(c.add(e),S),setClickUrl:e=>(f=e,S),setCollapseEmptyDiv:e=>(E=!!e,S),setSafeFrameConfig:t,setTagForChildDirectedTreatment:t,setTargeting:(e,t)=>(g.set(e,h(t)),S),toString:()=>y,updateTargetingFromMap:e=>(((e,t)=>{if("object"==typeof t)for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.set(n,h(t[n]))})(g,e),S)};return r.set(e,S),i.set(o,S),a.set(o,n),S},S={addEventListener:g,removeEventListener:c,clear:e,clearCategoryExclusions:t,clearTagForChildDirectedTreatment:t,clearTargeting(e){void 0===e?l.clear():l.delete(e)},collapseEmptyDivs:e,defineOutOfPagePassback:()=>new f,definePassback:()=>new f,disableInitialLoad:e,display:e,enableAsyncRendering:e,enableLazyLoad:e,enableSingleRequest:e,enableSyncRendering:e,enableVideoAds:e,get:n,getAttributeKeys:o,getTargeting:o,getTargetingKeys:o,getSlots:o,isInitialLoadDisabled:()=>!0,refresh:e,set:t,setCategoryExclusion:t,setCentering:e,setCookieOptions:t,setForceSafeFrame:t,setLocation:t,setPrivacySettings:t,setPublisherProvidedId:t,setRequestNonPersonalizedAds:t,setSafeFrameConfig:t,setTagForChildDirectedTreatment:t,setTargeting:t,setVideoContent:t,updateCorrelator:e},{googletag:v={}}=window,{cmd:C=[]}=v;for(v.apiReady=!0,v.cmd=[],v.cmd.push=e=>{try{e()}catch(e){console.trace(e)}return 1},v.companionAds=()=>u,v.content=()=>y,v.defineOutOfPageSlot=b,v.defineSlot=b,v.destroySlots=function(){r.clear(),i.clear()},v.disablePublisherConsole=e,v.display=function(e){let t;t=e?.getSlotElementId?e.getSlotElementId():e?.nodeType?e.id:String(e),m(i.get(t))},v.enableServices=e,v.getVersion=()=>"",v.pubads=()=>S,v.pubadsReady=!0,v.setAdIframeTitle=e,v.sizeMapping=()=>new E,v.enums={OutOfPageFormat:{REWARDED:"REWARDED"}},window.googletag=v;0!==C.length;)v.cmd.push(C.shift())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["3fed16eb400f779de1afec5bc42b57fc"] === e) return; + (()=>{ + const e = ()=>{}, t = function() { + return this; + }, n1 = ()=>null, r = ()=>[], o = new Map, i1 = new Map, a = new Map, s = new Map, d = new Map, l = new Map, g = function(e, t) { + return d.has(e) || d.set(e, new Set), d.get(e).add(t), this; + }, c = function(e, t) { + return !!d.has(e) && d.get(e).delete(t); + }, p = (e, t)=>new Promise((n1)=>{ + requestAnimationFrame(()=>{ + const r = [ + 0, + 0 + ], o = d.get(e) || [], i1 = Array.from(o); + for(let e = 0; e < i1.length; e += 1)i1[e]({ + isEmpty: !0, + size: r, + slot: t + }); + n1(); + }); + }), m = { + addEventListener: g, + removeEventListener: c, + enableSyncLoading: e, + setRefreshUnfilledSlots: e, + getSlots: r + }, u = { + addEventListener: g, + removeEventListener: c, + setContent: e + }; + function f() {} + function y() {} + f.prototype.display = e, f.prototype.get = n1, f.prototype.set = t, f.prototype.setClickUrl = t, f.prototype.setTagForChildDirectedTreatment = t, f.prototype.setTargeting = t, f.prototype.updateTargetingFromMap = t, y.prototype.addSize = t, y.prototype.build = n1; + const b = (e)=>{ + if ("string" == typeof e) return [ + e + ]; + try { + return Array.prototype.flat.call(e); + } catch {} + return []; + }, h = (e, n1, r)=>{ + var _document_getElementById; + if (i1.has(r)) return (_document_getElementById = document.getElementById(r)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.remove(), i1.get(r); + const d = new Map, g = new Map, c = new Set, p = { + advertiserId: void 0, + campaignId: void 0, + creativeId: void 0, + creativeTemplateId: void 0, + lineItemId: void 0 + }, m = [ + { + getHeight: ()=>2, + getWidth: ()=>2 + } + ], u = (a.get(e) || 0) + 1; + a.set(e, u); + const f = `${e}_${u}`; + let y = "", h = null; + const E = new Set, S = { + addService: (e)=>(E.add(e), S), + clearCategoryExclusions: t, + clearTargeting (e) { + void 0 === e ? g.clear() : g.delete(e); + }, + defineSizeMapping (e) { + return s.set(r, e), this; + }, + get: (e)=>d.get(e), + getAdUnitPath: ()=>e, + getAttributeKeys: ()=>Array.from(d.keys()), + getCategoryExclusions: ()=>Array.from(c), + getClickUrl: ()=>y, + getCollapseEmptyDiv: ()=>h, + getContentUrl: ()=>"", + getDivStartsCollapsed: ()=>null, + getDomId: ()=>r, + getEscapedQemQueryId: ()=>"", + getFirstLook: ()=>0, + getId: ()=>f, + getHtml: ()=>"", + getName: ()=>f, + getOutOfPage: ()=>!1, + getResponseInformation: ()=>p, + getServices: ()=>Array.from(E), + getSizes: ()=>m, + getSlotElementId: ()=>r, + getSlotId: ()=>S, + getTargeting: (e)=>g.get(e) || l.get(e) || [], + getTargetingKeys: ()=>Array.from(new Set(Array.of(...l.keys(), ...g.keys()))), + getTargetingMap: ()=>Object.assign(Object.fromEntries(l.entries()), Object.fromEntries(g.entries())), + set: (e, t)=>(d.set(e, t), S), + setCategoryExclusion: (e)=>(c.add(e), S), + setClickUrl: (e)=>(y = e, S), + setCollapseEmptyDiv: (e)=>(h = !!e, S), + setSafeFrameConfig: t, + setTagForChildDirectedTreatment: t, + setTargeting: (e, t)=>(g.set(e, b(t)), S), + toString: ()=>f, + updateTargetingFromMap: (e)=>(((e, t)=>{ + if ("object" == typeof t) for(const n1 in t)Object.prototype.hasOwnProperty.call(t, n1) && e.set(n1, b(t[n1])); + })(g, e), S) + }; + return o.set(e, S), i1.set(r, S), s.set(r, n1), S; + }, E = { + addEventListener: g, + removeEventListener: c, + clear: e, + clearCategoryExclusions: t, + clearTagForChildDirectedTreatment: t, + clearTargeting (e) { + void 0 === e ? l.clear() : l.delete(e); + }, + collapseEmptyDivs: e, + defineOutOfPagePassback: ()=>new f, + definePassback: ()=>new f, + disableInitialLoad: e, + display: e, + enableAsyncRendering: e, + enableLazyLoad: e, + enableSingleRequest: e, + enableSyncRendering: e, + enableVideoAds: e, + get: n1, + getAttributeKeys: r, + getTargeting: r, + getTargetingKeys: r, + getSlots: r, + isInitialLoadDisabled: ()=>!0, + refresh: e, + set: t, + setCategoryExclusion: t, + setCentering: e, + setCookieOptions: t, + setForceSafeFrame: t, + setLocation: t, + setPrivacySettings: t, + setPublisherProvidedId: t, + setRequestNonPersonalizedAds: t, + setSafeFrameConfig: t, + setTagForChildDirectedTreatment: t, + setTargeting: t, + setVideoContent: t, + updateCorrelator: e + }, { googletag: S = {} } = window, { cmd: v = [] } = S; + for(S.apiReady = !0, S.cmd = [], S.cmd.push = (e)=>{ + try { + e(); + } catch (e) { + console.trace(e); + } + return 1; + }, S.companionAds = ()=>m, S.content = ()=>u, S.defineOutOfPageSlot = h, S.defineSlot = h, S.destroySlots = function() { + o.clear(), i1.clear(); + }, S.disablePublisherConsole = e, S.display = function(e) { + let t; + t = (e === null || e === void 0 ? void 0 : e.getSlotElementId) ? e.getSlotElementId() : (e === null || e === void 0 ? void 0 : e.nodeType) ? e.id : String(e), ((e)=>{ + if (!e) return; + const t = e.getSlotElementId(); + if (!document.getElementById(t)) return p("rewardedSlotGranted", e), void setTimeout(()=>p("rewardedSlotClosed", e), 5e3); + const n1 = document.getElementById(t); + n1 && n1.appendChild(document.createElement("div")), ((e)=>{ + const t = document.getElementById(e.getSlotElementId()); + for(; t === null || t === void 0 ? void 0 : t.lastChild;)t.lastChild.remove(); + })(e), ((e)=>{ + var _document_getElementById; + const t = `google_ads_iframe_${e.getId()}`; + (_document_getElementById = document.getElementById(t)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.remove(); + const n1 = document.getElementById(e.getSlotElementId()); + if (n1) { + const e = document.createElement("iframe"); + e.id = t, e.srcdoc = "", e.style = "position:absolute; width:0; height:0; left:0; right:0; z-index:-1; border:0", e.setAttribute("width", 0), e.setAttribute("height", 0), e.setAttribute("data-load-complete", !0), e.setAttribute("data-google-container-id", !0), e.setAttribute("sandbox", ""), n1.appendChild(e); + } + })(e), p("slotRenderEnded", e), p("slotRequested", e), p("slotResponseReceived", e), p("slotOnload", e), p("impressionViewable", e); + })(i1.get(t)); + }, S.enableServices = e, S.getVersion = ()=>"", S.pubads = ()=>E, S.pubadsReady = !0, S.setAdIframeTitle = e, S.sizeMapping = ()=>new y, S.enums = { + OutOfPageFormat: { + REWARDED: "REWARDED" + } + }, window.googletag = S; 0 !== v.length;)S.cmd.push(v.shift()); + })(); + Object.defineProperty(Window.prototype.toString, "3fed16eb400f779de1afec5bc42b57fc", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "3fed16eb400f779de1afec5bc42b57fc" due to: ' + e); + } + }, + '(()=>{window.GADS={init:function(n){n&&"function"==typeof n.onFinish&&n.onFinish()}};})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c2ffc94b6ce8e97f2c432d64690cfc9d === e) return; + window.GADS = { + init: function(e) { + e && "function" == typeof e.onFinish && e.onFinish(); + } + }; + Object.defineProperty(Window.prototype.toString, "c2ffc94b6ce8e97f2c432d64690cfc9d", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c2ffc94b6ce8e97f2c432d64690cfc9d" due to: ' + e); + } + }, + '(()=>{const a=function(a){"function"==typeof a&&a()};window.aiptag={adplayer:"",cmd:[]},window.aiptag.cmd.player=[],window.aiptag.cmd.display=[],window.aiptag.cmd.push=a,window.aiptag.cmd.player.push=a,window.aiptag.cmd.display.push=a,window.aipDisplayTag={display:function(){}},window.aipPlayer=function(a){a&&a.AIP_COMPLETE&&(this.startPreRoll=a.AIP_COMPLETE)}})();': ()=>{ + try { + const a = "done"; + if (Window.prototype.toString["8e9df515585941ac85187baf28cedac1"] === a) return; + (()=>{ + const a = function(a) { + "function" == typeof a && a(); + }; + window.aiptag = { + adplayer: "", + cmd: [] + }, window.aiptag.cmd.player = [], window.aiptag.cmd.display = [], window.aiptag.cmd.push = a, window.aiptag.cmd.player.push = a, window.aiptag.cmd.display.push = a, window.aipDisplayTag = { + display: function() {} + }, window.aipPlayer = function(a) { + a && a.AIP_COMPLETE && (this.startPreRoll = a.AIP_COMPLETE); + }; + })(); + Object.defineProperty(Window.prototype.toString, "8e9df515585941ac85187baf28cedac1", { + value: a, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (a) { + console.error('Error executing AG js rule with uniqueId "8e9df515585941ac85187baf28cedac1" due to: ' + a); + } + }, + '(()=>{const e={breakStatus:"done"},o=["beforeReward","adViewed","adBreakDone"];window.adsbygoogle=window.adsbygoogle||[],window.adsbygoogle.push=function(d){var a;d&&"object"==typeof d&&(a=d,o.every((e=>e in a&&"function"==typeof a[e])))&&(d.beforeReward(),d.adViewed(),d.adBreakDone(e))}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["36fd3167269f896e4009a009ae54edb3"] === e) return; + (()=>{ + const e = { + breakStatus: "done" + }, o = [ + "beforeReward", + "adViewed", + "adBreakDone" + ]; + window.adsbygoogle = window.adsbygoogle || [], window.adsbygoogle.push = function(r) { + var d; + r && "object" == typeof r && (d = r, o.every((e)=>e in d && "function" == typeof d[e])) && (r.beforeReward(), r.adViewed(), r.adBreakDone(e)); + }; + })(); + Object.defineProperty(Window.prototype.toString, "36fd3167269f896e4009a009ae54edb3", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "36fd3167269f896e4009a009ae54edb3" due to: ' + e); + } + }, + '(()=>{const r={apply:(r,e,t)=>{try{const r=(new Error).stack,e=t[0];if(r.includes("adBlockingDetected")&&e?.adFailurePercentage)return 0}catch(r){}return Reflect.apply(r,e,t)}};window.Array.prototype.push=new Proxy(window.Array.prototype.push,r)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2569876940a174e979811de8e9ef4610"] === e) return; + (()=>{ + const e = { + apply: (e, r, t)=>{ + try { + const e = (new Error).stack, r = t[0]; + if (e.includes("adBlockingDetected") && (r === null || r === void 0 ? void 0 : r.adFailurePercentage)) return 0; + } catch (e) {} + return Reflect.apply(e, r, t); + } + }; + window.Array.prototype.push = new Proxy(window.Array.prototype.push, e); + })(); + Object.defineProperty(Window.prototype.toString, "2569876940a174e979811de8e9ef4610", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2569876940a174e979811de8e9ef4610" due to: ' + e); + } + }, + '(()=>{let e;const t={apply:(t,n,o)=>(o[0]?.behavior?.controlType&&o[0]?.initialItems&&"function"==typeof o[0].update&&(e=o[0].update,o[0].update=function(){this.update=e}),Reflect.apply(t,n,o))};window.Object.keys=new Proxy(window.Object.keys,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ca0d0ab35fc86cd11d58ae07707d23fa === e) return; + (()=>{ + let e; + const t = { + apply: (t, o, a)=>{ + var _a__behavior, _a_, _a_1; + return ((_a_ = a[0]) === null || _a_ === void 0 ? void 0 : (_a__behavior = _a_.behavior) === null || _a__behavior === void 0 ? void 0 : _a__behavior.controlType) && ((_a_1 = a[0]) === null || _a_1 === void 0 ? void 0 : _a_1.initialItems) && "function" == typeof a[0].update && (e = a[0].update, a[0].update = function() { + this.update = e; + }), Reflect.apply(t, o, a); + } + }; + window.Object.keys = new Proxy(window.Object.keys, t); + })(); + Object.defineProperty(Window.prototype.toString, "ca0d0ab35fc86cd11d58ae07707d23fa", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ca0d0ab35fc86cd11d58ae07707d23fa" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,n,t)=>{const o=t[1];return o&&["adBlockingDetected","assessAdBlocking"].includes(o)&&t[2]&&"function"==typeof t[2].value&&(t[2].value=()=>{}),Reflect.apply(e,n,t)}};window.Object.defineProperty=new Proxy(window.Object.defineProperty,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.dd013aac8504d0cebb16580d054020f6 === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + const d = o[1]; + return d && [ + "adBlockingDetected", + "assessAdBlocking" + ].includes(d) && o[2] && "function" == typeof o[2].value && (o[2].value = ()=>{}), Reflect.apply(e, t, o); + } + }; + window.Object.defineProperty = new Proxy(window.Object.defineProperty, e); + })(); + Object.defineProperty(Window.prototype.toString, "dd013aac8504d0cebb16580d054020f6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "dd013aac8504d0cebb16580d054020f6" due to: ' + e); + } + }, + '(()=>{window.adsbygoogle=window.adsbygoogle||[],window.adsbygoogle.loaded=!0,window.adsbygoogle.push=o=>{if("function"==typeof o?.params?.google_ad_loaded_callback)try{o.params.google_ad_loaded_callback()}catch(o){}};})();': ()=>{ + try { + const o = "done"; + if (Window.prototype.toString["8789bcbfab97b9bd3093b265e84dcf3d"] === o) return; + window.adsbygoogle = window.adsbygoogle || [], window.adsbygoogle.loaded = !0, window.adsbygoogle.push = (o)=>{ + var _o_params; + if ("function" == typeof (o === null || o === void 0 ? void 0 : (_o_params = o.params) === null || _o_params === void 0 ? void 0 : _o_params.google_ad_loaded_callback)) try { + o.params.google_ad_loaded_callback(); + } catch (o) {} + }; + Object.defineProperty(Window.prototype.toString, "8789bcbfab97b9bd3093b265e84dcf3d", { + value: o, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (o) { + console.error('Error executing AG js rule with uniqueId "8789bcbfab97b9bd3093b265e84dcf3d" due to: ' + o); + } + }, + "(()=>{window.detectIncognito=()=>new Promise((e=>e({isPrivate:!0})));})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b8746b82569fc49e330a8e697f35c050 === e) return; + window.detectIncognito = ()=>new Promise((e)=>e({ + isPrivate: !0 + })); + Object.defineProperty(Window.prototype.toString, "b8746b82569fc49e330a8e697f35c050", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b8746b82569fc49e330a8e697f35c050" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,p,t)=>(!0===t[0]&&(t[0]=!1),Reflect.apply(e,p,t))},p={apply:(p,t,a)=>("__updateState"===a[1]&&a[2]&&a[2].value&&(a[2].value=new Proxy(a[2].value,e)),Reflect.apply(p,t,a))};window.Object.defineProperty=new Proxy(window.Object.defineProperty,p)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7c7972b55daaed8f85903876788453e9"] === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>(!0 === r[0] && (r[0] = !1), Reflect.apply(e, t, r)) + }, t = { + apply: (t, r, o)=>("__updateState" === o[1] && o[2] && o[2].value && (o[2].value = new Proxy(o[2].value, e)), Reflect.apply(t, r, o)) + }; + window.Object.defineProperty = new Proxy(window.Object.defineProperty, t); + })(); + Object.defineProperty(Window.prototype.toString, "7c7972b55daaed8f85903876788453e9", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7c7972b55daaed8f85903876788453e9" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,n)=>{const o=n[0];if(o&&o.status.includes("success"))for(const e in n[0])"1"===n[0][e]?n[0][e]="0":1===n[0][e]&&(n[0][e]=0);return Reflect.apply(e,t,n)}},t=["adblockEnabled","=!!parseInt(","disable_adb"],n={apply:(n,o,s)=>{const p=s[0];return"function"==typeof p&&t.some((e=>p.toString().includes(e)))&&(s[0]=new Proxy(s[0],e)),Reflect.apply(n,o,s)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then,n)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["363a12f3db4852d23e4d57b5c84f4d68"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + const n1 = o[0]; + if (n1 && n1.status.includes("success")) for(const e in o[0])"1" === o[0][e] ? o[0][e] = "0" : 1 === o[0][e] && (o[0][e] = 0); + return Reflect.apply(e, t, o); + } + }, t = [ + "adblockEnabled", + "=!!parseInt(", + "disable_adb" + ], o = { + apply: (o, n1, r)=>{ + const d = r[0]; + return "function" == typeof d && t.some((e)=>d.toString().includes(e)) && (r[0] = new Proxy(r[0], e)), Reflect.apply(o, n1, r); + } + }; + window.Promise.prototype.then = new Proxy(window.Promise.prototype.then, o); + })(); + Object.defineProperty(Window.prototype.toString, "363a12f3db4852d23e4d57b5c84f4d68", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "363a12f3db4852d23e4d57b5c84f4d68" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,n,e)=>{if(e[0]&&null===e[0].html?.detected&&"function"==typeof e[0].html?.instance?.start&&"function"==typeof e[0].env?.instance?.start&&"function"==typeof e[0].http?.instance?.start){const t=function(){Object.keys(this).forEach((t=>{"boolean"==typeof this[t]&&(this[t]=!1)}))};["html","env","http"].forEach((n=>{e[0][n].instance.start=t}))}return Reflect.apply(t,n,e)}};window.Object.keys=new Proxy(window.Object.keys,t)})();': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["8e5af140bb8ff6dfac87d2aa8a7181a7"] === t) return; + (()=>{ + const t = { + apply: (t, e, n1)=>{ + var _n__html, _n__html_instance, _n__html1, _n__env_instance, _n__env, _n__http_instance, _n__http; + if (n1[0] && null === ((_n__html = n1[0].html) === null || _n__html === void 0 ? void 0 : _n__html.detected) && "function" == typeof ((_n__html1 = n1[0].html) === null || _n__html1 === void 0 ? void 0 : (_n__html_instance = _n__html1.instance) === null || _n__html_instance === void 0 ? void 0 : _n__html_instance.start) && "function" == typeof ((_n__env = n1[0].env) === null || _n__env === void 0 ? void 0 : (_n__env_instance = _n__env.instance) === null || _n__env_instance === void 0 ? void 0 : _n__env_instance.start) && "function" == typeof ((_n__http = n1[0].http) === null || _n__http === void 0 ? void 0 : (_n__http_instance = _n__http.instance) === null || _n__http_instance === void 0 ? void 0 : _n__http_instance.start)) { + const t = function() { + Object.keys(this).forEach((t)=>{ + "boolean" == typeof this[t] && (this[t] = !1); + }); + }; + [ + "html", + "env", + "http" + ].forEach((e)=>{ + n1[0][e].instance.start = t; + }); + } + return Reflect.apply(t, e, n1); + } + }; + window.Object.keys = new Proxy(window.Object.keys, t); + })(); + Object.defineProperty(Window.prototype.toString, "8e5af140bb8ff6dfac87d2aa8a7181a7", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "8e5af140bb8ff6dfac87d2aa8a7181a7" due to: ' + t); + } + }, + "(()=>{document.addEventListener('DOMContentLoaded',()=>{var el=document.body; var ce=document.createElement('div'); if(el) { el.appendChild(ce); ce.setAttribute(\"id\", \"QGSBETJjtZkYH\"); }})})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["660d8dc0098c8febc0f6d884977e6d4e"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + var e = document.body, t = document.createElement("div"); + if (e) { + e.appendChild(t); + t.setAttribute("id", "QGSBETJjtZkYH"); + } + }); + Object.defineProperty(Window.prototype.toString, "660d8dc0098c8febc0f6d884977e6d4e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "660d8dc0098c8febc0f6d884977e6d4e" due to: ' + e); + } + }, + '(()=>{document.addEventListener(\'DOMContentLoaded\',()=>{const e=document.querySelector("#widescreen1");if(e){const t=document.createElement("div");t.setAttribute("id","google_ads_iframe_"),e.appendChild(t)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["44c722190e3d03dbed05660dc5040600"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + const e = document.querySelector("#widescreen1"); + if (e) { + const t = document.createElement("div"); + t.setAttribute("id", "google_ads_iframe_"), e.appendChild(t); + } + }); + Object.defineProperty(Window.prototype.toString, "44c722190e3d03dbed05660dc5040600", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "44c722190e3d03dbed05660dc5040600" due to: ' + e); + } + }, + '(()=>{const n=window.String.prototype.includes,o={apply:(o,t,i)=>{const c=i[0];return!(!i||!n.call(c,"function onclick(lczxsusin)"))||Reflect.apply(o,t,i)}};window.String.prototype.includes=new Proxy(window.String.prototype.includes,o)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2e3a208e2520b56c4a151edf4ed886f4"] === e) return; + (()=>{ + const e = window.String.prototype.includes, t = { + apply: (t, o, n1)=>{ + const r = n1[0]; + return !(!n1 || !e.call(r, "function onclick(lczxsusin)")) || Reflect.apply(t, o, n1); + } + }; + window.String.prototype.includes = new Proxy(window.String.prototype.includes, t); + })(); + Object.defineProperty(Window.prototype.toString, "2e3a208e2520b56c4a151edf4ed886f4", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2e3a208e2520b56c4a151edf4ed886f4" due to: ' + e); + } + }, + '(()=>{const e=new Set(["fimg","faimg","fbmg","fcmg","fdmg","femg","ffmg","fgmg","fjmg","fkmg"]),t={apply:(t,c,n)=>{const s=n[2];if(s){const t=Object.keys(s).length;if(t>1&&t<20)for(let t in s)if(e.has(t)&&!0===n[2][t])try{n[2][t]=!1}catch(e){console.trace(e)}else if(!0===s[t])try{const e=(new Error).stack;/NodeList\\.forEach|(|blob):[\\s\\S]{1,500}$/.test(e)&&(s[t]=!1)}catch(e){console.trace(e)}}return Reflect.apply(t,c,n)}};window.Object.assign=new Proxy(window.Object.assign,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["26f59c9e189170e8d303a40a632b2e28"] === e) return; + (()=>{ + const e = new Set([ + "fimg", + "faimg", + "fbmg", + "fcmg", + "fdmg", + "femg", + "ffmg", + "fgmg", + "fjmg", + "fkmg" + ]), t = { + apply: (t, o, n1)=>{ + const r = n1[2]; + if (r) { + const t = Object.keys(r).length; + if (t > 1 && t < 20) { + for(let t in r)if (e.has(t) && !0 === n1[2][t]) try { + n1[2][t] = !1; + } catch (e) { + console.trace(e); + } + else if (!0 === r[t]) try { + const e = (new Error).stack; + /NodeList\.forEach|(|blob):[\s\S]{1,500}$/.test(e) && (r[t] = !1); + } catch (e) { + console.trace(e); + } + } + } + return Reflect.apply(t, o, n1); + } + }; + window.Object.assign = new Proxy(window.Object.assign, t); + })(); + Object.defineProperty(Window.prototype.toString, "26f59c9e189170e8d303a40a632b2e28", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "26f59c9e189170e8d303a40a632b2e28" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,p)=>{const o=p[1];return o&&"string"==typeof o&&o.match(/pagead2\\.googlesyndication\\.com|google.*\\.js|\\/.*?\\/.*?ad.*?\\.js|\\.(shop|quest|autos)\\/.*?\\.(js|php|html)/)&&(t.prevent=!0),Reflect.apply(e,t,p)}};window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,e);const t={apply:(e,t,p)=>{if(!t.prevent)return Reflect.apply(e,t,p)}};window.XMLHttpRequest.prototype.send=new Proxy(window.XMLHttpRequest.prototype.send,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c7605ee2684a2146beda3b04ccfa8bec === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + const p = o[1]; + return p && "string" == typeof p && p.match(/pagead2\.googlesyndication\.com|google.*\.js|\/.*?\/.*?ad.*?\.js|\.(shop|quest|autos)\/.*?\.(js|php|html)/) && (t.prevent = !0), Reflect.apply(e, t, o); + } + }; + window.XMLHttpRequest.prototype.open = new Proxy(window.XMLHttpRequest.prototype.open, e); + const t = { + apply: (e, t, o)=>{ + if (!t.prevent) return Reflect.apply(e, t, o); + } + }; + window.XMLHttpRequest.prototype.send = new Proxy(window.XMLHttpRequest.prototype.send, t); + })(); + Object.defineProperty(Window.prototype.toString, "c7605ee2684a2146beda3b04ccfa8bec", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c7605ee2684a2146beda3b04ccfa8bec" due to: ' + e); + } + }, + '(()=>{window.vhit=!0;const t=/free-download-form|\'\\),_0x|\\)\\]\\(function\\(_0x|,Array\\[_0x|function\\(_0x.*\\){const _0x.*\\[_0x|adblock|function Boolean\\(\\) \\{\\s*\\[native code\\]|=>\\{const _0x|undefined\\?new\\.target:|detectAdblock|===!0\\}/,e={apply:async(t,e,o)=>{const n=o[0];return"boolean"==typeof n&&!0===n&&(o[0]=!1),"string"==typeof n&&"blocked"===n&&(o[0]=""),await new Promise((t=>setTimeout(t,2e3))),Reflect.apply(t,e,o)}},o={apply:(o,n,r)=>{const i=r[0];return"function"==typeof i&&t.test(i.toString())&&(r[0]=new Proxy(r[0],e)),Reflect.apply(o,n,r)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then,o);const n=async t=>{t.preventDefault();const e=t.currentTarget;"function"==typeof window.vhit?.report&&await window.vhit.report(),e.form.requestSubmit(e)};window.addEventListener("load",(()=>{const t=document.querySelector("form#submit-form button#submit-button");if(t){const e=t.cloneNode(!0);t.parentNode.replaceChild(e,t),e.removeAttribute("disabled"),e.textContent="Continue",e.addEventListener("click",n)}}))})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f85025076e463ddc0dfe66ff2a54b9cf === e) return; + (()=>{ + window.vhit = !0; + const e = /free-download-form|'\),_0x|\)\]\(function\(_0x|,Array\[_0x|function\(_0x.*\){const _0x.*\[_0x|adblock|function Boolean\(\) \{\s*\[native code\]|=>\{const _0x|undefined\?new\.target:|detectAdblock|===!0\}/, t = { + apply: async (e, t, o)=>{ + const n1 = o[0]; + return "boolean" == typeof n1 && !0 === n1 && (o[0] = !1), "string" == typeof n1 && "blocked" === n1 && (o[0] = ""), await new Promise((e)=>setTimeout(e, 2e3)), Reflect.apply(e, t, o); + } + }, o = { + apply: (o, n1, r)=>{ + const i1 = r[0]; + return "function" == typeof i1 && e.test(i1.toString()) && (r[0] = new Proxy(r[0], t)), Reflect.apply(o, n1, r); + } + }; + window.Promise.prototype.then = new Proxy(window.Promise.prototype.then, o); + const n1 = async (e)=>{ + var _window_vhit; + e.preventDefault(); + const t = e.currentTarget; + "function" == typeof ((_window_vhit = window.vhit) === null || _window_vhit === void 0 ? void 0 : _window_vhit.report) && await window.vhit.report(), t.form.requestSubmit(t); + }; + window.addEventListener("load", ()=>{ + const e = document.querySelector("form#submit-form button#submit-button"); + if (e) { + const t = e.cloneNode(!0); + e.parentNode.replaceChild(t, e), t.removeAttribute("disabled"), t.textContent = "Continue", t.addEventListener("click", n1); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "f85025076e463ddc0dfe66ff2a54b9cf", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f85025076e463ddc0dfe66ff2a54b9cf" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,o,e)=>{try{const t=e[0];t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,"failed_hosts")&&Object.prototype.hasOwnProperty.call(t,"blocked")&&(t.failed_hosts="",t.blocked=!1)}catch(t){}return Reflect.apply(t,o,e)}};window.JSON.stringify=new Proxy(window.JSON.stringify,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["1503dc258e7809ec4d938941a16df979"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + try { + const e = o[0]; + e && "object" == typeof e && Object.prototype.hasOwnProperty.call(e, "failed_hosts") && Object.prototype.hasOwnProperty.call(e, "blocked") && (e.failed_hosts = "", e.blocked = !1); + } catch (e) {} + return Reflect.apply(e, t, o); + } + }; + window.JSON.stringify = new Proxy(window.JSON.stringify, e); + })(); + Object.defineProperty(Window.prototype.toString, "1503dc258e7809ec4d938941a16df979", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "1503dc258e7809ec4d938941a16df979" due to: ' + e); + } + }, + '(()=>{const o=!1,t=Reflect.apply,e=Object.hasOwn,r=Array.isArray,n=Promise.prototype.then,l=Boolean,i=JSON.stringify,s=new Proxy(l,{apply:(o,e,r)=>(!0===r[0]&&(r[0]=!1),t(o,e,r))});window.Promise.prototype.then=new Proxy(n,{apply:(o,e,r)=>(r[0]===l&&(r[0]=s),t(o,e,r))}),window.JSON.stringify=new Proxy(i,{apply:(n,l,i)=>{try{const o=i[0];null!==o&&"object"==typeof o&&!r(o)&&e(o,"blocked")&&e(o,"failed_hosts")&&(i[0]={...o,blocked:!1,path:"clean",dom_hits:0,dom_control_blocked:!1,target_hits:0,target_timeouts:0,control_hits:0,control_timeouts:0,network_control_blocked:!1,forged_hits:0,forgery_voided:!1,tamper:"",failed_hosts:""})}catch(t){o}return t(n,l,i)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f4484bab84a05eb6a0713bacb2881845 === e) return; + (()=>{ + const e = Reflect.apply, o = Object.hasOwn, t = Array.isArray, r = Promise.prototype.then, n1 = Boolean, a = JSON.stringify, i1 = new Proxy(n1, { + apply: (o, t, r)=>(!0 === r[0] && (r[0] = !1), e(o, t, r)) + }); + window.Promise.prototype.then = new Proxy(r, { + apply: (o, t, r)=>(r[0] === n1 && (r[0] = i1), e(o, t, r)) + }), window.JSON.stringify = new Proxy(a, { + apply: (r, n1, a)=>{ + try { + const e = a[0]; + null !== e && "object" == typeof e && !t(e) && o(e, "blocked") && o(e, "failed_hosts") && (a[0] = { + ...e, + blocked: !1, + path: "clean", + dom_hits: 0, + dom_control_blocked: !1, + target_hits: 0, + target_timeouts: 0, + control_hits: 0, + control_timeouts: 0, + network_control_blocked: !1, + forged_hits: 0, + forgery_voided: !1, + tamper: "", + failed_hosts: "" + }); + } catch (e) {} + return e(r, n1, a); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "f4484bab84a05eb6a0713bacb2881845", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f4484bab84a05eb6a0713bacb2881845" due to: ' + e); + } + }, + '(()=>{const e=()=>{document.querySelectorAll(".chakra-portal").forEach((e=>{e.querySelector(\'.chakra-modal__overlay[style*="opacity"]\')&&e.setAttribute("style","display: none !important;")}))},t=()=>{},a=function(t,a){const r={name:t,listener:a};requestAnimationFrame((()=>{try{"rewardedSlotGranted"===r.name&&setTimeout(e,2e3),r.listener()}catch(e){}}))};window.googletag={cmd:[],pubads:()=>({addEventListener:a,removeEventListener:t,refresh:t,getTargeting:()=>[],setTargeting:t,disableInitialLoad:t,enableSingleRequest:t,collapseEmptyDivs:t,getSlots:t}),defineSlot:()=>({addService(){}}),defineOutOfPageSlot:t,enableServices:t,display:t,enums:{OutOfPageFormat:{REWARDED:1}}},googletag.cmd.push=e=>{try{e()}catch(e){}return 1}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["788553a11ab6cd27600ce601f07d7af8"] === e) return; + (()=>{ + const e = ()=>{ + document.querySelectorAll(".chakra-portal").forEach((e)=>{ + e.querySelector('.chakra-modal__overlay[style*="opacity"]') && e.setAttribute("style", "display: none !important;"); + }); + }, t = ()=>{}, r = function(t, r) { + const a = { + name: t, + listener: r + }; + requestAnimationFrame(()=>{ + try { + "rewardedSlotGranted" === a.name && setTimeout(e, 2e3), a.listener(); + } catch (e) {} + }); + }; + window.googletag = { + cmd: [], + pubads: ()=>({ + addEventListener: r, + removeEventListener: t, + refresh: t, + getTargeting: ()=>[], + setTargeting: t, + disableInitialLoad: t, + enableSingleRequest: t, + collapseEmptyDivs: t, + getSlots: t + }), + defineSlot: ()=>({ + addService () {} + }), + defineOutOfPageSlot: t, + enableServices: t, + display: t, + enums: { + OutOfPageFormat: { + REWARDED: 1 + } + } + }, googletag.cmd.push = (e)=>{ + try { + e(); + } catch (e) {} + return 1; + }; + })(); + Object.defineProperty(Window.prototype.toString, "788553a11ab6cd27600ce601f07d7af8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "788553a11ab6cd27600ce601f07d7af8" due to: ' + e); + } + }, + '(()=>{document.addEventListener(\'DOMContentLoaded\',()=>{if(window.CryptoJSAesJson&&window.CryptoJSAesJson.decrypt){const e=document.createElement("link");function t(){const t=document.querySelector(".entry-header.header");return parseInt(t.getAttribute("data-id"))}e.setAttribute("rel","stylesheet"),e.setAttribute("media","all"),e.setAttribute("href","/wp-content/cache/autoptimize/css/autoptimize_92c5b1cf0217cba9b3fab27d39f320b9.css"),document.head.appendChild(e);const r=3,n=5,o=13,a="07";let c="",i="";const d=1,l=6,g=1,s=5,u=2,p=8,m=8,A=(t,e)=>parseInt(t.toString()+e.toString()),b=(t,e,r)=>t.toString()+e.toString()+r.toString(),S=()=>{const e=document.querySelectorAll(".reading-content .page-break img").length;let c=parseInt((t()+A(o,a))*r-e);return c=A(2*n+1,c),c},h=()=>{const e=document.querySelectorAll(".reading-content .page-break img").length;let r=parseInt((t()+A(p,m))*(2*d)-e-(2*d*2+1));return r=b(2*l+g+g+1,c,r),r},y=()=>{const e=document.querySelectorAll(".reading-content .page-break img").length;return b(t()+2*s*2,i,e*(2*u))},f=(t,e)=>CryptoJSAesJson.decrypt(t,e);let k=document.querySelectorAll(".reading-content .page-break img");k.forEach((t=>{const e=t.getAttribute("id"),r=f(e,S().toString());t.setAttribute("id",r)})),k=document.querySelectorAll(".reading-content .page-break img"),k.forEach((t=>{const e=t.getAttribute("id"),r=parseInt(e.replace(/image-(\\d+)[a-z]+/i,"$1"));document.querySelectorAll(".reading-content .page-break")[r].appendChild(t)})),k=document.querySelectorAll(".reading-content .page-break img"),k.forEach((t=>{const e=t.getAttribute("id"),r=e.slice(-1);c+=r,t.setAttribute("id",e.slice(0,-1))})),k=document.querySelectorAll(".reading-content .page-break img"),k.forEach((t=>{const e=t.getAttribute("dta"),r=f(e,h().toString());t.setAttribute("dta",r)})),k=document.querySelectorAll(".reading-content .page-break img"),k.forEach((t=>{const e=t.getAttribute("dta").slice(-2);i+=e,t.removeAttribute("dta")})),k.forEach((t=>{var e=t.getAttribute("data-src"),r=f(e,y().toString());t.setAttribute("data-src",r)})),k.forEach((t=>{t.classList.add("wp-manga-chapter-img","img-responsive","lazyload","effect-fade")}))}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["793501cfe6b6465e5f629489b079c172"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + if (window.CryptoJSAesJson && window.CryptoJSAesJson.decrypt) { + const t = document.createElement("link"); + function e() { + const e = document.querySelector(".entry-header.header"); + return parseInt(e.getAttribute("data-id")); + } + t.setAttribute("rel", "stylesheet"), t.setAttribute("media", "all"), t.setAttribute("href", "/wp-content/cache/autoptimize/css/autoptimize_92c5b1cf0217cba9b3fab27d39f320b9.css"), document.head.appendChild(t); + const r = 3, n1 = 5, o = 13, c = "07"; + let a = "", i1 = ""; + const d = 1, l = 6, u = 1, g = 5, s = 2, b = 8, p = 8, m = (e, t)=>parseInt(e.toString() + t.toString()), A = (e, t, r)=>e.toString() + t.toString() + r.toString(), f = ()=>{ + const t = document.querySelectorAll(".reading-content .page-break img").length; + let a = parseInt((e() + m(o, c)) * r - t); + return a = m(2 * n1 + 1, a), a; + }, S = ()=>{ + const t = document.querySelectorAll(".reading-content .page-break img").length; + let r = parseInt((e() + m(b, p)) * (2 * d) - t - (2 * d * 2 + 1)); + return r = A(2 * l + u + u + 1, a, r), r; + }, y = ()=>{ + const t = document.querySelectorAll(".reading-content .page-break img").length; + return A(e() + 2 * g * 2, i1, t * (2 * s)); + }, h = (e, t)=>CryptoJSAesJson.decrypt(e, t); + let q = document.querySelectorAll(".reading-content .page-break img"); + q.forEach((e)=>{ + const t = e.getAttribute("id"), r = h(t, f().toString()); + e.setAttribute("id", r); + }), q = document.querySelectorAll(".reading-content .page-break img"), q.forEach((e)=>{ + const t = e.getAttribute("id"), r = parseInt(t.replace(/image-(\d+)[a-z]+/i, "$1")); + document.querySelectorAll(".reading-content .page-break")[r].appendChild(e); + }), q = document.querySelectorAll(".reading-content .page-break img"), q.forEach((e)=>{ + const t = e.getAttribute("id"), r = t.slice(-1); + a += r, e.setAttribute("id", t.slice(0, -1)); + }), q = document.querySelectorAll(".reading-content .page-break img"), q.forEach((e)=>{ + const t = e.getAttribute("dta"), r = h(t, S().toString()); + e.setAttribute("dta", r); + }), q = document.querySelectorAll(".reading-content .page-break img"), q.forEach((e)=>{ + const t = e.getAttribute("dta").slice(-2); + i1 += t, e.removeAttribute("dta"); + }), q.forEach((e)=>{ + var t = e.getAttribute("data-src"), r = h(t, y().toString()); + e.setAttribute("data-src", r); + }), q.forEach((e)=>{ + e.classList.add("wp-manga-chapter-img", "img-responsive", "lazyload", "effect-fade"); + }); + } + }); + Object.defineProperty(Window.prototype.toString, "793501cfe6b6465e5f629489b079c172", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "793501cfe6b6465e5f629489b079c172" due to: ' + e); + } + }, + '(()=>{const e=new Map,t=function(){},o=t;o.prototype.dispose=t,o.prototype.setNetwork=t,o.prototype.resize=t,o.prototype.setServer=t,o.prototype.setLogLevel=t,o.prototype.newContext=function(){return this},o.prototype.setParameter=t,o.prototype.addEventListener=function(t,o){t&&(console.debug(`Type: ${t}, callback: ${o}`),e.set(t,o))},o.prototype.removeEventListener=t,o.prototype.setProfile=t,o.prototype.setCapability=t,o.prototype.setVideoAsset=t,o.prototype.setSiteSection=t,o.prototype.addKeyValue=t,o.prototype.addTemporalSlot=t,o.prototype.registerCustomPlayer=t,o.prototype.setVideoDisplaySize=t,o.prototype.setContentVideoElement=t,o.prototype.registerVideoDisplayBase=t,o.prototype.submitRequest=function(){const t={type:tv.freewheel.SDK.EVENT_SLOT_ENDED},o=e.get("EVENT_SLOT_ENDED");o&&setTimeout((()=>{try{o(t)}catch(e){console.error(e)}}),1)},window.tv={freewheel:{SDK:{Ad:t,AdManager:o,AdListener:t,_instanceQueue:{},setLogLevel:t,EVENT_SLOT_ENDED:"EVENT_SLOT_ENDED"}}}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["75be2f053259701edcb277b5ff24cd28"] === e) return; + (()=>{ + const e = new Map, t = function() {}, o = t; + o.prototype.dispose = t, o.prototype.setNetwork = t, o.prototype.resize = t, o.prototype.setServer = t, o.prototype.setLogLevel = t, o.prototype.newContext = function() { + return this; + }, o.prototype.setParameter = t, o.prototype.addEventListener = function(t, o) { + t && (console.debug(`Type: ${t}, callback: ${o}`), e.set(t, o)); + }, o.prototype.removeEventListener = t, o.prototype.setProfile = t, o.prototype.setCapability = t, o.prototype.setVideoAsset = t, o.prototype.setSiteSection = t, o.prototype.addKeyValue = t, o.prototype.addTemporalSlot = t, o.prototype.registerCustomPlayer = t, o.prototype.setVideoDisplaySize = t, o.prototype.setContentVideoElement = t, o.prototype.registerVideoDisplayBase = t, o.prototype.submitRequest = function() { + const t = { + type: tv.freewheel.SDK.EVENT_SLOT_ENDED + }, o = e.get("EVENT_SLOT_ENDED"); + o && setTimeout(()=>{ + try { + o(t); + } catch (e) { + console.error(e); + } + }, 1); + }, window.tv = { + freewheel: { + SDK: { + Ad: t, + AdManager: o, + AdListener: t, + _instanceQueue: {}, + setLogLevel: t, + EVENT_SLOT_ENDED: "EVENT_SLOT_ENDED" + } + } + }; + })(); + Object.defineProperty(Window.prototype.toString, "75be2f053259701edcb277b5ff24cd28", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "75be2f053259701edcb277b5ff24cd28" due to: ' + e); + } + }, + '(()=>{const e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").set,t=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").get;Object.defineProperty(Element.prototype,"innerHTML",{get(){return t.call(this)},set(t){if(t?.includes?.("disable Adblock"))return;e.call(this,t)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["272813737cd339fd9b635273bcbc7485"] === e) return; + (()=>{ + const e = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").set, t = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").get; + Object.defineProperty(Element.prototype, "innerHTML", { + get () { + return t.call(this); + }, + set (t) { + var _t_includes; + (t === null || t === void 0 ? void 0 : (_t_includes = t.includes) === null || _t_includes === void 0 ? void 0 : _t_includes.call(t, "disable Adblock")) || e.call(this, t); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "272813737cd339fd9b635273bcbc7485", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "272813737cd339fd9b635273bcbc7485" due to: ' + e); + } + }, + '(()=>{const t=/free-download-form|\'\\),_0x|\\)\\]\\(function\\(_0x|=>\\{return/,e={apply:(t,e,o)=>{const n=o[0];"boolean"==typeof n&&!0===n&&(o[0]=!1),setTimeout((()=>Reflect.apply(t,e,o)),2e3)}},o={apply:(o,n,r)=>{const i=r[0];return"function"==typeof i&&t.test(i.toString())&&(r[0]=new Proxy(r[0],e)),Reflect.apply(o,n,r)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then,o);const n=async t=>{t.preventDefault();const e=t.currentTarget;"function"==typeof window.vhit?.report&&await window.vhit.report(),e.form.requestSubmit(e)};window.addEventListener("load",(()=>{const t=document.querySelector("form#go-link button#link-button");if(t){const e=t.cloneNode(!0);t.parentNode.replaceChild(e,t),e.removeAttribute("disabled"),e.addEventListener("click",n)}}))})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["352a8e829f13921ee700e5e67451dada"] === e) return; + (()=>{ + const e = /free-download-form|'\),_0x|\)\]\(function\(_0x|=>\{return/, t = { + apply: (e, t, o)=>{ + const n1 = o[0]; + "boolean" == typeof n1 && !0 === n1 && (o[0] = !1), setTimeout(()=>Reflect.apply(e, t, o), 2e3); + } + }, o = { + apply: (o, n1, r)=>{ + const i1 = r[0]; + return "function" == typeof i1 && e.test(i1.toString()) && (r[0] = new Proxy(r[0], t)), Reflect.apply(o, n1, r); + } + }; + window.Promise.prototype.then = new Proxy(window.Promise.prototype.then, o); + const n1 = async (e)=>{ + var _window_vhit; + e.preventDefault(); + const t = e.currentTarget; + "function" == typeof ((_window_vhit = window.vhit) === null || _window_vhit === void 0 ? void 0 : _window_vhit.report) && await window.vhit.report(), t.form.requestSubmit(t); + }; + window.addEventListener("load", ()=>{ + const e = document.querySelector("form#go-link button#link-button"); + if (e) { + const t = e.cloneNode(!0); + e.parentNode.replaceChild(t, e), t.removeAttribute("disabled"), t.addEventListener("click", n1); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "352a8e829f13921ee700e5e67451dada", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "352a8e829f13921ee700e5e67451dada" due to: ' + e); + } + }, + '(()=>{let e=!0;const t=()=>{e=!0},r={apply:(r,s,n)=>{if(!e)return Reflect.apply(r,s,n);try{const o=n[0];if(o?.request?.body){let e=o.request.body;if(e?.includes(\'"event_type":"end"\')&&e?.includes(\'"client_timestamp":\'))return e=e.replace(/"client_timestamp":\\d+/,`"client_timestamp":${Date.now()+6e4}`),o.request.body=e,void setTimeout(()=>{Reflect.apply(r,s,n)},2e3);if(e?.includes(\'"event_type":"error"\'))return}if(o?.request?.url?.includes("/stream/v1/channels/"))return void setTimeout(()=>{Reflect.apply(r,s,n),e=!1,setTimeout(t,6e5)},4e3)}catch(e){}return Reflect.apply(r,s,n)}};window.Worker.prototype.postMessage=new Proxy(window.Worker.prototype.postMessage,r)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c72ba64bb6de276c5955d880eac9ae87 === e) return; + (()=>{ + let e = !0; + const t = ()=>{ + e = !0; + }, r = { + apply: (r, o, n1)=>{ + if (!e) return Reflect.apply(r, o, n1); + try { + var _c_request, _c_request_url, _c_request1; + const c = n1[0]; + if (c === null || c === void 0 ? void 0 : (_c_request = c.request) === null || _c_request === void 0 ? void 0 : _c_request.body) { + let e = c.request.body; + if ((e === null || e === void 0 ? void 0 : e.includes('"event_type":"end"')) && (e === null || e === void 0 ? void 0 : e.includes('"client_timestamp":'))) return e = e.replace(/"client_timestamp":\d+/, `"client_timestamp":${Date.now() + 6e4}`), c.request.body = e, void setTimeout(()=>{ + Reflect.apply(r, o, n1); + }, 2e3); + if (e === null || e === void 0 ? void 0 : e.includes('"event_type":"error"')) return; + } + if (c === null || c === void 0 ? void 0 : (_c_request1 = c.request) === null || _c_request1 === void 0 ? void 0 : (_c_request_url = _c_request1.url) === null || _c_request_url === void 0 ? void 0 : _c_request_url.includes("/stream/v1/channels/")) return void setTimeout(()=>{ + Reflect.apply(r, o, n1), e = !1, setTimeout(t, 6e5); + }, 4e3); + } catch (e) {} + return Reflect.apply(r, o, n1); + } + }; + window.Worker.prototype.postMessage = new Proxy(window.Worker.prototype.postMessage, r); + })(); + Object.defineProperty(Window.prototype.toString, "c72ba64bb6de276c5955d880eac9ae87", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c72ba64bb6de276c5955d880eac9ae87" due to: ' + e); + } + }, + '(()=>{const e=window.Promise,o={construct:(o,t,n)=>t[0]&&t[0]?.toString()?.includes("[!1,!1,!1,!1]")&&t[0]?.toString()?.includes(".responseText")?e.resolve(!1):Reflect.construct(o,t,n)},t=new Proxy(window.Promise,o);Object.defineProperty(window,"Promise",{set:e=>{},get:()=>t})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4e4e57eff747aed19b1eb6c7b2758126"] === e) return; + (()=>{ + const e = window.Promise, t = { + construct: (t, o, r)=>{ + var _o__toString, _o_, _o__toString1, _o_1; + return o[0] && ((_o_ = o[0]) === null || _o_ === void 0 ? void 0 : (_o__toString = _o_.toString()) === null || _o__toString === void 0 ? void 0 : _o__toString.includes("[!1,!1,!1,!1]")) && ((_o_1 = o[0]) === null || _o_1 === void 0 ? void 0 : (_o__toString1 = _o_1.toString()) === null || _o__toString1 === void 0 ? void 0 : _o__toString1.includes(".responseText")) ? e.resolve(!1) : Reflect.construct(t, o, r); + } + }, o = new Proxy(window.Promise, t); + Object.defineProperty(window, "Promise", { + set: (e)=>{}, + get: ()=>o + }); + })(); + Object.defineProperty(Window.prototype.toString, "4e4e57eff747aed19b1eb6c7b2758126", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4e4e57eff747aed19b1eb6c7b2758126" due to: ' + e); + } + }, + "(()=>{window.viAPItag={init(){}}})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["88012e776a891c545cc6e77db0f643af"] === e) return; + window.viAPItag = { + init () {} + }; + Object.defineProperty(Window.prototype.toString, "88012e776a891c545cc6e77db0f643af", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "88012e776a891c545cc6e77db0f643af" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{ "function"==typeof ViewModelBase&&"object"==typeof ViewModelBase.prototype&&"function"==typeof ViewModelBase.prototype.LoadBrandAdAsync&&(ViewModelBase.prototype.LoadBrandAdAsync=function(){}) }));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ac3452ef83db17c4e84323d15083a03b === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + "function" == typeof ViewModelBase && "object" == typeof ViewModelBase.prototype && "function" == typeof ViewModelBase.prototype.LoadBrandAdAsync && (ViewModelBase.prototype.LoadBrandAdAsync = function() {}); + }); + Object.defineProperty(Window.prototype.toString, "ac3452ef83db17c4e84323d15083a03b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ac3452ef83db17c4e84323d15083a03b" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{ var a=document.querySelectorAll("ins.adsbygoogle");a.length&&a.forEach(a=>{var b=document.createElement("iframe");b.style="display: none !important;",a.setAttribute("data-ad-status","filled"),a.appendChild(b)}) }));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["81b55e3b01cb8f931036cccb4d1056b6"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + var e = document.querySelectorAll("ins.adsbygoogle"); + e.length && e.forEach((e)=>{ + var t = document.createElement("iframe"); + t.style = "display: none !important;", e.setAttribute("data-ad-status", "filled"), e.appendChild(t); + }); + }); + Object.defineProperty(Window.prototype.toString, "81b55e3b01cb8f931036cccb4d1056b6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "81b55e3b01cb8f931036cccb4d1056b6" due to: ' + e); + } + }, + '(function(){window.adnPopConfig={zoneId:"149"}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.cdb400a346ffb8cf37f33a522644f2cb === e) return; + window.adnPopConfig = { + zoneId: "149" + }; + Object.defineProperty(Window.prototype.toString, "cdb400a346ffb8cf37f33a522644f2cb", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "cdb400a346ffb8cf37f33a522644f2cb" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,e,o)=>{try{const t=e,o=t?.[0];t&&t.length>0&&t.length<10&&"string"==typeof o&&o?.includes?.("-bait-")&&(e=[])}catch(t){}return Reflect.apply(t,e,o)}};window.Array.prototype.some=new Proxy(window.Array.prototype.some,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ac633d86bc395ade3c178ab74b9477d7 === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + try { + var _r_includes; + const e = t, r = e === null || e === void 0 ? void 0 : e[0]; + e && e.length > 0 && e.length < 10 && "string" == typeof r && (r === null || r === void 0 ? void 0 : (_r_includes = r.includes) === null || _r_includes === void 0 ? void 0 : _r_includes.call(r, "-bait-")) && (t = []); + } catch (e) {} + return Reflect.apply(e, t, r); + } + }; + window.Array.prototype.some = new Proxy(window.Array.prototype.some, e); + })(); + Object.defineProperty(Window.prototype.toString, "ac633d86bc395ade3c178ab74b9477d7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ac633d86bc395ade3c178ab74b9477d7" due to: ' + e); + } + }, + '!function(){window.adsbygoogle={loaded:!0,push:function(){"undefined"===typeof this.length&&(this.length=0,this.length+=1)}}}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["065d3c28da0404a4fdfd569932271571"] === e) return; + window.adsbygoogle = { + loaded: !0, + push: function() { + void 0 === this.length && (this.length = 0, this.length += 1); + } + }; + Object.defineProperty(Window.prototype.toString, "065d3c28da0404a4fdfd569932271571", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "065d3c28da0404a4fdfd569932271571" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{ var b=new MutationObserver(function(){try{for(var a,d=function(c){for(var a="",d=0;d`,h=document.querySelector("body > *"),j=document.querySelectorAll(".phpbb-ads-center > .adsbygoogle");h&&j.length&&(!h.querySelector("iframe#aswift_0")&&h.insertAdjacentHTML("afterend",g),j.forEach(a=>{a.querySelector("iframe#aswift_0")||(a.parentNode.style.height="200px",a.parentNode.style.width="200px",a.parentNode.innerHTML=g)}))}var k=document.querySelector(".page-body"),l=document.querySelectorAll(".adsbygoogle, .phpbb-ads-center");k&&!k.innerText.includes("deactivating your Ad-Blocker")&&l.length&&(l.forEach(a=>{a.remove()}),b.disconnect())}catch(a){}});b.observe(document,{childList:!0,subtree:!0}),setTimeout(function(){b.disconnect()},1E4) }));})();': ()=>{ + try { + const a = "done"; + if (Window.prototype.toString["802366024dd441867900263826a1b687"] === a) return; + document.addEventListener("DOMContentLoaded", ()=>{ + var a = new MutationObserver(function() { + try { + for(var e, t = function(a) { + for(var e = "", t = 0; t < a; t++)e += "0123456789".charAt(Math.floor(10 * Math.random())); + return e; + }, i1 = document.querySelectorAll(".adsbygoogle, script[data-ad-client]"), o = 0; o < i1.length; o++)if (i1[o].getAttribute("data-ad-client")) { + e = i1[o].getAttribute("data-ad-client"); + break; + } + if (e) { + var r = ``, p = document.querySelector("body > *"), n1 = document.querySelectorAll(".phpbb-ads-center > .adsbygoogle"); + p && n1.length && (!p.querySelector("iframe#aswift_0") && p.insertAdjacentHTML("afterend", r), n1.forEach((a)=>{ + a.querySelector("iframe#aswift_0") || (a.parentNode.style.height = "200px", a.parentNode.style.width = "200px", a.parentNode.innerHTML = r); + })); + } + var d = document.querySelector(".page-body"), l = document.querySelectorAll(".adsbygoogle, .phpbb-ads-center"); + d && !d.innerText.includes("deactivating your Ad-Blocker") && l.length && (l.forEach((a)=>{ + a.remove(); + }), a.disconnect()); + } catch (e) {} + }); + a.observe(document, { + childList: !0, + subtree: !0 + }), setTimeout(function() { + a.disconnect(); + }, 1e4); + }); + Object.defineProperty(Window.prototype.toString, "802366024dd441867900263826a1b687", { + value: a, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (a) { + console.error('Error executing AG js rule with uniqueId "802366024dd441867900263826a1b687" due to: ' + a); + } + }, + '(()=>{const e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").set,t=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").get;Object.defineProperty(Element.prototype,"innerHTML",{get(){return t.call(this)},set(t){if(t?.includes?.("disable your adblocker"))throw new Error;e.call(this,t)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["96cd53fdc3f56d04903d4a180e507d95"] === e) return; + (()=>{ + const e = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").set, t = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").get; + Object.defineProperty(Element.prototype, "innerHTML", { + get () { + return t.call(this); + }, + set (t) { + var _t_includes; + if (t === null || t === void 0 ? void 0 : (_t_includes = t.includes) === null || _t_includes === void 0 ? void 0 : _t_includes.call(t, "disable your adblocker")) throw new Error; + e.call(this, t); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "96cd53fdc3f56d04903d4a180e507d95", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "96cd53fdc3f56d04903d4a180e507d95" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,o,t)=>(null===t[0]&&(t[0]={isUserSubscriber:!0}),Reflect.apply(e,o,t))},o={apply:(o,t,n)=>{const r=n[0];return"function"==typeof r&&r.toString().includes("AdBlockDetector")&&(n[0]=()=>{}),"function"==typeof r&&r.toString().includes("Preroll Ad")&&(n[0]=new Proxy(n[0],e)),Reflect.apply(o,t,n)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then,o)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["785fddde2c2648fbf7b3c872780aab8f"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>(null === o[0] && (o[0] = { + isUserSubscriber: !0 + }), Reflect.apply(e, t, o)) + }, t = { + apply: (t, o, r)=>{ + const n1 = r[0]; + return "function" == typeof n1 && n1.toString().includes("AdBlockDetector") && (r[0] = ()=>{}), "function" == typeof n1 && n1.toString().includes("Preroll Ad") && (r[0] = new Proxy(r[0], e)), Reflect.apply(t, o, r); + } + }; + window.Promise.prototype.then = new Proxy(window.Promise.prototype.then, t); + })(); + Object.defineProperty(Window.prototype.toString, "785fddde2c2648fbf7b3c872780aab8f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "785fddde2c2648fbf7b3c872780aab8f" due to: ' + e); + } + }, + '(()=>{const e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").set,t=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").get;Object.defineProperty(Element.prototype,"innerHTML",{get(){return t.call(this)},set(t){if(t?.includes?.("allow adblock"))throw new Error;e.call(this,t)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["27477abfbce9ce3be4dd5c5e090561b7"] === e) return; + (()=>{ + const e = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").set, t = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").get; + Object.defineProperty(Element.prototype, "innerHTML", { + get () { + return t.call(this); + }, + set (t) { + var _t_includes; + if (t === null || t === void 0 ? void 0 : (_t_includes = t.includes) === null || _t_includes === void 0 ? void 0 : _t_includes.call(t, "allow adblock")) throw new Error; + e.call(this, t); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "27477abfbce9ce3be4dd5c5e090561b7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "27477abfbce9ce3be4dd5c5e090561b7" due to: ' + e); + } + }, + "window.adsbygoogle = { loaded: !0 };": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.df4e0801aa685812f605b6558f08d2df === e) return; + window.adsbygoogle = { + loaded: !0 + }; + Object.defineProperty(Window.prototype.toString, "df4e0801aa685812f605b6558f08d2df", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "df4e0801aa685812f605b6558f08d2df" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,r,e)=>{try{const t=e[0];t?.matches?.(\'[class^="b_ad"]\')&&(e[0]=document.querySelector("#b_results .b_algo"))}catch(t){}return Reflect.apply(t,r,e)}};window.Array.prototype.push=new Proxy(window.Array.prototype.push,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["090ddb6ae838bb8f2e9f32783f4a3f91"] === e) return; + (()=>{ + const e = { + apply: (e, r, t)=>{ + try { + var _e_matches; + const e = t[0]; + (e === null || e === void 0 ? void 0 : (_e_matches = e.matches) === null || _e_matches === void 0 ? void 0 : _e_matches.call(e, '[class^="b_ad"]')) && (t[0] = document.querySelector("#b_results .b_algo")); + } catch (e) {} + return Reflect.apply(e, r, t); + } + }; + window.Array.prototype.push = new Proxy(window.Array.prototype.push, e); + })(); + Object.defineProperty(Window.prototype.toString, "090ddb6ae838bb8f2e9f32783f4a3f91", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "090ddb6ae838bb8f2e9f32783f4a3f91" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,n)=>{const o=Reflect.apply(e,t,n);try{o instanceof HTMLIFrameElement&&""===o.src&&o.contentWindow&&(o.contentWindow.Element.prototype.querySelectorAll=window.Element.prototype.querySelectorAll)}catch(e){}return o}};Node.prototype.appendChild=new Proxy(Node.prototype.appendChild,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["30bbe571a0d19393740111580aa75056"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + const r = Reflect.apply(e, t, o); + try { + r instanceof HTMLIFrameElement && "" === r.src && r.contentWindow && (r.contentWindow.Element.prototype.querySelectorAll = window.Element.prototype.querySelectorAll); + } catch (e) {} + return r; + } + }; + Node.prototype.appendChild = new Proxy(Node.prototype.appendChild, e); + })(); + Object.defineProperty(Window.prototype.toString, "30bbe571a0d19393740111580aa75056", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "30bbe571a0d19393740111580aa75056" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,l)=>{try{const e=l[0];e?.includes(".b_ad")?l[0]="#b_results .b_algo:not([style]):first-child":e?.includes(".b_restorableLink")&&(l[0]=".b_algo:not([style]):first-child")}catch(e){}return Reflect.apply(e,t,l)}};window.Element.prototype.querySelectorAll=new Proxy(window.Element.prototype.querySelectorAll,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["3f9349499c12f0de6fc9e5d54f2f664f"] === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + try { + const e = r[0]; + (e === null || e === void 0 ? void 0 : e.includes(".b_ad")) ? r[0] = "#b_results .b_algo:not([style]):first-child" : (e === null || e === void 0 ? void 0 : e.includes(".b_restorableLink")) && (r[0] = ".b_algo:not([style]):first-child"); + } catch (e) {} + return Reflect.apply(e, t, r); + } + }; + window.Element.prototype.querySelectorAll = new Proxy(window.Element.prototype.querySelectorAll, e); + })(); + Object.defineProperty(Window.prototype.toString, "3f9349499c12f0de6fc9e5d54f2f664f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "3f9349499c12f0de6fc9e5d54f2f664f" due to: ' + e); + } + }, + '(()=>{const t=/^.?(Sponsored|广告).?$/,e=new Set,o={apply:(o,n,r)=>{try{const o=r[0];o&&"string"==typeof o&&t.test(o.trim())&&e.add(n.canvas)}catch(t){}return Reflect.apply(o,n,r)}};window.CanvasRenderingContext2D.prototype.fillText=new Proxy(window.CanvasRenderingContext2D.prototype.fillText,o);const n=new Set,r={apply:(t,o,r)=>{try{if(e.has(o)){const e=Reflect.apply(t,o,r);return n.add(e),e}}catch(t){}return Reflect.apply(t,o,r)}};window.HTMLCanvasElement.prototype.toDataURL=new Proxy(window.HTMLCanvasElement.prototype.toDataURL,r);const a={apply:(t,e,o)=>{try{r=o[0],Array.from(n).some((t=>r.includes(t)))&&(o[0]=o[0].replace(/(^\\..+?):/,".b_algo:has($1){display:none!important;}$1:"))}catch(t){}var r;return Reflect.apply(t,e,o)}};window.Document.prototype.createTextNode=new Proxy(window.Document.prototype.createTextNode,a)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f9b35df46321d2fbbc6f2fa5a8ce976a === e) return; + (()=>{ + const e = /^.?(Sponsored|广告).?$/, t = new Set, o = { + apply: (o, n1, r)=>{ + try { + const o = r[0]; + o && "string" == typeof o && e.test(o.trim()) && t.add(n1.canvas); + } catch (e) {} + return Reflect.apply(o, n1, r); + } + }; + window.CanvasRenderingContext2D.prototype.fillText = new Proxy(window.CanvasRenderingContext2D.prototype.fillText, o); + const n1 = new Set, r = { + apply: (e, o, r)=>{ + try { + if (t.has(o)) { + const t = Reflect.apply(e, o, r); + return n1.add(t), t; + } + } catch (e) {} + return Reflect.apply(e, o, r); + } + }; + window.HTMLCanvasElement.prototype.toDataURL = new Proxy(window.HTMLCanvasElement.prototype.toDataURL, r); + const a = { + apply: (e, t, o)=>{ + try { + r = o[0], Array.from(n1).some((e)=>r.includes(e)) && (o[0] = o[0].replace(/(^\..+?):/, ".b_algo:has($1){display:none!important;}$1:")); + } catch (e) {} + var r; + return Reflect.apply(e, t, o); + } + }; + window.Document.prototype.createTextNode = new Proxy(window.Document.prototype.createTextNode, a); + })(); + Object.defineProperty(Window.prototype.toString, "f9b35df46321d2fbbc6f2fa5a8ce976a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f9b35df46321d2fbbc6f2fa5a8ce976a" due to: ' + e); + } + }, + "(function(){var b=window.setInterval;window.setInterval=function(a,c){if(!/e\\.display=='hidden'[\\s\\S]*?e\\.visibility=='none'/.test(a.toString()))return b(a,c)}.bind(window)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["799170846df78b2e8c6f8f1ecbe9f9ab"] === e) return; + !function() { + var e = window.setInterval; + window.setInterval = (function(t, n1) { + if (!/e\.display=='hidden'[\s\S]*?e\.visibility=='none'/.test(t.toString())) return e(t, n1); + }).bind(window); + }(); + Object.defineProperty(Window.prototype.toString, "799170846df78b2e8c6f8f1ecbe9f9ab", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "799170846df78b2e8c6f8f1ecbe9f9ab" due to: ' + e); + } + }, + "window.$tieE3 = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.abf848581aab7ee411a3a190d6305e9f === e) return; + window.$tieE3 = !0; + Object.defineProperty(Window.prototype.toString, "abf848581aab7ee411a3a190d6305e9f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "abf848581aab7ee411a3a190d6305e9f" due to: ' + e); + } + }, + "window.Advertisement = 1;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a77fad03c24e228b97652a46d1fa5f22 === e) return; + window.Advertisement = 1; + Object.defineProperty(Window.prototype.toString, "a77fad03c24e228b97652a46d1fa5f22", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a77fad03c24e228b97652a46d1fa5f22" due to: ' + e); + } + }, + "window.adsEnabled = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["62d14321dc3e190666318c2f0ddfdcac"] === e) return; + window.adsEnabled = !0; + Object.defineProperty(Window.prototype.toString, "62d14321dc3e190666318c2f0ddfdcac", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "62d14321dc3e190666318c2f0ddfdcac" due to: ' + e); + } + }, + "window.uabpdl = window.uabInject = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["33d2335f47a6a24e15dbab294084b29d"] === e) return; + window.uabpdl = window.uabInject = !0; + Object.defineProperty(Window.prototype.toString, "33d2335f47a6a24e15dbab294084b29d", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "33d2335f47a6a24e15dbab294084b29d" due to: ' + e); + } + }, + "window.detector_active = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.fff6b1a1e7573bdc8801939be0d52c55 === e) return; + window.detector_active = !0; + Object.defineProperty(Window.prototype.toString, "fff6b1a1e7573bdc8801939be0d52c55", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "fff6b1a1e7573bdc8801939be0d52c55" due to: ' + e); + } + }, + "window.Adv_ab = false;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["5601052c8ba773fc21566b0dfbe3e078"] === e) return; + window.Adv_ab = !1; + Object.defineProperty(Window.prototype.toString, "5601052c8ba773fc21566b0dfbe3e078", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "5601052c8ba773fc21566b0dfbe3e078" due to: ' + e); + } + }, + "window.adsEnabled=!0;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.be54fb20467f57c75acee13f527620e5 === e) return; + window.adsEnabled = !0; + Object.defineProperty(Window.prototype.toString, "be54fb20467f57c75acee13f527620e5", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "be54fb20467f57c75acee13f527620e5" due to: ' + e); + } + }, + '(function(a){setTimeout=function(){var b="function"==typeof arguments[0]?Function.prototype.toString.call(arguments[0]):"string"==typeof arguments[0]?arguments[0]:String(arguments[0]);return/\\[(_0x[a-z0-9]{4,})\\[\\d+\\]\\][\\[\\(]\\1\\[\\d+\\]/.test(b)?NaN:a.apply(window,arguments)}.bind();Object.defineProperty(setTimeout,"name",{value:a.name});setTimeout.toString=Function.prototype.toString.bind(a)})(setTimeout);': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString.d51de922f2ef3a82152acd709db8a549 === t) return; + !function(t) { + setTimeout = (function() { + var e = "function" == typeof arguments[0] ? Function.prototype.toString.call(arguments[0]) : "string" == typeof arguments[0] ? arguments[0] : String(arguments[0]); + return /\[(_0x[a-z0-9]{4,})\[\d+\]\][\[\(]\1\[\d+\]/.test(e) ? NaN : t.apply(window, arguments); + }).bind(); + Object.defineProperty(setTimeout, "name", { + value: t.name + }); + setTimeout.toString = Function.prototype.toString.bind(t); + }(setTimeout); + Object.defineProperty(Window.prototype.toString, "d51de922f2ef3a82152acd709db8a549", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "d51de922f2ef3a82152acd709db8a549" due to: ' + t); + } + }, + '(function(b,c){setTimeout=function(){var a=arguments[0];if("function"==typeof a&&/^function [A-Za-z]{1,2}\\(\\)\\s*\\{([A-Za-z])\\|\\|\\(\\1=!0,[\\s\\S]{1,13}\\(\\)\\)\\}$/.test(c.call(a)))throw"Adguard stopped a script execution.";return b.apply(window,arguments)}})(setTimeout,Function.prototype.toString);': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["41822b6439a26cd50f44b208e1bad083"] === t) return; + !function(t, e) { + setTimeout = function() { + var o = arguments[0]; + if ("function" == typeof o && /^function [A-Za-z]{1,2}\(\)\s*\{([A-Za-z])\|\|\(\1=!0,[\s\S]{1,13}\(\)\)\}$/.test(e.call(o))) throw "Adguard stopped a script execution."; + return t.apply(window, arguments); + }; + }(setTimeout, Function.prototype.toString); + Object.defineProperty(Window.prototype.toString, "41822b6439a26cd50f44b208e1bad083", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "41822b6439a26cd50f44b208e1bad083" due to: ' + t); + } + }, + "window.sessionStorage.loadedAds = 3;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["73f1b4fc791cbf3105708cabf5b1db21"] === e) return; + window.sessionStorage.loadedAds = 3; + Object.defineProperty(Window.prototype.toString, "73f1b4fc791cbf3105708cabf5b1db21", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "73f1b4fc791cbf3105708cabf5b1db21" due to: ' + e); + } + }, + "(function() { window.xRds = false; window.frg = true; window.frag = true; })();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.baafa2147233f1a8add3836529d4779e === e) return; + !function() { + window.xRds = !1; + window.frg = !0; + window.frag = !0; + }(); + Object.defineProperty(Window.prototype.toString, "baafa2147233f1a8add3836529d4779e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "baafa2147233f1a8add3836529d4779e" due to: ' + e); + } + }, + "window.canABP = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b1d0f666ef36ca7989b62d00b88a8084 === e) return; + window.canABP = !0; + Object.defineProperty(Window.prototype.toString, "b1d0f666ef36ca7989b62d00b88a8084", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b1d0f666ef36ca7989b62d00b88a8084" due to: ' + e); + } + }, + "var _st = window.setTimeout; window.setTimeout = function(a, b) { if(!/displayAdBlockedVideo/.test(a)){ _st(a,b);}};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2ac41d844f1f8bd49b7778aeb6e0c2cc"] === e) return; + var _st = window.setTimeout; + window.setTimeout = function(e, t) { + /displayAdBlockedVideo/.test(e) || _st(e, t); + }; + Object.defineProperty(Window.prototype.toString, "2ac41d844f1f8bd49b7778aeb6e0c2cc", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2ac41d844f1f8bd49b7778aeb6e0c2cc" due to: ' + e); + } + }, + 'document.cookie="popunder=1; path=/;";': ()=>{ + try { + const c = "done"; + if (Window.prototype.toString.cc60c320cd31f7c797cace7d0a8f787a === c) return; + document.cookie = "popunder=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "cc60c320cd31f7c797cace7d0a8f787a", { + value: c, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (c) { + console.error('Error executing AG js rule with uniqueId "cc60c320cd31f7c797cace7d0a8f787a" due to: ' + c); + } + }, + '(()=>{const e={apply:(e,t,c)=>{try{const e=c[1],t=c[2];"redirectToAdblockDetected"===e&&"function"==typeof t?.value&&(c[2].value=()=>{})}catch(e){}return Reflect.apply(e,t,c)}};window.Object.defineProperty=new Proxy(window.Object.defineProperty,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["069a24db4a5d4560bb9968124b35e82a"] === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + try { + const e = r[1], t = r[2]; + "redirectToAdblockDetected" === e && "function" == typeof (t === null || t === void 0 ? void 0 : t.value) && (r[2].value = ()=>{}); + } catch (e) {} + return Reflect.apply(e, t, r); + } + }; + window.Object.defineProperty = new Proxy(window.Object.defineProperty, e); + })(); + Object.defineProperty(Window.prototype.toString, "069a24db4a5d4560bb9968124b35e82a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "069a24db4a5d4560bb9968124b35e82a" due to: ' + e); + } + }, + "(()=>{const e={apply:(e,r,t)=>{try{const e=r[0];e?.adTree&&(r.shift(),t=[])}catch(e){console.trace(e)}return Reflect.apply(e,r,t)}};window.Array.prototype.splice=new Proxy(window.Array.prototype.splice,e)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2fa6b0fc3f291729ed8dab8e63b1df26"] === e) return; + (()=>{ + const e = { + apply: (e, r, t)=>{ + try { + const e = r[0]; + (e === null || e === void 0 ? void 0 : e.adTree) && (r.shift(), t = []); + } catch (e) { + console.trace(e); + } + return Reflect.apply(e, r, t); + } + }; + window.Array.prototype.splice = new Proxy(window.Array.prototype.splice, e); + })(); + Object.defineProperty(Window.prototype.toString, "2fa6b0fc3f291729ed8dab8e63b1df26", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2fa6b0fc3f291729ed8dab8e63b1df26" due to: ' + e); + } + }, + "!function(){if(location.pathname.indexOf(\"/iframe/player\")===-1){Object.defineProperty(Object.prototype, 'kununu_mul', { get: function(){ throw null; }, set: function(){ throw null; }});}}();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0024181b43199be4e6f6d4dc8cace28f"] === e) return; + -1 === location.pathname.indexOf("/iframe/player") && Object.defineProperty(Object.prototype, "kununu_mul", { + get: function() { + throw null; + }, + set: function() { + throw null; + } + }); + Object.defineProperty(Window.prototype.toString, "0024181b43199be4e6f6d4dc8cace28f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0024181b43199be4e6f6d4dc8cace28f" due to: ' + e); + } + }, + '!function(){const r={apply:(r,o,e)=>(e[0]?.includes?.("{}")&&(e[0]="\\n"),Reflect.apply(r,o,e))};window.DOMParser.prototype.parseFromString=new Proxy(window.DOMParser.prototype.parseFromString,r)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["631aed795dd7ba8bffc8ac13694e2216"] === e) return; + !function() { + const e = { + apply: (e, a, r)=>{ + var _r__includes, _r_; + return ((_r_ = r[0]) === null || _r_ === void 0 ? void 0 : (_r__includes = _r_.includes) === null || _r__includes === void 0 ? void 0 : _r__includes.call(_r_, "{}")) && (r[0] = '\n'), Reflect.apply(e, a, r); + } + }; + window.DOMParser.prototype.parseFromString = new Proxy(window.DOMParser.prototype.parseFromString, e); + }(); + Object.defineProperty(Window.prototype.toString, "631aed795dd7ba8bffc8ac13694e2216", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "631aed795dd7ba8bffc8ac13694e2216" due to: ' + e); + } + }, + '(()=>{window.googletag={cmd:[],apiReady:!0,getVersion:function(){return"202609010101"}};window.pbjs={getConsentMetadata(){}};})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d6d22db8f380b5777ac50c35fa683d54 === e) return; + (()=>{ + window.googletag = { + cmd: [], + apiReady: !0, + getVersion: function() { + return "202609010101"; + } + }; + window.pbjs = { + getConsentMetadata () {} + }; + })(); + Object.defineProperty(Window.prototype.toString, "d6d22db8f380b5777ac50c35fa683d54", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d6d22db8f380b5777ac50c35fa683d54" due to: ' + e); + } + }, + '!function(){const e={apply:(e,t,n)=>{if("prg"!==t?.id)return Reflect.apply(e,t,n);const o=Reflect.apply(e,t,n);return Object.defineProperty(o,"top",{value:500}),o}};window.Element.prototype.getBoundingClientRect=new Proxy(window.Element.prototype.getBoundingClientRect,e)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["8de36e4bf3b484248c14b692ab7d0b97"] === e) return; + !function() { + const e = { + apply: (e, t, n1)=>{ + if ("prg" !== (t === null || t === void 0 ? void 0 : t.id)) return Reflect.apply(e, t, n1); + const o = Reflect.apply(e, t, n1); + return Object.defineProperty(o, "top", { + value: 500 + }), o; + } + }; + window.Element.prototype.getBoundingClientRect = new Proxy(window.Element.prototype.getBoundingClientRect, e); + }(); + Object.defineProperty(Window.prototype.toString, "8de36e4bf3b484248c14b692ab7d0b97", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "8de36e4bf3b484248c14b692ab7d0b97" due to: ' + e); + } + }, + "window.atob = function() { };": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.bd6f7fef7248ea934c306654651e8882 === e) return; + window.atob = function() {}; + Object.defineProperty(Window.prototype.toString, "bd6f7fef7248ea934c306654651e8882", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "bd6f7fef7248ea934c306654651e8882" due to: ' + e); + } + }, + "window.canABP = window.canRunAds = window.canCheckAds = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7fa951f734c0ba707fc4893dc83b1a38"] === e) return; + window.canABP = window.canRunAds = window.canCheckAds = !0; + Object.defineProperty(Window.prototype.toString, "7fa951f734c0ba707fc4893dc83b1a38", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7fa951f734c0ba707fc4893dc83b1a38" due to: ' + e); + } + }, + "window.canRun = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.cb7e5a7f0c3e95af411eb95c880d423d === e) return; + window.canRun = !0; + Object.defineProperty(Window.prototype.toString, "cb7e5a7f0c3e95af411eb95c880d423d", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "cb7e5a7f0c3e95af411eb95c880d423d" due to: ' + e); + } + }, + 'window.googleToken = "no";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["14f3ab7c380717fd60634b54e8ee9403"] === e) return; + window.googleToken = "no"; + Object.defineProperty(Window.prototype.toString, "14f3ab7c380717fd60634b54e8ee9403", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "14f3ab7c380717fd60634b54e8ee9403" due to: ' + e); + } + }, + "(()=>{window.com_adswizz_synchro_decorateUrl=(a)=>a;})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e98a98ef2962b13e300d81c08a1652e0 === e) return; + window.com_adswizz_synchro_decorateUrl = (e)=>e; + Object.defineProperty(Window.prototype.toString, "e98a98ef2962b13e300d81c08a1652e0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e98a98ef2962b13e300d81c08a1652e0" due to: ' + e); + } + }, + '(()=>{document.addEventListener(\'DOMContentLoaded\',()=>{var a=document.querySelector("body");document.location.hostname.includes("skmedix.pl")&&a&&a.insertAdjacentHTML("beforeend",\'
\')})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["931980a2c6180f6edbcd6f228a2db536"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + var e = document.querySelector("body"); + document.location.hostname.includes("skmedix.pl") && e && e.insertAdjacentHTML("beforeend", '
'); + }); + Object.defineProperty(Window.prototype.toString, "931980a2c6180f6edbcd6f228a2db536", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "931980a2c6180f6edbcd6f228a2db536" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{ setTimeout(function() { if(typeof show_game_iframe === "function") { show_game_iframe(); } }, 1000); }));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["66e1a81529963f50c62391d4d9356ef0"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + setTimeout(function() { + "function" == typeof show_game_iframe && show_game_iframe(); + }, 1e3); + }); + Object.defineProperty(Window.prototype.toString, "66e1a81529963f50c62391d4d9356ef0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "66e1a81529963f50c62391d4d9356ef0" due to: ' + e); + } + }, + '(()=>{window.sas_idmnet=window.sas_idmnet||{};Object.assign(sas_idmnet,{releaseVideo:function(a){if("object"==typeof videoInit&&"function"==typeof videoInit.start)try{videoInit.start(a,n)}catch(a){}},release:function(){},placementsList:function(){}});const a=function(a,b){if(a&&a.push)for(a.push=b;a.length;)b(a.shift())},b=function(a){try{a()}catch(a){console.error(a)}};"complete"===document.readyState?a(sas_idmnet.cmd,b):window.addEventListener("load",()=>{a(sas_idmnet.cmd,b)})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["35966fc2cd75edd8c085792a4413cc08"] === e) return; + (()=>{ + window.sas_idmnet = window.sas_idmnet || {}; + Object.assign(sas_idmnet, { + releaseVideo: function(e) { + if ("object" == typeof videoInit && "function" == typeof videoInit.start) try { + videoInit.start(e, n); + } catch (e) {} + }, + release: function() {}, + placementsList: function() {} + }); + const e = function(e, t) { + if (e && e.push) for(e.push = t; e.length;)t(e.shift()); + }, t = function(e) { + try { + e(); + } catch (e) { + console.error(e); + } + }; + "complete" === document.readyState ? e(sas_idmnet.cmd, t) : window.addEventListener("load", ()=>{ + e(sas_idmnet.cmd, t); + }); + })(); + Object.defineProperty(Window.prototype.toString, "35966fc2cd75edd8c085792a4413cc08", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "35966fc2cd75edd8c085792a4413cc08" due to: ' + e); + } + }, + "!function(){window.YLHH={bidder:{startAuction:function(){}}};}();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["609bede022cc082da833f6d8f49bff77"] === e) return; + window.YLHH = { + bidder: { + startAuction: function() {} + } + }; + Object.defineProperty(Window.prototype.toString, "609bede022cc082da833f6d8f49bff77", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "609bede022cc082da833f6d8f49bff77" due to: ' + e); + } + }, + "(function(){var c=window.setTimeout;window.setTimeout=function(f,g){return g===1e3&&/#kam-ban-player/.test(f.toString())&&(g*=0.01),c.apply(this,arguments)}.bind(window)})();": ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["4706a9dfd57dc72a9584b54986a27381"] === t) return; + !function() { + var t = window.setTimeout; + window.setTimeout = (function(e, o) { + return 1e3 === o && /#kam-ban-player/.test(e.toString()) && (o *= .01), t.apply(this, arguments); + }).bind(window); + }(); + Object.defineProperty(Window.prototype.toString, "4706a9dfd57dc72a9584b54986a27381", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "4706a9dfd57dc72a9584b54986a27381" due to: ' + t); + } + }, + "Object.defineProperty(Object.prototype,'getCreativeId',{value:()=>{}});": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.bb1e9134a8b4e3c7a0b399a46c02c14b === e) return; + Object.defineProperty(Object.prototype, "getCreativeId", { + value: ()=>{} + }); + Object.defineProperty(Window.prototype.toString, "bb1e9134a8b4e3c7a0b399a46c02c14b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "bb1e9134a8b4e3c7a0b399a46c02c14b" due to: ' + e); + } + }, + '(()=>{const t=Object.getOwnPropertyDescriptor,e={apply:(e,n,r)=>{const o=r[0];if(o?.toString?.()?.includes("EventTarget")){const e=t(o,"addEventListener");e?.set?.toString&&(e.set.toString=function(){}),e?.get?.toString&&(e.get.toString=function(){})}return Reflect.apply(e,n,r)}};window.Object.getOwnPropertyDescriptors=new Proxy(window.Object.getOwnPropertyDescriptors,e)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f5e04b1e897644b8741f5724e8210233 === e) return; + (()=>{ + const e = Object.getOwnPropertyDescriptor, t = { + apply: (t, r, n1)=>{ + var _o_toString, _o_toString1; + const o = n1[0]; + if (o === null || o === void 0 ? void 0 : (_o_toString1 = o.toString) === null || _o_toString1 === void 0 ? void 0 : (_o_toString = _o_toString1.call(o)) === null || _o_toString === void 0 ? void 0 : _o_toString.includes("EventTarget")) { + var _t_set, _t_get; + const t = e(o, "addEventListener"); + (t === null || t === void 0 ? void 0 : (_t_set = t.set) === null || _t_set === void 0 ? void 0 : _t_set.toString) && (t.set.toString = function() {}), (t === null || t === void 0 ? void 0 : (_t_get = t.get) === null || _t_get === void 0 ? void 0 : _t_get.toString) && (t.get.toString = function() {}); + } + return Reflect.apply(t, r, n1); + } + }; + window.Object.getOwnPropertyDescriptors = new Proxy(window.Object.getOwnPropertyDescriptors, t); + })(); + Object.defineProperty(Window.prototype.toString, "f5e04b1e897644b8741f5724e8210233", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f5e04b1e897644b8741f5724e8210233" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,e,o)=>{try{o[0]?.toString().includes("detected:")&&(o[0]=()=>{})}catch(t){}return Reflect.apply(t,e,o)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ac9f18746f9845e03b66324b7876d5d0 === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + try { + var _o_; + ((_o_ = o[0]) === null || _o_ === void 0 ? void 0 : _o_.toString().includes("detected:")) && (o[0] = ()=>{}); + } catch (e) {} + return Reflect.apply(e, t, o); + } + }; + window.Promise.prototype.then = new Proxy(window.Promise.prototype.then, e); + })(); + Object.defineProperty(Window.prototype.toString, "ac9f18746f9845e03b66324b7876d5d0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ac9f18746f9845e03b66324b7876d5d0" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,p,e)=>{try{e.length>0&&("visibility"===e[0]||e[0]?.startsWith?.("shim:"))&&1===e[1]&&(e[1]=0)}catch(t){}return Reflect.apply(t,p,e)}};window.Map.prototype.set=new Proxy(window.Map.prototype.set,t)})();': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString["9a27a7df929713b79f8cf294289dcc27"] === t) return; + (()=>{ + const t = { + apply: (t, e, r)=>{ + try { + var _r__startsWith, _r_; + r.length > 0 && ("visibility" === r[0] || ((_r_ = r[0]) === null || _r_ === void 0 ? void 0 : (_r__startsWith = _r_.startsWith) === null || _r__startsWith === void 0 ? void 0 : _r__startsWith.call(_r_, "shim:"))) && 1 === r[1] && (r[1] = 0); + } catch (t) {} + return Reflect.apply(t, e, r); + } + }; + window.Map.prototype.set = new Proxy(window.Map.prototype.set, t); + })(); + Object.defineProperty(Window.prototype.toString, "9a27a7df929713b79f8cf294289dcc27", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "9a27a7df929713b79f8cf294289dcc27" due to: ' + t); + } + }, + '(()=>{const t={apply:(t,r,e)=>{let o=r;try{const t=o?.length;t&&t>10&&t<30&&(n=o,Array.isArray(n)&&0!==n.length&&n.some((t=>"function"==typeof t&&!!t.toString().includes("ABDetector"))))&&(o=[])}catch(t){}var n;return Reflect.apply(t,o,e)}};window.Array.prototype.map=new Proxy(window.Array.prototype.map,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6ec2adf2cbc34cfc38ddca7a4f5a95ee"] === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + let c = t; + try { + const e = c === null || c === void 0 ? void 0 : c.length; + e && e > 10 && e < 30 && (o = c, Array.isArray(o) && 0 !== o.length && o.some((e)=>"function" == typeof e && !!e.toString().includes("ABDetector"))) && (c = []); + } catch (e) {} + var o; + return Reflect.apply(e, c, r); + } + }; + window.Array.prototype.map = new Proxy(window.Array.prototype.map, e); + })(); + Object.defineProperty(Window.prototype.toString, "6ec2adf2cbc34cfc38ddca7a4f5a95ee", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6ec2adf2cbc34cfc38ddca7a4f5a95ee" due to: ' + e); + } + }, + '(()=>{const t=new Set(["VP","w3","JW"]),e=/\\{return\\(.{1,5}\\)\\(\\)===.\\..\\}/,n={apply:(t,n,r)=>{if("function"!=typeof t)return Reflect.apply(t,n,r);const p=t.toString();return e.test(p)&&(t=function(){return!1}),Reflect.apply(t,n,r)}},r={apply:(t,e,r)=>{let p=Reflect.apply(t,e,r);return"function"==typeof p&&(p=new Proxy(p,n)),p}},p={apply:(e,n,p)=>{try{const o=p[1],c=p[2]?.get;if(!o||"function"!=typeof c)return Reflect.apply(e,n,p);t.has(o)&&/^\\(\\)=>.$/.test(c.toString())?p[2].get=function(){return function(){return!1}}:"A"===o&&c.toString().includes("()=>i")&&(p[2].get=new Proxy(p[2].get,r))}catch(t){}return Reflect.apply(e,n,p)}};Object.defineProperty=new Proxy(Object.defineProperty,p)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["419ecd20b58c82c1446f3eefaac9ae3b"] === e) return; + (()=>{ + const e = new Set([ + "VP", + "w3", + "JW" + ]), t = /\{return\(.{1,5}\)\(\)===.\..\}/, r = { + apply: (e, r, n1)=>{ + if ("function" != typeof e) return Reflect.apply(e, r, n1); + const c = e.toString(); + return t.test(c) && (e = function() { + return !1; + }), Reflect.apply(e, r, n1); + } + }, n1 = { + apply: (e, t, n1)=>{ + let c = Reflect.apply(e, t, n1); + return "function" == typeof c && (c = new Proxy(c, r)), c; + } + }, c = { + apply: (t, r, c)=>{ + try { + var _c_; + const o = c[1], f = (_c_ = c[2]) === null || _c_ === void 0 ? void 0 : _c_.get; + if (!o || "function" != typeof f) return Reflect.apply(t, r, c); + e.has(o) && /^\(\)=>.$/.test(f.toString()) ? c[2].get = function() { + return function() { + return !1; + }; + } : "A" === o && f.toString().includes("()=>i") && (c[2].get = new Proxy(c[2].get, n1)); + } catch (e) {} + return Reflect.apply(t, r, c); + } + }; + Object.defineProperty = new Proxy(Object.defineProperty, c); + })(); + Object.defineProperty(Window.prototype.toString, "419ecd20b58c82c1446f3eefaac9ae3b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "419ecd20b58c82c1446f3eefaac9ae3b" due to: ' + e); + } + }, + "window.uabpInject = function() {};": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2809f16b065b7f9160467af78eee1331"] === e) return; + window.uabpInject = function() {}; + Object.defineProperty(Window.prototype.toString, "2809f16b065b7f9160467af78eee1331", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2809f16b065b7f9160467af78eee1331" due to: ' + e); + } + }, + "(function(){var b=window.setTimeout;window.setTimeout=function(a,c){if(!/checkAds\\(\\);/.test(a.toString()))return b(a,c)};})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["140cb9c461f230aead2587075c4c3389"] === e) return; + !function() { + var e = window.setTimeout; + window.setTimeout = function(t, o) { + if (!/checkAds\(\);/.test(t.toString())) return e(t, o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "140cb9c461f230aead2587075c4c3389", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "140cb9c461f230aead2587075c4c3389" due to: ' + e); + } + }, + "window.adblock = true;": ()=>{ + try { + const a = "done"; + if (Window.prototype.toString.a512aca8faf6bfd74f571200978abea9 === a) return; + window.adblock = !0; + Object.defineProperty(Window.prototype.toString, "a512aca8faf6bfd74f571200978abea9", { + value: a, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (a) { + console.error('Error executing AG js rule with uniqueId "a512aca8faf6bfd74f571200978abea9" due to: ' + a); + } + }, + "window.ads_unblocked = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["786bc16fd657931f3a0d027130de4773"] === e) return; + window.ads_unblocked = !0; + Object.defineProperty(Window.prototype.toString, "786bc16fd657931f3a0d027130de4773", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "786bc16fd657931f3a0d027130de4773" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,e,o)=>{try{const t=e;t&&"object"==typeof t&&t.context?.bidRequestId&&(e={})}catch(t){}return Reflect.apply(t,e,o)}};window.Object.prototype.hasOwnProperty=new Proxy(window.Object.prototype.hasOwnProperty,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["34e4fe8cb80172726ed88130c50a490c"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + try { + var _e_context; + const e = t; + e && "object" == typeof e && ((_e_context = e.context) === null || _e_context === void 0 ? void 0 : _e_context.bidRequestId) && (t = {}); + } catch (e) {} + return Reflect.apply(e, t, o); + } + }; + window.Object.prototype.hasOwnProperty = new Proxy(window.Object.prototype.hasOwnProperty, e); + })(); + Object.defineProperty(Window.prototype.toString, "34e4fe8cb80172726ed88130c50a490c", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "34e4fe8cb80172726ed88130c50a490c" due to: ' + e); + } + }, + '!function(){const r={apply:(r,o,e)=>(e[0]?.includes?.("")&&(e[0]=""),Reflect.apply(r,o,e))};window.DOMParser.prototype.parseFromString=new Proxy(window.DOMParser.prototype.parseFromString,r)}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["877dd0aed94e4d29a83c4c3327d544f8"] === e) return; + !function() { + const e = { + apply: (e, r, o)=>{ + var _o__includes, _o_; + return ((_o_ = o[0]) === null || _o_ === void 0 ? void 0 : (_o__includes = _o_.includes) === null || _o__includes === void 0 ? void 0 : _o__includes.call(_o_, "")) && (o[0] = ""), Reflect.apply(e, r, o); + } + }; + window.DOMParser.prototype.parseFromString = new Proxy(window.DOMParser.prototype.parseFromString, e); + }(); + Object.defineProperty(Window.prototype.toString, "877dd0aed94e4d29a83c4c3327d544f8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "877dd0aed94e4d29a83c4c3327d544f8" due to: ' + e); + } + }, + "window.adsOk = !0;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["58f079e742093da39c91a591e99389ce"] === e) return; + window.adsOk = !0; + Object.defineProperty(Window.prototype.toString, "58f079e742093da39c91a591e99389ce", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "58f079e742093da39c91a591e99389ce" due to: ' + e); + } + }, + "window.ads_ok = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6038ece558032e1fa11a8e02beb32499"] === e) return; + window.ads_ok = !0; + Object.defineProperty(Window.prototype.toString, "6038ece558032e1fa11a8e02beb32499", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6038ece558032e1fa11a8e02beb32499" due to: ' + e); + } + }, + '(()=>{const t={construct:(t,n,o)=>{const e=n[0],s=e?.toString(),c=s?.includes("await this.whenGDPRClosed()");return c&&(n[0]=t=>t(!0)),Reflect.construct(t,n,o)}};window.Promise=new Proxy(window.Promise,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2def40885e045b3521a04fe19856fe24"] === e) return; + (()=>{ + const e = { + construct: (e, t, o)=>{ + const r = t[0], n1 = r === null || r === void 0 ? void 0 : r.toString(), i1 = n1 === null || n1 === void 0 ? void 0 : n1.includes("await this.whenGDPRClosed()"); + return i1 && (t[0] = (e)=>e(!0)), Reflect.construct(e, t, o); + } + }; + window.Promise = new Proxy(window.Promise, e); + })(); + Object.defineProperty(Window.prototype.toString, "2def40885e045b3521a04fe19856fe24", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2def40885e045b3521a04fe19856fe24" due to: ' + e); + } + }, + "(function(){var b=window.setTimeout;window.setTimeout=function(a,c){if(!/notDetectedBy/.test(a.toString()))return b(a,c)};})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2eed1ef0d478b67cb9b988fd355d6582"] === e) return; + !function() { + var e = window.setTimeout; + window.setTimeout = function(t, o) { + if (!/notDetectedBy/.test(t.toString())) return e(t, o); + }; + }(); + Object.defineProperty(Window.prototype.toString, "2eed1ef0d478b67cb9b988fd355d6582", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2eed1ef0d478b67cb9b988fd355d6582" due to: ' + e); + } + }, + "window.adBlockTest = true;": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.ea236b492fa35d17f8aeddec6c38ef4a === e) return; + window.adBlockTest = !0; + Object.defineProperty(Window.prototype.toString, "ea236b492fa35d17f8aeddec6c38ef4a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "ea236b492fa35d17f8aeddec6c38ef4a" due to: ' + e); + } + }, + '(function(){var b=XMLHttpRequest.prototype.open,c=/ib\\.adnxs\\.com/i;XMLHttpRequest.prototype.open=function(d,a){if("POST"===d&&c.test(a))this.send=function(){return null},this.setRequestHeader=function(){return null},console.log("AG has blocked request: ",a);else return b.apply(this,arguments)}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["14b2658c5d58ff999b0f841402be6327"] === e) return; + !function() { + var e = XMLHttpRequest.prototype.open, t = /ib\.adnxs\.com/i; + XMLHttpRequest.prototype.open = function(o, n1) { + if ("POST" !== o || !t.test(n1)) return e.apply(this, arguments); + this.send = function() { + return null; + }, this.setRequestHeader = function() { + return null; + }, console.log("AG has blocked request: ", n1); + }; + }(); + Object.defineProperty(Window.prototype.toString, "14b2658c5d58ff999b0f841402be6327", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "14b2658c5d58ff999b0f841402be6327" due to: ' + e); + } + }, + '(()=>{if(!location.href.includes("/player.php?url="))return;const a=new URLSearchParams(location.search).get("url");a&&location.assign(a)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a9a1e83dfb5f1117af5ce4dfbce68798 === e) return; + (()=>{ + if (!location.href.includes("/player.php?url=")) return; + const e = new URLSearchParams(location.search).get("url"); + e && location.assign(e); + })(); + Object.defineProperty(Window.prototype.toString, "a9a1e83dfb5f1117af5ce4dfbce68798", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a9a1e83dfb5f1117af5ce4dfbce68798" due to: ' + e); + } + }, + '(()=>{window.addEventListener("load",(()=>{"object"==typeof window.player&&"function"==typeof window.player.trigger&&window.player.trigger("playlistComplete")}));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["777ecb0cee36adcb947f146ce7e592d2"] === e) return; + window.addEventListener("load", ()=>{ + "object" == typeof window.player && "function" == typeof window.player.trigger && window.player.trigger("playlistComplete"); + }); + Object.defineProperty(Window.prototype.toString, "777ecb0cee36adcb947f146ce7e592d2", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "777ecb0cee36adcb947f146ce7e592d2" due to: ' + e); + } + }, + '!function(){if(location.pathname.includes("/source/playerads")){var b=new MutationObserver(function(){var a=document.querySelector(\'script[type="text/javascript"]\');a&&a.textContent.includes(\'"ads": [\')&&(b.disconnect(),a.textContent=a.textContent.replace(/("ads": \\[\\{)[\\s\\S]*?(\\}\\])/,"$1$2"))});b.observe(document,{childList:!0,subtree:!0})}}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.aae0d51166190a469962b4394ad11852 === e) return; + !function() { + if (location.pathname.includes("/source/playerads")) { + var e = new MutationObserver(function() { + var t = document.querySelector('script[type="text/javascript"]'); + t && t.textContent.includes('"ads": [') && (e.disconnect(), t.textContent = t.textContent.replace(/("ads": \[\{)[\s\S]*?(\}\])/, "$1$2")); + }); + e.observe(document, { + childList: !0, + subtree: !0 + }); + } + }(); + Object.defineProperty(Window.prototype.toString, "aae0d51166190a469962b4394ad11852", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "aae0d51166190a469962b4394ad11852" due to: ' + e); + } + }, + "clientSide.player.play(true);": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a5b3c4cf6ebf6b65e649d4696be29d38 === e) return; + clientSide.player.play(!0); + Object.defineProperty(Window.prototype.toString, "a5b3c4cf6ebf6b65e649d4696be29d38", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a5b3c4cf6ebf6b65e649d4696be29d38" due to: ' + e); + } + }, + '(()=>{if(location.href.includes("/embed/?link=")){const i=new URL(location.href).searchParams.get("link");if(i)try{location.assign(i)}catch(i){}}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["70f2ca47c305ca62ef161409642baaae"] === e) return; + (()=>{ + if (location.href.includes("/embed/?link=")) { + const e = new URL(location.href).searchParams.get("link"); + if (e) try { + location.assign(e); + } catch (e) {} + } + })(); + Object.defineProperty(Window.prototype.toString, "70f2ca47c305ca62ef161409642baaae", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "70f2ca47c305ca62ef161409642baaae" due to: ' + e); + } + }, + "(function(){Object.defineProperty(window, 'ExoLoader', { get: function() { return; } }); var c=document.addEventListener;document.addEventListener=function(a,b,d,e){\"getexoloader\"!=a&&-1==b.toString().indexOf('loader')&&c(a,b,d,e)}.bind(document);})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a8d7f5b4e27b5a94d3b0c3528bdccb9c === e) return; + !function() { + Object.defineProperty(window, "ExoLoader", { + get: function() {} + }); + var e = document.addEventListener; + document.addEventListener = (function(t, n1, o, d) { + "getexoloader" != t && -1 == n1.toString().indexOf("loader") && e(t, n1, o, d); + }).bind(document); + }(); + Object.defineProperty(Window.prototype.toString, "a8d7f5b4e27b5a94d3b0c3528bdccb9c", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a8d7f5b4e27b5a94d3b0c3528bdccb9c" due to: ' + e); + } + }, + '(()=>{let t=!1;const e=window.setTimeout,n={apply:(n,o,c)=>{try{c[0]?.toString?.().includes("thisArg.dispatchEvent")&&(t=!0,e((()=>{t=!1}),50))}catch(t){}return Reflect.apply(n,o,c)}};window.setTimeout=new Proxy(window.setTimeout,n);const o=new Set(["readystatechange","load","loadend"]),c={construct:(e,n,c)=>{try{const e=n[0];if(t&&o.has(e)&&location.href.includes("/video/"))return new ProgressEvent(e)}catch(t){}return Reflect.construct(e,n,c)}};window.Event=new Proxy(window.Event,c)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d370c894efefb5cb0c8a577175abd0b6 === e) return; + (()=>{ + let e = !1; + const t = window.setTimeout, n1 = { + apply: (n1, o, r)=>{ + try { + var _r__toString, _r_; + ((_r_ = r[0]) === null || _r_ === void 0 ? void 0 : (_r__toString = _r_.toString) === null || _r__toString === void 0 ? void 0 : _r__toString.call(_r_).includes("thisArg.dispatchEvent")) && (e = !0, t(()=>{ + e = !1; + }, 50)); + } catch (e) {} + return Reflect.apply(n1, o, r); + } + }; + window.setTimeout = new Proxy(window.setTimeout, n1); + const o = new Set([ + "readystatechange", + "load", + "loadend" + ]), r = { + construct: (t, n1, r)=>{ + try { + const t = n1[0]; + if (e && o.has(t) && location.href.includes("/video/")) return new ProgressEvent(t); + } catch (e) {} + return Reflect.construct(t, n1, r); + } + }; + window.Event = new Proxy(window.Event, r); + })(); + Object.defineProperty(Window.prototype.toString, "d370c894efefb5cb0c8a577175abd0b6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d370c894efefb5cb0c8a577175abd0b6" due to: ' + e); + } + }, + '((e,t)=>{const n={apply:(n,o,r)=>{try{const s=r[1];if(!s)return Reflect.apply(n,o,r);const c=typeof s;if("string"===c&&s.includes?.(t)){const t=new URL(s);t.searchParams.delete(e);const n=t.href.replace("%2CCuepointPlaylist","");r[1]=n}else if("object"===c&&s instanceof URL&&s.href?.includes?.(t)){s.searchParams.delete(e);const t=s.href.replace("%2CCuepointPlaylist","");r[1]=t}}catch(e){}return Reflect.apply(n,o,r)}};window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,n)})("deviceAdInsertionTypeOverride","/GetPlaybackResources?");': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["5f0cb8ad699e93dee39f5abf0dfec256"] === e) return; + ((e, t)=>{ + const r = { + apply: (r, o, n1)=>{ + try { + var _c_includes, _c_href_includes, _c_href; + const c = n1[1]; + if (!c) return Reflect.apply(r, o, n1); + const a = typeof c; + if ("string" === a && ((_c_includes = c.includes) === null || _c_includes === void 0 ? void 0 : _c_includes.call(c, t))) { + const t = new URL(c); + t.searchParams.delete(e); + const r = t.href.replace("%2CCuepointPlaylist", ""); + n1[1] = r; + } else if ("object" === a && c instanceof URL && ((_c_href = c.href) === null || _c_href === void 0 ? void 0 : (_c_href_includes = _c_href.includes) === null || _c_href_includes === void 0 ? void 0 : _c_href_includes.call(_c_href, t))) { + c.searchParams.delete(e); + const t = c.href.replace("%2CCuepointPlaylist", ""); + n1[1] = t; + } + } catch (e) {} + return Reflect.apply(r, o, n1); + } + }; + window.XMLHttpRequest.prototype.open = new Proxy(window.XMLHttpRequest.prototype.open, r); + })("deviceAdInsertionTypeOverride", "/GetPlaybackResources?"); + Object.defineProperty(Window.prototype.toString, "5f0cb8ad699e93dee39f5abf0dfec256", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "5f0cb8ad699e93dee39f5abf0dfec256" due to: ' + e); + } + }, + '(()=>{if(window.self!==window.top)try{if("object"==typeof localStorage)return}catch(a){delete window.localStorage,window.localStorage={setItem(){},getItem(){},removeItem(){},clear(){}}}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6c5874d9ea24235e4a8490028ce09e66"] === e) return; + (()=>{ + if (window.self !== window.top) try { + if ("object" == typeof localStorage) return; + } catch (e) { + delete window.localStorage, window.localStorage = { + setItem () {}, + getItem () {}, + removeItem () {}, + clear () {} + }; + } + })(); + Object.defineProperty(Window.prototype.toString, "6c5874d9ea24235e4a8490028ce09e66", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6c5874d9ea24235e4a8490028ce09e66" due to: ' + e); + } + }, + '(()=>{const e=JSON.parse,t=Response.prototype.json,r=new WeakSet,s=e=>null!==e&&"object"==typeof e,a=e=>{if(!Array.isArray(e))return[];const t=e=>"number"==typeof e||"string"==typeof e&&""!==e.trim()?Number(e):NaN,r=e.filter(s).map(({start:e,end:r})=>({start:t(e),end:t(r)})).filter(({start:e,end:t})=>Number.isFinite(e)&&Number.isFinite(t)&&e>=0&&t>e).sort((e,t)=>e.start-t.start),a=[];for(const e of r){const t=a.at(-1);t&&e.start<=t.end?t.end=Math.max(t.end,e.end):a.push(e)}return a},n=(e,t)=>e.reduce((e,{start:r,end:s})=>e+Math.max(0,Math.min(s,t)-r),0),i=(e,t)=>e.reduce((e,{start:r,end:s})=>s<=t+1e-6?e+s-r:e,0),o=e=>"urn:com:philo:event:ad:regions"===e?.uri||"string"==typeof e?.messageData&&e.messageData.includes(\'"ad_breaks"\'),u=(t,r)=>{if(!Array.isArray(t.periods)||!t.periods.every(s))return!1;const u=[];for(const r of t.periods)if(Array.isArray(r.eventStreams))for(const t of r.eventStreams)if(o(t)&&"string"==typeof t.messageData)try{const r=Reflect.apply(e,JSON,[t.messageData]);u.push(...a(r?.ad_breaks))}catch{}const d=a(u);return!!d.length&&(t.periods=t.periods.filter((e,t)=>!(e=>Array.isArray(e.adaptationSets)&&e.adaptationSets.some(e=>"string"==typeof e?.timeline?.segmentURLTemplate&&e.timeline.segmentURLTemplate.includes("/ad/")))(e)),t.periods.forEach((e,t)=>{if(Number.isFinite(e.startTime)){const t=e.startTime;e.startTime=t-i(d,t)}"index"in e&&(e.index=t),Array.isArray(e.eventStreams)&&(e.eventStreams=e.eventStreams.filter((e,t)=>!o(e)))}),Number.isFinite(t.duration)&&(t.duration-=n(d,t.duration)),!0)},d=(e,t)=>{if(!e||"object"!=typeof e||r.has(e))return e;const o=u(e),d=(e=>{if(!s(e.url_to_thumbs)||Array.isArray(e.url_to_thumbs)||!Array.isArray(e.ad_breaks))return!1;const t=a(e.ad_breaks);if(!t.length)return!1;for(const r of Object.keys(e.url_to_thumbs)){if(r.includes("/ad/")){delete e.url_to_thumbs[r];continue}const s=e.url_to_thumbs[r];if(Array.isArray(s))for(const e of s)if(Number.isFinite(e?.pt)){const r=e.pt;e.pt=r-i(t,r)}}return delete e.ad_breaks,Number.isFinite(e.available_duration_seconds)&&(e.available_duration_seconds-=n(t,e.available_duration_seconds)),!0})(e);return(o||d)&&r.add(e),e},c={apply:(e,t,r)=>{const s=Reflect.apply(e,t,r);try{return d(s)}catch(e){return s}}};JSON.parse=new Proxy(e,c);const p={apply:async(e,t,r)=>{const s=await Reflect.apply(e,t,r);try{return d(s)}catch(e){return s}}};Response.prototype.json=new Proxy(t,p)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.cde9bb8af864ebcfcb79d446284c6e7e === e) return; + (()=>{ + const e = JSON.parse, t = Response.prototype.json, r = new WeakSet, a = (e)=>null !== e && "object" == typeof e, s = (e)=>{ + if (!Array.isArray(e)) return []; + const t = (e)=>"number" == typeof e || "string" == typeof e && "" !== e.trim() ? Number(e) : NaN, r = e.filter(a).map(({ start: e, end: r })=>({ + start: t(e), + end: t(r) + })).filter(({ start: e, end: t })=>Number.isFinite(e) && Number.isFinite(t) && e >= 0 && t > e).sort((e, t)=>e.start - t.start), s = []; + for (const e of r){ + const t = s.at(-1); + t && e.start <= t.end ? t.end = Math.max(t.end, e.end) : s.push(e); + } + return s; + }, n1 = (e, t)=>e.reduce((e, { start: r, end: a })=>e + Math.max(0, Math.min(a, t) - r), 0), o = (e, t)=>e.reduce((e, { start: r, end: a })=>a <= t + 1e-6 ? e + a - r : e, 0), i1 = (e)=>"urn:com:philo:event:ad:regions" === (e === null || e === void 0 ? void 0 : e.uri) || "string" == typeof (e === null || e === void 0 ? void 0 : e.messageData) && e.messageData.includes('"ad_breaks"'), c = (t, r)=>{ + if (!Array.isArray(t.periods) || !t.periods.every(a)) return !1; + const c = []; + for (const r of t.periods)if (Array.isArray(r.eventStreams)) { + for (const t of r.eventStreams)if (i1(t) && "string" == typeof t.messageData) try { + const r = Reflect.apply(e, JSON, [ + t.messageData + ]); + c.push(...s(r === null || r === void 0 ? void 0 : r.ad_breaks)); + } catch {} + } + const d = s(c); + return !!d.length && (t.periods = t.periods.filter((e, t)=>!((e)=>Array.isArray(e.adaptationSets) && e.adaptationSets.some((e)=>{ + var _e_timeline; + return "string" == typeof (e === null || e === void 0 ? void 0 : (_e_timeline = e.timeline) === null || _e_timeline === void 0 ? void 0 : _e_timeline.segmentURLTemplate) && e.timeline.segmentURLTemplate.includes("/ad/"); + }))(e)), t.periods.forEach((e, t)=>{ + if (Number.isFinite(e.startTime)) { + const t = e.startTime; + e.startTime = t - o(d, t); + } + "index" in e && (e.index = t), Array.isArray(e.eventStreams) && (e.eventStreams = e.eventStreams.filter((e, t)=>!i1(e))); + }), Number.isFinite(t.duration) && (t.duration -= n1(d, t.duration)), !0); + }, d = (e, t)=>{ + if (!e || "object" != typeof e || r.has(e)) return e; + const i1 = c(e), d = ((e)=>{ + if (!a(e.url_to_thumbs) || Array.isArray(e.url_to_thumbs) || !Array.isArray(e.ad_breaks)) return !1; + const t = s(e.ad_breaks); + if (!t.length) return !1; + for (const r of Object.keys(e.url_to_thumbs)){ + if (r.includes("/ad/")) { + delete e.url_to_thumbs[r]; + continue; + } + const a = e.url_to_thumbs[r]; + if (Array.isArray(a)) { + for (const e of a)if (Number.isFinite(e === null || e === void 0 ? void 0 : e.pt)) { + const r = e.pt; + e.pt = r - o(t, r); + } + } + } + return delete e.ad_breaks, Number.isFinite(e.available_duration_seconds) && (e.available_duration_seconds -= n1(t, e.available_duration_seconds)), !0; + })(e); + return (i1 || d) && r.add(e), e; + }, u = { + apply: (e, t, r)=>{ + const a = Reflect.apply(e, t, r); + try { + return d(a); + } catch (e) { + return a; + } + } + }; + JSON.parse = new Proxy(e, u); + const p = { + apply: async (e, t, r)=>{ + const a = await Reflect.apply(e, t, r); + try { + return d(a); + } catch (e) { + return a; + } + } + }; + Response.prototype.json = new Proxy(t, p); + })(); + Object.defineProperty(Window.prototype.toString, "cde9bb8af864ebcfcb79d446284c6e7e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "cde9bb8af864ebcfcb79d446284c6e7e" due to: ' + e); + } + }, + '(()=>{const e={cmpConsentVendors:",s2657,",event:"cmpEvent"},n=()=>{setTimeout((()=>{"function"==typeof window.dataLayer?.push&&window.dataLayer.push(e)}),1e3)};"loading"===document.readyState?window.addEventListener("load",n):n()})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f4e87ab01db8b24094d849d15976f257 === e) return; + (()=>{ + const e = { + cmpConsentVendors: ",s2657,", + event: "cmpEvent" + }, t = ()=>{ + setTimeout(()=>{ + var _window_dataLayer; + "function" == typeof ((_window_dataLayer = window.dataLayer) === null || _window_dataLayer === void 0 ? void 0 : _window_dataLayer.push) && window.dataLayer.push(e); + }, 1e3); + }; + "loading" === document.readyState ? window.addEventListener("load", t) : t(); + })(); + Object.defineProperty(Window.prototype.toString, "f4e87ab01db8b24094d849d15976f257", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f4e87ab01db8b24094d849d15976f257" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,e,n)=>{try{const t=n[0];7e3===n[1]&&"function"==typeof t&&t.toString().includes("[native code]")&&(n[1]=0)}catch(t){}return Reflect.apply(t,e,n)}};window.setTimeout=new Proxy(window.setTimeout,t);const e=window.EventTarget.prototype.addEventListener,n={apply:(t,n,o)=>{try{if("DOMContentLoaded"===o[0]){const t=document.querySelector(\'body > iframe[src="javascript:false"]\');t&&(t.contentWindow.setTimeout=window.setTimeout,EventTarget.prototype.addEventListener=e)}}catch(t){}return Reflect.apply(t,n,o)}};window.EventTarget.prototype.addEventListener=new Proxy(window.EventTarget.prototype.addEventListener,n)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b9bcf247e4a2f78b10edbe73e7065dc7 === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + try { + const e = o[0]; + 7e3 === o[1] && "function" == typeof e && e.toString().includes("[native code]") && (o[1] = 0); + } catch (e) {} + return Reflect.apply(e, t, o); + } + }; + window.setTimeout = new Proxy(window.setTimeout, e); + const t = window.EventTarget.prototype.addEventListener, o = { + apply: (e, o, n1)=>{ + try { + if ("DOMContentLoaded" === n1[0]) { + const e = document.querySelector('body > iframe[src="javascript:false"]'); + e && (e.contentWindow.setTimeout = window.setTimeout, EventTarget.prototype.addEventListener = t); + } + } catch (e) {} + return Reflect.apply(e, o, n1); + } + }; + window.EventTarget.prototype.addEventListener = new Proxy(window.EventTarget.prototype.addEventListener, o); + })(); + Object.defineProperty(Window.prototype.toString, "b9bcf247e4a2f78b10edbe73e7065dc7", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b9bcf247e4a2f78b10edbe73e7065dc7" due to: ' + e); + } + }, + "(()=>{const r={apply:(r,t,p)=>{try{if(p[0]?.isAffiliate)return}catch(r){}return Reflect.apply(r,t,p)}};window.Array.prototype.push=new Proxy(window.Array.prototype.push,r)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6b25d47adf4d5da91c359dc2fe2f3012"] === e) return; + (()=>{ + const e = { + apply: (e, r, t)=>{ + try { + var _t_; + if ((_t_ = t[0]) === null || _t_ === void 0 ? void 0 : _t_.isAffiliate) return; + } catch (e) {} + return Reflect.apply(e, r, t); + } + }; + window.Array.prototype.push = new Proxy(window.Array.prototype.push, e); + })(); + Object.defineProperty(Window.prototype.toString, "6b25d47adf4d5da91c359dc2fe2f3012", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6b25d47adf4d5da91c359dc2fe2f3012" due to: ' + e); + } + }, + '(()=>{const t={apply:(t,e,o)=>{try{const t=o[0];t?.matches?.("azuki-reader")&&!0===t?.showAd&&Object.defineProperty(o[0],"showAd",{value:!1})}catch(t){}return Reflect.apply(t,e,o)}};window.Function.prototype.bind=new Proxy(window.Function.prototype.bind,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d1f854731b5f25e5cd38f2df757a118b === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>{ + try { + var _e_matches; + const e = o[0]; + (e === null || e === void 0 ? void 0 : (_e_matches = e.matches) === null || _e_matches === void 0 ? void 0 : _e_matches.call(e, "azuki-reader")) && !0 === (e === null || e === void 0 ? void 0 : e.showAd) && Object.defineProperty(o[0], "showAd", { + value: !1 + }); + } catch (e) {} + return Reflect.apply(e, t, o); + } + }; + window.Function.prototype.bind = new Proxy(window.Function.prototype.bind, e); + })(); + Object.defineProperty(Window.prototype.toString, "d1f854731b5f25e5cd38f2df757a118b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d1f854731b5f25e5cd38f2df757a118b" due to: ' + e); + } + }, + '(()=>{if(location.href.includes("/watch.php?id=")){const i=location.href.replace("watch.php","video.php");location.assign(i)}})();': ()=>{ + try { + const c = "done"; + if (Window.prototype.toString["84c67320f2cd3cf804a18044c1387f4a"] === c) return; + (()=>{ + if (location.href.includes("/watch.php?id=")) { + const c = location.href.replace("watch.php", "video.php"); + location.assign(c); + } + })(); + Object.defineProperty(Window.prototype.toString, "84c67320f2cd3cf804a18044c1387f4a", { + value: c, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (c) { + console.error('Error executing AG js rule with uniqueId "84c67320f2cd3cf804a18044c1387f4a" due to: ' + c); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{"function"==typeof showgame&&showgame()}));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["60639f622c0aeeaed4d3c6402add6364"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + "function" == typeof showgame && showgame(); + }); + Object.defineProperty(Window.prototype.toString, "60639f622c0aeeaed4d3c6402add6364", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "60639f622c0aeeaed4d3c6402add6364" due to: ' + e); + } + }, + '(()=>{const e=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").set,t=Object.getOwnPropertyDescriptor(Element.prototype,"innerHTML").get;Object.defineProperty(Element.prototype,"innerHTML",{get(){const e=t.call(this);return e.includes("delete window")?"":e},set(t){e.call(this,t)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e233c6aa26d14c122933ca24bb028498 === e) return; + (()=>{ + const e = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").set, t = Object.getOwnPropertyDescriptor(Element.prototype, "innerHTML").get; + Object.defineProperty(Element.prototype, "innerHTML", { + get () { + const e = t.call(this); + return e.includes("delete window") ? "" : e; + }, + set (t) { + e.call(this, t); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "e233c6aa26d14c122933ca24bb028498", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e233c6aa26d14c122933ca24bb028498" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{"function"==typeof getfull&&getfull()}));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["45e2ee4fbb5fd647b76cf34c6f5c7222"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + "function" == typeof getfull && getfull(); + }); + Object.defineProperty(Window.prototype.toString, "45e2ee4fbb5fd647b76cf34c6f5c7222", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "45e2ee4fbb5fd647b76cf34c6f5c7222" due to: ' + e); + } + }, + '(()=>{let e=!1;const l={apply:async(e,l,o)=>{const r=o[0];return!1===r?.rewardAllowed&&(o[0].rewardAllowed=!0),Reflect.apply(e,l,o)}},o={apply:(o,r,t)=>{const n=t[0]?.pokiAdsCompleted;return!e&&n&&n[0]?.toString()?.includes("rewardAllowed")&&(n[0]=new Proxy(n[0],l),e=!0),Reflect.apply(o,r,t)}};window.Object.keys=new Proxy(window.Object.keys,o)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["85cbf457d7f9be26230706564eebecbe"] === e) return; + (()=>{ + let e = !1; + const r = { + apply: async (e, r, t)=>{ + const o = t[0]; + return !1 === (o === null || o === void 0 ? void 0 : o.rewardAllowed) && (t[0].rewardAllowed = !0), Reflect.apply(e, r, t); + } + }, t = { + apply: (t, o, n1)=>{ + var _n_, _c__toString, _c_; + const c = (_n_ = n1[0]) === null || _n_ === void 0 ? void 0 : _n_.pokiAdsCompleted; + return !e && c && ((_c_ = c[0]) === null || _c_ === void 0 ? void 0 : (_c__toString = _c_.toString()) === null || _c__toString === void 0 ? void 0 : _c__toString.includes("rewardAllowed")) && (c[0] = new Proxy(c[0], r), e = !0), Reflect.apply(t, o, n1); + } + }; + window.Object.keys = new Proxy(window.Object.keys, t); + })(); + Object.defineProperty(Window.prototype.toString, "85cbf457d7f9be26230706564eebecbe", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "85cbf457d7f9be26230706564eebecbe" due to: ' + e); + } + }, + '(()=>{window.Pogo=window.Pogo||{},window.Pogo.cmd=[],window.Pogo.cmd.push=o=>{"function"==typeof o&&o()},window.Pogo.getVideoTag=(o,w)=>{w&&"function"==typeof w&&w()};})();': ()=>{ + try { + const o = "done"; + if (Window.prototype.toString.f1975fac6cc2feb528947114b7201f11 === o) return; + window.Pogo = window.Pogo || {}, window.Pogo.cmd = [], window.Pogo.cmd.push = (o)=>{ + "function" == typeof o && o(); + }, window.Pogo.getVideoTag = (o, e)=>{ + e && "function" == typeof e && e(); + }; + Object.defineProperty(Window.prototype.toString, "f1975fac6cc2feb528947114b7201f11", { + value: o, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (o) { + console.error('Error executing AG js rule with uniqueId "f1975fac6cc2feb528947114b7201f11" due to: ' + o); + } + }, + "(()=>{const n=[];n.push=n=>{try{n()}catch(n){console.error(n)}},window.adsNinja=window.adsNinja||{queue:n}})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4893d02be5a2a7c0f59287a47260c7b0"] === e) return; + (()=>{ + const e = []; + e.push = (e)=>{ + try { + e(); + } catch (e) { + console.error(e); + } + }, window.adsNinja = window.adsNinja || { + queue: e + }; + })(); + Object.defineProperty(Window.prototype.toString, "4893d02be5a2a7c0f59287a47260c7b0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4893d02be5a2a7c0f59287a47260c7b0" due to: ' + e); + } + }, + '(()=>{window.Bolt={on:(o,n,i)=>{"precontent_ad_video"===o&&"AD_COMPLETE"===n&&"function"==typeof i&&i()},BOLT_AD_COMPLETE:"AD_COMPLETE",BOLT_AD_ERROR:"AD_ERROR"},window.ramp=window.ramp||{},window.ramp.addUnits=()=>Promise.resolve(),window.ramp.displayUnits=()=>{setTimeout((()=>{"function"==typeof window.ramp.onPlayerReady&&window.ramp.onPlayerReady()}),1)};})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["13196ca8ba80be48cb3a530394beced8"] === e) return; + window.Bolt = { + on: (e, o, n1)=>{ + "precontent_ad_video" === e && "AD_COMPLETE" === o && "function" == typeof n1 && n1(); + }, + BOLT_AD_COMPLETE: "AD_COMPLETE", + BOLT_AD_ERROR: "AD_ERROR" + }, window.ramp = window.ramp || {}, window.ramp.addUnits = ()=>Promise.resolve(), window.ramp.displayUnits = ()=>{ + setTimeout(()=>{ + "function" == typeof window.ramp.onPlayerReady && window.ramp.onPlayerReady(); + }, 1); + }; + Object.defineProperty(Window.prototype.toString, "13196ca8ba80be48cb3a530394beced8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "13196ca8ba80be48cb3a530394beced8" due to: ' + e); + } + }, + '(()=>{const e={apply:(e,t,o)=>(o[0]=!0,Reflect.apply(e,t,o))};let t,o=!1;Object.defineProperty(window,"ig",{get:function(){return"function"!=typeof t?.RetentionRewardedVideo?.prototype?.rewardedVideoResult||o||(t.RetentionRewardedVideo.prototype.rewardedVideoResult=new Proxy(t.RetentionRewardedVideo.prototype.rewardedVideoResult,e),o=!0),t},set:function(e){t=e}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["49064caba0f35708edea647b43d9260f"] === e) return; + (()=>{ + const e = { + apply: (e, t, o)=>(o[0] = !0, Reflect.apply(e, t, o)) + }; + let t, o = !1; + Object.defineProperty(window, "ig", { + get: function() { + var _t_RetentionRewardedVideo_prototype, _t_RetentionRewardedVideo; + return "function" != typeof (t === null || t === void 0 ? void 0 : (_t_RetentionRewardedVideo = t.RetentionRewardedVideo) === null || _t_RetentionRewardedVideo === void 0 ? void 0 : (_t_RetentionRewardedVideo_prototype = _t_RetentionRewardedVideo.prototype) === null || _t_RetentionRewardedVideo_prototype === void 0 ? void 0 : _t_RetentionRewardedVideo_prototype.rewardedVideoResult) || o || (t.RetentionRewardedVideo.prototype.rewardedVideoResult = new Proxy(t.RetentionRewardedVideo.prototype.rewardedVideoResult, e), o = !0), t; + }, + set: function(e) { + t = e; + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "49064caba0f35708edea647b43d9260f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "49064caba0f35708edea647b43d9260f" due to: ' + e); + } + }, + '(()=>{let e,n=!1;const o=function(){};Object.defineProperty(window,"videojs",{get:function(){return e},set:function(t){e=t,!n&&e&&"function"==typeof e.registerPlugin&&(n=!0,e.registerPlugin("skipIma3Unskippable",o))}}),window.SlotTypeEnum={},window.ANAWeb=function(){},window.ANAWeb.prototype.createVideoSlot=function(){return Promise.resolve()},window.ANAWeb.prototype.createSlot=function(){},window.ANAWeb.VideoPlayerType={},window.ANAWeb.VideoPlacementType={InStream:1},window.ANAWeb.AdPosition={AboveTheFold:1},window.ANAWeb.PlaybackMethod={ClickSoundOn:1},window.addEventListener("load",(function(){document.dispatchEvent(new CustomEvent("ANAReady"))}))})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["3b3aa026a1d7fa6e2ba077f743a7d54d"] === e) return; + (()=>{ + let e, o = !1; + const n1 = function() {}; + Object.defineProperty(window, "videojs", { + get: function() { + return e; + }, + set: function(t) { + e = t, !o && e && "function" == typeof e.registerPlugin && (o = !0, e.registerPlugin("skipIma3Unskippable", n1)); + } + }), window.SlotTypeEnum = {}, window.ANAWeb = function() {}, window.ANAWeb.prototype.createVideoSlot = function() { + return Promise.resolve(); + }, window.ANAWeb.prototype.createSlot = function() {}, window.ANAWeb.VideoPlayerType = {}, window.ANAWeb.VideoPlacementType = { + InStream: 1 + }, window.ANAWeb.AdPosition = { + AboveTheFold: 1 + }, window.ANAWeb.PlaybackMethod = { + ClickSoundOn: 1 + }, window.addEventListener("load", function() { + document.dispatchEvent(new CustomEvent("ANAReady")); + }); + })(); + Object.defineProperty(Window.prototype.toString, "3b3aa026a1d7fa6e2ba077f743a7d54d", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "3b3aa026a1d7fa6e2ba077f743a7d54d" due to: ' + e); + } + }, + '(()=>{const a=function(){};window.apstag={fetchBids(c,a){"function"==typeof a&&a([])},init:a,setDisplayBids:a,targetingKeys:a}})();': ()=>{ + try { + const c = "done"; + if (Window.prototype.toString["11a07f3c1f878acc052df77d287cc2cb"] === c) return; + (()=>{ + const c = function() {}; + window.apstag = { + fetchBids (c, t) { + "function" == typeof t && t([]); + }, + init: c, + setDisplayBids: c, + targetingKeys: c + }; + })(); + Object.defineProperty(Window.prototype.toString, "11a07f3c1f878acc052df77d287cc2cb", { + value: c, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (c) { + console.error('Error executing AG js rule with uniqueId "11a07f3c1f878acc052df77d287cc2cb" due to: ' + c); + } + }, + '(()=>{window.JSON.parse=new Proxy(JSON.parse,{apply(r,e,t){const s=Reflect.apply(r,e,t),l=s?.results;try{if(l&&Array.isArray(l))s?.results&&(s.results=s.results.filter((r=>{if(!Object.prototype.hasOwnProperty.call(r,"adTitle"))return r})));else for(let r in s){const e=s[r]?.results;e&&Array.isArray(e)&&(s[r].results=s[r].results.filter((r=>{if(!Object.prototype.hasOwnProperty.call(r,"adTitle"))return r})))}}catch(r){}return s}});})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b91767671ee5e3e933cdcfdac4efc25b === e) return; + window.JSON.parse = new Proxy(JSON.parse, { + apply (e, r, t) { + const c = Reflect.apply(e, r, t), o = c === null || c === void 0 ? void 0 : c.results; + try { + if (o && Array.isArray(o)) (c === null || c === void 0 ? void 0 : c.results) && (c.results = c.results.filter((e)=>{ + if (!Object.prototype.hasOwnProperty.call(e, "adTitle")) return e; + })); + else for(let e in c){ + var _c_e; + const r = (_c_e = c[e]) === null || _c_e === void 0 ? void 0 : _c_e.results; + r && Array.isArray(r) && (c[e].results = c[e].results.filter((e)=>{ + if (!Object.prototype.hasOwnProperty.call(e, "adTitle")) return e; + })); + } + } catch (e) {} + return c; + } + }); + Object.defineProperty(Window.prototype.toString, "b91767671ee5e3e933cdcfdac4efc25b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b91767671ee5e3e933cdcfdac4efc25b" due to: ' + e); + } + }, + '(()=>{let e,n=!1;const t=function(){};Object.defineProperty(window,"videojs",{get:function(){return e},set:function(i){e=i,!n&&e&&"function"==typeof e.registerPlugin&&(n=!0,e.registerPlugin("ads",t))}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c14cd51b0bc81e9fb5cd82344ac7da2e === e) return; + (()=>{ + let e, t = !1; + const c = function() {}; + Object.defineProperty(window, "videojs", { + get: function() { + return e; + }, + set: function(n1) { + e = n1, !t && e && "function" == typeof e.registerPlugin && (t = !0, e.registerPlugin("ads", c)); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "c14cd51b0bc81e9fb5cd82344ac7da2e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c14cd51b0bc81e9fb5cd82344ac7da2e" due to: ' + e); + } + }, + '(()=>{const n=function(n){if("function"==typeof n)try{n.call()}catch(n){}},i={addAdUnits:function(){},adServers:{dfp:{buildVideoUrl:function(){return""}}},adUnits:[],aliasBidder:function(){},cmd:[],enableAnalytics:function(){},getHighestCpmBids:function(){return[]},libLoaded:!0,que:[],requestBids:function(n){if(n instanceof Object&&n.bidsBackHandler)try{n.bidsBackHandler.call()}catch(n){}},removeAdUnit:function(){},setBidderConfig:function(){},setConfig:function(){},setTargetingForGPTAsync:function(){},rp:{requestVideoBids:function(n){if("function"==typeof n?.callback)try{n.callback.call()}catch(n){}}}};i.cmd.push=n,i.que.push=n,window.pbjs=i})();': ()=>{ + try { + const n1 = "done"; + if (Window.prototype.toString.a12991f34fbcdc0cb606380a258fde90 === n1) return; + (()=>{ + const n1 = function(n1) { + if ("function" == typeof n1) try { + n1.call(); + } catch (n1) {} + }, t = { + addAdUnits: function() {}, + adServers: { + dfp: { + buildVideoUrl: function() { + return ""; + } + } + }, + adUnits: [], + aliasBidder: function() {}, + cmd: [], + enableAnalytics: function() {}, + getHighestCpmBids: function() { + return []; + }, + libLoaded: !0, + que: [], + requestBids: function(n1) { + if (n1 instanceof Object && n1.bidsBackHandler) try { + n1.bidsBackHandler.call(); + } catch (n1) {} + }, + removeAdUnit: function() {}, + setBidderConfig: function() {}, + setConfig: function() {}, + setTargetingForGPTAsync: function() {}, + rp: { + requestVideoBids: function(n1) { + if ("function" == typeof (n1 === null || n1 === void 0 ? void 0 : n1.callback)) try { + n1.callback.call(); + } catch (n1) {} + } + } + }; + t.cmd.push = n1, t.que.push = n1, window.pbjs = t; + })(); + Object.defineProperty(Window.prototype.toString, "a12991f34fbcdc0cb606380a258fde90", { + value: n1, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (n1) { + console.error('Error executing AG js rule with uniqueId "a12991f34fbcdc0cb606380a258fde90" due to: ' + n1); + } + }, + '(()=>{const c=function(){[...arguments].forEach((c=>{if("function"==typeof c)try{c(!0)}catch(c){console.debug(c)}}))},n=[];n.push=c,window.PQ={cmd:n,getTargeting:c}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["52a467e415654146fde7899c49035b7f"] === e) return; + (()=>{ + const e = function() { + [ + ...arguments + ].forEach((e)=>{ + if ("function" == typeof e) try { + e(!0); + } catch (e) { + console.debug(e); + } + }); + }, t = []; + t.push = e, window.PQ = { + cmd: t, + getTargeting: e + }; + })(); + Object.defineProperty(Window.prototype.toString, "52a467e415654146fde7899c49035b7f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "52a467e415654146fde7899c49035b7f" due to: ' + e); + } + }, + '(()=>{const n=function(n){if("function"==typeof n)try{n.call()}catch(n){}},i={addAdUnits:function(){},adServers:{dfp:{buildVideoUrl:function(){return""}}},adUnits:[],aliasBidder:function(){},cmd:[],enableAnalytics:function(){},getHighestCpmBids:function(){return[]},libLoaded:!0,que:[],requestBids:function(n){if(n instanceof Object&&n.bidsBackHandler)try{n.bidsBackHandler.call()}catch(n){}},removeAdUnit:function(){},setBidderConfig:function(){},setConfig:function(){},setTargetingForGPTAsync:function(){}};i.cmd.push=n,i.que.push=n,window.pbjs=i})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["5eccf85ec7e71ba4deefe939741fb145"] === e) return; + (()=>{ + const e = function(e) { + if ("function" == typeof e) try { + e.call(); + } catch (e) {} + }, n1 = { + addAdUnits: function() {}, + adServers: { + dfp: { + buildVideoUrl: function() { + return ""; + } + } + }, + adUnits: [], + aliasBidder: function() {}, + cmd: [], + enableAnalytics: function() {}, + getHighestCpmBids: function() { + return []; + }, + libLoaded: !0, + que: [], + requestBids: function(e) { + if (e instanceof Object && e.bidsBackHandler) try { + e.bidsBackHandler.call(); + } catch (e) {} + }, + removeAdUnit: function() {}, + setBidderConfig: function() {}, + setConfig: function() {}, + setTargetingForGPTAsync: function() {} + }; + n1.cmd.push = e, n1.que.push = e, window.pbjs = n1; + })(); + Object.defineProperty(Window.prototype.toString, "5eccf85ec7e71ba4deefe939741fb145", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "5eccf85ec7e71ba4deefe939741fb145" due to: ' + e); + } + }, + "(()=>{const e={apply:(e,t,l)=>{if(!t.matches('a[href][target=\"_blank\"]'))return Reflect.apply(e,t,l)}};window.HTMLElement.prototype.click=new Proxy(window.HTMLElement.prototype.click,e)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0a528b39acd15b3dec81e240fde05757"] === e) return; + (()=>{ + const e = { + apply: (e, t, r)=>{ + if (!t.matches('a[href][target="_blank"]')) return Reflect.apply(e, t, r); + } + }; + window.HTMLElement.prototype.click = new Proxy(window.HTMLElement.prototype.click, e); + })(); + Object.defineProperty(Window.prototype.toString, "0a528b39acd15b3dec81e240fde05757", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0a528b39acd15b3dec81e240fde05757" due to: ' + e); + } + }, + '(()=>{const t=[];t.push=function(t){try{t()}catch(t){}};window.headertag={cmd:t,buildGamMvt:function(t,c){const n={[c]:"https://securepubads.g.doubleclick.net/gampad/ads"};return n||{}},retrieveVideoDemand:function(t,c,n){const e=t[0]?.htSlotName;if("function"==typeof c)try{c(e)}catch(t){}}}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["4a7e38f499848781627483fb1bb70105"] === e) return; + (()=>{ + const e = []; + e.push = function(e) { + try { + e(); + } catch (e) {} + }; + window.headertag = { + cmd: e, + buildGamMvt: function(e, t) { + return { + [t]: "https://securepubads.g.doubleclick.net/gampad/ads" + } || {}; + }, + retrieveVideoDemand: function(e, t, o) { + var _e_; + const n1 = (_e_ = e[0]) === null || _e_ === void 0 ? void 0 : _e_.htSlotName; + if ("function" == typeof t) try { + t(n1); + } catch (e) {} + } + }; + })(); + Object.defineProperty(Window.prototype.toString, "4a7e38f499848781627483fb1bb70105", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "4a7e38f499848781627483fb1bb70105" due to: ' + e); + } + }, + '(()=>{const e="3.453.0",t=function(){},s={},n=function(e){const t=document.createElement("div");t.style.setProperty("display","none","important"),t.style.setProperty("visibility","collapse","important"),e&&e.appendChild(t)};n.prototype.destroy=t,n.prototype.initialize=t;const i=function(){};i.CompanionBackfillMode={ALWAYS:"always",ON_MASTER_AD:"on_master_ad"},i.VpaidMode={DISABLED:0,ENABLED:1,INSECURE:2},i.prototype={c:!0,f:{},i:!1,l:"",p:"",r:0,t:"",v:"",getCompanionBackfill:t,getDisableCustomPlaybackForIOS10Plus(){return this.i},getDisabledFlashAds:()=>!0,getFeatureFlags(){return this.f},getLocale(){return this.l},getNumRedirects(){return this.r},getPlayerType(){return this.t},getPlayerVersion(){return this.v},getPpid(){return this.p},getVpaidMode(){return this.C},isCookiesEnabled(){return this.c},isVpaidAdapter(){return this.M},setCompanionBackfill:t,setAutoPlayAdBreaks(e){this.K=e},setCookiesEnabled(e){this.c=!!e},setDisableCustomPlaybackForIOS10Plus(e){this.i=!!e},setDisableFlashAds:t,setFeatureFlags(e){this.f=!!e},setIsVpaidAdapter(e){this.M=e},setLocale(e){this.l=!!e},setNumRedirects(e){this.r=!!e},setPageCorrelator(e){this.R=e},setPlayerType(e){this.t=!!e},setPlayerVersion(e){this.v=!!e},setPpid(e){this.p=!!e},setVpaidMode(e){this.C=e},setSessionId:t,setStreamCorrelator:t,setVpaidAllowed:t,CompanionBackfillMode:{ALWAYS:"always",ON_MASTER_AD:"on_master_ad"},VpaidMode:{DISABLED:0,ENABLED:1,INSECURE:2}};const r=function(){this.listeners=new Map,this._dispatch=function(e){let t=this.listeners.get(e.type);t=t?t.values():[];for(const s of Array.from(t))try{s(e)}catch(e){console.trace(e)}},this.addEventListener=function(e,t,s,n){Array.isArray(e)||(e=[e]);for(let s=0;s!1,o.getCuePoints=()=>[0],o.getCurrentAd=()=>h,o.getCurrentAdCuePoints=()=>[],o.getRemainingTime=()=>0,o.getVolume=function(){return this.volume},o.init=t,o.isCustomClickTrackingUsed=()=>!1,o.isCustomPlaybackUsed=()=>!1,o.pause=t,o.requestNextAdBreak=t,o.resize=t,o.resume=t,o.setVolume=function(e){this.volume=e},o.skip=t,o.start=function(){for(const e of [T.Type.LOADED,T.Type.STARTED,T.Type.CONTENT_RESUME_REQUESTED,T.Type.AD_BUFFERING,T.Type.FIRST_QUARTILE,T.Type.MIDPOINT,T.Type.THIRD_QUARTILE,T.Type.COMPLETE,T.Type.ALL_ADS_COMPLETED])try{this._dispatch(new s.AdEvent(e))}catch(e){console.trace(e)}},o.stop=t,o.updateAdsRenderingSettings=t;const a=Object.create(o),d=function(e,t,s){this.type=e,this.adsRequest=t,this.userRequestContext=s};d.prototype={getAdsManager:()=>a,getUserRequestContext(){return this.userRequestContext?this.userRequestContext:{}}},d.Type={ADS_MANAGER_LOADED:"adsManagerLoaded"};const E=r;E.prototype.settings=new i,E.prototype.contentComplete=t,E.prototype.destroy=t,E.prototype.getSettings=function(){return this.settings},E.prototype.getVersion=()=>e,E.prototype.requestAds=function(e,t){requestAnimationFrame((()=>{const{ADS_MANAGER_LOADED:n}=d.Type,i=new s.AdsManagerLoadedEvent(n,e,t);this._dispatch(i)}));const n=new s.AdError("adPlayError",1205,1205,"The browser prevented playback initiated without user interaction.",e,t);requestAnimationFrame((()=>{this._dispatch(new s.AdErrorEvent(n))}))};const A=t,u=function(){};u.prototype={setAdWillAutoPlay:t,setAdWillPlayMuted:t,setContinuousPlayback:t};const l=function(){};l.prototype={getAdPosition:()=>1,getIsBumper:()=>!1,getMaxDuration:()=>-1,getPodIndex:()=>1,getTimeOffset:()=>0,getTotalAds:()=>1};const g=function(){};g.prototype.getAdIdRegistry=function(){return""},g.prototype.getAdIsValue=function(){return""};const p=function(){};p.prototype={pi:new l,getAdId:()=>"",getAdPodInfo(){return this.pi},getAdSystem:()=>"",getAdvertiserName:()=>"",getApiFramework:()=>null,getCompanionAds:()=>[],getContentType:()=>"",getCreativeAdId:()=>"",getDealId:()=>"",getDescription:()=>"",getDuration:()=>8.5,getHeight:()=>0,getMediaUrl:()=>null,getMinSuggestedDuration:()=>-2,getSkipTimeOffset:()=>-1,getSurveyUrl:()=>null,getTitle:()=>"",getTraffickingParametersString:()=>"",getUiElements:()=>[""],getUniversalAdIdRegistry:()=>"unknown",getUniversalAdIds:()=>[new g],getUniversalAdIdValue:()=>"unknown",getVastMediaBitrate:()=>0,getVastMediaHeight:()=>0,getVastMediaWidth:()=>0,getWidth:()=>0,getWrapperAdIds:()=>[""],getWrapperAdSystems:()=>[""],getWrapperCreativeIds:()=>[""],isLinear:()=>!0,isSkippable:()=>!0};const c=function(){};c.prototype={getAdSlotId:()=>"",getContent:()=>"",getContentType:()=>"",getHeight:()=>1,getWidth:()=>1};const C=function(e,t,s,n,i,r){this.errorCode=t,this.message=n,this.type=e,this.adsRequest=i,this.userRequestContext=r,this.getErrorCode=function(){return this.errorCode},this.getInnerError=function(){return null},this.getMessage=function(){return this.message},this.getType=function(){return this.type},this.getVastErrorCode=function(){return this.vastErrorCode},this.toString=function(){return`AdError ${this.errorCode}: ${this.message}`}};C.ErrorCode={},C.Type={};const h=(()=>{try{for(const e of Object.values(window.vidible._getContexts()))if(e.getPlayer()?.div?.innerHTML.includes("www.engadget.com"))return!0}catch(e){}return!1})()?void 0:new p,T=function(e){this.type=e};T.prototype={getAd:()=>h,getAdData:()=>{}},T.Type={AD_BREAK_READY:"adBreakReady",AD_BUFFERING:"adBuffering",AD_CAN_PLAY:"adCanPlay",AD_METADATA:"adMetadata",AD_PROGRESS:"adProgress",ALL_ADS_COMPLETED:"allAdsCompleted",CLICK:"click",COMPLETE:"complete",CONTENT_PAUSE_REQUESTED:"contentPauseRequested",CONTENT_RESUME_REQUESTED:"contentResumeRequested",DURATION_CHANGE:"durationChange",EXPANDED_CHANGED:"expandedChanged",FIRST_QUARTILE:"firstQuartile",IMPRESSION:"impression",INTERACTION:"interaction",LINEAR_CHANGE:"linearChange",LINEAR_CHANGED:"linearChanged",LOADED:"loaded",LOG:"log",MIDPOINT:"midpoint",PAUSED:"pause",RESUMED:"resume",SKIPPABLE_STATE_CHANGED:"skippableStateChanged",SKIPPED:"skip",STARTED:"start",THIRD_QUARTILE:"thirdQuartile",USER_CLOSE:"userClose",VIDEO_CLICKED:"videoClicked",VIDEO_ICON_CLICKED:"videoIconClicked",VIEWABLE_IMPRESSION:"viewable_impression",VOLUME_CHANGED:"volumeChange",VOLUME_MUTED:"mute"};const y=function(e){this.error=e,this.type="adError",this.getError=function(){return this.error},this.getUserRequestContext=function(){return this.error?.userRequestContext?this.error.userRequestContext:{}}};y.Type={AD_ERROR:"adError"};const I=function(){};I.Type={CUSTOM_CONTENT_LOADED:"deprecated-event"};const R=function(){};R.CreativeType={ALL:"All",FLASH:"Flash",IMAGE:"Image"},R.ResourceType={ALL:"All",HTML:"Html",IFRAME:"IFrame",STATIC:"Static"},R.SizeCriteria={IGNORE:"IgnoreSize",SELECT_EXACT_MATCH:"SelectExactMatch",SELECT_NEAR_MATCH:"SelectNearMatch"};const S=function(){};S.prototype={getCuePoints:()=>[],getAdIdRegistry:()=>"",getAdIdValue:()=>""};const D=t;Object.assign(s,{AdCuePoints:S,AdDisplayContainer:n,AdError:C,AdErrorEvent:y,AdEvent:T,AdPodInfo:l,AdProgressData:D,AdsLoader:E,AdsManager:a,AdsManagerLoadedEvent:d,AdsRenderingSettings:A,AdsRequest:u,CompanionAd:c,CompanionAdSelectionSettings:R,CustomContentLoadedEvent:I,gptProxyInstance:{},ImaSdkSettings:i,OmidAccessMode:{DOMAIN:"domain",FULL:"full",LIMITED:"limited"},OmidVerificationVendor:{1:"OTHER",2:"MOAT",3:"DOUBLEVERIFY",4:"INTEGRAL_AD_SCIENCE",5:"PIXELATE",6:"NIELSEN",7:"COMSCORE",8:"MEETRICS",9:"GOOGLE",OTHER:1,MOAT:2,DOUBLEVERIFY:3,INTEGRAL_AD_SCIENCE:4,PIXELATE:5,NIELSEN:6,COMSCORE:7,MEETRICS:8,GOOGLE:9},settings:new i,UiElements:{AD_ATTRIBUTION:"adAttribution",COUNTDOWN:"countdown"},UniversalAdIdInfo:g,VERSION:e,ViewMode:{FULLSCREEN:"fullscreen",NORMAL:"normal"}}),window.google||(window.google={}),window.google.ima?.dai&&(s.dai=window.google.ima.dai),window.google.ima=s})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d7a710ada6cca5832af6d92e62726e74 === e) return; + (()=>{ + var _window_google_ima; + const e = "3.453.0", t = function() {}, n1 = {}, r = function(e) { + const t = document.createElement("div"); + t.style.setProperty("display", "none", "important"), t.style.setProperty("visibility", "collapse", "important"), e && e.appendChild(t); + }; + r.prototype.destroy = t, r.prototype.initialize = t; + const i1 = function() {}; + i1.CompanionBackfillMode = { + ALWAYS: "always", + ON_MASTER_AD: "on_master_ad" + }, i1.VpaidMode = { + DISABLED: 0, + ENABLED: 1, + INSECURE: 2 + }, i1.prototype = { + c: !0, + f: {}, + i: !1, + l: "", + p: "", + r: 0, + t: "", + v: "", + getCompanionBackfill: t, + getDisableCustomPlaybackForIOS10Plus () { + return this.i; + }, + getDisabledFlashAds: ()=>!0, + getFeatureFlags () { + return this.f; + }, + getLocale () { + return this.l; + }, + getNumRedirects () { + return this.r; + }, + getPlayerType () { + return this.t; + }, + getPlayerVersion () { + return this.v; + }, + getPpid () { + return this.p; + }, + getVpaidMode () { + return this.C; + }, + isCookiesEnabled () { + return this.c; + }, + isVpaidAdapter () { + return this.M; + }, + setCompanionBackfill: t, + setAutoPlayAdBreaks (e) { + this.K = e; + }, + setCookiesEnabled (e) { + this.c = !!e; + }, + setDisableCustomPlaybackForIOS10Plus (e) { + this.i = !!e; + }, + setDisableFlashAds: t, + setFeatureFlags (e) { + this.f = !!e; + }, + setIsVpaidAdapter (e) { + this.M = e; + }, + setLocale (e) { + this.l = !!e; + }, + setNumRedirects (e) { + this.r = !!e; + }, + setPageCorrelator (e) { + this.R = e; + }, + setPlayerType (e) { + this.t = !!e; + }, + setPlayerVersion (e) { + this.v = !!e; + }, + setPpid (e) { + this.p = !!e; + }, + setVpaidMode (e) { + this.C = e; + }, + setSessionId: t, + setStreamCorrelator: t, + setVpaidAllowed: t, + CompanionBackfillMode: { + ALWAYS: "always", + ON_MASTER_AD: "on_master_ad" + }, + VpaidMode: { + DISABLED: 0, + ENABLED: 1, + INSECURE: 2 + } + }; + const s = function() { + this.listeners = new Map, this._dispatch = function(e) { + let t = this.listeners.get(e.type); + t = t ? t.values() : []; + for (const n1 of Array.from(t))try { + n1(e); + } catch (e) { + console.trace(e); + } + }, this.addEventListener = function(e, t, n1, r) { + Array.isArray(e) || (e = [ + e + ]); + for(let n1 = 0; n1 < e.length; n1 += 1){ + const i1 = e[n1]; + this.listeners.has(i1) || this.listeners.set(i1, new Map), this.listeners.get(i1).set(t, t.bind(r || this)); + } + }, this.removeEventListener = function(e, t) { + Array.isArray(e) || (e = [ + e + ]); + for(let n1 = 0; n1 < e.length; n1 += 1){ + var _this_listeners_get; + const r = e[n1]; + (_this_listeners_get = this.listeners.get(r)) === null || _this_listeners_get === void 0 ? void 0 : _this_listeners_get.delete(t); + } + }; + }, o = new s; + o.volume = 1, o.collapse = t, o.configureAdsManager = t, o.destroy = t, o.discardAdBreak = t, o.expand = t, o.focus = t, o.getAdSkippableState = ()=>!1, o.getCuePoints = ()=>[ + 0 + ], o.getCurrentAd = ()=>h, o.getCurrentAdCuePoints = ()=>[], o.getRemainingTime = ()=>0, o.getVolume = function() { + return this.volume; + }, o.init = t, o.isCustomClickTrackingUsed = ()=>!1, o.isCustomPlaybackUsed = ()=>!1, o.pause = t, o.requestNextAdBreak = t, o.resize = t, o.resume = t, o.setVolume = function(e) { + this.volume = e; + }, o.skip = t, o.start = function() { + for (const e of [ + T.Type.LOADED, + T.Type.STARTED, + T.Type.CONTENT_RESUME_REQUESTED, + T.Type.AD_BUFFERING, + T.Type.FIRST_QUARTILE, + T.Type.MIDPOINT, + T.Type.THIRD_QUARTILE, + T.Type.COMPLETE, + T.Type.ALL_ADS_COMPLETED + ])try { + this._dispatch(new n1.AdEvent(e)); + } catch (e) { + console.trace(e); + } + }, o.stop = t, o.updateAdsRenderingSettings = t; + const a = Object.create(o), d = function(e, t, n1) { + this.type = e, this.adsRequest = t, this.userRequestContext = n1; + }; + d.prototype = { + getAdsManager: ()=>a, + getUserRequestContext () { + return this.userRequestContext ? this.userRequestContext : {}; + } + }, d.Type = { + ADS_MANAGER_LOADED: "adsManagerLoaded" + }; + const u = s; + u.prototype.settings = new i1, u.prototype.contentComplete = t, u.prototype.destroy = t, u.prototype.getSettings = function() { + return this.settings; + }, u.prototype.getVersion = ()=>e, u.prototype.requestAds = function(e, t) { + requestAnimationFrame(()=>{ + const { ADS_MANAGER_LOADED: r } = d.Type, i1 = new n1.AdsManagerLoadedEvent(r, e, t); + this._dispatch(i1); + }); + const r = new n1.AdError("adPlayError", 1205, 1205, "The browser prevented playback initiated without user interaction.", e, t); + requestAnimationFrame(()=>{ + this._dispatch(new n1.AdErrorEvent(r)); + }); + }; + const E = t, A = function() {}; + A.prototype = { + setAdWillAutoPlay: t, + setAdWillPlayMuted: t, + setContinuousPlayback: t + }; + const l = function() {}; + l.prototype = { + getAdPosition: ()=>1, + getIsBumper: ()=>!1, + getMaxDuration: ()=>-1, + getPodIndex: ()=>1, + getTimeOffset: ()=>0, + getTotalAds: ()=>1 + }; + const g = function() {}; + g.prototype.getAdIdRegistry = function() { + return ""; + }, g.prototype.getAdIsValue = function() { + return ""; + }; + const c = function() {}; + c.prototype = { + pi: new l, + getAdId: ()=>"", + getAdPodInfo () { + return this.pi; + }, + getAdSystem: ()=>"", + getAdvertiserName: ()=>"", + getApiFramework: ()=>null, + getCompanionAds: ()=>[], + getContentType: ()=>"", + getCreativeAdId: ()=>"", + getDealId: ()=>"", + getDescription: ()=>"", + getDuration: ()=>8.5, + getHeight: ()=>0, + getMediaUrl: ()=>null, + getMinSuggestedDuration: ()=>-2, + getSkipTimeOffset: ()=>-1, + getSurveyUrl: ()=>null, + getTitle: ()=>"", + getTraffickingParametersString: ()=>"", + getUiElements: ()=>[ + "" + ], + getUniversalAdIdRegistry: ()=>"unknown", + getUniversalAdIds: ()=>[ + new g + ], + getUniversalAdIdValue: ()=>"unknown", + getVastMediaBitrate: ()=>0, + getVastMediaHeight: ()=>0, + getVastMediaWidth: ()=>0, + getWidth: ()=>0, + getWrapperAdIds: ()=>[ + "" + ], + getWrapperAdSystems: ()=>[ + "" + ], + getWrapperCreativeIds: ()=>[ + "" + ], + isLinear: ()=>!0, + isSkippable: ()=>!0 + }; + const p = function() {}; + p.prototype = { + getAdSlotId: ()=>"", + getContent: ()=>"", + getContentType: ()=>"", + getHeight: ()=>1, + getWidth: ()=>1 + }; + const C = function(e, t, n1, r, i1, s) { + this.errorCode = t, this.message = r, this.type = e, this.adsRequest = i1, this.userRequestContext = s, this.getErrorCode = function() { + return this.errorCode; + }, this.getInnerError = function() { + return null; + }, this.getMessage = function() { + return this.message; + }, this.getType = function() { + return this.type; + }, this.getVastErrorCode = function() { + return this.vastErrorCode; + }, this.toString = function() { + return `AdError ${this.errorCode}: ${this.message}`; + }; + }; + C.ErrorCode = {}, C.Type = {}; + const h = (()=>{ + try { + var _e_getPlayer_div, _e_getPlayer; + for (const e of Object.values(window.vidible._getContexts()))if ((_e_getPlayer = e.getPlayer()) === null || _e_getPlayer === void 0 ? void 0 : (_e_getPlayer_div = _e_getPlayer.div) === null || _e_getPlayer_div === void 0 ? void 0 : _e_getPlayer_div.innerHTML.includes("www.engadget.com")) return !0; + } catch (e) {} + return !1; + })() ? void 0 : new c, T = function(e) { + this.type = e; + }; + T.prototype = { + getAd: ()=>h, + getAdData: ()=>{} + }, T.Type = { + AD_BREAK_READY: "adBreakReady", + AD_BUFFERING: "adBuffering", + AD_CAN_PLAY: "adCanPlay", + AD_METADATA: "adMetadata", + AD_PROGRESS: "adProgress", + ALL_ADS_COMPLETED: "allAdsCompleted", + CLICK: "click", + COMPLETE: "complete", + CONTENT_PAUSE_REQUESTED: "contentPauseRequested", + CONTENT_RESUME_REQUESTED: "contentResumeRequested", + DURATION_CHANGE: "durationChange", + EXPANDED_CHANGED: "expandedChanged", + FIRST_QUARTILE: "firstQuartile", + IMPRESSION: "impression", + INTERACTION: "interaction", + LINEAR_CHANGE: "linearChange", + LINEAR_CHANGED: "linearChanged", + LOADED: "loaded", + LOG: "log", + MIDPOINT: "midpoint", + PAUSED: "pause", + RESUMED: "resume", + SKIPPABLE_STATE_CHANGED: "skippableStateChanged", + SKIPPED: "skip", + STARTED: "start", + THIRD_QUARTILE: "thirdQuartile", + USER_CLOSE: "userClose", + VIDEO_CLICKED: "videoClicked", + VIDEO_ICON_CLICKED: "videoIconClicked", + VIEWABLE_IMPRESSION: "viewable_impression", + VOLUME_CHANGED: "volumeChange", + VOLUME_MUTED: "mute" + }; + const y = function(e) { + this.error = e, this.type = "adError", this.getError = function() { + return this.error; + }, this.getUserRequestContext = function() { + var _this_error; + return ((_this_error = this.error) === null || _this_error === void 0 ? void 0 : _this_error.userRequestContext) ? this.error.userRequestContext : {}; + }; + }; + y.Type = { + AD_ERROR: "adError" + }; + const I = function() {}; + I.Type = { + CUSTOM_CONTENT_LOADED: "deprecated-event" + }; + const R = function() {}; + R.CreativeType = { + ALL: "All", + FLASH: "Flash", + IMAGE: "Image" + }, R.ResourceType = { + ALL: "All", + HTML: "Html", + IFRAME: "IFrame", + STATIC: "Static" + }, R.SizeCriteria = { + IGNORE: "IgnoreSize", + SELECT_EXACT_MATCH: "SelectExactMatch", + SELECT_NEAR_MATCH: "SelectNearMatch" + }; + const S = function() {}; + S.prototype = { + getCuePoints: ()=>[], + getAdIdRegistry: ()=>"", + getAdIdValue: ()=>"" + }; + const D = t; + Object.assign(n1, { + AdCuePoints: S, + AdDisplayContainer: r, + AdError: C, + AdErrorEvent: y, + AdEvent: T, + AdPodInfo: l, + AdProgressData: D, + AdsLoader: u, + AdsManager: a, + AdsManagerLoadedEvent: d, + AdsRenderingSettings: E, + AdsRequest: A, + CompanionAd: p, + CompanionAdSelectionSettings: R, + CustomContentLoadedEvent: I, + gptProxyInstance: {}, + ImaSdkSettings: i1, + OmidAccessMode: { + DOMAIN: "domain", + FULL: "full", + LIMITED: "limited" + }, + OmidVerificationVendor: { + 1: "OTHER", + 2: "MOAT", + 3: "DOUBLEVERIFY", + 4: "INTEGRAL_AD_SCIENCE", + 5: "PIXELATE", + 6: "NIELSEN", + 7: "COMSCORE", + 8: "MEETRICS", + 9: "GOOGLE", + OTHER: 1, + MOAT: 2, + DOUBLEVERIFY: 3, + INTEGRAL_AD_SCIENCE: 4, + PIXELATE: 5, + NIELSEN: 6, + COMSCORE: 7, + MEETRICS: 8, + GOOGLE: 9 + }, + settings: new i1, + UiElements: { + AD_ATTRIBUTION: "adAttribution", + COUNTDOWN: "countdown" + }, + UniversalAdIdInfo: g, + VERSION: e, + ViewMode: { + FULLSCREEN: "fullscreen", + NORMAL: "normal" + } + }), window.google || (window.google = {}), ((_window_google_ima = window.google.ima) === null || _window_google_ima === void 0 ? void 0 : _window_google_ima.dai) && (n1.dai = window.google.ima.dai), window.google.ima = n1; + })(); + Object.defineProperty(Window.prototype.toString, "d7a710ada6cca5832af6d92e62726e74", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d7a710ada6cca5832af6d92e62726e74" due to: ' + e); + } + }, + '(()=>{const t=[];t.push=function(t){"object"==typeof t&&t.events&&Object.values(t.events).forEach((t=>{if("function"==typeof t)try{t()}catch(t){}}))},window.AdBridg={cmd:t}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f6311be2c1ed023feeb00c3d41dea489 === e) return; + (()=>{ + const e = []; + e.push = function(e) { + "object" == typeof e && e.events && Object.values(e.events).forEach((e)=>{ + if ("function" == typeof e) try { + e(); + } catch (e) {} + }); + }, window.AdBridg = { + cmd: e + }; + })(); + Object.defineProperty(Window.prototype.toString, "f6311be2c1ed023feeb00c3d41dea489", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f6311be2c1ed023feeb00c3d41dea489" due to: ' + e); + } + }, + '(()=>{let t=window?.__iasPET?.queue;Array.isArray(t)||(t=[]);const s=JSON.stringify({brandSafety:{},slots:{}});function e(t){try{t?.dataHandler?.(s)}catch(t){}}for(t.push=e,window.__iasPET={VERSION:"1.16.18",queue:t,sessionId:"",setTargetingForAppNexus(){},setTargetingForGPT(){},start(){}};t.length;)e(t.shift())})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.baf394a72c20f8e6c3a0adc04c9df104 === e) return; + (()=>{ + var _window___iasPET, _window; + let e = (_window = window) === null || _window === void 0 ? void 0 : (_window___iasPET = _window.__iasPET) === null || _window___iasPET === void 0 ? void 0 : _window___iasPET.queue; + Array.isArray(e) || (e = []); + const t = JSON.stringify({ + brandSafety: {}, + slots: {} + }); + function r(e) { + try { + var _e_dataHandler; + e === null || e === void 0 ? void 0 : (_e_dataHandler = e.dataHandler) === null || _e_dataHandler === void 0 ? void 0 : _e_dataHandler.call(e, t); + } catch (e) {} + } + for(e.push = r, window.__iasPET = { + VERSION: "1.16.18", + queue: e, + sessionId: "", + setTargetingForAppNexus () {}, + setTargetingForGPT () {}, + start () {} + }; e.length;)r(e.shift()); + })(); + Object.defineProperty(Window.prototype.toString, "baf394a72c20f8e6c3a0adc04c9df104", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "baf394a72c20f8e6c3a0adc04c9df104" due to: ' + e); + } + }, + '(()=>{window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,{apply:async(a,b,c)=>{const d=c[1];if("string"!=typeof d||0===d.length)return Reflect.apply(a,b,c);const e=/topaz\\.dai\\.viacomcbs\\.digital\\/ondemand\\/hls\\/.*\\.m3u8/.test(d),f=/dai\\.google\\.com\\/ondemand\\/v.*\\/hls\\/content\\/.*\\/vid\\/.*\\/stream/.test(d);return(e||f)&&b.addEventListener("readystatechange",function(){if(4===b.readyState){const a=b.response;if(Object.defineProperty(b,"response",{writable:!0}),Object.defineProperty(b,"responseText",{writable:!0}),f&&(null!==a&&void 0!==a&&a.ad_breaks&&(a.ad_breaks=[]),null!==a&&void 0!==a&&a.apple_tv&&(a.apple_tv={})),e){const c=a.replaceAll(/#EXTINF:(\\d|\\d\\.\\d+)\\,\\nhttps:\\/\\/redirector\\.googlevideo\\.com\\/videoplayback\\?[\\s\\S]*?&source=dclk_video_ads&[\\s\\S]*?\\n/g,"");b.response=c,b.responseText=c}}}),Reflect.apply(a,b,c)}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a8c6f78e34ee76b7ae128e62027dec2f === e) return; + window.XMLHttpRequest.prototype.open = new Proxy(window.XMLHttpRequest.prototype.open, { + apply: async (e, t, o)=>{ + const n1 = o[1]; + if ("string" != typeof n1 || 0 === n1.length) return Reflect.apply(e, t, o); + const r = /topaz\.dai\.viacomcbs\.digital\/ondemand\/hls\/.*\.m3u8/.test(n1), a = /dai\.google\.com\/ondemand\/v.*\/hls\/content\/.*\/vid\/.*\/stream/.test(n1); + return (r || a) && t.addEventListener("readystatechange", function() { + if (4 === t.readyState) { + const e = t.response; + if (Object.defineProperty(t, "response", { + writable: !0 + }), Object.defineProperty(t, "responseText", { + writable: !0 + }), a && (null != e && e.ad_breaks && (e.ad_breaks = []), null != e && e.apple_tv && (e.apple_tv = {})), r) { + const o = e.replaceAll(/#EXTINF:(\d|\d\.\d+)\,\nhttps:\/\/redirector\.googlevideo\.com\/videoplayback\?[\s\S]*?&source=dclk_video_ads&[\s\S]*?\n/g, ""); + t.response = o, t.responseText = o; + } + } + }), Reflect.apply(e, t, o); + } + }); + Object.defineProperty(Window.prototype.toString, "a8c6f78e34ee76b7ae128e62027dec2f", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a8c6f78e34ee76b7ae128e62027dec2f" due to: ' + e); + } + }, + "(function(){window.twttr={conversion:{trackPid:function(){}}}})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b207994a134acba69e58503a5393b31a === e) return; + window.twttr = { + conversion: { + trackPid: function() {} + } + }; + Object.defineProperty(Window.prototype.toString, "b207994a134acba69e58503a5393b31a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b207994a134acba69e58503a5393b31a" due to: ' + e); + } + }, + '(()=>{const a=window.fetch,b={apply:async(b,c,d)=>{const e=d[0]instanceof Request?d[0].url:d[0];if("string"!=typeof e||0===e.length)return Reflect.apply(b,c,d);if(e.includes("uplynk.com/")&&e.includes(".m3u8")){const b=await a(...d);let c=await b.text();return c=c.replaceAll(/#UPLYNK-SEGMENT: \\S*\\,ad\\s[\\s\\S]+?((#UPLYNK-SEGMENT: \\S+\\,segment)|(#EXT-X-ENDLIST))/g,"$1"),new Response(c)}return Reflect.apply(b,c,d)}};try{window.fetch=new Proxy(window.fetch,b)}catch(a){}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f2cc35b643de55322eb7ef4e3811aa59 === e) return; + (()=>{ + const e = window.fetch, t = { + apply: async (t, n1, r)=>{ + const c = r[0] instanceof Request ? r[0].url : r[0]; + if ("string" != typeof c || 0 === c.length) return Reflect.apply(t, n1, r); + if (c.includes("uplynk.com/") && c.includes(".m3u8")) { + const t = await e(...r); + let n1 = await t.text(); + return n1 = n1.replaceAll(/#UPLYNK-SEGMENT: \S*\,ad\s[\s\S]+?((#UPLYNK-SEGMENT: \S+\,segment)|(#EXT-X-ENDLIST))/g, "$1"), new Response(n1); + } + return Reflect.apply(t, n1, r); + } + }; + try { + window.fetch = new Proxy(window.fetch, t); + } catch (e) {} + })(); + Object.defineProperty(Window.prototype.toString, "f2cc35b643de55322eb7ef4e3811aa59", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f2cc35b643de55322eb7ef4e3811aa59" due to: ' + e); + } + }, + '(()=>{window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,{apply:async(a,b,c)=>{const d=c[1];return"string"!=typeof d||0===d.length?Reflect.apply(a,b,c):(d.match(/pubads\\.g\\.doubleclick.net\\/ondemand\\/hls\\/.*\\.m3u8/)&&b.addEventListener("readystatechange",function(){if(4===b.readyState){const a=b.response;Object.defineProperty(b,"response",{writable:!0}),Object.defineProperty(b,"responseText",{writable:!0});const c=a.replaceAll(/#EXTINF:(\\d|\\d\\.\\d+)\\,\\nhttps:\\/\\/redirector\\.googlevideo\\.com\\/videoplayback\\?[\\s\\S]*?&source=dclk_video_ads&[\\s\\S]*?\\n/g,"");b.response=c,b.responseText=c}}),Reflect.apply(a,b,c))}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0664f2a8c7617fced3e7790a26b1c7f8"] === e) return; + window.XMLHttpRequest.prototype.open = new Proxy(window.XMLHttpRequest.prototype.open, { + apply: async (e, t, o)=>{ + const r = o[1]; + return "string" != typeof r || 0 === r.length || r.match(/pubads\.g\.doubleclick.net\/ondemand\/hls\/.*\.m3u8/) && t.addEventListener("readystatechange", function() { + if (4 === t.readyState) { + const e = t.response; + Object.defineProperty(t, "response", { + writable: !0 + }), Object.defineProperty(t, "responseText", { + writable: !0 + }); + const o = e.replaceAll(/#EXTINF:(\d|\d\.\d+)\,\nhttps:\/\/redirector\.googlevideo\.com\/videoplayback\?[\s\S]*?&source=dclk_video_ads&[\s\S]*?\n/g, ""); + t.response = o, t.responseText = o; + } + }), Reflect.apply(e, t, o); + } + }); + Object.defineProperty(Window.prototype.toString, "0664f2a8c7617fced3e7790a26b1c7f8", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0664f2a8c7617fced3e7790a26b1c7f8" due to: ' + e); + } + }, + '(()=>{const a=window.fetch;window.fetch=new Proxy(window.fetch,{apply:async(b,c,d)=>{const e=d[0];if("string"!=typeof e||0===e.length)return Reflect.apply(b,c,d);if(e.match(/pubads\\.g\\.doubleclick\\.net\\/ondemand\\/.*\\/content\\/.*\\/vid\\/.*\\/streams\\/.*\\/manifest\\.mpd|pubads\\.g\\.doubleclick.net\\/ondemand\\/hls\\/.*\\.m3u8/)){const b=await a(...d);let c=await b.text();return c=c.replaceAll(/{ + try { + const e = "done"; + if (Window.prototype.toString.cce15678b7fd141ec70a16bc1f01aa96 === e) return; + (()=>{ + const e = window.fetch; + window.fetch = new Proxy(window.fetch, { + apply: async (t, o, c)=>{ + const n1 = c[0]; + if ("string" != typeof n1 || 0 === n1.length) return Reflect.apply(t, o, c); + if (n1.match(/pubads\.g\.doubleclick\.net\/ondemand\/.*\/content\/.*\/vid\/.*\/streams\/.*\/manifest\.mpd|pubads\.g\.doubleclick.net\/ondemand\/hls\/.*\.m3u8/)) { + const t = await e(...c); + let o = await t.text(); + return o = o.replaceAll(/{window.FAVE=window.FAVE||{};const s={set:(s,e,a,n)=>{if(s?.settings?.ads?.ssai?.prod?.clips?.enabled&&(s.settings.ads.ssai.prod.clips.enabled=!1),s?.settings?.ads?.ssai?.prod?.liveAuth?.enabled&&(s.settings.ads.ssai.prod.liveAuth.enabled=!1),s?.settings?.ads?.ssai?.prod?.liveUnauth?.enabled&&(s.settings.ads.ssai.prod.liveUnauth.enabled=!1),s?.player?.instances)for(var i of Object.keys(s.player.instances))s.player.instances[i]?.configs?.ads?.ssai?.prod?.clips?.enabled&&(s.player.instances[i].configs.ads.ssai.prod.clips.enabled=!1),s.player.instances[i]?.configs?.ads?.ssai?.prod?.liveAuth?.enabled&&(s.player.instances[i].configs.ads.ssai.prod.liveAuth.enabled=!1),s.player.instances[i]?.configs?.ads?.ssai?.prod?.liveUnauth?.enabled&&(s.player.instances[i].configs.ads.ssai.prod.liveUnauth.enabled=!1);return Reflect.set(s,e,a,n)}};window.FAVE=new Proxy(window.FAVE,s)})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.db4626a48a0140f6bfa4180ae874f6ce === e) return; + (()=>{ + window.FAVE = window.FAVE || {}; + const e = { + set: (e, s, a, n1)=>{ + var _e_settings_ads_ssai_prod_clips, _e_settings_ads_ssai_prod, _e_settings_ads_ssai, _e_settings_ads, _e_settings, _e_settings_ads_ssai_prod_liveAuth, _e_settings_ads_ssai_prod1, _e_settings_ads_ssai1, _e_settings_ads1, _e_settings1, _e_settings_ads_ssai_prod_liveUnauth, _e_settings_ads_ssai_prod2, _e_settings_ads_ssai2, _e_settings_ads2, _e_settings2, _e_player, _e_player_instances_i_configs_ads_ssai_prod_clips, _e_player_instances_i_configs_ads_ssai_prod, _e_player_instances_i_configs_ads_ssai, _e_player_instances_i_configs_ads, _e_player_instances_i_configs, _e_player_instances_i, _e_player_instances_i_configs_ads_ssai_prod_liveAuth, _e_player_instances_i_configs_ads_ssai_prod1, _e_player_instances_i_configs_ads_ssai1, _e_player_instances_i_configs_ads1, _e_player_instances_i_configs1, _e_player_instances_i1, _e_player_instances_i_configs_ads_ssai_prod_liveUnauth, _e_player_instances_i_configs_ads_ssai_prod2, _e_player_instances_i_configs_ads_ssai2, _e_player_instances_i_configs_ads2, _e_player_instances_i_configs2, _e_player_instances_i2; + if ((e === null || e === void 0 ? void 0 : (_e_settings = e.settings) === null || _e_settings === void 0 ? void 0 : (_e_settings_ads = _e_settings.ads) === null || _e_settings_ads === void 0 ? void 0 : (_e_settings_ads_ssai = _e_settings_ads.ssai) === null || _e_settings_ads_ssai === void 0 ? void 0 : (_e_settings_ads_ssai_prod = _e_settings_ads_ssai.prod) === null || _e_settings_ads_ssai_prod === void 0 ? void 0 : (_e_settings_ads_ssai_prod_clips = _e_settings_ads_ssai_prod.clips) === null || _e_settings_ads_ssai_prod_clips === void 0 ? void 0 : _e_settings_ads_ssai_prod_clips.enabled) && (e.settings.ads.ssai.prod.clips.enabled = !1), (e === null || e === void 0 ? void 0 : (_e_settings1 = e.settings) === null || _e_settings1 === void 0 ? void 0 : (_e_settings_ads1 = _e_settings1.ads) === null || _e_settings_ads1 === void 0 ? void 0 : (_e_settings_ads_ssai1 = _e_settings_ads1.ssai) === null || _e_settings_ads_ssai1 === void 0 ? void 0 : (_e_settings_ads_ssai_prod1 = _e_settings_ads_ssai1.prod) === null || _e_settings_ads_ssai_prod1 === void 0 ? void 0 : (_e_settings_ads_ssai_prod_liveAuth = _e_settings_ads_ssai_prod1.liveAuth) === null || _e_settings_ads_ssai_prod_liveAuth === void 0 ? void 0 : _e_settings_ads_ssai_prod_liveAuth.enabled) && (e.settings.ads.ssai.prod.liveAuth.enabled = !1), (e === null || e === void 0 ? void 0 : (_e_settings2 = e.settings) === null || _e_settings2 === void 0 ? void 0 : (_e_settings_ads2 = _e_settings2.ads) === null || _e_settings_ads2 === void 0 ? void 0 : (_e_settings_ads_ssai2 = _e_settings_ads2.ssai) === null || _e_settings_ads_ssai2 === void 0 ? void 0 : (_e_settings_ads_ssai_prod2 = _e_settings_ads_ssai2.prod) === null || _e_settings_ads_ssai_prod2 === void 0 ? void 0 : (_e_settings_ads_ssai_prod_liveUnauth = _e_settings_ads_ssai_prod2.liveUnauth) === null || _e_settings_ads_ssai_prod_liveUnauth === void 0 ? void 0 : _e_settings_ads_ssai_prod_liveUnauth.enabled) && (e.settings.ads.ssai.prod.liveUnauth.enabled = !1), e === null || e === void 0 ? void 0 : (_e_player = e.player) === null || _e_player === void 0 ? void 0 : _e_player.instances) for (var i1 of Object.keys(e.player.instances))((_e_player_instances_i = e.player.instances[i1]) === null || _e_player_instances_i === void 0 ? void 0 : (_e_player_instances_i_configs = _e_player_instances_i.configs) === null || _e_player_instances_i_configs === void 0 ? void 0 : (_e_player_instances_i_configs_ads = _e_player_instances_i_configs.ads) === null || _e_player_instances_i_configs_ads === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai = _e_player_instances_i_configs_ads.ssai) === null || _e_player_instances_i_configs_ads_ssai === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod = _e_player_instances_i_configs_ads_ssai.prod) === null || _e_player_instances_i_configs_ads_ssai_prod === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod_clips = _e_player_instances_i_configs_ads_ssai_prod.clips) === null || _e_player_instances_i_configs_ads_ssai_prod_clips === void 0 ? void 0 : _e_player_instances_i_configs_ads_ssai_prod_clips.enabled) && (e.player.instances[i1].configs.ads.ssai.prod.clips.enabled = !1), ((_e_player_instances_i1 = e.player.instances[i1]) === null || _e_player_instances_i1 === void 0 ? void 0 : (_e_player_instances_i_configs1 = _e_player_instances_i1.configs) === null || _e_player_instances_i_configs1 === void 0 ? void 0 : (_e_player_instances_i_configs_ads1 = _e_player_instances_i_configs1.ads) === null || _e_player_instances_i_configs_ads1 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai1 = _e_player_instances_i_configs_ads1.ssai) === null || _e_player_instances_i_configs_ads_ssai1 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod1 = _e_player_instances_i_configs_ads_ssai1.prod) === null || _e_player_instances_i_configs_ads_ssai_prod1 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod_liveAuth = _e_player_instances_i_configs_ads_ssai_prod1.liveAuth) === null || _e_player_instances_i_configs_ads_ssai_prod_liveAuth === void 0 ? void 0 : _e_player_instances_i_configs_ads_ssai_prod_liveAuth.enabled) && (e.player.instances[i1].configs.ads.ssai.prod.liveAuth.enabled = !1), ((_e_player_instances_i2 = e.player.instances[i1]) === null || _e_player_instances_i2 === void 0 ? void 0 : (_e_player_instances_i_configs2 = _e_player_instances_i2.configs) === null || _e_player_instances_i_configs2 === void 0 ? void 0 : (_e_player_instances_i_configs_ads2 = _e_player_instances_i_configs2.ads) === null || _e_player_instances_i_configs_ads2 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai2 = _e_player_instances_i_configs_ads2.ssai) === null || _e_player_instances_i_configs_ads_ssai2 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod2 = _e_player_instances_i_configs_ads_ssai2.prod) === null || _e_player_instances_i_configs_ads_ssai_prod2 === void 0 ? void 0 : (_e_player_instances_i_configs_ads_ssai_prod_liveUnauth = _e_player_instances_i_configs_ads_ssai_prod2.liveUnauth) === null || _e_player_instances_i_configs_ads_ssai_prod_liveUnauth === void 0 ? void 0 : _e_player_instances_i_configs_ads_ssai_prod_liveUnauth.enabled) && (e.player.instances[i1].configs.ads.ssai.prod.liveUnauth.enabled = !1); + return Reflect.set(e, s, a, n1); + } + }; + window.FAVE = new Proxy(window.FAVE, e); + })(); + Object.defineProperty(Window.prototype.toString, "db4626a48a0140f6bfa4180ae874f6ce", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "db4626a48a0140f6bfa4180ae874f6ce" due to: ' + e); + } + }, + "(()=>{window.PostRelease={Start(){}}})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f442d027f2647247aaa89f75941826f0 === e) return; + window.PostRelease = { + Start () {} + }; + Object.defineProperty(Window.prototype.toString, "f442d027f2647247aaa89f75941826f0", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f442d027f2647247aaa89f75941826f0" due to: ' + e); + } + }, + '(()=>{window.com_adswizz_synchro_decorateUrl=function(a){if("string"===typeof a&&a.startsWith("http"))return a}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2b3b012135adb550eb133e7becf3e060"] === e) return; + window.com_adswizz_synchro_decorateUrl = function(e) { + if ("string" == typeof e && e.startsWith("http")) return e; + }; + Object.defineProperty(Window.prototype.toString, "2b3b012135adb550eb133e7becf3e060", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2b3b012135adb550eb133e7becf3e060" due to: ' + e); + } + }, + '(()=>{window.XMLHttpRequest.prototype.open=new Proxy(window.XMLHttpRequest.prototype.open,{apply:async(a,b,c)=>{const d=c[1];return"string"!=typeof d||0===d.length?Reflect.apply(a,b,c):(d.match(/manifest\\..*\\.theplatform\\.com\\/.*\\/.*\\.m3u8\\?.*|manifest\\..*\\.theplatform\\.com\\/.*\\/*\\.meta.*/)&&b.addEventListener("readystatechange",function(){if(4===b.readyState){const a=b.response;Object.defineProperty(b,"response",{writable:!0}),Object.defineProperty(b,"responseText",{writable:!0});const c=a.replaceAll(/#EXTINF:.*\\n.*tvessaiprod\\.nbcuni\\.com\\/video\\/[\\s\\S]*?#EXT-X-DISCONTINUITY|#EXT-X-VMAP-AD-BREAK[\\s\\S]*?#EXT-X-ENDLIST/g,"");b.response=c,b.responseText=c}}),Reflect.apply(a,b,c))}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["6f3d40e53e83daab7ecb0b1ff3b3d011"] === e) return; + window.XMLHttpRequest.prototype.open = new Proxy(window.XMLHttpRequest.prototype.open, { + apply: async (e, t, o)=>{ + const r = o[1]; + return "string" != typeof r || 0 === r.length || r.match(/manifest\..*\.theplatform\.com\/.*\/.*\.m3u8\?.*|manifest\..*\.theplatform\.com\/.*\/*\.meta.*/) && t.addEventListener("readystatechange", function() { + if (4 === t.readyState) { + const e = t.response; + Object.defineProperty(t, "response", { + writable: !0 + }), Object.defineProperty(t, "responseText", { + writable: !0 + }); + const o = e.replaceAll(/#EXTINF:.*\n.*tvessaiprod\.nbcuni\.com\/video\/[\s\S]*?#EXT-X-DISCONTINUITY|#EXT-X-VMAP-AD-BREAK[\s\S]*?#EXT-X-ENDLIST/g, ""); + t.response = o, t.responseText = o; + } + }), Reflect.apply(e, t, o); + } + }); + Object.defineProperty(Window.prototype.toString, "6f3d40e53e83daab7ecb0b1ff3b3d011", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "6f3d40e53e83daab7ecb0b1ff3b3d011" due to: ' + e); + } + }, + '(()=>{let e,t=!1;const n=function(){},o=function(t,n){if("function"==typeof n)try{window.KalturaPlayer?n([]):e=n}catch(e){console.error(e)}};let r;Object.defineProperty(window,"PWT",{get:()=>({requestBids:o,generateConfForGPT:o,addKeyValuePairsToGPTSlots:n,generateDFPURL:n}),set(){}}),Object.defineProperty(window,"KalturaPlayer",{get:function(){return r},set:function(n){r=n,!t&&e&&(t=!0,e([]))}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c8bf49746912973d817a11811377a065 === e) return; + (()=>{ + let e, t = !1; + const r = function() {}, o = function(t, r) { + if ("function" == typeof r) try { + window.KalturaPlayer ? r([]) : e = r; + } catch (e) { + console.error(e); + } + }; + let n1; + Object.defineProperty(window, "PWT", { + get: ()=>({ + requestBids: o, + generateConfForGPT: o, + addKeyValuePairsToGPTSlots: r, + generateDFPURL: r + }), + set () {} + }), Object.defineProperty(window, "KalturaPlayer", { + get: function() { + return n1; + }, + set: function(r) { + n1 = r, !t && e && (t = !0, e([])); + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "c8bf49746912973d817a11811377a065", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c8bf49746912973d817a11811377a065" due to: ' + e); + } + }, + '(()=>{const a=function(){},b=function(c,a){if("function"==typeof a)try{a([])}catch(a){console.error(a)}};Object.defineProperty(window,"PWT",{value:{requestBids:b,generateConfForGPT:b,addKeyValuePairsToGPTSlots:a,generateDFPURL:a}})})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["7a089dd23e47e252f413e97c2c706704"] === e) return; + (()=>{ + const e = function() {}, o = function(e, o) { + if ("function" == typeof o) try { + o([]); + } catch (o) { + console.error(o); + } + }; + Object.defineProperty(window, "PWT", { + value: { + requestBids: o, + generateConfForGPT: o, + addKeyValuePairsToGPTSlots: e, + generateDFPURL: e + } + }); + })(); + Object.defineProperty(Window.prototype.toString, "7a089dd23e47e252f413e97c2c706704", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "7a089dd23e47e252f413e97c2c706704" due to: ' + e); + } + }, + "(()=>{window.turner_getTransactionId=turner_getGuid=function(){},window.AdFuelUtils={getUMTOCookies(){}}})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.b023e1f40db016717028fe62421a3285 === e) return; + window.turner_getTransactionId = turner_getGuid = function() {}, window.AdFuelUtils = { + getUMTOCookies () {} + }; + Object.defineProperty(Window.prototype.toString, "b023e1f40db016717028fe62421a3285", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "b023e1f40db016717028fe62421a3285" due to: ' + e); + } + }, + '(function(){window.adsbygoogle={loaded:!0,push:function(a){if(null!==a&&a instanceof Object&&"Object"===a.constructor.name)for(let b in a)if("function"==typeof a[b])try{a[b].call()}catch(a){console.error(a)}}}})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2ba6aeb1954873824c6148e3102a091c"] === e) return; + window.adsbygoogle = { + loaded: !0, + push: function(e) { + if (null !== e && e instanceof Object && "Object" === e.constructor.name) { + for(let o in e)if ("function" == typeof e[o]) try { + e[o].call(); + } catch (e) { + console.error(e); + } + } + } + }; + Object.defineProperty(Window.prototype.toString, "2ba6aeb1954873824c6148e3102a091c", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2ba6aeb1954873824c6148e3102a091c" due to: ' + e); + } + }, + "(()=>{document.addEventListener('DOMContentLoaded',()=>{setTimeout(function(){(function(){window.AdFuel={queueRegistry(){},destroySlots(){}}})()},500);})})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d4ca083794994e22dcb36f8fd698d98e === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + setTimeout(function() { + window.AdFuel = { + queueRegistry () {}, + destroySlots () {} + }; + }, 500); + }); + Object.defineProperty(Window.prototype.toString, "d4ca083794994e22dcb36f8fd698d98e", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d4ca083794994e22dcb36f8fd698d98e" due to: ' + e); + } + }, + "(function(){var a={setConfig:function(){},aliasBidder:function(){},removeAdUnit:function(){},que:[push=function(){}]};window.pbjs=a})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["0d58ac66c89ef6fa9de7481fe82dcc9b"] === e) return; + !function() { + var e = { + setConfig: function() {}, + aliasBidder: function() {}, + removeAdUnit: function() {}, + que: [ + push = function() {} + ] + }; + window.pbjs = e; + }(); + Object.defineProperty(Window.prototype.toString, "0d58ac66c89ef6fa9de7481fe82dcc9b", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "0d58ac66c89ef6fa9de7481fe82dcc9b" due to: ' + e); + } + }, + "window.addEventListener('DOMContentLoaded', function() { document.body.innerHTML = document.body.innerHTML.replace(/Adverts/g, \"\"); })": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["3238470ccdeda8472a95e2bbb72a4f2a"] === e) return; + window.addEventListener("DOMContentLoaded", function() { + document.body.innerHTML = document.body.innerHTML.replace(/Adverts/g, ""); + }); + Object.defineProperty(Window.prototype.toString, "3238470ccdeda8472a95e2bbb72a4f2a", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "3238470ccdeda8472a95e2bbb72a4f2a" due to: ' + e); + } + }, + "!function(){window.rTimer=function(){};window.jitaJS={rtk:{refreshAdUnits:function(){}}};}();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["642c5e10be75a4087f7ce1326ec9a7ee"] === e) return; + !function() { + window.rTimer = function() {}; + window.jitaJS = { + rtk: { + refreshAdUnits: function() {} + } + }; + }(); + Object.defineProperty(Window.prototype.toString, "642c5e10be75a4087f7ce1326ec9a7ee", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "642c5e10be75a4087f7ce1326ec9a7ee" due to: ' + e); + } + }, + '(()=>{const t=new MutationObserver((t=>{for(let e of t){const t=e.target;if(t?.querySelector?.("div:not([class], [id]):first-child + div:not([class], [id]):not([class], [id]):last-child")){const e=t.querySelector("div:not([class], [id]):last-child"),o=e?.shadowRoot?.querySelector?.("div:not([class], [id]) > div:not([class], [id])")?.textContent?.trim?.()?.toLowerCase?.();if(o&&o.length<20&&o.includes?.("advertisement"))try{e.remove()}catch(t){console.trace(t)}}}})),e={apply:(e,o,s)=>{try{s[0].mode="open"}catch(t){console.error(t)}const c=Reflect.apply(e,o,s);return t.observe(c,{subtree:!0,childList:!0}),c}};window.Element.prototype.attachShadow=new Proxy(window.Element.prototype.attachShadow,e)})();': ()=>{ + try { + const t = "done"; + if (Window.prototype.toString.ad28df58aaf20377983494d5153f190f === t) return; + (()=>{ + const t = new MutationObserver((t)=>{ + for (let e of t){ + var _o_querySelector; + const o = e.target; + if (o === null || o === void 0 ? void 0 : (_o_querySelector = o.querySelector) === null || _o_querySelector === void 0 ? void 0 : _o_querySelector.call(o, "div:not([class], [id]):first-child + div:not([class], [id]):not([class], [id]):last-child")) { + var _e_shadowRoot_querySelector_textContent_trim_toLowerCase, _e_shadowRoot_querySelector_textContent_trim, _e_shadowRoot_querySelector_textContent_trim1, _e_shadowRoot_querySelector_textContent, _e_shadowRoot_querySelector, _e_shadowRoot_querySelector1, _e_shadowRoot, _r_includes; + const e = o.querySelector("div:not([class], [id]):last-child"), r = e === null || e === void 0 ? void 0 : (_e_shadowRoot = e.shadowRoot) === null || _e_shadowRoot === void 0 ? void 0 : (_e_shadowRoot_querySelector1 = _e_shadowRoot.querySelector) === null || _e_shadowRoot_querySelector1 === void 0 ? void 0 : (_e_shadowRoot_querySelector = _e_shadowRoot_querySelector1.call(_e_shadowRoot, "div:not([class], [id]) > div:not([class], [id])")) === null || _e_shadowRoot_querySelector === void 0 ? void 0 : (_e_shadowRoot_querySelector_textContent = _e_shadowRoot_querySelector.textContent) === null || _e_shadowRoot_querySelector_textContent === void 0 ? void 0 : (_e_shadowRoot_querySelector_textContent_trim1 = _e_shadowRoot_querySelector_textContent.trim) === null || _e_shadowRoot_querySelector_textContent_trim1 === void 0 ? void 0 : (_e_shadowRoot_querySelector_textContent_trim = _e_shadowRoot_querySelector_textContent_trim1.call(_e_shadowRoot_querySelector_textContent)) === null || _e_shadowRoot_querySelector_textContent_trim === void 0 ? void 0 : (_e_shadowRoot_querySelector_textContent_trim_toLowerCase = _e_shadowRoot_querySelector_textContent_trim.toLowerCase) === null || _e_shadowRoot_querySelector_textContent_trim_toLowerCase === void 0 ? void 0 : _e_shadowRoot_querySelector_textContent_trim_toLowerCase.call(_e_shadowRoot_querySelector_textContent_trim); + if (r && r.length < 20 && ((_r_includes = r.includes) === null || _r_includes === void 0 ? void 0 : _r_includes.call(r, "advertisement"))) try { + e.remove(); + } catch (t) { + console.trace(t); + } + } + } + }), e = { + apply: (e, o, r)=>{ + try { + r[0].mode = "open"; + } catch (t) { + console.error(t); + } + const n1 = Reflect.apply(e, o, r); + return t.observe(n1, { + subtree: !0, + childList: !0 + }), n1; + } + }; + window.Element.prototype.attachShadow = new Proxy(window.Element.prototype.attachShadow, e); + })(); + Object.defineProperty(Window.prototype.toString, "ad28df58aaf20377983494d5153f190f", { + value: t, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (t) { + console.error('Error executing AG js rule with uniqueId "ad28df58aaf20377983494d5153f190f" due to: ' + t); + } + }, + 'document.cookie="vpn=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c30e73df868a56abad82ef46aea39100 === e) return; + document.cookie = "vpn=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "c30e73df868a56abad82ef46aea39100", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c30e73df868a56abad82ef46aea39100" due to: ' + e); + } + }, + "(()=>{document.addEventListener(\"DOMContentLoaded\",(()=>{ if(typeof jQuery) { jQuery('#SearchButtom').unbind('click'); } }));})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["1e2d5574e33a449dcd46c38824d46820"] === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + jQuery("#SearchButtom").unbind("click"); + }); + Object.defineProperty(Window.prototype.toString, "1e2d5574e33a449dcd46c38824d46820", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "1e2d5574e33a449dcd46c38824d46820" due to: ' + e); + } + }, + '(()=>{document.addEventListener("DOMContentLoaded",(()=>{ if(typeof videofunc) { videofunc(); } }));})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.c89cf796658574c24a11e4139372f1f6 === e) return; + document.addEventListener("DOMContentLoaded", ()=>{ + videofunc(); + }); + Object.defineProperty(Window.prototype.toString, "c89cf796658574c24a11e4139372f1f6", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "c89cf796658574c24a11e4139372f1f6" due to: ' + e); + } + }, + 'document.cookie="p3006=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d2d456e85d536f31a032f2a730cbde22 === e) return; + document.cookie = "p3006=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "d2d456e85d536f31a032f2a730cbde22", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d2d456e85d536f31a032f2a730cbde22" due to: ' + e); + } + }, + 'document.cookie="rpuShownDesktop=1; path=/;";': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["651f3ee34f9ac7a2ac075d8fab9c1c17"] === e) return; + document.cookie = "rpuShownDesktop=1; path=/;"; + Object.defineProperty(Window.prototype.toString, "651f3ee34f9ac7a2ac075d8fab9c1c17", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "651f3ee34f9ac7a2ac075d8fab9c1c17" due to: ' + e); + } + }, + '(()=>{if(!location.href.includes("/embed/")&&!location.href.includes("/file/"))return;const e={get(e,t,r){try{return"disabled"===t&&"function"==typeof e.start?(queueMicrotask((()=>{try{e.start()}catch(e){}})),!0):Reflect.get(e,t,r)}catch(c){return Reflect.get(e,t,r)}}},t={apply:(t,r,c)=>{try{const n=Reflect.apply(t,r,c);if(n&&"object"==typeof n){if((()=>{try{return(new Error).stack||""}catch{return""}})().includes("getVideoAdInstance"))return new Proxy(n,e)}return n}catch(e){return Reflect.apply(t,r,c)}}};window.Object.create=new Proxy(window.Object.create,t)})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["08ac4125fe79ad45be931eeed20c8e89"] === e) return; + (()=>{ + if (!location.href.includes("/embed/") && !location.href.includes("/file/")) return; + const e = { + get (e, t, r) { + try { + return "disabled" === t && "function" == typeof e.start ? (queueMicrotask(()=>{ + try { + e.start(); + } catch (e) {} + }), !0) : Reflect.get(e, t, r); + } catch (c) { + return Reflect.get(e, t, r); + } + } + }, t = { + apply: (t, r, c)=>{ + try { + const n1 = Reflect.apply(t, r, c); + return n1 && "object" == typeof n1 && (()=>{ + try { + return (new Error).stack || ""; + } catch { + return ""; + } + })().includes("getVideoAdInstance") ? new Proxy(n1, e) : n1; + } catch (e) { + return Reflect.apply(t, r, c); + } + } + }; + window.Object.create = new Proxy(window.Object.create, t); + })(); + Object.defineProperty(Window.prototype.toString, "08ac4125fe79ad45be931eeed20c8e89", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "08ac4125fe79ad45be931eeed20c8e89" due to: ' + e); + } + }, + '(function(){if(-1!=window.location.href.indexOf("/intro-mm"))for(var c=document.cookie.split(";"),b=0;b{ + try { + const o = "done"; + if (Window.prototype.toString.f09a7b4667c1146d3ffd2348387597d8 === o) return; + !function() { + if (-1 != window.location.href.indexOf("/intro-mm")) for(var o = document.cookie.split(";"), e = 0; e < o.length; e++){ + var t = o[e]; + "redirect_url_to_intro" == (t = t.split("="))[0] && window.location.replace(decodeURIComponent(t[1])); + } + }(); + Object.defineProperty(Window.prototype.toString, "f09a7b4667c1146d3ffd2348387597d8", { + value: o, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (o) { + console.error('Error executing AG js rule with uniqueId "f09a7b4667c1146d3ffd2348387597d8" due to: ' + o); + } + }, + "(function(){var c=document.addEventListener;document.addEventListener=function(a,b,d,e){\"mousedown\"!=a&&-1==b.toString().indexOf('Z4P')&&c(a,b,d,e)}.bind(document); var b=window.setTimeout;window.setTimeout=function(a,c){if(!/\\..4P\\(|=setTimeout\\(/.test(a.toString()))return b(a,c)};})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["16fc905e6e4d01b1d36604ce246bdcac"] === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, n1, o, d) { + "mousedown" != t && -1 == n1.toString().indexOf("Z4P") && e(t, n1, o, d); + }).bind(document); + var t = window.setTimeout; + window.setTimeout = function(e, n1) { + if (!/\..4P\(|=setTimeout\(/.test(e.toString())) return t(e, n1); + }; + }(); + Object.defineProperty(Window.prototype.toString, "16fc905e6e4d01b1d36604ce246bdcac", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "16fc905e6e4d01b1d36604ce246bdcac" due to: ' + e); + } + }, + "(function(){var c=document.addEventListener;document.addEventListener=function(a,b,d,e){\"click\"!=a&&-1==b.toString().indexOf('bi()')&&c(a,b,d,e)}.bind(document);})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.a9336ddeda1e9f4d8198cac4f6a59557 === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, d, n1, o) { + "click" != t && -1 == d.toString().indexOf("bi()") && e(t, d, n1, o); + }).bind(document); + }(); + Object.defineProperty(Window.prototype.toString, "a9336ddeda1e9f4d8198cac4f6a59557", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "a9336ddeda1e9f4d8198cac4f6a59557" due to: ' + e); + } + }, + "(function(){var c=document.addEventListener;document.addEventListener=function(a,b,d,e){\"mousedown\"!=a&&-1==b.toString().indexOf('Z4P')&&c(a,b,d,e)}.bind(document); var b=window.setTimeout;window.setTimeout=function(a,c){if(!/Z4P/.test(a.toString()))return b(a,c)};})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["63f6bebe37e619f74c32a8b2415f86a2"] === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, n1, o, r) { + "mousedown" != t && -1 == n1.toString().indexOf("Z4P") && e(t, n1, o, r); + }).bind(document); + var t = window.setTimeout; + window.setTimeout = function(e, n1) { + if (!/Z4P/.test(e.toString())) return t(e, n1); + }; + }(); + Object.defineProperty(Window.prototype.toString, "63f6bebe37e619f74c32a8b2415f86a2", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "63f6bebe37e619f74c32a8b2415f86a2" due to: ' + e); + } + }, + "(function(){var c=document.addEventListener;document.addEventListener=function(a,b,d,e){\"click\"!=a&&-1==b.toString().indexOf('checkTarget')&&c(a,b,d,e)}.bind(document);})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.d4daff20eda39f5bfe997a60b5b65564 === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, n1, d, r) { + "click" != t && -1 == n1.toString().indexOf("checkTarget") && e(t, n1, d, r); + }).bind(document); + }(); + Object.defineProperty(Window.prototype.toString, "d4daff20eda39f5bfe997a60b5b65564", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "d4daff20eda39f5bfe997a60b5b65564" due to: ' + e); + } + }, + '(function(){var c=document.addEventListener;document.addEventListener=function(a,b,d,e){"mouseup"!=a&&-1==b.toString().indexOf(`var U="click";var R=\'_blank\';var v="href";`)&&c(a,b,d,e)}.bind(document);})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["2e5eb7acf02c72e68933dbb1fd9704ba"] === e) return; + !function() { + var e = document.addEventListener; + document.addEventListener = (function(t, n1, r, o) { + "mouseup" != t && -1 == n1.toString().indexOf('var U="click";var R=\'_blank\';var v="href";') && e(t, n1, r, o); + }).bind(document); + }(); + Object.defineProperty(Window.prototype.toString, "2e5eb7acf02c72e68933dbb1fd9704ba", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "2e5eb7acf02c72e68933dbb1fd9704ba" due to: ' + e); + } + }, + "(function(){ var observer=new MutationObserver(hide);observer.observe(document,{childList:!0,subtree:!0});function hide(){var e=document.querySelectorAll('span[data-nosnippet] > .q-box');e.forEach(function(e){var i=e.innerText;if(i){if(i!==void 0&&(!0===i.includes('Sponsored')||!0===i.includes('Ad by')||!0===i.includes('Promoted by'))){e.style=\"display:none!important;\"}}})} })();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["9f6813ab855c342f13c90469c95da251"] === e) return; + new MutationObserver(function() { + document.querySelectorAll("span[data-nosnippet] > .q-box").forEach(function(e) { + var o = e.innerText; + o && (void 0 === o || !0 !== o.includes("Sponsored") && !0 !== o.includes("Ad by") && !0 !== o.includes("Promoted by") || (e.style = "display:none!important;")); + }); + }).observe(document, { + childList: !0, + subtree: !0 + }); + Object.defineProperty(Window.prototype.toString, "9f6813ab855c342f13c90469c95da251", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "9f6813ab855c342f13c90469c95da251" due to: ' + e); + } + }, + "(function(){ var observer=new MutationObserver(hide);observer.observe(document,{childList:!0,subtree:!0});function hide(){var e=document.querySelectorAll('.paged_list_wrapper > .pagedlist_item');e.forEach(function(e){var i=e.innerHTML;if(i){if(i!==void 0&&(!0===i.includes('Hide This Ad<\\/span>'))){e.style=\"display:none!important;\"}}})} })();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["17b3983e043325b0965b454cc7394766"] === e) return; + new MutationObserver(function() { + document.querySelectorAll(".paged_list_wrapper > .pagedlist_item").forEach(function(e) { + var t = e.innerHTML; + t && void 0 !== t && !0 === t.includes("Hide This Ad") && (e.style = "display:none!important;"); + }); + }).observe(document, { + childList: !0, + subtree: !0 + }); + Object.defineProperty(Window.prototype.toString, "17b3983e043325b0965b454cc7394766", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "17b3983e043325b0965b454cc7394766" due to: ' + e); + } + }, + '!function(){new MutationObserver((function(){document.querySelectorAll("article > div[class] > div[class]").forEach((function(e){Object.keys(e).forEach((function(c){if(c.includes("__reactEvents")||c.includes("__reactProps")){c=e[c];try{c.children?.props?.adFragmentKey?.items&&e.parentNode.remove()}catch(c){}}}))}))})).observe(document,{childList:!0,subtree:!0});}();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString["54509270c0f548739cf1d7c18ae3d312"] === e) return; + new MutationObserver(function() { + document.querySelectorAll("article > div[class] > div[class]").forEach(function(e) { + Object.keys(e).forEach(function(t) { + if (t.includes("__reactEvents") || t.includes("__reactProps")) { + t = e[t]; + try { + var _t_children_props_adFragmentKey, _t_children_props, _t_children; + ((_t_children = t.children) === null || _t_children === void 0 ? void 0 : (_t_children_props = _t_children.props) === null || _t_children_props === void 0 ? void 0 : (_t_children_props_adFragmentKey = _t_children_props.adFragmentKey) === null || _t_children_props_adFragmentKey === void 0 ? void 0 : _t_children_props_adFragmentKey.items) && e.parentNode.remove(); + } catch (t) {} + } + }); + }); + }).observe(document, { + childList: !0, + subtree: !0 + }); + Object.defineProperty(Window.prototype.toString, "54509270c0f548739cf1d7c18ae3d312", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "54509270c0f548739cf1d7c18ae3d312" due to: ' + e); + } + }, + "(()=>{let e=0;const i=[];new MutationObserver((function(){document.querySelectorAll(\"div[role='list'] > div[role='listitem']:not([style*='display: none']) div[data-test-id='pinWrapper'], div[role='list'] > div[role='listitem']:not([style*='display: none']) div[data-test-id='pinWrapper'] > div[data-test-id]\").forEach((s=>{Object.keys(s).forEach((t=>{if(t.includes(\"__reactProps\")){const r=s[t];try{if(r?.children?.props?.children?.props?.pinKey?.adDestinationUrl||r?.children[1]?.props?.children[1]?.props?.children?.props?.pinKey?.adDestinationUrl||r?.children[0]?.props?.children[1]?.props?.children[1]?.props?.children?.props?.pinKey?.adDestinationUrl){const t=s.closest(\"div[role='list'] > div[role='listitem']:not([style*='display: none'])\");if(!t)return;t.style=\"display: none !important;\",e++;const r=t.querySelector('div[data-test-id=\"pinrep-footer\"] > div[class] > div[class] > div[class]:last-child > div[class] > a[aria-label][href][rel] > div[class] > div[class] > div[class]');r&&(i.push([\"Ad blocked based on property [\"+e+\"] -> \"+r.innerText]),console.table(i))}}catch(e){console.error(e)}}}))}))})).observe(document,{childList:!0,subtree:!0})})();": ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.f108a248579190d52136e6e135a4d6c9 === e) return; + (()=>{ + let e = 0; + const t = []; + new MutationObserver(function() { + document.querySelectorAll("div[role='list'] > div[role='listitem']:not([style*='display: none']) div[data-test-id='pinWrapper'], div[role='list'] > div[role='listitem']:not([style*='display: none']) div[data-test-id='pinWrapper'] > div[data-test-id]").forEach((i1)=>{ + Object.keys(i1).forEach((r)=>{ + if (r.includes("__reactProps")) { + const o = i1[r]; + try { + var _o_children_props_children_props_pinKey, _o_children_props_children_props, _o_children_props_children, _o_children_props, _o_children, _o_children__props_children__props_children_props_pinKey, _o_children__props_children__props_children_props, _o_children__props_children__props_children, _o_children__props_children__props, _o_children__props_children_, _o_children__props, _o_children_, _o_children__props_children__props_children__props_children_props_pinKey, _o_children__props_children__props_children__props_children_props, _o_children__props_children__props_children__props_children, _o_children__props_children__props_children__props, _o_children__props_children__props_children_, _o_children__props_children__props1, _o_children__props_children_1, _o_children__props1, _o_children_1; + if ((o === null || o === void 0 ? void 0 : (_o_children = o.children) === null || _o_children === void 0 ? void 0 : (_o_children_props = _o_children.props) === null || _o_children_props === void 0 ? void 0 : (_o_children_props_children = _o_children_props.children) === null || _o_children_props_children === void 0 ? void 0 : (_o_children_props_children_props = _o_children_props_children.props) === null || _o_children_props_children_props === void 0 ? void 0 : (_o_children_props_children_props_pinKey = _o_children_props_children_props.pinKey) === null || _o_children_props_children_props_pinKey === void 0 ? void 0 : _o_children_props_children_props_pinKey.adDestinationUrl) || (o === null || o === void 0 ? void 0 : (_o_children_ = o.children[1]) === null || _o_children_ === void 0 ? void 0 : (_o_children__props = _o_children_.props) === null || _o_children__props === void 0 ? void 0 : (_o_children__props_children_ = _o_children__props.children[1]) === null || _o_children__props_children_ === void 0 ? void 0 : (_o_children__props_children__props = _o_children__props_children_.props) === null || _o_children__props_children__props === void 0 ? void 0 : (_o_children__props_children__props_children = _o_children__props_children__props.children) === null || _o_children__props_children__props_children === void 0 ? void 0 : (_o_children__props_children__props_children_props = _o_children__props_children__props_children.props) === null || _o_children__props_children__props_children_props === void 0 ? void 0 : (_o_children__props_children__props_children_props_pinKey = _o_children__props_children__props_children_props.pinKey) === null || _o_children__props_children__props_children_props_pinKey === void 0 ? void 0 : _o_children__props_children__props_children_props_pinKey.adDestinationUrl) || (o === null || o === void 0 ? void 0 : (_o_children_1 = o.children[0]) === null || _o_children_1 === void 0 ? void 0 : (_o_children__props1 = _o_children_1.props) === null || _o_children__props1 === void 0 ? void 0 : (_o_children__props_children_1 = _o_children__props1.children[1]) === null || _o_children__props_children_1 === void 0 ? void 0 : (_o_children__props_children__props1 = _o_children__props_children_1.props) === null || _o_children__props_children__props1 === void 0 ? void 0 : (_o_children__props_children__props_children_ = _o_children__props_children__props1.children[1]) === null || _o_children__props_children__props_children_ === void 0 ? void 0 : (_o_children__props_children__props_children__props = _o_children__props_children__props_children_.props) === null || _o_children__props_children__props_children__props === void 0 ? void 0 : (_o_children__props_children__props_children__props_children = _o_children__props_children__props_children__props.children) === null || _o_children__props_children__props_children__props_children === void 0 ? void 0 : (_o_children__props_children__props_children__props_children_props = _o_children__props_children__props_children__props_children.props) === null || _o_children__props_children__props_children__props_children_props === void 0 ? void 0 : (_o_children__props_children__props_children__props_children_props_pinKey = _o_children__props_children__props_children__props_children_props.pinKey) === null || _o_children__props_children__props_children__props_children_props_pinKey === void 0 ? void 0 : _o_children__props_children__props_children__props_children_props_pinKey.adDestinationUrl)) { + const r = i1.closest("div[role='list'] > div[role='listitem']:not([style*='display: none'])"); + if (!r) return; + r.style = "display: none !important;", e++; + const o = r.querySelector('div[data-test-id="pinrep-footer"] > div[class] > div[class] > div[class]:last-child > div[class] > a[aria-label][href][rel] > div[class] > div[class] > div[class]'); + o && (t.push([ + "Ad blocked based on property [" + e + "] -> " + o.innerText + ]), console.table(t)); + } + } catch (e) { + console.error(e); + } + } + }); + }); + }).observe(document, { + childList: !0, + subtree: !0 + }); + })(); + Object.defineProperty(Window.prototype.toString, "f108a248579190d52136e6e135a4d6c9", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "f108a248579190d52136e6e135a4d6c9" due to: ' + e); + } + }, + '(()=>{const e="SPONSORED",t="SponsoredData",r="AdsSideFeedUnit",n="MarketplaceFeedAdStory",o=[e,t,r],p=[t,n],a=window.String.prototype.split,i=window.String.prototype.trim,s=new WeakMap,d=new WeakSet,y=(e,t,r=Proxy)=>{const n=new r(e,t);return s.set(n,s.get(e)??e),n},l=(e,t)=>e?.length>300&&t.some(t=>e?.includes?.(t)),c=e=>l(e,o),w=e=>Boolean(e?.startsWith?.("{")&&e?.endsWith?.("}")||e?.startsWith?.("[")&&e?.endsWith?.("]")),u=e=>w(e)&&c(e),f=e=>{try{e.JSON.parse=y(e.JSON.parse,j,e.Proxy),e.String.prototype.split=y(e.String.prototype.split,C,e.Proxy),e.String=y(e.String,q,e.Proxy),e.String.prototype.constructor=e.String,e.Function.prototype.call=y(e.Function.prototype.call,L,e.Proxy),e.Function.prototype.toString=y(e.Function.prototype.toString,$,e.Proxy)}catch(e){}},g=e=>Boolean(e instanceof HTMLIFrameElement&&(""===e.src||e?.src?.startsWith("about:blank"))&&e.contentWindow),h=new Set(["append","prepend","before","after","insertNode","replaceWith","replaceChild","replaceChildren"]),{apply:_}={apply(e,t,r){const n=Reflect.apply(e,t,r);try{g(n)?f(n.contentWindow):h.has(e.name)&&r.forEach(e=>{g(e)&&f(e.contentWindow)})}catch(e){}return n}},S={apply:_};window.Node.prototype.appendChild=y(window.Node.prototype.appendChild,S),window.Node.prototype.insertBefore=y(window.Node.prototype.insertBefore,S),window.Node.prototype.replaceChild=y(window.Node.prototype.replaceChild,S),window.Element.prototype.append=y(window.Element.prototype.append,S),window.Element.prototype.prepend=y(window.Element.prototype.prepend,S),window.Element.prototype.replaceChildren=y(window.Element.prototype.replaceChildren,S),window.Element.prototype.before=y(window.Element.prototype.before,S),window.Element.prototype.after=y(window.Element.prototype.after,S),window.Element.prototype.insertAdjacentElement=y(window.Element.prototype.insertAdjacentElement,S),window.Range.prototype.insertNode=y(window.Range.prototype.insertNode,S),window.CharacterData.prototype.replaceWith=y(window.CharacterData.prototype.replaceWith,S);const b=e=>Boolean(e)&&Object.values(e).some(e=>e?.__typename===t),m=(e,t)=>{if(!e||"object"!=typeof e||Array.isArray(e))return!1;const r=Object.keys(e);return r.length===t.length&&t.every(e=>r.includes(e))},A=e=>m(e,["node"])&&m(e.node,["s"])&&m(e.node.s,["__typename"])&&e.node.s.__typename===t,N=(e,t,n,o)=>{if(!e||"object"!=typeof e||n<0)return!1;let p=!1;if(Array.isArray(e.nodes)){const t=e.nodes.filter(e=>!(e=>{const t=e?.item_collection?.nodes;return e?.__typename===r||Array.isArray(t)&&t.some(e=>e?.sponsored_data?.ad_id)})(e));e.nodes.length-t.length>0&&(e.nodes=t,p=!0)}return Object.entries(e).forEach(([e,r])=>{p=N(r,`${t}.${e}`,n-1,o)||p}),p},O=(e,t=10)=>{const r=e?.data?.viewer,n=r??e?.[3]?.[1]?.__bbox?.result?.data?.viewer;if(!n)return!1;return N(n,r?"data.viewer":"item[3][1].__bbox.result.data.viewer",t,e)},E=(t,r=10,n=new WeakMap)=>{if(!t||"object"!=typeof t||r<0)return!1;const o=n.get(t);if(void 0!==o&&o>=r)return!1;n.set(t,r);let p=((t,r)=>{if(!t||"object"!=typeof t)return!1;let n=!1;try{if(r){if(Array.isArray(t.require?.[0]?.[3]?.[0]?.__bbox?.require)&&t.require[0][3][0].__bbox.require.forEach(t=>{t[3]?.[1]?.__bbox?.result?.data?.category===e&&(delete t[3][1].__bbox.result.data.node,n=!0),b(t[3]?.[1]?.__bbox?.result?.data?.node)&&(delete t[3][1].__bbox.result.data.node,n=!0),n=O(t)||n}),Array.isArray(t.data?.viewer?.auxColumnUnits?.nodes)&&(n=O(t)||n),Array.isArray(t.data?.viewer?.news_feed?.edges)){const r=t.data.viewer.news_feed.edges.length;t.data.viewer.news_feed.edges=t.data.viewer.news_feed.edges.filter(t=>!b(t.node)&&t.category!==e),n=n||t.data.viewer.news_feed.edges.length!==r}b(t.data?.node)&&(delete t.data.node,n=!0),t.data?.category===e&&(delete t.data.node,n=!0)}}catch(e){}return n})(t,!0);return 0===r||Object.values(t).forEach(e=>{p=E(e,r-1,n)||p}),p},x=(e,t)=>{try{const r="string"==typeof t;if(r&&!c(t))return e;if((e=>{const t=Array.isArray(e)&&1===e.length?e[0]:e;if(!t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.p||t.p.length<300)return!1;const r=["data","edges","require","p"];if(Object.hasOwn(t,"extensions")){if(!m(t.extensions,[]))return!1;r.push("extensions")}return m(t,r)&&A(t.data)&&Array.isArray(t.edges)&&1===t.edges.length&&A(t.edges[0])&&Array.isArray(t.require)&&1===t.require.length&&A(t.require[0])})(e))return e;if(!r&&!c(JSON.stringify(e)))return e;E(e)&&e&&"object"==typeof e&&d.add(e)}catch(e){}return e},{apply:v}={apply(e,t,r){const n=Reflect.apply(e,t,r);return x(n,r[0])}},j={apply:v};window.JSON.parse=y(window.JSON.parse,j);const W=new WeakSet,J=e=>{if(!e||W.has(e)||"function"!=typeof e.parse)return;const{apply:t}={apply(e,t,r){const n=Reflect.apply(e,t,r);return x(n,r[0])}};e.parse=y(e.parse,{apply:t}),W.add(e)},{apply:R}={apply(e,t,r){let n;try{if(w(t),u(t)){const e=JSON.parse(t);d.has(e)&&(n=JSON.stringify(e))}}catch(e){}return Reflect.apply(e,n??t,r)}},C={apply:R};window.String.prototype.split=y(window.String.prototype.split,C),window.String.prototype.substring=y(window.String.prototype.substring,C);const{apply:F}={apply(e,t,r){const n=Reflect.apply(e,t,r);try{if(u(n)){const e=JSON.parse(n);if(d.has(e)){return JSON.stringify(e)}}}catch(e){}return n}},q={apply:F};window.String=y(window.String,q),window.String.prototype.constructor=window.String;const k=new Map,P=e=>{const t=k.get(e);if(void 0!==t)return t;let r=e;try{const t=Reflect.apply(i,e,[]);if(w(t)&&c(e)){const t=JSON.parse(e);d.has(t)&&(r=JSON.stringify(t))}}catch(e){}return((e,t)=>{if(k.size>=2){const e=k.keys().next().value;k.delete(e)}return k.set(e,t),t})(e,r)},{apply:B}={apply(e,t,r){let n=t;try{"string"==typeof t&&t.length>300&&(n=P(t))}catch(e){}return Reflect.apply(e,n,r)}},M={apply:B};window.String.prototype.charAt=y(window.String.prototype.charAt,M);const D=e=>{const t=e?.data?.viewer?.marketplace_feed_stories;if(!Array.isArray(t?.edges))return!1;const r=t.edges.filter(e=>!(e=>{const t=e?.__typename;return"string"==typeof t&&t.includes(n)})(e?.node));return r.length!==t.edges.length&&(t.edges=r,!0)},{apply:z}={apply(e,t,r){const n=r[2]?.[0];if(l(n,p))try{const e=(e=>{let t=!1;const r=Reflect.apply(a,e,[/\\r?\\n|\\r/]).map(e=>{if(""===e.trim())return e;let r;try{r=JSON.parse(e)}catch{return e}const n=d.has(r),o=D(r);return n||o?(t=!0,JSON.stringify(r)):e});return t?r.join("\\r\\n"):e})(n);if(e!==n){const t=r[2].slice();t[0]=e,r[2]=t}}catch(e){}return Reflect.apply(e,t,r)}},L={apply:z};window.Function.prototype.call=y(window.Function.prototype.call,L);const{apply:U}={apply:(e,t,r)=>Reflect.apply(e,s.get(t)??t,r)},$={apply:U};window.Function.prototype.toString=y(window.Function.prototype.toString,$),(()=>{const e=["json5"];"function"!=typeof window.requireLazy?(Array.isArray(window.__rl_stub)||(window.__rl_stub=[]),window.__rl_stub.push([e,J])):window.requireLazy(e,J)})()})();': ()=>{ + try { + const e = "done"; + if (Window.prototype.toString.e9fd3648e4703f8dd52f2f04c6596042 === e) return; + (()=>{ + const e = "SPONSORED", t = "SponsoredData", r = "AdsSideFeedUnit", n1 = "MarketplaceFeedAdStory", o = [ + e, + t, + r + ], p = [ + t, + n1 + ], i1 = window.String.prototype.split, a = window.String.prototype.trim, s = new WeakMap, d = new WeakSet, y = (e, t, r = Proxy)=>{ + const n1 = new r(e, t); + var _s_get; + return s.set(n1, (_s_get = s.get(e)) !== null && _s_get !== void 0 ? _s_get : e), n1; + }, l = (e, t)=>(e === null || e === void 0 ? void 0 : e.length) > 300 && t.some((t)=>{ + var _e_includes; + return e === null || e === void 0 ? void 0 : (_e_includes = e.includes) === null || _e_includes === void 0 ? void 0 : _e_includes.call(e, t); + }), c = (e)=>l(e, o), w = (e)=>{ + var _e_startsWith, _e_endsWith, _e_startsWith1, _e_endsWith1; + return Boolean((e === null || e === void 0 ? void 0 : (_e_startsWith = e.startsWith) === null || _e_startsWith === void 0 ? void 0 : _e_startsWith.call(e, "{")) && (e === null || e === void 0 ? void 0 : (_e_endsWith = e.endsWith) === null || _e_endsWith === void 0 ? void 0 : _e_endsWith.call(e, "}")) || (e === null || e === void 0 ? void 0 : (_e_startsWith1 = e.startsWith) === null || _e_startsWith1 === void 0 ? void 0 : _e_startsWith1.call(e, "[")) && (e === null || e === void 0 ? void 0 : (_e_endsWith1 = e.endsWith) === null || _e_endsWith1 === void 0 ? void 0 : _e_endsWith1.call(e, "]"))); + }, u = (e)=>w(e) && c(e), f = (e)=>{ + try { + e.JSON.parse = y(e.JSON.parse, j, e.Proxy), e.String.prototype.split = y(e.String.prototype.split, q, e.Proxy), e.String = y(e.String, F, e.Proxy), e.String.prototype.constructor = e.String, e.Function.prototype.call = y(e.Function.prototype.call, z1, e.Proxy), e.Function.prototype.toString = y(e.Function.prototype.toString, I, e.Proxy); + } catch (e) {} + }, g = (e)=>{ + var _e_src; + return Boolean(e instanceof HTMLIFrameElement && ("" === e.src || (e === null || e === void 0 ? void 0 : (_e_src = e.src) === null || _e_src === void 0 ? void 0 : _e_src.startsWith("about:blank"))) && e.contentWindow); + }, h = new Set([ + "append", + "prepend", + "before", + "after", + "insertNode", + "replaceWith", + "replaceChild", + "replaceChildren" + ]), { apply: S } = { + apply (e, t, r) { + const n1 = Reflect.apply(e, t, r); + try { + g(n1) ? f(n1.contentWindow) : h.has(e.name) && r.forEach((e)=>{ + g(e) && f(e.contentWindow); + }); + } catch (e) {} + return n1; + } + }, _ = { + apply: S + }; + window.Node.prototype.appendChild = y(window.Node.prototype.appendChild, _), window.Node.prototype.insertBefore = y(window.Node.prototype.insertBefore, _), window.Node.prototype.replaceChild = y(window.Node.prototype.replaceChild, _), window.Element.prototype.append = y(window.Element.prototype.append, _), window.Element.prototype.prepend = y(window.Element.prototype.prepend, _), window.Element.prototype.replaceChildren = y(window.Element.prototype.replaceChildren, _), window.Element.prototype.before = y(window.Element.prototype.before, _), window.Element.prototype.after = y(window.Element.prototype.after, _), window.Element.prototype.insertAdjacentElement = y(window.Element.prototype.insertAdjacentElement, _), window.Range.prototype.insertNode = y(window.Range.prototype.insertNode, _), window.CharacterData.prototype.replaceWith = y(window.CharacterData.prototype.replaceWith, _); + const b = (e)=>Boolean(e) && Object.values(e).some((e)=>(e === null || e === void 0 ? void 0 : e.__typename) === t), m = (e, t)=>{ + if (!e || "object" != typeof e || Array.isArray(e)) return !1; + const r = Object.keys(e); + return r.length === t.length && t.every((e)=>r.includes(e)); + }, A = (e)=>m(e, [ + "node" + ]) && m(e.node, [ + "s" + ]) && m(e.node.s, [ + "__typename" + ]) && e.node.s.__typename === t, N = (e, t, n1, o)=>{ + if (!e || "object" != typeof e || n1 < 0) return !1; + let p = !1; + if (Array.isArray(e.nodes)) { + const t = e.nodes.filter((e)=>!((e)=>{ + var _e_item_collection; + const t = e === null || e === void 0 ? void 0 : (_e_item_collection = e.item_collection) === null || _e_item_collection === void 0 ? void 0 : _e_item_collection.nodes; + return (e === null || e === void 0 ? void 0 : e.__typename) === r || Array.isArray(t) && t.some((e)=>{ + var _e_sponsored_data; + return e === null || e === void 0 ? void 0 : (_e_sponsored_data = e.sponsored_data) === null || _e_sponsored_data === void 0 ? void 0 : _e_sponsored_data.ad_id; + }); + })(e)); + e.nodes.length - t.length > 0 && (e.nodes = t, p = !0); + } + return Object.entries(e).forEach(([e, r])=>{ + p = N(r, `${t}.${e}`, n1 - 1, o) || p; + }), p; + }, O = (e, t = 10)=>{ + var _e_data, _e_____bbox_result_data, _e_____bbox_result, _e_____bbox, _e__, _e_; + const r = e === null || e === void 0 ? void 0 : (_e_data = e.data) === null || _e_data === void 0 ? void 0 : _e_data.viewer, n1 = r !== null && r !== void 0 ? r : e === null || e === void 0 ? void 0 : (_e_ = e[3]) === null || _e_ === void 0 ? void 0 : (_e__ = _e_[1]) === null || _e__ === void 0 ? void 0 : (_e_____bbox = _e__.__bbox) === null || _e_____bbox === void 0 ? void 0 : (_e_____bbox_result = _e_____bbox.result) === null || _e_____bbox_result === void 0 ? void 0 : (_e_____bbox_result_data = _e_____bbox_result.data) === null || _e_____bbox_result_data === void 0 ? void 0 : _e_____bbox_result_data.viewer; + return !!n1 && N(n1, r ? "data.viewer" : "item[3][1].__bbox.result.data.viewer", t, e); + }, E = (t, r = 10, n1 = new WeakMap)=>{ + if (!t || "object" != typeof t || r < 0) return !1; + const o = n1.get(t); + if (void 0 !== o && o >= r) return !1; + n1.set(t, r); + let p = ((t)=>{ + if (!t || "object" != typeof t) return !1; + let r = !1; + try { + var _t_require______bbox, _t_require___, _t_require__, _t_require_, _t_require, _t_data_viewer_auxColumnUnits, _t_data_viewer, _t_data, _t_data_viewer_news_feed, _t_data_viewer1, _t_data1, _t_data2, _t_data3; + if (Array.isArray((_t_require = t.require) === null || _t_require === void 0 ? void 0 : (_t_require_ = _t_require[0]) === null || _t_require_ === void 0 ? void 0 : (_t_require__ = _t_require_[3]) === null || _t_require__ === void 0 ? void 0 : (_t_require___ = _t_require__[0]) === null || _t_require___ === void 0 ? void 0 : (_t_require______bbox = _t_require___.__bbox) === null || _t_require______bbox === void 0 ? void 0 : _t_require______bbox.require) && t.require[0][3][0].__bbox.require.forEach((t)=>{ + var _t_____bbox_result_data, _t_____bbox_result, _t_____bbox, _t__, _t_, _t_____bbox_result_data1, _t_____bbox_result1, _t_____bbox1, _t__1, _t_1; + ((_t_ = t[3]) === null || _t_ === void 0 ? void 0 : (_t__ = _t_[1]) === null || _t__ === void 0 ? void 0 : (_t_____bbox = _t__.__bbox) === null || _t_____bbox === void 0 ? void 0 : (_t_____bbox_result = _t_____bbox.result) === null || _t_____bbox_result === void 0 ? void 0 : (_t_____bbox_result_data = _t_____bbox_result.data) === null || _t_____bbox_result_data === void 0 ? void 0 : _t_____bbox_result_data.category) === e && (delete t[3][1].__bbox.result.data.node, r = !0), b((_t_1 = t[3]) === null || _t_1 === void 0 ? void 0 : (_t__1 = _t_1[1]) === null || _t__1 === void 0 ? void 0 : (_t_____bbox1 = _t__1.__bbox) === null || _t_____bbox1 === void 0 ? void 0 : (_t_____bbox_result1 = _t_____bbox1.result) === null || _t_____bbox_result1 === void 0 ? void 0 : (_t_____bbox_result_data1 = _t_____bbox_result1.data) === null || _t_____bbox_result_data1 === void 0 ? void 0 : _t_____bbox_result_data1.node) && (delete t[3][1].__bbox.result.data.node, r = !0), r = O(t) || r; + }), Array.isArray((_t_data = t.data) === null || _t_data === void 0 ? void 0 : (_t_data_viewer = _t_data.viewer) === null || _t_data_viewer === void 0 ? void 0 : (_t_data_viewer_auxColumnUnits = _t_data_viewer.auxColumnUnits) === null || _t_data_viewer_auxColumnUnits === void 0 ? void 0 : _t_data_viewer_auxColumnUnits.nodes) && (r = O(t) || r), Array.isArray((_t_data1 = t.data) === null || _t_data1 === void 0 ? void 0 : (_t_data_viewer1 = _t_data1.viewer) === null || _t_data_viewer1 === void 0 ? void 0 : (_t_data_viewer_news_feed = _t_data_viewer1.news_feed) === null || _t_data_viewer_news_feed === void 0 ? void 0 : _t_data_viewer_news_feed.edges)) { + const n1 = t.data.viewer.news_feed.edges.length; + t.data.viewer.news_feed.edges = t.data.viewer.news_feed.edges.filter((t)=>!b(t.node) && t.category !== e), r = r || t.data.viewer.news_feed.edges.length !== n1; + } + b((_t_data2 = t.data) === null || _t_data2 === void 0 ? void 0 : _t_data2.node) && (delete t.data.node, r = !0), ((_t_data3 = t.data) === null || _t_data3 === void 0 ? void 0 : _t_data3.category) === e && (delete t.data.node, r = !0); + } catch (e) {} + return r; + })(t); + return 0 === r || Object.values(t).forEach((e)=>{ + p = E(e, r - 1, n1) || p; + }), p; + }, x = (e, t)=>{ + try { + const r = "string" == typeof t; + if (r && !c(t)) return e; + if (((e)=>{ + const t = Array.isArray(e) && 1 === e.length ? e[0] : e; + if (!t || "object" != typeof t || Array.isArray(t) || "string" != typeof t.p || t.p.length < 300) return !1; + const r = [ + "data", + "edges", + "require", + "p" + ]; + if (Object.hasOwn(t, "extensions")) { + if (!m(t.extensions, [])) return !1; + r.push("extensions"); + } + return m(t, r) && A(t.data) && Array.isArray(t.edges) && 1 === t.edges.length && A(t.edges[0]) && Array.isArray(t.require) && 1 === t.require.length && A(t.require[0]); + })(e)) return e; + if (!r && !c(JSON.stringify(e))) return e; + E(e) && e && "object" == typeof e && d.add(e); + } catch (e) {} + return e; + }, { apply: v } = { + apply (e, t, r) { + const n1 = Reflect.apply(e, t, r); + return x(n1, r[0]); + } + }, j = { + apply: v + }; + window.JSON.parse = y(window.JSON.parse, j); + const W = new WeakSet, J = (e)=>{ + if (!e || W.has(e) || "function" != typeof e.parse) return; + const { apply: t } = { + apply (e, t, r) { + const n1 = Reflect.apply(e, t, r); + return x(n1, r[0]); + } + }; + e.parse = y(e.parse, { + apply: t + }), W.add(e); + }, { apply: R } = { + apply (e, t, r) { + let n1; + try { + if (w(t), u(t)) { + const e = JSON.parse(t); + d.has(e) && (n1 = JSON.stringify(e)); + } + } catch (e) {} + return Reflect.apply(e, n1 !== null && n1 !== void 0 ? n1 : t, r); + } + }, q = { + apply: R + }; + window.String.prototype.split = y(window.String.prototype.split, q), window.String.prototype.substring = y(window.String.prototype.substring, q); + const { apply: C } = { + apply (e, t, r) { + const n1 = Reflect.apply(e, t, r); + try { + if (u(n1)) { + const e = JSON.parse(n1); + if (d.has(e)) return JSON.stringify(e); + } + } catch (e) {} + return n1; + } + }, F = { + apply: C + }; + window.String = y(window.String, F), window.String.prototype.constructor = window.String; + const k = new Map, { apply: P } = { + apply (e, t, r) { + let n1 = t; + try { + "string" == typeof t && t.length > 300 && (n1 = ((e)=>{ + const t = k.get(e); + if (void 0 !== t) return t; + let r = e; + try { + const t = Reflect.apply(a, e, []); + if (w(t) && c(e)) { + const t = JSON.parse(e); + d.has(t) && (r = JSON.stringify(t)); + } + } catch (e) {} + return ((e, t)=>{ + if (k.size >= 2) { + const e = k.keys().next().value; + k.delete(e); + } + return k.set(e, t), t; + })(e, r); + })(t)); + } catch (e) {} + return Reflect.apply(e, n1, r); + } + }, B = { + apply: P + }; + window.String.prototype.charAt = y(window.String.prototype.charAt, B); + const M = (e)=>{ + var _e_data_viewer, _e_data; + const t = e === null || e === void 0 ? void 0 : (_e_data = e.data) === null || _e_data === void 0 ? void 0 : (_e_data_viewer = _e_data.viewer) === null || _e_data_viewer === void 0 ? void 0 : _e_data_viewer.marketplace_feed_stories; + if (!Array.isArray(t === null || t === void 0 ? void 0 : t.edges)) return !1; + const r = t.edges.filter((e)=>!((e)=>{ + const t = e === null || e === void 0 ? void 0 : e.__typename; + return "string" == typeof t && t.includes(n1); + })(e === null || e === void 0 ? void 0 : e.node)); + return r.length !== t.edges.length && (t.edges = r, !0); + }, { apply: D } = { + apply (e, t, r) { + var _r_; + const n1 = (_r_ = r[2]) === null || _r_ === void 0 ? void 0 : _r_[0]; + if (l(n1, p)) try { + const e = ((e)=>{ + let t = !1; + const r = Reflect.apply(i1, e, [ + /\r?\n|\r/ + ]).map((e)=>{ + if ("" === e.trim()) return e; + let r; + try { + r = JSON.parse(e); + } catch { + return e; + } + const n1 = d.has(r), o = M(r); + return n1 || o ? (t = !0, JSON.stringify(r)) : e; + }); + return t ? r.join("\r\n") : e; + })(n1); + if (e !== n1) { + const t = r[2].slice(); + t[0] = e, r[2] = t; + } + } catch (e) {} + return Reflect.apply(e, t, r); + } + }, z1 = { + apply: D + }; + window.Function.prototype.call = y(window.Function.prototype.call, z1); + const { apply: L } = { + apply: (e, t, r)=>{ + var _s_get; + return Reflect.apply(e, (_s_get = s.get(t)) !== null && _s_get !== void 0 ? _s_get : t, r); + } + }, I = { + apply: L + }; + window.Function.prototype.toString = y(window.Function.prototype.toString, I), (()=>{ + const e = [ + "json5" + ]; + "function" != typeof window.requireLazy ? (Array.isArray(window.__rl_stub) || (window.__rl_stub = []), window.__rl_stub.push([ + e, + J + ])) : window.requireLazy(e, J); + })(); + })(); + Object.defineProperty(Window.prototype.toString, "e9fd3648e4703f8dd52f2f04c6596042", { + value: e, + enumerable: !1, + writable: !1, + configurable: !1 + }); + } catch (e) { + console.error('Error executing AG js rule with uniqueId "e9fd3648e4703f8dd52f2f04c6596042" due to: ' + e); + } + }, + '!function(){var e=new MutationObserver(function(){var m=document.querySelectorAll("div[id^=\'mount_\']");{var e;e=0 div[data-pagelet^="FeedUnit"] > div[class]:not([style*="height"])\'):document.querySelectorAll(\'[id^="substream"] > div:not(.hidden_elem) div[id^="hyperfeed_story_id"]\')}e.forEach(function(e){function n(e,n){for(0 a > span > span > span[data-content]\')).length&&(h=e.querySelectorAll(\'div[role="article"] span[dir="auto"] > a > span[aria-label]\')):h=e.querySelectorAll(".userContentWrapper h5 + div[data-testid] a [class] [class]"),socheck=0;socheck a > span > span > span[data-content]\')).length&&(h=e.querySelectorAll(\'div[role="article"] span[dir="auto"] div[role="button"][tabindex]\')):h=e.querySelectorAll(".userContentWrapper h5 + div[data-testid] > span a > [class] [class]"),"0"==h.length&&(h=e.querySelectorAll(\'div[role="article"] span[dir="auto"] > a > span[aria-label]\')),socheck=0;socheck a > span span[data-content=\'+n+"]"),p=e.querySelectorAll(\'div[role="article"] span[dir="auto"] > a > span span[data-content=\'+t+"]"),d=e.querySelectorAll(\'div[role="article"] span[dir="auto"] > a > span span[data-content=\'+c+"]"),e.querySelectorAll(\'div[role="article"] span[dir="auto"] > a > span span[data-content=\'+a+"]")):(h=e.querySelectorAll(".userContentWrapper h5 + div[data-testid] a [data-content="+n+"]"),p=e.querySelectorAll(".userContentWrapper h5 + div[data-testid] a [data-content="+t+"]"),d=e.querySelectorAll(".userContentWrapper h5 + div[data-testid] a [data-content="+c+"]"),e.querySelectorAll(".userContentWrapper h5 + div[data-testid] a [data-content="+a+"]"))}var s=0,l=0,r=0,i=0,h=0,p=0,d=0,u=0,a=e.querySelectorAll("div[style=\'width: 100%\'] > a[href*=\'oculus.com/quest\'] > div"),o=document.querySelector("[lang]"),k=document.querySelectorAll("link[rel=\'preload\'][href*=\'/l/\']");o=o?document.querySelector("[lang]").lang:"en";var y,g=e.querySelectorAll(\'a[ajaxify*="ad_id"] > span\'),f=e.querySelectorAll(\'a[href*="ads/about"]\'),S=e.querySelectorAll(\'a[href*="https://www.facebook.com/business/help"]\');if("display: none !important;"!=e.getAttribute("style")&&!e.classList.contains("hidden_elem")&&(0