altcha 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +4 -4
  2. package/dist/external/altcha.css +1 -1
  3. package/dist/external/altcha.js +38 -23
  4. package/dist/external/altcha.min.js +1 -1
  5. package/dist/external/altcha.umd.cjs +39 -24
  6. package/dist/external/altcha.umd.min.cjs +1 -1
  7. package/dist/i18n/af.js +2 -2
  8. package/dist/i18n/af.umd.cjs +2 -2
  9. package/dist/i18n/africa.js +15 -15
  10. package/dist/i18n/africa.umd.cjs +15 -15
  11. package/dist/i18n/all.js +124 -124
  12. package/dist/i18n/all.umd.cjs +124 -124
  13. package/dist/i18n/am.js +2 -2
  14. package/dist/i18n/am.umd.cjs +2 -2
  15. package/dist/i18n/americas.js +7 -7
  16. package/dist/i18n/americas.umd.cjs +7 -7
  17. package/dist/i18n/ar.js +2 -2
  18. package/dist/i18n/ar.umd.cjs +2 -2
  19. package/dist/i18n/asia.js +48 -48
  20. package/dist/i18n/asia.umd.cjs +48 -48
  21. package/dist/i18n/az.js +2 -2
  22. package/dist/i18n/az.umd.cjs +2 -2
  23. package/dist/i18n/be.js +2 -2
  24. package/dist/i18n/be.umd.cjs +2 -2
  25. package/dist/i18n/bg.js +2 -2
  26. package/dist/i18n/bg.umd.cjs +2 -2
  27. package/dist/i18n/bn.js +2 -2
  28. package/dist/i18n/bn.umd.cjs +2 -2
  29. package/dist/i18n/bs.js +2 -2
  30. package/dist/i18n/bs.umd.cjs +2 -2
  31. package/dist/i18n/ca.js +2 -2
  32. package/dist/i18n/ca.umd.cjs +2 -2
  33. package/dist/i18n/cs.js +2 -2
  34. package/dist/i18n/cs.umd.cjs +2 -2
  35. package/dist/i18n/da.js +2 -2
  36. package/dist/i18n/da.umd.cjs +2 -2
  37. package/dist/i18n/de.js +2 -2
  38. package/dist/i18n/de.umd.cjs +2 -2
  39. package/dist/i18n/el.js +2 -2
  40. package/dist/i18n/el.umd.cjs +2 -2
  41. package/dist/i18n/en.js +2 -2
  42. package/dist/i18n/en.umd.cjs +2 -2
  43. package/dist/i18n/es-419.js +2 -2
  44. package/dist/i18n/es-419.umd.cjs +2 -2
  45. package/dist/i18n/es-es.js +2 -2
  46. package/dist/i18n/es-es.umd.cjs +2 -2
  47. package/dist/i18n/et.js +2 -2
  48. package/dist/i18n/et.umd.cjs +2 -2
  49. package/dist/i18n/eu.js +2 -2
  50. package/dist/i18n/eu.umd.cjs +2 -2
  51. package/dist/i18n/europe.js +75 -75
  52. package/dist/i18n/europe.umd.cjs +75 -75
  53. package/dist/i18n/fa.js +2 -2
  54. package/dist/i18n/fa.umd.cjs +2 -2
  55. package/dist/i18n/fi.js +2 -2
  56. package/dist/i18n/fi.umd.cjs +2 -2
  57. package/dist/i18n/fr-ca.js +3 -3
  58. package/dist/i18n/fr-ca.umd.cjs +3 -3
  59. package/dist/i18n/fr-fr.js +3 -3
  60. package/dist/i18n/fr-fr.umd.cjs +3 -3
  61. package/dist/i18n/ga.js +2 -2
  62. package/dist/i18n/ga.umd.cjs +2 -2
  63. package/dist/i18n/he.js +2 -2
  64. package/dist/i18n/he.umd.cjs +2 -2
  65. package/dist/i18n/hi.js +2 -2
  66. package/dist/i18n/hi.umd.cjs +2 -2
  67. package/dist/i18n/hr.js +2 -2
  68. package/dist/i18n/hr.umd.cjs +2 -2
  69. package/dist/i18n/hu.js +2 -2
  70. package/dist/i18n/hu.umd.cjs +2 -2
  71. package/dist/i18n/hy.js +2 -2
  72. package/dist/i18n/hy.umd.cjs +2 -2
  73. package/dist/i18n/id.js +2 -2
  74. package/dist/i18n/id.umd.cjs +2 -2
  75. package/dist/i18n/is.js +2 -2
  76. package/dist/i18n/is.umd.cjs +2 -2
  77. package/dist/i18n/it.js +2 -2
  78. package/dist/i18n/it.umd.cjs +2 -2
  79. package/dist/i18n/ja.js +2 -2
  80. package/dist/i18n/ja.umd.cjs +2 -2
  81. package/dist/i18n/ka.js +2 -2
  82. package/dist/i18n/ka.umd.cjs +2 -2
  83. package/dist/i18n/kk.js +2 -2
  84. package/dist/i18n/kk.umd.cjs +2 -2
  85. package/dist/i18n/ko.js +2 -2
  86. package/dist/i18n/ko.umd.cjs +2 -2
  87. package/dist/i18n/lb.js +2 -2
  88. package/dist/i18n/lb.umd.cjs +2 -2
  89. package/dist/i18n/lt.js +2 -2
  90. package/dist/i18n/lt.umd.cjs +2 -2
  91. package/dist/i18n/lv.js +2 -2
  92. package/dist/i18n/lv.umd.cjs +2 -2
  93. package/dist/i18n/me.js +2 -2
  94. package/dist/i18n/me.umd.cjs +2 -2
  95. package/dist/i18n/mk.js +2 -2
  96. package/dist/i18n/mk.umd.cjs +2 -2
  97. package/dist/i18n/mr.js +2 -2
  98. package/dist/i18n/mr.umd.cjs +2 -2
  99. package/dist/i18n/mt.js +2 -2
  100. package/dist/i18n/mt.umd.cjs +2 -2
  101. package/dist/i18n/nb.js +2 -2
  102. package/dist/i18n/nb.umd.cjs +2 -2
  103. package/dist/i18n/nl.js +2 -2
  104. package/dist/i18n/nl.umd.cjs +2 -2
  105. package/dist/i18n/pl.js +2 -2
  106. package/dist/i18n/pl.umd.cjs +2 -2
  107. package/dist/i18n/pt-br.js +2 -2
  108. package/dist/i18n/pt-br.umd.cjs +2 -2
  109. package/dist/i18n/pt-pt.js +2 -2
  110. package/dist/i18n/pt-pt.umd.cjs +2 -2
  111. package/dist/i18n/ro.js +2 -2
  112. package/dist/i18n/ro.umd.cjs +2 -2
  113. package/dist/i18n/ru.js +2 -2
  114. package/dist/i18n/ru.umd.cjs +2 -2
  115. package/dist/i18n/sk.js +2 -2
  116. package/dist/i18n/sk.umd.cjs +2 -2
  117. package/dist/i18n/sl.js +2 -2
  118. package/dist/i18n/sl.umd.cjs +2 -2
  119. package/dist/i18n/sq.js +2 -2
  120. package/dist/i18n/sq.umd.cjs +2 -2
  121. package/dist/i18n/sr.js +2 -2
  122. package/dist/i18n/sr.umd.cjs +2 -2
  123. package/dist/i18n/sv.js +2 -2
  124. package/dist/i18n/sv.umd.cjs +2 -2
  125. package/dist/i18n/sw.js +2 -2
  126. package/dist/i18n/sw.umd.cjs +2 -2
  127. package/dist/i18n/ta.js +2 -2
  128. package/dist/i18n/ta.umd.cjs +2 -2
  129. package/dist/i18n/te.js +2 -2
  130. package/dist/i18n/te.umd.cjs +2 -2
  131. package/dist/i18n/th.js +2 -2
  132. package/dist/i18n/th.umd.cjs +2 -2
  133. package/dist/i18n/tk.js +2 -2
  134. package/dist/i18n/tk.umd.cjs +2 -2
  135. package/dist/i18n/tr.js +2 -2
  136. package/dist/i18n/tr.umd.cjs +2 -2
  137. package/dist/i18n/uk.js +2 -2
  138. package/dist/i18n/uk.umd.cjs +2 -2
  139. package/dist/i18n/ur.js +2 -2
  140. package/dist/i18n/ur.umd.cjs +2 -2
  141. package/dist/i18n/uz.js +2 -2
  142. package/dist/i18n/uz.umd.cjs +2 -2
  143. package/dist/i18n/vi.js +2 -2
  144. package/dist/i18n/vi.umd.cjs +2 -2
  145. package/dist/i18n/yo.js +2 -2
  146. package/dist/i18n/yo.umd.cjs +2 -2
  147. package/dist/i18n/zh-cn.js +2 -2
  148. package/dist/i18n/zh-cn.umd.cjs +2 -2
  149. package/dist/i18n/zh-hk.js +2 -2
  150. package/dist/i18n/zh-hk.umd.cjs +2 -2
  151. package/dist/i18n/zh-tw.js +2 -2
  152. package/dist/i18n/zh-tw.umd.cjs +2 -2
  153. package/dist/lib/index.js +4 -2
  154. package/dist/lib/index.min.js +1 -1
  155. package/dist/lib/index.umd.cjs +4 -2
  156. package/dist/lib/index.umd.min.cjs +1 -1
  157. package/dist/main/altcha.i18n.js +171 -152
  158. package/dist/main/altcha.i18n.min.js +1 -1
  159. package/dist/main/altcha.i18n.umd.cjs +171 -152
  160. package/dist/main/altcha.i18n.umd.min.cjs +1 -1
  161. package/dist/main/altcha.js +47 -28
  162. package/dist/main/altcha.min.js +1 -1
  163. package/dist/main/altcha.umd.cjs +47 -28
  164. package/dist/main/altcha.umd.min.cjs +1 -1
  165. package/dist/plugins/obfuscation.plugin.js +4 -2
  166. package/dist/plugins/obfuscation.plugin.min.js +1 -1
  167. package/dist/plugins/obfuscation.plugin.umd.cjs +4 -2
  168. package/dist/plugins/obfuscation.plugin.umd.min.cjs +1 -1
  169. package/dist/workers/argon2id.js +4 -2
  170. package/dist/workers/pbkdf2.js +4 -2
  171. package/dist/workers/scrypt.js +4 -2
  172. package/dist/workers/sha.js +4 -2
  173. package/package.json +1 -1
@@ -4969,14 +4969,14 @@ globalThis.$altcha = globalThis.$altcha || {
4969
4969
  plugins: /* @__PURE__ */ new Set()
4970
4970
  };
4971
4971
  const i18n$Z = {
4972
- ariaLinkLabel: "Visit Altcha.org",
4972
+ ariaLinkLabel: "Altcha (official website)",
4973
4973
  cancel: "Cancel",
4974
4974
  enterCode: "Enter code",
4975
4975
  enterCodeAria: "Enter code you hear. Press Space to play audio.",
4976
4976
  enterCodeFromImage: "To proceed, please enter the code from the image below.",
4977
4977
  error: "Verification failed. Try again later.",
4978
4978
  expired: "Verification expired. Try again.",
4979
- footer: 'Protected by <a href="https://altcha.org/" target="_blank" aria-label="Visit Altcha.org">ALTCHA</a>',
4979
+ footer: 'Protected by <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (official website)">ALTCHA</a>',
4980
4980
  getAudioChallenge: "Get an audio challenge",
4981
4981
  label: "I'm not a robot",
4982
4982
  loading: "Loading...",
@@ -4994,10 +4994,14 @@ const PUBLIC_VERSION = "5";
4994
4994
  if (typeof window !== "undefined") {
4995
4995
  ((window.__svelte ??= {}).v ??= /* @__PURE__ */ new Set()).add(PUBLIC_VERSION);
4996
4996
  }
4997
- var root$7 = /* @__PURE__ */ from_html(`<label class="altcha-checkbox"><input/> <svg width="12" height="9" viewBox="0 0 12 9"><polyline points="1 5 4 8 11 1"></polyline></svg> <div class="altcha-spinner altcha-checkbox-spinner" aria-hidden="true"></div></label>`);
4997
+ var root$7 = /* @__PURE__ */ from_html(`<div class="altcha-checkbox"><input/> <svg aria-hidden="true" width="12" height="9" viewBox="0 0 12 9"><polyline points="1 5 4 8 11 1"></polyline></svg> <div class="altcha-spinner altcha-checkbox-spinner" aria-hidden="true"></div></div>`);
4998
4998
  function Checkbox($$anchor, $$props) {
4999
4999
  push($$props, true);
5000
5000
  let loading = prop($$props, "loading"), rest = /* @__PURE__ */ rest_props($$props, ["$$slots", "$$events", "$$legacy", "$$host", "loading"]);
5001
+ let inputEl;
5002
+ function onClick() {
5003
+ inputEl?.click();
5004
+ }
5001
5005
  var $$exports = {
5002
5006
  get loading() {
5003
5007
  return loading();
@@ -5007,15 +5011,19 @@ function Checkbox($$anchor, $$props) {
5007
5011
  flushSync();
5008
5012
  }
5009
5013
  };
5010
- var label = root$7();
5011
- var input = child(label);
5014
+ var div = root$7();
5015
+ var input = child(div);
5012
5016
  attribute_effect(input, () => ({ type: "checkbox", ...rest }), void 0, void 0, void 0, void 0, true);
5013
- next(4);
5014
- reset(label);
5015
- template_effect(() => set_attribute(label, "data-loading", loading()));
5016
- append($$anchor, label);
5017
+ bind_this(input, ($$value) => inputEl = $$value, () => inputEl);
5018
+ var svg = sibling(input, 2);
5019
+ next(2);
5020
+ reset(div);
5021
+ template_effect(() => set_attribute(div, "data-loading", loading()));
5022
+ delegated("click", svg, onClick);
5023
+ append($$anchor, div);
5017
5024
  return pop($$exports);
5018
5025
  }
5026
+ delegate(["click"]);
5019
5027
  create_custom_element(Checkbox, { loading: {} }, [], [], { mode: "open" });
5020
5028
  var root$6 = /* @__PURE__ */ from_html(`<div class="altcha-checkbox-native"><input/> <div class="altcha-spinner altcha-checkbox-native-spinner"></div></div>`);
5021
5029
  function CheckboxNative($$anchor, $$props) {
@@ -5040,7 +5048,7 @@ function CheckboxNative($$anchor, $$props) {
5040
5048
  return pop($$exports);
5041
5049
  }
5042
5050
  create_custom_element(CheckboxNative, { loading: {} }, [], [], { mode: "open" });
5043
- var root$5 = /* @__PURE__ */ from_html(`<div><a target="_blank" class="altcha-logo" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.33955 16.4279C5.88954 20.6586 12.1971 21.2105 16.4279 17.6604C18.4699 15.947 19.6548 13.5911 19.9352 11.1365L17.9886 10.4279C17.8738 12.5624 16.909 14.6459 15.1423 16.1284C11.7577 18.9684 6.71167 18.5269 3.87164 15.1423C1.03163 11.7577 1.4731 6.71166 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577C16.9767 5.86872 17.5322 7.02798 17.804 8.2324L19.9522 9.01429C19.7622 7.07737 19.0059 5.17558 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956C-0.658625 5.88958 -1.21046 12.1971 2.33955 16.4279Z" fill="currentColor"></path><path d="M3.57212 2.33956C1.65755 3.94607 0.496389 6.11731 0.12782 8.40523L2.04639 9.13961C2.26047 7.15832 3.21057 5.25375 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577L13.8302 6.78606L19.9633 9.13364C19.7929 7.15555 19.0335 5.20847 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956Z" fill="currentColor"></path><path d="M7 10H5C5 12.7614 7.23858 15 10 15C12.7614 15 15 12.7614 15 10H13C13 11.6569 11.6569 13 10 13C8.3431 13 7 11.6569 7 10Z" fill="currentColor"></path></svg></a></div>`);
5051
+ var root$5 = /* @__PURE__ */ from_html(`<div><a target="_blank" class="altcha-logo" aria-hidden="true" tabindex="-1"><svg width="22" height="22" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.33955 16.4279C5.88954 20.6586 12.1971 21.2105 16.4279 17.6604C18.4699 15.947 19.6548 13.5911 19.9352 11.1365L17.9886 10.4279C17.8738 12.5624 16.909 14.6459 15.1423 16.1284C11.7577 18.9684 6.71167 18.5269 3.87164 15.1423C1.03163 11.7577 1.4731 6.71166 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577C16.9767 5.86872 17.5322 7.02798 17.804 8.2324L19.9522 9.01429C19.7622 7.07737 19.0059 5.17558 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956C-0.658625 5.88958 -1.21046 12.1971 2.33955 16.4279Z" fill="currentColor"></path><path d="M3.57212 2.33956C1.65755 3.94607 0.496389 6.11731 0.12782 8.40523L2.04639 9.13961C2.26047 7.15832 3.21057 5.25375 4.8577 3.87164C8.24231 1.03162 13.2883 1.4731 16.1284 4.8577L13.8302 6.78606L19.9633 9.13364C19.7929 7.15555 19.0335 5.20847 17.6604 3.57212C14.1104 -0.658624 7.80283 -1.21043 3.57212 2.33956Z" fill="currentColor"></path><path d="M7 10H5C5 12.7614 7.23858 15 10 15C12.7614 15 15 12.7614 15 10H13C13 11.6569 11.6569 13 10 13C8.3431 13 7 11.6569 7 10Z" fill="currentColor"></path></svg></a></div>`);
5044
5052
  function Logo($$anchor, $$props) {
5045
5053
  push($$props, true);
5046
5054
  let strings = prop($$props, "strings");
@@ -5063,7 +5071,7 @@ function Logo($$anchor, $$props) {
5063
5071
  return pop($$exports);
5064
5072
  }
5065
5073
  create_custom_element(Logo, { strings: {} }, [], [], { mode: "open" });
5066
- var root$4 = /* @__PURE__ */ from_html(`<div class="altcha-footer"><div></div> <!></div>`);
5074
+ var root$4 = /* @__PURE__ */ from_html(`<div class="altcha-footer"><p></p> <!></div>`);
5067
5075
  function Footer($$anchor, $$props) {
5068
5076
  push($$props, true);
5069
5077
  let logo = prop($$props, "logo"), strings = prop($$props, "strings");
@@ -5084,10 +5092,10 @@ function Footer($$anchor, $$props) {
5084
5092
  }
5085
5093
  };
5086
5094
  var div = root$4();
5087
- var div_1 = child(div);
5088
- html(div_1, () => strings().footer, true);
5089
- reset(div_1);
5090
- var node = sibling(div_1, 2);
5095
+ var p = child(div);
5096
+ html(p, () => strings().footer, true);
5097
+ reset(p);
5098
+ var node = sibling(p, 2);
5091
5099
  {
5092
5100
  var consequent = ($$anchor2) => {
5093
5101
  Logo($$anchor2, {
@@ -5105,10 +5113,14 @@ function Footer($$anchor, $$props) {
5105
5113
  return pop($$exports);
5106
5114
  }
5107
5115
  create_custom_element(Footer, { logo: {}, strings: {} }, [], [], { mode: "open" });
5108
- var root$3 = /* @__PURE__ */ from_html(`<label class="altcha-switch"><input/> <div class="altcha-switch-toggle"><div class="altcha-spinner altcha-switch-spinner"></div></div></label>`);
5116
+ var root$3 = /* @__PURE__ */ from_html(`<div class="altcha-switch"><input/> <div class="altcha-switch-toggle"><div class="altcha-spinner altcha-switch-spinner"></div></div></div>`);
5109
5117
  function Switch($$anchor, $$props) {
5110
5118
  push($$props, true);
5111
5119
  let loading = prop($$props, "loading"), rest = /* @__PURE__ */ rest_props($$props, ["$$slots", "$$events", "$$legacy", "$$host", "loading"]);
5120
+ let inputEl;
5121
+ function onClick() {
5122
+ inputEl?.click();
5123
+ }
5112
5124
  var $$exports = {
5113
5125
  get loading() {
5114
5126
  return loading();
@@ -5118,15 +5130,18 @@ function Switch($$anchor, $$props) {
5118
5130
  flushSync();
5119
5131
  }
5120
5132
  };
5121
- var label = root$3();
5122
- var input = child(label);
5133
+ var div = root$3();
5134
+ var input = child(div);
5123
5135
  attribute_effect(input, () => ({ type: "checkbox", ...rest }), void 0, void 0, void 0, void 0, true);
5124
- next(2);
5125
- reset(label);
5126
- template_effect(() => set_attribute(label, "data-loading", loading()));
5127
- append($$anchor, label);
5136
+ bind_this(input, ($$value) => inputEl = $$value, () => inputEl);
5137
+ var div_1 = sibling(input, 2);
5138
+ reset(div);
5139
+ template_effect(() => set_attribute(div, "data-loading", loading()));
5140
+ delegated("click", div_1, onClick);
5141
+ append($$anchor, div);
5128
5142
  return pop($$exports);
5129
5143
  }
5144
+ delegate(["click"]);
5130
5145
  create_custom_element(Switch, { loading: {} }, [], [], { mode: "open" });
5131
5146
  var AudioState = /* @__PURE__ */ ((AudioState2) => {
5132
5147
  AudioState2["ERROR"] = "error";
@@ -6042,7 +6057,7 @@ function Widget($$anchor, $$props) {
6042
6057
  }
6043
6058
  });
6044
6059
  onMount(() => {
6045
- log("mounted", "3.0.1");
6060
+ log("mounted", "3.0.3");
6046
6061
  if (instance) {
6047
6062
  globalThis.$altcha.instances.add(instance);
6048
6063
  }
@@ -7125,10 +7140,11 @@ const jsContent$1 = `(function() {
7125
7140
  const password = new PasswordBuffer(nonceBuf, counterMode);
7126
7141
  const start = performance.now();
7127
7142
  let counter = counterStart;
7143
+ let iterations = 0;
7128
7144
  let derivedKeyHex = "";
7129
7145
  let lastYield = start;
7130
7146
  while (true) {
7131
- if (controller?.signal.aborted || timeout && counter % 10 === 0 && performance.now() - start > timeout) {
7147
+ if (controller?.signal.aborted || timeout && iterations % 10 === 0 && performance.now() - start > timeout) {
7132
7148
  return null;
7133
7149
  }
7134
7150
  const { derivedKey } = await deriveKey2(
@@ -7136,7 +7152,7 @@ const jsContent$1 = `(function() {
7136
7152
  saltBuf,
7137
7153
  password.setCounter(counter)
7138
7154
  );
7139
- if (counter % 10 === 0 && performance.now() - lastYield > 200) {
7155
+ if (iterations % 10 === 0 && performance.now() - lastYield > 200) {
7140
7156
  await delay(0);
7141
7157
  lastYield = performance.now();
7142
7158
  }
@@ -7145,6 +7161,7 @@ const jsContent$1 = `(function() {
7145
7161
  break;
7146
7162
  }
7147
7163
  counter = counter + counterStep;
7164
+ iterations = iterations + 1;
7148
7165
  }
7149
7166
  return {
7150
7167
  counter,
@@ -7325,10 +7342,11 @@ const jsContent = `(function() {
7325
7342
  const password = new PasswordBuffer(nonceBuf, counterMode);
7326
7343
  const start = performance.now();
7327
7344
  let counter = counterStart;
7345
+ let iterations = 0;
7328
7346
  let derivedKeyHex = "";
7329
7347
  let lastYield = start;
7330
7348
  while (true) {
7331
- if (controller?.signal.aborted || timeout && counter % 10 === 0 && performance.now() - start > timeout) {
7349
+ if (controller?.signal.aborted || timeout && iterations % 10 === 0 && performance.now() - start > timeout) {
7332
7350
  return null;
7333
7351
  }
7334
7352
  const { derivedKey } = await deriveKey2(
@@ -7336,7 +7354,7 @@ const jsContent = `(function() {
7336
7354
  saltBuf,
7337
7355
  password.setCounter(counter)
7338
7356
  );
7339
- if (counter % 10 === 0 && performance.now() - lastYield > 200) {
7357
+ if (iterations % 10 === 0 && performance.now() - lastYield > 200) {
7340
7358
  await delay(0);
7341
7359
  lastYield = performance.now();
7342
7360
  }
@@ -7345,6 +7363,7 @@ const jsContent = `(function() {
7345
7363
  break;
7346
7364
  }
7347
7365
  counter = counter + counterStep;
7366
+ iterations = iterations + 1;
7348
7367
  }
7349
7368
  return {
7350
7369
  counter,
@@ -7426,7 +7445,7 @@ function WorkerWrapper(options) {
7426
7445
  );
7427
7446
  }
7428
7447
  }
7429
- const css = ':root {\n --altcha-border-color: var(--altcha-color-neutral);\n --altcha-border-width: 1px;\n --altcha-border-radius: 6px;\n --altcha-color-base: light-dark(oklch(100% 0.00011 271.152), oklch(20.904% 0.00002 271.152));\n --altcha-color-base-content: light-dark(\n oklch(20.904% 0.00002 271.152),\n oklch(100% 0.00011 271.152)\n );\n --altcha-color-error: oklch(51.284% 0.20527 28.678);\n --altcha-color-error-content: oklch(100% 0.00011 271.152);\n --altcha-color-neutral: light-dark(oklch(83.591% 0.0001 271.152), oklch(46.04% 0.00005 271.152));\n --altcha-color-neutral-content: light-dark(\n oklch(46.76% 0.00005 271.152),\n oklch(100% 0.00011 271.152)\n );\n --altcha-color-primary: oklch(40.279% 0.2449 268.131);\n --altcha-color-primary-content: oklch(100% 0.00011 271.152);\n --altcha-color-success: oklch(55.748% 0.18968 142.511);\n --altcha-color-success-content: oklch(100% 0.00011 271.152);\n --altcha-checkbox-border-color: var(--altcha-color-neutral);\n --altcha-checkbox-border-radius: 5px;\n --altcha-checkbox-border-width: var(--altcha-border-width);\n --altcha-checkbox-outline: 2px solid var(--altcha-checkbox-outline-color);\n --altcha-checkbox-outline-color: light-dark(\n color-mix(in srgb, var(--altcha-color-primary) 20%, transparent),\n color-mix(in srgb, var(--altcha-color-primary) 60%, transparent)\n );\n --altcha-checkbox-outline-offset: 2px;\n --altcha-checkbox-size: 22px;\n --altcha-checkbox-transition-duration: var(--altcha-transition-duration);\n --altcha-input-background-color: var(--altcha-color-base);\n --altcha-input-border-radius: 3px;\n --altcha-input-border-width: 1px;\n --altcha-input-color: var(--altcha-color-base-content);\n --altcha-max-width: 320px;\n --altcha-padding: 0.75rem;\n --altcha-popover-arrow-size: 6px;\n --altcha-popover-color: var(--altcha-border-color);\n --altcha-shadow: drop-shadow(3px 3px 6px oklch(0% 0 0 / 0.2));\n --altcha-spinner-color: var(--altcha-color-base-content);\n --altcha-switch-background-color: var(--altcha-color-neutral);\n --altcha-switch-border-radius: calc(infinity * 1px);\n --altcha-switch-height: var(--altcha-checkbox-size);\n --altcha-switch-padding: 0.25rem;\n --altcha-switch-width: calc(var(--altcha-checkbox-size) * 1.75);\n --altcha-switch-toggle-border-radius: 100%;\n --altcha-switch-toggle-color: var(--altcha-color-neutral-content);\n --altcha-switch-toggle-size: calc(\n var(--altcha-switch-height) - calc(var(--altcha-switch-padding) * 2)\n );\n --altcha-transition-duration: 0.6s;\n --altcha-z-index: 99999999;\n --altcha-z-index-popover: 999999999;\n}\n\n.altcha {\n all: revert-layer;\n display: none;\n font-family: inherit;\n font-size: inherit;\n position: relative;\n}\n.altcha[data-visible] {\n display: block;\n}\n.altcha-popover, .altcha-popover * {\n all: revert-layer;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.25;\n}\n.altcha * {\n all: revert-layer;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.25;\n}\n.altcha a, .altcha-popover a {\n color: currentColor;\n text-decoration: none;\n}\n.altcha a:hover, .altcha-popover a:hover {\n color: currentColor;\n}\n.altcha-main {\n align-items: start;\n background-color: var(--altcha-color-base);\n border: var(--altcha-border-width, 1px) solid var(--altcha-border-color);\n border-radius: var(--altcha-border-radius, 0);\n color: var(--altcha-color-base-content);\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n justify-content: space-between;\n padding: var(--altcha-padding);\n max-width: var(--altcha-max-width, 100%);\n}\n.altcha-main > * {\n display: flex;\n width: 100%;\n}\n.altcha-main > *:first-child {\n flex-grow: 1;\n}\n.altcha-checkbox-wrap {\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n gap: 0.5rem;\n}\n.altcha-checkbox-wrap > * {\n display: flex;\n}\n.altcha-logo {\n opacity: 0.7;\n}\n.altcha-footer {\n align-items: center;\n display: flex;\n flex-grow: 1;\n gap: 0.5rem;\n justify-content: flex-end;\n font-size: 0.7rem;\n opacity: 0.7;\n}\n.altcha-error {\n font-size: 0.85rem;\n}\n.altcha-button {\n align-items: center;\n background: var(--altcha-color-primary);\n border: var(--altcha-input-border-width) solid var(--altcha-color-primary);\n border-radius: var(--altcha-input-border-radius);\n color: var(--altcha-color-primary-content);\n cursor: pointer;\n display: flex;\n font-size: 0.9rem;\n gap: 0.5rem;\n padding: 0.35rem;\n}\n.altcha-button:focus {\n border-color: var(--altcha-color-primary);\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-button > .altcha-spinner, .altcha-button > svg {\n height: 20px;\n width: 20px;\n}\n.altcha-button-secondary {\n background: transparent;\n border-color: var(--altcha-color-neutral);\n color: var(--altcha-color-neutral-content);\n}\n.altcha-input {\n background: var(--altcha-input-background-color);\n border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\n border-radius: var(--altcha-input-border-radius);\n color: var(--altcha-input-color);\n flex-grow: 1;\n font-size: 1rem;\n min-width: 0;\n padding: 0.25rem;\n width: auto;\n}\n.altcha-input:focus {\n border-color: var(--altcha-color-primary);\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-spinner {\n animation: altcha-rotate 0.6s linear infinite;\n border-radius: 100%;\n border: var(--altcha-checkbox-border-width) solid var(--altcha-spinner-color);\n border-bottom-color: transparent;\n border-right-color: transparent;\n opacity: 0.5;\n}\n.altcha-popover {\n background-color: var(--altcha-color-base);\n border: var(--altcha-border-width) solid var(--altcha-border-color);\n border-radius: var(--altcha-border-radius);\n color: var(--altcha-color-base-content);\n filter: var(--altcha-shadow);\n position: absolute;\n left: calc(var(--altcha-padding) / 2);\n max-width: calc(var(--altcha-max-width) - var(--altcha-padding));\n top: calc(var(--altcha-padding) + var(--altcha-checkbox-size) + var(--altcha-popover-arrow-size));\n z-index: var(--altcha-z-index-popover);\n}\n.altcha-popover-arrow {\n border: var(--altcha-popover-arrow-size) solid transparent;\n border-bottom-color: var(--altcha-popover-color);\n content: "";\n height: 0;\n left: calc(var(--altcha-checkbox-size) / 2);\n position: absolute;\n top: calc(var(--altcha-popover-arrow-size) * -2);\n width: 0;\n}\n.altcha-popover-content {\n max-height: 100dvh;\n overflow: auto;\n padding: var(--altcha-padding);\n}\n.altcha-popover[data-top=true][data-display=standard] {\n bottom: calc(100% - (var(--altcha-padding) - var(--altcha-popover-arrow-size)));\n top: auto;\n}\n.altcha-popover[data-top=true][data-display=standard] .altcha-popover-arrow {\n border-bottom-color: transparent;\n border-top-color: var(--altcha-popover-color);\n bottom: calc(var(--altcha-popover-arrow-size) * -2);\n top: auto;\n}\n.altcha-popover[data-variant=error] {\n --altcha-popover-color: var(--altcha-color-error);\n background-color: var(--altcha-color-error);\n border-color: var(--altcha-color-error);\n color: var(--altcha-color-error-content);\n}\n.altcha-popover[data-variant=error] .altcha-popover-content {\n padding: calc(var(--altcha-padding) / 1.5) var(--altcha-padding);\n}\n.altcha-popover[data-display=overlay] {\n animation: altcha-overlay-slidein 0.5s forwards;\n left: 50%;\n position: fixed;\n top: 45%;\n transform: translate(-50%, -50%);\n width: var(--altcha-max-width);\n z-index: var(--altcha-z-index);\n}\n.altcha-popover[data-display=bottomsheet] {\n animation: altcha-bottomsheet-slideup 0.5s forwards;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom: 0;\n bottom: -100%;\n left: 50%;\n position: fixed;\n top: auto;\n transform: translate(-50%, 0);\n width: var(--altcha-max-width);\n z-index: var(--altcha-z-index);\n}\n.altcha-popover[data-display=bottomsheet] .altcha-popover-content {\n padding-bottom: calc(var(--altcha-padding) * 2);\n}\n.altcha-popover-backdrop {\n background: var(--altcha-color-base-content);\n bottom: 0;\n left: 0;\n opacity: 0.1;\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity 0.5s;\n z-index: var(--altcha-z-index);\n}\n.altcha-popover-close {\n color: var(--altcha-color-base-content);\n cursor: pointer;\n display: inline-block;\n font-size: 1rem;\n height: 1.25rem;\n line-height: 0.95;\n position: absolute;\n right: 0;\n text-align: center;\n text-shadow: 0 0 1px var(--altcha-color-base);\n top: -1.5rem;\n width: 1.25rem;\n z-index: var(--altcha-z-index);\n}\n[dir=rtl] .altcha-popover {\n left: auto;\n right: calc(var(--altcha-padding) / 2);\n}\n[dir=rtl] .altcha-popover-arrow {\n left: auto;\n right: calc(var(--altcha-checkbox-size) / 2);\n}\n[dir=rtl] .altcha-popover-close {\n left: 0;\n right: auto;\n}\n.altcha-popover[data-display=bottomsheet] .altcha-footer, .altcha-popover[data-display=overlay] .altcha-footer {\n align-items: center;\n justify-content: center;\n padding-top: 1rem;\n gap: 0.5rem;\n}\n.altcha-popover[data-display=bottomsheet] .altcha-footer svg, .altcha-popover[data-display=overlay] .altcha-footer svg {\n height: 18px;\n width: 18px;\n vertical-align: middle;\n}\n.altcha-code-challenge > form {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.altcha-code-challenge-title {\n font-weight: 600;\n}\n.altcha-code-challenge-text {\n font-size: 0.85rem;\n}\n.altcha-code-challenge-image {\n background: white;\n border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\n border-radius: var(--altcha-input-border-radius);\n object-fit: contain;\n height: 50px;\n}\n.altcha-code-challenge-row {\n display: flex;\n gap: 0.5rem;\n}\n.altcha-code-challenge-buttons {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: var(--altcha-padding);\n justify-content: space-between;\n}\n.altcha-code-challenge-buttons button {\n justify-content: center;\n width: 100%;\n}\n.altcha-checkbox {\n cursor: pointer;\n height: var(--altcha-checkbox-size);\n position: relative;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox input {\n appearance: none;\n background: var(--altcha-input-background-color);\n border: var(--altcha-checkbox-border-width, 2px) solid var(--altcha-checkbox-border-color);\n border-radius: var(--altcha-checkbox-border-radius);\n height: var(--altcha-checkbox-size);\n left: 0;\n margin: 0;\n outline: none;\n padding: 0;\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox input:before {\n border-radius: var(--altcha-checkbox-border-radius);\n content: "";\n width: 100%;\n height: 100%;\n background: var(--altcha-color-neutral);\n display: block;\n transform: scale(0);\n}\n.altcha-checkbox input:focus {\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-checkbox input:checked {\n background-color: var(--altcha-color-success);\n border-color: var(--altcha-color-success);\n}\n.altcha-checkbox input:checked::before {\n background-color: var(--altcha-color-success);\n opacity: 0;\n transform: scale(2.2);\n transition: all var(--altcha-checkbox-transition-duration) ease;\n transition-delay: 0.1s;\n}\n.altcha-checkbox svg {\n --altcha-radio-svg-size: calc(var(--altcha-checkbox-size) * 0.5);\n --altcha-radio-svg-offset: calc(var(--altcha-checkbox-size) * 0.25);\n fill: none;\n left: var(--altcha-radio-svg-offset);\n height: var(--altcha-radio-svg-size);\n opacity: 0;\n position: absolute;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n top: var(--altcha-radio-svg-offset);\n transform: translate3d(0, 0, 0);\n width: var(--altcha-radio-svg-size);\n}\n.altcha-checkbox input:checked + svg {\n color: var(--altcha-color-success-content);\n opacity: 1;\n stroke-dashoffset: 0;\n transition: all var(--altcha-checkbox-transition-duration) ease;\n transition-delay: 0.1s;\n}\n.altcha-checkbox-spinner {\n display: none;\n left: 0;\n height: var(--altcha-checkbox-size);\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox[data-loading=true] input {\n appearance: none;\n opacity: 0;\n pointer-events: none;\n}\n.altcha-checkbox[data-loading=true] .altcha-checkbox-spinner {\n display: block;\n}\n.altcha-checkbox-native {\n height: var(--altcha-checkbox-size);\n position: relative;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native input {\n height: var(--altcha-checkbox-size);\n margin: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native input:focus {\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-checkbox-native-spinner {\n display: none;\n left: 0;\n height: var(--altcha-checkbox-size);\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native[data-loading=true] input {\n appearance: none;\n opacity: 0;\n pointer-events: none;\n}\n.altcha-checkbox-native[data-loading=true] .altcha-checkbox-native-spinner {\n display: block;\n}\n.altcha-switch {\n align-items: center;\n border-radius: var(--altcha-switch-border-radius);\n background-color: var(--altcha-switch-background-color);\n cursor: pointer;\n display: flex;\n height: var(--altcha-switch-height);\n padding: var(--altcha-switch-padding);\n position: relative;\n width: var(--altcha-switch-width);\n}\n.altcha-switch:focus-within {\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-switch input {\n appearance: none;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.altcha-switch-toggle {\n align-items: center;\n background-color: var(--altcha-switch-toggle-color);\n border-radius: var(--altcha-switch-toggle-border-radius);\n display: flex;\n height: var(--altcha-switch-toggle-size);\n justify-content: center;\n left: var(--altcha-switch-padding);\n position: absolute;\n transition: width 150ms ease-out, left 150ms ease-out;\n width: var(--altcha-switch-toggle-size);\n}\n.altcha-switch-spinner {\n display: none;\n height: var(--altcha-switch-toggle-size);\n width: var(--altcha-switch-toggle-size);\n}\n.altcha-switch[data-loading=true] {\n pointer-events: none;\n}\n.altcha-switch[data-loading=true] .altcha-switch-spinner {\n display: block;\n}\n.altcha-switch[data-loading=true] .altcha-switch-toggle {\n background-color: transparent;\n left: calc(50% - var(--altcha-switch-toggle-size) / 2);\n}\n[data-state=verified] .altcha-switch {\n --altcha-switch-background-color: var(--altcha-color-success);\n}\n[data-state=verified] .altcha-switch-toggle {\n background-color: var(--altcha-color-success-content);\n left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\n}\n[dir=rtl] .altcha-switch-toggle {\n left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\n}\n[dir=rtl][data-state=verified] .altcha-switch-toggle {\n left: var(--altcha-switch-padding);\n}\n.altcha-floating-arrow {\n border: 6px solid transparent;\n border-bottom-color: var(--altcha-border-color);\n content: "";\n height: 0;\n left: 12px;\n position: absolute;\n top: -12px;\n width: 0;\n}\n.altcha-overlay-backdrop {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity var(--altcha-transition-duration);\n z-index: var(--altcha-z-index);\n}\n.altcha-overlay-close {\n display: inline-block;\n color: currentColor;\n cursor: pointer;\n font-size: 1rem;\n height: 1rem;\n line-height: 0.85;\n position: absolute;\n right: 0;\n text-align: center;\n text-shadow: 0 0 1px var(--altcha-color-base);\n top: -1.5rem;\n width: 1rem;\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=overlay] {\n animation: altcha-overlay-slidein var(--altcha-transition-duration) forwards;\n filter: var(--altcha-shadow);\n left: 50%;\n opacity: 0;\n position: fixed;\n top: 45%;\n transform: translate(-50%, -50%);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=overlay] .altcha-main {\n width: var(--altcha-max-width);\n}\n.altcha[data-display=floating] {\n display: none;\n filter: var(--altcha-shadow);\n left: var(--altcha-floating-left, -100%);\n position: fixed;\n top: var(--altcha-floating-top, -100%);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=floating] .altcha-main {\n width: var(--altcha-max-width);\n}\n.altcha[data-display=floating][data-placement=top] .altcha-floating-arrow {\n border-bottom-color: transparent;\n border-top-color: var(--altcha-border-color);\n bottom: -12px;\n top: auto;\n}\n.altcha[data-display=floating][data-visible] {\n display: flex;\n}\n.altcha[data-display=bar] {\n bottom: -100%;\n filter: var(--altcha-shadow);\n left: 0;\n position: fixed;\n right: 0;\n transition: bottom var(--altcha-transition-duration), top var(--altcha-transition-duration);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=bar] .altcha-main {\n align-items: center;\n border-radius: 0;\n border-width: var(--altcha-border-width) 0 0 0;\n flex-direction: row;\n max-width: 100% !important;\n}\n.altcha[data-display=bar] .altcha-main > * {\n width: auto;\n}\n.altcha[data-display=bar][data-placement=top] {\n bottom: auto;\n top: -100%;\n}\n.altcha[data-display=bar][data-placement=top] .altcha-main {\n border-width: 0 0 var(--altcha-border-width) 0;\n}\n.altcha[data-display=bar][data-placement=bottom]:not([data-state=unverified]) {\n bottom: 0;\n}\n.altcha[data-display=bar][data-placement=top]:not([data-state=unverified]) {\n top: 0;\n}\n.altcha[data-display=invisible] {\n display: none;\n}\n\n@keyframes altcha-rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes altcha-bottomsheet-slideup {\n 100% {\n bottom: 0;\n }\n}\n@keyframes altcha-overlay-slidein {\n 100% {\n opacity: 1;\n top: 50%;\n }\n}';
7448
+ const css = ':root {\n --altcha-border-color: var(--altcha-color-neutral);\n --altcha-border-width: 1px;\n --altcha-border-radius: 6px;\n --altcha-color-base: light-dark(oklch(100% 0.00011 271.152), oklch(20.904% 0.00002 271.152));\n --altcha-color-base-content: light-dark(\n oklch(20.904% 0.00002 271.152),\n oklch(100% 0.00011 271.152)\n );\n --altcha-color-error: oklch(51.284% 0.20527 28.678);\n --altcha-color-error-content: oklch(100% 0.00011 271.152);\n --altcha-color-neutral: light-dark(oklch(83.591% 0.0001 271.152), oklch(46.04% 0.00005 271.152));\n --altcha-color-neutral-content: light-dark(\n oklch(46.76% 0.00005 271.152),\n oklch(100% 0.00011 271.152)\n );\n --altcha-color-primary: oklch(40.279% 0.2449 268.131);\n --altcha-color-primary-content: oklch(100% 0.00011 271.152);\n --altcha-color-success: oklch(55.748% 0.18968 142.511);\n --altcha-color-success-content: oklch(100% 0.00011 271.152);\n --altcha-checkbox-border-color: light-dark(\n oklch(66.494% 0.00233 15.434),\n oklch(51.028% 0.00006 271.152)\n );\n --altcha-checkbox-border-radius: 5px;\n --altcha-checkbox-border-width: var(--altcha-border-width);\n --altcha-checkbox-outline: 2px solid var(--altcha-checkbox-outline-color);\n --altcha-checkbox-outline-color: -webkit-focus-ring-color;\n --altcha-checkbox-outline-offset: 2px;\n --altcha-checkbox-size: 22px;\n --altcha-checkbox-transition-duration: var(--altcha-transition-duration);\n --altcha-input-background-color: var(--altcha-color-base);\n --altcha-input-border-radius: 3px;\n --altcha-input-border-width: 1px;\n --altcha-input-color: var(--altcha-color-base-content);\n --altcha-max-width: 320px;\n --altcha-padding: 0.75rem;\n --altcha-popover-arrow-size: 6px;\n --altcha-popover-color: var(--altcha-border-color);\n --altcha-shadow: drop-shadow(3px 3px 6px oklch(0% 0 0 / 0.2));\n --altcha-spinner-color: var(--altcha-color-base-content);\n --altcha-switch-background-color: var(--altcha-color-neutral);\n --altcha-switch-border-radius: calc(infinity * 1px);\n --altcha-switch-height: var(--altcha-checkbox-size);\n --altcha-switch-padding: 0.25rem;\n --altcha-switch-width: calc(var(--altcha-checkbox-size) * 1.75);\n --altcha-switch-toggle-border-radius: 100%;\n --altcha-switch-toggle-color: var(--altcha-color-neutral-content);\n --altcha-switch-toggle-size: calc(\n var(--altcha-switch-height) - calc(var(--altcha-switch-padding) * 2)\n );\n --altcha-transition-duration: 0.6s;\n --altcha-z-index: 99999999;\n --altcha-z-index-popover: 999999999;\n}\n\n@supports (-moz-appearance: none) {\n :root {\n --altcha-checkbox-outline-color: var(--altcha-color-primary);\n }\n}\n.altcha {\n all: revert-layer;\n display: none;\n font-family: inherit;\n font-size: inherit;\n position: relative;\n}\n.altcha[data-visible] {\n display: block;\n}\n.altcha-popover, .altcha-popover * {\n all: revert-layer;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.25;\n}\n.altcha * {\n all: revert-layer;\n box-sizing: border-box;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.25;\n}\n.altcha a, .altcha-popover a {\n color: currentColor;\n text-decoration: none;\n}\n.altcha a:hover, .altcha-popover a:hover {\n color: currentColor;\n}\n.altcha-main {\n align-items: start;\n background-color: var(--altcha-color-base);\n border: var(--altcha-border-width, 1px) solid var(--altcha-border-color);\n border-radius: var(--altcha-border-radius, 0);\n color: var(--altcha-color-base-content);\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n justify-content: space-between;\n padding: var(--altcha-padding);\n max-width: var(--altcha-max-width, 100%);\n}\n.altcha-main > * {\n display: flex;\n width: 100%;\n}\n.altcha-main > *:first-child {\n flex-grow: 1;\n}\n.altcha-checkbox-wrap {\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n gap: 0.5rem;\n}\n.altcha-checkbox-wrap > * {\n display: flex;\n}\n.altcha-logo {\n opacity: 0.7;\n}\n.altcha-footer {\n align-items: center;\n display: flex;\n flex-grow: 1;\n gap: 0.5rem;\n justify-content: flex-end;\n font-size: 0.7rem;\n opacity: 0.7;\n}\n.altcha-footer p {\n margin: 0;\n padding: 0;\n}\n.altcha-error {\n font-size: 0.85rem;\n}\n.altcha-button {\n align-items: center;\n background: var(--altcha-color-primary);\n border: var(--altcha-input-border-width) solid var(--altcha-color-primary);\n border-radius: var(--altcha-input-border-radius);\n color: var(--altcha-color-primary-content);\n cursor: pointer;\n display: flex;\n font-size: 0.9rem;\n gap: 0.5rem;\n padding: 0.35rem;\n}\n.altcha-button:focus {\n border-color: var(--altcha-color-primary);\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-button > .altcha-spinner, .altcha-button > svg {\n height: 20px;\n width: 20px;\n}\n.altcha-button-secondary {\n background: transparent;\n border-color: var(--altcha-color-neutral);\n color: var(--altcha-color-neutral-content);\n}\n.altcha-input {\n background: var(--altcha-input-background-color);\n border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\n border-radius: var(--altcha-input-border-radius);\n color: var(--altcha-input-color);\n flex-grow: 1;\n font-size: 1rem;\n min-width: 0;\n padding: 0.25rem;\n width: auto;\n}\n.altcha-input:focus {\n border-color: var(--altcha-color-primary);\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-spinner {\n animation: altcha-rotate 0.6s linear infinite;\n border-radius: 100%;\n border: var(--altcha-checkbox-border-width) solid var(--altcha-spinner-color);\n border-bottom-color: transparent;\n border-right-color: transparent;\n opacity: 0.7;\n}\n.altcha-popover {\n background-color: var(--altcha-color-base);\n border: var(--altcha-border-width) solid var(--altcha-border-color);\n border-radius: var(--altcha-border-radius);\n color: var(--altcha-color-base-content);\n filter: var(--altcha-shadow);\n position: absolute;\n left: calc(var(--altcha-padding) / 2);\n max-width: calc(var(--altcha-max-width) - var(--altcha-padding));\n top: calc(var(--altcha-padding) + var(--altcha-checkbox-size) + var(--altcha-popover-arrow-size));\n z-index: var(--altcha-z-index-popover);\n}\n.altcha-popover-arrow {\n border: var(--altcha-popover-arrow-size) solid transparent;\n border-bottom-color: var(--altcha-popover-color);\n content: "";\n height: 0;\n left: calc(var(--altcha-checkbox-size) / 2);\n position: absolute;\n top: calc(var(--altcha-popover-arrow-size) * -2);\n width: 0;\n}\n.altcha-popover-content {\n max-height: 100dvh;\n overflow: auto;\n padding: var(--altcha-padding);\n}\n.altcha-popover[data-top=true][data-display=standard] {\n bottom: calc(100% - (var(--altcha-padding) - var(--altcha-popover-arrow-size)));\n top: auto;\n}\n.altcha-popover[data-top=true][data-display=standard] .altcha-popover-arrow {\n border-bottom-color: transparent;\n border-top-color: var(--altcha-popover-color);\n bottom: calc(var(--altcha-popover-arrow-size) * -2);\n top: auto;\n}\n.altcha-popover[data-variant=error] {\n --altcha-popover-color: var(--altcha-color-error);\n background-color: var(--altcha-color-error);\n border-color: var(--altcha-color-error);\n color: var(--altcha-color-error-content);\n}\n.altcha-popover[data-variant=error] .altcha-popover-content {\n padding: calc(var(--altcha-padding) / 1.5) var(--altcha-padding);\n}\n.altcha-popover[data-display=overlay] {\n animation: altcha-overlay-slidein 0.5s forwards;\n left: 50%;\n position: fixed;\n top: 45%;\n transform: translate(-50%, -50%);\n width: var(--altcha-max-width);\n z-index: var(--altcha-z-index);\n}\n.altcha-popover[data-display=bottomsheet] {\n animation: altcha-bottomsheet-slideup 0.5s forwards;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom: 0;\n bottom: -100%;\n left: 50%;\n position: fixed;\n top: auto;\n transform: translate(-50%, 0);\n width: var(--altcha-max-width);\n z-index: var(--altcha-z-index);\n}\n.altcha-popover[data-display=bottomsheet] .altcha-popover-content {\n padding-bottom: calc(var(--altcha-padding) * 2);\n}\n.altcha-popover-backdrop {\n background: var(--altcha-color-base-content);\n bottom: 0;\n left: 0;\n opacity: 0.1;\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity 0.5s;\n z-index: var(--altcha-z-index);\n}\n.altcha-popover-close {\n color: var(--altcha-color-base-content);\n cursor: pointer;\n display: inline-block;\n font-size: 1rem;\n height: 1.25rem;\n line-height: 0.95;\n position: absolute;\n right: 0;\n text-align: center;\n text-shadow: 0 0 1px var(--altcha-color-base);\n top: -1.5rem;\n width: 1.25rem;\n z-index: var(--altcha-z-index);\n}\n[dir=rtl] .altcha-popover {\n left: auto;\n right: calc(var(--altcha-padding) / 2);\n}\n[dir=rtl] .altcha-popover-arrow {\n left: auto;\n right: calc(var(--altcha-checkbox-size) / 2);\n}\n[dir=rtl] .altcha-popover-close {\n left: 0;\n right: auto;\n}\n.altcha-popover[data-display=bottomsheet] .altcha-footer, .altcha-popover[data-display=overlay] .altcha-footer {\n align-items: center;\n justify-content: center;\n padding-top: 1rem;\n gap: 0.5rem;\n}\n.altcha-popover[data-display=bottomsheet] .altcha-footer svg, .altcha-popover[data-display=overlay] .altcha-footer svg {\n height: 18px;\n width: 18px;\n vertical-align: middle;\n}\n.altcha-code-challenge > form {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.altcha-code-challenge-title {\n font-weight: 600;\n}\n.altcha-code-challenge-text {\n font-size: 0.85rem;\n}\n.altcha-code-challenge-image {\n background: white;\n border: var(--altcha-input-border-width) solid var(--altcha-color-neutral);\n border-radius: var(--altcha-input-border-radius);\n object-fit: contain;\n height: 50px;\n}\n.altcha-code-challenge-row {\n display: flex;\n gap: 0.5rem;\n}\n.altcha-code-challenge-buttons {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin-top: var(--altcha-padding);\n justify-content: space-between;\n}\n.altcha-code-challenge-buttons button {\n justify-content: center;\n width: 100%;\n}\n.altcha-checkbox {\n cursor: pointer;\n height: var(--altcha-checkbox-size);\n position: relative;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox input {\n appearance: none;\n background: var(--altcha-input-background-color);\n border: var(--altcha-checkbox-border-width, 2px) solid var(--altcha-checkbox-border-color);\n border-radius: var(--altcha-checkbox-border-radius);\n cursor: pointer;\n height: var(--altcha-checkbox-size);\n left: 0;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox input:before {\n border-radius: var(--altcha-checkbox-border-radius);\n content: "";\n width: 100%;\n height: 100%;\n background: var(--altcha-color-neutral);\n display: block;\n transform: scale(0);\n}\n.altcha-checkbox input:checked {\n background-color: var(--altcha-color-success);\n border-color: var(--altcha-color-success);\n}\n.altcha-checkbox input:checked::before {\n background-color: var(--altcha-color-success);\n opacity: 0;\n transform: scale(2.2);\n transition: all var(--altcha-checkbox-transition-duration) ease;\n transition-delay: 0.1s;\n}\n.altcha-checkbox svg {\n --altcha-radio-svg-size: calc(var(--altcha-checkbox-size) * 0.5);\n --altcha-radio-svg-offset: calc(var(--altcha-checkbox-size) * 0.25);\n fill: none;\n left: var(--altcha-radio-svg-offset);\n height: var(--altcha-radio-svg-size);\n opacity: 0;\n position: absolute;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n stroke-dasharray: 16px;\n stroke-dashoffset: 16px;\n top: var(--altcha-radio-svg-offset);\n transform: translate3d(0, 0, 0);\n width: var(--altcha-radio-svg-size);\n}\n.altcha-checkbox input:checked + svg {\n color: var(--altcha-color-success-content);\n opacity: 1;\n stroke-dashoffset: 0;\n transition: all var(--altcha-checkbox-transition-duration) ease;\n transition-delay: 0.1s;\n}\n.altcha-checkbox-spinner {\n display: none;\n left: 0;\n height: var(--altcha-checkbox-size);\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox[data-loading=true] input {\n appearance: none;\n opacity: 0;\n pointer-events: none;\n}\n.altcha-checkbox[data-loading=true] .altcha-checkbox-spinner {\n display: block;\n}\n.altcha-checkbox-native {\n height: var(--altcha-checkbox-size);\n position: relative;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native input {\n height: var(--altcha-checkbox-size);\n margin: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native-spinner {\n display: none;\n left: 0;\n height: var(--altcha-checkbox-size);\n position: absolute;\n top: 0;\n width: var(--altcha-checkbox-size);\n}\n.altcha-checkbox-native[data-loading=true] input {\n appearance: none;\n opacity: 0;\n pointer-events: none;\n}\n.altcha-checkbox-native[data-loading=true] .altcha-checkbox-native-spinner {\n display: block;\n}\n.altcha-switch {\n align-items: center;\n border-radius: var(--altcha-switch-border-radius);\n background-color: var(--altcha-switch-background-color);\n display: flex;\n height: var(--altcha-switch-height);\n padding: var(--altcha-switch-padding);\n position: relative;\n width: var(--altcha-switch-width);\n}\n.altcha-switch:focus-within {\n outline: var(--altcha-checkbox-outline);\n outline-offset: var(--altcha-checkbox-outline-offset);\n}\n.altcha-switch input {\n appearance: none;\n cursor: pointer;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.altcha-switch-toggle {\n align-items: center;\n background-color: var(--altcha-switch-toggle-color);\n border-radius: var(--altcha-switch-toggle-border-radius);\n cursor: pointer;\n display: flex;\n height: var(--altcha-switch-toggle-size);\n justify-content: center;\n left: var(--altcha-switch-padding);\n position: absolute;\n transition: width 150ms ease-out, left 150ms ease-out;\n width: var(--altcha-switch-toggle-size);\n}\n.altcha-switch-spinner {\n display: none;\n height: var(--altcha-switch-toggle-size);\n width: var(--altcha-switch-toggle-size);\n}\n.altcha-switch[data-loading=true] {\n pointer-events: none;\n}\n.altcha-switch[data-loading=true] .altcha-switch-spinner {\n display: block;\n}\n.altcha-switch[data-loading=true] .altcha-switch-toggle {\n background-color: transparent;\n left: calc(50% - var(--altcha-switch-toggle-size) / 2);\n}\n[data-state=verified] .altcha-switch {\n --altcha-switch-background-color: var(--altcha-color-success);\n}\n[data-state=verified] .altcha-switch-toggle {\n background-color: var(--altcha-color-success-content);\n left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\n}\n[dir=rtl] .altcha-switch-toggle {\n left: calc(100% - var(--altcha-switch-height) + var(--altcha-switch-padding));\n}\n[dir=rtl][data-state=verified] .altcha-switch-toggle {\n left: var(--altcha-switch-padding);\n}\n.altcha-floating-arrow {\n border: 6px solid transparent;\n border-bottom-color: var(--altcha-border-color);\n content: "";\n height: 0;\n left: 12px;\n position: absolute;\n top: -12px;\n width: 0;\n}\n.altcha-overlay-backdrop {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity var(--altcha-transition-duration);\n z-index: var(--altcha-z-index);\n}\n.altcha-overlay-close {\n display: inline-block;\n color: currentColor;\n cursor: pointer;\n font-size: 1rem;\n height: 1rem;\n line-height: 0.85;\n position: absolute;\n right: 0;\n text-align: center;\n text-shadow: 0 0 1px var(--altcha-color-base);\n top: -1.5rem;\n width: 1rem;\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=overlay] {\n animation: altcha-overlay-slidein var(--altcha-transition-duration) forwards;\n filter: var(--altcha-shadow);\n left: 50%;\n opacity: 0;\n position: fixed;\n top: 45%;\n transform: translate(-50%, -50%);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=overlay] .altcha-main {\n width: var(--altcha-max-width);\n}\n.altcha[data-display=floating] {\n display: none;\n filter: var(--altcha-shadow);\n left: var(--altcha-floating-left, -100%);\n position: fixed;\n top: var(--altcha-floating-top, -100%);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=floating] .altcha-main {\n width: var(--altcha-max-width);\n}\n.altcha[data-display=floating][data-placement=top] .altcha-floating-arrow {\n border-bottom-color: transparent;\n border-top-color: var(--altcha-border-color);\n bottom: -12px;\n top: auto;\n}\n.altcha[data-display=floating][data-visible] {\n display: flex;\n}\n.altcha[data-display=bar] {\n bottom: -100%;\n filter: var(--altcha-shadow);\n left: 0;\n position: fixed;\n right: 0;\n transition: bottom var(--altcha-transition-duration), top var(--altcha-transition-duration);\n z-index: var(--altcha-z-index);\n}\n.altcha[data-display=bar] .altcha-main {\n align-items: center;\n border-radius: 0;\n border-width: var(--altcha-border-width) 0 0 0;\n flex-direction: row;\n max-width: 100% !important;\n}\n.altcha[data-display=bar] .altcha-main > * {\n width: auto;\n}\n.altcha[data-display=bar][data-placement=top] {\n bottom: auto;\n top: -100%;\n}\n.altcha[data-display=bar][data-placement=top] .altcha-main {\n border-width: 0 0 var(--altcha-border-width) 0;\n}\n.altcha[data-display=bar][data-placement=bottom]:not([data-state=unverified]) {\n bottom: 0;\n}\n.altcha[data-display=bar][data-placement=top]:not([data-state=unverified]) {\n top: 0;\n}\n.altcha[data-display=invisible] {\n display: none;\n}\n\n@keyframes altcha-rotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes altcha-bottomsheet-slideup {\n 100% {\n bottom: 0;\n }\n}\n@keyframes altcha-overlay-slidein {\n 100% {\n opacity: 1;\n top: 50%;\n }\n}';
7430
7449
  injectCss(css);
7431
7450
  $altcha.algorithms.set("SHA-256", () => new WorkerWrapper());
7432
7451
  $altcha.algorithms.set("SHA-384", () => new WorkerWrapper());
@@ -7435,12 +7454,12 @@ $altcha.algorithms.set("PBKDF2/SHA-256", () => new WorkerWrapper$1());
7435
7454
  $altcha.algorithms.set("PBKDF2/SHA-384", () => new WorkerWrapper$1());
7436
7455
  $altcha.algorithms.set("PBKDF2/SHA-512", () => new WorkerWrapper$1());
7437
7456
  const i18n$Y = {
7438
- ariaLinkLabel: "زور Altcha.org",
7457
+ ariaLinkLabel: "Altcha (الموقع الرسمي)",
7439
7458
  enterCode: "أدخل الرمز",
7440
7459
  enterCodeAria: "أدخل الرمز الذي تسمعه. اضغط على المسافة لتشغيل الصوت.",
7441
7460
  error: "فشل التحقق. حاول مرة أخرى لاحقاً.",
7442
7461
  expired: "انتهت صلاحية التحقق. حاول مرة أخرى.",
7443
- footer: 'محمي بواسطة <a href="https://altcha.org/" target="_blank" aria-label="زور Altcha.org">ALTCHA</a>',
7462
+ footer: 'محمي بواسطة <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (الموقع الرسمي)">ALTCHA</a>',
7444
7463
  getAudioChallenge: "احصل على تحدي صوتي",
7445
7464
  label: "أنا لست روبوتاً",
7446
7465
  loading: "جارٍ التحميل...",
@@ -7457,12 +7476,12 @@ if ("$altcha" in globalThis) {
7457
7476
  globalThis.$altcha.i18n.set("ar", i18n$Y);
7458
7477
  }
7459
7478
  const i18n$X = {
7460
- ariaLinkLabel: "Посетете Altcha.org",
7479
+ ariaLinkLabel: "Altcha (официален уебсайт)",
7461
7480
  enterCode: "Въведете код",
7462
7481
  enterCodeAria: "Въведете кода, който чувате. Натиснете Space за възпроизвеждане на аудио.",
7463
7482
  error: "Проверката неуспешна. Моля, опитайте по-късно.",
7464
7483
  expired: "Времето за проверка изтече. Моля, опитайте отново.",
7465
- footer: 'Защитено от <a href="https://altcha.org/" target="_blank" aria-label="Посетете Altcha.org">ALTCHA</a>',
7484
+ footer: 'Защитено от <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (официален уебсайт)">ALTCHA</a>',
7466
7485
  getAudioChallenge: "Аудио проверка",
7467
7486
  label: "Аз не съм робот",
7468
7487
  loading: "Зареждане...",
@@ -7479,12 +7498,12 @@ if ("$altcha" in globalThis) {
7479
7498
  globalThis.$altcha.i18n.set("bg", i18n$X);
7480
7499
  }
7481
7500
  const i18n$W = {
7482
- ariaLinkLabel: "Наведаць Altcha.org",
7501
+ ariaLinkLabel: "Altcha (афіцыйны сайт)",
7483
7502
  enterCode: "Увядзіце код",
7484
7503
  enterCodeAria: "Увядзіце код, які вы чуеце. Націсніце прабел, каб прайграць аўдыё.",
7485
7504
  error: "Праверка не прайшла. Паспрабуйце пазней.",
7486
7505
  expired: "Тэрмін праверкі скончыўся. Паспрабуйце зноў.",
7487
- footer: 'Абаронена <a href="https://altcha.org/" target="_blank" aria-label="Наведаць Altcha.org">ALTCHA</a>',
7506
+ footer: 'Абаронена <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (афіцыйны сайт)">ALTCHA</a>',
7488
7507
  getAudioChallenge: "Атрымаць аўдыё выклік",
7489
7508
  label: "Я не робат",
7490
7509
  loading: "Загрузка...",
@@ -7501,12 +7520,12 @@ if ("$altcha" in globalThis) {
7501
7520
  globalThis.$altcha.i18n.set("be", i18n$W);
7502
7521
  }
7503
7522
  const i18n$V = {
7504
- ariaLinkLabel: "Posjetite Altcha.org",
7523
+ ariaLinkLabel: "Altcha (službena web stranica)",
7505
7524
  enterCode: "Unesite kod",
7506
7525
  enterCodeAria: "Unesite kod koji čujete. Pritisnite Space da biste pustili zvuk.",
7507
7526
  error: "Verifikacija nije uspjela. Pokušajte ponovo kasnije.",
7508
7527
  expired: "Verifikacija je istekla. Pokušajte ponovo.",
7509
- footer: 'Zaštićeno od strane <a href="https://altcha.org/" target="_blank" aria-label="Posjetite Altcha.org">ALTCHA</a>',
7528
+ footer: 'Zaštićeno od strane <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (službena web stranica)">ALTCHA</a>',
7510
7529
  getAudioChallenge: "Dohvatite audio izazov",
7511
7530
  label: "Nisam robot",
7512
7531
  loading: "Učitavanje...",
@@ -7523,12 +7542,12 @@ if ("$altcha" in globalThis) {
7523
7542
  globalThis.$altcha.i18n.set("bs", i18n$V);
7524
7543
  }
7525
7544
  const i18n$U = {
7526
- ariaLinkLabel: "Visita Altcha.org",
7545
+ ariaLinkLabel: "Altcha (lloc web oficial)",
7527
7546
  enterCode: "Introdueix el codi",
7528
7547
  enterCodeAria: "Introdueix el codi que escoltes. Prem Espai per reproduir l’àudio.",
7529
7548
  error: "Verificació fallida. Torna-ho a provar més tard.",
7530
7549
  expired: "Verificació expirada. Torna-ho a provar.",
7531
- footer: 'Protegit per <a href="https://altcha.org/" target="_blank" aria-label="Visita Altcha.org">ALTCHA</a>',
7550
+ footer: 'Protegit per <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (lloc web oficial)">ALTCHA</a>',
7532
7551
  getAudioChallenge: "Obtenir un desafiament d’àudio",
7533
7552
  label: "No sóc un robot",
7534
7553
  loading: "Carregant...",
@@ -7545,12 +7564,12 @@ if ("$altcha" in globalThis) {
7545
7564
  globalThis.$altcha.i18n.set("ca", i18n$U);
7546
7565
  }
7547
7566
  const i18n$T = {
7548
- ariaLinkLabel: "Navštivte Altcha.org",
7567
+ ariaLinkLabel: "Altcha (oficiální web)",
7549
7568
  enterCode: "Zadejte kód",
7550
7569
  enterCodeAria: "Zadejte kód, který slyšíte. Stisknutím mezerníku přehrajete zvuk.",
7551
7570
  error: "Ověření selhalo. Zkuste to prosím později.",
7552
7571
  expired: "Ověření vypršelo. Zkuste to prosím znovu.",
7553
- footer: 'Chráněno pomocí <a href="https://altcha.org/" target="_blank" aria-label="Navštivte Altcha.org">ALTCHA</a>',
7572
+ footer: 'Chráněno pomocí <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oficiální web)">ALTCHA</a>',
7554
7573
  getAudioChallenge: "Získat audio výzvu",
7555
7574
  label: "Nejsem robot",
7556
7575
  loading: "Načítání...",
@@ -7567,12 +7586,12 @@ if ("$altcha" in globalThis) {
7567
7586
  globalThis.$altcha.i18n.set("cs", i18n$T);
7568
7587
  }
7569
7588
  const i18n$S = {
7570
- ariaLinkLabel: "Besøg Altcha.org",
7589
+ ariaLinkLabel: "Altcha (officiel hjemmeside)",
7571
7590
  enterCode: "Indtast kode",
7572
7591
  enterCodeAria: "Indtast den kode, du hører. Tryk på mellemrumstasten for at afspille lyd.",
7573
7592
  error: "Verificering mislykkedes. Prøv venligst igen senere.",
7574
7593
  expired: "Verificering udløbet. Prøv venligst igen.",
7575
- footer: 'Beskyttet af <a href="https://altcha.org/" target="_blank" aria-label="Besøg Altcha.org">ALTCHA</a>',
7594
+ footer: 'Beskyttet af <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (officiel hjemmeside)">ALTCHA</a>',
7576
7595
  getAudioChallenge: "Hent lydudfordring",
7577
7596
  label: "Jeg er ikke en robot",
7578
7597
  loading: "Indlæser...",
@@ -7589,12 +7608,12 @@ if ("$altcha" in globalThis) {
7589
7608
  globalThis.$altcha.i18n.set("da", i18n$S);
7590
7609
  }
7591
7610
  const i18n$R = {
7592
- ariaLinkLabel: "Besuche Altcha.org",
7611
+ ariaLinkLabel: "Altcha (offizielle Website)",
7593
7612
  enterCode: "Code eingeben",
7594
7613
  enterCodeAria: "Geben Sie den Code ein, den Sie hören. Drücken Sie die Leertaste, um die Audio abzuspielen.",
7595
7614
  error: "Überprüfung fehlgeschlagen. Bitte versuchen Sie es später erneut.",
7596
7615
  expired: "Überprüfung abgelaufen. Bitte versuchen Sie es erneut.",
7597
- footer: 'Geschützt durch <a href="https://altcha.org/" target="_blank" aria-label="Besuche Altcha.org">ALTCHA</a>',
7616
+ footer: 'Geschützt durch <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (offizielle Website)">ALTCHA</a>',
7598
7617
  getAudioChallenge: "Audio-Herausforderung anfordern",
7599
7618
  label: "Ich bin kein Roboter",
7600
7619
  loading: "Lade...",
@@ -7611,12 +7630,12 @@ if ("$altcha" in globalThis) {
7611
7630
  globalThis.$altcha.i18n.set("de", i18n$R);
7612
7631
  }
7613
7632
  const i18n$Q = {
7614
- ariaLinkLabel: "Επισκεφθείτε το Altcha.org",
7633
+ ariaLinkLabel: "Altcha (επίσημος ιστότοπος)",
7615
7634
  enterCode: "Εισαγάγετε κωδικό",
7616
7635
  enterCodeAria: "Εισαγάγετε τον κωδικό που ακούτε. Πατήστε Space για να παίξετε τον ήχο.",
7617
7636
  error: "Η επαλήθευση απέτυχε. Δοκιμάστε ξανά αργότερα.",
7618
7637
  expired: "Η επαλήθευση έληξε. Δοκιμάστε ξανά.",
7619
- footer: 'Προστατεύεται από το <a href="https://altcha.org/" target="_blank" aria-label="Επισκεφθείτε το Altcha.org">ALTCHA</a>',
7638
+ footer: 'Προστατεύεται από το <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (επίσημος ιστότοπος)">ALTCHA</a>',
7620
7639
  getAudioChallenge: "Λήψη ηχητικής δοκιμασίας",
7621
7640
  label: "Δεν είμαι ρομπότ",
7622
7641
  loading: "Φόρτωση...",
@@ -7633,12 +7652,12 @@ if ("$altcha" in globalThis) {
7633
7652
  globalThis.$altcha.i18n.set("el", i18n$Q);
7634
7653
  }
7635
7654
  const i18n$P = {
7636
- ariaLinkLabel: "Visitar Altcha.org",
7655
+ ariaLinkLabel: "Altcha (sitio web oficial)",
7637
7656
  enterCode: "Introduce el código",
7638
7657
  enterCodeAria: "Introduce el código que escuchas. Pulsa Espacio para reproducir el audio.",
7639
7658
  error: "Falló la verificación. Por favor intente nuevamente más tarde.",
7640
7659
  expired: "Verificación expirada. Por favor intente nuevamente.",
7641
- footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
7660
+ footer: 'Protegido por <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (sitio web oficial)">ALTCHA</a>',
7642
7661
  getAudioChallenge: "Obtener un desafío de audio",
7643
7662
  label: "No soy un robot",
7644
7663
  loading: "Cargando...",
@@ -7655,12 +7674,12 @@ if ("$altcha" in globalThis) {
7655
7674
  globalThis.$altcha.i18n.set("es-es", i18n$P);
7656
7675
  }
7657
7676
  const i18n$O = {
7658
- ariaLinkLabel: "Visitar Altcha.org",
7677
+ ariaLinkLabel: "Altcha (sitio web oficial)",
7659
7678
  enterCode: "Ingresa el código",
7660
7679
  enterCodeAria: "Ingresa el código que escuchas. Presiona Espacio para reproducir el audio.",
7661
7680
  error: "Falló la verificación. Por favor vuelve a intentarlo más tarde.",
7662
7681
  expired: "La verificación expiró. Por favor inténtalo de nuevo.",
7663
- footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
7682
+ footer: 'Protegido por <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (sitio web oficial)">ALTCHA</a>',
7664
7683
  getAudioChallenge: "Obtener un reto de audio",
7665
7684
  label: "No soy un robot",
7666
7685
  loading: "Cargando...",
@@ -7677,12 +7696,12 @@ if ("$altcha" in globalThis) {
7677
7696
  globalThis.$altcha.i18n.set("es-419", i18n$O);
7678
7697
  }
7679
7698
  const i18n$N = {
7680
- ariaLinkLabel: "Külasta Altcha.org",
7699
+ ariaLinkLabel: "Altcha (ametlik veebisait)",
7681
7700
  enterCode: "Sisesta kood",
7682
7701
  enterCodeAria: "Sisestage kuuldu kood. Vajutage tühikut, et esitada heli.",
7683
7702
  error: "Kinnitamine ebaõnnestus. Proovi hiljem uuesti.",
7684
7703
  expired: "Kinnitamine aegus. Proovi uuesti.",
7685
- footer: 'Kaitstud <a href="https://altcha.org/" target="_blank" aria-label="Külasta Altcha.org">ALTCHA</a> poolt',
7704
+ footer: 'Kaitstud <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (ametlik veebisait)">ALTCHA</a> poolt',
7686
7705
  getAudioChallenge: "Hangi heliülesanne",
7687
7706
  label: "Ma ei ole robot",
7688
7707
  loading: "Laadimine...",
@@ -7699,12 +7718,12 @@ if ("$altcha" in globalThis) {
7699
7718
  globalThis.$altcha.i18n.set("et", i18n$N);
7700
7719
  }
7701
7720
  const i18n$M = {
7702
- ariaLinkLabel: "Bisitatu Altcha.org",
7721
+ ariaLinkLabel: "Altcha (webgune ofiziala)",
7703
7722
  enterCode: "Sartu kodea",
7704
7723
  enterCodeAria: "Sartu entzun duzun kodea. Sakatu Espazioa audioa erreproduzitzeko.",
7705
7724
  error: "Egiaztatzeak huts egin du. Saiatu berriro geroago.",
7706
7725
  expired: "Egiaztatzea iraungi da. Saiatu berriro.",
7707
- footer: '<a href="https://altcha.org/" target="_blank" aria-label="Bisitatu Altcha.org">ALTCHA</a>k babestuta',
7726
+ footer: '<a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (webgune ofiziala)">ALTCHA</a>k babestuta',
7708
7727
  getAudioChallenge: "Jaso audio-erronka bat",
7709
7728
  label: "Ez naiz robot bat",
7710
7729
  loading: "Kargatzen...",
@@ -7721,12 +7740,12 @@ if ("$altcha" in globalThis) {
7721
7740
  globalThis.$altcha.i18n.set("eu", i18n$M);
7722
7741
  }
7723
7742
  const i18n$L = {
7724
- ariaLinkLabel: "بازدید از Altcha.org",
7743
+ ariaLinkLabel: "Altcha (وب‌سایت رسمی)",
7725
7744
  enterCode: "کد را وارد کنید",
7726
7745
  enterCodeAria: "کدی که می‌شنوید را وارد کنید. برای پخش صدا Space را فشار دهید.",
7727
7746
  error: "احراز هویت ناموفق بود. بعداً دوباره تلاش کنید.",
7728
7747
  expired: "احراز هویت منقضی شد. دوباره تلاش کنید.",
7729
- footer: 'محافظت شده توسط <a href="https://altcha.org/" target="_blank" aria-label="بازدید از Altcha.org">ALTCHA</a>',
7748
+ footer: 'محافظت شده توسط <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (وب‌سایت رسمی)">ALTCHA</a>',
7730
7749
  getAudioChallenge: "دریافت چالش صوتی",
7731
7750
  label: "من ربات نیستم",
7732
7751
  loading: "در حال بارگذاری...",
@@ -7743,12 +7762,12 @@ if ("$altcha" in globalThis) {
7743
7762
  globalThis.$altcha.i18n.set("fa", i18n$L);
7744
7763
  }
7745
7764
  const i18n$K = {
7746
- ariaLinkLabel: "Besicht Altcha.org",
7765
+ ariaLinkLabel: "Altcha (offiziell Websäit)",
7747
7766
  enterCode: "Code aginn",
7748
7767
  enterCodeAria: "Gitt de Code an deen dir héiert. Dréckt op d'Weltraumtast fir Audio ofzespillen.",
7749
7768
  error: "Verifikatioun ass feelgeschloen. Probéiert méi spéit nach emol.",
7750
7769
  expired: "Verifikatioun ofgelaf. Probéiert nach emol.",
7751
- footer: 'Geschützt vun <a href="https://altcha.org/" target="_blank" aria-label="Besicht Altcha.org">ALTCHA</a>',
7770
+ footer: 'Geschützt vun <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (offiziell Websäit)">ALTCHA</a>',
7752
7771
  getAudioChallenge: "Kritt eng Audio-Herausfuerderung",
7753
7772
  label: "Ech sinn keen Robot",
7754
7773
  loading: "Lueden...",
@@ -7765,12 +7784,12 @@ if ("$altcha" in globalThis) {
7765
7784
  globalThis.$altcha.i18n.set("lb", i18n$K);
7766
7785
  }
7767
7786
  const i18n$J = {
7768
- ariaLinkLabel: "Vieraile sivulla Altcha.org",
7787
+ ariaLinkLabel: "Altcha (virallinen verkkosivusto)",
7769
7788
  enterCode: "Syötä koodi",
7770
7789
  enterCodeAria: "Kirjoita kuulemasi koodi. Paina välilyöntiä toistaaksesi äänen.",
7771
7790
  error: "Varmennus epäonnistui. Yritä myöhemmin uudelleen.",
7772
7791
  expired: "Varmennus vanhentui. Yritä uudelleen.",
7773
- footer: 'Suojattu <a href="https://altcha.org/" target="_blank" aria-label="Vieraile sivulla Altcha.org">ALTCHA</a>:lla',
7792
+ footer: 'Suojattu <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (virallinen verkkosivusto)">ALTCHA</a>:lla',
7774
7793
  getAudioChallenge: "Hae äänitehtävä",
7775
7794
  label: "En ole robotti",
7776
7795
  loading: "Ladataan...",
@@ -7787,14 +7806,14 @@ if ("$altcha" in globalThis) {
7787
7806
  globalThis.$altcha.i18n.set("fi", i18n$J);
7788
7807
  }
7789
7808
  const i18n$I = {
7790
- ariaLinkLabel: "Visitez Altcha.org",
7809
+ ariaLinkLabel: "Altcha (site officiel)",
7791
7810
  enterCode: "Entrez le code",
7792
7811
  enterCodeAria: "Entrez le code que vous entendez. Appuyez sur la barre d'espace pour écouter l'audio.",
7793
7812
  error: "Échec de la vérification. Réessayez plus tard.",
7794
7813
  expired: "La vérification a expiré. Réessayez.",
7795
- footer: 'Protégé par <a href="https://altcha.org/" target="_blank" aria-label="Visitez Altcha.org">ALTCHA</a>',
7814
+ footer: 'Protégé par <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site officiel)">ALTCHA</a>',
7796
7815
  getAudioChallenge: "Obtenir un défi audio",
7797
- label: "Pas un robot",
7816
+ label: "Je ne suis pas un robot",
7798
7817
  loading: "Chargement...",
7799
7818
  reload: "Recharger",
7800
7819
  verify: "Vérifier",
@@ -7809,14 +7828,14 @@ if ("$altcha" in globalThis) {
7809
7828
  globalThis.$altcha.i18n.set("fr-ca", i18n$I);
7810
7829
  }
7811
7830
  const i18n$H = {
7812
- ariaLinkLabel: "Visitez Altcha.org",
7831
+ ariaLinkLabel: "Altcha (site officiel)",
7813
7832
  enterCode: "Entrez le code",
7814
7833
  enterCodeAria: "Entrez le code que vous entendez. Appuyez sur Espace pour écouter l'audio.",
7815
7834
  error: "Échec de la vérification. Essayez à nouveau plus tard.",
7816
7835
  expired: "La vérification a expiré. Essayez à nouveau.",
7817
- footer: 'Protégé par <a href="https://altcha.org/" target="_blank" aria-label="Visitez Altcha.org">ALTCHA</a>',
7836
+ footer: 'Protégé par <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site officiel)">ALTCHA</a>',
7818
7837
  getAudioChallenge: "Obtenir un défi audio",
7819
- label: "Pas un robot",
7838
+ label: "Je ne suis pas un robot",
7820
7839
  loading: "Chargement...",
7821
7840
  reload: "Recharger",
7822
7841
  verify: "Vérifier",
@@ -7831,12 +7850,12 @@ if ("$altcha" in globalThis) {
7831
7850
  globalThis.$altcha.i18n.set("fr-fr", i18n$H);
7832
7851
  }
7833
7852
  const i18n$G = {
7834
- ariaLinkLabel: "Tabhair cuairt ar Altcha.org",
7853
+ ariaLinkLabel: "Altcha (láithreán gréasáin oifigiúil)",
7835
7854
  enterCode: "Iontráil cód",
7836
7855
  enterCodeAria: "Cuir isteach an cód a chloiseann tú. Brúigh Spás chun an fuaime a sheinm.",
7837
7856
  error: "Theip ar an bhfíorú. Bain triail eile as níos déanaí.",
7838
7857
  expired: "Tá an fíorú as feidhm. Bain triail eile as.",
7839
- footer: 'Cosanta ag <a href="https://altcha.org/" target="_blank" aria-label="Tabhair cuairt ar Altcha.org">ALTCHA</a>',
7858
+ footer: 'Cosanta ag <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (láithreán gréasáin oifigiúil)">ALTCHA</a>',
7840
7859
  getAudioChallenge: "Faigh dúshlán fuaime",
7841
7860
  label: "Níl mé i mo róbat",
7842
7861
  loading: "Á luchtú...",
@@ -7853,12 +7872,12 @@ if ("$altcha" in globalThis) {
7853
7872
  globalThis.$altcha.i18n.set("ga", i18n$G);
7854
7873
  }
7855
7874
  const i18n$F = {
7856
- ariaLinkLabel: "Posjetite Altcha.org",
7875
+ ariaLinkLabel: "Altcha (službena web stranica)",
7857
7876
  enterCode: "Unesite kod",
7858
7877
  enterCodeAria: "Unesite kod koji čujete. Pritisnite razmaknicu za reprodukciju zvuka.",
7859
7878
  error: "Provjera nije uspjela. Molimo pokušajte kasnije.",
7860
7879
  expired: "Provjera je istekla. Molimo pokušajte ponovo.",
7861
- footer: 'Zaštićeno od strane <a href="https://altcha.org/" target="_blank" aria-label="Posjetite Altcha.org">ALTCHA</a>',
7880
+ footer: 'Zaštićeno od strane <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (službena web stranica)">ALTCHA</a>',
7862
7881
  getAudioChallenge: "Audio provjera",
7863
7882
  label: "Ja nisam robot",
7864
7883
  loading: "Učitavanje...",
@@ -7875,12 +7894,12 @@ if ("$altcha" in globalThis) {
7875
7894
  globalThis.$altcha.i18n.set("hr", i18n$F);
7876
7895
  }
7877
7896
  const i18n$E = {
7878
- ariaLinkLabel: "Látogass el az Altcha.org oldalra",
7897
+ ariaLinkLabel: "Altcha (hivatalos weboldal)",
7879
7898
  enterCode: "Írja be a kódot",
7880
7899
  enterCodeAria: "Írja be a hallott kódot. Nyomja meg a Szóköz billentyűt a hang lejátszásához.",
7881
7900
  error: "A hitelesítés nem sikerült. Próbáld meg később újra.",
7882
7901
  expired: "A hitelesítés lejárt. Próbáld újra.",
7883
- footer: 'Védve a következő által: <a href="https://altcha.org/" target="_blank" aria-label="Látogass el az Altcha.org oldalra">ALTCHA</a>',
7902
+ footer: 'Védve a következő által: <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (hivatalos weboldal)">ALTCHA</a>',
7884
7903
  getAudioChallenge: "Hangalapú kihívás kérése",
7885
7904
  label: "Nem vagyok robot",
7886
7905
  loading: "Betöltés...",
@@ -7897,12 +7916,12 @@ if ("$altcha" in globalThis) {
7897
7916
  globalThis.$altcha.i18n.set("hu", i18n$E);
7898
7917
  }
7899
7918
  const i18n$D = {
7900
- ariaLinkLabel: "Heimsækja Altcha.org",
7919
+ ariaLinkLabel: "Altcha (opinber vefsíða)",
7901
7920
  enterCode: "Sláðu inn kóða",
7902
7921
  enterCodeAria: "Sláðu inn kóðann sem þú heyrir. Ýttu á Space til að spila hljóðið.",
7903
7922
  error: "Staðfesting mistókst. Reyndu aftur síðar.",
7904
7923
  expired: "Staðfesting er útrunnin. Reyndu aftur.",
7905
- footer: 'Verndað af <a href="https://altcha.org/" target="_blank" aria-label="Heimsækja Altcha.org">ALTCHA</a>',
7924
+ footer: 'Verndað af <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (opinber vefsíða)">ALTCHA</a>',
7906
7925
  getAudioChallenge: "Fá hljóðáskorun",
7907
7926
  label: "Ég er ekki robot",
7908
7927
  loading: "Hleður...",
@@ -7919,12 +7938,12 @@ if ("$altcha" in globalThis) {
7919
7938
  globalThis.$altcha.i18n.set("is", i18n$D);
7920
7939
  }
7921
7940
  const i18n$C = {
7922
- ariaLinkLabel: "Visita Altcha.org",
7941
+ ariaLinkLabel: "Altcha (sito ufficiale)",
7923
7942
  enterCode: "Inserisci il codice",
7924
7943
  enterCodeAria: "Inserisci il codice che senti. Premi Spazio per riprodurre l'audio.",
7925
7944
  error: "Verifica fallita. Riprova più tardi.",
7926
7945
  expired: "Verifica scaduta. Riprova.",
7927
- footer: 'Protetto da <a href="https://altcha.org/" target="_blank" aria-label="Visita Altcha.org">ALTCHA</a>',
7946
+ footer: 'Protetto da <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (sito ufficiale)">ALTCHA</a>',
7928
7947
  getAudioChallenge: "Ottieni una sfida audio",
7929
7948
  label: "Non sono un robot",
7930
7949
  loading: "Caricamento...",
@@ -7941,12 +7960,12 @@ if ("$altcha" in globalThis) {
7941
7960
  globalThis.$altcha.i18n.set("it", i18n$C);
7942
7961
  }
7943
7962
  const i18n$B = {
7944
- ariaLinkLabel: "Apsilankykite Altcha.org",
7963
+ ariaLinkLabel: "Altcha (oficiali svetainė)",
7945
7964
  enterCode: "Įveskite kodą",
7946
7965
  enterCodeAria: "Įveskite girdimą kodą. Paspauskite tarpo klavišą, kad grotumėte garso įrašą.",
7947
7966
  error: "Patvirtinimas nepavyko. Bandykite vėliau.",
7948
7967
  expired: "Patvirtinimo laikas baigėsi. Bandykite dar kartą.",
7949
- footer: 'Apsaugota <a href="https://altcha.org/" target="_blank" aria-label="Apsilankykite Altcha.org">ALTCHA</a>',
7968
+ footer: 'Apsaugota <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oficiali svetainė)">ALTCHA</a>',
7950
7969
  getAudioChallenge: "Gauti garso užduotį",
7951
7970
  label: "Aš nesu robotas",
7952
7971
  loading: "Įkeliama...",
@@ -7963,12 +7982,12 @@ if ("$altcha" in globalThis) {
7963
7982
  globalThis.$altcha.i18n.set("lt", i18n$B);
7964
7983
  }
7965
7984
  const i18n$A = {
7966
- ariaLinkLabel: "Apmeklējiet Altcha.org",
7985
+ ariaLinkLabel: "Altcha (oficiālā tīmekļa vietne)",
7967
7986
  enterCode: "Ievadiet kodu",
7968
7987
  enterCodeAria: "Ievadiet dzirdamo kodu. Nospiediet atstarpes taustiņu, lai atskaņotu audio.",
7969
7988
  error: "Verifikācija neizdevās. Mēģiniet vēlāk vēlreiz.",
7970
7989
  expired: "Verifikācijas laiks ir beidzies. Mēģiniet vēlreiz.",
7971
- footer: 'Aizsargāts ar <a href="https://altcha.org/" target="_blank" aria-label="Apmeklējiet Altcha.org">ALTCHA</a>',
7990
+ footer: 'Aizsargāts ar <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oficiālā tīmekļa vietne)">ALTCHA</a>',
7972
7991
  getAudioChallenge: "Saņemt audio izaicinājumu",
7973
7992
  label: "Es neesmu robots",
7974
7993
  loading: "Notiek ielāde...",
@@ -7985,12 +8004,12 @@ if ("$altcha" in globalThis) {
7985
8004
  globalThis.$altcha.i18n.set("lv", i18n$A);
7986
8005
  }
7987
8006
  const i18n$z = {
7988
- ariaLinkLabel: "Żur Altcha.org",
8007
+ ariaLinkLabel: "Altcha (sit uffiċjali)",
7989
8008
  enterCode: "Idħol il-kodiċi",
7990
8009
  enterCodeAria: "Idħol il-kodiċi li tisma'. Agħfas Spazju biex tindaqq l-awdjo.",
7991
8010
  error: "Il-verifika falliet. Erġa’ pprova aktar tard.",
7992
8011
  expired: "Il-verifika skadiet. Erġa’ pprova.",
7993
- footer: 'Protett minn <a href="https://altcha.org/" target="_blank" aria-label="Żur Altcha.org">ALTCHA</a>',
8012
+ footer: 'Protett minn <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (sit uffiċjali)">ALTCHA</a>',
7994
8013
  getAudioChallenge: "Ikseb sfida bl-awdjo",
7995
8014
  label: "M’inix robot",
7996
8015
  loading: "Qed jitgħabba...",
@@ -8007,12 +8026,12 @@ if ("$altcha" in globalThis) {
8007
8026
  globalThis.$altcha.i18n.set("mt", i18n$z);
8008
8027
  }
8009
8028
  const i18n$y = {
8010
- ariaLinkLabel: "Besøk Altcha.org",
8029
+ ariaLinkLabel: "Altcha (offisiell nettside)",
8011
8030
  enterCode: "Skriv inn kode",
8012
8031
  enterCodeAria: "Skriv inn koden du hører. Trykk på Space for å spille av lyden.",
8013
8032
  error: "Verifisering mislyktes. Prøv igjen senere.",
8014
8033
  expired: "Verifiseringen utløp. Prøv igjen.",
8015
- footer: 'Beskyttet av <a href="https://altcha.org/" target="_blank" aria-label="Besøk Altcha.org">ALTCHA</a>',
8034
+ footer: 'Beskyttet av <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (offisiell nettside)">ALTCHA</a>',
8016
8035
  getAudioChallenge: "Få en lydutfordring",
8017
8036
  label: "Jeg er ikke en robot",
8018
8037
  loading: "Laster...",
@@ -8029,12 +8048,12 @@ if ("$altcha" in globalThis) {
8029
8048
  globalThis.$altcha.i18n.set("nb", i18n$y);
8030
8049
  }
8031
8050
  const i18n$x = {
8032
- ariaLinkLabel: "Bezoek Altcha.org",
8051
+ ariaLinkLabel: "Altcha (officiële website)",
8033
8052
  enterCode: "Voer code in",
8034
8053
  enterCodeAria: "Voer de code in die je hoort. Druk op Spatie om de audio af te spelen.",
8035
8054
  error: "Verificatie mislukt. Probeer het later opnieuw.",
8036
8055
  expired: "Verificatie verlopen. Probeer het opnieuw.",
8037
- footer: 'Beschermd door <a href="https://altcha.org/" target="_blank" aria-label="Bezoek Altcha.org">ALTCHA</a>',
8056
+ footer: 'Beschermd door <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (officiële website)">ALTCHA</a>',
8038
8057
  getAudioChallenge: "Audio-uitdaging ontvangen",
8039
8058
  label: "Ik ben geen robot",
8040
8059
  loading: "Laden...",
@@ -8051,12 +8070,12 @@ if ("$altcha" in globalThis) {
8051
8070
  globalThis.$altcha.i18n.set("nl", i18n$x);
8052
8071
  }
8053
8072
  const i18n$w = {
8054
- ariaLinkLabel: "Odwiedź Altcha.org",
8073
+ ariaLinkLabel: "Altcha (oficjalna strona internetowa)",
8055
8074
  enterCode: "Wprowadź kod",
8056
8075
  enterCodeAria: "Wpisz kod, który słyszysz. Naciśnij Spację, aby odtworzyć dźwięk.",
8057
8076
  error: "Weryfikacja nie powiodła się. Spróbuj ponownie później.",
8058
8077
  expired: "Weryfikacja wygasła. Spróbuj ponownie.",
8059
- footer: 'Chronione przez <a href="https://altcha.org/" target="_blank" aria-label="Odwiedź Altcha.org">ALTCHA</a>',
8078
+ footer: 'Chronione przez <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oficjalna strona internetowa)">ALTCHA</a>',
8060
8079
  getAudioChallenge: "Pobierz zadanie dźwiękowe",
8061
8080
  label: "Nie jestem robotem",
8062
8081
  loading: "Ładowanie...",
@@ -8073,12 +8092,12 @@ if ("$altcha" in globalThis) {
8073
8092
  globalThis.$altcha.i18n.set("pl", i18n$w);
8074
8093
  }
8075
8094
  const i18n$v = {
8076
- ariaLinkLabel: "Visitar Altcha.org",
8095
+ ariaLinkLabel: "Altcha (site oficial)",
8077
8096
  enterCode: "Introduza o código",
8078
8097
  enterCodeAria: "Introduza o código que ouve. Prima Espaço para reproduzir o áudio.",
8079
8098
  error: "A verificação falhou. Por favor, tente novamente mais tarde.",
8080
8099
  expired: "Verificação expirada. Por favor, tente novamente.",
8081
- footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
8100
+ footer: 'Protegido por <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site oficial)">ALTCHA</a>',
8082
8101
  getAudioChallenge: "Obter desafio de áudio",
8083
8102
  label: "Não sou um robô",
8084
8103
  loading: "A carregar...",
@@ -8095,12 +8114,12 @@ if ("$altcha" in globalThis) {
8095
8114
  globalThis.$altcha.i18n.set("pt-pt", i18n$v);
8096
8115
  }
8097
8116
  const i18n$u = {
8098
- ariaLinkLabel: "Visitar Altcha.org",
8117
+ ariaLinkLabel: "Altcha (site oficial)",
8099
8118
  enterCode: "Digite o código",
8100
8119
  enterCodeAria: "Digite o código que você ouve. Pressione Espaço para reproduzir o áudio.",
8101
8120
  error: "Falha na verificação. Por favor, tente novamente mais tarde.",
8102
8121
  expired: "Verificação expirada. Por favor, tente novamente.",
8103
- footer: 'Protegido por <a href="https://altcha.org/" target="_blank" aria-label="Visitar Altcha.org">ALTCHA</a>',
8122
+ footer: 'Protegido por <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site oficial)">ALTCHA</a>',
8104
8123
  getAudioChallenge: "Obter desafio de áudio",
8105
8124
  label: "Eu não sou um robô",
8106
8125
  loading: "Carregando...",
@@ -8117,12 +8136,12 @@ if ("$altcha" in globalThis) {
8117
8136
  globalThis.$altcha.i18n.set("pt-br", i18n$u);
8118
8137
  }
8119
8138
  const i18n$t = {
8120
- ariaLinkLabel: "Vizitează Altcha.org",
8139
+ ariaLinkLabel: "Altcha (site oficial)",
8121
8140
  enterCode: "Introduceți codul",
8122
8141
  enterCodeAria: "Introduceți codul pe care îl auziți. Apăsați Spațiu pentru a reda audio.",
8123
8142
  error: "Verificarea a eșuat. Încearcă din nou mai târziu.",
8124
8143
  expired: "Verificarea a expirat. Încearcă din nou.",
8125
- footer: 'Protejat de <a href="https://altcha.org/" target="_blank" aria-label="Vizitează Altcha.org">ALTCHA</a>',
8144
+ footer: 'Protejat de <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (site oficial)">ALTCHA</a>',
8126
8145
  getAudioChallenge: "Obține o provocare audio",
8127
8146
  label: "Nu sunt un robot",
8128
8147
  loading: "Se încarcă...",
@@ -8139,12 +8158,12 @@ if ("$altcha" in globalThis) {
8139
8158
  globalThis.$altcha.i18n.set("ro", i18n$t);
8140
8159
  }
8141
8160
  const i18n$s = {
8142
- ariaLinkLabel: "Перейти на Altcha.org",
8161
+ ariaLinkLabel: "Altcha (официальный сайт)",
8143
8162
  enterCode: "Введите код",
8144
8163
  enterCodeAria: "Введите код, который слышите. Нажмите пробел для воспроизведения аудио.",
8145
8164
  error: "Ошибка верификации. Попробуйте позже.",
8146
8165
  expired: "Срок действия верификации истек. Попробуйте снова.",
8147
- footer: 'Защищено <a href="https://altcha.org/" target="_blank" aria-label="Перейти на Altcha.org">ALTCHA</a>',
8166
+ footer: 'Защищено <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (официальный сайт)">ALTCHA</a>',
8148
8167
  getAudioChallenge: "Получить аудио задачу",
8149
8168
  label: "Я не робот",
8150
8169
  loading: "Загрузка...",
@@ -8161,12 +8180,12 @@ if ("$altcha" in globalThis) {
8161
8180
  globalThis.$altcha.i18n.set("ru", i18n$s);
8162
8181
  }
8163
8182
  const i18n$r = {
8164
- ariaLinkLabel: "Navštívte Altcha.org",
8183
+ ariaLinkLabel: "Altcha (oficiálna webová stránka)",
8165
8184
  enterCode: "Zadajte kód",
8166
8185
  enterCodeAria: "Zadajte kód, ktorý počujete. Stlačením medzerníka prehráte zvuk.",
8167
8186
  error: "Verifikácia zlyhala. Skúste to znova neskôr.",
8168
8187
  expired: "Verifikácia vypršala. Skúste to znova.",
8169
- footer: 'Chránené <a href="https://altcha.org/" target="_blank" aria-label="Navštívte Altcha.org">ALTCHA</a>',
8188
+ footer: 'Chránené <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oficiálna webová stránka)">ALTCHA</a>',
8170
8189
  getAudioChallenge: "Získať audio výzvu",
8171
8190
  label: "Nie som robot",
8172
8191
  loading: "Načítava sa...",
@@ -8183,12 +8202,12 @@ if ("$altcha" in globalThis) {
8183
8202
  globalThis.$altcha.i18n.set("sk", i18n$r);
8184
8203
  }
8185
8204
  const i18n$q = {
8186
- ariaLinkLabel: "Obiščite Altcha.org",
8205
+ ariaLinkLabel: "Altcha (uradna spletna stran)",
8187
8206
  enterCode: "Vnesite kodo",
8188
8207
  enterCodeAria: "Vnesite kodo, ki jo slišite. Pritisnite preslednico za predvajanje zvoka.",
8189
8208
  error: "Preverjanje ni uspelo. Poskusite znova kasneje.",
8190
8209
  expired: "Preverjanje je poteklo. Poskusite znova.",
8191
- footer: 'Zaščiteno z <a href="https://altcha.org/" target="_blank" aria-label="Obiščite Altcha.org">ALTCHA</a>',
8210
+ footer: 'Zaščiteno z <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (uradna spletna stran)">ALTCHA</a>',
8192
8211
  getAudioChallenge: "Pridobite zvočni izziv",
8193
8212
  label: "Nisem robot",
8194
8213
  loading: "Nalagam...",
@@ -8205,12 +8224,12 @@ if ("$altcha" in globalThis) {
8205
8224
  globalThis.$altcha.i18n.set("sl", i18n$q);
8206
8225
  }
8207
8226
  const i18n$p = {
8208
- ariaLinkLabel: "Vizitoni Altcha.org",
8227
+ ariaLinkLabel: "Altcha (faqja zyrtare)",
8209
8228
  enterCode: "Fut kodin",
8210
8229
  enterCodeAria: "Fut kodin që dëgjon. Shtypni Hapësirë për të luajtur audio.",
8211
8230
  error: "Verifikimi dështoi. Provoni përsëri më vonë.",
8212
8231
  expired: "Verifikimi ka skaduar. Provoni përsëri.",
8213
- footer: 'I mbrojtur nga <a href="https://altcha.org/" target="_blank" aria-label="Vizitoni Altcha.org">ALTCHA</a>',
8232
+ footer: 'I mbrojtur nga <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (faqja zyrtare)">ALTCHA</a>',
8214
8233
  getAudioChallenge: "Merr një sfidë audio",
8215
8234
  label: "Unë nuk jam një robot",
8216
8235
  loading: "Duke u ngarkuar...",
@@ -8227,12 +8246,12 @@ if ("$altcha" in globalThis) {
8227
8246
  globalThis.$altcha.i18n.set("sq", i18n$p);
8228
8247
  }
8229
8248
  const i18n$o = {
8230
- ariaLinkLabel: "Posetite Altcha.org",
8249
+ ariaLinkLabel: "Altcha (zvanična web stranica)",
8231
8250
  enterCode: "Unesite kod",
8232
8251
  enterCodeAria: "Unesite kod koji čujete. Pritisnite Space da biste pustili zvuk.",
8233
8252
  error: "Verifikacija nije uspela. Pokušajte ponovo kasnije.",
8234
8253
  expired: "Verifikacija je istekla. Pokušajte ponovo.",
8235
- footer: 'Zaštićeno od strane <a href="https://altcha.org/" target="_blank" aria-label="Posetite Altcha.org">ALTCHA</a>',
8254
+ footer: 'Zaštićeno od strane <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (zvanična web stranica)">ALTCHA</a>',
8236
8255
  getAudioChallenge: "Dohvatite audio izazov",
8237
8256
  label: "Nisam robot",
8238
8257
  loading: "Učitavanje...",
@@ -8249,12 +8268,12 @@ if ("$altcha" in globalThis) {
8249
8268
  globalThis.$altcha.i18n.set("sr", i18n$o);
8250
8269
  }
8251
8270
  const i18n$n = {
8252
- ariaLinkLabel: "Besök Altcha.org",
8271
+ ariaLinkLabel: "Altcha (officiell webbplats)",
8253
8272
  enterCode: "Ange kod",
8254
8273
  enterCodeAria: "Ange koden du hör. Tryck på mellanslag för att spela upp ljudet.",
8255
8274
  error: "Verifiering misslyckades. Försök igen senare.",
8256
8275
  expired: "Verifieringen har gått ut. Försök igen.",
8257
- footer: 'Skyddad av <a href="https://altcha.org/" target="_blank" aria-label="Besök Altcha.org">ALTCHA</a>',
8276
+ footer: 'Skyddad av <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (officiell webbplats)">ALTCHA</a>',
8258
8277
  getAudioChallenge: "Få ljudutmaning",
8259
8278
  label: "Jag är inte en robot",
8260
8279
  loading: "Laddar...",
@@ -8271,12 +8290,12 @@ if ("$altcha" in globalThis) {
8271
8290
  globalThis.$altcha.i18n.set("sv", i18n$n);
8272
8291
  }
8273
8292
  const i18n$m = {
8274
- ariaLinkLabel: "Altcha.org'yu ziyaret edin",
8293
+ ariaLinkLabel: "Altcha (resmi web sitesi)",
8275
8294
  enterCode: "Kodu girin",
8276
8295
  enterCodeAria: "Duyduğunuz kodu girin. Ses dosyasını oynatmak için Boşluk tuşuna basın.",
8277
8296
  error: "Doğrulama başarısız oldu. Lütfen daha sonra tekrar deneyin.",
8278
8297
  expired: "Doğrulama süresi doldu. Lütfen tekrar deneyin.",
8279
- footer: `ALTCHA tarafından korunuyor <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org'yu ziyaret edin">ALTCHA</a>`,
8298
+ footer: 'ALTCHA tarafından korunuyor <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (resmi web sitesi)">ALTCHA</a>',
8280
8299
  getAudioChallenge: "Sesli doğrulama al",
8281
8300
  label: "Ben robot değilim",
8282
8301
  loading: "Yükleniyor...",
@@ -8293,12 +8312,12 @@ if ("$altcha" in globalThis) {
8293
8312
  globalThis.$altcha.i18n.set("tr", i18n$m);
8294
8313
  }
8295
8314
  const i18n$l = {
8296
- ariaLinkLabel: "Відвідати Altcha.org",
8315
+ ariaLinkLabel: "Altcha (офіційний сайт)",
8297
8316
  enterCode: "Введіть код",
8298
8317
  enterCodeAria: "Введіть код, який ви чуєте. Натисніть пробіл, щоб відтворити аудіо.",
8299
8318
  error: "Перевірка не вдалася. Спробуйте пізніше.",
8300
8319
  expired: "Перевірка прострочена. Спробуйте знову.",
8301
- footer: 'Захищено <a href="https://altcha.org/" target="_blank" aria-label="Відвідати Altcha.org">ALTCHA</a>',
8320
+ footer: 'Захищено <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (офіційний сайт)">ALTCHA</a>',
8302
8321
  getAudioChallenge: "Отримати аудіо-челлендж",
8303
8322
  label: "Я не робот",
8304
8323
  loading: "Завантаження...",
@@ -8315,12 +8334,12 @@ if ("$altcha" in globalThis) {
8315
8334
  globalThis.$altcha.i18n.set("uk", i18n$l);
8316
8335
  }
8317
8336
  const i18n$k = {
8318
- ariaLinkLabel: "Besoek Altcha.org",
8337
+ ariaLinkLabel: "Altcha (amptelike webwerf)",
8319
8338
  enterCode: "Voer kode in",
8320
8339
  enterCodeAria: "Voer die kode in wat jy hoor. Druk Spasie om die klank af te speel.",
8321
8340
  error: "Verifikasie het misluk. Probeer later weer.",
8322
8341
  expired: "Verifikasie het verval. Probeer weer.",
8323
- footer: 'Beskerm deur <a href="https://altcha.org/" target="_blank" aria-label="Besoek Altcha.org">ALTCHA</a>',
8342
+ footer: 'Beskerm deur <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (amptelike webwerf)">ALTCHA</a>',
8324
8343
  getAudioChallenge: "Kry 'n klankuitdaging",
8325
8344
  label: "Ek is nie 'n robot nie",
8326
8345
  loading: "Laai...",
@@ -8337,12 +8356,12 @@ if ("$altcha" in globalThis) {
8337
8356
  globalThis.$altcha.i18n.set("af", i18n$k);
8338
8357
  }
8339
8358
  const i18n$j = {
8340
- ariaLinkLabel: "Altcha.org ይጎብኙ",
8359
+ ariaLinkLabel: "Altcha (ዋናው ድህረ ገጽ)",
8341
8360
  enterCode: "ኮድ አስገባ",
8342
8361
  enterCodeAria: "የሚሰማዎትን ኮድ ያስገቡ። ድምጽ ለመጫወት Space ን ይጫኑ።",
8343
8362
  error: "ማረጋገጫ አልተሳካም። በኋላ ላይ እንደገና ይሞክሩ።",
8344
8363
  expired: "ማረጋገጫው ጊዜው አልፏል። እንደገና ይሞክሩ።",
8345
- footer: 'በ <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org ይጎብኙ">ALTCHA</a> የተጠበቀ',
8364
+ footer: 'በ <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (ዋናው ድህረ ገጽ)">ALTCHA</a> የተጠበቀ',
8346
8365
  getAudioChallenge: "የድምጽ ፈተና ያግኙ",
8347
8366
  label: "እኔ ሮቦት አይደለሁም",
8348
8367
  loading: "በመጫን ላይ...",
@@ -8359,12 +8378,12 @@ if ("$altcha" in globalThis) {
8359
8378
  globalThis.$altcha.i18n.set("am", i18n$j);
8360
8379
  }
8361
8380
  const i18n$i = {
8362
- ariaLinkLabel: "Tembelea Altcha.org",
8381
+ ariaLinkLabel: "Altcha (tovuti rasmi)",
8363
8382
  enterCode: "Weka nambari",
8364
8383
  enterCodeAria: "Weka nambari unayosikia. Bonyeza Space kucheza sauti.",
8365
8384
  error: "Uthibitishaji umeshindwa. Jaribu tena baadaye.",
8366
8385
  expired: "Uthibitishaji umeisha. Jaribu tena.",
8367
- footer: 'Imealindwa na <a href="https://altcha.org/" target="_blank" aria-label="Tembelea Altcha.org">ALTCHA</a>',
8386
+ footer: 'Imealindwa na <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (tovuti rasmi)">ALTCHA</a>',
8368
8387
  getAudioChallenge: "Pata changamoto ya sauti",
8369
8388
  label: "Mimi sio roboti",
8370
8389
  loading: "Inapakia...",
@@ -8381,12 +8400,12 @@ if ("$altcha" in globalThis) {
8381
8400
  globalThis.$altcha.i18n.set("sw", i18n$i);
8382
8401
  }
8383
8402
  const i18n$h = {
8384
- ariaLinkLabel: "Ṣe abẹwo si Altcha.org",
8403
+ ariaLinkLabel: "Altcha (oju opo wẹẹbu osise)",
8385
8404
  enterCode: "Tẹ koodu sii",
8386
8405
  enterCodeAria: "Tẹ koodu ti o ngbọ sii. Tẹ Space lati ṣe ohun orin.",
8387
8406
  error: "Ìdájọ́kòwò kò ṣẹ́ṣe. Gbiyanju lẹẹkansi ni ọjọ́ iwájú.",
8388
8407
  expired: "Ìdájọ́kòwò ti pari. Gbiyanju lẹẹkansi.",
8389
- footer: 'Ti wa ni ààbò nipasẹ <a href="https://altcha.org/" target="_blank" aria-label="Ṣe abẹwo si Altcha.org">ALTCHA</a>',
8408
+ footer: 'Ti wa ni ààbò nipasẹ <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (oju opo wẹẹbu osise)">ALTCHA</a>',
8390
8409
  getAudioChallenge: "Gba ìjàdú ohùn",
8391
8410
  label: "Emi kii ṣe ẹrọ",
8392
8411
  loading: "Ó ń gbé sílẹ̀...",
@@ -8403,12 +8422,12 @@ if ("$altcha" in globalThis) {
8403
8422
  globalThis.$altcha.i18n.set("yo", i18n$h);
8404
8423
  }
8405
8424
  const i18n$g = {
8406
- ariaLinkLabel: "Altcha.org পরিদর্শন করুন",
8425
+ ariaLinkLabel: "Altcha (অফিসিয়াল ওয়েবসাইট)",
8407
8426
  enterCode: "কোড লিখুন",
8408
8427
  enterCodeAria: "আপনি যে কোড শুনতে পান তা লিখুন। অডিও প্লে করতে স্পেস বাটন টিপুন।",
8409
8428
  error: "যাচাইকরণ ব্যর্থ হয়েছে। পরে আবার চেষ্টা করুন।",
8410
8429
  expired: "যাচাইকরণ সময়সীমা শেষ হয়েছে। আবার চেষ্টা করুন।",
8411
- footer: 'দ্বারা সুরক্ষিত <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org পরিদর্শন করুন">ALTCHA</a>',
8430
+ footer: 'দ্বারা সুরক্ষিত <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (অফিসিয়াল ওয়েবসাইট)">ALTCHA</a>',
8412
8431
  getAudioChallenge: "অডিও চ্যালেঞ্জ নিন",
8413
8432
  label: "আমি রোবট নই",
8414
8433
  loading: "লোড হচ্ছে...",
@@ -8425,12 +8444,12 @@ if ("$altcha" in globalThis) {
8425
8444
  globalThis.$altcha.i18n.set("bn", i18n$g);
8426
8445
  }
8427
8446
  const i18n$f = {
8428
- ariaLinkLabel: "בקר באתר Altcha.org",
8447
+ ariaLinkLabel: "Altcha (אתר רשמי)",
8429
8448
  enterCode: "הזן קוד",
8430
8449
  enterCodeAria: "הזן את הקוד שאתה שומע. לחץ על רווח להפעלת השמע.",
8431
8450
  error: "האימות נכשל. נסה שוב מאוחר יותר.",
8432
8451
  expired: "תוקף האימות פג. נסה שוב.",
8433
- footer: 'מוגן על ידי <a href="https://altcha.org/" target="_blank" aria-label="בקר באתר Altcha.org">ALTCHA</a>',
8452
+ footer: 'מוגן על ידי <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (אתר רשמי)">ALTCHA</a>',
8434
8453
  getAudioChallenge: "קבל אתגר שמע",
8435
8454
  label: "אני לא רובוט",
8436
8455
  loading: "טוען...",
@@ -8447,12 +8466,12 @@ if ("$altcha" in globalThis) {
8447
8466
  globalThis.$altcha.i18n.set("he", i18n$f);
8448
8467
  }
8449
8468
  const i18n$e = {
8450
- ariaLinkLabel: "Altcha.org पर जाएं",
8469
+ ariaLinkLabel: "Altcha (आधिकारिक वेबसाइट)",
8451
8470
  enterCode: "कोड दर्ज करेंं",
8452
8471
  enterCodeAria: "आप जो कोड सुनते हैं उसे दर्ज करें। ऑडियो चलाने के लिए स्पेस दबाएं।",
8453
8472
  error: "सत्यापन विफल। कृपया बाद में फिर से प्रयास करें।",
8454
8473
  expired: "सत्यापन समाप्त हो गया है। कृपया पुनः प्रयास करें।",
8455
- footer: 'द्वारा संरक्षित <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org पर जाएं">ALTCHA</a>',
8474
+ footer: 'द्वारा संरक्षित <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (आधिकारिक वेबसाइट)">ALTCHA</a>',
8456
8475
  getAudioChallenge: "ऑडियो चुनौती प्राप्त करें",
8457
8476
  label: "मैं रोबोट नहीं हूँ",
8458
8477
  loading: "लोड हो रहा है...",
@@ -8469,12 +8488,12 @@ if ("$altcha" in globalThis) {
8469
8488
  globalThis.$altcha.i18n.set("hi", i18n$e);
8470
8489
  }
8471
8490
  const i18n$d = {
8472
- ariaLinkLabel: "Kunjungi Altcha.org",
8491
+ ariaLinkLabel: "Altcha (situs web resmi)",
8473
8492
  enterCode: "Masukkan kode",
8474
8493
  enterCodeAria: "Masukkan kode yang Anda dengar. Tekan Spasi untuk memutar audio.",
8475
8494
  error: "Verifikasi gagal. Coba lagi nanti.",
8476
8495
  expired: "Verifikasi telah kedaluwarsa. Coba lagi.",
8477
- footer: 'Dilindungi oleh <a href="https://altcha.org/" target="_blank" aria-label="Kunjungi Altcha.org">ALTCHA</a>',
8496
+ footer: 'Dilindungi oleh <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (situs web resmi)">ALTCHA</a>',
8478
8497
  getAudioChallenge: "Dapatkan tantangan audio",
8479
8498
  label: "Saya bukan robot",
8480
8499
  loading: "Memuat...",
@@ -8491,12 +8510,12 @@ if ("$altcha" in globalThis) {
8491
8510
  globalThis.$altcha.i18n.set("id", i18n$d);
8492
8511
  }
8493
8512
  const i18n$c = {
8494
- ariaLinkLabel: "Altcha.orgを訪問",
8513
+ ariaLinkLabel: "Altcha (公式ウェブサイト)",
8495
8514
  enterCode: "コードを入力",
8496
8515
  enterCodeAria: "聞こえるコードを入力してください。スペースキーを押して音声を再生します。",
8497
8516
  error: "認証に失敗しました。後でもう一度試してください。",
8498
8517
  expired: "認証が期限切れです。再試行してください。",
8499
- footer: '保護されています <a href="https://altcha.org/" target="_blank" aria-label="Altcha.orgを訪問">ALTCHA</a>',
8518
+ footer: '保護されています <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (公式ウェブサイト)">ALTCHA</a>',
8500
8519
  getAudioChallenge: "音声チャレンジを取得",
8501
8520
  label: "私はロボットではありません",
8502
8521
  loading: "読み込み中...",
@@ -8513,12 +8532,12 @@ if ("$altcha" in globalThis) {
8513
8532
  globalThis.$altcha.i18n.set("ja", i18n$c);
8514
8533
  }
8515
8534
  const i18n$b = {
8516
- ariaLinkLabel: "Altcha.org 방문하기",
8535
+ ariaLinkLabel: "Altcha (공식 웹사이트)",
8517
8536
  enterCode: "코드 입력",
8518
8537
  enterCodeAria: "들리는 코드를 입력하세요. 스페이스 바를 눌러 오디오를 재생합니다.",
8519
8538
  error: "인증 실패. 나중에 다시 시도해주세요.",
8520
8539
  expired: "인증이 만료되었습니다. 다시 시도해주세요.",
8521
- footer: 'ALTCHA에서 보호됨 <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org 방문하기">ALTCHA</a>',
8540
+ footer: 'ALTCHA에서 보호됨 <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (공식 웹사이트)">ALTCHA</a>',
8522
8541
  getAudioChallenge: "오디오 챌린지 받기",
8523
8542
  label: "저는 로봇이 아닙니다",
8524
8543
  loading: "로딩 중...",
@@ -8535,12 +8554,12 @@ if ("$altcha" in globalThis) {
8535
8554
  globalThis.$altcha.i18n.set("ko", i18n$b);
8536
8555
  }
8537
8556
  const i18n$a = {
8538
- ariaLinkLabel: "Altcha.org сайтына кіру",
8557
+ ariaLinkLabel: "Altcha (ресми веб-сайт)",
8539
8558
  enterCode: "Кодты енгізіңіз",
8540
8559
  enterCodeAria: "Естіген кодыңызды енгізіңіз. Аудионы ойнату үшін Бос орынды басыңыз.",
8541
8560
  error: "Тексеру сәтсіз аяқталды. Кейінірек қайталаңыз.",
8542
8561
  expired: "Тексеру мерзімі аяқталды. Қайталаңыз.",
8543
- footer: '<a href="https://altcha.org/" target="_blank" aria-label="Altcha.org сайтына кіру">ALTCHA</a> қорғайды',
8562
+ footer: '<a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (ресми веб-сайт)">ALTCHA</a> қорғайды',
8544
8563
  getAudioChallenge: "Аудио сынақ алу",
8545
8564
  label: "Мен робот емеспін",
8546
8565
  loading: "Жүктелуде...",
@@ -8557,12 +8576,12 @@ if ("$altcha" in globalThis) {
8557
8576
  globalThis.$altcha.i18n.set("kk", i18n$a);
8558
8577
  }
8559
8578
  const i18n$9 = {
8560
- ariaLinkLabel: "Altcha.org भेट द्या",
8579
+ ariaLinkLabel: "Altcha (अधिकृत संकेतस्थळ)",
8561
8580
  enterCode: "कोड टाकाा",
8562
8581
  enterCodeAria: "तुम्ही ऐकत असलेला कोड टाका. ऑडिओ प्ले करण्यासाठी स्पेस दाबा.",
8563
8582
  error: "पुष्टीकरण अयशस्वी झाले. कृपया नंतर पुन्हा प्रयत्न करा.",
8564
8583
  expired: "पुष्टीकरण कालबाह्य झाले आहे. कृपया पुन्हा प्रयत्न करा.",
8565
- footer: 'द्वारे संरक्षित <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org भेट द्या">ALTCHA</a>',
8584
+ footer: 'द्वारे संरक्षित <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (अधिकृत संकेतस्थळ)">ALTCHA</a>',
8566
8585
  getAudioChallenge: "ऑडिओ चॅलेंज मिळवा",
8567
8586
  label: "मी रोबोट नाही",
8568
8587
  loading: "लोड होत आहे...",
@@ -8579,12 +8598,12 @@ if ("$altcha" in globalThis) {
8579
8598
  globalThis.$altcha.i18n.set("mr", i18n$9);
8580
8599
  }
8581
8600
  const i18n$8 = {
8582
- ariaLinkLabel: "Altcha.org பார்வையிடவும்",
8601
+ ariaLinkLabel: "Altcha (அதிகாரப்பூர்வ வலைத்தளம்)",
8583
8602
  enterCode: "குறியீட்டை உள்ளிடவும்",
8584
8603
  enterCodeAria: "நீங்கள் கேட்கும் குறியீட்டை உள்ளிடவும். ஆடியோவை இயக்க Space ஐ அழுத்தவும்.",
8585
8604
  error: "சரிபார்ப்பு தோல்வி. பிறகு மீண்டும் முயற்சிக்கவும்.",
8586
8605
  expired: "சரிபார்ப்பு காலாவதியானது. மீண்டும் முயற்சிக்கவும்.",
8587
- footer: 'மூலமாக பாதுகாக்கப்பட்டவை <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org பார்வையிடவும்">ALTCHA</a>',
8606
+ footer: 'மூலமாக பாதுகாக்கப்பட்டவை <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (அதிகாரப்பூர்வ வலைத்தளம்)">ALTCHA</a>',
8588
8607
  getAudioChallenge: "ஒலி சவாலை பெறவும்",
8589
8608
  label: "நான் ரோபோடான அல்ல",
8590
8609
  loading: "செயலாக்கம்...",
@@ -8601,12 +8620,12 @@ if ("$altcha" in globalThis) {
8601
8620
  globalThis.$altcha.i18n.set("ta", i18n$8);
8602
8621
  }
8603
8622
  const i18n$7 = {
8604
- ariaLinkLabel: "Altcha.org సందర్శించండి",
8623
+ ariaLinkLabel: "Altcha (అధికారిక వెబ్‌సైట్)",
8605
8624
  enterCode: "కోడ్‌ని నమోదు చేయండి",
8606
8625
  enterCodeAria: "మీరు విన్న కోడ్‌ని నమోదు చేయండి. ఆడియో ప్లే చేయడానికి స్పేస్‌ను నొక్కండి.",
8607
8626
  error: "చెకింగ్ విఫలమైంది. దయచేసి మరల ప్రయత్నించండి.",
8608
8627
  expired: "చెకింగ్ కాలం ముగిసింది. దయచేసి మరల ప్రయత్నించండి.",
8609
- footer: 'ఈ సైట్ రక్షించబడింది <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org సందర్శించండి">ALTCHA</a>',
8628
+ footer: 'ఈ సైట్ రక్షించబడింది <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (అధికారిక వెబ్‌సైట్)">ALTCHA</a>',
8610
8629
  getAudioChallenge: "ఆడియో ఛాలెంజ్ పొందండి",
8611
8630
  label: "నేను రోబోట్ కాదు",
8612
8631
  loading: "లోడ్ అవుతోంది...",
@@ -8623,12 +8642,12 @@ if ("$altcha" in globalThis) {
8623
8642
  globalThis.$altcha.i18n.set("te", i18n$7);
8624
8643
  }
8625
8644
  const i18n$6 = {
8626
- ariaLinkLabel: "เยี่ยมชม Altcha.org",
8645
+ ariaLinkLabel: "Altcha (เว็บไซต์ทางการ)",
8627
8646
  enterCode: "ป้อนรหัส",
8628
8647
  enterCodeAria: "ป้อนรหัสที่คุณได้ยิน กด Space เพื่อเล่นเสียง",
8629
8648
  error: "การตรวจสอบล้มเหลว กรุณาลองอีกครั้งภายหลัง",
8630
8649
  expired: "การตรวจสอบหมดอายุ กรุณาลองใหม่",
8631
- footer: 'ป้องกันโดย <a href="https://altcha.org/" target="_blank" aria-label="เยี่ยมชม Altcha.org">ALTCHA</a>',
8650
+ footer: 'ป้องกันโดย <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (เว็บไซต์ทางการ)">ALTCHA</a>',
8632
8651
  getAudioChallenge: "รับการท้าทายเสียง",
8633
8652
  label: "ฉันไม่ใช่บอท",
8634
8653
  loading: "กำลังโหลด...",
@@ -8645,12 +8664,12 @@ if ("$altcha" in globalThis) {
8645
8664
  globalThis.$altcha.i18n.set("th", i18n$6);
8646
8665
  }
8647
8666
  const i18n$5 = {
8648
- ariaLinkLabel: "Altcha.org پر جائیں",
8667
+ ariaLinkLabel: "Altcha (سرکاری ویب سائٹ)",
8649
8668
  enterCode: "کوڈ درج کریں",
8650
8669
  enterCodeAria: "جو کوڈ آپ سنتے ہیں وہ درج کریں۔ آڈیو چلانے کے لیے اسپیس دبائیں۔",
8651
8670
  error: "توثیق ناکام ہو گئی۔ براہ کرم بعد میں دوبارہ کوشش کریں۔",
8652
8671
  expired: "توثیق کی مدت ختم ہو گئی ہے۔ براہ کرم دوبارہ کوشش کریں۔",
8653
- footer: 'کے ذریعے محفوظ <a href="https://altcha.org/" target="_blank" aria-label="Altcha.org پر جائیں">ALTCHA</a>',
8672
+ footer: 'کے ذریعے محفوظ <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (سرکاری ویب سائٹ)">ALTCHA</a>',
8654
8673
  getAudioChallenge: "آڈیو چیلنج حاصل کریں",
8655
8674
  label: "میں روبوٹ نہیں ہوں",
8656
8675
  loading: "لوڈ ہو رہا ہے...",
@@ -8667,12 +8686,12 @@ if ("$altcha" in globalThis) {
8667
8686
  globalThis.$altcha.i18n.set("ur", i18n$5);
8668
8687
  }
8669
8688
  const i18n$4 = {
8670
- ariaLinkLabel: "Altcha.org saytiga tashrif buyuring",
8689
+ ariaLinkLabel: "Altcha (rasmiy veb-sayt)",
8671
8690
  enterCode: "Kodni kiriting",
8672
8691
  enterCodeAria: "Eshitgan kodingizni kiriting. Audioni ijro etish uchun Bo'sh joy tugmasini bosing.",
8673
8692
  error: "Tekshiruv muvaffaqiyatsiz tugadi. Keyinroq qayta urinib ko'ring.",
8674
8693
  expired: "Tekshiruv muddati tugadi. Qayta urinib ko'ring.",
8675
- footer: '<a href="https://altcha.org/" target="_blank" aria-label="Altcha.org saytiga tashrif buyuring">ALTCHA</a> tomonidan himoyalangan',
8694
+ footer: '<a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (rasmiy veb-sayt)">ALTCHA</a> tomonidan himoyalangan',
8676
8695
  getAudioChallenge: "Audio sinovni olish",
8677
8696
  label: "Men robot emasman",
8678
8697
  loading: "Yuklanmoqda...",
@@ -8689,12 +8708,12 @@ if ("$altcha" in globalThis) {
8689
8708
  globalThis.$altcha.i18n.set("uz", i18n$4);
8690
8709
  }
8691
8710
  const i18n$3 = {
8692
- ariaLinkLabel: "Truy cập Altcha.org",
8711
+ ariaLinkLabel: "Altcha (trang web chính thức)",
8693
8712
  enterCode: "Nhập mã",
8694
8713
  enterCodeAria: "Nhập mã bạn nghe được. Nhấn Phím cách để phát âm thanh.",
8695
8714
  error: "Xác minh thất bại. Vui lòng thử lại sau.",
8696
8715
  expired: "Xác minh đã hết hạn. Vui lòng thử lại.",
8697
- footer: 'Được bảo vệ bởi <a href="https://altcha.org/" target="_blank" aria-label="Truy cập Altcha.org">ALTCHA</a>',
8716
+ footer: 'Được bảo vệ bởi <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (trang web chính thức)">ALTCHA</a>',
8698
8717
  getAudioChallenge: "Nhận thử thách âm thanh",
8699
8718
  label: "Tôi không phải là robot",
8700
8719
  loading: "Đang tải...",
@@ -8711,12 +8730,12 @@ if ("$altcha" in globalThis) {
8711
8730
  globalThis.$altcha.i18n.set("vi", i18n$3);
8712
8731
  }
8713
8732
  const i18n$2 = {
8714
- ariaLinkLabel: "访问 Altcha.org",
8733
+ ariaLinkLabel: "Altcha (官方网站)",
8715
8734
  enterCode: "输入代码",
8716
8735
  enterCodeAria: "输入您听到的代码。按空格键播放音频。",
8717
8736
  error: "验证失败。稍后再试。",
8718
8737
  expired: "验证已过期。请重试。",
8719
- footer: '由 <a href="https://altcha.org/" target="_blank" aria-label="访问 Altcha.org">ALTCHA</a> 保护',
8738
+ footer: '由 <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (官方网站)">ALTCHA</a> 保护',
8720
8739
  getAudioChallenge: "获取音频挑战",
8721
8740
  label: "我不是机器人",
8722
8741
  loading: "加载中...",
@@ -8733,14 +8752,14 @@ if ("$altcha" in globalThis) {
8733
8752
  globalThis.$altcha.i18n.set("zh-cn", i18n$2);
8734
8753
  }
8735
8754
  const i18n$1 = {
8736
- ariaLinkLabel: "前往 Altcha.org",
8755
+ ariaLinkLabel: "Altcha (官方網站)",
8737
8756
  cancel: "取消",
8738
8757
  enterCode: "輸入代碼",
8739
8758
  enterCodeAria: "輸入你聽到嘅代碼。按空格鍵播放音訊。",
8740
8759
  enterCodeFromImage: "要繼續,請輸入下面圖片入面嘅代碼。",
8741
8760
  error: "驗證失敗。請稍後再試。",
8742
8761
  expired: "驗證已過期。請再試一次。",
8743
- footer: '由 <a href="https://altcha.org/" target="_blank" aria-label="前往 Altcha.org">ALTCHA</a> 提供保護',
8762
+ footer: '由 <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (官方網站)">ALTCHA</a> 提供保護',
8744
8763
  getAudioChallenge: "取得音訊驗證",
8745
8764
  label: "我唔係機械人",
8746
8765
  loading: "載入中...",
@@ -8755,12 +8774,12 @@ if ("$altcha" in globalThis) {
8755
8774
  globalThis.$altcha.i18n.set("zh-hk", i18n$1);
8756
8775
  }
8757
8776
  const i18n = {
8758
- ariaLinkLabel: "訪問 Altcha.org",
8777
+ ariaLinkLabel: "Altcha (官方網站)",
8759
8778
  enterCode: "輸入代碼",
8760
8779
  enterCodeAria: "輸入您聽到的代碼。按空格鍵播放音頻。",
8761
8780
  error: "驗證失敗。稍後再試。",
8762
8781
  expired: "驗證已過期。請重試。",
8763
- footer: '由 <a href="https://altcha.org/" target="_blank" aria-label="訪問 Altcha.org">ALTCHA</a> 保護',
8782
+ footer: '由 <a href="https://altcha.org/" tabindex="-1" target="_blank" aria-label="Altcha (官方網站)">ALTCHA</a> 保護',
8764
8783
  getAudioChallenge: "獲取音頻挑戰",
8765
8784
  label: "我不是機器人",
8766
8785
  loading: "載入中...",